General Questions
Why use GNU Stow for managing dotfiles?
Why use GNU Stow for managing dotfiles?
GNU Stow is used because it creates symbolic links from a centralized dotfiles repository to your home directory, making it easy to:The
- Version control: All configs in one git repository
- Easy deployment: Single command to install all configs
- Selective installation: Choose which configs to install
- Safe updates: Changes are immediately reflected without copying
--dotfiles flag is particularly useful because it allows files like dot-config/ in the repository to become .config/ in your home directory, making them visible in git without being hidden.Example:- Repository:
dot-config/hypr/hyprland.conf - Home directory:
~/.config/hypr/hyprland.conf(symlinked)
What is the 12-factor design approach mentioned in the configs?
What is the 12-factor design approach mentioned in the configs?
The 12-factor approach (from 12factor.net) is a methodology for building maintainable applications. In the context of these dotfiles:Separation of Configuration and Code:Benefits:
- Base configurations are tracked in git
- Environment-specific settings go in local files (not tracked)
- Local files are automatically loaded if they exist
- Same base config works on multiple machines
- Machine-specific tweaks in local files
- Base config stays clean and portable
- No risk of committing sensitive local settings
- Keep shared settings in tracked files
- Put machine-specific settings in
.local.conffiles - Add
.local.confto.gitignore
Can I use parts of this config without installing everything?
Can I use parts of this config without installing everything?
Yes! The configuration is modular and can be used selectively.Option 1: Selective Stow
Instead of installing all dotfiles, stow specific directories:Option 2: Copy Individual Files
Copy specific config files you want:Option 3: Use as Reference
Browse the repository and copy snippets to your existing configs:
- Tmux keybindings from
tmux.conf - Hyprland animations from
modules/look.conf - Waybar modules from
waybar/config.jsonc
dot-config/tmux/- Complete tmux setupdot-config/hypr/- Hyprland window managerdot-config/waybar/- Status bardot-config/rofi/- Application launcher
Configuration Questions
How do I switch between laptop and desktop configs?
How do I switch between laptop and desktop configs?
The repository includes separate configuration files for laptop and desktop setups.Current Setup:
Method 1: Symlink Switching (Recommended)Method 2: Environment-Based
Create a script in your shell profile:Method 3: Local Override
Keep the base config and override specific settings in a local file sourced at the end.After switching, reload Hyprland:
- Desktop config:
~/.config/hypr/hyprland.conf - Laptop config:
~/.config/hypr/modules/hyprland-laptop.conf
| Setting | Desktop | Laptop |
|---|---|---|
| Primary Monitor | eDP-1 | eDP-1 |
| Secondary Monitor | HDMI-A-2 | Disabled |
| Gaps (inner) | 0px | 4px |
| Gaps (outer) | 0px | 5px |
| Border Color | Blue gradient | Cyan/Green gradient |
| Display Module | displays.conf | displays-laptop.conf |
Super + Shift + RHow do I customize the Catppuccin theme colors?
How do I customize the Catppuccin theme colors?
The configuration uses Catppuccin Mocha theme across multiple applications.Tmux (tmux.conf:51):Available flavours: Waybar:
Catppuccin colors are defined in Custom Theme:
To use a completely different theme:
latte, frappe, macchiato, mochaHyprland Border Colors:
Edit variables in hyprland.conf:waybar/style.css. Modify CSS variables:- Update tmux theme plugin
- Modify Hyprland color variables
- Replace waybar CSS
- Update rofi theme path
Where are application logs located?
Where are application logs located?
Different applications store logs in different locations:Hyprland:Waybar:Tmux:
Tmux doesn’t have separate logs, but plugin errors appear in tmux status:System logs:X11/Wayland session logs:
How do I reload configurations without logging out?
How do I reload configurations without logging out?
Most configurations can be reloaded without a full logout:Hyprland:Waybar:Tmux:Environment Variables:When Full Logout is Required:
- Display manager configuration changes
- Systemd user service modifications
- Major Hyprland structural changes
- Graphics driver updates
Installation & Updates
How do I keep my configs updated with upstream changes?
How do I keep my configs updated with upstream changes?
If you forked or cloned this repository, you can pull updates:Method 1: Direct Pull (if you haven’t made changes)Method 2: Merge Upstream (if you’ve customized)Method 3: Cherry-pick Specific ChangesBest Practice:
- Keep your customizations in
.local.conffiles - Document your changes in a separate file
- Use git branches for experimental changes
- Review changes before merging:
git diff upstream/main
What dependencies need to be installed?
What dependencies need to be installed?
The configuration has several dependencies organized by component:Core (Required for Hyprland):Fonts (Required for proper rendering):Waybar Dependencies:Optional but Recommended:Authentication:Tmux:Clipboard Manager:Quick Install (Fedora):
Use the waybar Justfile:
How do I uninstall or remove these configs?
How do I uninstall or remove these configs?
Since the configs are symlinked with GNU Stow, removal is clean:Method 1: Using Stow (Recommended)Method 2: Remove Specific ConfigsMethod 3: Manual Removal
Since they’re symlinks, you can just delete them:Verify Removal:Clean Up:Note: Your original configs (if backed up) can be restored:
Advanced Questions
How do I add custom keybindings to Hyprland?
How do I add custom keybindings to Hyprland?
Keybindings are defined in
~/.config/hypr/modules/keybindings.conf.To add custom bindings without modifying the base file:- Create a local keybindings file:
- Add your custom bindings:
- Source it in
hyprland.conf:
- Reload Hyprland:
Super + Shift + R
Can I use this config on multiple machines with different hardware?
Can I use this config on multiple machines with different hardware?
Yes! The configuration is designed to be portable:1. Use the laptop/desktop variants:3. Use hostname-based loading:
Add to your 4. Git branch per machine:Environment Variables:
The config already separates hardware-agnostic settings (animations, keybindings) from hardware-specific ones (monitors, input devices).
- Symlink the appropriate config file for each machine
- See “How do I switch between laptop and desktop configs?” above
hyprland.conf:How do I debug Waybar module scripts?
How do I debug Waybar module scripts?
Waybar includes custom scripts that may need debugging:Scripts in config:
~/.config/waybar/toggle_temp.sh~/.config/waybar/cycle-power-profile.sh
- Make scripts executable:
- Test script directly:
- Check script dependencies:
- View waybar output:
- Validate JSON config:
- Test module in isolation: Create a minimal config with just one module to test.
- Missing shebangs (
#!/bin/bash) - Wrong permissions
- Missing dependencies (check script commands)
- Incorrect output format (waybar expects specific JSON/text)
Still Have Questions?
If your question isn’t answered here:- Check the Common Issues page
- Review configuration files in
~/.config/for inline comments - Consult application-specific documentation:
- Check the source repository README for updates
- Review git commit history for context on specific changes