added different categories for home-manager module options instead of having them clumped together

This commit is contained in:
pagedmov
2024-11-08 01:37:03 -05:00
parent 4a3fb537b9
commit 21c9141c2b
22 changed files with 83 additions and 77 deletions

View File

@@ -12,39 +12,45 @@
homeFiles.enable = true; homeFiles.enable = true;
# modules/home/environment # modules/home/environment
hyprlandConfig = { envConfig = {
enable = true; hyprlandConfig = {
monitorNames = [ "HDMI-A-1" "DP-1" ]; enable = true;
workspaceLayout = "dualmonitor"; monitorNames = [ "HDMI-A-1" "DP-1" ];
workspaceLayout = "dualmonitor";
};
userPkgs.enable = true;
stylixHomeConfig.enable = true;
waybarConfig.enable = true;
gtkConfig.enable = true;
spicetifyConfig.enable = true;
starshipConfig.enable = true;
swayncConfig.enable = true;
zshConfig.enable = true;
}; };
autojumpConfig.enable = true;
stylixHomeConfig.enable = true;
waybarConfig.enable = true;
gtkConfig.enable = true;
spicetifyConfig.enable = true;
starshipConfig.enable = true;
# modules/home/programs # modules/home/programs
btopConfig.enable = true; programConfigs = {
swayncConfig.enable = true; autojumpConfig.enable = true;
userPkgs.enable = true; btopConfig.enable = true;
cavaConfig.enable = true; cavaConfig.enable = true;
ezaConfig.enable = true; ezaConfig.enable = true;
firefoxConfig.enable = true; firefoxConfig.enable = true;
fuzzelConfig.enable = true; fuzzelConfig.enable = true;
fzfConfig.enable = true; fzfConfig.enable = true;
gitConfig.enable = true; gitConfig.enable = true;
kittyConfig.enable = true; kittyConfig.enable = true;
yaziConfig.enable = true; yaziConfig.enable = true;
zshConfig.enable = true; passConfig.enable = true;
passConfig.enable = true; batConfig.enable = true;
batConfig.enable = true; };
# modules/home/scripts # modules/home/scripts
movScripts.enable = true; movScripts = {
movScripts.commandScripts.enable = true; enable = true;
movScripts.hyprlandControls.enable = true; commandScripts.enable = true;
movScripts.nixShortcuts.enable = true; hyprlandControls.enable = true;
nixShortcuts.enable = true;
};
}; };
dconf.settings = { dconf.settings = {

View File

@@ -1,8 +1,8 @@
{lib, config, pkgs, ... }: { {lib, config, pkgs, ... }: {
options = { options = {
movOpts.gtkConfig.enable = lib.mkEnableOption "enable my gtk options"; movOpts.envConfig.gtkConfig.enable = lib.mkEnableOption "enable my gtk options";
}; };
config = lib.mkIf config.movOpts.gtkConfig.enable { config = lib.mkIf config.movOpts.envConfig.gtkConfig.enable {
fonts.fontconfig.enable = true; fonts.fontconfig.enable = true;
home.packages = with pkgs; [ home.packages = with pkgs; [
(nerdfonts.override { (nerdfonts.override {

View File

@@ -9,12 +9,12 @@ let
"super, insert, exec, grimblast copy area" "super, insert, exec, grimblast copy area"
]; ];
scheme = config.lib.stylix.colors; scheme = config.lib.stylix.colors;
mons = config.movOpts.hyprlandConfig.monitorNames; mons = config.movOpts.envConfig.hyprlandConfig.monitorNames;
in { in {
options = { options = {
movOpts.hyprlandConfig = { movOpts.envConfig.hyprlandConfig = {
enable = lib.mkEnableOption "enables my hyprland config"; enable = lib.mkEnableOption "enables my hyprland config";
workspaceLayout = lib.mkOption { workspaceLayout = lib.mkOption {
type = lib.types.str; type = lib.types.str;
@@ -28,7 +28,7 @@ in {
}; };
}; };
}; };
config = lib.mkIf config.movOpts.hyprlandConfig.enable { config = lib.mkIf config.movOpts.envConfig.hyprlandConfig.enable {
home.packages = with pkgs; [ home.packages = with pkgs; [
swaybg swaybg
inputs.hypr-contrib.packages.${pkgs.system}.grimblast inputs.hypr-contrib.packages.${pkgs.system}.grimblast
@@ -69,19 +69,19 @@ in {
]; ];
workspace = workspace =
if (config.movOpts.hyprlandConfig.workspaceLayout == "dualmonitor") then [ if (config.movOpts.envConfig.hyprlandConfig.workspaceLayout == "dualmonitor") then [
"1,persistent=true,monitor:${builtins.elemAt mons 0}" "1,persistent=true,monitor:${builtins.elemAt mons 0}"
"2,persistent=true,monitor:${builtins.elemAt mons 0}" "2,persistent=true,monitor:${builtins.elemAt mons 0}"
"3,persistent=true,monitor:${builtins.elemAt mons 0}" "3,persistent=true,monitor:${builtins.elemAt mons 0}"
"4,persistent=true,monitor:${builtins.elemAt mons 1}" "4,persistent=true,monitor:${builtins.elemAt mons 1}"
"5,persistent=true,monitor:${builtins.elemAt mons 1}" "5,persistent=true,monitor:${builtins.elemAt mons 1}"
"6,persistent=true,monitor:${builtins.elemAt mons 1}" "6,persistent=true,monitor:${builtins.elemAt mons 1}"
] else if (config.movOpts.hyprlandConfig.workspaceLayout == "singlemonitor") then [ ] else if (config.movOpts.envConfig.hyprlandConfig.workspaceLayout == "singlemonitor") then [
"1,persistent=true,monitor:${builtins.elemAt mons 0} " "1,persistent=true,monitor:${builtins.elemAt mons 0} "
"2,persistent=true,monitor:${builtins.elemAt mons 0}" "2,persistent=true,monitor:${builtins.elemAt mons 0}"
"3,persistent=true,monitor:${builtins.elemAt mons 0}" "3,persistent=true,monitor:${builtins.elemAt mons 0}"
"4,persistent=true,monitor:${builtins.elemAt mons 0}" "4,persistent=true,monitor:${builtins.elemAt mons 0}"
] else if (config.movOpts.hyprlandConfig.workspaceLayout == "trimonitor") then [ ] else if (config.movOpts.envConfig.hyprlandConfig.workspaceLayout == "trimonitor") then [
"1,persistent=true,monitor:${builtins.elemAt mons 2}" "1,persistent=true,monitor:${builtins.elemAt mons 2}"
"2,persistent=true,monitor:${builtins.elemAt mons 2}" "2,persistent=true,monitor:${builtins.elemAt mons 2}"
"3,persistent=true,monitor:${builtins.elemAt mons 1}" "3,persistent=true,monitor:${builtins.elemAt mons 1}"

View File

@@ -4,9 +4,9 @@
in { in {
imports = [inputs.spicetify-nix.homeManagerModules.default]; imports = [inputs.spicetify-nix.homeManagerModules.default];
options = { options = {
movOpts.spicetifyConfig.enable = lib.mkEnableOption "enable my spicetify options"; movOpts.envConfig.spicetifyConfig.enable = lib.mkEnableOption "enable my spicetify options";
}; };
config = lib.mkIf config.movOpts.spicetifyConfig.enable { config = lib.mkIf config.movOpts.envConfig.spicetifyConfig.enable {
nixpkgs.config.allowUnfreePredicate = pkg: nixpkgs.config.allowUnfreePredicate = pkg:
builtins.elem (lib.getName pkg) [ builtins.elem (lib.getName pkg) [
"spotify" "spotify"

View File

@@ -1,8 +1,8 @@
{config, lib, inputs, ... }: { {config, lib, inputs, ... }: {
options = { options = {
movOpts.starshipConfig.enable = lib.mkEnableOption "enables my starship configuration"; movOpts.envConfig.starshipConfig.enable = lib.mkEnableOption "enables my starship configuration";
}; };
config = lib.mkIf config.movOpts.starshipConfig.enable { config = lib.mkIf config.movOpts.envConfig.starshipConfig.enable {
programs.starship = { programs.starship = {
enable = true; enable = true;
enableZshIntegration = false; enableZshIntegration = false;

View File

@@ -6,9 +6,9 @@ let
in in
{ {
options = { options = {
movOpts.stylixHomeConfig.enable = lib.mkEnableOption "enables my stylix Home-Manager options"; movOpts.envConfig.stylixHomeConfig.enable = lib.mkEnableOption "enables my stylix Home-Manager options";
}; };
config = lib.mkIf config.movOpts.stylixHomeConfig.enable { config = lib.mkIf config.movOpts.envConfig.stylixHomeConfig.enable {
stylix = { stylix = {
enable = true; enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/${scheme}.yaml"; base16Scheme = "${pkgs.base16-schemes}/share/themes/${scheme}.yaml";

View File

@@ -1,8 +1,8 @@
{lib, config, pkgs, ...}: { {lib, config, pkgs, ...}: {
options = { options = {
movOpts.swayncConfig.enable = lib.mkEnableOption "enables my swaync configuration"; movOpts.envConfig.swayncConfig.enable = lib.mkEnableOption "enables my swaync configuration";
}; };
config = lib.mkIf config.movOpts.swayncConfig.enable { config = lib.mkIf config.movOpts.envConfig.swayncConfig.enable {
home.packages = with pkgs; [swaynotificationcenter]; home.packages = with pkgs; [swaynotificationcenter];
xdg.configFile."swaync/style.css".text = '' xdg.configFile."swaync/style.css".text = ''
@define-color shadow rgba(0, 0, 0, 0.25); @define-color shadow rgba(0, 0, 0, 0.25);

View File

@@ -19,9 +19,9 @@ let
in in
{ {
options = { options = {
movOpts.userPkgs.enable = lib.mkEnableOption "enables my default user packages"; movOpts.envConfig.userPkgs.enable = lib.mkEnableOption "enables my default user packages";
}; };
config = lib.mkIf config.movOpts.userPkgs.enable { config = lib.mkIf config.movOpts.envConfig.userPkgs.enable {
home.packages = with pkgs; home.packages = with pkgs;
[ [
nemo nemo

View File

@@ -13,12 +13,12 @@ let
"6" = ""; "6" = "";
}; };
persistent-workspaces = persistent-workspaces =
if (config.movOpts.hyprlandConfig.workspaceLayout == "singlemonitor") then { if (config.movOpts.envConfig.hyprlandConfig.workspaceLayout == "singlemonitor") then {
"${builtins.elemAt monitors 0}" = [ 1 2 3 4 ]; "${builtins.elemAt monitors 0}" = [ 1 2 3 4 ];
} else if (config.movOpts.hyprlandConfig.workspaceLayout == "dualmonitor") then { } else if (config.movOpts.envConfig.hyprlandConfig.workspaceLayout == "dualmonitor") then {
"${builtins.elemAt monitors 0}" = [ 1 2 3 ]; "${builtins.elemAt monitors 0}" = [ 1 2 3 ];
"${builtins.elemAt monitors 1}" = [ 4 5 6 ]; "${builtins.elemAt monitors 1}" = [ 4 5 6 ];
} else if (config.movOpts.hyprlandConfig.workspaceLayout == "trimonitor") then { } else if (config.movOpts.envConfig.hyprlandConfig.workspaceLayout == "trimonitor") then {
"${builtins.elemAt monitors 2}" = [ 1 2 ]; "${builtins.elemAt monitors 2}" = [ 1 2 ];
"${builtins.elemAt monitors 1}" = [ 3 4 ]; "${builtins.elemAt monitors 1}" = [ 3 4 ];
"${builtins.elemAt monitors 0}" = [ 5 6 ]; "${builtins.elemAt monitors 0}" = [ 5 6 ];
@@ -49,10 +49,10 @@ let
color6 = scheme.base0E; color6 = scheme.base0E;
color7 = scheme.base0F; color7 = scheme.base0F;
}; };
monitors = config.movOpts.hyprlandConfig.monitorNames; monitors = config.movOpts.envConfig.hyprlandConfig.monitorNames;
in { in {
options = { options = {
movOpts.waybarConfig.enable = lib.mkEnableOption "enables my waybar configuration"; movOpts.envConfig.waybarConfig.enable = lib.mkEnableOption "enables my waybar configuration";
}; };
config = { config = {
programs.waybar = { programs.waybar = {

View File

@@ -1,8 +1,8 @@
{lib, config, self, ...}: { {lib, config, self, ...}: {
options = { options = {
movOpts.zshConfig.enable = lib.mkEnableOption "enables my zsh configuration"; movOpts.envConfig.zshConfig.enable = lib.mkEnableOption "enables my zsh configuration";
}; };
config = lib.mkIf config.movOpts.zshConfig.enable { config = lib.mkIf config.movOpts.envConfig.zshConfig.enable {
programs.zoxide = { programs.zoxide = {
enable = true; enable = true;
enableZshIntegration = true; enableZshIntegration = true;

View File

@@ -1,8 +1,8 @@
{lib, config, ...}: { {lib, config, ...}: {
options = { options = {
movOpts.autojumpConfig.enable = lib.mkEnableOption "enables my autojump options"; movOpts.programConfigs.autojumpConfig.enable = lib.mkEnableOption "enables my autojump options";
}; };
config = lib.mkIf config.movOpts.autojumpConfig.enable { config = lib.mkIf config.movOpts.programConfigs.autojumpConfig.enable {
programs.autojump = { programs.autojump = {
enable = true; enable = true;
enableZshIntegration = true; enableZshIntegration = true;

View File

@@ -1,8 +1,8 @@
{lib, config, inputs, ...}: { {lib, config, inputs, ...}: {
options = { options = {
movOpts.batConfig.enable = lib.mkEnableOption "enables my bat options"; movOpts.programConfigs.batConfig.enable = lib.mkEnableOption "enables my bat options";
}; };
config = lib.mkIf config.movOpts.batConfig.enable { config = lib.mkIf config.movOpts.programConfigs.batConfig.enable {
programs.bat = { programs.bat = {
enable = true; enable = true;
config = { config = {

View File

@@ -1,8 +1,8 @@
{lib, config, pkgs, ...}: { {lib, config, pkgs, ...}: {
options = { options = {
movOpts.btopConfig.enable = lib.mkEnableOption "enables my btop config"; movOpts.programConfigs.btopConfig.enable = lib.mkEnableOption "enables my btop config";
}; };
config = lib.mkIf config.movOpts.btopConfig.enable { config = lib.mkIf config.movOpts.programConfigs.btopConfig.enable {
programs.btop = { programs.btop = {
enable = true; enable = true;

View File

@@ -1,8 +1,8 @@
{lib, config, inputs, pkgs, ... }: { {lib, config, inputs, pkgs, ... }: {
options = { options = {
movOpts.cavaConfig.enable = lib.mkEnableOption "enables my cava settings"; movOpts.programConfigs.cavaConfig.enable = lib.mkEnableOption "enables my cava settings";
}; };
config = lib.mkIf config.movOpts.cavaConfig.enable { config = lib.mkIf config.movOpts.programConfigs.cavaConfig.enable {
programs.cava = { programs.cava = {
enable = true; enable = true;
}; };

View File

@@ -1,8 +1,8 @@
{lib, config, ...}: { {lib, config, ...}: {
options = { options = {
movOpts.ezaConfig.enable = lib.mkEnableOption "enables my eza options"; movOpts.programConfigs.ezaConfig.enable = lib.mkEnableOption "enables my eza options";
}; };
config = lib.mkIf config.movOpts.ezaConfig.enable { config = lib.mkIf config.movOpts.programConfigs.ezaConfig.enable {
programs.eza = { programs.eza = {
enable = true; enable = true;
enableZshIntegration = false; enableZshIntegration = false;

View File

@@ -1,8 +1,8 @@
{lib, config, nur, username, self, pkgs, ... }: { {lib, config, nur, username, self, pkgs, ... }: {
options = { options = {
movOpts.firefoxConfig.enable = lib.mkEnableOption "enables my firefox configuration"; movOpts.programConfigs.firefoxConfig.enable = lib.mkEnableOption "enables my firefox configuration";
}; };
config = lib.mkIf config.movOpts.firefoxConfig.enable { config = lib.mkIf config.movOpts.programConfigs.firefoxConfig.enable {
programs.firefox = { programs.firefox = {
enable = true; enable = true;
policies = { policies = {

View File

@@ -1,8 +1,8 @@
{config, lib, ...}: { {config, lib, ...}: {
options = { options = {
movOpts.fuzzelConfig.enable = lib.mkEnableOption "enables my fuzzel configuration"; movOpts.programConfigs.fuzzelConfig.enable = lib.mkEnableOption "enables my fuzzel configuration";
}; };
config = lib.mkIf config.movOpts.fuzzelConfig.enable { config = lib.mkIf config.movOpts.programConfigs.fuzzelConfig.enable {
programs.fuzzel = { programs.fuzzel = {
enable = true; enable = true;
settings = { settings = {

View File

@@ -1,8 +1,8 @@
{lib, config, ...}: { {lib, config, ...}: {
options = { options = {
movOpts.fzfConfig.enable = lib.mkEnableOption "enables my fzf options"; movOpts.programConfigs.fzfConfig.enable = lib.mkEnableOption "enables my fzf options";
}; };
config = lib.mkIf config.movOpts.fzfConfig.enable { config = lib.mkIf config.movOpts.programConfigs.fzfConfig.enable {
programs.fzf = { programs.fzf = {
enable = true; enable = true;
enableZshIntegration = true; enableZshIntegration = true;

View File

@@ -1,8 +1,8 @@
{lib, config, username, ...}: { {lib, config, username, ...}: {
options = { options = {
movOpts.gitConfig.enable = lib.mkEnableOption "enables my git configuration"; movOpts.programConfigs.gitConfig.enable = lib.mkEnableOption "enables my git configuration";
}; };
config = lib.mkIf config.movOpts.gitConfig.enable { config = lib.mkIf config.movOpts.programConfigs.gitConfig.enable {
programs.git = { programs.git = {
enable = true; enable = true;
userEmail = "${username}@gmail.com"; userEmail = "${username}@gmail.com";

View File

@@ -1,8 +1,8 @@
{lib, config, pkgs, ... }: { {lib, config, pkgs, ... }: {
options = { options = {
movOpts.kittyConfig.enable = lib.mkEnableOption "enables my kitty configuration"; movOpts.programConfigs.kittyConfig.enable = lib.mkEnableOption "enables my kitty configuration";
}; };
config = lib.mkIf config.movOpts.kittyConfig.enable { config = lib.mkIf config.movOpts.programConfigs.kittyConfig.enable {
programs.kitty = { programs.kitty = {
enable = true; enable = true;

View File

@@ -2,9 +2,9 @@
home = "/home/${username}"; home = "/home/${username}";
in { in {
options = { options = {
movOpts.passConfig.enable = lib.mkEnableOption "enables my pass config"; movOpts.programConfigs.passConfig.enable = lib.mkEnableOption "enables my pass config";
}; };
config = lib.mkIf config.movOpts.passConfig.enable { config = lib.mkIf config.movOpts.programConfigs.passConfig.enable {
programs.password-store = { programs.password-store = {
enable = true; enable = true;
settings = { settings = {

View File

@@ -1,8 +1,8 @@
{lib, config, ...}: { {lib, config, ...}: {
options = { options = {
movOpts.yaziConfig.enable = lib.mkEnableOption "enables my yazi config"; movOpts.programConfigs.yaziConfig.enable = lib.mkEnableOption "enables my yazi config";
}; };
config = lib.mkIf config.movOpts.yaziConfig.enable { config = lib.mkIf config.movOpts.programConfigs.yaziConfig.enable {
programs.yazi = { programs.yazi = {
enable = true; enable = true;
enableZshIntegration = true; enableZshIntegration = true;