No description
Find a file
2026-02-18 14:43:45 +01:00
agentic-llms removed the commit-message-writer agent and added skill-creator skill 2026-02-18 14:43:45 +01:00
default refactor: reorganize .zshrc and add DISABLE_ZOXIDE guard 2026-02-18 09:03:36 +01:00
deprecated feat: moved task and timew aliases to deprecated 2025-11-05 10:28:33 +01:00
dwm-addons fix: changed numbering for different modules to avoid conflicts 2025-11-05 10:13:34 +01:00
install-scripts feat: changed default theme for tmux+kitty to cattpuccin mocha 2025-11-11 10:12:28 +01:00
.gitattributes taskrc gitmustignore for sync 2024-12-07 13:15:46 +01:00
.gitignore feat: created initial dwm config, split dotfiles into modules 2025-10-18 20:39:06 +02:00
.gitmodules changed .gitmodules 2024-04-25 21:48:19 +02:00
.stow-local-ignore added new arch quick setup script 2025-04-21 18:15:02 +02:00
README.md docs: Updated README.md 2025-11-11 10:27:58 +01:00

My dotfiles

A modular dotfiles repository for Arch Linux systems, featuring a modern tmux + neovim Personal Development Environment (PDE) with kitty terminal emulator. Built with flexibility and productivity in mind, using GNU Stow for symlink management.

Features

Core Setup

  • Terminal Multiplexer: tmux with TPM and custom prefix (Ctrl+s)
  • Terminal Emulator: kitty with minimal padding
  • Text Editor: neovim (managed as git submodule)
  • IDE Integration: Comprehensive IdeaVim configuration with LSP-like mappings
  • Shell: ZSH with modular configuration system
  • Prompt: Starship with minimal left prompt and rich right-side information

Modern CLI Tools

  • eza - Modern ls replacement with icons and git integration
  • zoxide - Smart directory jumping (cd replacement)
  • bat - Syntax-highlighted cat alternative
  • fzf - Fuzzy finder for files and command history
  • yay - AUR helper for Arch Linux
  • gitui - Terminal UI for git with vim keybindings

Theme

Currently using Catppuccin Mocha theme across:

  • tmux
  • kitty
  • (Commented alternatives: Dracula, Rose Pine)

Productivity Features

  • Kanata Keyboard Remapping:

    • Caps Lock → Esc (tap) / Ctrl (hold)
    • hjkl → Arrow keys when Caps Lock held
    • Runs as systemd service
  • Workmode Script:

    • Blocks distracting websites (YouTube, Twitter, LinkedIn, Instagram, Facebook)
    • Interactive WORK/WASTE mode toggle
  • Git Integration:

    • Open current repo in browser with open-github.sh
    • gitui for terminal-based git workflow

Modular Architecture

Three distinct modules managed via GNU Stow:

  1. default - Core configurations for daily use
  2. dwm-addons - Additional configs for DWM window manager
  3. deprecated - Legacy Taskwarrior/Timewarrior configs (optional)

Requirements

Core Dependencies

The following are installed automatically by the arch-quick-setup.sh script:

Essential:

git
tmux
neovim
kitty
stow
zsh
ttf-jetbrains-mono-nerd (JetBrains Mono Nerd Font)

Modern CLI Tools:

fzf
bat
zoxide
eza
yay
starship
gitui

Productivity:

kanata-bin (AUR)

Development:

nvm (Node Version Manager)
sdkman (JVM tool management)

Optional Dependencies

For dwm-addons module:

dwm
brightnessctl
dunst
xorg-xsetroot
dwmbar-git (AUR)

For deprecated module:

taskwarrior
timewarrior
taskopen
fcron (or any cron implementation)

Installation

Clone the repository with submodules:

cd ~
git clone https://github.com/GyroZepelix/.dotfiles.git --recursive
cd .dotfiles

Run the automated installation script:

cd install-scripts
chmod +x arch-quick-setup.sh
./arch-quick-setup.sh

The script will:

  • Install all core dependencies
  • Symlink default dotfiles using GNU Stow
  • Install TPM (Tmux Plugin Manager)
  • Set up Kanata with systemd service
  • Change default shell to ZSH
  • Optionally set up Taskwarrior sync

Manual Installation

If you prefer manual installation:

cd ~/.dotfiles
stow default

Install TPM manually:

git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

Open tmux and install plugins:

tmux
# Press Ctrl+s then I to install plugins

Open neovim to install plugins:

nvim
# Wait for Lazy to install all plugins

Post-Installation

Important: Reboot your system for Kanata keyboard remapping to work properly.

reboot

Optional Modules

DWM Window Manager

Install additional configurations for DWM:

cd install-scripts
chmod +x patch-dwm.sh
./patch-dwm.sh

This adds:

  • .xinitrc with dunst, dwmbar, and dwm startup
  • dwmbar status bar configuration
  • DWM-specific shell aliases

Deprecated Features (Taskwarrior/Timewarrior)

Install legacy task and time tracking tools:

