diff --git a/flake.nix b/flake.nix index 15bcbf3..2db59ba 100644 --- a/flake.nix +++ b/flake.nix @@ -6,7 +6,7 @@ # By: tomoron +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2024/10/17 18:15:24 by tomoron #+# #+# # -# Updated: 2025/09/06 00:58:57 by tomoron ### ########.fr # +# Updated: 2025/09/24 02:10:00 by tomoron ### ########.fr # # # # **************************************************************************** # @@ -51,9 +51,9 @@ ]; }; - homeConfig = {flakeName, extraModules ? [], username ? "tom", homeDir ? "/home/tom"}: home-manager.lib.homeManagerConfiguration { + homeConfig = {flakeName, sops ? true, extraModules ? [], username ? "tom", homeDir ? "/home/tom"}: home-manager.lib.homeManagerConfiguration { inherit pkgs; - extraSpecialArgs = { inherit inputs; username = username; homeDir = homeDir; isOs = false; }; + extraSpecialArgs = { inherit inputs; username = username; homeDir = homeDir; isOs = false; configSops = sops; }; modules = nixpkgs.lib.concatLists [ [ ./homeConfigs/home.nix @@ -85,8 +85,8 @@ homeConfigurations = { - vbox = homeConfig { flakeName = "vbox"; }; - ft = homeConfig { flakeName = "ft"; username = "tomoron"; homeDir = "/home/tomoron";}; + vbox = homeConfig { flakeName = "vbox";}; + ft = homeConfig { flakeName = "ft"; username = "tomoron"; homeDir = "/home/tomoron"; sops = false;}; laptop = homeConfig { flakeName = "laptop"; }; desktop = homeConfig { flakeName = "desktop"; }; server = homeConfig { flakeName = "server"; }; diff --git a/homeConfigs/global/appearance.nix b/homeConfigs/global/appearance.nix new file mode 100644 index 0000000..7fcd910 --- /dev/null +++ b/homeConfigs/global/appearance.nix @@ -0,0 +1,33 @@ +{ lib, pkgs, ... }: +{ + catppuccin = { + enable = true; + flavor = "mocha"; + + dunst.enable = true; + dunst.flavor="frappe"; + + kvantum.apply = true; + rofi.enable = false; + }; + + gtk = { + enable = true; + theme = { package = pkgs.flat-remix-gtk; name = "Flat-Remix-GTK-Grey-Darkest"; }; + font = { name = "Sans"; size = 11; }; + }; + + qt.style.name = "kvantum"; + + home.pointerCursor = { + gtk.enable = true; + package = pkgs.bibata-cursors; + name = "Bibata-Modern-Classic"; + size = 16; + }; + + home.file = { + ".config/wallpaper.png".source = lib.mkDefault utils/wallpaper.png; + ".config/lock_screen.jpg".source = lib.mkDefault utils/lock_screen.jpg; + }; +} diff --git a/homeConfigs/global/catppuccin.nix b/homeConfigs/global/catppuccin.nix new file mode 100644 index 0000000..2ce89e3 --- /dev/null +++ b/homeConfigs/global/catppuccin.nix @@ -0,0 +1,13 @@ +{ ... }: +{ + catppuccin = { + enable = true; + flavor = "mocha"; + + dunst.enable = true; + dunst.flavor="frappe"; + + kvantum.apply = true; + rofi.enable = false; + }; +} diff --git a/homeConfigs/global/fileManager.nix b/homeConfigs/global/fileManager.nix new file mode 100644 index 0000000..ed43037 --- /dev/null +++ b/homeConfigs/global/fileManager.nix @@ -0,0 +1,16 @@ +{ ... }: +{ + programs.yazi = { + enable = true; + settings.mgr.sort_dir_first=false; + programs.bash.bashExtra = '' + function y() { + local tmp="$(mktemp -t "yazi-cwd.XXXXXX")" cwd + yazi "$@" --cwd-file="$tmp" + IFS= read -r -d "" cwd < "$tmp" + [ -n "$cwd" ] && [ "$cwd" != "$PWD" ] && builtin cd -- "$cwd" + rm -f -- "$tmp" + } + ''; + }; +} diff --git a/homeConfigs/global/rclone.nix b/homeConfigs/global/rclone.nix new file mode 100644 index 0000000..9549162 --- /dev/null +++ b/homeConfigs/global/rclone.nix @@ -0,0 +1,21 @@ +{ config, homeDir, ... }: +{ + programs.rclone.enable = true; + sops.secrets."nextcloud_fuse/password" = {}; + programs.rclone.remotes.nextcloud = { + config = { + type = "webdav"; + url = "https://nc.tmoron.fr/remote.php/dav/files/tom"; + vendor = "nextcloud"; + user = "tom"; + }; + secrets.pass = config.sops.secrets."nextcloud_fuse/password".path; + mounts = { + "/" = { + enable = true; + mountPoint = "${homeDir}/nextcloud"; + options.vfs-cache-mode = "writes"; + }; + }; + }; +} diff --git a/homeConfigs/global/rofi.nix b/homeConfigs/global/rofi.nix new file mode 100644 index 0000000..e1d9630 --- /dev/null +++ b/homeConfigs/global/rofi.nix @@ -0,0 +1,13 @@ +{ ... }: +{ + programs.rofi = { + enable = true; + theme = "rounded-nord-dark"; + }; + + home.file.".local/share/rofi/themes".source = "${builtins.fetchGit { + url = "https://github.com/newmanls/rofi-themes-collection"; + rev = "c8239a45edced3502894e1716a8b661fdea8f1c9"; + ref = "master"; + }}/themes"; +} diff --git a/homeConfigs/global/shell.nix b/homeConfigs/global/shell.nix new file mode 100644 index 0000000..fd9f8d7 --- /dev/null +++ b/homeConfigs/global/shell.nix @@ -0,0 +1,20 @@ +{ ... }: +{ + home.shell.enableBashIntegration = true; + home.shellAliases = { + ls= "ls --color=auto"; + grep = "grep --color=auto"; + vim = "nvim"; + vi = "nvim"; + hl = "Hyprland"; + clr = "clear"; + noidle = "systemctl --user stop hypridle"; + }; + + programs.bash = { + enable = true; + historyControl = ["ignoreboth"]; + historyIgnore = [ "ls" "cd" "exit" ]; + shellOptions = [ "cdspell" "autocd"]; + }; +} diff --git a/homeConfigs/home.nix b/homeConfigs/home.nix index f1763b5..b1f41b1 100644 --- a/homeConfigs/home.nix +++ b/homeConfigs/home.nix @@ -6,16 +6,24 @@ # By: tomoron +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2024/10/17 18:15:38 by tomoron #+# #+# # -# Updated: 2025/09/19 19:23:28 by tomoron ### ########.fr # +# Updated: 2025/09/24 02:08:41 by tomoron ### ########.fr # # # # **************************************************************************** # -{lib, pkgs, config, username ? "tom" ,homeDir ? "/home/tom", isOs ? false, ... }: +{ +lib, +username ? "tom", +homeDir ? "/home/tom", +isOs ? false, +configSops ? true, +... +}: { imports = lib.concatLists [ [ ./packages.nix ] (lib.fileset.toList ./modules) + (lib.fileset.toList ./global) ]; home.username = lib.mkIf (!isOs) "${username}"; @@ -23,101 +31,11 @@ home.stateVersion = "24.05"; - sops.defaultSopsFile = ../secrets/secrets.yaml; - sops.age.keyFile = "${homeDir}/.config/sops/age/keys.txt"; - sops.secrets."nextcloud_fuse/password" = {}; - - programs.rclone.enable = true; - programs.rclone.remotes.nextcloud = { - config = { - type = "webdav"; - url = "https://nc.tmoron.fr/remote.php/dav/files/tom"; - vendor = "nextcloud"; - user = "tom"; - }; - secrets.pass = config.sops.secrets."nextcloud_fuse/password".path; - mounts = { - "/" = { - enable = true; - mountPoint = "${homeDir}/nextcloud"; - options.vfs-cache-mode = "writes"; - }; - }; + sops = lib.mkIf configSops{ + defaultSopsFile = ../secrets/secrets.yaml; + age.keyFile = "${homeDir}/.config/sops/age/keys.txt"; }; -# programs.ghostty.enable = true; -# programs.ghostty.settings = { -# theme = "catppuccin-mocha"; -# font-size = 9; -# }; - - home.pointerCursor = { - gtk.enable = true; - package = pkgs.bibata-cursors; - name = "Bibata-Modern-Classic"; - size = 16; - }; - - gtk = { - enable = true; - theme = { package = pkgs.flat-remix-gtk; name = "Flat-Remix-GTK-Grey-Darkest"; }; -# iconTheme = { package = pkgs.adwaita-icon-theme; name = "Adwaita"; }; - font = { name = "Sans"; size = 11; }; - }; - - home.shellAliases = { - ls= "ls --color=auto"; - grep = "grep --color=auto"; - vim = "nvim"; - vi = "nvim"; - hl = "Hyprland"; - clr = "clear"; -# tagueule = "asusctl profile -P Quiet"; -# parle = "asusctl profile -P performance"; - noidle = "systemctl --user stop hypridle"; - }; - - programs.bash = { - enable = true; - historyControl = ["ignoreboth"]; - historyIgnore = [ "ls" "cd" "exit" ]; - shellOptions = [ "cdspell" "autocd"]; - }; - - home.sessionPath = [ "~/.local/bin" ]; - - - programs.rofi = { - enable = true; - theme = "rounded-nord-dark"; - }; - - - home.file = { #should be able to make most of these in nix configs - ".config/wallpaper.png".source = lib.mkDefault utils/wallpaper_test.png; - ".config/pc.jpg".source = lib.mkDefault utils/pc.jpg; - #".config/rofi/config.rasi".text = "@theme \"rounded-nord-dark.rasi\""; - - ".local/share/rofi/themes".source = "${builtins.fetchGit { - url = "https://github.com/newmanls/rofi-themes-collection"; - rev = "c8239a45edced3502894e1716a8b661fdea8f1c9"; - ref = "master"; - }}/themes"; - - }; services.dunst.enable = true; - programs.home-manager.enable = true; - - qt.style.name = "kvantum"; - catppuccin.kvantum.apply = true; - catppuccin.rofi.enable = false; - - catppuccin = { - enable = true; - flavor = "mocha"; - - dunst.enable = true; - dunst.flavor="frappe"; - }; } diff --git a/homeConfigs/modules/wayland/hyprland.nix b/homeConfigs/modules/wayland/hyprland.nix index 8f83dd0..020c341 100644 --- a/homeConfigs/modules/wayland/hyprland.nix +++ b/homeConfigs/modules/wayland/hyprland.nix @@ -14,7 +14,8 @@ wayland.windowManager.hyprland.settings = { "$mainMod" = "SUPER"; bind = [ - " , Print, exec, grim -t png -g \"$(slurp)\" /dev/stdout | tee ~/screenshots/$(date +%Y-%m-%d_%H-%m-%s).png | wl-copy -t image/png" + " , Print, exec, grim -t png -g \"$(slurp)\" /dev/stdout | tee ~/screenshots/$(date +%Y-%m-%d_%H-%m-%s).png | wl-copy -t image/png" + " SHIFT, Print, exec, grim -t png /dev/stdout | tee ~/screenshots/$(date +%Y-%m-%d_%H-%m-%s).png | wl-copy -t image/png" "$mainMod, Return, exec, alacritty" "CTRL_ALT, Q, killactive," "CTRL_ALT_SHIFT, Q, forcekillactive," diff --git a/homeConfigs/utils/pc.jpg b/homeConfigs/utils/lock_screen.jpg similarity index 100% rename from homeConfigs/utils/pc.jpg rename to homeConfigs/utils/lock_screen.jpg diff --git a/homeConfigs/utils/wallpaper.png b/homeConfigs/utils/wallpaper.png index 3269dd6..f3ba084 100644 Binary files a/homeConfigs/utils/wallpaper.png and b/homeConfigs/utils/wallpaper.png differ diff --git a/homeConfigs/utils/wallpaper_test.png b/homeConfigs/utils/wallpaper_test.png deleted file mode 100644 index f3ba084..0000000 Binary files a/homeConfigs/utils/wallpaper_test.png and /dev/null differ diff --git a/osConfigs/hosts/laptop.nix b/osConfigs/hosts/laptop.nix index 8f93b76..f74b3a6 100644 --- a/osConfigs/hosts/laptop.nix +++ b/osConfigs/hosts/laptop.nix @@ -6,7 +6,7 @@ # By: tomoron +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2025/09/06 00:56:57 by tomoron #+# #+# # -# Updated: 2025/09/17 18:46:28 by tomoron ### ########.fr # +# Updated: 2025/09/23 04:08:25 by tomoron ### ########.fr # # # # **************************************************************************** # @@ -79,16 +79,20 @@ mods.touchpad.enable = true; - mods.powerSave.enable = true; - mods.powerSave.powahCommandAdditions = [ - "supergfxctl -m Hybrid" - "if asusctl profile -p | grep Balanced ; then asusctl profile -P Performance; fi" - "if asusctl profile -p | grep Quiet ; then asusctl profile -P Balanced; fi" - ]; - mods.powerSave.tagueuleCommandAdditions = [ - "echo \"can't safely turn off the GPU\"" - "asusctl profile -P Quiet" - ]; + mods.powerSave = { + enable = true; + powahCommandAdditions = [ + "supergfxctl -m Hybrid" + "if asusctl profile -p | grep Balanced ; then asusctl profile -P Performance; fi" + "if asusctl profile -p | grep Quiet ; then asusctl profile -P Balanced; fi" + ]; + tagueuleCommandAdditions = [ + "echo \"can't safely turn off the GPU\"" + "asusctl profile -P Quiet" + ]; + cpuMaxFreq = 4465261; + + }; services.asusd = { enable = true; diff --git a/osConfigs/modules/powerSave.nix b/osConfigs/modules/powerSave.nix index 84d1d50..ce133ab 100644 --- a/osConfigs/modules/powerSave.nix +++ b/osConfigs/modules/powerSave.nix @@ -6,7 +6,7 @@ # By: tomoron +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2025/09/06 00:45:04 by tomoron #+# #+# # -# Updated: 2025/09/21 00:51:55 by tomoron ### ########.fr # +# Updated: 2025/09/23 04:25:20 by tomoron ### ########.fr # # # # **************************************************************************** # @@ -19,6 +19,7 @@ default = false; description = "enable services and settings to save power"; }; + powahCommandAdditions = lib.mkOption { type = lib.types.listOf lib.types.str; default = []; @@ -29,6 +30,41 @@ default = []; description = "commands the `tagueule` script runs"; }; + + pStateCompatible = lib.mkOption { + type = lib.types.bool; + default = false; + description = "is the cpu p-state compatible. only most of intel cpu's"; + }; + + cpuMaxFreq = lib.mkOption { + type = lib.types.ints.positive; + default = 5000000; + description = "the max frequency of the cpu (in KHz)"; + }; + + governorPowers = { + ac.min = lib.mkOption { + type = lib.types.ints.unsigned; + default = 30; + description = "min frequency on AC"; + }; + ac.max = lib.mkOption { + type = lib.types.ints.unsigned; + default = 100; + description = "max frequency on AC"; + }; + bat.min = lib.mkOption { + type = lib.types.ints.unsigned; + default = 0; + description = "min frequency on BAT"; + }; + bat.max = lib.mkOption { + type = lib.types.ints.unsigned; + default = 40; + description = "max frequency on BAT"; + }; + }; }; @@ -44,12 +80,19 @@ CPU_ENERGY_PERF_POLICY_ON_BAT = "power"; CPU_ENERGY_PERF_POLICY_ON_AC = "performance"; - - CPU_MIN_PERF_ON_AC = 0; - CPU_MAX_PERF_ON_AC = 100; - CPU_MIN_PERF_ON_BAT = 0; - CPU_MAX_PERF_ON_BAT = 20; - }; + } + // lib.optionalAttrs (!config.mods.powerSave.pStateCompatible) (with config.mods.powerSave; { + CPU_SCALING_MIN_FREQ_ON_AC = (cpuMaxFreq * governorPowers.ac.min) / 100; + CPU_SCALING_MAX_FREQ_ON_AC = (cpuMaxFreq * governorPowers.ac.max) / 100; + CPU_SCALING_MIN_FREQ_ON_BAT = (cpuMaxFreq * governorPowers.bat.min) / 100; + CPU_SCALING_MAX_FREQ_ON_BAT = (cpuMaxFreq * governorPowers.bat.max) / 100; + }) + // lib.optionalAttrs config.mods.powerSave.pStateCompatible (with config.mods.powerSave.governorPowers; { + CPU_MIN_PERF_ON_AC = ac.min; + CPU_MAX_PERF_ON_AC = ac.max; + CPU_MIN_PERF_ON_BAT = bat.min; + CPU_MAX_PERF_ON_BAT = bat.max; + }); }; environment.systemPackages = [ @@ -77,7 +120,6 @@ ]; powerManagement.enable = true; - services.upower.enable = true; mods.nvidia.prime = true; }; }