diff --git a/home-manager/modules/hypr/hypr.nix b/home-manager/modules/hypr/hypr.nix index 2402961..dba92ec 100644 --- a/home-manager/modules/hypr/hypr.nix +++ b/home-manager/modules/hypr/hypr.nix @@ -2,9 +2,10 @@ { home.packages = with pkgs; [ hyprland ]; - programs.waybar = { enable = true; }; - programs.hyprpanel.enable = true; - programs.hyprpanel.systemd.enable = true; + programs.hyprpanel = { + enable = true; + systemd.enable = true; + }; programs.fuzzel.enable = true; # wayland.windowManager.hyprland = { diff --git a/home-manager/modules/kitty.nix b/home-manager/modules/kitty.nix index 8347e4c..fd025a0 100644 --- a/home-manager/modules/kitty.nix +++ b/home-manager/modules/kitty.nix @@ -21,8 +21,8 @@ confirm_os_window_close = 0; map = '' ctrl+c copy_or_interrupt - ctrl+v paste - ctrl+shift+v paste + ctrl+v paste_from_clipboard + ctrl+shift+v paste_from_clipboard ''; shell = "${pkgs.zsh}/bin/zsh"; diff --git a/home-manager/modules/programs.nix b/home-manager/modules/programs.nix index 64a4b43..c851473 100644 --- a/home-manager/modules/programs.nix +++ b/home-manager/modules/programs.nix @@ -2,12 +2,16 @@ { home.packages = with pkgs; [ - # firefox # in nixos config telegram-desktop vscode - spotify-player + spotify + brightnessctl ]; + programs.direnv.enable = true; + programs.direnv.nix-direnv.enable = true; + programs.direnv.enableZshIntegration = true; + imports = [ inputs.zen-browser.homeModules.twilight ]; programs.zen-browser = { enable = true; diff --git a/home-manager/modules/zsh/zsh.nix b/home-manager/modules/zsh/zsh.nix index 7743ac1..d62263d 100644 --- a/home-manager/modules/zsh/zsh.nix +++ b/home-manager/modules/zsh/zsh.nix @@ -68,6 +68,9 @@ (pgrep -x ".AmneziaVPN-ser" > /dev/null 2>&1 || sudo AmneziaVPN-service > /dev/null 2>&1 &) & AmneziaVPN > /dev/null 2>&1 & ''; # i don't know any good ways for it. + mkenv = '' + echo "use nix" > .envrc && touch default.nix && direnv allow && echo "✓ env created"''; + }; initContent = '' diff --git a/nixos/custom.nix b/nixos/custom.nix index 8188d46..f096a1a 100644 --- a/nixos/custom.nix +++ b/nixos/custom.nix @@ -96,6 +96,7 @@ consoleLogLevel = 3; initrd.verbose = false; kernelModules = [ "tun" "lenovo-legion-module" ]; # for VPN + kernelPackages = pkgs.linuxPackages_latest; extraModulePackages = with config.boot.kernelPackages; [ lenovo-legion-module ]; kernelParams = [ diff --git a/nixos/low-power.nix b/nixos/low-power.nix new file mode 100644 index 0000000..f35eb90 --- /dev/null +++ b/nixos/low-power.nix @@ -0,0 +1,104 @@ +{ inputs, config, lib, pkgs, ... }: { + #@# modules/low-power.nix: setup to maximize on-battery lifetime + #@# contains: + options = { + nyx.low-power.enable = + lib.mkEnableOption "enables low profile optimizations to reduce watt use"; + }; + config = lib.mkIf config.nyx.low-power.enable { + #@# * steam, lutris etc. + boot = { + kernelParams = [ + "pcie_aspm.policy=powersupersave" + "amd_pstate=passive" # use schedutil scaling for Ryzen 7940HS + "mitigations=auto" + ]; + + extraModprobeConfig = '' + # AMD iGPU tuning + options amdgpu dc=1 + options amdgpu deep_color=1 + options amdgpu aspm=1 + # Force dGPU off by default to save power (only use when explicitly requested) + options amdgpu runpm=1 + ''; + }; + + networking.networkmanager.wifi.powersave = true; + programs.sway.xwayland.enable = false; + services.pipewire.jack.enable = false; + powerManagement.enable = true; + powerManagement.cpuFreqGovernor = "schedutil"; + services.power-profiles-daemon.enable = false; + + services.tlp = { + enable = true; + settings = { + TLP_DEFAULT_MODE = "BAT"; + CPU_SCALING_GOVERNOR_ON_AC = "schedutil"; + CPU_SCALING_GOVERNOR_ON_BAT = "schedutil"; + CPU_ENERGY_PERF_POLICY_ON_AC = "balance_power"; + CPU_ENERGY_PERF_POLICY_ON_BAT = "power"; + PCIE_ASPM_ON_AC = "default"; + PCIE_ASPM_ON_BAT = "powersupersave"; + RUNTIME_PM_ON_AC = "auto"; + RUNTIME_PM_ON_BAT = "auto"; + USB_AUTOSUSPEND = "1"; + WIFI_PWR_ON_AC = "on"; + WIFI_PWR_ON_BAT = "on"; + DEVICES_TO_DISABLE_ON_BAT = "bluetooth"; + DEVICES_TO_DISABLE_ON_STARTUP = "bluetooth"; + DISK_IDLE_SECS_ON_AC = "60"; + DISK_IDLE_SECS_ON_BAT = "30"; + SATA_LINKPWR_ON_AC = "med_power_with_dipm"; + SATA_LINKPWR_ON_BAT = "min_power"; + SOUND_POWER_SAVE_ON_AC = "1"; + SOUND_POWER_SAVE_ON_BAT = "1"; + PLATFORM_PROFILE_ON_AC = "balanced"; + PLATFORM_PROFILE_ON_BAT = "low-power"; + }; + }; + powerManagement.powertop.enable = true; + services.thermald.enable = true; + + services.switcherooControl.enable = true; + hardware = { + opengl = { + enable = true; + extraPackages = with pkgs; [ mesa ]; + }; + amdgpu.overdrive.enable = lib.mkForce false; + }; + + services.printing.enable = false; + hardware.bluetooth.enable = lib.mkForce false; + services.avahi.enable = false; + services.fwupd.enable = true; + services.locate.enable = false; + services.journald.extraConfig = '' + SystemMaxUse=200M + RuntimeMaxUse=100M + MaxRetentionSec=1month + ''; + # programs.ssh.startAgent = true; + services.openssh.enable = lib.mkForce false; + # libvirt + # nsncd (?) + # + services.tailscale.enable = lib.mkForce false; + programs.java.enable = lib.mkForce false; + services.upower.enable = lib.mkForce false; + services = { + xserver.windowManager.fvwm2.gestures = lib.mkForce false; + libinput.enable = lib.mkForce false; + }; + hardware.opentabletdriver.enable = lib.mkForce false; + programs.kdeconnect.enable = lib.mkForce false; + services.mullvad-vpn.enable = lib.mkForce false; + + virtualisation = { + docker.enable = lib.mkForce false; + libvirtd.enable = lib.mkForce false; + }; + }; +}