mirror of
https://github.com/end-4/dots-hyprland.git
synced 2026-06-05 14:59:27 -05:00
Compare commits
119 Commits
| 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 | |||
| f0d7d6f074 | |||
| d561e4f1ec | |||
| 686de93cee | |||
| 1493021354 | |||
| 48d7be6682 | |||
| a9c40d493b | |||
| 3d36ead298 | |||
| 9b1de7c7ce | |||
| ce6e885a23 | |||
| 176ad4ba0b | |||
| 9a1ad0057e | |||
| 2327596517 | |||
| 71b67cc772 | |||
| 962934e82d | |||
| 1528a9f760 | |||
| 28be4d1bb4 | |||
| ad7ee4ad27 |
@@ -1,2 +1,5 @@
|
||||
# You can make apps auto-start here
|
||||
# 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
|
||||
# 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
|
||||
# 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
|
||||
# Window/layer rules: https://wiki.hyprland.org/Configuring/Window-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)
|
||||
new_window_takes_over_fullscreen = 2
|
||||
allow_session_lock_restore = true
|
||||
session_lock_xray = true
|
||||
# session_lock_xray = true
|
||||
initial_workspace_tracking = false
|
||||
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, O, global, quickshell:sidebarLeftToggle # [hidden]
|
||||
bindd = Super, N, Toggle right sidebar, global, quickshell:sidebarRightToggle # Toggle right sidebar
|
||||
bindd = Super, Slash, Toggle cheatsheet, global, quickshell:cheatsheetToggle # Toggle cheatsheet
|
||||
bindd = Super, K, Toggle on-screen keyboard, global, quickshell:oskToggle # Toggle on-screen keyboard
|
||||
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, M, Toggle media controls, global, quickshell:mediaControlsToggle # Toggle media controls
|
||||
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 = 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
|
||||
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+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
|
||||
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
|
||||
bindd = Super+Shift, C, Color picker, exec, hyprpicker -a # Pick color (Hex) >> clipboard
|
||||
# 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]
|
||||
|
||||
##! Session
|
||||
bindd = Super, L, Lock, exec, loginctl lock-session # Lock
|
||||
bind = Super+Shift, L, exec, loginctl lock-session # [hidden]
|
||||
bindld = Super+Shift, L, Suspend system, exec, sleep 0.1 && systemctl suspend || loginctl suspend # Sleep
|
||||
# bindd = Super, L, Lock, exec, loginctl lock-session # Lock
|
||||
# bind = Super+Shift, L, exec, loginctl lock-session # [hidden]
|
||||
# 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
|
||||
|
||||
##! Screen
|
||||
@@ -202,7 +202,7 @@ bindl= ,XF86AudioPause, exec, playerctl play-pause # [hidden]
|
||||
|
||||
##! 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, 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 = 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
|
||||
|
||||
+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 "$@"
|
||||
@@ -63,9 +63,9 @@ post_process() {
|
||||
# echo "Error: least_busy_region.py script not found in $MATUGEN_DIR/scripts/"
|
||||
# else
|
||||
# "$MATUGEN_DIR/scripts/least_busy_region.py" \
|
||||
# --screen-width "$screen_width" --screen-height "$screen_height" \
|
||||
# --width 300 --height 200 \
|
||||
# "$wallpaper_path" > "$STATE_DIR"/user/generated/wallpaper/least_busy_region.json
|
||||
# --screen-width "$screen_width" --screen-height "$screen_height" \
|
||||
# --width 300 --height 200 \
|
||||
# "$wallpaper_path" > "$STATE_DIR"/user/generated/wallpaper/least_busy_region.json
|
||||
# fi
|
||||
}
|
||||
|
||||
@@ -85,18 +85,18 @@ check_and_prompt_upscale() {
|
||||
fi
|
||||
if [[ "$img_width" -lt "$min_width_desired" || "$img_height" -lt "$min_height_desired" ]]; then
|
||||
action=$(notify-send "Upscale?" \
|
||||
"Image resolution (${img_width}x${img_height}) is lower than screen resolution (${min_width_desired}x${min_height_desired})" \
|
||||
-A "open_upscayl=Open Upscayl"\
|
||||
"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 "Wallpaper switcher")
|
||||
if [[ "$action" == "open_upscayl" ]]; then
|
||||
if command -v upscayl &>/dev/null; then
|
||||
nohup upscayl > /dev/null 2>&1 &
|
||||
else
|
||||
action2=$(notify-send \
|
||||
-a "Wallpaper switcher" \
|
||||
-c "im.error" \
|
||||
-A "install_upscayl=Install Upscayl (Arch)" \
|
||||
"Install Upscayl?" \
|
||||
-a "Wallpaper switcher" \
|
||||
-c "im.error" \
|
||||
-A "install_upscayl=Install Upscayl (Arch)" \
|
||||
"Install Upscayl?" \
|
||||
"yay -S upscayl-bin")
|
||||
if [[ "$action2" == "install_upscayl" ]]; then
|
||||
kitty -1 yay -S upscayl-bin
|
||||
@@ -204,10 +204,10 @@ switch() {
|
||||
echo "Missing deps: ${missing_deps[*]}"
|
||||
echo "Arch: sudo pacman -S ${missing_deps[*]}"
|
||||
action=$(notify-send \
|
||||
-a "Wallpaper switcher" \
|
||||
-c "im.error" \
|
||||
-A "install_arch=Install (Arch)" \
|
||||
"Can't switch to video wallpaper" \
|
||||
-a "Wallpaper switcher" \
|
||||
-c "im.error" \
|
||||
-A "install_arch=Install (Arch)" \
|
||||
"Can't switch to video wallpaper" \
|
||||
"Missing dependencies: ${missing_deps[*]}")
|
||||
if [[ "$action" == "install_arch" ]]; then
|
||||
kitty -1 sudo pacman -S "${missing_deps[*]}"
|
||||
|
||||
Generated
+556
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
];
|
||||
};
|
||||
});
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
imports = [
|
||||
./desktop/desktop.nix
|
||||
./terminal/terminal.nix
|
||||
];
|
||||
}
|
||||
@@ -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
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -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