forked from Shinonome/alt-illogical-impulse
6.2 KiB
6.2 KiB
🎯 dots-hyprland Static Configuration Guide
📍 Overview
Since you're using declarative mode, configuration files are read-only in the Nix store. To customize static values, modify the source files in your flake and rebuild.
🔧 Key Configuration Files
1. 📱 Quickshell Main Config
File: configs/quickshell/ii/modules/common/Config.qml
🎨 Appearance Settings
property JsonObject appearance: JsonObject {
property bool extraBackgroundTint: true
property int fakeScreenRounding: 2 // 0: None | 1: Always | 2: When not fullscreen
property bool transparency: false
property JsonObject wallpaperTheming: JsonObject {
property bool enableAppsAndShell: true
property bool enableQtApps: true
property bool enableTerminal: true
}
}
🖥️ Bar Configuration
property JsonObject bar: JsonObject {
property bool bottom: false // Instead of top
property int cornerStyle: 0 // 0: Hug | 1: Float | 2: Plain rectangle
property bool borderless: false
property string topLeftIcon: "spark" // Options: distro, spark
property bool showBackground: true
property bool verbose: true
property JsonObject utilButtons: JsonObject {
property bool showScreenSnip: true
property bool showColorPicker: false
property bool showMicToggle: false
property bool showKeyboardToggle: true
property bool showDarkModeToggle: true
property bool showPerformanceProfileToggle: false
}
property JsonObject workspaces: JsonObject {
property bool monochromeIcons: true
property int shown: 10
property bool showAppIcons: true
property bool alwaysShowNumbers: false
property int showNumberDelay: 300 // milliseconds
}
}
🔋 Battery Settings
property JsonObject battery: JsonObject {
property int low: 20
property int critical: 5
property bool automaticSuspend: true
property int suspend: 3
}
🚀 Applications
property JsonObject apps: JsonObject {
property string bluetooth: "kcmshell6 kcm_bluetooth"
property string network: "plasmawindowed org.kde.plasma.networkmanagement"
property string networkEthernet: "kcmshell6 kcm_networkmanagement"
property string taskManager: "plasma-systemmonitor --page-name Processes"
property string terminal: "kitty -1" // This is only for shell actions
}
⏰ Time Format
property JsonObject time: JsonObject {
property string format: "hh:mm"
property string dateFormat: "ddd, dd/MM"
}
2. 🖼️ Hyprland Configuration
File: configs/hypr/general.conf.template
🎨 Visual Settings
general {
gaps_in = @GAPS_IN@ # Inner gaps (default: 4)
gaps_out = @GAPS_OUT@ # Outer gaps (default: 7)
gaps_workspaces = 50 # Workspace gaps
border_size = @BORDER_SIZE@ # Border width (default: 2)
resize_on_border = true
allow_tearing = @ALLOW_TEARING@ # For gaming
}
decoration {
rounding = @ROUNDING@ # Corner rounding (default: 16)
blur {
enabled = @BLUR_ENABLED@ # Background blur
xray = true
}
}
3. 🖥️ Terminal Configuration
File: configs/applications/foot.ini.template
📝 Terminal Settings
[main]
term=xterm-256color
login-shell=yes
app-id=foot
title=foot
[scrollback]
lines=1000 # Scrollback buffer size
multiplier=3.0
[cursor]
style=beam # Options: block, beam, underline
blink=no
beam-thickness=1.5
[colors]
alpha=0.95 # Terminal transparency
4. 🎯 Fuzzel Launcher
File: configs/matugen/templates/fuzzel/fuzzel_theme.ini
🚀 Launcher Settings
[main]
terminal=foot
layer=overlay
width=40
horizontal-pad=40
vertical-pad=8
inner-pad=5
🔄 How to Apply Changes
Method 1: Edit and Rebuild
- Edit the configuration files in
~/sources/celesrenata/end-4-flakes/configs/ - Commit your changes:
git add . && git commit -m "Update static config" - Rebuild:
nix build .#homeConfigurations.declarative.activationPackage - Activate:
./result/activate
Method 2: Switch to Writable Mode
If you want to edit configs directly without rebuilding:
# Build writable configuration
nix build .#homeConfigurations.writable.activationPackage
./result/activate
# Run setup script
~/.local/bin/initialSetup.sh
# Edit configs directly in ~/.config/
🎨 Common Customizations
Change Terminal to Kitty
In configs/quickshell/ii/modules/common/Config.qml:
property string terminal: "kitty -1"
Move Bar to Bottom
property bool bottom: true
Disable Transparency
property bool transparency: false
Change Time Format to 12-hour
property string format: "hh:mm AP"
Increase Terminal Scrollback
In configs/applications/foot.ini.template:
[scrollback]
lines=10000
Change Workspace Count
property int shown: 5 // Show only 5 workspaces
🔍 Finding More Options
- Quickshell Config:
configs/quickshell/ii/modules/common/Config.qml(lines 1-300) - Hyprland Settings:
configs/hypr/*.conf.templatefiles - Application Configs:
configs/applications/directory - Theming Templates:
configs/matugen/templates/directory
💡 Pro Tips
- Search for specific settings:
grep -r "property.*terminal" configs/ - Check template variables: Look for
@VARIABLE@patterns in.templatefiles - Test changes: Use writable mode for quick testing, then apply to declarative mode
- Backup configs: Git tracks all changes, so you can always revert
🚀 Quick Start Examples
Minimal Gaming Setup
// In Config.qml
property bool transparency: false
property bool showBackground: false
property int shown: 3 // Only 3 workspaces
Productivity Setup
// In Config.qml
property bool showScreenSnip: true
property bool showColorPicker: true
property string format: "HH:mm:ss"
property string dateFormat: "dddd, MMMM dd, yyyy"
Minimalist Setup
// In Config.qml
property bool borderless: true
property bool showBackground: false
property bool monochromeIcons: true
property bool verbose: false