From 01bde9682693db0a9b78aa0ba4d0d8fb7f0c9f31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Rivera?= Date: Sat, 13 Jun 2026 09:45:43 +0200 Subject: [PATCH 01/18] snapshot pre-autoupdate-2026-06-13T07-45-43Z From 158a5c2b299dc9b8bc9f0e2e6bdf7c3f7183a8a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Rivera?= Date: Sat, 13 Jun 2026 10:19:27 +0200 Subject: [PATCH 02/18] tlp: reenable --- modules/hardware/battery.nix | 7 +++---- modules/hosts/laptop.nix | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/modules/hardware/battery.nix b/modules/hardware/battery.nix index 13e27b2..224aa32 100644 --- a/modules/hardware/battery.nix +++ b/modules/hardware/battery.nix @@ -22,7 +22,7 @@ _: { # }; # config = lib.mkIf cfg.battery.enable { - powerManagement.powertop.enable = true; # enable powertop auto tuning on startup. + /*powerManagement.powertop.enable = true; # enable powertop auto tuning on startup. # Acording to https://community.frame.work/t/solved-keys-stick-and-repeat-after-being-released/51153/12 # Some powertop bug is responsable for the problem of the random keypress being stuck # fix: from https://git.gabbie.blue/blue/nixconf/src/commit/2d1bc6dad4684c019b6b3e894408e76e2734806c/hosts/gabbielaptop/configuration.nix#L68 @@ -30,9 +30,9 @@ _: { ${lib.getExe' config.systemd.package "udevadm"} trigger -c bind -s usb -a idVendor=32ac -a idProduct=0018 # Retrigger macropad udev rules ${lib.getExe' config.systemd.package "udevadm"} trigger -c bind -s usb -a idVendor=32ac -a idProduct=0013 - ''; + '';*/ services.system76-scheduler.settings.cfsProfiles.enable = true; # Better scheduling for CPU cycles - thanks System76!!! - services.thermald.enable = true; # Enable thermald, the temperature management daemon. (only necessary if on Intel CPUs) + services.thermald.enable = false; # Enable thermald, the temperature management daemon. (only necessary if on Intel CPUs) services.power-profiles-daemon.enable = false; # Disable GNOMEs power management services.tlp = { enable = true; # Enable TLP (better than gnomes internal power manager) @@ -47,7 +47,6 @@ _: { CPU_ENERGY_PERF_POLICY_ON_BAT = "powersave"; PLATFORM_PROFILE_ON_AC = "balanced"; PLATFORM_PROFILE_ON_BAT = "powersave"; - START_CHARGE_THRESH_BAT1 = 40; STOP_CHARGE_THRESH_BAT1 = 80; }; }; diff --git a/modules/hosts/laptop.nix b/modules/hosts/laptop.nix index 13553ba..8c5132f 100644 --- a/modules/hosts/laptop.nix +++ b/modules/hosts/laptop.nix @@ -18,7 +18,7 @@ audioAndMedia autoCleanup-laptop autoUpdate-laptop - #battery-laptop + battery-laptop bluetooth bootloader browsers From 09d92bc8e201c5c0d361db508a23de2ffef360aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Rivera?= Date: Sat, 13 Jun 2026 11:56:27 +0200 Subject: [PATCH 03/18] custom-performance: entire rewrite Now kills caelestia, change monitor hz and launches lightweight alternative to calestia (waybar and swaync) --- .gitignore | 9 +++ modules/applications/hyprland.nix | 8 ++- modules/applications/waybar.nix | 28 +++++++++ modules/applications/zsh.nix | 21 ++++++- modules/hardware/battery.nix | 98 +++++++++++++++++++++++++++---- modules/hosts/desktop.nix | 7 ++- modules/hosts/laptop.nix | 2 + 7 files changed, 154 insertions(+), 19 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a357584 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +# Ignore build outputs from performing a nix-build or `nix build` command +result +result-* + +# Ignore automatically generated direnv output +.direnv + +# Ignore NixOS interactive test driver history +**/.nixos-test-history diff --git a/modules/applications/hyprland.nix b/modules/applications/hyprland.nix index d2c3c4a..e724657 100644 --- a/modules/applications/hyprland.nix +++ b/modules/applications/hyprland.nix @@ -198,8 +198,8 @@ "$mod_SHIFT, S, exec, caelestia shell picker open" # framework 16 rgb macropad "Ctrl+$mod, 6, exec, custom-killall" # pos 1 1 killall apps except focused one - #"Ctrl+Alt, 7, exec, custom-performance" # pos 2 1 start performance mode - "Ctrl+Alt, 7, exec, caelestia shell gameMode toggle" + "Ctrl+Alt, 7, exec, custom-performance" # pos 2 1 start performance mode + #"Ctrl+Alt, 7, exec, caelestia shell gameMode toggle" # reloads the autostart programs # pos 3 1 # we passed to caelestia-shell and stoped using that /* @@ -211,7 +211,9 @@ #"Ctrl+Alt, 1, exec, swaync-client -t" # pos 4 1 notification center "Ctrl+Alt, 1, exec, qs ipc call notifications toggle" */ - "Ctrl+Alt, 1, exec, caelestia shell drawers toggle sidebar" + # pos 4 1 notification center. + "Ctrl+Alt, 1, exec, caelestia shell drawers toggle sidebar" + "Ctrl+Alt, 1, exec, [[ -f ~/.cache/hypr-battery-saver ]] || swaync-client -t" "Ctrl+$mod, 4, exec, caelestia shell notifs toggleDnd" "Ctrl+$mod, 3, exec, pavucontrol" # pos 1 2 audiocontrol "Ctrl+Shift+Alt, 0, exec, kitty --hold --class \"custom-changeAudioOutput\" --name \"Select audio output\" zsh -c \"custom-changeAudioOutput\"" # pos 2 2 change audio output fzf diff --git a/modules/applications/waybar.nix b/modules/applications/waybar.nix index 3fbe247..9af7bcd 100644 --- a/modules/applications/waybar.nix +++ b/modules/applications/waybar.nix @@ -1,4 +1,32 @@ _: { + flake.homeModules.waybar-minimal = _: { + programs.waybar = { + enable = true; + settings = [ + { + layer = "top"; + modules-left = []; + modules-center = []; + modules-right = [ + "battery" + "clock" + ]; + + battery = { + format = "{capacity}% {icon}"; + states = { + warning = 30; + critical = 15; + }; + }; + + clock = { + format = "{:%H:%M}"; + }; + } + ]; + }; + }; flake.homeModules.waybar = _: { # replaced by caelestia programs.waybar = { diff --git a/modules/applications/zsh.nix b/modules/applications/zsh.nix index c58545b..01b5c0e 100644 --- a/modules/applications/zsh.nix +++ b/modules/applications/zsh.nix @@ -2,8 +2,25 @@ _: { flake.homeModules.zsh-laptop = _: { programs.zsh = { shellAliases = { - snrt = "git -C ~/nixos add -A && time sudo nixos-rebuild test --flake ~/nixos/#laptop && pkill shell || true && pkill caelestia-shell || true && caelestia-shell -n > /dev/null 2>&1 & disown"; - snrs = "git -C ~/nixos add -A && time sudo nixos-rebuild switch --flake ~/nixos/#laptop && pkill shell || true && pkill caelestia-shell || true && caelestia-shell -n > /dev/null 2>&1 & disown"; + snrt = '' + git -C ~/nixos add -A && + time sudo nixos-rebuild test --flake ~/nixos/#laptop && + pkill shell || true && + if [ ! -f ~/.cache/hypr-battery-saver ]; then + pkill caelestia-shell || true && + caelestia-shell -n > /dev/null 2>&1 & disown + fi + ''; + + snrs = '' + git -C ~/nixos add -A && + time sudo nixos-rebuild switch --flake ~/nixos/#laptop && + pkill shell || true && + if [ ! -f ~/.cache/hypr-battery-saver ]; then + pkill caelestia-shell || true && + caelestia-shell -n > /dev/null 2>&1 & disown + fi + ''; }; }; }; diff --git a/modules/hardware/battery.nix b/modules/hardware/battery.nix index 224aa32..882c5e0 100644 --- a/modules/hardware/battery.nix +++ b/modules/hardware/battery.nix @@ -1,7 +1,8 @@ -_: { +{self, inputs, ...}: { flake.nixosModules.battery-laptop = { lib, config, + pkgs, ... }: # https://discourse.nixos.org/t/what-is-the-best-option-for-power-management/63406/2 @@ -50,7 +51,9 @@ _: { STOP_CHARGE_THRESH_BAT1 = 80; }; }; - # }; + environment.systemPackages = [ + self.packages.${pkgs.system}.custom-performance + ]; }; perSystem = {pkgs, ...}: let NotifySound = ../../assets/battery_notify.mp3; @@ -335,28 +338,97 @@ _: { name = "custom-performance"; runtimeInputs = with pkgs; [ hyprland - gawk + brightnessctl + swaynotificationcenter + self.packages.${pkgs.system}.custom-wallpaper libnotify + inputs.caelestia-shell.packages.${pkgs.system}.default ]; text = '' - HYPRGAMEMODE=$(hyprctl getoption animations:enabled | awk 'NR==1{print $2}') - if [ "$HYPRGAMEMODE" = 1 ] ; then + STATE="$HOME/.cache/hypr-battery-saver" + + enable() { + mkdir -p "$(dirname "$STATE")" + + echo "Enabling battery saver mode..." + + # Save brightness + brightnessctl get > "''${STATE}.brightness" 2>/dev/null || true + + # Kill heavy UI components + pkill -f caelestia-shell || true + pkill -f caelestia || true + pkill shell || true + pkill -f custom-wallpaper || true + + # Start lightweight notifications + pkill swaync || true + swaync & disown + + # Start lightweight waybar + pkill waybar || true + waybar & disown + + # Lower refresh rate (BIGGEST win) + hyprctl keyword monitor "eDP-1,2560x1600@60,0x0,1" + + # Core performance toggles hyprctl --batch "\ keyword animations:enabled 0;\ - keyword animation borderangle,0; \ + keyword animation borderangle,0;\ keyword decoration:shadow:enabled 0;\ keyword decoration:blur:enabled 0;\ - keyword decoration:fullscreen_opacity 1;\ + keyword decoration:rounding 0;\ + keyword decoration:fullscreen_opacity 1;\ keyword general:gaps_in 0;\ keyword general:gaps_out 0;\ keyword general:border_size 1;\ - keyword decoration:rounding 0" - notify-send -u critical -t 5000 "Performance mode [ON]" - exit - else - notify-send -u critical -t 5000 "Performance mode [OFF]" + keyword decoration:active_opacity 1;\ + keyword decoration:inactive_opacity 1;\ + keyword misc:vfr true" + + # Lower brightness + brightnessctl set 5% 2>/dev/null || true + + touch "$STATE" + + notify-send "Battery Saver" "Enabled" + } + + disable() { + echo "Disabling battery saver mode..." + + # Restore refresh rate + hyprctl keyword monitor "eDP-1,2560x1600@165,0x0,1" + + # Restore Caelestia + pkill swaync || true + pkill waybar || true + caelestia shell >/dev/null 2>&1 & + disown + + + # Restart wallpaper + custom-wallpaper >/dev/null 2>&1 & + disown + + # Restore full UI via reload (safe here on exit) hyprctl reload - exit 0 + + # Restore brightness + if [[ -f "''${STATE}.brightness" ]]; then + brightnessctl set "$(cat "''${STATE}.brightness")" 2>/dev/null || true + fi + + rm -f "$STATE" "''${STATE}.brightness" + + notify-send "Battery Saver" "Disabled" + } + + if [[ -f "$STATE" ]]; then + disable + else + enable fi ''; }; diff --git a/modules/hosts/desktop.nix b/modules/hosts/desktop.nix index b56cb9d..05517a3 100644 --- a/modules/hosts/desktop.nix +++ b/modules/hosts/desktop.nix @@ -74,15 +74,17 @@ rofi sbb-tui ssh + swaync # used in performance mode thunderbird tomasr vivify + waybar-minimal # used in performance mode zoxide zsh zsh-desktop ]; }; - flake.nixosModules.desktop = _: { + flake.nixosModules.desktop = {pkgs, ...}: { # This value determines the NixOS release from which the default # settings for stateful data, like file locations and database versions # on your system were taken. It‘s perfectly fine and recommended to leave @@ -94,6 +96,9 @@ "nix-command" "flakes" ]; + environment.systemPackages = [ + self.packages.${pkgs.system}.custom-performance + ]; }; flake.nixosModules.home-manager-desktop = {pkgs, ...}: { imports = [ diff --git a/modules/hosts/laptop.nix b/modules/hosts/laptop.nix index 8c5132f..76ed58d 100644 --- a/modules/hosts/laptop.nix +++ b/modules/hosts/laptop.nix @@ -76,9 +76,11 @@ rofi sbb-tui ssh + swaync # used in performance mode thunderbird tomasr vivify + waybar-minimal # used in performance mode zoxide zsh zsh-laptop From dd4fb62a2f594246e6f410581142040a9e389efd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Rivera?= Date: Sat, 13 Jun 2026 19:02:12 +0200 Subject: [PATCH 04/18] custom-performance: fixes --- modules/hardware/battery.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/hardware/battery.nix b/modules/hardware/battery.nix index 882c5e0..1a0a31b 100644 --- a/modules/hardware/battery.nix +++ b/modules/hardware/battery.nix @@ -404,7 +404,7 @@ # Restore Caelestia pkill swaync || true pkill waybar || true - caelestia shell >/dev/null 2>&1 & + caelestia shell -d >/dev/null 2>&1 & disown From 2d8c7970429fcf4923c8dd89fdccf38d5c71278d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Rivera?= Date: Sat, 13 Jun 2026 21:33:47 +0200 Subject: [PATCH 05/18] snapshot pre-cleanup-2026-06-13T19-33-47Z From 52e5e4a4d4ca172edb0c7954dfc103a72c07dfdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Rivera?= Date: Sat, 13 Jun 2026 22:10:05 +0200 Subject: [PATCH 06/18] custom-performance: fixes --- modules/hardware/battery.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/modules/hardware/battery.nix b/modules/hardware/battery.nix index 1a0a31b..a898d85 100644 --- a/modules/hardware/battery.nix +++ b/modules/hardware/battery.nix @@ -1,7 +1,5 @@ {self, inputs, ...}: { flake.nixosModules.battery-laptop = { - lib, - config, pkgs, ... }: From 2585a887801ab724f221b49b58a8ae928e622321 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Rivera?= Date: Sat, 13 Jun 2026 22:10:24 +0200 Subject: [PATCH 07/18] snapshot pre-cleanup-2026-06-13T20-10-24Z From 4f3a74b74104c6ac88c1e017046a4b891657986e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Rivera?= Date: Sat, 13 Jun 2026 22:10:43 +0200 Subject: [PATCH 08/18] Auto: cleanup-2026-06-13T20-10-24Z --- flake.nix | 2 +- modules/applications/hyprland.nix | 4 +- modules/applications/mathematics.nix | 2 +- modules/applications/waybar.nix | 4 +- modules/applications/zsh.nix | 4 +- modules/hardware/battery.nix | 61 +++++++++++++++------------- modules/utilities/nixUtils.nix | 6 ++- 7 files changed, 45 insertions(+), 38 deletions(-) diff --git a/flake.nix b/flake.nix index ffcc356..96e28ad 100644 --- a/flake.nix +++ b/flake.nix @@ -4,7 +4,7 @@ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-26.05"; nixpkgs-unstable.url = "github:nixos/nixpkgs/nixpkgs-unstable"; # used for some packages - + # Only uncomment when needed. This uses a lot of space and compute ressources for sometimes not that much. If not used, make it follow unstable nixpkgs-master.follows = "nixpkgs-unstable"; #nixpkgs-master.url = "github:nixos/nixpkgs/master"; # used with precaution as they are untested and not cached diff --git a/modules/applications/hyprland.nix b/modules/applications/hyprland.nix index e724657..3a277fc 100644 --- a/modules/applications/hyprland.nix +++ b/modules/applications/hyprland.nix @@ -211,8 +211,8 @@ #"Ctrl+Alt, 1, exec, swaync-client -t" # pos 4 1 notification center "Ctrl+Alt, 1, exec, qs ipc call notifications toggle" */ - # pos 4 1 notification center. - "Ctrl+Alt, 1, exec, caelestia shell drawers toggle sidebar" + # pos 4 1 notification center. + "Ctrl+Alt, 1, exec, caelestia shell drawers toggle sidebar" "Ctrl+Alt, 1, exec, [[ -f ~/.cache/hypr-battery-saver ]] || swaync-client -t" "Ctrl+$mod, 4, exec, caelestia shell notifs toggleDnd" "Ctrl+$mod, 3, exec, pavucontrol" # pos 1 2 audiocontrol diff --git a/modules/applications/mathematics.nix b/modules/applications/mathematics.nix index 2d8ce6e..e5cded2 100644 --- a/modules/applications/mathematics.nix +++ b/modules/applications/mathematics.nix @@ -3,5 +3,5 @@ _: { environment.systemPackages = with pkgs; [ elan ]; - }; + }; } diff --git a/modules/applications/waybar.nix b/modules/applications/waybar.nix index 9af7bcd..4567825 100644 --- a/modules/applications/waybar.nix +++ b/modules/applications/waybar.nix @@ -11,7 +11,7 @@ _: { "battery" "clock" ]; - + battery = { format = "{capacity}% {icon}"; states = { @@ -19,7 +19,7 @@ _: { critical = 15; }; }; - + clock = { format = "{:%H:%M}"; }; diff --git a/modules/applications/zsh.nix b/modules/applications/zsh.nix index 01b5c0e..cc40343 100644 --- a/modules/applications/zsh.nix +++ b/modules/applications/zsh.nix @@ -11,7 +11,7 @@ _: { caelestia-shell -n > /dev/null 2>&1 & disown fi ''; - + snrs = '' git -C ~/nixos add -A && time sudo nixos-rebuild switch --flake ~/nixos/#laptop && @@ -50,7 +50,7 @@ _: { command cat "$@" fi } - + custom-eza() { # behaves differently if we just call it or if we pipe initContent if [[ -t 1 ]]; then eza -hlF -aa --color=always --hyperlink --group-directories-first --show-symlinks --icons=always --git --no-permissions "$@" diff --git a/modules/hardware/battery.nix b/modules/hardware/battery.nix index a898d85..234ab2d 100644 --- a/modules/hardware/battery.nix +++ b/modules/hardware/battery.nix @@ -1,8 +1,9 @@ -{self, inputs, ...}: { - flake.nixosModules.battery-laptop = { - pkgs, - ... - }: +{ + self, + inputs, + ... +}: { + flake.nixosModules.battery-laptop = {pkgs, ...}: # https://discourse.nixos.org/t/what-is-the-best-option-for-power-management/63406/2 # we just activate tlp unconditonally #let @@ -21,7 +22,8 @@ # }; # config = lib.mkIf cfg.battery.enable { - /*powerManagement.powertop.enable = true; # enable powertop auto tuning on startup. + /* + powerManagement.powertop.enable = true; # enable powertop auto tuning on startup. # Acording to https://community.frame.work/t/solved-keys-stick-and-repeat-after-being-released/51153/12 # Some powertop bug is responsable for the problem of the random keypress being stuck # fix: from https://git.gabbie.blue/blue/nixconf/src/commit/2d1bc6dad4684c019b6b3e894408e76e2734806c/hosts/gabbielaptop/configuration.nix#L68 @@ -29,7 +31,8 @@ ${lib.getExe' config.systemd.package "udevadm"} trigger -c bind -s usb -a idVendor=32ac -a idProduct=0018 # Retrigger macropad udev rules ${lib.getExe' config.systemd.package "udevadm"} trigger -c bind -s usb -a idVendor=32ac -a idProduct=0013 - '';*/ + ''; + */ services.system76-scheduler.settings.cfsProfiles.enable = true; # Better scheduling for CPU cycles - thanks System76!!! services.thermald.enable = false; # Enable thermald, the temperature management daemon. (only necessary if on Intel CPUs) services.power-profiles-daemon.enable = false; # Disable GNOMEs power management @@ -49,9 +52,9 @@ STOP_CHARGE_THRESH_BAT1 = 80; }; }; - environment.systemPackages = [ - self.packages.${pkgs.system}.custom-performance - ]; + environment.systemPackages = [ + self.packages.${pkgs.system}.custom-performance + ]; }; perSystem = {pkgs, ...}: let NotifySound = ../../assets/battery_notify.mp3; @@ -344,21 +347,21 @@ ]; text = '' STATE="$HOME/.cache/hypr-battery-saver" - + enable() { mkdir -p "$(dirname "$STATE")" - + echo "Enabling battery saver mode..." - + # Save brightness brightnessctl get > "''${STATE}.brightness" 2>/dev/null || true - + # Kill heavy UI components pkill -f caelestia-shell || true pkill -f caelestia || true pkill shell || true pkill -f custom-wallpaper || true - + # Start lightweight notifications pkill swaync || true swaync & disown @@ -366,10 +369,10 @@ # Start lightweight waybar pkill waybar || true waybar & disown - + # Lower refresh rate (BIGGEST win) hyprctl keyword monitor "eDP-1,2560x1600@60,0x0,1" - + # Core performance toggles hyprctl --batch "\ keyword animations:enabled 0;\ @@ -384,45 +387,45 @@ keyword decoration:active_opacity 1;\ keyword decoration:inactive_opacity 1;\ keyword misc:vfr true" - + # Lower brightness brightnessctl set 5% 2>/dev/null || true - + touch "$STATE" - + notify-send "Battery Saver" "Enabled" } - + disable() { echo "Disabling battery saver mode..." - + # Restore refresh rate hyprctl keyword monitor "eDP-1,2560x1600@165,0x0,1" - + # Restore Caelestia pkill swaync || true pkill waybar || true caelestia shell -d >/dev/null 2>&1 & disown - + # Restart wallpaper custom-wallpaper >/dev/null 2>&1 & disown - + # Restore full UI via reload (safe here on exit) hyprctl reload - + # Restore brightness if [[ -f "''${STATE}.brightness" ]]; then brightnessctl set "$(cat "''${STATE}.brightness")" 2>/dev/null || true fi - + rm -f "$STATE" "''${STATE}.brightness" - + notify-send "Battery Saver" "Disabled" } - + if [[ -f "$STATE" ]]; then disable else diff --git a/modules/utilities/nixUtils.nix b/modules/utilities/nixUtils.nix index 36964b6..5078834 100644 --- a/modules/utilities/nixUtils.nix +++ b/modules/utilities/nixUtils.nix @@ -1,4 +1,8 @@ -{inputs, self, ...}: { +{ + inputs, + self, + ... +}: { flake.nixosModules.nixUtils-laptop = _: { # nixpkgs-review crashed my laptop multiple times. We must reduce how much ressources it can take. # for reference, my laptop is a 12 core ryzen 7 From 523b104c43759f7be77cbdda172543201fbab5a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Rivera?= Date: Sat, 13 Jun 2026 22:11:53 +0200 Subject: [PATCH 09/18] treesitter: add sparql --- modules/applications/neovim.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/applications/neovim.nix b/modules/applications/neovim.nix index c405449..9c7eca9 100644 --- a/modules/applications/neovim.nix +++ b/modules/applications/neovim.nix @@ -52,6 +52,7 @@ _: { pkgs-unstable.vimPlugins.nvim-treesitter-parsers.nix pkgs-unstable.vimPlugins.nvim-treesitter-parsers.printf pkgs-unstable.vimPlugins.nvim-treesitter-parsers.python + pkgs-unstable.vimPlugins.nvim-treesitter-parsers.sparql pkgs-unstable.vimPlugins.telescope-nvim pkgs-unstable.vimPlugins.nvim-scrollbar pkgs-unstable.vimPlugins.promise-async From 930e265420921e55af6afec623f2f11835081ce0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Rivera?= Date: Sun, 14 Jun 2026 11:05:39 +0200 Subject: [PATCH 10/18] tlp:replace by powerprofilesdaemon --- modules/hardware/battery.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/hardware/battery.nix b/modules/hardware/battery.nix index 234ab2d..096d37d 100644 --- a/modules/hardware/battery.nix +++ b/modules/hardware/battery.nix @@ -35,8 +35,8 @@ */ services.system76-scheduler.settings.cfsProfiles.enable = true; # Better scheduling for CPU cycles - thanks System76!!! services.thermald.enable = false; # Enable thermald, the temperature management daemon. (only necessary if on Intel CPUs) - services.power-profiles-daemon.enable = false; # Disable GNOMEs power management - services.tlp = { + services.power-profiles-daemon.enable = true; # ppd is recommended over tlp for framework 16 + /*services.tlp = { enable = true; # Enable TLP (better than gnomes internal power manager) settings = { CPU_BOOST_ON_AC = 1; @@ -51,7 +51,7 @@ PLATFORM_PROFILE_ON_BAT = "powersave"; STOP_CHARGE_THRESH_BAT1 = 80; }; - }; + };*/ environment.systemPackages = [ self.packages.${pkgs.system}.custom-performance ]; From e75881939876f8b6732f06dffe6a2b8e05ac725c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Rivera?= Date: Sun, 14 Jun 2026 11:10:56 +0200 Subject: [PATCH 11/18] custom-performance: reset on startup --- modules/applications/hyprland.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/applications/hyprland.nix b/modules/applications/hyprland.nix index 3a277fc..d851950 100644 --- a/modules/applications/hyprland.nix +++ b/modules/applications/hyprland.nix @@ -281,6 +281,8 @@ #"QS-notifycache" # builds the cache that will be used for the notification history "sleep 4 & caelestia-shell" #works better if it sleeps a bit before "sleep 20 && ngcp pull --automatic" # see github.com/tomasriveral/nix-git-cherry-picker + "rm ~/.cache/hypr-battery-saver" + "rm ~/.cache/hypr-battery-saver.brightness" /* We stopped using that ######################### maybe we should desactivate those scripts # login autostart From 58ec4221effdc3837bd783e4ce7869a9b6805cf0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Rivera?= Date: Sun, 14 Jun 2026 11:14:48 +0200 Subject: [PATCH 12/18] desktop: ported custom-performance --- modules/hardware/performance.nix | 7 +++++++ modules/hosts/desktop.nix | 1 + 2 files changed, 8 insertions(+) create mode 100644 modules/hardware/performance.nix diff --git a/modules/hardware/performance.nix b/modules/hardware/performance.nix new file mode 100644 index 0000000..868124f --- /dev/null +++ b/modules/hardware/performance.nix @@ -0,0 +1,7 @@ +{self, ...}: { + flake.nixosModules.performance-desktop = {pkgs,...}: { + environment.systemPackages = [ + self.packages.${pkgs.system}.custom-performance + ]; + }; +} diff --git a/modules/hosts/desktop.nix b/modules/hosts/desktop.nix index 05517a3..6dbf7bf 100644 --- a/modules/hosts/desktop.nix +++ b/modules/hosts/desktop.nix @@ -44,6 +44,7 @@ office #ollama otherUtils + performance-desktop printer rss udev From 2e322fbb79e0a14e44192064cfbe3fcd73aff7ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Rivera?= Date: Tue, 16 Jun 2026 22:45:00 +0200 Subject: [PATCH 13/18] gitBackup: add ngcp and ReSSPublica --- modules/utilities/gitBackup.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/utilities/gitBackup.nix b/modules/utilities/gitBackup.nix index 08f9070..09561be 100644 --- a/modules/utilities/gitBackup.nix +++ b/modules/utilities/gitBackup.nix @@ -54,7 +54,9 @@ "https://github.com/tomasriveral/notewrapper.git" "https://github.com/tomasriveral/fractal-cli.git" "https://github.com/tomasriveral/boids.git" - "https://github.com/tomasriveral/Nixpkgs-tracker-notifier.git" + "https://github.com/tomasriveral/nixpkgs-notifier.git" + "https://github.com/tomasriveral/Nix-Git-Cherry-Picker.git" + "https://github.com/tomasriveral/ReSSPublica.git" ) LOCAL_BACKUP_DIR="$HOME/.gitBackups" From 97beca4f88dad127890453c26ff94f62d739efa6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Rivera?= Date: Thu, 18 Jun 2026 17:00:20 +0200 Subject: [PATCH 14/18] kdrive: setup sync with desktop --- modules/applications/kdrive.nix | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/modules/applications/kdrive.nix b/modules/applications/kdrive.nix index d432f13..3522eb7 100644 --- a/modules/applications/kdrive.nix +++ b/modules/applications/kdrive.nix @@ -34,15 +34,13 @@ CPUWeight = 1; # minimum relative CPU share }; }; - /* systemd.user.timers.kdrive-sync = { wantedBy = [ "timers.target" ]; timerConfig = { - OnBootSec = "1m"; - OnUnitActiveSec = "5m"; + OnBootSec = "10m"; + OnUnitActiveSec = "1h"; }; }; - */ }; perSystem = {pkgs, ...}: { packages.custom-checkKdrive = pkgs.writeShellApplication { @@ -115,18 +113,25 @@ runtimeInputs = with pkgs; [ rclone libnotify + ripgrep ]; text = '' REMOTE_NAME="kdrive" MOUNT_POINT="/home/tomasr/hdd/kdrive" - - if rclone listremotes | rg "^''${REMOTE_NAME}:"; then + LOGFILE="/tmp/rclone-bisync.log" + rm LOGFILE && touch LOGFILE + if rclone --config "$HOME/.config/rclone/rclone.conf" listremotes | rg "^''${REMOTE_NAME}:"; then echo "Syncing ''${REMOTE_NAME}..." - rclone bisync "''${REMOTE_NAME}:" "$MOUNT_POINT" & + if ! rclone --config "$HOME/.config/rclone/rclone.conf" bisync "$MOUNT_POINT" "$REMOTE_NAME:" --recover > "$LOGFILE" 2>&1; then + notify-send "rclone bisync failed" "$(cat $LOGFILE)" + echo "rclone bisync failed" + cat $LOGFILE + cp $LOGFILE "$HOME/hdd/kdrive/logs/$(date +%Y-%m-%d-%H-%M-%S).log" + fi else notify-send "rclone sync failed" \ "Remote ''${REMOTE_NAME} not found.\nConfigure rclone and create the dir ~/kdrive/ or comment out the exec line in hyprland.nix." - echo "Remote ''${REMOTE_NAME} not found. Configure rclone or comment out the exec line in hyprland.nix." + echo "Remote ''${REMOTE_NAME} not found. Configure rclone or fix in ~/nixos/modules/applications/kdrive.nix" fi ''; }; From a619a10851e1d3936b09f0665114a81cdd3abce5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Rivera?= Date: Thu, 18 Jun 2026 19:47:29 +0200 Subject: [PATCH 15/18] icloud backup with kdrive --- modules/applications/hyprland.nix | 13 +++++++++++++ modules/applications/kdrive.nix | 13 +++++++------ 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/modules/applications/hyprland.nix b/modules/applications/hyprland.nix index d851950..99685ed 100644 --- a/modules/applications/hyprland.nix +++ b/modules/applications/hyprland.nix @@ -53,6 +53,19 @@ monitor = [ ", highres@highrr, auto, 0.75" ]; + exec-once = [ + "if [ -e \"/home/tomasr/icloudSync.sh\" ]; then /home/tomasr/icloudSync.sh; else notify-send \"icloudSync.sh doesn't exist\" \"See ~/nixos/modules/applications/hyprland.nix for more information\"; fi" + # my icloud account uses an email that I don't want to make public. So the script isnt pushed to github. The script looks like: + /* + #!/etc/profiles/per-user/tomasr/bin/zsh + if ! icloudpd --auth-only --username tomas.rivera_2009@icloud.com --dry-run; then + notify-send "icloudpd is not logged in" "Please run icloudpd icloudpd --username my@email.address --password my_password --auth-only" + exit 1 + fi + icloudpd --directory ~/hdd/kdrive/Photo/IPhone/icloudpd-backup --username tomas.rivera_2009@icloud.com --watch-with-interval 3600 --no-progress-bar + */ + + ]; }; }; flake.homeModules.hyprland = {pkgs-unstable, ...}: let diff --git a/modules/applications/kdrive.nix b/modules/applications/kdrive.nix index 3522eb7..f34b115 100644 --- a/modules/applications/kdrive.nix +++ b/modules/applications/kdrive.nix @@ -11,11 +11,12 @@ enable = true; }; }; - flake.nixosModules.kdrive-desktop = {pkgs, ...}: { - environment.systemPackages = [ - pkgs.rclone - self.packages.${pkgs.system}.custom-checkKdrive - self.packages.${pkgs.system}.custom-synckdrive-desktop + flake.nixosModules.kdrive-desktop = {pkgs-unstable, ...}: { + environment.systemPackages = with pkgs-unstable; [ + rclone + icloudpd + self.packages.${pkgs-unstable.system}.custom-checkKdrive + self.packages.${pkgs-unstable.system}.custom-synckdrive-desktop ]; # removes rclone error programs.fuse = { @@ -24,7 +25,7 @@ }; systemd.user.services.kdrive-sync = { serviceConfig = { - ExecStart = "${self.packages.${pkgs.system}.custom-synckdrive-desktop}/bin/custom-synckdrive"; + ExecStart = "${self.packages.${pkgs-unstable.system}.custom-synckdrive-desktop}/bin/custom-synckdrive"; Nice = 19; # lowest CPU scheduling priority IOSchedulingClass = "idle"; From 3c7d3584fcb8a16afd719dcc4f0caf816e59bf80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Rivera?= Date: Fri, 19 Jun 2026 20:41:17 +0200 Subject: [PATCH 16/18] snapshot pre-autoupdate-2026-06-19T18-41-17Z From fece2b565fa55963344ca51e816cb7e3e4870a3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Rivera?= Date: Sat, 20 Jun 2026 19:36:22 +0200 Subject: [PATCH 17/18] add zoom-us --- flake.nix | 1 + modules/utilities/communicationAndNotification.nix | 1 + 2 files changed, 2 insertions(+) diff --git a/flake.nix b/flake.nix index 96e28ad..c5f4cb0 100644 --- a/flake.nix +++ b/flake.nix @@ -70,6 +70,7 @@ "steam" "steam-unwrapped" "cheatsheet.nvim" + "zoom-us" "zoom" ]; mkUnfreePredicate = pkg: builtins.elem (inputs.nixpkgs.lib.getName pkg) unfreePkgs; diff --git a/modules/utilities/communicationAndNotification.nix b/modules/utilities/communicationAndNotification.nix index a9b845e..21506e4 100644 --- a/modules/utilities/communicationAndNotification.nix +++ b/modules/utilities/communicationAndNotification.nix @@ -11,6 +11,7 @@ self.packages.${pkgs.system}.custom-checkMatrix self.packages.${pkgs.system}.custom-gitnotify # checks if git is set up self.packages.${pkgs.system}.custom-checkKdrive # check if kdrive is set up with rclone + zoom-us ]; }; perSystem = {pkgs, ...}: { From 0ca30a41105f64be8935fb530f76b46fd0a79091 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Rivera?= Date: Sat, 20 Jun 2026 21:40:35 +0200 Subject: [PATCH 18/18] snapshot pre-cleanup-2026-06-20T19-40-35Z