forked from Shinonome/dots-hyprland
Compare commits
102 Commits
f0d7d6f074
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 59d1b4a337 | |||
| 151034f4fc | |||
| eb226350fc | |||
| ae081803a5 | |||
| 8cba405b0e | |||
| c61fe63bae | |||
| c8d0cec782 | |||
| a02fd32ee2 | |||
| 6be0a483e8 | |||
| 3c32424793 | |||
| 5535d43146 | |||
| 4f5b41204c | |||
| 6335cdce16 | |||
| ce86247d3e | |||
| 580865cb4c | |||
| 8b4cf2c91d | |||
| ee37fc5f6d | |||
| 7a5635507e | |||
| 609720f540 | |||
| bec280bcbc | |||
| 1dc5e26712 | |||
| c0ad3a4acb | |||
| 33dc50df7a | |||
| 604108a093 | |||
| b5960f4363 | |||
| 1654ba6ee4 | |||
| b1484ba42e | |||
| 76edab5b1c | |||
| c5bb2bf66f | |||
| 624606d853 | |||
| be5772ea09 | |||
| e6dd387e9f | |||
| 84ac1c05e2 | |||
| e1ac8eeed1 | |||
| 415806ca96 | |||
| 650a5fa73c | |||
| 3c496175dc | |||
| b1daadc71e | |||
| aae0668878 | |||
| 7495f5ebbc | |||
| d9a4fba05a | |||
| 64cf3883aa | |||
| 51d1d30a61 | |||
| c7e43f10e3 | |||
| 93bcfd494c | |||
| b76a1e45ef | |||
| 527a8f2b75 | |||
| 1d57900977 | |||
| 6fd73b8691 | |||
| 40dbb31fbc | |||
| d729f27755 | |||
| a270c99361 | |||
| dc379f2ee6 | |||
| 992e54592b | |||
| c502d301b8 | |||
| 58b144792e | |||
| c7d6a04c77 | |||
| a29382966b | |||
| 9d2d722bc6 | |||
| 490fb9ba35 | |||
| 5e7bef47a0 | |||
| 891cad49f0 | |||
| d6c4327639 | |||
| fed7deef79 | |||
| d4b1e53471 | |||
| 40f9981167 | |||
| 1902d47c1e | |||
| ae331f28cf | |||
| 41f93617ad | |||
| ed8b13037d | |||
| 7d0d6fbd9f | |||
| dcb26342b3 | |||
| 09a70bf980 | |||
| ccf5c9a252 | |||
| 06e277c316 | |||
| dc1c238819 | |||
| 8c5f3537f9 | |||
| 2348290bfb | |||
| 7b047e0719 | |||
| bce41fec66 | |||
| a0d060a8c3 | |||
| c83efbc591 | |||
| 230917fbb2 | |||
| 0b3db4e61a | |||
| 1a1a2b309f | |||
| f9129a5fb7 | |||
| 166d9f3f4b | |||
| cdf0188ec8 | |||
| 99638ade76 | |||
| 33953a915b | |||
| 3ad6d635d6 | |||
| f0ec76847f | |||
| a6c6f7958f | |||
| 4dc566a037 | |||
| 55d2a9fe6c | |||
| db7d0a00f0 | |||
| b9a7145c5c | |||
| f94de758d2 | |||
| a34c685b73 | |||
| 16c5b8f999 | |||
| 181014b678 | |||
| 083be17af4 |
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
@@ -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;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -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 "$@"
|
||||||
Generated
+42
@@ -71,6 +71,26 @@
|
|||||||
"type": "github"
|
"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": {
|
"hyprcursor": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"hyprlang": [
|
"hyprlang": [
|
||||||
@@ -353,6 +373,26 @@
|
|||||||
"type": "github"
|
"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": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1754498491,
|
"lastModified": 1754498491,
|
||||||
@@ -430,8 +470,10 @@
|
|||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"home-manager": "home-manager",
|
||||||
"hyprland": "hyprland",
|
"hyprland": "hyprland",
|
||||||
"matugen": "matugen",
|
"matugen": "matugen",
|
||||||
|
"nixos-fonts": "nixos-fonts",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
"oneUI": "oneUI",
|
"oneUI": "oneUI",
|
||||||
"quickshell": "quickshell"
|
"quickshell": "quickshell"
|
||||||
|
|||||||
@@ -19,13 +19,16 @@
|
|||||||
};
|
};
|
||||||
oneUI = {
|
oneUI = {
|
||||||
url = "github:/end-4/OneUI4-Icons";
|
url = "github:/end-4/OneUI4-Icons";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
home-manager = {
|
home-manager = {
|
||||||
url = "github:nix-community/home-manager";
|
url = "github:nix-community/home-manager";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
nixos-fonts = {
|
||||||
|
url = "git+https://git.sakamoto.dev/kenji/nixos-fonts";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = {
|
outputs = {
|
||||||
@@ -34,9 +37,10 @@
|
|||||||
hyprland,
|
hyprland,
|
||||||
quickshell,
|
quickshell,
|
||||||
matugen,
|
matugen,
|
||||||
|
nixos-fonts,
|
||||||
oneUI,
|
oneUI,
|
||||||
...
|
...
|
||||||
}: let
|
} @ inputs: let
|
||||||
supportedSystems = ["x86_64-linux"];
|
supportedSystems = ["x86_64-linux"];
|
||||||
eachSupportedSystem = f:
|
eachSupportedSystem = f:
|
||||||
nixpkgs.lib.genAttrs supportedSystems (system: let
|
nixpkgs.lib.genAttrs supportedSystems (system: let
|
||||||
@@ -48,7 +52,7 @@
|
|||||||
in {
|
in {
|
||||||
homeManagerModules = rec {
|
homeManagerModules = rec {
|
||||||
default = illogical-impulse;
|
default = illogical-impulse;
|
||||||
illogical-impulse = import ./modules/desktop/default.nix;
|
illogical-impulse = import ./modules/default.nix;
|
||||||
};
|
};
|
||||||
|
|
||||||
legacyPackages = eachSupportedSystem (pkgs: {
|
legacyPackages = eachSupportedSystem (pkgs: {
|
||||||
@@ -91,6 +95,15 @@
|
|||||||
dontStrip = true;
|
dontStrip = true;
|
||||||
dontFixup = 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: {
|
packages = eachSupportedSystem (pkgs: {
|
||||||
@@ -102,143 +115,13 @@
|
|||||||
|
|
||||||
devShells = eachSupportedSystem (pkgs: {
|
devShells = eachSupportedSystem (pkgs: {
|
||||||
default = pkgs.mkShell {
|
default = pkgs.mkShell {
|
||||||
packages = with pkgs; [
|
packages =
|
||||||
|
import ./modules/packages.nix {inherit pkgs inputs self;}
|
||||||
|
++ [
|
||||||
self.packages.${pkgs.system}.default
|
self.packages.${pkgs.system}.default
|
||||||
matugen.packages.${pkgs.system}.default
|
inputs.matugen.packages.${pkgs.system}.default
|
||||||
hyprland.packages.${pkgs.system}.default
|
inputs.hyprland.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
|
|
||||||
# # kde-material-you-colors
|
|
||||||
# kitty
|
|
||||||
# matugen.packages.${pkgs.system}.default
|
|
||||||
# # otf-space-grotesk
|
|
||||||
# starship
|
|
||||||
# # ttf-gabarito-git
|
|
||||||
# nerd-fonts.jetbrains-mono
|
|
||||||
# # ttf-material-symbols-variable-git
|
|
||||||
# # ttf-readex-pro
|
|
||||||
# # ttf-rubik-vf
|
|
||||||
# # ttf-twemoji
|
|
||||||
# ]
|
|
||||||
# # --- Illogical Impulse Hyprland Dependencies ---
|
|
||||||
# ++ [
|
|
||||||
# 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
|
|
||||||
# # libsForQt5.qt5.qtgraphicaleffects
|
|
||||||
#
|
|
||||||
# upower
|
|
||||||
# wtype
|
|
||||||
# ydotool
|
|
||||||
# ]
|
|
||||||
# # --- Illogical Impulse Widget Dependencies ---
|
|
||||||
# ++ [
|
|
||||||
# quickshell.packages.${pkgs.system}.default
|
|
||||||
# fuzzel
|
|
||||||
# # glib2
|
|
||||||
# translate-shell
|
|
||||||
# wlogout
|
|
||||||
# ];
|
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./desktop/desktop.nix
|
||||||
|
./terminal/terminal.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
imports = [
|
|
||||||
./desktop.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
+61
-179
@@ -5,200 +5,82 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit
|
|
||||||
(lib)
|
|
||||||
mkIf
|
|
||||||
mkMerge
|
|
||||||
mkDefault
|
|
||||||
mkOption
|
|
||||||
types
|
|
||||||
;
|
|
||||||
cfg = config.programs.illogical-impulse;
|
cfg = config.programs.illogical-impulse;
|
||||||
in {
|
in {
|
||||||
imports = [
|
imports = [
|
||||||
inputs.home-manager.nixosModules.home-manager
|
../options.nix
|
||||||
];
|
];
|
||||||
options = {
|
|
||||||
programs.illogical-impulse = {
|
config = lib.mkIf cfg.enable {
|
||||||
enable = mkOption {
|
wayland.windowManager.hyprland = {
|
||||||
type = types.bool;
|
# enable = true;
|
||||||
default = true;
|
package = inputs.hyprland.packages.${pkgs.system}.default;
|
||||||
description = ''
|
xwayland.enable = true;
|
||||||
Enables Illogical-impulse.
|
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 = mkIf cfg.enable {
|
|
||||||
programs.hyprland = {
|
|
||||||
enable = true;
|
|
||||||
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
|
||||||
portalPackage = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
|
|
||||||
};
|
|
||||||
home.file = {
|
|
||||||
".config/quickshell".source = builtins.path {path = ../../.config/quickshell;};
|
".config/quickshell".source = builtins.path {path = ../../.config/quickshell;};
|
||||||
".config/hypr".source = builtins.path {path = ../../.config/hypr;};
|
|
||||||
".config/matugen".source = builtins.path {path = ../../.config/matugen;};
|
|
||||||
".config/foot".source = builtins.path {path = ../../.config/foot;};
|
|
||||||
".config/kitty".source = builtins.path {path = ../../.config/kitty;};
|
".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/qt5ct".source = builtins.path {path = ../../.config/qt5ct;};
|
||||||
".config/qt6ct".source = builtins.path {path = ../../.config/qt6ct;};
|
".config/qt6ct".source = builtins.path {path = ../../.config/qt6ct;};
|
||||||
".config/wlogout".source = builtins.path {path = ../../.config/wlogout;};
|
".config/wlogout".source = builtins.path {path = ../../.config/wlogout;};
|
||||||
".config/Kvantum".source = builtins.path {path = ../../.config/Kvantum;};
|
".config/Kvantum".source = builtins.path {path = ../../.config/Kvantum;};
|
||||||
".config/xdg-desktop-portal".source = builtins.path {path = ../../.config/xdg-desktop-portal;};
|
".config/xdg-desktop-portal".source = builtins.path {path = ../../.config/xdg-desktop-portal;};
|
||||||
".config/starship.toml".source = builtins.path {path = ../../.config/starship.toml;};
|
})
|
||||||
};
|
];
|
||||||
|
|
||||||
home.packages = with pkgs;
|
home.packages =
|
||||||
[
|
import ../packages.nix {inherit pkgs;}
|
||||||
inputs.illogical-impulse.legacyPackages.${pkgs.system}.iiShellConfig
|
++ [
|
||||||
inputs.illogical-impulse.legacyPackages.${pkgs.system}.iiOneUI4Icons
|
inputs.illogical-impulse.packages.${pkgs.system}.default
|
||||||
inputs.illogical-impulse.legacyPackages.${pkgs.system}.quickshellWithQT
|
|
||||||
inputs.matugen.packages.${pkgs.system}.default
|
inputs.matugen.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
|
|
||||||
# kde-material-you-colors
|
|
||||||
kitty
|
|
||||||
# matugen.packages.${pkgs.system}.default
|
|
||||||
# otf-space-grotesk
|
|
||||||
starship
|
|
||||||
# ttf-gabarito-git
|
|
||||||
nerd-fonts.jetbrains-mono
|
|
||||||
# ttf-material-symbols-variable-git
|
|
||||||
# ttf-readex-pro
|
|
||||||
# ttf-rubik-vf
|
|
||||||
# ttf-twemoji
|
|
||||||
]
|
|
||||||
# --- Illogical Impulse Hyprland Dependencies ---
|
|
||||||
++ [
|
|
||||||
# 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
|
|
||||||
# qt6-5compat
|
|
||||||
# qt6-avif-image-plugin
|
|
||||||
# qt6-base
|
|
||||||
# qt6-declarative
|
|
||||||
# qt6-imageformats
|
|
||||||
# qt6-multimedia
|
|
||||||
# qt6-positioning
|
|
||||||
# qt6-quicktimeline
|
|
||||||
# qt6-sensors
|
|
||||||
# qt6-svg
|
|
||||||
# qt6-tools
|
|
||||||
# qt6-translations
|
|
||||||
# qt6-virtualkeyboard
|
|
||||||
# qt6-wayland
|
|
||||||
upower
|
|
||||||
wtype
|
|
||||||
ydotool
|
|
||||||
]
|
|
||||||
# --- Illogical Impulse Widget Dependencies ---
|
|
||||||
++ [
|
|
||||||
fuzzel
|
|
||||||
# glib2
|
|
||||||
translate-shell
|
|
||||||
wlogout
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -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"
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
{
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -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"
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -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"
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -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
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -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
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -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.";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -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
|
||||||
|
]
|
||||||
@@ -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";
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -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;};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user