mirror of
https://github.com/tomasriveral/nixos.git
synced 2026-08-11 18:18:37 +02:00
Merge pull request #31 from tomasriveral/laptop
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"
|
||||
# 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"
|
||||
*/
|
||||
# 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
|
||||
@@ -279,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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 = {
|
||||
|
||||
@@ -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
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
_: {
|
||||
flake.nixosModules.battery-laptop = {
|
||||
lib,
|
||||
config,
|
||||
{
|
||||
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
|
||||
@@ -22,6 +22,7 @@ _: {
|
||||
# };
|
||||
|
||||
# config = lib.mkIf cfg.battery.enable {
|
||||
/*
|
||||
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
|
||||
@@ -31,10 +32,11 @@ _: {
|
||||
# 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.power-profiles-daemon.enable = false; # Disable GNOMEs power management
|
||||
services.tlp = {
|
||||
services.thermald.enable = false; # Enable thermald, the temperature management daemon. (only necessary if on Intel CPUs)
|
||||
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;
|
||||
@@ -47,11 +49,12 @@ _: {
|
||||
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;
|
||||
};
|
||||
};
|
||||
# };
|
||||
};*/
|
||||
environment.systemPackages = [
|
||||
self.packages.${pkgs.system}.custom-performance
|
||||
];
|
||||
};
|
||||
perSystem = {pkgs, ...}: let
|
||||
NotifySound = ../../assets/battery_notify.mp3;
|
||||
@@ -336,28 +339,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: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 -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
|
||||
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
|
||||
'';
|
||||
};
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
{self, ...}: {
|
||||
flake.nixosModules.performance-desktop = {pkgs,...}: {
|
||||
environment.systemPackages = [
|
||||
self.packages.${pkgs.system}.custom-performance
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -44,6 +44,7 @@
|
||||
office
|
||||
#ollama
|
||||
otherUtils
|
||||
performance-desktop
|
||||
printer
|
||||
rss
|
||||
udev
|
||||
@@ -74,15 +75,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 +97,9 @@
|
||||
"nix-command"
|
||||
"flakes"
|
||||
];
|
||||
environment.systemPackages = [
|
||||
self.packages.${pkgs.system}.custom-performance
|
||||
];
|
||||
};
|
||||
flake.nixosModules.home-manager-desktop = {pkgs, ...}: {
|
||||
imports = [
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
audioAndMedia
|
||||
autoCleanup-laptop
|
||||
autoUpdate-laptop
|
||||
#battery-laptop
|
||||
battery-laptop
|
||||
bluetooth
|
||||
bootloader
|
||||
browsers
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user