Skip to content

Repository files navigation

Dotfiles

My personal dotfiles for Hyprland-based Wayland environment.

📦 Main Components

  • Window Manager: Hyprland - Dynamic tiling Wayland compositor
  • Terminal: Kitty - Fast, feature-rich GPU-accelerated terminal
  • Shell: Zsh + Starship - Powerful shell with custom prompt
  • Editor: Neovim + Zed - Modern editors for different needs
  • Launcher: Rofi - Application launcher and window switcher
  • Status Bar: Waybar - Customizable Wayland status bar
  • Notifications: Dunst - Lightweight notification daemon
  • File Manager: Yazi - Blazing fast terminal file manager
  • Version Control: Jujutsu - Git-compatible VCS
  • Shell Scripting: Ashell - POSIX-compliant shell scripting library

🚀 Installation

# Clone the repository
git clone <your-repo-url> ~/.dotfiles
cd ~/.dotfiles

# Run the deployment script
uv run mxbin/deploy.py

The deployment script will create symlinks from ~/.dotfiles to the appropriate locations in your home directory.

📁 Project Structure

.
├── ashell/          # Ashell shell scripting configuration
├── dunst/           # Notification daemon config
├── hypr/            # Hyprland configs (main, plugins, launcher, lock)
├── jj/              # Jujutsu version control config
├── kitty/           # Kitty terminal emulator config
├── latexmkrc        # LaTeX compilation settings
├── mxbin/           # Custom shell scripts
├── nvim/            # Neovim configuration
├── rofi/            # Rofi launcher themes and configs
├── starship/        # Starship prompt configuration
├── waybar/          # Waybar status bar config
├── yazi/            # Yazi file manager config
├── zed/             # Zed editor settings
└── zsh/             # Zsh shell configuration

🛠️ Custom Scripts (mxbin)

  • deploy.py - Symlink deployment script
  • screenShot.sh - Screenshot tool
  • clipboard.sh - Clipboard manager
  • gamemode.sh - Game mode toggle
  • swytch.sh - Window/workspace switcher
  • waybarCava.sh - Audio visualizer for Waybar
  • caps_use_for_shurufa.sh - Caps Lock remapping for input methods
  • chwp - Wallpaper changer
  • jy - Utility script
  • rime-clipboard-learn.py - Boosts frequently copied words in the Rime user dictionary (runs via systemd timer, see below)

🀄 Rime Input Method

The base config lives in the system directory (/usr/share/rime-data, default 朙月拼音) and the user data in ~/.local/share/fcitx5/rime. Rime already learns from what you type (user dictionary), but it knows nothing about what you copy. Two ways to make it smarter:

  1. Manual pinned phrases - create ~/.local/share/fcitx5/rime/custom_phrase.txt with lines 文字<Tab>编码<Tab>权重 (weight optional, larger ranks first), then redeploy (input method tray menu "重新部署", or fcitx5-remote -r).

  2. Clipboard learning - rime-clipboard-learn.py scans cliphist history, counts frequent words, and imports them into luna_pinyin.userdb with a boosted weight. Enable it with:

    uv run mxbin/deploy.py          # symlinks mxbin/ and systemd/user/
    systemctl --user daemon-reload
    systemctl --user enable --now rime-clipboard-learn.timer

    The timer scans every 30 minutes; on login the Hyprland autostart applies any pending words before fcitx5 starts, so imports never interrupt typing. Tune behavior via env vars documented in the script header (RIME_LEARN_THRESHOLD, RIME_LEARN_STATE_DIR, ...).

⚙️ Configuration Details

Hyprland

  • Located in hypr/
  • Contains main config, plugins, launcher, and lock screen settings
  • Sub-configs for bindings, colors, executables, and window rules

Neovim

  • LazyVim-based configuration
  • Located in nvim/
  • See nvim/README.md for editor-specific details

Kitty

  • Multiple theme support (current, dank)
  • Located in kitty/

Waybar

  • Custom styled status bar with modules
  • Located in waybar/

📝 Notes

  • Configuration files are managed via symbolic links
  • Existing files will not be overwritten (check deployment script output)
  • Tested on Arch Linux with Wayland session

📄 License

MIT

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages