From 87167a660fefa722a7aded8ce57ac5dc43440f4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leonardo=20Eug=C3=AAnio?= Date: Fri, 21 Feb 2025 00:28:03 -0300 Subject: [PATCH] wip --- settings/default.nix | 10 +-- user/fish/default.nix | 5 +- user/fzf.nix | 8 +-- user/gaming.nix | 17 +++++- user/home.nix | 14 ++--- user/mangohud.nix | 132 ++++++++++++++++++---------------------- user/mpd.nix | 7 ++- user/pass.nix | 8 ++- user/sway/default.nix | 27 ++++---- user/sway/kanshi.nix | 20 ++---- user/sway/mako.nix | 84 +++++++++++++------------ user/sway/swayidle.nix | 15 ++--- user/sway/swaylock.nix | 20 +++--- user/waybar/default.nix | 6 +- user/zathura.nix | 92 ++++++++++++++-------------- 15 files changed, 233 insertions(+), 232 deletions(-) diff --git a/settings/default.nix b/settings/default.nix index b8c17b3..1cf90df 100644 --- a/settings/default.nix +++ b/settings/default.nix @@ -7,12 +7,12 @@ theme = lib.mkOption { }; accent = lib.mkOption { }; font = lib.mkOption { }; - username = lib.mkOption { }; + username = lib.mkOption { type = lib.types.str; }; mail = lib.mkOption { }; - dmenu = lib.mkOption { }; - desktop = lib.mkOption { }; - browser = lib.mkOption { }; - editor = lib.mkOption { }; + dmenu = lib.mkOption { type = lib.types.str; }; + desktop = lib.mkOption { type = lib.types.str; }; + browser = lib.mkOption { type = lib.types.str; }; + editor = lib.mkOption { type = lib.types.str; }; }; }; } diff --git a/user/fish/default.nix b/user/fish/default.nix index 30893ee..830d716 100644 --- a/user/fish/default.nix +++ b/user/fish/default.nix @@ -6,9 +6,12 @@ }: let inherit (config.my) accent editor desktop; + cfg = config.my.fish; in { - config = { + options.my.fish.enable = lib.mkEnableOption { }; + + config = lib.mkIf cfg.enable { programs.fish = { enable = true; shellInit = '' diff --git a/user/fzf.nix b/user/fzf.nix index df16adb..468cae5 100644 --- a/user/fzf.nix +++ b/user/fzf.nix @@ -2,16 +2,10 @@ config, pkgs, lib, - inputs, ... }: let - inherit (config.my) - key - theme - accent - font - ; + inherit (config.my) theme accent; inherit (theme) color; colors = { diff --git a/user/gaming.nix b/user/gaming.nix index ec5dae8..3e89361 100644 --- a/user/gaming.nix +++ b/user/gaming.nix @@ -1,9 +1,24 @@ -{ config, lib, ... }: +{ + config, + lib, + pkgs, + ... +}: let cfg = config.my.gaming; in { options.my.gaming.enable = lib.mkEnableOption { }; config = lib.mkIf cfg.enable { + my.mangohud.enable = true; + + home.packages = with pkgs; [ + # lutris-unwrapped + # steam # It's enabled in the system config + tlauncher + gamescope + glxinfo + vulkan-tools + ]; }; } diff --git a/user/home.nix b/user/home.nix index a7cd23e..8604efb 100644 --- a/user/home.nix +++ b/user/home.nix @@ -45,7 +45,11 @@ ./powerplay-led-idle.nix ]; - my = import ./variables.nix; + my = import ./variables.nix // { + sway.enable = true; + pass.enable = true; + fish.enable = true; + }; # Home Manager needs a bit of information about you and the # paths it should manage. @@ -92,14 +96,6 @@ mate.engrampa # gnome.nautilus - ## games - # lutris-unwrapped - # steam # It's enabled in the system config - tlauncher - gamescope - glxinfo - vulkan-tools - ## Theming orchis_theme_compact papirus_red diff --git a/user/mangohud.nix b/user/mangohud.nix index 440b750..fa0c8ff 100644 --- a/user/mangohud.nix +++ b/user/mangohud.nix @@ -1,80 +1,68 @@ -{ - config, - pkgs, - lib, - font, - ... -}: +{ config, lib, ... }: let - inherit (config.my) - key - theme - color - accent - font - ; + cfg = config.my.mangohud; in { - config = { - programs.mangohud = { - enable = true; - enableSessionWide = true; - settings = { - full = true; - # histogram = true; - no_display = true; - fps_limit = "0,30,60,72,90,120,144,240,288,320"; - toggle_fps_limit = "Shift_R+F10"; - toggle_preset = "Control_R+F9"; - fps_metrics = "Control_R+F8"; + options.my.mangohud.enable = lib.mkEnableOption { }; - # legacy_layout = "false"; - # gpu_stats = true; - # gpu_temp = true; - # gpu_core_clock = true; - # gpu_mem_clock = true; - # gpu_power = true; - # gpu_load_change = true; - # gpu_load_value = "50,90"; - gpu_load_color = "FFFFFF,FFAA7F,CC0000"; - # gpu_text = "GPU"; - # cpu_stats = true; - # cpu_temp = true; - # cpu_power = true; - # cpu_mhz = true; - # cpu_load_change = true; - # core_load_change = true; - # cpu_load_value = "50,90"; - cpu_load_color = "FFFFFF,FFAA7F,CC0000"; - cpu_color = "2e97cb"; - # cpu_text = "CPU"; - # io_stats = true; - # io_read = true; - # io_write = true; - io_color = "a491d3"; - # swap = true; - # vram = true; - vram_color = "ad64c1"; - # ram = true; - ram_color = "c26693"; - # fps = true; - engine_color = "eb5b5b"; - gpu_color = "2e9762"; - wine_color = "eb5b5b"; - # frame_timing = "1"; - frametime_color = "00ff00"; - media_player_color = "ffffff"; - background_alpha = "0.8"; - font_size = "24"; + config.programs.mangohud = lib.mkIf cfg.enable { + enable = true; + enableSessionWide = true; + settings = { + full = true; + # histogram = true; + no_display = true; + fps_limit = "0,30,60,72,90,120,144,240,288,320"; + toggle_fps_limit = "Shift_R+F10"; + toggle_preset = "Control_R+F9"; + fps_metrics = "Control_R+F8"; - background_color = "020202"; - position = "top-left"; - # text_color = "ffffff"; - round_corners = "10"; - toggle_hud = "Shift_R+F12"; - # toggle_logging = "Shift_L+F12"; - # output_folder = "/home/lelgenio"; - }; + # legacy_layout = "false"; + # gpu_stats = true; + # gpu_temp = true; + # gpu_core_clock = true; + # gpu_mem_clock = true; + # gpu_power = true; + # gpu_load_change = true; + # gpu_load_value = "50,90"; + gpu_load_color = "FFFFFF,FFAA7F,CC0000"; + # gpu_text = "GPU"; + # cpu_stats = true; + # cpu_temp = true; + # cpu_power = true; + # cpu_mhz = true; + # cpu_load_change = true; + # core_load_change = true; + # cpu_load_value = "50,90"; + cpu_load_color = "FFFFFF,FFAA7F,CC0000"; + cpu_color = "2e97cb"; + # cpu_text = "CPU"; + # io_stats = true; + # io_read = true; + # io_write = true; + io_color = "a491d3"; + # swap = true; + # vram = true; + vram_color = "ad64c1"; + # ram = true; + ram_color = "c26693"; + # fps = true; + engine_color = "eb5b5b"; + gpu_color = "2e9762"; + wine_color = "eb5b5b"; + # frame_timing = "1"; + frametime_color = "00ff00"; + media_player_color = "ffffff"; + background_alpha = "0.8"; + font_size = "24"; + + background_color = "020202"; + position = "top-left"; + # text_color = "ffffff"; + round_corners = "10"; + toggle_hud = "Shift_R+F12"; + # toggle_logging = "Shift_L+F12"; + # output_folder = "/home/lelgenio"; }; }; } diff --git a/user/mpd.nix b/user/mpd.nix index f4cca16..b4bdad3 100644 --- a/user/mpd.nix +++ b/user/mpd.nix @@ -4,8 +4,13 @@ config, ... }: +let + cfg = config.my.mpd; +in { - config = lib.mkIf (config.my.desktop != "gnome") { + options.my.mpd.enable = lib.mkEnableOption { }; + + config = lib.mkIf cfg.enable { services.mpd = { enable = true; musicDirectory = config.home.homeDirectory + "/Música"; diff --git a/user/pass.nix b/user/pass.nix index 4a69d12..c3b56c6 100644 --- a/user/pass.nix +++ b/user/pass.nix @@ -2,11 +2,15 @@ config, pkgs, lib, - inputs, ... }: +let + cfg = config.my.pass; +in { - config = { + options.my.pass.enable = lib.mkEnableOption { }; + + config = lib.mkIf cfg.enable { programs.password-store = { enable = true; package = pkgs.pass.withExtensions ( diff --git a/user/sway/default.nix b/user/sway/default.nix index 6679134..3cfdeaf 100644 --- a/user/sway/default.nix +++ b/user/sway/default.nix @@ -5,13 +5,10 @@ ... }: let - inherit (config.my) - key - accent - font - theme - ; + inherit (config.my) accent font theme; inherit (theme) color; + + cfg = config.my.sway; in { imports = [ @@ -24,10 +21,17 @@ in ./swaylock.nix ./theme.nix ]; - config = lib.mkIf (config.my.desktop == "sway") { - services.mako.enable = true; - services.swayidle.enable = true; - services.kanshi.enable = true; + + options.my.sway.enable = lib.mkEnableOption { }; + + config = lib.mkIf cfg.enable { + my.mako.enable = true; + my.kanshi.enable = true; + my.swayidle.enable = true; + my.swaylock.enable = true; + my.mpd.enable = true; + my.zathura.enable = true; + my.waybar.enable = true; wayland.windowManager.sway = { enable = true; @@ -36,7 +40,7 @@ in bars = [ ]; floating.modifier = "Mod4"; - terminal = pkgs.alacritty.executable; + terminal = lib.getExe pkgs.alacritty; window.titlebar = false; gaps = { @@ -147,7 +151,6 @@ in swaylock wdisplays - waybar dhist demoji bmenu diff --git a/user/sway/kanshi.nix b/user/sway/kanshi.nix index c0a584b..486a209 100644 --- a/user/sway/kanshi.nix +++ b/user/sway/kanshi.nix @@ -1,20 +1,12 @@ -{ - config, - pkgs, - lib, - ... -}: +{ config, lib, ... }: let - inherit (config.my) - key - accent - font - theme - ; - inherit (theme) color; + cfg = config.my.kanshi; in { - services.kanshi = { + options.my.kanshi.enable = lib.mkEnableOption { }; + + config.services.kanshi = lib.mkIf cfg.enable { + enable = true; settings = [ { profile = { diff --git a/user/sway/mako.nix b/user/sway/mako.nix index 4f43734..af6c673 100644 --- a/user/sway/mako.nix +++ b/user/sway/mako.nix @@ -6,60 +6,66 @@ }: let inherit (config.my) - key accent font theme ; inherit (theme) color; + + cfg = config.my.mako; in { - services.mako = { - borderSize = 2; - padding = "5"; - margin = "15"; - layer = "overlay"; + options.my.mako.enable = lib.mkEnableOption { }; - font = "${font.interface} ${toString font.size.small}"; - textColor = color.txt; + config = lib.mkIf cfg.enable { + services.mako = { + enable = true; + borderSize = 2; + padding = "5"; + margin = "15"; + layer = "overlay"; - backgroundColor = color.bg; - borderColor = accent.color; - progressColor = "over ${accent.color}88"; + font = "${font.interface} ${toString font.size.small}"; + textColor = color.txt; - defaultTimeout = 10000; + backgroundColor = color.bg; + borderColor = accent.color; + progressColor = "over ${accent.color}88"; - extraConfig = '' - [app-name=volumesh] - default-timeout=5000 - group-by=app-name - format=%s\n%b - ''; + defaultTimeout = 10000; - # # {{@@ header() @@}} - # # text + extraConfig = '' + [app-name=volumesh] + default-timeout=5000 + group-by=app-name + format=%s\n%b + ''; - # # features - # icons=1 - # markup=1 - # actions=1 - # default-timeout=10000 + # # {{@@ header() @@}} + # # text - # # position - # layer=overlay - }; - systemd.user.services.mako = lib.mkIf (config.services.mako.enable) { - Unit = { - Description = "Notification daemon"; - PartOf = [ "graphical-session.target" ]; - After = [ "graphical-session.target" ]; + # # features + # icons=1 + # markup=1 + # actions=1 + # default-timeout=10000 + + # # position + # layer=overlay }; - Service = { - ExecStart = "${pkgs.mako}/bin/mako"; - Restart = "on-failure"; - }; - Install = { - WantedBy = [ "sway-session.target" ]; + systemd.user.services.mako = lib.mkIf (config.services.mako.enable) { + Unit = { + Description = "Notification daemon"; + PartOf = [ "graphical-session.target" ]; + After = [ "graphical-session.target" ]; + }; + Service = { + ExecStart = "${pkgs.mako}/bin/mako"; + Restart = "on-failure"; + }; + Install = { + WantedBy = [ "sway-session.target" ]; + }; }; }; } diff --git a/user/sway/swayidle.nix b/user/sway/swayidle.nix index 2c5384f..b6541f3 100644 --- a/user/sway/swayidle.nix +++ b/user/sway/swayidle.nix @@ -5,18 +5,15 @@ ... }: let - inherit (config.my) - key - accent - font - theme - ; - inherit (theme) color; - asScript = filename: text: toString (pkgs.writeShellScript filename text); + + cfg = config.my.swayidle; in { - services.swayidle = { + options.my.swayidle.enable = lib.mkEnableOption { }; + + config.services.swayidle = { + enable = cfg.enable; timeouts = [ { timeout = 360; diff --git a/user/sway/swaylock.nix b/user/sway/swaylock.nix index e46b5d9..8d0a195 100644 --- a/user/sway/swaylock.nix +++ b/user/sway/swaylock.nix @@ -1,20 +1,14 @@ -{ - config, - pkgs, - lib, - ... -}: +{ config, lib, ... }: let - inherit (config.my) - key - accent - font - theme - ; + inherit (config.my) accent font theme; inherit (theme) color; + + cfg = config.my.swaylock; in { - programs.swaylock.settings = { + options.my.swaylock.enable = lib.mkEnableOption { }; + + config.programs.swaylock.settings = lib.mkIf cfg.enable { image = toString theme.background; font = font.interface; font-size = font.size.medium; diff --git a/user/waybar/default.nix b/user/waybar/default.nix index b36dfce..fc95ff1 100644 --- a/user/waybar/default.nix +++ b/user/waybar/default.nix @@ -14,9 +14,13 @@ let font ; inherit (theme) color; + + cfg = config.my.waybar; in { - config = { + options.my.waybar.enable = lib.mkEnableOption { }; + + config = lib.mkIf cfg.enable { programs.waybar = { enable = true; systemd.enable = true; diff --git a/user/zathura.nix b/user/zathura.nix index 70e1c23..ae8e003 100644 --- a/user/zathura.nix +++ b/user/zathura.nix @@ -1,10 +1,4 @@ -{ - config, - pkgs, - lib, - font, - ... -}: +{ config, lib, ... }: let inherit (config.my) key @@ -13,56 +7,62 @@ let theme ; inherit (theme) color; + + cfg = config.my.zathura; in { - config = { - programs.zathura.enable = true; - programs.zathura.options = { - font = "${font.mono} ${toString font.size.small}"; - guioptions = "s"; + options.my.zathura.enable = lib.mkEnableOption { }; - selection-clipboard = "clipboard"; + config = lib.mkIf cfg.enable { + programs.zathura = { + enable = true; + options = { + font = "${font.mono} ${toString font.size.small}"; + guioptions = "s"; - recolor = true; - # Turn images grayscale, so they don't look weird - recolor-keephue = false; - recolor-lightcolor = "rgba(0,0,0,0)"; - recolor-darkcolor = color.txt; + selection-clipboard = "clipboard"; - default-bg = color.bg_dark; + recolor = true; + # Turn images grayscale, so they don't look weird + recolor-keephue = false; + recolor-lightcolor = "rgba(0,0,0,0)"; + recolor-darkcolor = color.txt; - inputbar-bg = color.bg_dark; - inputbar-fg = color.txt; + default-bg = color.bg_dark; - statusbar-bg = color.bg; - statusbar-fg = color.txt; + inputbar-bg = color.bg_dark; + inputbar-fg = color.txt; - completion-bg = color.bg; - completion-fg = color.txt; + statusbar-bg = color.bg; + statusbar-fg = color.txt; - completion-group-bg = color.bg_dark; - completion-group-fg = color.txt; + completion-bg = color.bg; + completion-fg = color.txt; - completion-highlight-bg = accent.color; - completion-highlight-fg = accent.fg; + completion-group-bg = color.bg_dark; + completion-group-fg = color.txt; - index-active-bg = accent.color; - index-active-fg = accent.fg; - }; - programs.zathura.mappings = { - "" = "toggle_statusbar"; - ${key.left} = "scroll left"; - ${key.down} = "scroll down"; - ${key.up} = "scroll up"; - ${key.right} = "scroll right"; - "[index] ${key.left}" = "navigate_index collapse"; - "[index] ${key.down}" = "navigate_index down"; - "[index] ${key.up}" = "navigate_index up"; - "[index] ${key.right}" = "navigate_index expand"; - ${lib.toUpper key.down} = "navigate next"; - ${lib.toUpper key.up} = "navigate previous"; - ${key.next} = "search forward"; - ${lib.toUpper key.next} = "search backward"; + completion-highlight-bg = accent.color; + completion-highlight-fg = accent.fg; + + index-active-bg = accent.color; + index-active-fg = accent.fg; + }; + mappings = { + "" = "toggle_statusbar"; + ${key.left} = "scroll left"; + ${key.down} = "scroll down"; + ${key.up} = "scroll up"; + ${key.right} = "scroll right"; + "[index] ${key.left}" = "navigate_index collapse"; + "[index] ${key.down}" = "navigate_index down"; + "[index] ${key.up}" = "navigate_index up"; + "[index] ${key.right}" = "navigate_index expand"; + ${lib.toUpper key.down} = "navigate next"; + ${lib.toUpper key.up} = "navigate previous"; + ${key.next} = "search forward"; + ${lib.toUpper key.next} = "search backward"; + }; }; }; }