Personal configuration files (dotfiles) for modern terminal applications, developer environments, custom shell setups, and a dynamic tiling window manager workspace. Configured with a unified Material You design system and managed using GNU Stow for frictionless deployment.
Hyprland dynamic workspace with custom Waybar status bar matching active wallpaper color accents.
| Rofi Application Selector | Rofi Theme Layout Variant | Fastfetch Specifications |
|---|---|---|
![]() |
![]() |
![]() |
| Helix Code Editing view | Helix Layout Buffers & Splits |
|---|---|
![]() |
![]() |
The wallpaper command inside Fish shell visualizes step completions and compiles configurations via Matugen.
This system features a Dynamic Material You Color Pipeline which extracts colors from your wallpaper and applies them across the system instantly:
graph TD
A[wallpaper command] -->|Select image| B(Yazi Picker)
A -->|Select Rofi layout| C(FZF Menu)
B --> D[Set systemd variables]
B --> E[Update Hyprpaper Wallpaper]
B --> F[Run Matugen Engine]
F -->|Compile CSS| G[Waybar status bar]
F -->|Compile RASI| H[Rofi application menu]
F -->|Compile Conf| I[Ghostty terminal]
F -->|Compile TOML| J[Helix editor]
F -->|Compile TOML| K[Yazi file manager]
F -->|Compile TOML| L[Dunst notifications]
G -.->|Signals SIGUSR2| G
I -.->|Signals SIGUSR2| I
J -.->|Signals USR1| J
L -.->|dunstctl reload| L
- Execute
wallpaperinside the Fish shell. - Choose an image from
~/Pictures/Wallpapersinside a visual picker. - Select a Rofi configuration theme from FZF.
- The script saves variables (
WALLPAPER_PATH,ROFI_THEME) to the user environment, updates the background usinghyprpaper, and triggers Matugen. - Matugen interpolates color templates and compiles stylesheets for active GUI/CLI programs.
- Signals (
SIGUSR2,USR1) trigger running programs to hot-reload styling options dynamically.
| Category | Application | Setup Description |
|---|---|---|
| Shell | Fish Shell | Modern interactive shell, Tide prompt, custom abbreviation aliases, and directory trackers. |
| Editors | Helix & Neovim | Post-modern modal configurations, custom lazygit buffers, formatting runners, and LSP attachments. |
| Window Manager | Hyprland | Programmatic tiling manager configured in modular Lua files with media bindings. |
| Terminals | Ghostty & Kitty | Blazing-fast GPU term layouts, font fallback structures, and cursor trail particle rendering. |
| Notifications | Dunst | Dynamic Material You notification daemon with Waybar history counts. |
| File Manager | Yazi | Terminal file explorer featuring responsive preview grids and custom theme files. |
| Git Client | Lazygit | Terminal Git GUI featuring custom AI-assisted commit message picker. |
| Theme Compiler | Matugen | Dynamic Material You color scheme generator and process signals hook. |
- Shell:
bash>= 5.2 (required for native subshell evaluations) - Linux Packages installer: Arch Linux environment with
yayAUR helper configured. - macOS Packages installer: macOS environment with
Homebrew(brew) setup.
This section outlines the setup process, focusing on detailed instructions to install all necessary dependencies on Arch Linux.
Clone this dotfiles repository into your home directory:
git clone https://github.com/Godod/dotfiles.git ~/.dotfiles
cd ~/.dotfilesYou can provision all dependencies automatically using the included script or install them step-by-step manually.
Simply execute the automated installer script arch.sh. This script automatically installs all core and AUR package dependencies using yay, registers fish as your user shell, installs the shell plugins, and stows the configurations:
chmod +x ./installation/arch.sh
./installation/arch.shIf you prefer to configure your environment step-by-step, follow the manual instructions below:
Several essential components (such as tpack-bin, dblab-bin, nls-bin, and sabiql) reside in the Arch User Repository (AUR). If you do not have an AUR helper configured, install yay:
# Install development prerequisites
sudo pacman -S --needed git base-devel
# Clone, build and install yay
git clone https://aur.archlinux.org/yay.git /tmp/yay
cd /tmp/yay
makepkg -si
# Clean up
cd -
rm -rf /tmp/yayRun the following command to download and build all system tools, editors, environments, and custom package dependencies:
yay -S git base-devel fish fisher fzf fd bat tmux neovim deno lazygit eza helix stow zoxide yazi bash tpack-bin fastfetch dblab-bin marksman lazydocker nls-bin sabiqlHere is a detailed breakdown of what each dependency is used for:
| Package | Source | Purpose / Integration |
|---|---|---|
git |
Official Repos | Core version control to sync dotfiles and track modifications. |
base-devel |
Official Repos | Basic compilation tools (gcc, make, etc.) required to build AUR helper modules. |
fish |
Official Repos | The primary interactive command shell featuring custom abbreviations and environment helpers. |
fisher |
Official Repos/AUR | Fish shell plugin manager. |
fzf |
Official Repos | Fuzzy finder utility integrated into shell navigations and selection menus. |
fd |
Official Repos | Rapid find replacement used for visual file indexing and menu completions. |
bat |
Official Repos | Syntax-highlighting reader for terminal configurations and file previewing. |
tmux |
Official Repos | Terminal multiplexer used to manage persistent workflow sessions. |
neovim |
Official Repos | Extensible text editor integrated with custom plugins. |
deno |
Official Repos | Secure runtime for JavaScript and TypeScript required by Markdown/YAML helper tooling. |
lazygit |
Official Repos | Terminal UI dashboard for quick Git staging, commits, and branch switching. |
eza |
Official Repos | Modern file listing engine used as a custom directory structure output helper. |
helix |
Official Repos | Post-modern modal text editor used as the main console code editing tool. |
stow |
Official Repos | GNU Stow to link folder configurations into ~/.config. |
zoxide |
Official Repos | Smarter directory database tracking frequent directories (cd utility). |
yazi |
Official Repos | Terminal file manager with responsive preview grids and custom image render hooks. |
bash |
Official Repos | GNU Bourne Again SHell required for running terminal wallpaper pipelines. |
tpack-bin |
AUR | Binary version of Tmux Package Manager (TPM) used for session plugins. |
fastfetch |
Official Repos | Fast system diagnostics visualizer. |
dblab-bin |
AUR | Interactive database terminal client supporting multiple SQL drivers. |
marksman |
Official Repos | Markdown Language Server Protocol (LSP) provider. |
lazydocker |
Official Repos | Keyboard-driven terminal dashboard for Docker container tracking. |
nls-bin |
AUR | Modern directory lister utility used as the primary ls/ll alias command. |
sabiql |
AUR | Keyboard-driven SQL query executor. |
Register the newly installed fish environment and set it as your default login shell:
# Add fish to shells listing
echo "/bin/fish" | sudo tee -a /etc/shells
# Update your user shell
chsh -s /bin/fishNote
Re-login or reload your terminal session for the default shell swap to take effect.
Bootstrap the fish terminal experience by running the plugins installer script plugins.fish:
fish ./installation/plugins.fishThis installs Tide prompt v6, FZF integrations, and bracket auto-pairing hooks.
Generate system symbolic links for all configurations (Helix, Neovim, Tmux, Fish, Ghostty, etc.) using apply:
./applyFor macOS environments, use macos.sh to provision packages via Homebrew:
chmod +x ./installation/macos.sh
./installation/macos.sh- Fish Prompt Setup: Open a new shell instance and configure the Tide layout:
tide configure
- Tmux Plugins Setup: Launch
tmux, then install tmux packages viatpackby pressingCtrl + bfollowed byI(capital I).
Detailed READMEs for each component:
- Installation: Installer scripts for Arch and macOS packages, shell default set, and fisher.
- Fish Shell: Fish configurations, custom wallpaper scripts, custom abbreviations, zoxide integrations.
- Helix Editor: Post-modern modal editor settings, keymaps for lazygit/yazi buffers, formatter setup.
- Neovim: Lazy.nvim package loading, LSP configurations, custom remaps (Primeagen inspired).
- Tmux: Tmux multiplexer,
tpackplugin configuration, pomodoro, tmux2k Catppuccin theme. - Yazi: Fast terminal file manager, visual wrap settings, Material You theme template.
- Hyprland: Tiling Window Manager configured via Lua using the native
hlAPI. - Dunst Notifications: Dynamic notification daemon, Waybar connection templates, and urgency rules.
- Matugen: Color generation parameters and post-reload system signals.
- Rofi: Application finder and window switching menu configurations.
- Ghostty: GPU terminal settings, fonts, background opacity overrides.
- Kitty: Kitty terminal config with customized cursor trails and theme files.
- Lazygit: Git terminal view, including custom AI Conventional Commits generation hook.
- Fastfetch: Styled fetch interface listing system specifications and uptime values.
- Waybar: Customized status bar modules matching wallpapers.




