Skip to content

rifuki/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

135 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dotfiles

Personal dotfiles for macOS, Debian, Arch, and Gentoo Linux — batteries included.

Screenshots

Terminal (Neofetch) Editor (Neovim)
Tiling (Yabai)

Window Switching Demo:

Screen.Recording.2026-02-22.at.01.mp4

Theme: Cyan-magenta palette inspired by Miku color with Ghostty, Neovim, Yabai, and SKHD

Install

bash <(curl -fsSL https://dotfiles.rifuki.dev)

Auto-detects OS (macOS, Arch Linux, Gentoo Linux, or Debian Linux). Uses bash <() instead of curl | bash to preserve interactive TTY for password prompts.

Restart terminal or run exec zsh after install.

Uninstall

macOS:

bash <(curl -fsSL https://dotfiles.rifuki.dev/macos/uninstall.sh)

Debian:

bash <(curl -fsSL https://dotfiles.rifuki.dev/debian/uninstall.sh)

Arch:

bash <(curl -fsSL https://dotfiles.rifuki.dev/arch/uninstall.sh)

Gentoo:

bash <(curl -fsSL https://dotfiles.rifuki.dev/gentoo/uninstall.sh)

Remove Homebrew completely (macOS)

bash ~/.dotfiles/macos/uninstall-brew.sh

What's included

Tools (macOS)

Tool Description
Neovim Text editor
Tmux Terminal multiplexer
Oh My Zsh Zsh framework
Starship Cross-shell prompt
Node.js JavaScript runtime + npm (via Homebrew)
mise Optional polyglot version manager
Bun JavaScript runtime & package manager
Rust Rust toolchain (stable)
Yazi Terminal file manager
Yabai Tiling window manager
Skhd Hotkey daemon
Ghostty Terminal emulator
gh GitHub CLI
trash Safe rm replacement
htop Process viewer
ripgrep Fast search tool
neofetch System info
OrbStack Docker & Linux VM runtime
Cloudflare WARP VPN client
Hot Menu bar thermal monitor
Google Chrome Browser
JetBrainsMono Nerd Font Patched developer font

Blockchain Tools (optional, macOS)

Tool Description
Solana Solana CLI + development tools
Anchor Solana framework (via AVM)
suiup Sui version manager
sui-move-analyzer Sui Move LSP (~10min build)

Tools (Gentoo — Hyprland Desktop)

Tool Description
Hyprland Wayland tiling compositor
Waybar Status bar
Wofi App launcher
Ghostty Terminal emulator
hyprlock Screen locker
hyprpaper Wallpaper daemon
grim + slurp Screenshots
Floating Screenshot macOS-style draggable screenshot thumbnail with swipe-to-save (Print / Shift+Print)
Three-Finger Drag macOS-style touchpad drag/select on Hyprland via libinput + ydotoold
dunst Notification daemon
Rifuki Shell menus Waybar quick actions, power menu, and wallpaper picker (swww with hyprpaper fallback)

Note: Hyprland-related tools are installed via portage by the user. The dotfiles installer symlinks configs and warns about missing tools.

Tools (Arch — Fresh Hyprland Desktop)

Tool Description
Hyprland stack Hyprland, Waybar, Wofi, Ghostty, hyprlock, hyprpaper, swww
System stack PipeWire/WirePlumber, NetworkManager, Bluetooth, Dunst
Desktop apps Dolphin, Pavucontrol, CopyQ, Papirus icons, GTK/Qt theming helpers
Fonts JetBrainsMono Nerd Font, FiraCode Nerd Font, Noto fonts, Terminus TTY font
Rifuki Shell menus Waybar launcher, quick actions, power menu, wallpaper picker

Note: Arch install can bootstrap a very fresh TTY system. It installs packages with pacman, sets a readable TTY font, symlinks configs, and adds .zprofile to auto-start Hyprland on TTY1.

Configs

  • nvim — NvChad-based config with LSP, Treesitter, and plugins
  • tmux — Catppuccin Frappe theme, TPM plugins (resurrect, continuum, cpu, battery)
  • starship — Cyan-magenta prompt theme
  • ghostty — Terminal emulator config (macOS + Gentoo)
  • yabai + skhd — Tiling window manager + hotkeys (macOS)
  • screenshot-floating — Gentoo/Hyprland screenshot app with temporary draggable thumbnails
  • three-finger-drag — Gentoo/Hyprland touchpad daemon for macOS-style three-finger drag/select
  • wallpaper-picker / actions — shared Waybar popup scripts for Arch + Gentoo
  • neofetch — Miku ASCII art + config (unified)
  • yazi — Terminal file manager with cross-platform opener
  • .zshrc — Cyan-magenta syntax highlighting, aliases, PATH setup

Structure

~/.dotfiles/
├── shared/
│   ├── .config/
│   │   ├── nvim/          # NvChad config + LSP + plugins
│   │   ├── neofetch/      # Custom ASCII art + config (unified)
│   │   ├── starship/      # Cyan-magenta prompt (unified)
│   │   ├── tmux/          # Catppuccin theme + plugins (unified)
│   │   └── yazi/          # File manager (unified, cross-platform opener)
│   └── .local/bin/        # Shared desktop scripts (quick actions, wallpaper)
│
├── macos/
│   ├── .config/
│   │   ├── ghostty/       # Terminal config
│   │   ├── skhd/          # Hotkey daemon
│   │   └── yabai/         # Window manager
│   ├── .hyper.js          # Hyper terminal config
│   ├── .zshrc             # macOS shell config
│   ├── install.sh         # macOS installer
│   ├── uninstall.sh       # macOS uninstaller
│   ├── uninstall-brew.sh  # Complete Homebrew removal
│   ├── macos-defaults.sh  # macOS system defaults
│   └── macos-defaults-check.sh
│
├── debian/
│   ├── .zshrc             # Debian shell config
│   ├── install.sh         # Debian installer
│   └── uninstall.sh       # Debian uninstaller
│
├── arch/
│   ├── .config/
│   │   ├── dunst/         # Notification daemon
│   │   ├── ghostty/       # Terminal emulator config
│   │   ├── hypr/          # Hyprland + hyprlock + hyprpaper
│   │   ├── waybar/        # Rifuki Shell bar
│   │   └── wofi/          # App launcher + dmenu popups
│   ├── .local/
│   │   └── bin/           # Screenshot scripts
│   ├── .zprofile          # Auto-start Hyprland on TTY1
│   ├── .zshrc             # Arch shell config
│   ├── install.sh         # Arch installer
│   └── uninstall.sh       # Arch uninstaller
│
├── gentoo/
│   ├── .config/
│   │   ├── ghostty/       # Terminal emulator config
│   │   ├── hypr/          # Hyprland + hyprlock + hyprpaper
│   │   ├── waybar/        # Status bar (TokyoNight theme)
│   │   └── wofi/          # App launcher
│   ├── .local/
│   │   └── bin/           # Screenshot scripts + three-finger drag daemon
│   ├── system/            # System config backup (reference only, not installed)
│   │   ├── boot/grub/     # grub.cfg snapshot
│   │   └── etc/           # /etc/profile + profile.d/tty-bash.sh
│   ├── .zshrc             # Gentoo shell config
│   ├── install.sh         # Gentoo installer
│   └── uninstall.sh       # Gentoo uninstaller
│
├── install.sh             # Entry point (detects OS, delegates)
├── .gitignore
└── README.md

Shared configs use cross-platform strategies (uname checks, ssh_only, graceful fallbacks) so the same files work on both macOS and Linux.

Post-Installation (Gentoo Three-Finger Drag)

The three-finger-drag daemon autostarts from Hyprland and maps a 3-finger touchpad swipe into left-click hold + pointer motion for drag/drop and area selection.

Requirements:

  • x11-misc/ydotool and dev-libs/libinput
  • libinput debug-events access to the touchpad device
  • an accessible ydotoold socket for injecting mouse events

If it does not start, check ~/.local/state/three-finger-drag.log. Sensitivity can be tuned with RIFUKI_THREE_FINGER_DRAG_SCALE.

Post-Installation (Yabai & Skhd)

After install, manually set up Yabai and Skhd:

Yabai:

  1. Configure scripting addition (if SIP disabled):
    echo "$(whoami) ALL=(root) NOPASSWD: sha256:$(shasum -a 256 $(which yabai) | cut -d " " -f 1) $(which yabai) --load-sa" | sudo tee /private/etc/sudoers.d/yabai
  2. Make sure yabairc has: yabai -m signal --add event=dock_did_restart action="sudo yabai --load-sa"
  3. Run: yabai --start-service
  4. When prompted, allow Yabai in System Settings > Privacy & Security > Accessibility

Skhd:

  1. Run: skhd --start-service
  2. When prompted, allow Skhd in System Settings > Privacy & Security > Accessibility
  3. Disable Secure Keyboard Entry in Terminal if needed

Re-run / Update

Re-running install.sh is safe:

  • Interactive checklist lets you pick which components to install
  • Already-installed tools are detected and shown in the menu
  • Local config changes are backed up to ~/.config/backup-TIMESTAMP/
  • Dotfiles are restored to the latest remote state

Theme

Color Palette (used in Starship, Zsh, installer/uninstaller):

  • Cyan: #00D9FF — Commands, time, headers
  • Green: #50FA7B — Paths, success messages
  • Magenta: #FF79C6 — Git branches, selected items
  • Purple: #BD93F9 — Builtins
  • Teal: #01CBC6 — Aliases
  • Orange: #FFB86C — Path alternates
  • Peach: #F0CAA4 — Status, warnings
  • Gray: #6C757D — Secondary text

Colors are consistent across:

  • .zshrc syntax highlighting
  • starship.toml prompt
  • install.sh / uninstall.sh UI

About

Personal dotfiles for Arch, Debian, Gentoo, and macOS. One-line install with Neovim, Tmux, and TWM

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors