mirror of
https://github.com/tomasriveral/nixos.git
synced 2026-08-12 02:28:37 +02:00
custom-performance: entire rewrite
Now kills caelestia, change monitor hz and launches lightweight alternative to calestia (waybar and swaync)
This commit is contained in:
@@ -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
|
||||||
@@ -198,8 +198,8 @@
|
|||||||
"$mod_SHIFT, S, exec, caelestia shell picker open"
|
"$mod_SHIFT, S, exec, caelestia shell picker open"
|
||||||
# framework 16 rgb macropad
|
# framework 16 rgb macropad
|
||||||
"Ctrl+$mod, 6, exec, custom-killall" # pos 1 1 killall apps except focused one
|
"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, custom-performance" # pos 2 1 start performance mode
|
||||||
"Ctrl+Alt, 7, exec, caelestia shell gameMode toggle"
|
#"Ctrl+Alt, 7, exec, caelestia shell gameMode toggle"
|
||||||
# reloads the autostart programs # pos 3 1
|
# reloads the autostart programs # pos 3 1
|
||||||
# we passed to caelestia-shell and stoped using that
|
# 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, swaync-client -t" # pos 4 1 notification center
|
||||||
"Ctrl+Alt, 1, exec, qs ipc call notifications toggle"
|
"Ctrl+Alt, 1, exec, qs ipc call notifications toggle"
|
||||||
*/
|
*/
|
||||||
|
# pos 4 1 notification center.
|
||||||
"Ctrl+Alt, 1, exec, caelestia shell drawers toggle sidebar"
|
"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, 4, exec, caelestia shell notifs toggleDnd"
|
||||||
"Ctrl+$mod, 3, exec, pavucontrol" # pos 1 2 audiocontrol
|
"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
|
"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
|
||||||
|
|||||||
@@ -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 = _: {
|
flake.homeModules.waybar = _: {
|
||||||
# replaced by caelestia
|
# replaced by caelestia
|
||||||
programs.waybar = {
|
programs.waybar = {
|
||||||
|
|||||||
@@ -2,8 +2,25 @@ _: {
|
|||||||
flake.homeModules.zsh-laptop = _: {
|
flake.homeModules.zsh-laptop = _: {
|
||||||
programs.zsh = {
|
programs.zsh = {
|
||||||
shellAliases = {
|
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";
|
snrt = ''
|
||||||
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";
|
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
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
_: {
|
{self, inputs, ...}: {
|
||||||
flake.nixosModules.battery-laptop = {
|
flake.nixosModules.battery-laptop = {
|
||||||
lib,
|
lib,
|
||||||
config,
|
config,
|
||||||
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
# https://discourse.nixos.org/t/what-is-the-best-option-for-power-management/63406/2
|
# https://discourse.nixos.org/t/what-is-the-best-option-for-power-management/63406/2
|
||||||
@@ -50,7 +51,9 @@ _: {
|
|||||||
STOP_CHARGE_THRESH_BAT1 = 80;
|
STOP_CHARGE_THRESH_BAT1 = 80;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
# };
|
environment.systemPackages = [
|
||||||
|
self.packages.${pkgs.system}.custom-performance
|
||||||
|
];
|
||||||
};
|
};
|
||||||
perSystem = {pkgs, ...}: let
|
perSystem = {pkgs, ...}: let
|
||||||
NotifySound = ../../assets/battery_notify.mp3;
|
NotifySound = ../../assets/battery_notify.mp3;
|
||||||
@@ -335,28 +338,97 @@ _: {
|
|||||||
name = "custom-performance";
|
name = "custom-performance";
|
||||||
runtimeInputs = with pkgs; [
|
runtimeInputs = with pkgs; [
|
||||||
hyprland
|
hyprland
|
||||||
gawk
|
brightnessctl
|
||||||
|
swaynotificationcenter
|
||||||
|
self.packages.${pkgs.system}.custom-wallpaper
|
||||||
libnotify
|
libnotify
|
||||||
|
inputs.caelestia-shell.packages.${pkgs.system}.default
|
||||||
];
|
];
|
||||||
text = ''
|
text = ''
|
||||||
HYPRGAMEMODE=$(hyprctl getoption animations:enabled | awk 'NR==1{print $2}')
|
STATE="$HOME/.cache/hypr-battery-saver"
|
||||||
if [ "$HYPRGAMEMODE" = 1 ] ; then
|
|
||||||
|
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 "\
|
hyprctl --batch "\
|
||||||
keyword animations:enabled 0;\
|
keyword animations:enabled 0;\
|
||||||
keyword animation borderangle,0; \
|
keyword animation borderangle,0;\
|
||||||
keyword decoration:shadow:enabled 0;\
|
keyword decoration:shadow:enabled 0;\
|
||||||
keyword decoration:blur:enabled 0;\
|
keyword decoration:blur:enabled 0;\
|
||||||
|
keyword decoration:rounding 0;\
|
||||||
keyword decoration:fullscreen_opacity 1;\
|
keyword decoration:fullscreen_opacity 1;\
|
||||||
keyword general:gaps_in 0;\
|
keyword general:gaps_in 0;\
|
||||||
keyword general:gaps_out 0;\
|
keyword general:gaps_out 0;\
|
||||||
keyword general:border_size 1;\
|
keyword general:border_size 1;\
|
||||||
keyword decoration:rounding 0"
|
keyword decoration:active_opacity 1;\
|
||||||
notify-send -u critical -t 5000 "Performance mode [ON]"
|
keyword decoration:inactive_opacity 1;\
|
||||||
exit
|
keyword misc:vfr true"
|
||||||
else
|
|
||||||
notify-send -u critical -t 5000 "Performance mode [OFF]"
|
# 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
|
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
|
fi
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -74,15 +74,17 @@
|
|||||||
rofi
|
rofi
|
||||||
sbb-tui
|
sbb-tui
|
||||||
ssh
|
ssh
|
||||||
|
swaync # used in performance mode
|
||||||
thunderbird
|
thunderbird
|
||||||
tomasr
|
tomasr
|
||||||
vivify
|
vivify
|
||||||
|
waybar-minimal # used in performance mode
|
||||||
zoxide
|
zoxide
|
||||||
zsh
|
zsh
|
||||||
zsh-desktop
|
zsh-desktop
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
flake.nixosModules.desktop = _: {
|
flake.nixosModules.desktop = {pkgs, ...}: {
|
||||||
# This value determines the NixOS release from which the default
|
# This value determines the NixOS release from which the default
|
||||||
# settings for stateful data, like file locations and database versions
|
# settings for stateful data, like file locations and database versions
|
||||||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||||
@@ -94,6 +96,9 @@
|
|||||||
"nix-command"
|
"nix-command"
|
||||||
"flakes"
|
"flakes"
|
||||||
];
|
];
|
||||||
|
environment.systemPackages = [
|
||||||
|
self.packages.${pkgs.system}.custom-performance
|
||||||
|
];
|
||||||
};
|
};
|
||||||
flake.nixosModules.home-manager-desktop = {pkgs, ...}: {
|
flake.nixosModules.home-manager-desktop = {pkgs, ...}: {
|
||||||
imports = [
|
imports = [
|
||||||
|
|||||||
@@ -76,9 +76,11 @@
|
|||||||
rofi
|
rofi
|
||||||
sbb-tui
|
sbb-tui
|
||||||
ssh
|
ssh
|
||||||
|
swaync # used in performance mode
|
||||||
thunderbird
|
thunderbird
|
||||||
tomasr
|
tomasr
|
||||||
vivify
|
vivify
|
||||||
|
waybar-minimal # used in performance mode
|
||||||
zoxide
|
zoxide
|
||||||
zsh
|
zsh
|
||||||
zsh-laptop
|
zsh-laptop
|
||||||
|
|||||||
Reference in New Issue
Block a user