119 Commits

Author SHA1 Message Date
kenji 59d1b4a337 removed transform hypr 2025-12-23 06:31:25 -06:00
kenji 151034f4fc updated position of monitor 2025-12-22 19:06:33 -06:00
kenji eb226350fc fixed again 2025-12-22 18:57:32 -06:00
kenji ae081803a5 fixed incorrect formatting 2025-12-22 18:54:33 -06:00
kenji 8cba405b0e added new monitor 2025-12-22 18:51:23 -06:00
kenji c61fe63bae added bluetoothctl 2025-12-13 09:39:44 -06:00
kenji c8d0cec782 changed vrr to 0 2025-12-12 19:42:40 -06:00
kenji a02fd32ee2 changed monitor pos 2025-12-12 19:36:25 -06:00
kenji 6be0a483e8 added general 2025-12-12 14:16:13 -06:00
kenji 3c32424793 fixed the directory 2025-12-12 11:34:02 -06:00
kenji 5535d43146 test 2025-12-12 11:29:10 -06:00
kenji 4f5b41204c hypr: makes exectuable actually executable 2025-12-12 11:25:16 -06:00
kenji 6335cdce16 font: added fonts for foreign languages 2025-12-12 09:28:21 -06:00
kenji ce86247d3e mv switchwall 2025-11-24 17:30:22 -06:00
kenji 580865cb4c a 2025-10-14 18:25:29 -05:00
kenji 8b4cf2c91d replaced bind for grim 2025-09-20 15:11:10 -05:00
kenji ee37fc5f6d screenshot priority changes 2025-08-31 20:59:54 -05:00
kenji 7a5635507e changed DP 2025-08-24 11:59:08 -05:00
kenji 609720f540 a 2025-08-20 15:25:57 -05:00
kenji bec280bcbc updated pkgs hyprland 2025-08-20 15:19:31 -05:00
kenji 1dc5e26712 removed Super, T 2025-08-20 14:30:16 -05:00
kenji c0ad3a4acb added custom conf hypr 2025-08-20 14:28:38 -05:00
kenji 33dc50df7a add force 2025-08-20 14:14:23 -05:00
kenji 604108a093 a 2025-08-20 14:11:29 -05:00
kenji b5960f4363 removed executable 2025-08-20 13:56:47 -05:00
kenji 1654ba6ee4 removed colours.nix 2025-08-20 13:56:16 -05:00
kenji b1484ba42e minor fix 2025-08-20 13:55:56 -05:00
kenji 76edab5b1c removed attr from hypr 2025-08-20 13:54:48 -05:00
kenji c5bb2bf66f fix misspelling 2025-08-20 13:52:39 -05:00
kenji 624606d853 mass migration 2025-08-20 13:52:02 -05:00
kenji be5772ea09 moved wayland again 2025-08-20 13:37:06 -05:00
kenji e6dd387e9f moved wayland 2025-08-20 13:33:11 -05:00
kenji 84ac1c05e2 a 2025-08-20 13:23:21 -05:00
kenji e1ac8eeed1 removed executable
incompatible with builtins.path
2025-08-19 18:40:57 -05:00
kenji 415806ca96 a 2025-08-19 18:39:32 -05:00
kenji 650a5fa73c fix for commit 3c 2025-08-19 18:35:27 -05:00
kenji 3c496175dc converted hyprland conf to nix 2025-08-19 18:17:33 -05:00
kenji b1daadc71e added files 2025-08-19 17:03:16 -05:00
kenji aae0668878 updated monitor 2025-08-19 14:52:03 -05:00
kenji 7495f5ebbc a 2025-08-19 10:05:29 -05:00
kenji d9a4fba05a fix solaar not hidden on launch 2025-08-19 10:01:51 -05:00
kenji 64cf3883aa added lact 2025-08-19 09:55:32 -05:00
kenji 51d1d30a61 fixed solaar not launching 2025-08-18 23:15:09 -05:00
kenji c7e43f10e3 changed vrr to 2 2025-08-18 23:12:07 -05:00
kenji 93bcfd494c removed vrr 2025-08-18 23:10:24 -05:00
kenji b76a1e45ef downgraded resolution 2025-08-18 23:08:14 -05:00
kenji 527a8f2b75 reverted back 2025-08-18 23:03:56 -05:00
kenji 1d57900977 changed bitdepth 2025-08-18 23:00:47 -05:00
kenji 6fd73b8691 added solaar 2025-08-18 18:01:03 -05:00
kenji 40dbb31fbc added movetowindows binds 2025-08-17 09:45:56 -05:00
kenji d729f27755 fixed starship 2025-08-13 09:03:21 -05:00
kenji a270c99361 fix path 2025-08-13 08:59:27 -05:00
kenji dc379f2ee6 organized 2025-08-13 08:58:40 -05:00
kenji 992e54592b a 2025-08-13 08:53:14 -05:00
kenji c502d301b8 a 2025-08-13 08:51:56 -05:00
kenji 58b144792e a 2025-08-13 08:45:56 -05:00
kenji c7d6a04c77 a 2025-08-13 08:44:07 -05:00
kenji a29382966b a 2025-08-13 08:43:02 -05:00
kenji 9d2d722bc6 organized 2025-08-13 08:39:37 -05:00
kenji 490fb9ba35 fixed incorrect binds 2025-08-13 08:26:10 -05:00
kenji 5e7bef47a0 removed starship.enable on desktop.nix 2025-08-13 08:20:56 -05:00
kenji 891cad49f0 added simpleStarship 2025-08-13 08:20:36 -05:00
kenji d6c4327639 added starship enable 2025-08-13 08:14:04 -05:00
kenji fed7deef79 integrated new fonts 2025-08-12 08:18:32 -05:00
kenji d4b1e53471 updated nixos-fonts 2025-08-12 08:16:26 -05:00
kenji 40f9981167 added material symbol 2025-08-11 22:57:23 -05:00
kenji 1902d47c1e added 2025-08-11 22:23:51 -05:00
kenji ae331f28cf added pillow and materialyoucolor 2025-08-11 22:01:25 -05:00
kenji 41f93617ad a 2025-08-11 21:54:43 -05:00
kenji ed8b13037d a 2025-08-11 21:53:46 -05:00
kenji 7d0d6fbd9f a 2025-08-11 21:52:47 -05:00
kenji dcb26342b3 a 2025-08-11 21:52:22 -05:00
kenji 09a70bf980 a 2025-08-11 21:51:37 -05:00
kenji ccf5c9a252 a 2025-08-11 21:50:27 -05:00
kenji 06e277c316 a 2025-08-11 21:49:35 -05:00
kenji dc1c238819 a 2025-08-11 21:43:39 -05:00
kenji 8c5f3537f9 a 2025-08-11 21:41:48 -05:00
kenji 2348290bfb a 2025-08-11 21:39:15 -05:00
kenji 7b047e0719 UNFIX GET PREV 2025-08-11 21:36:53 -05:00
kenji bce41fec66 a 2025-08-11 21:28:49 -05:00
kenji a0d060a8c3 a 2025-08-11 21:19:12 -05:00
kenji c83efbc591 qa 2025-08-11 21:18:45 -05:00
kenji 230917fbb2 a 2025-08-11 21:15:31 -05:00
kenji 0b3db4e61a a 2025-08-11 21:11:51 -05:00
kenji 1a1a2b309f ad 2025-08-11 21:07:24 -05:00
kenji f9129a5fb7 test 2025-08-11 21:04:45 -05:00
kenji 166d9f3f4b added spacegrotesk 2025-08-11 21:03:40 -05:00
kenji cdf0188ec8 test 2025-08-11 20:57:31 -05:00
kenji 99638ade76 a 2025-08-11 20:54:54 -05:00
kenji 33953a915b fixed pkgs 2025-08-11 20:53:30 -05:00
kenji 3ad6d635d6 test 2025-08-11 20:41:47 -05:00
kenji f0ec76847f a 2025-08-11 20:37:50 -05:00
kenji a6c6f7958f fixed nix develop 2025-08-11 20:35:41 -05:00
kenji 4dc566a037 organized 2025-08-11 20:20:02 -05:00
kenji 55d2a9fe6c added vrr on DP-2 2025-08-11 19:39:58 -05:00
kenji db7d0a00f0 changed keybindings
onscreen keyboard and bartoggle
2025-08-11 19:29:48 -05:00
kenji b9a7145c5c flake update 2025-08-11 17:22:12 -05:00
kenji f94de758d2 fix monitor hyprland 2025-08-11 16:40:37 -05:00
kenji a34c685b73 fixed 2025-08-11 16:36:05 -05:00
kenji 16c5b8f999 added custom binds and monitor 2025-08-11 16:27:21 -05:00
kenji 181014b678 removed programs.hyprland 2025-08-11 16:11:47 -05:00
kenji 083be17af4 a 2025-08-11 16:09:38 -05:00
kenji f0d7d6f074 added 2025-08-11 16:08:37 -05:00
kenji d561e4f1ec added home-manager 2025-08-11 16:05:30 -05:00
kenji 686de93cee converted to homeManagerModules 2025-08-11 15:58:04 -05:00
kenji 1493021354 changed path again 2025-08-11 15:39:31 -05:00
kenji 48d7be6682 fixed path 2025-08-11 15:35:14 -05:00
kenji a9c40d493b changed environment.etc 2025-08-11 15:32:25 -05:00
kenji 3d36ead298 attemp 2 2025-08-11 15:28:41 -05:00
kenji 9b1de7c7ce replaced as a test 2025-08-11 15:22:09 -05:00
kenji ce6e885a23 organized 2025-08-11 15:19:40 -05:00
kenji 176ad4ba0b now works! 2025-08-11 14:52:24 -05:00
lsoriano-mcm 9a1ad0057e add 2025-08-09 13:26:24 -05:00
lsoriano-mcm 2327596517 added more environment etc 2025-08-09 12:24:30 -05:00
lsoriano-mcm 71b67cc772 environment etc 2025-08-09 12:18:39 -05:00
lsoriano-mcm 962934e82d added pkgs in cfg 2025-08-09 11:50:56 -05:00
lsoriano-mcm 1528a9f760 added oneUI 2025-08-09 08:37:05 -05:00
lsoriano-mcm 28be4d1bb4 added flakes for nix 2025-08-08 16:43:46 -05:00
lsoriano-mcm ad7ee4ad27 added flake.nix 2025-08-08 11:19:41 -05:00
27 changed files with 1882 additions and 24 deletions
+3
View File
@@ -1,2 +1,5 @@
# You can make apps auto-start here # You can make apps auto-start here
# Relevant Hyprland wiki section: https://wiki.hyprland.org/Configuring/Keywords/#executing # Relevant Hyprland wiki section: https://wiki.hyprland.org/Configuring/Keywords/#executing
exec-once = solaar -w hide
exec-once = bluetoothctl power on
# exec-once = lact daemon
+5 -1
View File
@@ -1,2 +1,6 @@
# Put general config stuff here # Put general config stuff here
# Here's a list of every variable: https://wiki.hyprland.org/Configuring/Variables/ # Here's a list of every variable: https://wiki.hyprland.org/Configuring/Variables/
# monitor=DP-2, highres@180,0x1080,1,bitdepth,10,cm,hdr,sdrbrightness,1.4,sdrsaturation,0.98
monitor=DP-1,3440x1440@180,0x1080,1,bitdepth,10,cm,hdr,sdrbrightness,1.4,sdrsaturation,0.98,vrr,0
monitor=DP-2, highres@highrr,760x0,1
monitor=HDMI-A-1, 1920x1080@120, 3440x1440, 1
+31
View File
@@ -9,3 +9,34 @@ bind = Ctrl+Super+Alt, Slash, exec, xdg-open ~/.config/hypr/custom/keybinds.conf
# Use ##! to add a section in that column # Use ##! to add a section in that column
# Add a comment after a bind to add a description, like above # Add a comment after a bind to add a description, like above
bind = Super, H, movefocus, l # [hidden]
bind = Super, L, movefocus, r # [hidden]
bind = Super, K, movefocus, u # [hidden]
bind = Super, J, movefocus, d # [hidden]
bind = Super+Shift, H, movewindow, l # [hidden]
bind = Super+Shift, L, movewindow, r # [hidden]
bind = Super+Shift, K, movewindow, u # [hidden]
bind = Super+Shift, J, movewindow, d # [hidden]
bind = Super+Shift, 1, movetoworkspace, 1 # [hidden]
bind = Super+Shift, 2, movetoworkspace, 2 # [hidden]
bind = Super+Shift, 3, movetoworkspace, 3 # [hidden]
bind = Super+Shift, 4, movetoworkspace, 4 # [hidden]
bind = Super+Shift, 5, movetoworkspace, 5 # [hidden]
bind = Super+Shift, 6, movetoworkspace, 6 # [hidden]
bind = Super+Shift, 7, movetoworkspace, 7 # [hidden]
bind = Super+Shift, 8, movetoworkspace, 8 # [hidden]
bind = Super+Shift, 9, movetoworkspace, 9 # [hidden]
bind = Super+Shift, 0, movetoworkspace, 0 # [hidden]
bindd = Super+Ctrl, K, Toggle on-screen keyboard, global, quickshell:oskToggle # Toggle on-screen keyboard
bindd = Super+Ctrl, J, Toggle bar, global, quickshell:barToggle # Toggle bar
# gaming
bind = Super, G, togglespecialworkspace, gaming
bind = Super+Shift, G, movetoworkspace, special:gaming
bind = Super, T, togglespecialworkspace, steam
bind = Super+Shift, T, movetoworkspace, special:steam
+6
View File
@@ -1,3 +1,9 @@
# You can put custom rules here # You can put custom rules here
# Window/layer rules: https://wiki.hyprland.org/Configuring/Window-Rules/ # Window/layer rules: https://wiki.hyprland.org/Configuring/Window-Rules/
# Workspace rules: https://wiki.hyprland.org/Configuring/Workspace-Rules/ # Workspace rules: https://wiki.hyprland.org/Configuring/Workspace-Rules/
windowrule = workspace special:steam, class:steam
windowrule = workspace special:gaming, class:^(steam_app_).*
workspace = special:gaming, monitor:DP-1, persistent:true
workspace = special:steam, monitor:DP-1, persistent:true, on-created-empty:steam
+1 -1
View File
@@ -138,7 +138,7 @@ misc {
swallow_regex = (foot|kitty|allacritty|Alacritty) swallow_regex = (foot|kitty|allacritty|Alacritty)
new_window_takes_over_fullscreen = 2 new_window_takes_over_fullscreen = 2
allow_session_lock_restore = true allow_session_lock_restore = true
session_lock_xray = true # session_lock_xray = true
initial_workspace_tracking = false initial_workspace_tracking = false
focus_on_activate = true focus_on_activate = true
} }
+9 -9
View File
@@ -26,11 +26,11 @@ bind = Super+Alt, A, global, quickshell:sidebarLeftToggleDetach # [hidden]
bind = Super, B, global, quickshell:sidebarLeftToggle # [hidden] bind = Super, B, global, quickshell:sidebarLeftToggle # [hidden]
bind = Super, O, global, quickshell:sidebarLeftToggle # [hidden] bind = Super, O, global, quickshell:sidebarLeftToggle # [hidden]
bindd = Super, N, Toggle right sidebar, global, quickshell:sidebarRightToggle # Toggle right sidebar bindd = Super, N, Toggle right sidebar, global, quickshell:sidebarRightToggle # Toggle right sidebar
bindd = Super, Slash, Toggle cheatsheet, global, quickshell:cheatsheetToggle # Toggle cheatsheet bindd = Super, Slash, Toggle cheatsheet, global, quickshell:ch+CtrleatsheetToggle # Toggle cheatsheet
bindd = Super, K, Toggle on-screen keyboard, global, quickshell:oskToggle # Toggle on-screen keyboard # bindd = Super, K, Toggle on-screen keyboard, global, quickshell:oskToggle # Toggle on-screen keyboard
bindd = Super, M, Toggle media controls, global, quickshell:mediaControlsToggle # Toggle media controls bindd = Super, M, Toggle media controls, global, quickshell:mediaControlsToggle # Toggle media controls
bindd = Ctrl+Alt, Delete, Toggle session menu, global, quickshell:sessionToggle # Toggle session menu bindd = Ctrl+Alt, Delete, Toggle session menu, global, quickshell:sessionToggle # Toggle session menu
bindd = Super, J, Toggle bar, global, quickshell:barToggle # Toggle bar # bindd = Super, J, Toggle bar, global, quickshell:barToggle # Toggle bar
bind = Ctrl+Alt, Delete, exec, qs -c $qsConfig ipc call TEST_ALIVE || pkill wlogout || wlogout -p layer-shell # [hidden] Session menu (fallback) bind = Ctrl+Alt, Delete, exec, qs -c $qsConfig ipc call TEST_ALIVE || pkill wlogout || wlogout -p layer-shell # [hidden] Session menu (fallback)
bind = Shift+Super+Alt, Slash, exec, qs -p ~/.config/quickshell/$qsConfig/welcome.qml # [hidden] Launch welcome app bind = Shift+Super+Alt, Slash, exec, qs -p ~/.config/quickshell/$qsConfig/welcome.qml # [hidden] Launch welcome app
@@ -51,9 +51,9 @@ bind = Ctrl+Super, R, exec, killall ags agsv1 gjs ydotool qs quickshell; qs -c $
# Screenshot, Record, OCR, Color picker, Clipboard history # Screenshot, Record, OCR, Color picker, Clipboard history
bindd = Super, V, Copy clipboard history entry, exec, qs -c $qsConfig ipc call TEST_ALIVE || pkill fuzzel || cliphist list | fuzzel --match-mode fzf --dmenu | cliphist decode | wl-copy # [hidden] Clipboard history >> clipboard (fallback) bindd = Super, V, Copy clipboard history entry, exec, qs -c $qsConfig ipc call TEST_ALIVE || pkill fuzzel || cliphist list | fuzzel --match-mode fzf --dmenu | cliphist decode | wl-copy # [hidden] Clipboard history >> clipboard (fallback)
bindd = Super, Period, Copy an emoji, exec, qs -c $qsConfig ipc call TEST_ALIVE || pkill fuzzel || ~/.config/hypr/hyprland/scripts/fuzzel-emoji.sh copy # [hidden] Emoji >> clipboard (fallback) bindd = Super, Period, Copy an emoji, exec, qs -c $qsConfig ipc call TEST_ALIVE || pkill fuzzel || ~/.config/hypr/hyprland/scripts/fuzzel-emoji.sh copy # [hidden] Emoji >> clipboard (fallback)
bindd = Super+Shift, S, Screen snip, exec, qs -p ~/.config/quickshell/$qsConfig/screenshot.qml || pidof slurp || hyprshot --freeze --clipboard-only --mode region --silent # Screen snip bindd = Super+Shift, S, Screen snip, exec, hyprshot --clipboard-only --mode region --silent || qs -p ~/.config/quickshell/$qsConfig/screenshot.qml || pidof slurp # Screen snip
# OCR # OCR
bindd = Super+Shift, T, Character recognition,exec,grim -g "$(slurp $SLURP_ARGS)" "tmp.png" && tesseract "tmp.png" - | wl-copy && rm "tmp.png" # [hidden] bindd = Super+Shift, E, Character recognition,exec,grim -g "$(slurp $SLURP_ARGS)" "tmp.png" && tesseract "tmp.png" - | wl-copy && rm "tmp.png" # [hidden]
# Color picker # Color picker
bindd = Super+Shift, C, Color picker, exec, hyprpicker -a # Pick color (Hex) >> clipboard bindd = Super+Shift, C, Color picker, exec, hyprpicker -a # Pick color (Hex) >> clipboard
# Fullscreen screenshot # Fullscreen screenshot
@@ -177,9 +177,9 @@ bind = Super+Alt, f12, exec, bash -c 'RANDOM_IMAGE=$(find ~/Pictures -type f | g
bind = Super+Alt, Equal, exec, notify-send "Urgent notification" "Ah hell no" -u critical -a 'Hyprland keybind' # [hidden] bind = Super+Alt, Equal, exec, notify-send "Urgent notification" "Ah hell no" -u critical -a 'Hyprland keybind' # [hidden]
##! Session ##! Session
bindd = Super, L, Lock, exec, loginctl lock-session # Lock # bindd = Super, L, Lock, exec, loginctl lock-session # Lock
bind = Super+Shift, L, exec, loginctl lock-session # [hidden] # bind = Super+Shift, L, exec, loginctl lock-session # [hidden]
bindld = Super+Shift, L, Suspend system, exec, sleep 0.1 && systemctl suspend || loginctl suspend # Sleep # bindld = Super+Shift, L, Suspend system, exec, sleep 0.1 && systemctl suspend || loginctl suspend # Sleep
bindd = Ctrl+Shift+Alt+Super, Delete, Shutdown, exec, systemctl poweroff || loginctl poweroff # [hidden] Power off bindd = Ctrl+Shift+Alt+Super, Delete, Shutdown, exec, systemctl poweroff || loginctl poweroff # [hidden] Power off
##! Screen ##! Screen
@@ -202,7 +202,7 @@ bindl= ,XF86AudioPause, exec, playerctl play-pause # [hidden]
##! Apps ##! Apps
bind = Super, Return, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "$TERMINAL" "kitty -1" "foot" "alacritty" "wezterm" "konsole" "kgx" "uxterm" "xterm" # Terminal bind = Super, Return, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "$TERMINAL" "kitty -1" "foot" "alacritty" "wezterm" "konsole" "kgx" "uxterm" "xterm" # Terminal
bind = Super, T, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "$TERMINAL" "kitty -1" "foot" "alacritty" "wezterm" "konsole" "kgx" "uxterm" "xterm" # [hidden] (terminal) (alt) # bind = Super, T, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "$TERMINAL" "kitty -1" "foot" "alacritty" "wezterm" "konsole" "kgx" "uxterm" "xterm" # [hidden] (terminal) (alt)
bind = Ctrl+Alt, T, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "$TERMINAL" "kitty -1" "foot" "alacritty" "wezterm" "konsole" "kgx" "uxterm" "xterm" # [hidden] (terminal) (for Ubuntu people) bind = Ctrl+Alt, T, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "$TERMINAL" "kitty -1" "foot" "alacritty" "wezterm" "konsole" "kgx" "uxterm" "xterm" # [hidden] (terminal) (for Ubuntu people)
bind = Super, E, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "dolphin" "nautilus" "nemo" "thunar" "$TERMINAL" "kitty -1 fish -c yazi" # File manager bind = Super, E, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "dolphin" "nautilus" "nemo" "thunar" "$TERMINAL" "kitty -1 fish -c yazi" # File manager
bind = Super, W, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "google-chrome-stable" "zen-browser" "firefox" "brave" "chromium" "microsoft-edge-stable" "opera" "librewolf" # Browser bind = Super, W, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh "google-chrome-stable" "zen-browser" "firefox" "brave" "chromium" "microsoft-edge-stable" "opera" "librewolf" # Browser
+61
View File
@@ -0,0 +1,61 @@
{
"nodes": {
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1754725699,
"narHash": "sha256-iAcj9T/Y+3DBy2J0N+yF9XQQQ8IEb5swLFzs23CdP88=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}
},
"root": "root",
"version": 7
}
@@ -0,0 +1,82 @@
{
description = "A flake that provides a runnable switchwall script.";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = {
self,
nixpkgs,
flake-utils,
}:
flake-utils.lib.eachDefaultSystem (
system: let
pkgs = nixpkgs.legacyPackages.${system};
pythonWithPackages = pkgs.python3.withPackages (ps:
with ps; [
dbus-python
materialyoucolor
pillow
]);
switchwallScript = pkgs.stdenv.mkDerivation {
pname = "switchwall";
version = "1.0";
src = ./.;
buildInputs = [
pkgs.makeWrapper
pkgs.jq
pkgs.imagemagick
pkgs.ffmpeg
pkgs.mpvpaper
pkgs.libnotify
pkgs.hyprpicker
pkgs.matugen
pkgs.bash
pkgs.pipewire
pkgs.dbus
pkgs.kdePackages.plasma-desktop
# pkgs.kdePackages.plasma-framework
pkgs.kdePackages.kdialog
pythonWithPackages
];
nativeBuildInputs = [pkgs.qt6.wrapQtAppsHook];
installPhase = ''
mkdir -p $out/bin
# CHANGE HERE: Copy to 'switchwall' instead of 'switchwall.sh'
cp switchwall.sh $out/bin/switchwall
chmod +x $out/bin/switchwall
# UPDATE HERE: Wrap the new filename
wrapProgram $out/bin/switchwall \
--prefix PATH : "${pkgs.lib.makeBinPath [
pkgs.jq
pkgs.imagemagick
pkgs.ffmpeg
pkgs.mpvpaper
pkgs.kdePackages.kdialog
pkgs.libnotify
pkgs.hyprpicker
pkgs.matugen
pythonWithPackages
pkgs.bash
pkgs.pipewire
pkgs.kdePackages.plasma-desktop
]}"
'';
};
in {
packages.default = switchwallScript;
apps.default = flake-utils.lib.mkApp {
drv = switchwallScript;
};
}
);
}
+6
View File
@@ -0,0 +1,6 @@
#!/usr/bin/env bash
cd "$(dirname "$0")"
# Execute the switchwall.sh script within the Nix environment.
nix develop --command ./switchwall.sh "$@"
@@ -63,9 +63,9 @@ post_process() {
# echo "Error: least_busy_region.py script not found in $MATUGEN_DIR/scripts/" # echo "Error: least_busy_region.py script not found in $MATUGEN_DIR/scripts/"
# else # else
# "$MATUGEN_DIR/scripts/least_busy_region.py" \ # "$MATUGEN_DIR/scripts/least_busy_region.py" \
# --screen-width "$screen_width" --screen-height "$screen_height" \ # --screen-width "$screen_width" --screen-height "$screen_height" \
# --width 300 --height 200 \ # --width 300 --height 200 \
# "$wallpaper_path" > "$STATE_DIR"/user/generated/wallpaper/least_busy_region.json # "$wallpaper_path" > "$STATE_DIR"/user/generated/wallpaper/least_busy_region.json
# fi # fi
} }
@@ -85,18 +85,18 @@ check_and_prompt_upscale() {
fi fi
if [[ "$img_width" -lt "$min_width_desired" || "$img_height" -lt "$min_height_desired" ]]; then if [[ "$img_width" -lt "$min_width_desired" || "$img_height" -lt "$min_height_desired" ]]; then
action=$(notify-send "Upscale?" \ action=$(notify-send "Upscale?" \
"Image resolution (${img_width}x${img_height}) is lower than screen resolution (${min_width_desired}x${min_height_desired})" \ "Image resolution (${img_width}x${img_height}) is lower than screen resolution (${min_width_desired}x${min_height_desired})" \
-A "open_upscayl=Open Upscayl"\ -A "open_upscayl=Open Upscayl"\
-a "Wallpaper switcher") -a "Wallpaper switcher")
if [[ "$action" == "open_upscayl" ]]; then if [[ "$action" == "open_upscayl" ]]; then
if command -v upscayl &>/dev/null; then if command -v upscayl &>/dev/null; then
nohup upscayl > /dev/null 2>&1 & nohup upscayl > /dev/null 2>&1 &
else else
action2=$(notify-send \ action2=$(notify-send \
-a "Wallpaper switcher" \ -a "Wallpaper switcher" \
-c "im.error" \ -c "im.error" \
-A "install_upscayl=Install Upscayl (Arch)" \ -A "install_upscayl=Install Upscayl (Arch)" \
"Install Upscayl?" \ "Install Upscayl?" \
"yay -S upscayl-bin") "yay -S upscayl-bin")
if [[ "$action2" == "install_upscayl" ]]; then if [[ "$action2" == "install_upscayl" ]]; then
kitty -1 yay -S upscayl-bin kitty -1 yay -S upscayl-bin
@@ -204,10 +204,10 @@ switch() {
echo "Missing deps: ${missing_deps[*]}" echo "Missing deps: ${missing_deps[*]}"
echo "Arch: sudo pacman -S ${missing_deps[*]}" echo "Arch: sudo pacman -S ${missing_deps[*]}"
action=$(notify-send \ action=$(notify-send \
-a "Wallpaper switcher" \ -a "Wallpaper switcher" \
-c "im.error" \ -c "im.error" \
-A "install_arch=Install (Arch)" \ -A "install_arch=Install (Arch)" \
"Can't switch to video wallpaper" \ "Can't switch to video wallpaper" \
"Missing dependencies: ${missing_deps[*]}") "Missing dependencies: ${missing_deps[*]}")
if [[ "$action" == "install_arch" ]]; then if [[ "$action" == "install_arch" ]]; then
kitty -1 sudo pacman -S "${missing_deps[*]}" kitty -1 sudo pacman -S "${missing_deps[*]}"
Generated
+556
View File
@@ -0,0 +1,556 @@
{
"nodes": {
"aquamarine": {
"inputs": {
"hyprutils": [
"hyprland",
"hyprutils"
],
"hyprwayland-scanner": [
"hyprland",
"hyprwayland-scanner"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1753216019,
"narHash": "sha256-zik7WISrR1ks2l6T1MZqZHb/OqroHdJnSnAehkE0kCk=",
"owner": "hyprwm",
"repo": "aquamarine",
"rev": "be166e11d86ba4186db93e10c54a141058bdce49",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "aquamarine",
"type": "github"
}
},
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
"hyprland",
"pre-commit-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1754924470,
"narHash": "sha256-asI/or9AcUMydwzodCgpHGytnMSNUlciw3uaycpXm4E=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "67393957c27b4e4c6c48a60108a201413ced7800",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"hyprcursor": {
"inputs": {
"hyprlang": [
"hyprland",
"hyprlang"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1753964049,
"narHash": "sha256-lIqabfBY7z/OANxHoPeIrDJrFyYy9jAM4GQLzZ2feCM=",
"owner": "hyprwm",
"repo": "hyprcursor",
"rev": "44e91d467bdad8dcf8bbd2ac7cf49972540980a5",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprcursor",
"type": "github"
}
},
"hyprgraphics": {
"inputs": {
"hyprutils": [
"hyprland",
"hyprutils"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1752149140,
"narHash": "sha256-gbh1HL98Fdqu0jJIWN4OJQN7Kkth7+rbkFpSZLm/62A=",
"owner": "hyprwm",
"repo": "hyprgraphics",
"rev": "340494a38b5ec453dfc542c6226481f736cc8a9a",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprgraphics",
"type": "github"
}
},
"hyprland": {
"inputs": {
"aquamarine": "aquamarine",
"hyprcursor": "hyprcursor",
"hyprgraphics": "hyprgraphics",
"hyprland-protocols": "hyprland-protocols",
"hyprland-qtutils": "hyprland-qtutils",
"hyprlang": "hyprlang",
"hyprutils": "hyprutils",
"hyprwayland-scanner": "hyprwayland-scanner",
"nixpkgs": [
"nixpkgs"
],
"pre-commit-hooks": "pre-commit-hooks",
"systems": "systems",
"xdph": "xdph"
},
"locked": {
"lastModified": 1754662442,
"narHash": "sha256-+nJzzAL+YcU17uuQyfv9KqVIwitbjPf+ZS5P3Qw3E1c=",
"owner": "hyprwm",
"repo": "Hyprland",
"rev": "00da4450db9bab1abfda169eefec8dab98f63a0b",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "Hyprland",
"type": "github"
}
},
"hyprland-protocols": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1749046714,
"narHash": "sha256-kymV5FMnddYGI+UjwIw8ceDjdeg7ToDVjbHCvUlhn14=",
"owner": "hyprwm",
"repo": "hyprland-protocols",
"rev": "613878cb6f459c5e323aaafe1e6f388ac8a36330",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-protocols",
"type": "github"
}
},
"hyprland-qt-support": {
"inputs": {
"hyprlang": [
"hyprland",
"hyprland-qtutils",
"hyprlang"
],
"nixpkgs": [
"hyprland",
"hyprland-qtutils",
"nixpkgs"
],
"systems": [
"hyprland",
"hyprland-qtutils",
"systems"
]
},
"locked": {
"lastModified": 1749154592,
"narHash": "sha256-DO7z5CeT/ddSGDEnK9mAXm1qlGL47L3VAHLlLXoCjhE=",
"owner": "hyprwm",
"repo": "hyprland-qt-support",
"rev": "4c8053c3c888138a30c3a6c45c2e45f5484f2074",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-qt-support",
"type": "github"
}
},
"hyprland-qtutils": {
"inputs": {
"hyprland-qt-support": "hyprland-qt-support",
"hyprlang": [
"hyprland",
"hyprlang"
],
"hyprutils": [
"hyprland",
"hyprland-qtutils",
"hyprlang",
"hyprutils"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1753819801,
"narHash": "sha256-tHe6XeNeVeKapkNM3tcjW4RuD+tB2iwwoogWJOtsqTI=",
"owner": "hyprwm",
"repo": "hyprland-qtutils",
"rev": "b308a818b9dcaa7ab8ccab891c1b84ebde2152bc",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-qtutils",
"type": "github"
}
},
"hyprlang": {
"inputs": {
"hyprutils": [
"hyprland",
"hyprutils"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1753622892,
"narHash": "sha256-0K+A+gmOI8IklSg5It1nyRNv0kCNL51duwnhUO/B8JA=",
"owner": "hyprwm",
"repo": "hyprlang",
"rev": "23f0debd2003f17bd65f851cd3f930cff8a8c809",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprlang",
"type": "github"
}
},
"hyprutils": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1753800567,
"narHash": "sha256-W0xgXsaqGa/5/7IBzKNhf0+23MqGPymYYfqT7ECqeTE=",
"owner": "hyprwm",
"repo": "hyprutils",
"rev": "c65d41d4f4e6ded6fdb9d508a73e2fe90e55cdf7",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprutils",
"type": "github"
}
},
"hyprwayland-scanner": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1751897909,
"narHash": "sha256-FnhBENxihITZldThvbO7883PdXC/2dzW4eiNvtoV5Ao=",
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"rev": "fcca0c61f988a9d092cbb33e906775014c61579d",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"type": "github"
}
},
"matugen": {
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"systems": "systems_2"
},
"locked": {
"lastModified": 1745334376,
"narHash": "sha256-GZAesQW51EwCEB9w5caxgi87LiAMhVfP6GqZmet9VZc=",
"owner": "InioX",
"repo": "Matugen",
"rev": "4619cca93513470dc2a1833d9a138297cbccaf2e",
"type": "github"
},
"original": {
"owner": "InioX",
"repo": "Matugen",
"type": "github"
}
},
"nixos-fonts": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1755004566,
"narHash": "sha256-K2zmSjUl4YtW9vyjtp6Xi8WDCFFZm68j3OSYDU8OB0I=",
"ref": "refs/heads/main",
"rev": "8eb50e038ab508a3e9620301cd38153adb6c6f23",
"revCount": 15,
"type": "git",
"url": "https://git.sakamoto.dev/kenji/nixos-fonts"
},
"original": {
"type": "git",
"url": "https://git.sakamoto.dev/kenji/nixos-fonts"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1754498491,
"narHash": "sha256-erbiH2agUTD0Z30xcVSFcDHzkRvkRXOQ3lb887bcVrs=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "c2ae88e026f9525daf89587f3cbee584b92b6134",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"oneUI": {
"flake": false,
"locked": {
"lastModified": 1745612116,
"narHash": "sha256-VWgITEJQFbPqIbiGDfDeD0R74y9tCKEfjO/M/tcO94M=",
"owner": "end-4",
"repo": "OneUI4-Icons",
"rev": "693095d45c67e6b48a9873e36af6283f05080e66",
"type": "github"
},
"original": {
"owner": "end-4",
"repo": "OneUI4-Icons",
"type": "github"
}
},
"pre-commit-hooks": {
"inputs": {
"flake-compat": "flake-compat",
"gitignore": "gitignore",
"nixpkgs": [
"hyprland",
"nixpkgs"
]
},
"locked": {
"lastModified": 1750779888,
"narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"quickshell": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1753595452,
"narHash": "sha256-vqkSDvh7hWhPvNjMjEDV4KbSCv2jyl2Arh73ZXe274k=",
"ref": "refs/heads/master",
"rev": "a5431dd02dc23d9ef1680e67777fed00fe5f7cda",
"revCount": 665,
"type": "git",
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
},
"original": {
"type": "git",
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
}
},
"root": {
"inputs": {
"home-manager": "home-manager",
"hyprland": "hyprland",
"matugen": "matugen",
"nixos-fonts": "nixos-fonts",
"nixpkgs": "nixpkgs",
"oneUI": "oneUI",
"quickshell": "quickshell"
}
},
"systems": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"type": "github"
}
},
"xdph": {
"inputs": {
"hyprland-protocols": [
"hyprland",
"hyprland-protocols"
],
"hyprlang": [
"hyprland",
"hyprlang"
],
"hyprutils": [
"hyprland",
"hyprutils"
],
"hyprwayland-scanner": [
"hyprland",
"hyprwayland-scanner"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1753633878,
"narHash": "sha256-js2sLRtsOUA/aT10OCDaTjO80yplqwOIaLUqEe0nMx0=",
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"rev": "371b96bd11ad2006ed4f21229dbd1be69bed3e8a",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"type": "github"
}
}
},
"root": "root",
"version": 7
}
+128
View File
@@ -0,0 +1,128 @@
{
description = "A simple NixOS flake for a single system architecture.";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
hyprland = {
url = "github:hyprwm/Hyprland";
inputs.nixpkgs.follows = "nixpkgs";
};
quickshell = {
url = "git+https://git.outfoxxed.me/outfoxxed/quickshell";
inputs.nixpkgs.follows = "nixpkgs";
};
matugen = {
url = "github:/InioX/Matugen";
inputs.nixpkgs.follows = "nixpkgs";
# ref = "refs/tags/matugen-v0.10.0";
};
oneUI = {
url = "github:/end-4/OneUI4-Icons";
flake = false;
};
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
nixos-fonts = {
url = "git+https://git.sakamoto.dev/kenji/nixos-fonts";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = {
self,
nixpkgs,
hyprland,
quickshell,
matugen,
nixos-fonts,
oneUI,
...
} @ inputs: let
supportedSystems = ["x86_64-linux"];
eachSupportedSystem = f:
nixpkgs.lib.genAttrs supportedSystems (system: let
pkgs = import nixpkgs {
inherit system;
};
in
f pkgs);
in {
homeManagerModules = rec {
default = illogical-impulse;
illogical-impulse = import ./modules/default.nix;
};
legacyPackages = eachSupportedSystem (pkgs: {
quickshellWithQT = quickshell.packages.${pkgs.system}.default.overrideAttrs (oldAttrs: {
propagatedBuildInputs =
oldAttrs.propagatedBuildInputs or []
++ [
pkgs.kdePackages.qt5compat
pkgs.kdePackages.qtpositioning
];
});
iiShellConfig = pkgs.stdenv.mkDerivation {
pname = "ii-shell-config";
version = "1.0";
src = ./.;
installPhase = ''
runHook preInstall
install -d -m 755 $out/share/ii
cp -r .config/quickshell/ii/* $out/share/ii
runHook postInstall
'';
dontPatchShebangs = true;
};
iiOneUI4Icons = pkgs.stdenv.mkDerivation rec {
pname = "ii-oneui4-icons";
version = "r70.55eada4";
src = oneUI;
installPhase = ''
runHook preInstall
install -d -m 755 $out/share/icons
cp -dr --no-preserve=mode OneUI $out/share/icons/OneUI
cp -dr --no-preserve=mode OneUI-dark $out/share/icons/OneUI-dark
cp -dr --no-preserve=mode OneUI-light $out/share/icons/OneUI-light
runHook postInstall
'';
dontStrip = true;
dontFixup = true;
};
iiFonts = pkgs.symlinkJoin {
name = "ii-fonts";
paths = [
inputs.nixos-fonts.packages.${pkgs.system}.space-grotesk
inputs.nixos-fonts.packages.${pkgs.system}.readex-pro
inputs.nixos-fonts.packages.${pkgs.system}.gabarito
inputs.nixos-fonts.packages.${pkgs.system}.rubik
];
};
});
packages = eachSupportedSystem (pkgs: {
default = pkgs.symlinkJoin {
name = "illogical-impulse-packages";
paths = builtins.attrValues self.legacyPackages.${pkgs.system};
};
});
devShells = eachSupportedSystem (pkgs: {
default = pkgs.mkShell {
packages =
import ./modules/packages.nix {inherit pkgs inputs self;}
++ [
self.packages.${pkgs.system}.default
inputs.matugen.packages.${pkgs.system}.default
inputs.hyprland.packages.${pkgs.system}.default
];
};
});
};
}
+6
View File
@@ -0,0 +1,6 @@
{
imports = [
./desktop/desktop.nix
./terminal/terminal.nix
];
}
+86
View File
@@ -0,0 +1,86 @@
{
config,
lib,
inputs,
pkgs,
...
}: let
cfg = config.programs.illogical-impulse;
in {
imports = [
../options.nix
];
config = lib.mkIf cfg.enable {
wayland.windowManager.hyprland = {
# enable = true;
package = inputs.hyprland.packages.${pkgs.system}.default;
xwayland.enable = true;
systemd.enable = true;
settings = lib.mkIf cfg.settings.hyprland.useNixForConf (
lib.mkMerge [
(import ./hyprland/hypr/keybinds.nix)
(import ./hyprland/hypr/general.nix)
(import ./hyprland/hypr/exec.nix)
(import ./hyprland/hypr/rules.nix)
(import ./hyprland/hypr/env.nix)
# (import ./hyprland/hypr/colours.nix)
]
);
};
home.file = lib.mkMerge [
# The home.file configuration is now split into two mutually exclusive blocks.
(lib.mkIf cfg.settings.hyprland.useNixForConf (
let
scriptDir = ../../.config/hypr/hyprland/scripts;
# List only the files that need to be executable
scripts = [
"fuzzel-emoji.sh"
"launch_first_available.sh"
"record.sh"
"start_geoclue_agent.sh"
"workspace_action.sh"
"zoom.sh"
];
in
(
lib.genAttrs
(map (name: ".config/hypr/hyprland/scripts/${name}") scripts)
(path: {
source = "${scriptDir}/${builtins.baseNameOf path}";
executable = true;
})
)
// {
".config/hypr/hyprland/scripts/ai".source = "${scriptDir}/ai";
}
))
(lib.mkIf (!cfg.settings.hyprland.useNixForConf) {
".config/hypr" = {
source = builtins.path {
path = ../../.config/hypr;
};
};
".config/quickshell".source = builtins.path {path = ../../.config/quickshell;};
".config/kitty".source = builtins.path {path = ../../.config/kitty;};
".config/foot".source = builtins.path {path = ../../.config/foot;};
".config/matugen".source = builtins.path {path = ../../.config/matugen;};
".config/qt5ct".source = builtins.path {path = ../../.config/qt5ct;};
".config/qt6ct".source = builtins.path {path = ../../.config/qt6ct;};
".config/wlogout".source = builtins.path {path = ../../.config/wlogout;};
".config/Kvantum".source = builtins.path {path = ../../.config/Kvantum;};
".config/xdg-desktop-portal".source = builtins.path {path = ../../.config/xdg-desktop-portal;};
})
];
home.packages =
import ../packages.nix {inherit pkgs;}
++ [
inputs.illogical-impulse.packages.${pkgs.system}.default
inputs.matugen.packages.${pkgs.system}.default
];
};
}
+29
View File
@@ -0,0 +1,29 @@
{
pkgs,
config,
lib,
...
}: let
cfg = config.programs.illogical-impulse;
in {
imports = [
./hypr/keybinds.nix
./hypr/execs.nix
./hypr/rules.nix
./hypr/env.nix
./hypr/colours.nix
./hyprlock.nix
./hypridle.nix
];
config = lib.mkIf cfg.settings.hyprland.useNixForConf {
home.file = {
".config/hypr/hyprland/scripts" = {
source = builtins.path {
path = ../../.config/hypr/hyprland/scripts;
executable = true;
};
};
};
};
}
+20
View File
@@ -0,0 +1,20 @@
{
# This file only defines the `env` attribute, which is a part of the settings.
env = [
"QT_IM_MODULE, fcitx"
"XMODIFIERS, @im=fcitx"
"SDL_IM_MODULE, fcitx"
"GLFW_IM_MODULE, ibus"
"INPUT_METHOD, fcitx"
"ELECTRON_OZONE_PLATFORM_HINT, auto"
"QT_QPA_PLATFORM, wayland"
"QT_QPA_PLATFORMTHEME, kde"
"XDG_MENU_PREFIX, plasma-"
"ILLOGICAL_IMPULSE_VIRTUAL_ENV, ~/.local/state/quickshell/.venv"
"TERMINAL, kitty -1"
];
}
+2
View File
@@ -0,0 +1,2 @@
{
}
+149
View File
@@ -0,0 +1,149 @@
{
monitor = [
",preferred,auto,1,transform, 0"
# "HDMI-A-1,1920x1080@60,1920x0,1,mirror,eDP-1"
# ",addreserved, 0, 0, 0, 0"
];
gestures = {
workspace_swipe = true;
workspace_swipe_distance = 700;
workspace_swipe_fingers = 3;
workspace_swipe_min_fingers = true;
workspace_swipe_cancel_ratio = 0.2;
workspace_swipe_min_speed_to_force = 5;
workspace_swipe_direction_lock = true;
workspace_swipe_direction_lock_threshold = 10;
workspace_swipe_create_new = true;
};
general = {
gaps_in = 4;
gaps_out = 5;
gaps_workspaces = 50;
border_size = 1;
"col.active_border" = "rgba(0DB7D4FF)";
"col.inactive_border" = "rgba(31313600)";
resize_on_border = true;
no_focus_fallback = true;
allow_tearing = true;
snap.enabled = true;
};
dwindle = {
preserve_split = true;
smart_split = false;
smart_resizing = false;
# precise_mouse_move = true;
};
decoration = {
rounding = 18;
blur = {
enabled = true;
xray = true;
special = false;
new_optimizations = true;
size = 14;
passes = 3;
brightness = 1;
noise = 0.01;
contrast = 1;
popups = true;
popups_ignorealpha = 0.6;
input_methods = true;
input_methods_ignorealpha = 0.8;
};
shadow = {
enabled = true;
ignore_window = true;
range = 30;
offset = "0 2";
render_power = 4;
color = "rgba(00000010)";
};
dim_inactive = true;
dim_strength = 0.025;
dim_special = 0.07;
};
animations = {
enabled = true;
bezier = [
"expressiveFastSpatial, 0.42, 1.67, 0.21, 0.90"
"expressiveSlowSpatial, 0.39, 1.29, 0.35, 0.98"
"expressiveDefaultSpatial, 0.38, 1.21, 0.22, 1.00"
"emphasizedDecel, 0.05, 0.7, 0.1, 1"
"emphasizedAccel, 0.3, 0, 0.8, 0.15"
"standardDecel, 0, 0, 0, 1"
"menu_decel, 0.1, 1, 0, 1"
"menu_accel, 0.52, 0.03, 0.72, 0.08"
];
animation = [
"windowsIn, 1, 3, emphasizedDecel, popin 80%"
"windowsOut, 1, 2, emphasizedDecel, popin 90%"
"windowsMove, 1, 3, emphasizedDecel, slide"
"border, 1, 10, emphasizedDecel"
"layersIn, 1, 2.7, emphasizedDecel, popin 93%"
"layersOut, 1, 2.4, menu_accel, popin 94%"
"fadeLayersIn, 1, 0.5, menu_decel"
"fadeLayersOut, 1, 2.7, menu_accel"
"workspaces, 1, 7, menu_decel, slide"
"specialWorkspaceIn, 1, 2.8, emphasizedDecel, slidevert"
"specialWorkspaceOut, 1, 1.2, emphasizedAccel, slidevert"
];
};
input = {
kb_layout = "us";
numlock_by_default = true;
repeat_delay = 250;
repeat_rate = 35;
follow_mouse = 1;
off_window_axis_events = 2;
touchpad = {
natural_scroll = true;
disable_while_typing = true;
clickfinger_behavior = true;
scroll_factor = 0.5;
};
};
misc = {
disable_hyprland_logo = true;
disable_splash_rendering = true;
vfr = 1;
vrr = 1;
mouse_move_enables_dpms = true;
key_press_enables_dpms = true;
animate_manual_resizes = false;
animate_mouse_windowdragging = false;
enable_swallow = false;
swallow_regex = "(foot|kitty|allacritty|Alacritty)";
new_window_takes_over_fullscreen = 2;
allow_session_lock_restore = true;
# session_lock_xray = true;
initial_workspace_tracking = false;
focus_on_activate = true;
};
binds = {
scroll_event_delay = 0;
hide_special_on_workspace_change = true;
};
cursor = {
zoom_factor = 1;
zoom_rigid = false;
};
plugin.hyprexpo = {
columns = 3;
gap_size = 5;
bg_col = "rgb(000000)";
workspace_method = "first 1";
enable_gesture = false;
gesture_distance = 300;
gesture_positive = false;
};
}
+183
View File
@@ -0,0 +1,183 @@
{
# Shell keybinds
bindi = [
"Super, Super_L, Toggle overview, global, quickshell:overviewToggleRelease"
];
binditn = [
"Super, catchall, global, quickshell:overviewToggleReleaseInterrupt"
"Ctrl, Super_L, global, quickshell:overviewToggleReleaseInterrupt"
"Super, mouse:272, global, quickshell:overviewToggleReleaseInterrupt"
"Super, mouse:273, global, quickshell:overviewToggleReleaseInterrupt"
"Super, mouse:274, global, quickshell:overviewToggleReleaseInterrupt"
"Super, mouse:275, global, quickshell:overviewToggleReleaseInterrupt"
"Super, mouse:276, global, quickshell:overviewToggleReleaseInterrupt"
"Super, mouse:277, global, quickshell:overviewToggleReleaseInterrupt"
"Super, mouse_up, global, quickshell:overviewToggleReleaseInterrupt"
"Super, mouse_down, global, quickshell:overviewToggleReleaseInterrupt"
];
bindit = [
", Super_L, global, quickshell:workspaceNumber"
];
bindd = [
# The Nix module for Hyprland doesn't use `bindd` as a separate type,
# but it's used in the config file to handle cheatsheet descriptions.
# We'll put these into the main `bind` list and resolve the duplicates.
# The `bindd` lines here were already duplicates of the `bind` lines
# in your previous example, so they were the source of the conflict.
# I am merging them into a single, comprehensive `bind` list below.
];
# All unique keybindings are listed here.
bind =
[
# Shell and QuickShell keybinds
"Super, V, exec, qs -c $qsConfig ipc call TEST_ALIVE || pkill fuzzel || cliphist list | fuzzel --match-mode fzf --dmenu | cliphist decode | wl-copy"
"Super, Period, exec, qs -c $qsConfig ipc call TEST_ALIVE || pkill fuzzel || ~/.config/hypr/hyprland/scripts/fuzzel-emoji.sh copy"
"Super, Tab, global, quickshell:overviewToggle"
"Super, A, global, quickshell:sidebarLeftToggle"
"Super+Alt, A, global, quickshell:sidebarLeftToggleDetach"
"Super, B, global, quickshell:sidebarLeftToggle"
"Super, O, global, quickshell:sidebarLeftToggle"
"Super, N, global, quickshell:sidebarRightToggle"
"Super, Slash, global, quickshell:ch+CtrleatsheetToggle"
"Super, M, global, quickshell:mediaControlsToggle"
"Ctrl+Alt, Delete, global, quickshell:sessionToggle"
"Ctrl+Alt, Delete, exec, qs -c $qsConfig ipc call TEST_ALIVE || pkill wlogout || wlogout -p layer-shell"
"Shift+Super+Alt, Slash, exec, qs -p ~/.config/quickshell/$qsConfig/welcome.qml"
# Utilities keybinds
"Super+Shift, S, exec, qs -p ~/.config/quickshell/$qsConfig/screenshot.qml || pidof slurp || hyprshot --freeze --clipboard-only --mode region --silent"
"Super+Shift, T, exec, grim -g \"$(slurp $SLURP_ARGS)\" \"tmp.png\" && tesseract \"tmp.png\" - | wl-copy && rm \"tmp.png\""
"Super+Shift, C, exec, hyprpicker -a"
"Super+Alt, R, exec, ~/.config/hypr/hyprland/scripts/record.sh"
"Ctrl+Alt, R, exec, ~/.config/hypr/hyprland/scripts/record.sh --fullscreen"
"Super+Shift+Alt, R, exec, ~/.config/hypr/hyprland/scripts/record.sh --fullscreen-sound"
"Super+Shift+Alt, mouse:273, exec, ~/.config/hypr/hyprland/scripts/ai/primary-buffer-query.sh"
"Ctrl+Super, T, exec, ~/.config/hypr/hyprland/scripts/colors/switchwall.sh"
"Ctrl+Super, R, exec, killall ags agsv1 gjs ydotool qs quickshell; qs -c $qsConfig &"
"Ctrl+Super, Backslash, resizeactive, exact 640 480"
"Super+Alt, f11, exec, bash -c 'RANDOM_IMAGE=$(find ~/Pictures -type f | grep -v -i \"nipple\" | grep -v -i \"pussy\" | shuf -n 1); ACTION=$(notify-send \"Test notification with body image\" \"This notification should contain your user account <b>image</b> and <a href=\\\"https://discord.com/app\\\">Discord</a> <b>icon</b>. Oh and here is a random image in your Pictures folder: <img src=\\\"$RANDOM_IMAGE\\\" alt=\\\"Testing image\\\"/>\" -a \"Hyprland keybind\" -p -h \"string:image-path:/var/lib/AccountsService/icons/$USER\" -t 6000 -i \"discord\" -A \"openImage=Open profile image\" -A \"action2=Open the random image\" -A \"action3=Useless button\"); [[ $ACTION == *openImage ]] && xdg-open \"/var/lib/AccountsService/icons/$USER\"; [[ $ACTION == *action2 ]] && xdg-open \"$RANDOM_IMAGE\"'"
"Super+Alt, f12, exec, bash -c 'RANDOM_IMAGE=$(find ~/Pictures -type f | grep -v -i \"nipple\" | grep -v -i \"pussy\" | shuf -n 1); ACTION=$(notify-send \"Test notification\" \"This notification should contain a random image in your <b>Pictures</b> folder and <a href=\\\"https://discord.com/app\\\">Discord</a> <b>icon</b>.\\n<i>Flick right to dismiss!</i>\" -a \"Discord (fake)\" -p -h \"string:image-path:$RANDOM_IMAGE\" -t 6000 -i \"discord\" -A \"openImage=Open profile image\" -A \"action2=Useless button\" -A \"action3=Cry more\"); [[ $ACTION == *openImage ]] && xdg-open \"/var/lib/AccountsService/icons/$USER\"'"
"Super+Alt, Equal, exec, notify-send \"Urgent notification\" \"Ah hell no\" -u critical -a 'Hyprland keybind'"
# Window management
"Super, Q, killactive"
"Super+Shift+Alt, Q, exec, hyprctl kill"
"Super+Alt, Space, togglefloating"
"Super, D, fullscreen, 1"
"Super, F, fullscreen, 0"
"Super+Alt, F, fullscreenstate, 0 3"
"Super, P, pin"
"Super, S, togglespecialworkspace"
"Super+Alt, S, movetoworkspacesilent, special"
"Alt, Tab, cyclenext"
"Alt, Tab, bringactivetotop"
"Super, mouse:275, togglespecialworkspace"
# Media
"Super+Shift, N, exec, playerctl next || playerctl position `bc <<< \"100 * $(playerctl metadata mpris:length) / 1000000 / 100\"`"
"Super+Shift, B, exec, playerctl previous"
"Super+Shift, P, exec, playerctl play-pause"
"Super+Shift+Alt, mouse:275, exec, playerctl previous"
"Super+Shift+Alt, mouse:276, exec, playerctl next || playerctl position `bc <<< \"100 * $(playerctl metadata mpris:length) / 1000000 / 100\"`"
# Session
"Ctrl+Shift+Alt+Super, Delete, exec, systemctl poweroff || loginctl poweroff"
# Apps
"Super, Return, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"$TERMINAL\" \"kitty -1\" \"foot\" \"alacritty\" \"wezterm\" \"konsole\" \"kgx\" \"uxterm\" \"xterm\""
"Super, T, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"$TERMINAL\" \"kitty -1\" \"foot\" \"alacritty\" \"wezterm\" \"konsole\" \"kgx\" \"uxterm\" \"xterm\""
"Ctrl+Alt, T, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"$TERMINAL\" \"kitty -1\" \"foot\" \"alacritty\" \"wezterm\" \"konsole\" \"kgx\" \"uxterm\" \"xterm\""
"Super, E, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"dolphin\" \"nautilus\" \"nemo\" \"thunar\" \"$TERMINAL\" \"kitty -1 fish -c yazi\""
"Super, W, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"google-chrome-stable\" \"zen-browser\" \"firefox\" \"brave\" \"chromium\" \"microsoft-edge-stable\" \"opera\" \"librewolf\""
"Super, C, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"code\" \"codium\" \"cursor\" \"zed\" \"zedit\" \"zeditor\" \"kate\" \"gnome-text-editor\" \"emacs\" \"command -v nvim && kitty -1 nvim\""
"Super+Shift, W, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"wps\" \"onlyoffice-desktopeditors\""
"Super, X, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"kate\" \"gnome-text-editor\" \"emacs\""
"Ctrl+Super, V, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"pavucontrol-qt\" \"pavucontrol\""
"Super, I, exec, XDG_CURRENT_DESKTOP=gnome ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"qs -p ~/.config/quickshell/$qsConfig/settings.qml\" \"systemsettings\" \"gnome-control-center\" \"better-control\""
"Ctrl+Shift, Escape, exec, ~/.config/hypr/hyprland/scripts/launch_first_available.sh \"gnome-system-monitor\" \"plasma-systemmonitor --page-name Processes\" \"command -v btop && kitty -1 fish -c btop\""
# Window movement and focus
"Super, Left, movefocus, l"
"Super, Right, movefocus, r"
"Super, Up, movefocus, u"
"Super, Down, movefocus, d"
"Super, BracketLeft, movefocus, l"
"Super, BracketRight, movefocus, r"
"Super+Shift, Left, movewindow, l"
"Super+Shift, Right, movewindow, r"
"Super+Shift, Up, movewindow, u"
"Super+Shift, Down, movewindow, d"
"Alt, F4, killactive"
"Super+Shift, mouse_down, movetoworkspace, r-1"
"Super+Shift, mouse_up, movetoworkspace, r+1"
"Super+Alt, mouse_down, movetoworkspace, -1"
"Super+Alt, mouse_up, movetoworkspace, +1"
"Super+Shift, Page_Down, movetoworkspace, r+1"
"Super+Shift, Page_Up, movetoworkspace, r-1"
"Ctrl+Super+Shift, Right, movetoworkspace, r+1"
"Ctrl+Super+Shift, Left, movetoworkspace, r-1"
"Ctrl+Super, Right, workspace, r+1"
"Ctrl+Super, Left, workspace, r-1"
"Ctrl+Super+Alt, Right, workspace, m+1"
"Ctrl+Super+Alt, Left, workspace, m-1"
"Super, Page_Down, workspace, +1"
"Super, Page_Up, workspace, -1"
"Ctrl+Super, Page_Down, workspace, r+1"
"Ctrl+Super, Page_Up, workspace, r-1"
"Super, mouse_up, workspace, +1"
"Super, mouse_down, workspace, -1"
"Ctrl+Super, mouse_up, workspace, r+1"
"Ctrl+Super, mouse_down, workspace, r-1"
"Super+Alt, 0, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent 0"
"Super, 0, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace 0"
]
++ (
builtins.concatLists (builtins.genList (
i: let
ws = i + 1;
in [
"Super+Alt, ${toString ws}, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh movetoworkspacesilent ${toString ws}"
"Super, ${toString ws}, exec, ~/.config/hypr/hyprland/scripts/workspace_action.sh workspace ${toString ws}"
]
)
9)
);
# The `bindm` list is used for mouse modifiers.
bindm = [
"Super, mouse:272, movewindow"
"Super, mouse:274, movewindow"
"Super, mouse:273, resizewindow"
];
# The `bindl` list is for key release events.
bindl = [
", XF86MonBrightnessUp, exec, qs -c $qsConfig ipc call brightness increment || brightnessctl s 5%+"
", XF86MonBrightnessDown, exec, qs -c $qsConfig ipc call brightness decrement || brightnessctl s 5%-"
", XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 2%+"
", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%-"
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_SINK@ toggle"
"Super+Shift, M, exec, wpctl set-mute @DEFAULT_SINK@ toggle"
"Alt, XF86AudioMute, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle"
", XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle"
"Super+Alt, M, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle"
", Print, exec, grim - | wl-copy"
"Ctrl, Print, exec, mkdir -p $(xdg-user-dir PICTURES)/Screenshots && grim $(xdg-user-dir PICTURES)/Screenshots/Screenshot_\"$(date '+%Y-%m-%d_%H.%M.%S')\".png"
", XF86AudioNext, exec, playerctl next || playerctl position `bc <<< \"100 * $(playerctl metadata mpris:length) / 1000000 / 100\"`"
", XF86AudioPrev, exec, playerctl previous"
", XF86AudioPlay, exec, playerctl play-pause"
", XF86AudioPause, exec, playerctl play-pause"
];
# The `binde` list is for continuous events.
binde = [
"Super, Semicolon, splitratio, -0.1"
"Super, Apostrophe, splitratio, +0.1"
"Super, Minus, exec, qs -c $qsConfig ipc call zoom zoomOut"
"Super, Equal, exec, qs -c $qsConfig ipc call zoom zoomIn"
"Super, Minus, exec, qs -c $qsConfig ipc call TEST_ALIVE || ~/.config/hypr/hyprland/scripts/zoom.sh decrease 0.1"
"Super, Equal, exec, qs -c $qsConfig ipc call TEST_ALIVE || ~/.config/hypr/hyprland/scripts/zoom.sh increase 0.1"
];
}
+147
View File
@@ -0,0 +1,147 @@
{
windowrulev2 = [
# Uncomment to apply global transparency to all windows:
# "opacity 0.89 override 0.89 override, class:.*"
# Disable blur for xwayland context menus
"noblur, class:^()$,title:^()$"
"noblur, xwayland:1"
# Floating
"float, class:^(blueberry\\.py)$"
"float, class:^(guifetch)$"
"float, class:^(pavucontrol)$"
"size 45%, class:^(pavucontrol)$"
"center, class:^(pavucontrol)$"
"float, class:^(org\\.pulseaudio\\.pavucontrol)$"
"size 45%, class:^(org\\.pulseaudio\\.pavucontrol)$"
"center, class:^(org\\.pulseaudio\\.pavucontrol)$"
"float, class:^(nm-connection-editor)$"
"size 45%, class:^(nm-connection-editor)$"
"center, class:^(nm-connection-editor)$"
"float, class:.*plasmawindowed.*"
"float, class:kcm_.*"
"float, class:.*bluedevilwizard"
"float, title:.*Welcome"
"float, title:^(illogical-impulse Settings)$"
"float, class:org.freedesktop.impl.portal.desktop.kde"
"float, class:^(Zotero)$"
"size 45%, class:^(Zotero)$"
# Move
"float, class:^(plasma-changeicons)$"
"noinitialfocus, class:^(plasma-changeicons)$"
"move 999999 999999, class:^(plasma-changeicons)$"
"move 40 80, title:^(Copying Dolphin)$"
# Tiling
"tile, class:^dev\\.warp\\.Warp$"
# Picture-in-Picture
"float, title:^([Pp]icture[-\\s]?[Ii]n[-\\s]?[Pp]icture)(.*)$"
"keepaspectratio, title:^([Pp]icture[-\\s]?[Ii]n[-\\s]?[Pp]icture)(.*)$"
"move 73% 72%, title:^([Pp]icture[-\\s]?[Ii]n[-\\s]?[Pp]icture)(.*)$"
"size 25%, title:^([Pp]icture[-\\s]?[Ii]n[-\\s]?[Pp]icture)(.*)$"
"pin, title:^([Pp]icture[-\\s]?[Ii]n[-\\s]?[Pp]icture)(.*)$"
"float, title:^([Pp]icture[-\\s]?[Ii]n[-\\s]?[Pp]icture)(.*)$"
# Dialog windows
"center, title:^(Open File)(.*)$"
"center, title:^(Select a File)(.*)$"
"center, title:^(Choose wallpaper)(.*)$"
"center, title:^(Open Folder)(.*)$"
"center, title:^(Save As)(.*)$"
"center, title:^(Library)(.*)$"
"center, title:^(File Upload)(.*)$"
"center, title:^(.*)(wants to save)$"
"center, title:^(.*)(wants to open)$"
"float, title:^(Open File)(.*)$"
"float, title:^(Select a File)(.*)$"
"float, title:^(Choose wallpaper)(.*)$"
"float, title:^(Open Folder)(.*)$"
"float, title:^(Save As)(.*)$"
"float, title:^(Library)(.*)$"
"float, title:^(File Upload)(.*)$"
"float, title:^(.*)(wants to save)$"
"float, title:^(.*)(wants to open)$"
# Tearing
"immediate, title:.*\\.exe"
"immediate, title:.*minecraft.*"
"immediate, class:^(steam_app).*"
# No shadow for tiled windows
"noshadow, floating:0"
];
workspace = [
"special:special, gapsout:30"
];
layerrule = [
"xray 1, .*"
# "noanim, .*"
"noanim, walker"
"noanim, selection"
"noanim, overview"
"noanim, anyrun"
"noanim, indicator.*"
"noanim, osk"
"noanim, hyprpicker"
"noanim, noanim"
"blur, gtk-layer-shell"
"ignorezero, gtk-layer-shell"
"blur, launcher"
"ignorealpha 0.5, launcher"
"blur, notifications"
"ignorealpha 0.69, notifications"
"blur, logout_dialog"
"animation slide left, sideleft.*"
"animation slide right, sideright.*"
"blur, session[0-9]*"
"blur, bar[0-9]*"
"ignorealpha 0.6, bar[0-9]*"
"blur, barcorner.*"
"ignorealpha 0.6, barcorner.*"
"blur, dock[0-9]*"
"ignorealpha 0.6, dock[0-9]*"
"blur, indicator.*"
"ignorealpha 0.6, indicator.*"
"blur, overview[0-9]*"
"ignorealpha 0.6, overview[0-9]*"
"blur, cheatsheet[0-9]*"
"ignorealpha 0.6, cheatsheet[0-9]*"
"blur, sideright[0-9]*"
"ignorealpha 0.6, sideright[0-9]*"
"blur, sideleft[0-9]*"
"ignorealpha 0.6, sideleft[0-9]*"
"blur, indicator.*"
"ignorealpha 0.6, indicator.*"
"blur, osk[0-9]*"
"ignorealpha 0.6, osk[0-9]*"
"blurpopups, quickshell:.*"
"blur, quickshell:.*"
"ignorealpha 0.79, quickshell:.*"
"animation slide top, quickshell:bar"
"animation fade, quickshell:screenCorners"
"animation slide right, quickshell:sidebarRight"
"animation slide left, quickshell:sidebarLeft"
"animation slide bottom, quickshell:osk"
"animation slide bottom, quickshell:dock"
"blur, quickshell:session"
"noanim, quickshell:session"
"ignorealpha 0, quickshell:session"
"animation fade, quickshell:notificationPopup"
"blur, quickshell:backgroundWidgets"
"ignorealpha 0.05, quickshell:backgroundWidgets"
"noanim, quickshell:screenshot"
"animation popin 120%, quickshell:screenCorners"
"noanim, quickshell:lockWindowPusher"
"noanim, quickshell:overview"
"noanim, gtk4-layer-shell"
"blur, shell:bar"
"ignorezero, shell:bar"
"blur, shell:notifications"
"ignorealpha 0.1, shell:notifications"
];
}
+37
View File
@@ -0,0 +1,37 @@
{
config,
pkgs,
...
}: {
programs.hypridle = {
enable = true;
settings = {
general = {
lock_cmd = "pidof hyprlock || hyprlock";
before_sleep_cmd = "loginctl lock-session";
after_sleep_cmd = "hyprctl dispatch global quickshell:lockFocus";
inhibit_sleep = 3;
};
listener = [
{
timeout = 300;
on-timeout = "loginctl lock-session";
}
{
timeout = 600;
on-timeout = "hyprctl dispatch dpms off";
on-resume = "hyprctl dispatch dpms on";
}
{
timeout = 900;
on-timeout = "systemctl suspend || loginctl suspend";
}
];
};
};
# Make sure the hypridle package is installed
home.packages = [
pkgs.hypridle
];
}
+110
View File
@@ -0,0 +1,110 @@
{
config,
pkgs,
lib,
...
}: let
# Your variables
text_color = "rgba(FFDAD6FF)";
entry_background_color = "rgba(41000311)";
entry_border_color = "rgba(896E6C55)";
entry_color = "rgba(FFDAD6FF)";
font_family = "Rubik Light";
font_family_clock = "Rubik Light";
font_material_symbols = "Material Symbols Rounded";
in {
programs.hyprlock = {
enable = true;
settings = {
background = {
color = "rgba(181818FF)";
};
"input-field" = {
size = "250, 50";
outline_thickness = 2;
dots_size = 0.1;
dots_spacing = 0.3;
outer_color = entry_border_color;
inner_color = entry_background_color;
font_color = entry_color;
fade_on_empty = true;
position = "0, 20";
halign = "center";
valign = "center";
};
label = [
{
text = "$LAYOUT";
color = text_color;
font_size = 14;
font_family = font_family;
position = "-30, 30";
halign = "right";
valign = "bottom";
}
{
text = lib.strings.escapeNixString "cmd[update:250] ${config.xdg.configHome}/hypr/hyprlock/check-capslock.sh";
color = text_color;
font_size = 13;
font_family = font_family;
position = "0, -25";
halign = "center";
valign = "center";
}
{
text = "$TIME";
color = text_color;
font_size = 65;
font_family = font_family_clock;
position = "0, 300";
halign = "center";
valign = "center";
}
{
text = lib.strings.escapeNixString "cmd[update:5000] date +\"%A, %B %d\"";
color = text_color;
font_size = 17;
font_family = font_family_clock;
position = "0, 240";
halign = "center";
valign = "center";
}
{
text = " $USER";
color = text_color;
outline_thickness = 2;
dots_size = 0.2;
dots_spacing = 0.2;
dots_center = true;
font_size = 20;
font_family = font_family;
position = "0, 50";
halign = "center";
valign = "bottom";
}
{
text = lib.strings.escapeNixString "cmd[update:5000] ${config.xdg.configHome}/hypr/hyprlock/status.sh";
color = text_color;
font_size = 14;
font_family = font_family;
position = "30, -30";
halign = "left";
valign = "top";
}
];
};
};
home.packages = [
pkgs.hyprlock
];
home.file = {
".config/hypr/hyprlock/check-capslock.sh".source = builtins.path {
path = ./check-capslock.sh;
executable = true; # This line ensures the file is executable
};
".config/hypr/hyprlock/status.sh".source = builtins.path {
path = ./status.sh;
executable = true; # This line ensures the file is executable
};
};
}
+29
View File
@@ -0,0 +1,29 @@
{
config,
lib,
...
}: {
options.programs.illogical-impulse = {
enable = lib.mkOption {
type = lib.types.bool;
default = false;
description = "Enable the illogical-impulse program module.";
};
settings = {
simpleStarship = {
enable = lib.mkOption {
type = lib.types.bool;
default = false;
description = "Uses a custom pure-like starship configuration.";
};
};
hyprland = {
useNixForConf = lib.mkOption {
type = lib.types.bool;
default = false;
description = "Use .nix files for hyprland setup instead of exporting .config/hypr. Useful for modifiable configurations.";
};
};
};
};
}
+110
View File
@@ -0,0 +1,110 @@
{pkgs, ...}:
with pkgs; [
# --- flake exclusive ---
# self.packages.${pkgs.system}.default
# --- Illogical Impulse Audio Dependencies ---
cava
pavucontrol
wireplumber
libdbusmenu-gtk3
playerctl
# --- Illogical Impulse Backlight Dependencies ---
geoclue2 # FIXME
brightnessctl
ddcutil
# --- Illogical Impulse Basic Dependencies ---
axel
bc
coreutils
cliphist
cmake
curl
rsync
wget
ripgrep
jq
meson
xdg-user-dirs
# --- Illogical Impulse Bibata Dependencies ---
bibata-cursors
# --- Illogical Impulse Fonts and Theming Dependencies ---
# adw-gtk-theme-git
# breeze
# breeze-plus
# darkly-bin
adw-gtk3 #FIXME
darkly
eza
foot
fish
fontconfig
python313Packages.kde-material-you-colors #FIXME
python313Packages.pillow
python313Packages.materialyoucolor
kitty
starship
nerd-fonts.jetbrains-mono
noto-fonts
noto-fonts-cjk-sans # Essential: Fixes Japanese/Chinese boxes
noto-fonts-emoji # Essential: Fixes emoji boxes
liberation_ttf # Standard replacement for Arial/Times
dina-font # Bitmap font (optional)
material-symbols
twemoji-color-font
# --- Illogical Impulse Hyprland Dependencies ---
# inputs.hyprland.packages.${pkgs.system}.default
hypridle
hyprcursor
hyprlang
hyprlock
hyprpicker
hyprsunset
hyprutils
hyprwayland-scanner
wl-clipboard
# --- Illogical Impulse KDE Dependencies ---
kdePackages.bluedevil
gnome-keyring
networkmanager
kdePackages.plasma-nm
kdePackages.polkit-kde-agent-1
kdePackages.dolphin
kdePackages.systemsettings
# TODO
# Microtex
# --- Illogical Impulse OneUI Dependencies ---
# --- Illogical Impulse XDG Portal Dependencies ---
xdg-desktop-portal
kdePackages.xdg-desktop-portal-kde
xdg-desktop-portal-gtk
xdg-desktop-portal-hyprland
# --- Illogical Impulse Python Dependencies ---
clang
uv
gtk4
libadwaita
libsoup_3
libportal-gtk4
gobject-introspection
sassc
python3Packages.opencv-python
# --- Illogical Impulse Screencapture Dependencies ---
hyprshot
slurp
swappy
tesseract
# tesseract-data-eng
wf-recorder
# --- Illogical Impulse GTK/Qt Dependencies ---
kdePackages.kdialog
upower
wtype
ydotool
# --- Illogical Impulse Widget Dependencies ---
# illogical-impulse.legacyPackages.${pkgs.system}.quickshellWithQT
# quickshell.packages.${pkgs.system}.default
fuzzel
# glib2
translate-shell
wlogout
]
+49
View File
@@ -0,0 +1,49 @@
{lib, ...}: {
format = lib.concatStrings [
"$username"
"$hostname"
"$directory"
"$git_branch"
"$git_state"
"$git_status"
"$cmd_duration"
"$line_break"
"$python"
"$character"
];
directory = {
style = "blue";
};
character = {
success_symbol = "[](purple)";
error_symbol = "[](red)";
vimcmd_symbol = "[](green)";
};
git_branch = {
format = "[$branch]($style)";
style = "bright-black";
};
git_status = {
format = "[(*$conflicted$untracked$modified$staged$renamed$deleted) $ahead_behind$stashed]($style)";
style = "cyan";
conflicted = "";
untracked = "";
modified = "";
staged = "";
renamed = "";
deleted = "";
stashed = "";
};
git_state = {
format = "([$state( $progress_current/$progress_total)]($style)) ";
style = "bright-black";
};
cmd_duration = {
format = "[$duration]($style) ";
style = "yellow";
};
python = {
format = "[$virtualenv]($style) ";
style = "bright-black";
};
}
+23
View File
@@ -0,0 +1,23 @@
{
config,
lib,
...
}: let
cfg = config.programs.illogical-impulse;
simpleStarshipSettings = import ./simpleStarship.nix {inherit lib;};
in {
imports = [
../options.nix
];
config = lib.mkIf cfg.enable {
programs.starship = lib.mkIf cfg.settings.simpleStarship.enable {
enable = true;
settings = simpleStarshipSettings;
};
home.file.".config/starship.toml" = lib.mkIf (!cfg.settings.simpleStarship.enable) {
source = builtins.path {path = ../../.config/starship.toml;};
};
};
}
Symlink
+1
View File
@@ -0,0 +1 @@
/nix/store/mh22vi3q34jd1a9x0yxhqp38142jqhma-illogical-impulse-packages