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";
+ };
};
};
}