forked from Shinonome/alt-illogical-impulse
Implement rich NixOS configuration system
✅ COMPLETE: Full NixOS-style configuration system implemented 🎯 Features: - Rich configuration options for Quickshell, Hyprland, and Terminal - Type-safe NixOS module options with defaults and descriptions - Generated configuration files from Nix expressions - Example configurations (gaming, productivity, minimalist) - Comprehensive documentation 🔧 Configuration Modules: - modules/components/quickshell-config.nix - Quickshell options - modules/components/hyprland-config.nix - Hyprland options - modules/components/terminal-config.nix - Terminal options 📝 Example Usage: programs.dots-hyprland = { quickshell.bar.utilButtons.showColorPicker = true; hyprland.general.gapsIn = 6; terminal.colors.alpha = 0.90; }; 🎨 Generated Files: - ~/.config/quickshell/ii/modules/common/Config.qml (NixOS-managed) - ~/.config/hypr/general.conf (NixOS-managed) - ~/.config/foot/foot.ini (NixOS-managed) ✅ Tested: All configurations build and activate successfully 🎉 Ready for production use with full NixOS declarative configuration!
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
# Gaming-optimized configuration for dots-hyprland
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.dots-hyprland = {
|
||||
enable = true;
|
||||
source = ./configs;
|
||||
packageSet = "essential";
|
||||
mode = "declarative";
|
||||
|
||||
# 🎮 Gaming-optimized settings
|
||||
quickshell = {
|
||||
appearance = {
|
||||
transparency = false; # Disable for performance
|
||||
fakeScreenRounding = 0; # No rounding
|
||||
};
|
||||
|
||||
bar = {
|
||||
bottom = true; # Bottom bar for gaming
|
||||
showBackground = false; # Minimal UI
|
||||
verbose = false; # Less clutter
|
||||
|
||||
utilButtons = {
|
||||
showScreenSnip = false;
|
||||
showColorPicker = false;
|
||||
showMicToggle = true; # Useful for gaming
|
||||
showKeyboardToggle = false;
|
||||
showDarkModeToggle = false;
|
||||
showPerformanceProfileToggle = true; # Gaming profiles
|
||||
};
|
||||
|
||||
workspaces = {
|
||||
shown = 3; # Only 3 workspaces for gaming
|
||||
showAppIcons = false; # Minimal
|
||||
alwaysShowNumbers = true;
|
||||
};
|
||||
};
|
||||
|
||||
battery = {
|
||||
low = 15; # Lower threshold for gaming
|
||||
critical = 5;
|
||||
automaticSuspend = false; # Never suspend while gaming
|
||||
};
|
||||
|
||||
apps = {
|
||||
terminal = "foot";
|
||||
taskManager = "htop"; # Lightweight task manager
|
||||
};
|
||||
};
|
||||
|
||||
hyprland = {
|
||||
general = {
|
||||
gapsIn = 0; # No gaps for fullscreen gaming
|
||||
gapsOut = 0;
|
||||
borderSize = 1; # Minimal borders
|
||||
allowTearing = true; # Enable for competitive gaming
|
||||
};
|
||||
|
||||
decoration = {
|
||||
rounding = 0; # No rounding for performance
|
||||
blurEnabled = false; # Disable blur for performance
|
||||
};
|
||||
|
||||
gestures = {
|
||||
workspaceSwipe = false; # Disable gestures
|
||||
};
|
||||
};
|
||||
|
||||
terminal = {
|
||||
colors = {
|
||||
alpha = 1.0; # No transparency for performance
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
# Minimalist configuration for dots-hyprland
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.dots-hyprland = {
|
||||
enable = true;
|
||||
source = ./configs;
|
||||
packageSet = "minimal";
|
||||
mode = "declarative";
|
||||
|
||||
# 🎯 Minimalist settings
|
||||
quickshell = {
|
||||
appearance = {
|
||||
transparency = false;
|
||||
fakeScreenRounding = 0; # No rounding
|
||||
};
|
||||
|
||||
bar = {
|
||||
bottom = false;
|
||||
cornerStyle = 2; # Plain rectangle
|
||||
borderless = true; # No grouping
|
||||
showBackground = false; # No background
|
||||
verbose = false; # Minimal info
|
||||
|
||||
utilButtons = {
|
||||
showScreenSnip = false;
|
||||
showColorPicker = false;
|
||||
showMicToggle = false;
|
||||
showKeyboardToggle = false;
|
||||
showDarkModeToggle = false;
|
||||
showPerformanceProfileToggle = false;
|
||||
};
|
||||
|
||||
workspaces = {
|
||||
monochromeIcons = true;
|
||||
shown = 5; # Only 5 workspaces
|
||||
showAppIcons = false; # No app icons
|
||||
alwaysShowNumbers = true;
|
||||
};
|
||||
};
|
||||
|
||||
battery = {
|
||||
low = 20;
|
||||
critical = 5;
|
||||
automaticSuspend = true;
|
||||
suspend = 3;
|
||||
};
|
||||
|
||||
apps = {
|
||||
terminal = "foot";
|
||||
taskManager = "htop";
|
||||
};
|
||||
|
||||
time = {
|
||||
format = "HH:mm"; # Simple 24-hour
|
||||
dateFormat = "dd/MM"; # Minimal date
|
||||
};
|
||||
};
|
||||
|
||||
hyprland = {
|
||||
general = {
|
||||
gapsIn = 2; # Minimal gaps
|
||||
gapsOut = 4;
|
||||
borderSize = 1; # Thin borders
|
||||
allowTearing = false;
|
||||
};
|
||||
|
||||
decoration = {
|
||||
rounding = 0; # No rounding
|
||||
blurEnabled = false; # No blur
|
||||
};
|
||||
|
||||
gestures = {
|
||||
workspaceSwipe = true;
|
||||
};
|
||||
};
|
||||
|
||||
terminal = {
|
||||
scrollback = {
|
||||
lines = 500; # Smaller scrollback
|
||||
};
|
||||
|
||||
cursor = {
|
||||
style = "block"; # Simple block cursor
|
||||
blink = false;
|
||||
};
|
||||
|
||||
colors = {
|
||||
alpha = 1.0; # No transparency
|
||||
};
|
||||
|
||||
mouse = {
|
||||
hideWhenTyping = true; # Clean interface
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,93 @@
|
||||
# Productivity-focused configuration for dots-hyprland
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.dots-hyprland = {
|
||||
enable = true;
|
||||
source = ./configs;
|
||||
packageSet = "essential";
|
||||
mode = "declarative";
|
||||
|
||||
# 💼 Productivity-optimized settings
|
||||
quickshell = {
|
||||
appearance = {
|
||||
transparency = true; # Nice visual effects
|
||||
fakeScreenRounding = 2;
|
||||
};
|
||||
|
||||
bar = {
|
||||
bottom = false; # Top bar for traditional feel
|
||||
cornerStyle = 1; # Float style
|
||||
showBackground = true;
|
||||
verbose = true; # Show detailed info
|
||||
|
||||
utilButtons = {
|
||||
showScreenSnip = true; # Essential for productivity
|
||||
showColorPicker = true; # Useful for design work
|
||||
showMicToggle = true; # For meetings
|
||||
showKeyboardToggle = true;
|
||||
showDarkModeToggle = true;
|
||||
showPerformanceProfileToggle = false;
|
||||
};
|
||||
|
||||
workspaces = {
|
||||
shown = 10; # Many workspaces for organization
|
||||
showAppIcons = true;
|
||||
alwaysShowNumbers = true; # Always show for quick navigation
|
||||
showNumberDelay = 100; # Quick response
|
||||
};
|
||||
};
|
||||
|
||||
battery = {
|
||||
low = 25; # Higher threshold for work
|
||||
critical = 10;
|
||||
automaticSuspend = true;
|
||||
suspend = 5; # Longer suspend delay
|
||||
};
|
||||
|
||||
apps = {
|
||||
terminal = "foot";
|
||||
taskManager = "plasma-systemmonitor --page-name Processes";
|
||||
};
|
||||
|
||||
time = {
|
||||
format = "HH:mm:ss"; # 24-hour with seconds
|
||||
dateFormat = "dddd, MMMM dd, yyyy"; # Full date
|
||||
};
|
||||
};
|
||||
|
||||
hyprland = {
|
||||
general = {
|
||||
gapsIn = 6; # Comfortable gaps
|
||||
gapsOut = 10;
|
||||
borderSize = 2;
|
||||
allowTearing = false; # Smooth visuals
|
||||
};
|
||||
|
||||
decoration = {
|
||||
rounding = 12; # Moderate rounding
|
||||
blurEnabled = true; # Nice visual effects
|
||||
};
|
||||
|
||||
gestures = {
|
||||
workspaceSwipe = true; # Efficient navigation
|
||||
};
|
||||
};
|
||||
|
||||
terminal = {
|
||||
scrollback = {
|
||||
lines = 10000; # Large scrollback for logs
|
||||
multiplier = 3.0;
|
||||
};
|
||||
|
||||
cursor = {
|
||||
style = "beam";
|
||||
blink = true; # Visible cursor
|
||||
};
|
||||
|
||||
colors = {
|
||||
alpha = 0.90; # Slight transparency
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user