My personal dotfiles configuration for Linux (CachyOS/Arch-based).
- Fastfetch - System information display
- Starship - Cross-shell prompt
- Konsole - Terminal profile with color scheme and font configuration
- KDE - Desktop theme configuration (colors, icons, look-and-feel)
- Scripts - Helper scripts for Starship modules and system management
- Linux system (tested on CachyOS/Arch-based)
fastfetch- System information toolstarship- Prompt frameworkfishshell (or your preferred shell)dbus-send- For music info script (usually comes with D-Bus)nvidia-smior AMD GPU tools - For GPU load script (optional)ffmpeg- For screenshot cropping script (optional)
-
Clone this repository:
git clone https://github.com/troyBORG/dotfiles.git ~/dotfiles -
Install Fastfetch config:
mkdir -p ~/.config/fastfetch cp ~/dotfiles/config/fastfetch/config.jsonc ~/.config/fastfetch/config.jsonc
-
Install Starship binary:
curl -sS https://starship.rs/install.sh | shTo update Starship later, rerun the above script. It will replace the current version without touching Starship's configuration.
-
Install Starship config:
mkdir -p ~/.config cp ~/dotfiles/config/starship/starship.toml ~/.config/starship.toml
-
Install Konsole profile (optional):
mkdir -p ~/.local/share/konsole ~/.config cp ~/dotfiles/config/konsole/"Troy Theme.profile" ~/.local/share/konsole/ cp ~/dotfiles/config/konsole/DarkOneNuanced.colorscheme ~/.local/share/konsole/ cp ~/dotfiles/config/konsole/konsolerc ~/.config/konsolerc
Then open Konsole settings and set "Troy Theme" as your default profile.
-
Install KDE theme configuration (optional):
Option A: Install as a selectable color scheme (Recommended):
mkdir -p ~/.local/share/color-schemes cp ~/dotfiles/config/kde/TroyGreen.colors ~/.local/share/color-schemes/
Then open KDE System Settings → Appearance → Colors and select "Troy Green" from the list.
Option B: Install by copying config files directly:
cp ~/dotfiles/config/kde/kdeglobals ~/.config/kdeglobals cp ~/dotfiles/config/kde/plasmarc ~/.config/plasmarc
Note: This config uses the CachyOS-Nord look-and-feel package. You may need to install it or adjust the
LookAndFeelPackagesetting inkdeglobalsto match your installed theme. The theme uses a green accent color and breeze-dark icons. -
Install scripts:
mkdir -p ~/.local/bin cp ~/dotfiles/scripts/media-info.sh ~/.local/bin/media-info.sh cp ~/dotfiles/scripts/gpu-load.sh ~/.local/bin/gpu-load.sh chmod +x ~/.local/bin/media-info.sh chmod +x ~/.local/bin/gpu-load.sh
Optional - ZFS Rollback Script:
# Add to PATH or create symlink sudo ln -s ~/dotfiles/scripts/zfs-rollback.sh /usr/local/bin/zfs-rollback # Or add to your shell config: export PATH="$HOME/dotfiles/scripts:$PATH"
Optional - Screenshot Cropping Script:
chmod +x ~/dotfiles/scripts/crop_screenshot.sh # Add to PATH or create symlink sudo ln -s ~/dotfiles/scripts/crop_screenshot.sh /usr/local/bin/crop-screenshot # Or add to your shell config: export PATH="$HOME/dotfiles/scripts:$PATH"
Optional - Automatic Snapshot Cleanup:
# Set up weekly automatic cleanup (keeps last 14 days of snapshots) sudo cp ~/dotfiles/scripts/zfs-pacman-snapshot-cleanup.service /etc/systemd/system/ sudo cp ~/dotfiles/scripts/zfs-pacman-snapshot-cleanup.timer /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable --now zfs-pacman-snapshot-cleanup.timer
-
Initialize Starship in your shell:
For Fish shell (add to
~/.config/fish/config.fish):starship init fish | sourceFor Bash (add to
~/.bashrc):eval "$(starship init bash)"
For Zsh (add to
~/.zshrc):eval "$(starship init zsh)"
| Source | Destination |
|---|---|
config/fastfetch/config.jsonc |
~/.config/fastfetch/config.jsonc |
config/starship/starship.toml |
~/.config/starship/starship.toml |
config/konsole/Troy Theme.profile |
~/.local/share/konsole/Troy Theme.profile |
config/konsole/DarkOneNuanced.colorscheme |
~/.local/share/konsole/DarkOneNuanced.colorscheme |
config/konsole/konsolerc |
~/.config/konsolerc |
config/kde/TroyGreen.colors |
~/.local/share/color-schemes/TroyGreen.colors (recommended - shows in System Settings) |
config/kde/kdeglobals |
~/.config/kdeglobals (alternative method) |
config/kde/plasmarc |
~/.config/plasmarc |
| Source | Destination |
|---|---|
scripts/media-info.sh |
~/.local/bin/media-info.sh |
scripts/gpu-load.sh |
~/.local/bin/gpu-load.sh |
scripts/zfs-rollback.sh |
~/dotfiles/scripts/zfs-rollback.sh (or symlink to /usr/local/bin/zfs-rollback) |
scripts/check-boot-space.sh |
~/dotfiles/scripts/check-boot-space.sh (or add to PATH) |
scripts/crop_screenshot.sh |
~/dotfiles/scripts/crop_screenshot.sh (or add to PATH) |
scripts/check-arc-cache.sh |
~/dotfiles/scripts/check-arc-cache.sh (or add to PATH) |
scripts/kill-wlx-overlay.sh |
~/dotfiles/scripts/kill-wlx-overlay.sh (or add to PATH) |
scripts/zfs-pacman-snapshot-cleanup.service |
/etc/systemd/system/zfs-pacman-snapshot-cleanup.service (for automatic pacman snapshot cleanup) |
scripts/zfs-pacman-snapshot-cleanup.timer |
/etc/systemd/system/zfs-pacman-snapshot-cleanup.timer (for automatic pacman snapshot cleanup) |
- System information display with custom layout
- GPU temperature and VRAM usage
- CPU temperature
- Storage usage with progress bars
- Custom ASCII art logo
- Catppuccin Mocha color scheme
- Powerline-style prompt with colored segments
- Git status indicators
- Custom music module (shows currently playing track from any MPRIS player)
- Custom GPU load module (NVIDIA/AMD support)
- "Troy Theme" profile with DarkOneNuanced color scheme
- Configured with Hack font (Nerd Font compatible)
- Optimized for terminal usage with custom colors
- Custom color scheme with green accent color (RGB: 61,212,37)
- CachyOS-Nord look-and-feel package
- breeze-dark icon theme
- Custom window manager colors
- Configured file dialog settings
Displays currently playing media from any MPRIS-compatible player (Spotify, VLC, YouTube, Twitch, Netflix, etc.)
- Works with any MPRIS player (music players and browsers)
- Shows artist and title for music, or video title for streaming services
- Platform-specific icons (YouTube, Twitch, Netflix, Hulu, Amazon Prime, Vimeo, SoundCloud, Plex)
- Automatically removes platform names from titles
- Automatically hides when no media is playing
Displays GPU utilization percentage
- NVIDIA: Uses
nvidia-smi - AMD (ROCm): Uses
rocm-smi - AMD (open-source): Falls back to sysfs (
/sys/class/drm/card*/device/gpu_busy_percent) - Automatically detects GPU vendor
ZFS snapshot management and rollback helper for systems using ZFS with automatic pacman snapshots
- List snapshots:
zfs-rollback list- View all pacman snapshots - Latest snapshot:
zfs-rollback latest- Show the most recent snapshot - Rollback:
zfs-rollback rollback [SNAPSHOT]- Rollback to a specific snapshot (or latest) - Info:
zfs-rollback info [SNAPSHOT]- Show detailed snapshot information - Cleanup:
zfs-rollback cleanup [DAYS]- Delete snapshots older than N days (default: 30) - Works with automatic pacman pre-transaction snapshots
- Includes safety prompts before destructive operations
- Designed for CachyOS/Arch Linux with ZFS root filesystem
Monitor /boot and /boot/efi partition space to prevent running out of space during kernel updates
- Quick check:
check-boot-space.sh- Shows space usage, largest files, and installed kernels - Warnings: Alerts when space usage exceeds 60% (warning) or 80% (critical)
- Kernel info: Lists installed kernel packages and boot files
- Recommendations: Provides cleanup suggestions when needed
- Helps prevent the "boot partition full" issue during kernel updates
FFmpeg utility to split tall screenshots into chunks
- Auto-detection: Automatically detects image dimensions
- Smart chunking: Auto-calculates optimal chunk height to create ~12 chunks
- Manual override: Optional chunk height parameter for custom chunk sizes
- Usage:
./crop_screenshot.sh image.png [chunk_height] - Useful for processing very tall screenshots or images that are too large to handle as a single file
ZFS ARC cache analysis tool to see what datasets are likely cached
- ARC statistics: Shows total ARC size, data cache size, and cache hit rate
- Dataset analysis: Calculates which datasets are likely cached by comparing sizes to ARC
- Cache effectiveness: Displays hit rate and cache status (excellent/good/fair/poor)
- Usage:
./check-arc-cache.sh- Check all datasets./check-arc-cache.sh --resonite- Only check Resonite datasets./check-arc-cache.sh --dataset zpcachyos/ROOT/cos/home/resonite-cache- Check specific dataset./check-arc-cache.sh --brief- Brief output format
- Helps identify what files are being cached by ZFS ARC (useful for understanding why RAM usage is high)
Kill and restart wlx-overlay-s VR overlay helper
- Kill stuck processes: Finds and terminates any running
wlx-overlay-sprocesses - Auto-restart: Automatically restarts with
wlx-overlay-s --replaceafter killing - Graceful shutdown: Tries SIGTERM first, then SIGKILL if needed
- Usage:
./kill-wlx-overlay.sh- Double-click the desktop shortcut or run from terminal - Useful when the overlay gets stuck or needs to be restarted after VR runtime changes
Automatic Cleanup Setup: Snapshots will accumulate over time and won't auto-cleanup by default. To set up automatic weekly cleanup:
-
Install the systemd service and timer (see
scripts/zfs-pacman-snapshot-cleanup.serviceandscripts/zfs-pacman-snapshot-cleanup.timer):sudo cp ~/dotfiles/scripts/zfs-pacman-snapshot-cleanup.service /etc/systemd/system/ sudo cp ~/dotfiles/scripts/zfs-pacman-snapshot-cleanup.timer /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable --now zfs-pacman-snapshot-cleanup.timer
-
This will automatically delete snapshots older than 14 days every week (runs in non-interactive mode). The 14-day retention period is appropriate for pacman snapshots on rolling distributions like CachyOS - they're transactional rollback points, not archival backups. If you need longer-term recovery, use the
znap_*snapshots instead. -
To adjust the retention period, edit
/etc/systemd/system/zfs-pacman-snapshot-cleanup.serviceand change thecleanup 14parameter. Typical values: 7 days (aggressive), 10-14 days (recommended), or 30 days (overkill but harmless). -
Check timer status:
systemctl status zfs-pacman-snapshot-cleanup.timer
Note: This cleanup timer only manages pacman-pre-* snapshots. The znap_* snapshots created by zfs-auto-snapshot (hourly/daily/weekly/monthly) are managed separately by their respective timers and have their own retention policies.
fastfetch- Installationstarship- Installationdbus-send- Usually comes with D-Bus (system package)nvidia-smi- Comes with NVIDIA drivers (for NVIDIA GPU load)rocm-smi- AMD ROCm tools (optional, for AMD GPU load)zfs- ZFS filesystem tools (forzfs-rollback.shandcheck-arc-cache.shscripts, requires ZFS root filesystem)ffmpeg- Image/video processing tools (forcrop_screenshot.shscript)arc_summary- ZFS ARC statistics tool (comes with zfs-utils package, forcheck-arc-cache.sh)
The Starship config uses the Catppuccin Mocha palette. To change colors, edit ~/.config/starship.toml and modify the [palettes.catppuccin_mocha] section.
To customize the Fastfetch display, edit ~/.config/fastfetch/config.jsonc and modify the modules array.
The Konsole profile uses the DarkOneNuanced color scheme with Hack font. To customize, edit the profile files in ~/.local/share/konsole/ or modify the color scheme file.
The KDE theme configuration includes a custom "Troy Green" color scheme with a green accent color (RGB: 61,212,37). The theme can be installed as a selectable color scheme (recommended) or by copying config files directly.
As a color scheme: Install TroyGreen.colors to ~/.local/share/color-schemes/ and select it from KDE System Settings → Appearance → Colors.
Direct config: The kdeglobals file contains color scheme definitions and the plasmarc file contains wallpaper settings (sanitized in the repository). The config uses the CachyOS-Nord look-and-feel package and breeze-dark icons. To customize, edit these files or use KDE System Settings to modify and then copy the updated files back to the repository.
Personal dotfiles - feel free to use and modify as needed.
