Update systemmodules/homemodules paths to allow nixd to differentiate between the two
This commit is contained in:
@ -21,7 +21,7 @@ Contains all the system configurations.
|
|||||||
|
|
||||||
- There is a common configuration used for all systems: `NixFlake/system/default.nix`
|
- There is a common configuration used for all systems: `NixFlake/system/default.nix`
|
||||||
- Every system has its own special configuration: `NixFlake/system/<hostname>/default.nix`
|
- Every system has its own special configuration: `NixFlake/system/<hostname>/default.nix`
|
||||||
- System modules are located in `NixFlake/system/modules`
|
- System modules are located in `NixFlake/system/systemmodules`
|
||||||
- Hosted services are located in `NixFlake/system/services`
|
- Hosted services are located in `NixFlake/system/services`
|
||||||
|
|
||||||
When creating a NixOS configuration inside the `NixFlake/flake.nix` the common configuration is imported.
|
When creating a NixOS configuration inside the `NixFlake/flake.nix` the common configuration is imported.
|
||||||
@ -33,7 +33,7 @@ Contains all the home-manager configurations.
|
|||||||
|
|
||||||
- There is a common configuration for each user: `NixFlake/home/<username>/default.nix`
|
- There is a common configuration for each user: `NixFlake/home/<username>/default.nix`
|
||||||
- There is a configuration for a single system of this user: `NixFlake/home/<username>/<hostname>/default.nix`
|
- There is a configuration for a single system of this user: `NixFlake/home/<username>/<hostname>/default.nix`
|
||||||
- Home-Manager modules are located in `NixFlake/home/modules`
|
- Home-Manager modules are located in `NixFlake/home/homemodules`
|
||||||
|
|
||||||
When creating a NixOS configuration inside the `NixFlake/flake.nix` the common configuration is imported.
|
When creating a NixOS configuration inside the `NixFlake/flake.nix` the common configuration is imported.
|
||||||
Because the hostname is propagated to the common configuration, it can import the host-specific config by itself.
|
Because the hostname is propagated to the common configuration, it can import the host-specific config by itself.
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
# create a module that only contains the options, type can be home or system
|
# create a module that only contains the options, type can be home or system
|
||||||
toModule = type: name: {options.modules.${name} = import ../../${type}/modules/${name}/options.nix {inherit lib mylib;};};
|
toModule = type: name: {options.systemmodules.${name} = import ../../${type}/modules/${name}/options.nix {inherit lib mylib;};};
|
||||||
|
|
||||||
# evaluate a single module
|
# evaluate a single module
|
||||||
evalModule = type: name: (lib.evalModules {modules = [(toModule type name)];});
|
evalModule = type: name: (lib.evalModules {modules = [(toModule type name)];});
|
||||||
|
|||||||
@ -15,7 +15,7 @@
|
|||||||
headless,
|
headless,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.modules) color;
|
inherit (config.homemodules) color;
|
||||||
in
|
in
|
||||||
# This is a HM module.
|
# This is a HM module.
|
||||||
# Because no imports/options/config is defined explicitly, everything is treated as config:
|
# Because no imports/options/config is defined explicitly, everything is treated as config:
|
||||||
@ -25,16 +25,6 @@ in
|
|||||||
# Every module (/function) is called with the same arguments as this module.
|
# Every module (/function) is called with the same arguments as this module.
|
||||||
# Arguments with matching names are "plugged in" into the right slots,
|
# Arguments with matching names are "plugged in" into the right slots,
|
||||||
# the case of different arity is handled by always providing ellipses (...) in module definitions.
|
# the case of different arity is handled by always providing ellipses (...) in module definitions.
|
||||||
imports = [
|
|
||||||
# Import the host-specific HM config.
|
|
||||||
# It will be merged with the main config (like all different modules).
|
|
||||||
# Settings regarding a specific host (e.g. desktop or laptop)
|
|
||||||
# should only be made in the host-specific config.
|
|
||||||
./${hostname}
|
|
||||||
|
|
||||||
# Import all of my custom HM modules.
|
|
||||||
../modules
|
|
||||||
];
|
|
||||||
|
|
||||||
# Enable and configure my custom HM modules.
|
# Enable and configure my custom HM modules.
|
||||||
paths = rec {
|
paths = rec {
|
||||||
@ -42,7 +32,7 @@ in
|
|||||||
dotfiles = "${nixflake}/config";
|
dotfiles = "${nixflake}/config";
|
||||||
};
|
};
|
||||||
|
|
||||||
modules = {
|
homemodules = {
|
||||||
beets.enable = !headless;
|
beets.enable = !headless;
|
||||||
|
|
||||||
btop.enable = true;
|
btop.enable = true;
|
||||||
@ -99,7 +89,7 @@ in
|
|||||||
|
|
||||||
hyprland = {
|
hyprland = {
|
||||||
enable = nixosConfig.programs.hyprland.enable;
|
enable = nixosConfig.programs.hyprland.enable;
|
||||||
dunst.enable = !config.modules.hyprpanel.enable; # Disable for hyprpanel
|
dunst.enable = !config.homemodules.hyprpanel.enable; # Disable for hyprpanel
|
||||||
bars.enable = false;
|
bars.enable = false;
|
||||||
dynamicCursor.enable = false;
|
dynamicCursor.enable = false;
|
||||||
trails.enable = true;
|
trails.enable = true;
|
||||||
@ -112,14 +102,14 @@ in
|
|||||||
|
|
||||||
bindings = lib.mergeAttrsList [
|
bindings = lib.mergeAttrsList [
|
||||||
# Use Rofi if we don't have caelestia
|
# Use Rofi if we don't have caelestia
|
||||||
(lib.optionalAttrs (!config.modules.hyprland.caelestia.enable) {
|
(lib.optionalAttrs (!config.homemodules.hyprland.caelestia.enable) {
|
||||||
"$mainMod, a" = ["exec, rofi -drun-show-actions -show drun"];
|
"$mainMod, a" = ["exec, rofi -drun-show-actions -show drun"];
|
||||||
"$mainMod, c" = ["exec, clipman pick --tool=rofi"];
|
"$mainMod, c" = ["exec, clipman pick --tool=rofi"];
|
||||||
"$mainMod SHIFT, l" = ["exec, loginctl lock-session"];
|
"$mainMod SHIFT, l" = ["exec, loginctl lock-session"];
|
||||||
})
|
})
|
||||||
|
|
||||||
# Caelestia
|
# Caelestia
|
||||||
(lib.optionalAttrs (config.modules.hyprland.caelestia.enable) {
|
(lib.optionalAttrs (config.homemodules.hyprland.caelestia.enable) {
|
||||||
"$mainMod, a" = ["exec, caelestia shell drawers toggle launcher"];
|
"$mainMod, a" = ["exec, caelestia shell drawers toggle launcher"];
|
||||||
# "$mainMod, c" = ["exec, caelestia clipboard"];
|
# "$mainMod, c" = ["exec, caelestia clipboard"];
|
||||||
"$mainMod SHIFT, l" = ["exec, caelestia shell lock lock"];
|
"$mainMod SHIFT, l" = ["exec, caelestia shell lock lock"];
|
||||||
@ -318,10 +308,10 @@ in
|
|||||||
# as nixosConfig won't be available otherwise.
|
# as nixosConfig won't be available otherwise.
|
||||||
xdg = {
|
xdg = {
|
||||||
enable = true; # This only does xdg path management
|
enable = true; # This only does xdg path management
|
||||||
mime.enable = nixosConfig.modules.mime.enable;
|
mime.enable = nixosConfig.systemmodules.mime.enable;
|
||||||
|
|
||||||
mimeApps = {
|
mimeApps = {
|
||||||
enable = nixosConfig.modules.mime.enable;
|
enable = nixosConfig.systemmodules.mime.enable;
|
||||||
|
|
||||||
associations.added = nixosConfig.xdg.mime.addedAssociations;
|
associations.added = nixosConfig.xdg.mime.addedAssociations;
|
||||||
associations.removed = nixosConfig.xdg.mime.removedAssociations;
|
associations.removed = nixosConfig.xdg.mime.removedAssociations;
|
||||||
@ -392,7 +382,7 @@ in
|
|||||||
config.lib.file.mkOutOfStoreSymlink
|
config.lib.file.mkOutOfStoreSymlink
|
||||||
nixosConfig.sops.templates."nix.conf".path;
|
nixosConfig.sops.templates."nix.conf".path;
|
||||||
}
|
}
|
||||||
(lib.mkIf nixosConfig.modules.desktopportal.termfilechooser.enable {
|
(lib.mkIf nixosConfig.systemmodules.desktopportal.termfilechooser.enable {
|
||||||
".config/xdg-desktop-portal-termfilechooser/config".text = ''
|
".config/xdg-desktop-portal-termfilechooser/config".text = ''
|
||||||
[filechooser]
|
[filechooser]
|
||||||
cmd=${pkgs.xdg-desktop-portal-termfilechooser}/share/xdg-desktop-portal-termfilechooser/yazi-wrapper.sh
|
cmd=${pkgs.xdg-desktop-portal-termfilechooser}/share/xdg-desktop-portal-termfilechooser/yazi-wrapper.sh
|
||||||
@ -402,7 +392,7 @@ in
|
|||||||
save_mode = last
|
save_mode = last
|
||||||
'';
|
'';
|
||||||
})
|
})
|
||||||
(lib.mkIf config.modules.git.enable {
|
(lib.mkIf config.homemodules.git.enable {
|
||||||
".ssh/allowed_signers".text = "* ${publicKeys.${username}.ssh}";
|
".ssh/allowed_signers".text = "* ${publicKeys.${username}.ssh}";
|
||||||
})
|
})
|
||||||
(lib.mkIf config.programs.navi.enable {
|
(lib.mkIf config.programs.navi.enable {
|
||||||
@ -649,7 +639,7 @@ in
|
|||||||
|
|
||||||
eza = {
|
eza = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableFishIntegration = config.modules.fish.enable;
|
enableFishIntegration = config.homemodules.fish.enable;
|
||||||
};
|
};
|
||||||
|
|
||||||
# TODO: Module
|
# TODO: Module
|
||||||
@ -806,7 +796,7 @@ in
|
|||||||
|
|
||||||
fzf = {
|
fzf = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableFishIntegration = config.modules.fish.enable;
|
enableFishIntegration = config.homemodules.fish.enable;
|
||||||
};
|
};
|
||||||
|
|
||||||
imv = {
|
imv = {
|
||||||
@ -824,7 +814,7 @@ in
|
|||||||
|
|
||||||
keychain = {
|
keychain = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableFishIntegration = config.modules.fish.enable;
|
enableFishIntegration = config.homemodules.fish.enable;
|
||||||
enableXsessionIntegration = !headless;
|
enableXsessionIntegration = !headless;
|
||||||
keys = ["id_ed25519"];
|
keys = ["id_ed25519"];
|
||||||
};
|
};
|
||||||
@ -838,12 +828,12 @@ in
|
|||||||
|
|
||||||
navi = {
|
navi = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableFishIntegration = config.modules.fish.enable;
|
enableFishIntegration = config.homemodules.fish.enable;
|
||||||
};
|
};
|
||||||
|
|
||||||
nix-index = {
|
nix-index = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableFishIntegration = config.modules.fish.enable;
|
enableFishIntegration = config.homemodules.fish.enable;
|
||||||
};
|
};
|
||||||
|
|
||||||
nushell.enable = false;
|
nushell.enable = false;
|
||||||
@ -935,7 +925,7 @@ in
|
|||||||
|
|
||||||
zoxide = {
|
zoxide = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableFishIntegration = config.modules.fish.enable;
|
enableFishIntegration = config.homemodules.fish.enable;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -8,12 +8,8 @@
|
|||||||
username,
|
username,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
imports = [
|
|
||||||
../../modules
|
|
||||||
];
|
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
modules = {
|
homemodules = {
|
||||||
btop.cuda = true;
|
btop.cuda = true;
|
||||||
|
|
||||||
# This has been relocated here from the default config,
|
# This has been relocated here from the default config,
|
||||||
|
|||||||
@ -1,11 +1,7 @@
|
|||||||
# Here goes the stuff that will only be enabled on the laptop
|
# Here goes the stuff that will only be enabled on the laptop
|
||||||
{...}: {
|
{...}: {
|
||||||
imports = [
|
|
||||||
../../modules
|
|
||||||
];
|
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
modules = {
|
homemodules = {
|
||||||
hyprland = {
|
hyprland = {
|
||||||
keyboard = {
|
keyboard = {
|
||||||
layout = "us";
|
layout = "us";
|
||||||
|
|||||||
@ -6,12 +6,8 @@
|
|||||||
username,
|
username,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
imports = [
|
|
||||||
../../modules
|
|
||||||
];
|
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
modules = {
|
homemodules = {
|
||||||
btop.cuda = true;
|
btop.cuda = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -6,10 +6,6 @@
|
|||||||
username,
|
username,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
imports = [
|
|
||||||
../../modules
|
|
||||||
];
|
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
docker-compose
|
docker-compose
|
||||||
|
|||||||
@ -6,9 +6,9 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.modules) TEMPLATE color;
|
inherit (config.homemodules) TEMPLATE color;
|
||||||
in {
|
in {
|
||||||
options.modules.TEMPLATE = import ./options.nix {inherit lib mylib;};
|
options.homemodules.TEMPLATE = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = lib.mkIf TEMPLATE.enable {};
|
config = lib.mkIf TEMPLATE.enable {};
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,9 +6,9 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.modules) ags;
|
inherit (config.homemodules) ags;
|
||||||
in {
|
in {
|
||||||
options.modules.ags = import ./options.nix {inherit lib mylib;};
|
options.homemodules.ags = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = lib.mkIf ags.enable {
|
config = lib.mkIf ags.enable {
|
||||||
programs.ags = {
|
programs.ags = {
|
||||||
@ -68,7 +68,7 @@ in {
|
|||||||
# ".config/ags".source = config.lib.file.mkOutOfStoreSymlink "${config.paths.nixflake}/home/modules/ags/config";
|
# ".config/ags".source = config.lib.file.mkOutOfStoreSymlink "${config.paths.nixflake}/home/modules/ags/config";
|
||||||
|
|
||||||
# NOTE: Don't symlink to ~/.config/ags/colors.scss, since that is already used by configDir
|
# NOTE: Don't symlink to ~/.config/ags/colors.scss, since that is already used by configDir
|
||||||
".config/_colors.scss".text = with config.modules.color.hex; ''
|
".config/_colors.scss".text = with config.homemodules.color.hex; ''
|
||||||
$dark-rosewater: #${dark.rosewater};
|
$dark-rosewater: #${dark.rosewater};
|
||||||
$dark-flamingo: #${dark.flamingo};
|
$dark-flamingo: #${dark.flamingo};
|
||||||
$dark-pink: #${dark.pink};
|
$dark-pink: #${dark.pink};
|
||||||
|
|||||||
@ -5,9 +5,9 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with mylib.modules; let
|
with mylib.modules; let
|
||||||
cfg = config.modules.alacritty;
|
cfg = config.homemodules.alacritty;
|
||||||
in {
|
in {
|
||||||
options.modules.alacritty = import ./options.nix {inherit lib mylib;};
|
options.homemodules.alacritty = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
programs.alacritty = {
|
programs.alacritty = {
|
||||||
|
|||||||
@ -8,14 +8,14 @@
|
|||||||
}:
|
}:
|
||||||
with lib;
|
with lib;
|
||||||
with mylib.modules; let
|
with mylib.modules; let
|
||||||
cfg = config.modules.audio;
|
cfg = config.homemodules.audio;
|
||||||
cfgfp = config.modules.flatpak;
|
cfgfp = config.homemodules.flatpak;
|
||||||
in {
|
in {
|
||||||
imports = [
|
imports = [
|
||||||
../flatpak
|
../flatpak
|
||||||
];
|
];
|
||||||
|
|
||||||
options.modules.audio = import ./options.nix {inherit lib mylib;};
|
options.homemodules.audio = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
assertions = [
|
assertions = [
|
||||||
|
|||||||
@ -12,13 +12,13 @@ with lib;
|
|||||||
with mylib.modules; let
|
with mylib.modules; let
|
||||||
# This is the current state of the option that this module defines
|
# This is the current state of the option that this module defines
|
||||||
# We use it to determine if the config should be changed below
|
# We use it to determine if the config should be changed below
|
||||||
cfg = config.modules.emacs;
|
cfg = config.homemodules.emacs;
|
||||||
in {
|
in {
|
||||||
imports = [];
|
imports = [];
|
||||||
|
|
||||||
# Options is a vector of options this module defines
|
# Options is a vector of options this module defines
|
||||||
# This module defines only the "emacs" option and suboptions "enable" and "doom"
|
# This module defines only the "emacs" option and suboptions "enable" and "doom"
|
||||||
options.modules.emacs = import ./options.nix {inherit lib mylib;};
|
options.homemodules.emacs = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
# Config is the merged set of all module configurations
|
# Config is the merged set of all module configurations
|
||||||
# Here we define what happens to the config if the module is active (but only if the module is active)
|
# Here we define what happens to the config if the module is active (but only if the module is active)
|
||||||
|
|||||||
@ -13,9 +13,9 @@
|
|||||||
}:
|
}:
|
||||||
with lib;
|
with lib;
|
||||||
with mylib.modules; let
|
with mylib.modules; let
|
||||||
cfg = config.modules.email;
|
cfg = config.homemodules.email;
|
||||||
in {
|
in {
|
||||||
options.modules.email = import ./options.nix {inherit lib mylib;};
|
options.homemodules.email = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
# TODO: Add Maildir to nextcloud sync
|
# TODO: Add Maildir to nextcloud sync
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|||||||
@ -12,9 +12,9 @@ with mylib.modules;
|
|||||||
# It is important that every flatpak interaction is handled through this module
|
# It is important that every flatpak interaction is handled through this module
|
||||||
# to prevent that anything is removed by a module although it is required by another one
|
# to prevent that anything is removed by a module although it is required by another one
|
||||||
let
|
let
|
||||||
cfg = config.modules.flatpak;
|
cfg = config.homemodules.flatpak;
|
||||||
in {
|
in {
|
||||||
options.modules.flatpak = import ./options.nix {inherit lib mylib;};
|
options.homemodules.flatpak = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
assertions = [
|
assertions = [
|
||||||
|
|||||||
@ -7,11 +7,11 @@
|
|||||||
}:
|
}:
|
||||||
with lib;
|
with lib;
|
||||||
with mylib.modules; let
|
with mylib.modules; let
|
||||||
cfg = config.modules.gaming;
|
cfg = config.homemodules.gaming;
|
||||||
cfgfp = config.modules.flatpak;
|
cfgfp = config.homemodules.flatpak;
|
||||||
in {
|
in {
|
||||||
imports = [
|
imports = [
|
||||||
# NOTE: I don't know if this is the right approach or if I should use config.modules.flatpak
|
# NOTE: I don't know if this is the right approach or if I should use config.homemodules.flatpak
|
||||||
../flatpak
|
../flatpak
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -19,7 +19,7 @@ in {
|
|||||||
# TODO: SteamTinkerLaunch option
|
# TODO: SteamTinkerLaunch option
|
||||||
# TODO: Dolphin + SteamRomManager option
|
# TODO: Dolphin + SteamRomManager option
|
||||||
|
|
||||||
options.modules.gaming = import ./options.nix {inherit lib mylib;};
|
options.homemodules.gaming = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
assertions = [
|
assertions = [
|
||||||
|
|||||||
@ -10,9 +10,9 @@
|
|||||||
}:
|
}:
|
||||||
with lib;
|
with lib;
|
||||||
with mylib.modules; let
|
with mylib.modules; let
|
||||||
cfg = config.modules.helix;
|
cfg = config.homemodules.helix;
|
||||||
in {
|
in {
|
||||||
options.modules.helix = import ./options.nix {inherit lib mylib;};
|
options.homemodules.helix = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
home.sessionVariables = {
|
home.sessionVariables = {
|
||||||
|
|||||||
@ -9,9 +9,9 @@
|
|||||||
# TODO: Remove this module, put protonmail into the email module
|
# TODO: Remove this module, put protonmail into the email module
|
||||||
with lib;
|
with lib;
|
||||||
with mylib.modules; let
|
with mylib.modules; let
|
||||||
cfg = config.modules.misc;
|
cfg = config.homemodules.misc;
|
||||||
in {
|
in {
|
||||||
options.modules.misc = import ./options.nix {inherit lib mylib;};
|
options.homemodules.misc = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
home.packages = with pkgs;
|
home.packages = with pkgs;
|
||||||
|
|||||||
@ -12,9 +12,9 @@
|
|||||||
}:
|
}:
|
||||||
with lib;
|
with lib;
|
||||||
with mylib.modules; let
|
with mylib.modules; let
|
||||||
cfg = config.modules.nextcloud;
|
cfg = config.homemodules.nextcloud;
|
||||||
in {
|
in {
|
||||||
options.modules.nextcloud = import ./options.nix {inherit lib mylib;};
|
options.homemodules.nextcloud = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
assertions = [
|
assertions = [
|
||||||
|
|||||||
@ -8,9 +8,9 @@
|
|||||||
}:
|
}:
|
||||||
with lib;
|
with lib;
|
||||||
with mylib.modules; let
|
with mylib.modules; let
|
||||||
cfg = config.modules.ranger;
|
cfg = config.homemodules.ranger;
|
||||||
in {
|
in {
|
||||||
options.modules.ranger = import ./options.nix {inherit lib mylib;};
|
options.homemodules.ranger = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
home.packages = with pkgs;
|
home.packages = with pkgs;
|
||||||
|
|||||||
@ -9,9 +9,9 @@
|
|||||||
}:
|
}:
|
||||||
with lib;
|
with lib;
|
||||||
with mylib.modules; let
|
with mylib.modules; let
|
||||||
cfg = config.modules.vscode;
|
cfg = config.homemodules.vscode;
|
||||||
in {
|
in {
|
||||||
options.modules.vscode = import ./options.nix {inherit lib mylib;};
|
options.homemodules.vscode = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
programs.vscode = {
|
programs.vscode = {
|
||||||
|
|||||||
@ -6,9 +6,9 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.modules) beets;
|
inherit (config.homemodules) beets;
|
||||||
in {
|
in {
|
||||||
options.modules.beets = import ./options.nix {inherit lib mylib;};
|
options.homemodules.beets = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = lib.mkIf beets.enable {
|
config = lib.mkIf beets.enable {
|
||||||
programs.beets = {
|
programs.beets = {
|
||||||
|
|||||||
@ -6,9 +6,9 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.modules) btop color;
|
inherit (config.homemodules) btop color;
|
||||||
in {
|
in {
|
||||||
options.modules.btop = import ./options.nix {inherit lib mylib;};
|
options.homemodules.btop = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = lib.mkIf btop.enable {
|
config = lib.mkIf btop.enable {
|
||||||
programs.btop = {
|
programs.btop = {
|
||||||
|
|||||||
@ -5,9 +5,9 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.modules) chromium;
|
inherit (config.homemodules) chromium;
|
||||||
in {
|
in {
|
||||||
options.modules.chromium = import ./options.nix {inherit lib mylib;};
|
options.homemodules.chromium = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = lib.mkIf chromium.enable {
|
config = lib.mkIf chromium.enable {
|
||||||
home.packages = with pkgs;
|
home.packages = with pkgs;
|
||||||
|
|||||||
@ -5,9 +5,9 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.modules) color;
|
inherit (config.homemodules) color;
|
||||||
in {
|
in {
|
||||||
options.modules.color = import ./options.nix {inherit lib mylib pkgs;};
|
options.homemodules.color = import ./options.nix {inherit lib mylib pkgs;};
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
home.packages = let
|
home.packages = let
|
||||||
@ -59,7 +59,7 @@ in {
|
|||||||
++ (lib.optionals color.installPackages color.extraPackages);
|
++ (lib.optionals color.installPackages color.extraPackages);
|
||||||
|
|
||||||
# This module sets its own options to the values specified in a colorscheme file.
|
# This module sets its own options to the values specified in a colorscheme file.
|
||||||
modules.color = let
|
homemodules.color = let
|
||||||
scheme = import ./schemes/${color.scheme}.nix;
|
scheme = import ./schemes/${color.scheme}.nix;
|
||||||
|
|
||||||
# Add the aliases
|
# Add the aliases
|
||||||
|
|||||||
@ -5,9 +5,9 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.modules) docs;
|
inherit (config.homemodules) docs;
|
||||||
in {
|
in {
|
||||||
options.modules.docs = import ./options.nix {inherit lib mylib;};
|
options.homemodules.docs = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = lib.mkIf docs.enable {
|
config = lib.mkIf docs.enable {
|
||||||
home = {
|
home = {
|
||||||
|
|||||||
@ -5,9 +5,9 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.modules) fcitx;
|
inherit (config.homemodules) fcitx;
|
||||||
in {
|
in {
|
||||||
options.modules.fcitx = import ./options.nix {inherit lib mylib;};
|
options.homemodules.fcitx = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = lib.mkIf fcitx.enable {
|
config = lib.mkIf fcitx.enable {
|
||||||
i18n.inputMethod = {
|
i18n.inputMethod = {
|
||||||
|
|||||||
@ -6,9 +6,9 @@
|
|||||||
hostname,
|
hostname,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.modules) firefox color;
|
inherit (config.homemodules) firefox color;
|
||||||
in {
|
in {
|
||||||
options.modules.firefox = import ./options.nix {inherit lib mylib;};
|
options.homemodules.firefox = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = lib.mkIf firefox.enable {
|
config = lib.mkIf firefox.enable {
|
||||||
textfox = {
|
textfox = {
|
||||||
|
|||||||
@ -7,9 +7,9 @@
|
|||||||
nixosConfig,
|
nixosConfig,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.modules) fish color;
|
inherit (config.homemodules) fish color;
|
||||||
in {
|
in {
|
||||||
options.modules.fish = import ./options.nix {inherit lib mylib;};
|
options.homemodules.fish = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = lib.mkIf fish.enable {
|
config = lib.mkIf fish.enable {
|
||||||
# https://github.com/catppuccin/fish/blob/main/themes/Catppuccin%20Mocha.theme
|
# https://github.com/catppuccin/fish/blob/main/themes/Catppuccin%20Mocha.theme
|
||||||
@ -47,7 +47,7 @@ in {
|
|||||||
generateCompletions = nixosConfig.programs.fish.generateCompletions;
|
generateCompletions = nixosConfig.programs.fish.generateCompletions;
|
||||||
|
|
||||||
functions = lib.mergeAttrsList [
|
functions = lib.mergeAttrsList [
|
||||||
(lib.optionalAttrs config.modules.nnn.enable {
|
(lib.optionalAttrs config.homemodules.nnn.enable {
|
||||||
nnncd = {
|
nnncd = {
|
||||||
wraps = "nnn";
|
wraps = "nnn";
|
||||||
description = "support nnn quit and change directory";
|
description = "support nnn quit and change directory";
|
||||||
@ -101,7 +101,7 @@ in {
|
|||||||
# Same as above but with args for bat
|
# Same as above but with args for bat
|
||||||
batifyWithArgs = command: args: command + (lib.optionalString config.programs.bat.enable (" | bat " + args));
|
batifyWithArgs = command: args: command + (lib.optionalString config.programs.bat.enable (" | bat " + args));
|
||||||
|
|
||||||
# These can be used for my config.modules and for HM config.programs,
|
# These can be used for my config.homemodules and for HM config.programs,
|
||||||
# as both of these add the package to home.packages
|
# as both of these add the package to home.packages
|
||||||
hasHomePackage = package: (mylib.modules.contains config.home.packages package);
|
hasHomePackage = package: (mylib.modules.contains config.home.packages package);
|
||||||
|
|
||||||
@ -167,15 +167,15 @@ in {
|
|||||||
gcl = "git clone";
|
gcl = "git clone";
|
||||||
})
|
})
|
||||||
|
|
||||||
(lib.optionalAttrs config.modules.kitty.enable {ssh = "kitty +kitten ssh";})
|
(lib.optionalAttrs config.homemodules.kitty.enable {ssh = "kitty +kitten ssh";})
|
||||||
|
|
||||||
(abbrify pkgs.lazygit {lg = "lazygit";})
|
(abbrify pkgs.lazygit {lg = "lazygit";})
|
||||||
|
|
||||||
(abbrify pkgs.nix-search-tv {search = "nix-search-tv print --indexes 'nixos,home-manager,nixpkgs,nur' | fzf --preview 'nix-search-tv preview {}' --scheme history";})
|
(abbrify pkgs.nix-search-tv {search = "nix-search-tv print --indexes 'nixos,home-manager,nixpkgs,nur' | fzf --preview 'nix-search-tv preview {}' --scheme history";})
|
||||||
|
|
||||||
# Doesn't work with abbrify because I have nnn.override...
|
# Doesn't work with abbrify because I have nnn.override...
|
||||||
(lib.optionalAttrs config.modules.nnn.enable {n = "nnncd -a";})
|
(lib.optionalAttrs config.homemodules.nnn.enable {n = "nnncd -a";})
|
||||||
(lib.optionalAttrs config.modules.nnn.enable {np = "nnncd -a -P p";})
|
(lib.optionalAttrs config.homemodules.nnn.enable {np = "nnncd -a -P p";})
|
||||||
|
|
||||||
(abbrify pkgs.ranger {r = "ranger --choosedir=$HOME/.rangerdir; set LASTDIR (cat $HOME/.rangerdir); cd $LASTDIR";})
|
(abbrify pkgs.ranger {r = "ranger --choosedir=$HOME/.rangerdir; set LASTDIR (cat $HOME/.rangerdir); cd $LASTDIR";})
|
||||||
|
|
||||||
@ -184,7 +184,7 @@ in {
|
|||||||
# grep = rg;
|
# grep = rg;
|
||||||
})
|
})
|
||||||
|
|
||||||
(lib.optionalAttrs config.modules.rmpc.enable {r = "rcmp";})
|
(lib.optionalAttrs config.homemodules.rmpc.enable {r = "rcmp";})
|
||||||
|
|
||||||
(abbrify pkgs.rsync rec {
|
(abbrify pkgs.rsync rec {
|
||||||
rsync = "rsync -ahv --inplace --partial --info=progress2";
|
rsync = "rsync -ahv --inplace --partial --info=progress2";
|
||||||
@ -197,7 +197,7 @@ in {
|
|||||||
|
|
||||||
programs.starship = {
|
programs.starship = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableFishIntegration = config.modules.fish.enable;
|
enableFishIntegration = config.homemodules.fish.enable;
|
||||||
settings = {
|
settings = {
|
||||||
# Other config here
|
# Other config here
|
||||||
format = "$all"; # Remove this line to disable the default prompt format
|
format = "$all"; # Remove this line to disable the default prompt format
|
||||||
|
|||||||
@ -6,9 +6,9 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.modules) git;
|
inherit (config.homemodules) git;
|
||||||
in {
|
in {
|
||||||
options.modules.git = import ./options.nix {inherit lib mylib;};
|
options.homemodules.git = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = lib.mkIf git.enable {
|
config = lib.mkIf git.enable {
|
||||||
programs.diff-so-fancy = {
|
programs.diff-so-fancy = {
|
||||||
|
|||||||
@ -8,7 +8,7 @@
|
|||||||
username,
|
username,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.modules) hyprland color;
|
inherit (config.homemodules) hyprland color;
|
||||||
|
|
||||||
# Autostart programs
|
# Autostart programs
|
||||||
always-exec = import ./autostart.nix {inherit lib pkgs config hyprland;};
|
always-exec = import ./autostart.nix {inherit lib pkgs config hyprland;};
|
||||||
@ -22,7 +22,7 @@
|
|||||||
"$mainMod, mouse:273" = ["resizewindow"];
|
"$mainMod, mouse:273" = ["resizewindow"];
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
options.modules.hyprland = import ./options.nix {inherit lib mylib;};
|
options.homemodules.hyprland = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = lib.mkIf hyprland.enable {
|
config = lib.mkIf hyprland.enable {
|
||||||
assertions = [
|
assertions = [
|
||||||
@ -46,7 +46,7 @@ in {
|
|||||||
iconTheme.name = color.iconTheme;
|
iconTheme.name = color.iconTheme;
|
||||||
};
|
};
|
||||||
|
|
||||||
modules = {
|
homemodules = {
|
||||||
hyprpanel.enable = hyprland.hyprpanel.enable;
|
hyprpanel.enable = hyprland.hyprpanel.enable;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
global = {
|
global = {
|
||||||
monitor = config.modules.waybar.monitor;
|
monitor = config.homemodules.waybar.monitor;
|
||||||
font = "${color.font} 11";
|
font = "${color.font} 11";
|
||||||
offset = "10x10";
|
offset = "10x10";
|
||||||
background = color.hexS.base;
|
background = color.hexS.base;
|
||||||
|
|||||||
@ -6,9 +6,9 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.modules) hyprpanel color;
|
inherit (config.homemodules) hyprpanel color;
|
||||||
in {
|
in {
|
||||||
options.modules.hyprpanel = import ./options.nix {inherit lib mylib;};
|
options.homemodules.hyprpanel = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = lib.mkIf hyprpanel.enable {
|
config = lib.mkIf hyprpanel.enable {
|
||||||
programs.hyprpanel = {
|
programs.hyprpanel = {
|
||||||
|
|||||||
@ -5,9 +5,9 @@
|
|||||||
mylib,
|
mylib,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.modules) kitty color;
|
inherit (config.homemodules) kitty color;
|
||||||
in {
|
in {
|
||||||
options.modules.kitty = import ./options.nix {inherit lib mylib;};
|
options.homemodules.kitty = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = lib.mkIf kitty.enable {
|
config = lib.mkIf kitty.enable {
|
||||||
programs.kitty = {
|
programs.kitty = {
|
||||||
@ -15,7 +15,7 @@ in {
|
|||||||
shellIntegration.enableFishIntegration = true;
|
shellIntegration.enableFishIntegration = true;
|
||||||
|
|
||||||
font = {
|
font = {
|
||||||
name = "${config.modules.color.font}";
|
name = "${config.homemodules.color.font}";
|
||||||
size = 12;
|
size = 12;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -6,9 +6,9 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.modules) lazygit color;
|
inherit (config.homemodules) lazygit color;
|
||||||
in {
|
in {
|
||||||
options.modules.lazygit = import ./options.nix {inherit lib mylib;};
|
options.homemodules.lazygit = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = lib.mkIf lazygit.enable {
|
config = lib.mkIf lazygit.enable {
|
||||||
programs.lazygit = {
|
programs.lazygit = {
|
||||||
|
|||||||
@ -6,9 +6,9 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.modules) mpd;
|
inherit (config.homemodules) mpd;
|
||||||
in {
|
in {
|
||||||
options.modules.mpd = import ./options.nix {inherit lib mylib;};
|
options.homemodules.mpd = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = lib.mkIf mpd.enable {
|
config = lib.mkIf mpd.enable {
|
||||||
services = {
|
services = {
|
||||||
|
|||||||
@ -10,9 +10,9 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.modules) neovim color;
|
inherit (config.homemodules) neovim color;
|
||||||
in {
|
in {
|
||||||
options.modules.neovim = import ./options.nix {inherit lib mylib;};
|
options.homemodules.neovim = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = lib.mkIf neovim.enable {
|
config = lib.mkIf neovim.enable {
|
||||||
home = {
|
home = {
|
||||||
|
|||||||
@ -7,9 +7,9 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.modules) niri color;
|
inherit (config.homemodules) niri color;
|
||||||
in {
|
in {
|
||||||
options.modules.niri = import ./options.nix {inherit lib mylib;};
|
options.homemodules.niri = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = lib.mkIf niri.enable rec {
|
config = lib.mkIf niri.enable rec {
|
||||||
assertions = [
|
assertions = [
|
||||||
|
|||||||
@ -6,9 +6,9 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.modules) nnn;
|
inherit (config.homemodules) nnn;
|
||||||
in {
|
in {
|
||||||
options.modules.nnn = import ./options.nix {inherit lib mylib;};
|
options.homemodules.nnn = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = lib.mkIf nnn.enable {
|
config = lib.mkIf nnn.enable {
|
||||||
home.sessionVariables = {
|
home.sessionVariables = {
|
||||||
|
|||||||
@ -6,9 +6,9 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.modules) qutebrowser color;
|
inherit (config.homemodules) qutebrowser color;
|
||||||
in {
|
in {
|
||||||
options.modules.qutebrowser = import ./options.nix {inherit lib mylib;};
|
options.homemodules.qutebrowser = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = lib.mkIf qutebrowser.enable {
|
config = lib.mkIf qutebrowser.enable {
|
||||||
programs.qutebrowser = {
|
programs.qutebrowser = {
|
||||||
|
|||||||
@ -6,9 +6,9 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.modules) rmpc color;
|
inherit (config.homemodules) rmpc color;
|
||||||
in {
|
in {
|
||||||
options.modules.rmpc = import ./options.nix {inherit lib mylib;};
|
options.homemodules.rmpc = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = lib.mkIf rmpc.enable {
|
config = lib.mkIf rmpc.enable {
|
||||||
assertions = [
|
assertions = [
|
||||||
|
|||||||
@ -8,9 +8,9 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.modules) rofi color;
|
inherit (config.homemodules) rofi color;
|
||||||
in {
|
in {
|
||||||
options.modules.rofi = import ./options.nix {inherit lib mylib;};
|
options.homemodules.rofi = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = lib.mkIf rofi.enable {
|
config = lib.mkIf rofi.enable {
|
||||||
programs.rofi = {
|
programs.rofi = {
|
||||||
@ -137,7 +137,7 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
modules.hyprland.keybindings = let
|
homemodules.hyprland.keybindings = let
|
||||||
vpn-menu =
|
vpn-menu =
|
||||||
pkgs.writeScriptBin
|
pkgs.writeScriptBin
|
||||||
"rofi-menu-vpn"
|
"rofi-menu-vpn"
|
||||||
@ -177,7 +177,7 @@ in {
|
|||||||
|> builtins.concatStringsSep " && ";
|
|> builtins.concatStringsSep " && ";
|
||||||
};
|
};
|
||||||
|
|
||||||
monitors = builtins.attrNames config.modules.hyprland.monitors;
|
monitors = builtins.attrNames config.homemodules.hyprland.monitors;
|
||||||
in
|
in
|
||||||
mylib.rofi.mkSimpleMenu
|
mylib.rofi.mkSimpleMenu
|
||||||
"wall"
|
"wall"
|
||||||
@ -185,7 +185,7 @@ in {
|
|||||||
|> builtins.map (setWallpaperOnMonitors monitors)
|
|> builtins.map (setWallpaperOnMonitors monitors)
|
||||||
|> lib.mergeAttrsList);
|
|> lib.mergeAttrsList);
|
||||||
in
|
in
|
||||||
lib.mkIf (!config.modules.hyprland.caelestia.enable) {
|
lib.mkIf (!config.homemodules.hyprland.caelestia.enable) {
|
||||||
bindings = lib.mergeAttrsList [
|
bindings = lib.mergeAttrsList [
|
||||||
{
|
{
|
||||||
"$mainMod, escape" = ["exec, \"${power-menu}/bin/rofi-menu-power\""];
|
"$mainMod, escape" = ["exec, \"${power-menu}/bin/rofi-menu-power\""];
|
||||||
@ -193,7 +193,7 @@ in {
|
|||||||
"$mainMod, w" = ["exec, \"${wallpaper-menu}/bin/rofi-menu-wall\""];
|
"$mainMod, w" = ["exec, \"${wallpaper-menu}/bin/rofi-menu-wall\""];
|
||||||
# "$mainMod, o" = ["exec, \"${lectures-menu}\""];
|
# "$mainMod, o" = ["exec, \"${lectures-menu}\""];
|
||||||
}
|
}
|
||||||
(lib.optionalAttrs (!nixosConfig.modules.network.useNetworkManager) {
|
(lib.optionalAttrs (!nixosConfig.systemmodules.network.useNetworkManager) {
|
||||||
"$mainMod, U" = ["exec, \"${vpn-menu}/rofi-menu-vpn\""];
|
"$mainMod, U" = ["exec, \"${vpn-menu}/rofi-menu-vpn\""];
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|||||||
@ -4,9 +4,9 @@
|
|||||||
mylib,
|
mylib,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.modules) color waybar;
|
inherit (config.homemodules) color waybar;
|
||||||
in {
|
in {
|
||||||
options.modules.waybar = import ./options.nix {inherit lib mylib;};
|
options.homemodules.waybar = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = lib.mkIf waybar.enable {
|
config = lib.mkIf waybar.enable {
|
||||||
programs.waybar = {
|
programs.waybar = {
|
||||||
|
|||||||
@ -6,14 +6,14 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.modules) yazi color;
|
inherit (config.homemodules) yazi color;
|
||||||
in {
|
in {
|
||||||
options.modules.yazi = import ./options.nix {inherit lib mylib;};
|
options.homemodules.yazi = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = lib.mkIf yazi.enable {
|
config = lib.mkIf yazi.enable {
|
||||||
programs.yazi = {
|
programs.yazi = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableFishIntegration = config.modules.fish.enable;
|
enableFishIntegration = config.homemodules.fish.enable;
|
||||||
shellWrapperName = "y";
|
shellWrapperName = "y";
|
||||||
|
|
||||||
plugins = {
|
plugins = {
|
||||||
|
|||||||
@ -20,8 +20,8 @@ in
|
|||||||
(mkMime color.hexS.green "application/pdf")
|
(mkMime color.hexS.green "application/pdf")
|
||||||
]
|
]
|
||||||
|
|
||||||
(mkMimes color.hexS.text nixosConfig.modules.mime.textTypes)
|
(mkMimes color.hexS.text nixosconfig.homemodules.mime.textTypes)
|
||||||
(mkMimes color.hexS.teal nixosConfig.modules.mime.imageTypes)
|
(mkMimes color.hexS.teal nixosconfig.homemodules.mime.imageTypes)
|
||||||
(mkMimes color.hexS.yellow nixosConfig.modules.mime.videoTypes)
|
(mkMimes color.hexS.yellow nixosconfig.homemodules.mime.videoTypes)
|
||||||
(mkMimes color.hexS.sky nixosConfig.modules.mime.audioTypes)
|
(mkMimes color.hexS.sky nixosconfig.homemodules.mime.audioTypes)
|
||||||
]
|
]
|
||||||
|
|||||||
@ -4,9 +4,9 @@
|
|||||||
mylib,
|
mylib,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.modules) zathura color;
|
inherit (config.homemodules) zathura color;
|
||||||
in {
|
in {
|
||||||
options.modules.zathura = import ./options.nix {inherit lib mylib;};
|
options.homemodules.zathura = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = lib.mkIf zathura.enable {
|
config = lib.mkIf zathura.enable {
|
||||||
programs.zathura = {
|
programs.zathura = {
|
||||||
|
|||||||
@ -29,6 +29,13 @@
|
|||||||
|
|
||||||
# Import the toplevel system configuration module.
|
# Import the toplevel system configuration module.
|
||||||
../system
|
../system
|
||||||
|
../system/cachix.nix
|
||||||
|
|
||||||
|
# Host specific configuration
|
||||||
|
../system/${hostname}
|
||||||
|
|
||||||
|
# Import all of my custom system modules
|
||||||
|
../system/systemmodules
|
||||||
]
|
]
|
||||||
|
|
||||||
extraModules
|
extraModules
|
||||||
@ -51,8 +58,22 @@
|
|||||||
# to /etc/profiles instead of ~/.nix-profile.
|
# to /etc/profiles instead of ~/.nix-profile.
|
||||||
useUserPackages = true;
|
useUserPackages = true;
|
||||||
|
|
||||||
# Import the user-specific HM toplevel module.
|
users.${username}.imports = [
|
||||||
users.${username}.imports = [../home/${username}];
|
# Import the user-specific HM toplevel module.
|
||||||
|
# It will be merged with the main config (like all different modules).
|
||||||
|
# Settings regarding a specific host (e.g. desktop or laptop)
|
||||||
|
# should only be made in the host-specific config.
|
||||||
|
../home/${username}
|
||||||
|
|
||||||
|
# Host specific configuration
|
||||||
|
../home/${username}/${hostname}
|
||||||
|
];
|
||||||
|
|
||||||
|
sharedModules = [
|
||||||
|
# Import all of my custom HM modules.
|
||||||
|
# Putting them into sharedModules enables correct nixd completions.
|
||||||
|
../home/homemodules
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@ -11,17 +11,7 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with mylib.networking; {
|
with mylib.networking; {
|
||||||
imports = [
|
systemmodules = {
|
||||||
# Import my system modules
|
|
||||||
./modules
|
|
||||||
|
|
||||||
# Import the host-specific system config
|
|
||||||
./${hostname}
|
|
||||||
|
|
||||||
./cachix.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
modules = {
|
|
||||||
bootloader = {
|
bootloader = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
@ -234,7 +224,7 @@ with mylib.networking; {
|
|||||||
# 6 Cyan 14 Cyan
|
# 6 Cyan 14 Cyan
|
||||||
# 7 White 15 White
|
# 7 White 15 White
|
||||||
colors = let
|
colors = let
|
||||||
color = config.home-manager.users.${username}.modules.color;
|
color = config.home-manager.users.${username}.homemodules.color;
|
||||||
in [
|
in [
|
||||||
# 0 - 7
|
# 0 - 7
|
||||||
"000000" # Dark black
|
"000000" # Dark black
|
||||||
|
|||||||
@ -11,13 +11,11 @@
|
|||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
./disks.nix
|
./disks.nix
|
||||||
|
|
||||||
../modules
|
|
||||||
|
|
||||||
# General services
|
# General services
|
||||||
../services/fileflows-node.nix
|
../services/fileflows-node.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
modules = {
|
systemmodules = {
|
||||||
bootloader = {
|
bootloader = {
|
||||||
# Secure boot
|
# Secure boot
|
||||||
loader = "lanzaboote";
|
loader = "lanzaboote";
|
||||||
|
|||||||
@ -2,10 +2,9 @@
|
|||||||
imports = [
|
imports = [
|
||||||
# Include the results of the hardware scan.
|
# Include the results of the hardware scan.
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
../modules
|
|
||||||
];
|
];
|
||||||
|
|
||||||
modules = {
|
systemmodules = {
|
||||||
network = {
|
network = {
|
||||||
useNetworkManager = true;
|
useNetworkManager = true;
|
||||||
|
|
||||||
|
|||||||
@ -14,8 +14,6 @@
|
|||||||
# Include the results of the hardware scan.
|
# Include the results of the hardware scan.
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
|
|
||||||
../modules
|
|
||||||
|
|
||||||
# My own services
|
# My own services
|
||||||
../services/heidi.nix
|
../services/heidi.nix
|
||||||
../services/formula10.nix
|
../services/formula10.nix
|
||||||
@ -47,7 +45,7 @@
|
|||||||
../services/whats-up-docker.nix
|
../services/whats-up-docker.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
modules = {
|
systemmodules = {
|
||||||
docker.networks = [
|
docker.networks = [
|
||||||
{
|
{
|
||||||
name = "behind-nginx";
|
name = "behind-nginx";
|
||||||
|
|||||||
@ -4,9 +4,9 @@
|
|||||||
mylib,
|
mylib,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.modules) TEMPLATE;
|
inherit (config.systemmodules) TEMPLATE;
|
||||||
in {
|
in {
|
||||||
options.modules.TEMPLATE = import ./options.nix {inherit lib mylib;};
|
options.systemmodules.TEMPLATE = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config =
|
config =
|
||||||
lib.mkIf TEMPLATE.enable {
|
lib.mkIf TEMPLATE.enable {
|
||||||
|
|||||||
@ -7,9 +7,9 @@
|
|||||||
publicKeys,
|
publicKeys,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.modules) agenix;
|
inherit (config.systemmodules) agenix;
|
||||||
in {
|
in {
|
||||||
options.modules.agenix = import ./options.nix {inherit lib mylib;};
|
options.systemmodules.agenix = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
# NOTE: Add below snippet to home/christoph/default.nix to generate the secrets.nix file
|
# NOTE: Add below snippet to home/christoph/default.nix to generate the secrets.nix file
|
||||||
@ -23,13 +23,13 @@ in {
|
|||||||
# {
|
# {
|
||||||
# ${lib.optionalString
|
# ${lib.optionalString
|
||||||
# # If this user defined any secrets...
|
# # If this user defined any secrets...
|
||||||
# (builtins.hasAttr "${username}" nixosConfig.modules.agenix.secrets)
|
# (builtins.hasAttr "${username}" nixosconfig.systemmodules.agenix.secrets)
|
||||||
# # ...we will add them to the current secrets.nix,
|
# # ...we will add them to the current secrets.nix,
|
||||||
# # s.t. agenix can be used to encrypt/access them.
|
# # s.t. agenix can be used to encrypt/access them.
|
||||||
# (builtins.concatStringsSep "\n"
|
# (builtins.concatStringsSep "\n"
|
||||||
# (builtins.map
|
# (builtins.map
|
||||||
# (mkSecret publicKeys.${username}.ssh)
|
# (mkSecret publicKeys.${username}.ssh)
|
||||||
# nixosConfig.modules.agenix.secrets.${username}))}
|
# nixosconfig.systemmodules.agenix.secrets.${username}))}
|
||||||
# }
|
# }
|
||||||
# '';
|
# '';
|
||||||
|
|
||||||
|
|||||||
@ -10,9 +10,9 @@
|
|||||||
with lib;
|
with lib;
|
||||||
with mylib.virtualisation;
|
with mylib.virtualisation;
|
||||||
with mylib.modules; let
|
with mylib.modules; let
|
||||||
cfg = config.modules.containers;
|
cfg = config.systemmodules.containers;
|
||||||
in {
|
in {
|
||||||
options.modules.containers = import ./options.nix {inherit lib mylib;};
|
options.systemmodules.containers = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
# TODO: These need config options exposed through the module,
|
# TODO: These need config options exposed through the module,
|
||||||
# e.g. to set paths/volumes/binds differently per system...
|
# e.g. to set paths/volumes/binds differently per system...
|
||||||
|
|||||||
@ -5,9 +5,9 @@
|
|||||||
mylib,
|
mylib,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.modules) bootloader;
|
inherit (config.systemmodules) bootloader;
|
||||||
in {
|
in {
|
||||||
options.modules.bootloader = import ./options.nix {inherit lib mylib;};
|
options.systemmodules.bootloader = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = lib.mkIf bootloader.enable (lib.mkMerge [
|
config = lib.mkIf bootloader.enable (lib.mkMerge [
|
||||||
{
|
{
|
||||||
|
|||||||
@ -5,9 +5,9 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.modules) desktopportal;
|
inherit (config.systemmodules) desktopportal;
|
||||||
in {
|
in {
|
||||||
options.modules.desktopportal = import ./options.nix {inherit lib mylib;};
|
options.systemmodules.desktopportal = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = lib.mkIf desktopportal.enable {
|
config = lib.mkIf desktopportal.enable {
|
||||||
xdg = {
|
xdg = {
|
||||||
|
|||||||
@ -5,9 +5,9 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.modules) docker;
|
inherit (config.systemmodules) docker;
|
||||||
in {
|
in {
|
||||||
options.modules.docker = import ./options.nix {inherit lib mylib;};
|
options.systemmodules.docker = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = lib.mkIf docker.enable {
|
config = lib.mkIf docker.enable {
|
||||||
environment.variables = lib.mkMerge [
|
environment.variables = lib.mkMerge [
|
||||||
|
|||||||
@ -5,9 +5,9 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.modules) fonts;
|
inherit (config.systemmodules) fonts;
|
||||||
in {
|
in {
|
||||||
options.modules.fonts = import ./options.nix {inherit lib mylib;};
|
options.systemmodules.fonts = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = lib.mkIf fonts.enable {
|
config = lib.mkIf fonts.enable {
|
||||||
fonts = {
|
fonts = {
|
||||||
|
|||||||
@ -6,9 +6,9 @@
|
|||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.modules) impermanence;
|
inherit (config.systemmodules) impermanence;
|
||||||
in {
|
in {
|
||||||
options.modules.impermanence = import ./options.nix {inherit lib mylib;};
|
options.systemmodules.impermanence = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = let
|
config = let
|
||||||
# NOTE: Setting user/group/mode only has an effect if the
|
# NOTE: Setting user/group/mode only has an effect if the
|
||||||
|
|||||||
@ -4,9 +4,9 @@
|
|||||||
mylib,
|
mylib,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.modules) mime;
|
inherit (config.systemmodules) mime;
|
||||||
in {
|
in {
|
||||||
options.modules.mime = import ./options.nix {inherit lib mylib;};
|
options.systemmodules.mime = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = lib.mkIf mime.enable {
|
config = lib.mkIf mime.enable {
|
||||||
xdg = {
|
xdg = {
|
||||||
|
|||||||
@ -8,9 +8,9 @@
|
|||||||
with lib;
|
with lib;
|
||||||
with mylib.networking;
|
with mylib.networking;
|
||||||
with mylib.modules; let
|
with mylib.modules; let
|
||||||
cfg = config.modules.network;
|
cfg = config.systemmodules.network;
|
||||||
in {
|
in {
|
||||||
options.modules.network = import ./options.nix {inherit lib mylib;};
|
options.systemmodules.network = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
services.resolved = {
|
services.resolved = {
|
||||||
@ -59,7 +59,7 @@ in {
|
|||||||
inherit (cfg) networks;
|
inherit (cfg) networks;
|
||||||
};
|
};
|
||||||
|
|
||||||
modules.polkit.allowedActions = mkIf cfg.useNetworkManager [
|
systemmodules.polkit.allowedActions = mkIf cfg.useNetworkManager [
|
||||||
# List NM permissions by running "nmcli general permissions"
|
# List NM permissions by running "nmcli general permissions"
|
||||||
"org.freedesktop.NetworkManager.settings.modify.system"
|
"org.freedesktop.NetworkManager.settings.modify.system"
|
||||||
];
|
];
|
||||||
|
|||||||
@ -7,9 +7,9 @@
|
|||||||
}:
|
}:
|
||||||
with lib;
|
with lib;
|
||||||
with mylib.modules; let
|
with mylib.modules; let
|
||||||
cfg = config.modules.polkit;
|
cfg = config.systemmodules.polkit;
|
||||||
in {
|
in {
|
||||||
options.modules.polkit = import ./options.nix {inherit lib mylib;};
|
options.systemmodules.polkit = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
security.polkit.enable = true;
|
security.polkit.enable = true;
|
||||||
|
|||||||
@ -6,9 +6,9 @@
|
|||||||
username,
|
username,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (config.modules) sops-nix;
|
inherit (config.systemmodules) sops-nix;
|
||||||
in {
|
in {
|
||||||
options.modules.sops-nix = import ./options.nix {inherit lib mylib;};
|
options.systemmodules.sops-nix = import ./options.nix {inherit lib mylib;};
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
|
|||||||
@ -14,8 +14,6 @@
|
|||||||
# Include the results of the hardware scan.
|
# Include the results of the hardware scan.
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
|
|
||||||
../modules
|
|
||||||
|
|
||||||
# General services
|
# General services
|
||||||
../services/adguard.nix
|
../services/adguard.nix
|
||||||
../services/nginx-proxy-manager.nix
|
../services/nginx-proxy-manager.nix
|
||||||
@ -25,7 +23,7 @@
|
|||||||
../services/whats-up-docker.nix
|
../services/whats-up-docker.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
modules = {
|
systemmodules = {
|
||||||
docker.networks = [
|
docker.networks = [
|
||||||
{
|
{
|
||||||
name = "behind-nginx";
|
name = "behind-nginx";
|
||||||
|
|||||||
Reference in New Issue
Block a user