cd install-scripts
chmod +x patch-deprecated.sh
./patch-deprecated.sh

Warning: These configurations are no longer actively maintained and come with zero guarantees for functionality.

Syncing Setup

If you choose to use Taskwarrior and Timewarrior, you can set up syncing:

The deprecated module includes:

  • Automated sync scripts with file locking
  • Systemd services and timers for automatic syncing
  • Manual sync scripts: taskw-update.sh and timew-update.sh

Project Structure

.dotfiles/
├── default/              # Core configurations
│   ├── .config/
│   │   ├── tmux/         # Tmux config + TPM
│   │   ├── kitty/        # Kitty terminal config
│   │   ├── kanata/       # Keyboard remapping
│   │   ├── gitui/        # Git TUI config
│   │   └── starship.toml # Shell prompt
│   ├── .scripts/
│   │   ├── shell_config/ # Modular ZSH configs
│   │   ├── bin/          # Custom utility scripts
│   │   └── completion_zsh/ # Shell completions
│   ├── .zshrc            # Main ZSH configuration
│   └── .ideavimrc        # IdeaVim configuration
│
├── dwm-addons/           # DWM-specific configs
│   ├── .xinitrc
│   └── .config/dwmbar/
│
├── deprecated/           # Legacy task management
│   ├── .config/task/
│   ├── .config/timew/
│   └── .local/bin/       # Sync scripts
│
└── install-scripts/      # Automated setup
    ├── arch-quick-setup.sh
    ├── patch-dwm.sh
    ├── patch-deprecated.sh
    └── systemd-services/ # Service definitions

Configuration Highlights

Modular Shell Configuration

ZSH configuration is split into numbered modules in ~/.scripts/shell_config/:

  • 01_add_scripts_to_path.zsh - Adds custom scripts to PATH
  • 02-advanced_terminal.zsh - Modern CLI tool aliases and integrations
  • 03-neovim_default_editor.zsh - Sets neovim as default editor
  • 04-zsh_bindkey.zsh - Advanced keybindings and history search
  • 10-dwm.zsh - DWM-specific aliases (if installed)

Tmux Features

  • Custom prefix: Ctrl+s
  • Plugins: vim-tmux-navigator, tmux-resurrect, tmux-yank, cpu/battery monitoring
  • Catppuccin Mocha theme
  • Seamless vim-tmux navigation

IdeaVim Configuration

Comprehensive 334-line configuration with:

  • LSP-like mappings for code navigation
  • Debugging integration
  • Git integration
  • Custom leader key workflows

Productivity Scripts

  • workmode.sh - Block distracting websites for focus sessions
  • open-github.sh - Open current git repository in browser
  • task-topprojects.sh - View top Taskwarrior projects (deprecated module)

Customization

Changing Themes

Theme alternatives are commented in the configuration files:

tmux (~/.config/tmux/tmux.conf):

# Uncomment desired theme
# set -g @plugin 'rose-pine/tmux'
# set -g @plugin 'dracula/tmux'
set -g @plugin 'catppuccin/tmux'

kitty (~/.config/kitty/kitty.conf):

# Uncomment desired theme
# include ./themes/dracula.conf
include ./themes/catppuccin-mocha.conf

Adding Custom Shell Functions

Create a new file in ~/.scripts/shell_config/ with a numbered prefix:

echo 'alias myalias="command"' > ~/.scripts/shell_config/05-custom.zsh

The file will be automatically sourced on next shell startup.

Keyboard Shortcuts

Kanata Remapping

  • Caps Lock (tap): Escape
  • Caps Lock (hold): Control
  • Caps Lock + h/j/k/l: Left/Down/Up/Right arrows

Tmux (prefix: Ctrl+s)

  • prefix + I: Install plugins
  • prefix + |: Split window vertically
  • prefix + -: Split window horizontally
  • Ctrl+h/j/k/l: Navigate between tmux panes and vim windows

Troubleshooting

Kanata Not Working

  • Ensure you're in the uinput group: groups
  • Check service status: systemctl --user status kanata
  • Reboot after installation

Tmux Plugins Not Loading

  • Install TPM: Press prefix + I in tmux
  • Check TPM directory: ls ~/.tmux/plugins/tpm

ZSH Configuration Not Loading

  • Ensure you're using ZSH: echo $SHELL
  • Change shell: chsh -s $(which zsh)
  • Source configuration: source ~/.zshrc

Neovim Plugins Issues

  • Open neovim and run: :Lazy sync
  • Check neovim health: :checkhealth

Contributions

Your contributions are always welcome! If you would like to improve the dotfiles or have suggestions:

  1. Fork the repository
  2. Create a new branch with your improvements: git checkout -b feature-xyz
  3. Make your changes or additions
  4. Commit your changes: git commit -am 'Add some feature'
  5. Push to the branch: git push origin feature-xyz
  6. Create a new Pull Request

Please ensure your commit messages are clear and code changes are well-documented. Code reviews and discussions about improvements are highly appreciated.

License

Feel free to use and modify these dotfiles for your own setup.

Acknowledgments