Welcome to my personal dotfiles repository! This is a curated, task-automated configuration for a premium, keyboard-driven terminal developer environment.
Here, you'll find everything from window manager configurations to custom CLI helper scripts, terminal configs, and automation workflows.
Every developer's environment is an evolution. Over the years, I've experimented with various tools to find the perfect blend of performance, aesthetics, and efficiency. This repository tracks my latest major migration: moving from a macOS-centric setup to a cloud-native, immutable Linux environment running Hyprblue OS (a custom Hyprland-enabled image based on Bluefin).
Here is how my daily driver stack has evolved:
| Category | The Old Stack (macOS) | The New Stack (Hyprblue OS) | Rationale |
|---|---|---|---|
| OS | macOS | Hyprblue OS 🚀 | Cloud-native, immutable Fedora-based system (ghcr.io/ashebanow/hyprblue-open-video) with native Hyprland, and switching support to Bluefin OS (ghcr.io/projectbluefin/bluefin:stable). |
| Terminal | iTerm2 | kitty 🐱 | GPU-accelerated, highly customizable, and lightweight terminal emulator with transparency, custom font, and cursor trails. |
| Window Manager | AeroSpace | Hyprland / Waybar ❄️ | Modern dynamic tiling Wayland compositor with fluid animations and a modular status bar. |
| Editor | Neovim | Neovim (LazyVim) 💤 | Still Neovim! But now leveraging the modern, modular LazyVim distro for modularity. |
Here is a deep dive into the specific tools configuring this workspace:
GPU-accelerated, highly customizable, and lightweight terminal emulator. Key configurations:
- Font:
Victor Mono Semibold(size 13.0) for a sleek, modern code appearance. - Color Scheme:
Atomtheme (fromkitty-themes) with 50% background opacity (background_opacity 0.5). - Features: Enabled animated cursor trail (
cursor_trail 1), dynamic background opacity support, and disabled default window close confirmation.
- Hyprland (Linux): Modern, dynamic tiling Wayland compositor with fluid animations. Customized configuration adapted from JaKooLit's Hyprland dotfiles, featuring workspaces, monitor profile management, customized animations, wallust integration, custom scripts, and session locking via hypridle/hyprlock.
A modern Neovim configuration built on top of LazyVim. Supercharged with auto-completion, treesitter parsing, LSP integrations, and a clean file explorer.
- Waybar: Highly customizable and modular status bar designed for Wayland compositors (specifically Hyprland). Features custom modules, workspaces indicators, system resource monitors, wallust dynamic colors, and custom layout configuration.
- Rofi: Fast, keyboard-driven application launcher and window switcher, configured with a power menu to manage session controls (
rofi-power-menu).
Using a structured Taskfile.yml structure located in taskfile/ to automate setup:
install.yaml: Installs essential flatpaks (Brave, Discord, MissionCenter, VLC, etc.) and Homebrew packages (1Password, Neovim, Stow).gh.yaml: Bypasses manual friction by automating GitHub PR creation (prc), PR merging (prm), and re-signing Git history (sign-all).sync.yaml: Automates bidirectional cloud syncing usingrclone(Obsidian Vaults, second brain logs, videos).container.yaml: Manages local container builds, deployments via SSH to servers, and podman/docker maintenance.
Custom-written Bash scripts to boost shell navigation:
dofzf: FZF-powered interactive tool to stop or remove containers/images (stop,rm,rmi).plog: Automated Zettelkasten daily logs launcher for Obsidian inside Neovim.zet: Zettelkasten template generator and Obsidian vault linker.switch-os: Interactive OS switcher script usingbootcorrpm-ostreeto toggle between Hyprblue and Bluefin Stable.git_prompt.sh&kube_prompt.sh: Custom git and kubernetes prompts for a responsive Bash environment.
I use stow to symlink configurations into the ~/.config folder.
Run the following commands depending on the configurations you want to load:
# Clone the dotfiles repository to your home directory
git clone https://github.com/im6h/dotfiles.git ~/dotfiles
cd ~/dotfiles
# Stow individual application configurations
stow --dir=/home/$USER/dotfiles/aerospace/.config --target=/home/$USER/.config .
stow --dir=/home/$USER/dotfiles/nvim/.config --target=/home/$USER/.config .
stow --dir=/home/$USER/dotfiles/k9s/.config --target=/home/$USER/.config .
stow --dir=/home/$USER/dotfiles/hypr/.config --target=/home/$USER/.config .
stow --dir=/home/$USER/dotfiles/rofi/.config --target=/home/$USER/.config .
stow --dir=/home/$USER/dotfiles/waybar/.config --target=/home/$USER/.config .
stow --dir=/home/$USER/dotfiles/kitty/.config --target=/home/$USER/.config .
stow --dir=/home/$USER/dotfiles/zellij/.config --target=/home/$USER/.config .
stow --dir=/home/$USER/dotfiles/tmux/.config --target=/home/$USER/.config .To get a gorgeous, functional Git status prompt in Bash:
- Append the contents of
.addon_bashrcto your main~/.bashrc:cat .addon_bashrc >> ~/.bashrc
- Reload your terminal:
source ~/.bashrc
Here is a preview of the clean workspace with custom wallpaper and Gruvbox aesthetics:

