Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

139 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Godod's Dotfiles

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.


Gallery / Screenshots

πŸ–₯️ Main Desktop Window

Main Desktop Window Hyprland dynamic workspace with custom Waybar status bar matching active wallpaper color accents.

πŸš€ Application Launcher (Rofi) & Specs (Fastfetch)

Rofi Application Selector Rofi Theme Layout Variant Fastfetch Specifications
Rofi Application Menu Rofi theme choice Fastfetch spec output

πŸ“ Modal Text Editing (Helix)

Helix Code Editing view Helix Layout Buffers & Splits
Helix File Edit View Helix layout splits

🎨 Dynamic Wallpaper selector (Fish)

Wallpaper selection banner The wallpaper command inside Fish shell visualizes step completions and compiles configurations via Matugen.


Dynamic Color & Theming Architecture

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
Loading

Dynamic Theming Workflow

  1. Execute wallpaper inside the Fish shell.
  2. Choose an image from ~/Pictures/Wallpapers inside a visual picker.
  3. Select a Rofi configuration theme from FZF.
  4. The script saves variables (WALLPAPER_PATH, ROFI_THEME) to the user environment, updates the background using hyprpaper, and triggers Matugen.
  5. Matugen interpolates color templates and compiles stylesheets for active GUI/CLI programs.
  6. Signals (SIGUSR2, USR1) trigger running programs to hot-reload styling options dynamically.

Tech Stack & Core Applications

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.

Prerequisites

  • Shell: bash >= 5.2 (required for native subshell evaluations)
  • Linux Packages installer: Arch Linux environment with yay AUR helper configured.
  • macOS Packages installer: macOS environment with Homebrew (brew) setup.

How to Install

This section outlines the setup process, focusing on detailed instructions to install all necessary dependencies on Arch Linux.

1. Clone the Repository

Clone this dotfiles repository into your home directory:

git clone https://github.com/Godod/dotfiles.git ~/.dotfiles
cd ~/.dotfiles

2. Install Dependencies (Arch Linux)

You can provision all dependencies automatically using the included script or install them step-by-step manually.

Option A: Automated Installation (Recommended)

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.sh

Option B: Manual Installation & Dependency Breakdown

If you prefer to configure your environment step-by-step, follow the manual instructions below:

A. Bootstrap an AUR Helper (yay)

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/yay
B. Install Package Stack

Run 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 sabiql

Here 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.
C. Register Fish and Change User Shell

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/fish

Note

Re-login or reload your terminal session for the default shell swap to take effect.

D. Install Fish Plugins

Bootstrap the fish terminal experience by running the plugins installer script plugins.fish:

fish ./installation/plugins.fish

This installs Tide prompt v6, FZF integrations, and bracket auto-pairing hooks.

E. Apply Configurations using Stow

Generate system symbolic links for all configurations (Helix, Neovim, Tmux, Fish, Ghostty, etc.) using apply:

./apply

3. macOS Setup (Alternative)

For macOS environments, use macos.sh to provision packages via Homebrew:

chmod +x ./installation/macos.sh
./installation/macos.sh

4. Post-Installation Steps

  • Fish Prompt Setup: Open a new shell instance and configure the Tide layout:
    tide configure
  • Tmux Plugins Setup: Launch tmux, then install tmux packages via tpack by pressing Ctrl + b followed by I (capital I).

Configuration Directories

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, tpack plugin 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 hl API.
  • 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.

About

Configuration files for different stuff

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages