From a46e31e7837a4fb50ef3812ae9e0f745f0d68c03 Mon Sep 17 00:00:00 2001 From: Jurn Wubben Date: Mon, 23 Jun 2025 20:10:15 +0200 Subject: [PATCH] Neovim added leap plugin Rewritten and moved portable module Updated background Disabled garnix substitutor Small changes to greetd --- home/programs/neovim.nix | 14 ++++- home/shell/other.nix | 2 +- home/wayland/hyprland/binds.nix | 3 +- home/wayland/hyprland/default.nix | 10 ++-- hosts/laptop/default.nix | 12 ++++- hosts/minimal/default.nix | 8 ++- system/desktop/greetd.nix | 2 +- system/desktop/plasma6.nix | 1 - system/hardware/default.nix | 1 + system/hardware/power.nix | 87 +++++++++++++++++++++++++++++++ system/nix/substituters.nix | 4 +- system/services/default.nix | 1 - system/services/power.nix | 15 ------ system/services/ssh.nix | 2 +- 14 files changed, 131 insertions(+), 31 deletions(-) create mode 100644 system/hardware/power.nix delete mode 100644 system/services/power.nix diff --git a/home/programs/neovim.nix b/home/programs/neovim.nix index 780994c..12f2780 100644 --- a/home/programs/neovim.nix +++ b/home/programs/neovim.nix @@ -41,11 +41,12 @@ providers.wl-copy.enable = true; registers = "unnamedplus"; }; + + options.shiftwidth = 2; binds = { whichKey.enable = true; cheatsheet.enable = true; }; - options.shiftwidth = 2; languages = { enableFormat = true; #You can also manually overwrite each language. enableTreesitter = true; @@ -120,7 +121,16 @@ colorizer.enable = true; smartcolumn. enable = true; }; - utility.vim-wakatime.enable = true; + utility = { + vim-wakatime.enable = true; + motion.leap = { + enable = true; + mappings = { + leapForwardTo = "f"; + leapBackwardTo = "F"; + }; + }; + }; visuals = { nvim-web-devicons.enable = true; nvim-cursorline.enable = true; diff --git a/home/shell/other.nix b/home/shell/other.nix index 029dc2b..0ad18cf 100644 --- a/home/shell/other.nix +++ b/home/shell/other.nix @@ -23,7 +23,7 @@ ++ lib.optionals osConfig.niksos.bluetooth [ pkgs.ear2ctl ] - ++ lib.optionals osConfig.niksos.portable [ + ++ lib.optionals osConfig.niksos.portable.enable [ inputs.somcli.defaultPackage.${pkgs.system} ]; } diff --git a/home/wayland/hyprland/binds.nix b/home/wayland/hyprland/binds.nix index 10c3fa0..69d0e0c 100644 --- a/home/wayland/hyprland/binds.nix +++ b/home/wayland/hyprland/binds.nix @@ -115,8 +115,9 @@ in { "Super, s, exec, ${torzu}" "Super, d, exec, ${dolphin}" ]) - ++ lib.optionals portable [ + ++ lib.optionals portable.enable [ "$m Shift, S, exec, ${somcli}" + ", XF86AudioMedia, exec, powermode toggle" ]; bindl = [ diff --git a/home/wayland/hyprland/default.nix b/home/wayland/hyprland/default.nix index 6baaa62..98d05ad 100644 --- a/home/wayland/hyprland/default.nix +++ b/home/wayland/hyprland/default.nix @@ -21,10 +21,12 @@ in { "QT_WAYLAND_DISABLE_WINDOWDECORATION,1" "NIXOS_OZONE_WL,1" ]; - exec-once = [ - "${uwsm} finalize" - "${hyprlock}" # Lock screen - ]; + exec-once = + [ + "${uwsm} finalize" + "${hyprlock}" # Lock screen + ] + ++ lib.optional osConfig.niksos.portable.enable "powermode sync"; }; }; } diff --git a/hosts/laptop/default.nix b/hosts/laptop/default.nix index ce6e8ab..33c9e60 100644 --- a/hosts/laptop/default.nix +++ b/hosts/laptop/default.nix @@ -24,7 +24,17 @@ niksos = { fingerprint = true; bluetooth = true; - portable = true; + portable = { + enable = true; + hyprland = { + powerSaver = '' + hyprctl keyword monitor eDP-1,2880x1920@60,0x0,1.5,vrr,1 + ''; + performance = '' + hyprctl keyword monitor eDP-1,2880x1920@120,0x0,1.5,vrr,1 + ''; + }; + }; neovim = true; games = true; diff --git a/hosts/minimal/default.nix b/hosts/minimal/default.nix index 408b1d2..4d05acd 100644 --- a/hosts/minimal/default.nix +++ b/hosts/minimal/default.nix @@ -23,7 +23,13 @@ nvidia = false; }; neovim = false; - portable = false; + portable = { + enable = false; + hyprland = { + powerSaver = ""; + performance = ""; + }; + }; server = false; }; diff --git a/system/desktop/greetd.nix b/system/desktop/greetd.nix index e04d0cb..5cb4982 100644 --- a/system/desktop/greetd.nix +++ b/system/desktop/greetd.nix @@ -20,6 +20,6 @@ }; }; - programs.uwsm.enable = lib.mkDefault true; + programs.uwsm.enable = config.niksos.desktop.hyprland; }; } diff --git a/system/desktop/plasma6.nix b/system/desktop/plasma6.nix index 6801ee3..cca4cce 100644 --- a/system/desktop/plasma6.nix +++ b/system/desktop/plasma6.nix @@ -22,7 +22,6 @@ in { desktopManager.plasma6.enable = true; }; - programs.uwsm.enable = false; home-manager.users.jsw.stylix.autoEnable = false; }; diff --git a/system/hardware/default.nix b/system/hardware/default.nix index 36678f4..9ec9a43 100644 --- a/system/hardware/default.nix +++ b/system/hardware/default.nix @@ -6,5 +6,6 @@ ./graphics.nix ./fingerprint.nix ./fwupd.nix + ./power.nix ]; } diff --git a/system/hardware/power.nix b/system/hardware/power.nix new file mode 100644 index 0000000..0f22c63 --- /dev/null +++ b/system/hardware/power.nix @@ -0,0 +1,87 @@ +{ + config, + lib, + pkgs, + ... +}: let + inherit (config) niksos; + cfg = niksos.portable; +in { + options.niksos.portable = { + enable = lib.mkEnableOption "battery optimisers"; + hyprland = let + gen = mode: + lib.mkOption { + default = ""; + description = "Shell commands to run when switching to ${mode} mode."; + type = lib.types.lines; + }; + in { + powerSaver = gen "power-saver"; + performance = gen "performance"; + }; + }; + config = { + services = lib.mkIf cfg.enable { + logind = { + powerKey = "suspend-then-hibernate"; + powerKeyLongPress = "poweroff"; + }; + upower.enable = true; + power-profiles-daemon.enable = true; + }; + + environment.systemPackages = lib.mkIf niksos.desktop.hyprland [ + (pkgs.writeScriptBin "powermode" '' + #!/usr/bin/env bash + + function sync() { + if [ "$(powerprofilesctl get)" = "power-saver" ]; then + hyprctl --batch "\ + keyword animations:enabled 0;\ + keyword decoration:shadow:enabled 0;\ + keyword decoration:blur:enabled 0;\ + keyword general:gaps_in 0;\ + keyword general:gaps_out 0;\ + keyword general:border_size 1;\ + keyword decoration:rounding 0" + + ${cfg.hyprland.powerSaver} + else + ${cfg.hyprland.performance} + hyprctl reload + fi + + } + function toggle() { + if [ "$(powerprofilesctl get)" = "power-saver" ]; then + powerprofilesctl set performance + else + powerprofilesctl set power-saver + fi + + sync + } + + if [ "$#" -ne 1 ]; then + echo "Usage: $0 {toggle|sync}" + exit 1 + fi + + case "$1" in + toggle) + toggle + ;; + sync) + sync + ;; + *) + echo "Invalid option: $1" + echo "Usage: $0 {toggle|sync}" + exit 1 + ;; + esac + '') + ]; + }; +} diff --git a/system/nix/substituters.nix b/system/nix/substituters.nix index 69845fa..17ac1a8 100644 --- a/system/nix/substituters.nix +++ b/system/nix/substituters.nix @@ -3,7 +3,7 @@ substituters = [ # high priority since it's almost always used "https://cache.nixos.org?priority=10" - "https://cache.garnix.io" + # "https://cache.garnix.io" # "https://anyrun.cachix.org" # "https://fufexan.cachix.org" @@ -16,7 +16,7 @@ trusted-public-keys = [ "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" - "cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g= " + # "cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g= " # "anyrun.cachix.org-1:pqBobmOjI7nKlsUMV25u9QHa9btJK65/C8vnO3p346s=" # "fufexan.cachix.org-1:LwCDjCJNJQf5XD2BV+yamQIMZfcKWR9ISIFy5curUsY=" diff --git a/system/services/default.nix b/system/services/default.nix index faf6a2f..55f0218 100644 --- a/system/services/default.nix +++ b/system/services/default.nix @@ -3,7 +3,6 @@ ./tailscale.nix ./avahi.nix ./kanata.nix - ./power.nix ./ssh.nix ]; } diff --git a/system/services/power.nix b/system/services/power.nix deleted file mode 100644 index 087f1e0..0000000 --- a/system/services/power.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ - config, - lib, - ... -}: { - options.niksos.portable = lib.mkEnableOption "battery optimisers"; - config.services = lib.mkIf config.niksos.portable { - logind = { - powerKey = "suspend-then-hibernate"; - powerKeyLongPress = "poweroff"; - }; - upower.enable = true; - power-profiles-daemon.enable = true; - }; -} diff --git a/system/services/ssh.nix b/system/services/ssh.nix index 574d769..fddd575 100644 --- a/system/services/ssh.nix +++ b/system/services/ssh.nix @@ -1,7 +1,7 @@ {config, ...}: { services.openssh = { enable = true; - openFirewall = !config.niksos.portable; + openFirewall = !config.niksos.portable.enable; settings.UseDns = true; }; }