mirror of
https://github.com/Swarsel/.dotfiles.git
synced 2025-12-06 00:57:22 +01:00
feat: share config between nixos / home-manager
This commit is contained in:
parent
641a0cd84d
commit
57d5ea065a
166 changed files with 1029 additions and 1031 deletions
File diff suppressed because it is too large
Load diff
|
|
@ -7,10 +7,6 @@ let
|
|||
isBtrfs = true;
|
||||
isLinux = true;
|
||||
sharescreen = "eDP-1";
|
||||
profiles = {
|
||||
reduced = lib.mkIf (!minimal) true;
|
||||
minimal = lib.mkIf minimal true;
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
|
|
@ -23,6 +19,11 @@ in
|
|||
|
||||
];
|
||||
|
||||
swarselprofiles = {
|
||||
reduced = lib.mkIf (!minimal) true;
|
||||
minimal = lib.mkIf minimal true;
|
||||
btrfs = true;
|
||||
};
|
||||
|
||||
swarselsystems = lib.recursiveUpdate
|
||||
{
|
||||
|
|
@ -38,13 +39,14 @@ in
|
|||
rootDisk = "/dev/nvme0n1";
|
||||
swapSize = "4G";
|
||||
hostName = config.node.name;
|
||||
profiles = {
|
||||
btrfs = true;
|
||||
};
|
||||
}
|
||||
sharedOptions;
|
||||
|
||||
home-manager.users."${primaryUser}" = {
|
||||
swarselprofiles = {
|
||||
reduced = lib.mkIf (!minimal) true;
|
||||
minimal = lib.mkIf minimal true;
|
||||
};
|
||||
# home.stateVersion = lib.mkForce "23.05";
|
||||
swarselsystems = lib.recursiveUpdate
|
||||
{
|
||||
|
|
|
|||
|
|
@ -6,10 +6,6 @@ let
|
|||
isBtrfs = false;
|
||||
isLinux = true;
|
||||
isPublic = true;
|
||||
profiles = {
|
||||
chaostheatre = lib.mkIf (!minimal) true;
|
||||
minimal = lib.mkIf minimal true;
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
|
|
@ -39,6 +35,11 @@ in
|
|||
firewall.enable = true;
|
||||
};
|
||||
|
||||
swarselprofiles = {
|
||||
chaostheatre = lib.mkIf (!minimal) true;
|
||||
minimal = lib.mkIf minimal true;
|
||||
btrfs = true;
|
||||
};
|
||||
swarselsystems = lib.recursiveUpdate
|
||||
{
|
||||
info = "~SwarselSystems~ demo host";
|
||||
|
|
@ -49,7 +50,6 @@ in
|
|||
isSwap = true;
|
||||
swapSize = "4G";
|
||||
rootDisk = "/dev/vda";
|
||||
profiles.btrfs = true;
|
||||
}
|
||||
sharedOptions;
|
||||
|
||||
|
|
|
|||
|
|
@ -6,9 +6,6 @@ let
|
|||
isLinux = true;
|
||||
isNixos = true;
|
||||
};
|
||||
profiles = {
|
||||
minimal = lib.mkIf minimal true;
|
||||
};
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
|
|
@ -32,6 +29,10 @@ in
|
|||
enableAllFirmware = lib.mkForce false;
|
||||
};
|
||||
|
||||
swarselprofiles = {
|
||||
minimal = lib.mkIf minimal true;
|
||||
server.syncserver = true;
|
||||
};
|
||||
swarselsystems = lib.recursiveUpdate
|
||||
{
|
||||
info = "VM.Standard.E2.1.Micro";
|
||||
|
|
@ -41,9 +42,6 @@ in
|
|||
isSwap = true;
|
||||
rootDisk = "/dev/sda";
|
||||
swapSize = "4G";
|
||||
profiles = {
|
||||
server.syncserver = true;
|
||||
};
|
||||
}
|
||||
sharedOptions;
|
||||
|
||||
|
|
|
|||
|
|
@ -209,6 +209,9 @@ in
|
|||
};
|
||||
};
|
||||
|
||||
swarselprofiles = {
|
||||
server.moonside = true;
|
||||
};
|
||||
swarselsystems = lib.recursiveUpdate
|
||||
{
|
||||
info = "VM.Standard.A1.Flex, 4 OCPUs, 24GB RAM";
|
||||
|
|
@ -217,9 +220,6 @@ in
|
|||
isCrypted = false;
|
||||
isSwap = false;
|
||||
rootDisk = "/dev/sda";
|
||||
profiles = {
|
||||
server.moonside = true;
|
||||
};
|
||||
}
|
||||
sharedOptions;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,19 +1,6 @@
|
|||
{ self, config, inputs, lib, minimal, ... }:
|
||||
let
|
||||
primaryUser = config.swarselsystems.mainUser;
|
||||
sharedOptions = {
|
||||
isLaptop = true;
|
||||
isNixos = true;
|
||||
isBtrfs = true;
|
||||
isLinux = true;
|
||||
sharescreen = "eDP-2";
|
||||
profiles = {
|
||||
personal = lib.mkIf (!minimal) true;
|
||||
minimal = lib.mkIf minimal true;
|
||||
work = lib.mkIf (!minimal) true;
|
||||
framework = lib.mkIf (!minimal) true;
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
|
||||
|
|
@ -26,53 +13,56 @@ in
|
|||
];
|
||||
|
||||
|
||||
swarselsystems = lib.recursiveUpdate
|
||||
{
|
||||
info = "Framework Laptop 16, 7940HS, RX7700S, 64GB RAM";
|
||||
firewall = lib.mkForce true;
|
||||
wallpaper = self + /files/wallpaper/lenovowp.png;
|
||||
hasBluetooth = true;
|
||||
hasFingerprint = true;
|
||||
isImpermanence = false;
|
||||
isSecureBoot = true;
|
||||
isCrypted = true;
|
||||
inherit (config.repo.secrets.local) hostName;
|
||||
inherit (config.repo.secrets.local) fqdn;
|
||||
hibernation.offset = 533760;
|
||||
profiles = {
|
||||
amdcpu = true;
|
||||
amdgpu = true;
|
||||
hibernation = true;
|
||||
btrfs = true;
|
||||
};
|
||||
}
|
||||
sharedOptions;
|
||||
swarselprofiles = {
|
||||
personal = lib.mkIf (!minimal) true;
|
||||
work = lib.mkIf (!minimal) true;
|
||||
framework = lib.mkIf (!minimal) true;
|
||||
amdcpu = true;
|
||||
amdgpu = true;
|
||||
hibernation = true;
|
||||
btrfs = true;
|
||||
};
|
||||
swarselsystems = {
|
||||
lowResolution = "1280x800";
|
||||
highResolution = "2560x1600";
|
||||
isLaptop = true;
|
||||
isNixos = true;
|
||||
isBtrfs = true;
|
||||
isLinux = true;
|
||||
sharescreen = "eDP-2";
|
||||
info = "Framework Laptop 16, 7940HS, RX7700S, 64GB RAM";
|
||||
firewall = lib.mkForce true;
|
||||
wallpaper = self + /files/wallpaper/lenovowp.png;
|
||||
hasBluetooth = true;
|
||||
hasFingerprint = true;
|
||||
isImpermanence = false;
|
||||
isSecureBoot = true;
|
||||
isCrypted = true;
|
||||
inherit (config.repo.secrets.local) hostName;
|
||||
inherit (config.repo.secrets.local) fqdn;
|
||||
hibernation.offset = 533760;
|
||||
};
|
||||
|
||||
home-manager.users."${primaryUser}" = {
|
||||
# home.stateVersion = lib.mkForce "23.05";
|
||||
swarselsystems = lib.recursiveUpdate
|
||||
{
|
||||
isSecondaryGpu = true;
|
||||
SecondaryGpuCard = "pci-0000_03_00_0";
|
||||
cpuCount = 16;
|
||||
temperatureHwmon = {
|
||||
isAbsolutePath = true;
|
||||
path = "/sys/devices/virtual/thermal/thermal_zone0/";
|
||||
input-filename = "temp4_input";
|
||||
swarselsystems = {
|
||||
isSecondaryGpu = true;
|
||||
SecondaryGpuCard = "pci-0000_03_00_0";
|
||||
cpuCount = 16;
|
||||
temperatureHwmon = {
|
||||
isAbsolutePath = true;
|
||||
path = "/sys/devices/virtual/thermal/thermal_zone0/";
|
||||
input-filename = "temp4_input";
|
||||
};
|
||||
monitors = {
|
||||
main = {
|
||||
name = "BOE 0x0BC9 Unknown";
|
||||
mode = "2560x1600"; # TEMPLATE
|
||||
scale = "1";
|
||||
position = "2560,0";
|
||||
workspace = "15:L";
|
||||
output = "eDP-2";
|
||||
};
|
||||
lowResolution = "1280x800";
|
||||
highResolution = "2560x1600";
|
||||
monitors = {
|
||||
main = {
|
||||
name = "BOE 0x0BC9 Unknown";
|
||||
mode = "2560x1600"; # TEMPLATE
|
||||
scale = "1";
|
||||
position = "2560,0";
|
||||
workspace = "15:L";
|
||||
output = "eDP-2";
|
||||
};
|
||||
};
|
||||
}
|
||||
sharedOptions;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,10 +4,6 @@ let
|
|||
sharedOptions = {
|
||||
isBtrfs = true;
|
||||
isLinux = true;
|
||||
profiles = {
|
||||
toto = lib.mkIf (!minimal) true;
|
||||
minimal = lib.mkIf minimal true;
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
|
|
@ -24,6 +20,11 @@ in
|
|||
firewall.enable = false;
|
||||
};
|
||||
|
||||
swarselprofiles = {
|
||||
toto = lib.mkIf (!minimal) true;
|
||||
minimal = lib.mkIf minimal true;
|
||||
btrfs = true;
|
||||
};
|
||||
swarselsystems = lib.recursiveUpdate
|
||||
{
|
||||
info = "~SwarselSystems~ remote install helper";
|
||||
|
|
@ -35,7 +36,6 @@ in
|
|||
swapSize = "2G";
|
||||
# rootDisk = "/dev/nvme0n1";
|
||||
rootDisk = "/dev/vda";
|
||||
profiles.btrfs = true;
|
||||
# rootDisk = "/dev/vda";
|
||||
}
|
||||
sharedOptions;
|
||||
|
|
|
|||
|
|
@ -5,9 +5,6 @@ let
|
|||
isBtrfs = false;
|
||||
isLinux = true;
|
||||
isNixos = true;
|
||||
profiles = {
|
||||
server.local = true;
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
|
|
@ -30,6 +27,9 @@ in
|
|||
};
|
||||
|
||||
|
||||
swarselprofiles = {
|
||||
server.local = true;
|
||||
};
|
||||
swarselsystems = lib.recursiveUpdate
|
||||
{
|
||||
info = "ASRock J4105-ITX, 32GB RAM";
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@ let
|
|||
atuinDomain = globals.services.atuin.domain;
|
||||
in
|
||||
{
|
||||
options.swarselsystems.modules.atuin = lib.mkEnableOption "atuin settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.atuin {
|
||||
options.swarselmodules.atuin = lib.mkEnableOption "atuin settings";
|
||||
config = lib.mkIf config.swarselmodules.atuin {
|
||||
programs.atuin = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
|
||||
{
|
||||
options.swarselsystems.modules.ownpackages = lib.mkEnableOption "own packages settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.ownpackages {
|
||||
options.swarselmodules.ownpackages = lib.mkEnableOption "own packages settings";
|
||||
config = lib.mkIf config.swarselmodules.ownpackages {
|
||||
home.packages = with pkgs; lib.mkIf (!config.swarselsystems.isPublic) [
|
||||
pass-fuzzel
|
||||
cdw
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
{ lib, ... }:
|
||||
{ self, lib, ... }:
|
||||
let
|
||||
importNames = lib.swarselsystems.readNix "modules/home/common";
|
||||
in
|
||||
{
|
||||
imports = lib.swarselsystems.mkImports importNames "modules/home/common";
|
||||
imports = lib.swarselsystems.mkImports importNames "modules/home/common" ++ [
|
||||
"${self}/modules/shared/sharedsetup.nix"
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.desktop = lib.mkEnableOption "desktop settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.desktop {
|
||||
options.swarselmodules.desktop = lib.mkEnableOption "desktop settings";
|
||||
config = lib.mkIf config.swarselmodules.desktop {
|
||||
xdg.desktopEntries = {
|
||||
|
||||
cura = {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.direnv = lib.mkEnableOption "direnv settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.direnv {
|
||||
options.swarselmodules.direnv = lib.mkEnableOption "direnv settings";
|
||||
config = lib.mkIf config.swarselmodules.direnv {
|
||||
programs.direnv = {
|
||||
enable = true;
|
||||
silent = true;
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@ let
|
|||
inherit (config.swarselsystems) homeDir isPublic;
|
||||
in
|
||||
{
|
||||
options.swarselsystems.modules.emacs = lib.mkEnableOption "emacs settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.emacs {
|
||||
options.swarselmodules.emacs = lib.mkEnableOption "emacs settings";
|
||||
config = lib.mkIf config.swarselmodules.emacs {
|
||||
# needed for elfeed
|
||||
sops.secrets.fever-pw = lib.mkIf (!isPublic) { path = "${homeDir}/.emacs.d/.fever"; };
|
||||
|
||||
|
|
|
|||
|
|
@ -5,8 +5,8 @@ let
|
|||
crocDomain = globals.services.croc.domain;
|
||||
in
|
||||
{
|
||||
options.swarselsystems.modules.env = lib.mkEnableOption "env settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.env {
|
||||
options.swarselmodules.env = lib.mkEnableOption "env settings";
|
||||
config = lib.mkIf config.swarselmodules.env {
|
||||
home.sessionVariables = {
|
||||
EDITOR = "e -w";
|
||||
DISPLAY = ":0";
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.eza = lib.mkEnableOption "eza settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.eza {
|
||||
options.swarselmodules.eza = lib.mkEnableOption "eza settings";
|
||||
config = lib.mkIf config.swarselmodules.eza {
|
||||
programs.eza = {
|
||||
enable = true;
|
||||
icons = "auto";
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.firefox = lib.mkEnableOption "firefox settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.firefox {
|
||||
options.swarselmodules.firefox = lib.mkEnableOption "firefox settings";
|
||||
config = lib.mkIf config.swarselmodules.firefox {
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
package = pkgs.firefox; # uses overrides
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.fuzzel = lib.mkEnableOption "fuzzel settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.fuzzel {
|
||||
options.swarselmodules.fuzzel = lib.mkEnableOption "fuzzel settings";
|
||||
config = lib.mkIf config.swarselmodules.fuzzel {
|
||||
programs.fuzzel = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@ let
|
|||
inherit (nixosConfig.repo.secrets.common.location) latitude longitude;
|
||||
in
|
||||
{
|
||||
options.swarselsystems.modules.gammastep = lib.mkEnableOption "gammastep settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.gammastep {
|
||||
options.swarselmodules.gammastep = lib.mkEnableOption "gammastep settings";
|
||||
config = lib.mkIf config.swarselmodules.gammastep {
|
||||
services.gammastep = lib.mkIf (config.swarselsystems.isNixos && !config.swarselsystems.isPublic) {
|
||||
enable = true;
|
||||
provider = "manual";
|
||||
|
|
|
|||
|
|
@ -6,8 +6,8 @@ let
|
|||
gitUser = globals.user.name;
|
||||
in
|
||||
{
|
||||
options.swarselsystems.modules.git = lib.mkEnableOption "git settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.git {
|
||||
options.swarselmodules.git = lib.mkEnableOption "git settings";
|
||||
config = lib.mkIf config.swarselmodules.git {
|
||||
programs.git = {
|
||||
enable = true;
|
||||
} // lib.optionalAttrs (!minimal) {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.gnome-keyring = lib.mkEnableOption "gnome keyring settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.gnome-keyring {
|
||||
options.swarselmodules.gnome-keyring = lib.mkEnableOption "gnome keyring settings";
|
||||
config = lib.mkIf config.swarselmodules.gnome-keyring {
|
||||
services.gnome-keyring = lib.mkIf (!config.swarselsystems.isNixos) {
|
||||
enable = true;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@ let
|
|||
inherit (config.swarselsystems) mainUser homeDir;
|
||||
in
|
||||
{
|
||||
options.swarselsystems.modules.gpgagent = lib.mkEnableOption "gpg agent settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.gpgagent {
|
||||
options.swarselmodules.gpgagent = lib.mkEnableOption "gpg agent settings";
|
||||
config = lib.mkIf config.swarselmodules.gpgagent {
|
||||
services.gpg-agent = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.kanshi = lib.mkEnableOption "kanshi settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.kanshi {
|
||||
options.swarselmodules.kanshi = lib.mkEnableOption "kanshi settings";
|
||||
config = lib.mkIf config.swarselmodules.kanshi {
|
||||
swarselsystems = {
|
||||
monitors = {
|
||||
homedesktop = {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.kdeconnect = lib.mkEnableOption "kdeconnect settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.kdeconnect {
|
||||
options.swarselmodules.kdeconnect = lib.mkEnableOption "kdeconnect settings";
|
||||
config = lib.mkIf config.swarselmodules.kdeconnect {
|
||||
services.kdeconnect = {
|
||||
enable = true;
|
||||
indicator = true;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.kitty = lib.mkEnableOption "kitty settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.kitty {
|
||||
options.swarselmodules.kitty = lib.mkEnableOption "kitty settings";
|
||||
config = lib.mkIf config.swarselmodules.kitty {
|
||||
programs.kitty = {
|
||||
enable = true;
|
||||
keybindings = { };
|
||||
|
|
|
|||
|
|
@ -5,8 +5,8 @@ let
|
|||
inherit (config.swarselsystems) xdgDir;
|
||||
in
|
||||
{
|
||||
options.swarselsystems.modules.mail = lib.mkEnableOption "mail settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.mail {
|
||||
options.swarselmodules.mail = lib.mkEnableOption "mail settings";
|
||||
config = lib.mkIf config.swarselmodules.mail {
|
||||
|
||||
sops.secrets = lib.mkIf (!config.swarselsystems.isPublic) {
|
||||
address1-token = { path = "${xdgDir}/secrets/address1-token"; };
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.mako = lib.mkEnableOption "mako settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.mako {
|
||||
options.swarselmodules.mako = lib.mkEnableOption "mako settings";
|
||||
config = lib.mkIf config.swarselmodules.mako {
|
||||
services.mako = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ self, lib, config, pkgs, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.nix-index = lib.mkEnableOption "nix-index settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.nix-index {
|
||||
options.swarselmodules.nix-index = lib.mkEnableOption "nix-index settings";
|
||||
config = lib.mkIf config.swarselmodules.nix-index {
|
||||
programs.nix-index =
|
||||
let
|
||||
commandNotFound = pkgs.runCommandLocal "command-not-found.sh" { } ''
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
{ lib, config, nixgl, ... }:
|
||||
{
|
||||
options.swarselmodules.nixgl = lib.mkEnableOption "nixgl settings";
|
||||
options.swarselsystems = {
|
||||
modules.nixgl = lib.mkEnableOption "nixgl settings";
|
||||
isSecondaryGpu = lib.mkEnableOption "device has a secondary GPU";
|
||||
SecondaryGpuCard = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "";
|
||||
};
|
||||
};
|
||||
config = lib.mkIf config.swarselsystems.modules.nixgl {
|
||||
config = lib.mkIf config.swarselmodules.nixgl {
|
||||
nixGL = lib.mkIf (!config.swarselsystems.isNixos) {
|
||||
inherit (nixgl) packages;
|
||||
defaultWrapper = lib.mkDefault "mesa";
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
|
||||
{
|
||||
options.swarselsystems.modules.packages = lib.mkEnableOption "packages settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.packages {
|
||||
options.swarselmodules.packages = lib.mkEnableOption "packages settings";
|
||||
config = lib.mkIf config.swarselmodules.packages {
|
||||
home.packages = with pkgs; [
|
||||
|
||||
# audio stuff
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.passwordstore = lib.mkEnableOption "passwordstore settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.passwordstore {
|
||||
options.swarselmodules.passwordstore = lib.mkEnableOption "passwordstore settings";
|
||||
config = lib.mkIf config.swarselmodules.passwordstore {
|
||||
programs.password-store = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.programs = lib.mkEnableOption "programs settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.programs {
|
||||
options.swarselmodules.programs = lib.mkEnableOption "programs settings";
|
||||
config = lib.mkIf config.swarselmodules.programs {
|
||||
programs = {
|
||||
bottom.enable = true;
|
||||
imv.enable = true;
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@ let
|
|||
inherit (config.swarselsystems) mainUser;
|
||||
in
|
||||
{
|
||||
options.swarselsystems.modules.general = lib.mkEnableOption "general nix settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.general {
|
||||
options.swarselmodules.general = lib.mkEnableOption "general nix settings";
|
||||
config = lib.mkIf config.swarselmodules.general {
|
||||
nix = lib.mkIf (!config.swarselsystems.isNixos) {
|
||||
package = lib.mkForce pkgs.nixVersions.nix_2_28;
|
||||
extraOptions = ''
|
||||
|
|
|
|||
12
modules/home/common/sharedoptions.nix
Normal file
12
modules/home/common/sharedoptions.nix
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
{ lib, config, nixosConfig, ... }:
|
||||
let
|
||||
# mirrorAttrs = lib.mapAttrs (_: v: lib.mkDefault v) nixosConfig.swarselsystems;
|
||||
inherit (lib) mkDefault mapAttrs filterAttrs;
|
||||
mkDefaultCommonAttrs = base: defaults:
|
||||
lib.mapAttrs (_: v: lib.mkDefault v)
|
||||
(lib.filterAttrs (k: _: base ? ${k}) defaults);
|
||||
in
|
||||
{
|
||||
# config.swarselsystems = mirrorAttrs;
|
||||
config.swarselsystems = mkDefaultCommonAttrs config.swarselsystems nixosConfig.swarselsystems;
|
||||
}
|
||||
|
|
@ -3,8 +3,8 @@ let
|
|||
inherit (config.swarselsystems) homeDir;
|
||||
in
|
||||
{
|
||||
options.swarselsystems.modules.sops = lib.mkEnableOption "sops settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.sops {
|
||||
options.swarselmodules.sops = lib.mkEnableOption "sops settings";
|
||||
config = lib.mkIf config.swarselmodules.sops {
|
||||
sops = {
|
||||
age.sshKeyPaths = [ "${homeDir}/.ssh/sops" "${homeDir}/.ssh/ssh_host_ed25519_key" ];
|
||||
defaultSopsFile = "${homeDir}/.dotfiles/secrets/general/secrets.yaml";
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.ssh = lib.mkEnableOption "ssh settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.ssh {
|
||||
options.swarselmodules.ssh = lib.mkEnableOption "ssh settings";
|
||||
config = lib.mkIf config.swarselmodules.ssh {
|
||||
programs.ssh = {
|
||||
enable = true;
|
||||
forwardAgent = true;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.starship = lib.mkEnableOption "starship settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.starship {
|
||||
options.swarselmodules.starship = lib.mkEnableOption "starship settings";
|
||||
config = lib.mkIf config.swarselmodules.starship {
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.stylix = lib.mkEnableOption "stylix settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.stylix {
|
||||
options.swarselmodules.stylix = lib.mkEnableOption "stylix settings";
|
||||
config = lib.mkIf config.swarselmodules.stylix {
|
||||
stylix = lib.mkIf (!config.swarselsystems.isNixos) (lib.recursiveUpdate
|
||||
{
|
||||
image = config.swarselsystems.wallpaper;
|
||||
|
|
|
|||
|
|
@ -6,8 +6,8 @@ let
|
|||
};
|
||||
in
|
||||
{
|
||||
options.swarselmodules.sway = lib.mkEnableOption "sway settings";
|
||||
options.swarselsystems = {
|
||||
modules.sway = lib.mkEnableOption "sway settings";
|
||||
inputs = lib.mkOption {
|
||||
type = lib.types.attrsOf (lib.types.attrsOf lib.types.str);
|
||||
default = { };
|
||||
|
|
@ -72,7 +72,7 @@ in
|
|||
internal = true;
|
||||
};
|
||||
};
|
||||
config = lib.mkIf config.swarselsystems.modules.sway {
|
||||
config = lib.mkIf config.swarselmodules.sway {
|
||||
swarselsystems = {
|
||||
touchpad = lib.mkIf config.swarselsystems.isLaptop {
|
||||
"type:touchpad" = {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, pkgs, config, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.swayosd = lib.mkEnableOption "swayosd settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.swayosd {
|
||||
options.swarselmodules.swayosd = lib.mkEnableOption "swayosd settings";
|
||||
config = lib.mkIf config.swarselmodules.swayosd {
|
||||
services.swayosd = {
|
||||
enable = true;
|
||||
package = pkgs.dev.swayosd;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ self, lib, config, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.symlink = lib.mkEnableOption "symlink settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.symlink {
|
||||
options.swarselmodules.symlink = lib.mkEnableOption "symlink settings";
|
||||
config = lib.mkIf config.swarselmodules.symlink {
|
||||
home.file = {
|
||||
"init.el" = lib.mkDefault {
|
||||
source = self + /files/emacs/init.el;
|
||||
|
|
|
|||
|
|
@ -13,8 +13,8 @@ let
|
|||
};
|
||||
in
|
||||
{
|
||||
options.swarselsystems.modules.tmux = lib.mkEnableOption "tmux settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.tmux {
|
||||
options.swarselmodules.tmux = lib.mkEnableOption "tmux settings";
|
||||
config = lib.mkIf config.swarselmodules.tmux {
|
||||
home.packages = with pkgs; [
|
||||
lsof
|
||||
sesh
|
||||
|
|
|
|||
|
|
@ -22,8 +22,8 @@ let
|
|||
];
|
||||
in
|
||||
{
|
||||
options.swarselmodules.waybar = lib.mkEnableOption "waybar settings";
|
||||
options.swarselsystems = {
|
||||
modules.waybar = lib.mkEnableOption "waybar settings";
|
||||
cpuCount = lib.mkOption {
|
||||
type = lib.types.int;
|
||||
default = 8;
|
||||
|
|
@ -52,7 +52,7 @@ in
|
|||
internal = true;
|
||||
};
|
||||
};
|
||||
config = lib.mkIf config.swarselsystems.modules.waybar {
|
||||
config = lib.mkIf config.swarselmodules.waybar {
|
||||
|
||||
swarselsystems = {
|
||||
waybarModules = lib.mkIf config.swarselsystems.isLaptop (modulesLeft ++ [
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.yubikeytouch = lib.mkEnableOption "yubikey touch detector service settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.yubikeytouch {
|
||||
options.swarselmodules.yubikeytouch = lib.mkEnableOption "yubikey touch detector service settings";
|
||||
config = lib.mkIf config.swarselmodules.yubikeytouch {
|
||||
systemd.user.services.yubikey-touch-detector = {
|
||||
Unit = {
|
||||
Description = "Detects when your YubiKey is waiting for a touch";
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@ let
|
|||
inherit (config.swarselsystems) homeDir;
|
||||
in
|
||||
{
|
||||
options.swarselsystems.modules.yubikey = lib.mkEnableOption "yubikey settings";
|
||||
options.swarselmodules.yubikey = lib.mkEnableOption "yubikey settings";
|
||||
|
||||
config = lib.mkIf config.swarselsystems.modules.yubikey {
|
||||
config = lib.mkIf config.swarselmodules.yubikey {
|
||||
|
||||
sops.secrets = lib.mkIf (!config.swarselsystems.isPublic) {
|
||||
u2f-keys = { path = "${homeDir}/.config/Yubico/u2f_keys"; };
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ self, lib, config, pkgs, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.zellij = lib.mkEnableOption "zellij settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.zellij {
|
||||
options.swarselmodules.zellij = lib.mkEnableOption "zellij settings";
|
||||
config = lib.mkIf config.swarselmodules.zellij {
|
||||
programs.zellij = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
|
|
|
|||
|
|
@ -3,14 +3,14 @@ let
|
|||
inherit (config.swarselsystems) flakePath;
|
||||
in
|
||||
{
|
||||
options.swarselmodules.zsh = lib.mkEnableOption "zsh settings";
|
||||
options.swarselsystems = {
|
||||
modules.zsh = lib.mkEnableOption "zsh settings";
|
||||
shellAliases = lib.mkOption {
|
||||
type = lib.types.attrsOf lib.types.str;
|
||||
default = { };
|
||||
};
|
||||
};
|
||||
config = lib.mkIf config.swarselsystems.modules.zsh
|
||||
config = lib.mkIf config.swarselmodules.zsh
|
||||
{
|
||||
|
||||
sops.secrets = {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
{ self, ... }:
|
||||
{
|
||||
home.stateVersion = "23.05";
|
||||
imports = [
|
||||
"${self}/modules/home/common/settings.nix"
|
||||
"${self}/modules/home/common/sharedsetup.nix"
|
||||
"${self}/modules/shared/sharedsetup.nix"
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.optional.framework = lib.mkEnableOption "optional framework machine settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.optional.framework {
|
||||
options.swarselmodules.optional.framework = lib.mkEnableOption "optional framework machine settings";
|
||||
config = lib.mkIf config.swarselmodules.optional.framework {
|
||||
swarselsystems = {
|
||||
inputs = {
|
||||
"12972:18:Framework_Laptop_16_Keyboard_Module_-_ANSI_Keyboard" = {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.optional.gaming = lib.mkEnableOption "optional gaming settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.optional.gaming {
|
||||
options.swarselmodules.optional.gaming = lib.mkEnableOption "optional gaming settings";
|
||||
config = lib.mkIf config.swarselmodules.optional.gaming {
|
||||
# specialisation = {
|
||||
# gaming.configuration = {
|
||||
home.packages = with pkgs; [
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@ let
|
|||
inherit (config.swarselsystems) homeDir;
|
||||
in
|
||||
{
|
||||
options.swarselsystems.modules.optional.work = lib.mkEnableOption "optional work settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.optional.work {
|
||||
options.swarselmodules.optional.work = lib.mkEnableOption "optional work settings";
|
||||
config = lib.mkIf config.swarselmodules.optional.work {
|
||||
home.packages = with pkgs; [
|
||||
stable.teams-for-linux
|
||||
shellcheck
|
||||
|
|
|
|||
|
|
@ -6,6 +6,5 @@ in
|
|||
{
|
||||
imports = lib.swarselsystems.mkImports importNames "modules/home/server" ++ [
|
||||
"${modulesPath}/home/common/settings.nix"
|
||||
"${modulesPath}/home/common/sharedsetup.nix"
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ self, lib, config, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.server.dotfiles = lib.mkEnableOption "server dotfiles settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.server.dotfiles {
|
||||
options.swarselmodules.server.dotfiles = lib.mkEnableOption "server dotfiles settings";
|
||||
config = lib.mkIf config.swarselmodules.server.dotfiles {
|
||||
home.file = {
|
||||
"init.el" = lib.mkForce {
|
||||
source = self + /files/emacs/server.el;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.appimage = lib.mkEnableOption "appimage config";
|
||||
config = lib.mkIf config.swarselsystems.modules.appimage {
|
||||
options.swarselmodules.appimage = lib.mkEnableOption "appimage config";
|
||||
config = lib.mkIf config.swarselmodules.appimage {
|
||||
programs.appimage = {
|
||||
enable = true;
|
||||
binfmt = true;
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@ let
|
|||
inherit (config.swarselsystems) mainUser;
|
||||
in
|
||||
{
|
||||
options.swarselsystems.modules.autologin = lib.mkEnableOption "optional autologin settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.autologin {
|
||||
options.swarselmodules.autologin = lib.mkEnableOption "optional autologin settings";
|
||||
config = lib.mkIf config.swarselmodules.autologin {
|
||||
services = {
|
||||
getty.autologinUser = mainUser;
|
||||
greetd.settings.initial_session.user = mainUser;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.blueman = lib.mkEnableOption "blueman config";
|
||||
config = lib.mkIf config.swarselsystems.modules.blueman {
|
||||
options.swarselmodules.blueman = lib.mkEnableOption "blueman config";
|
||||
config = lib.mkIf config.swarselmodules.blueman {
|
||||
services.blueman.enable = true;
|
||||
services.hardware.bolt.enable = true;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.distrobox = lib.mkEnableOption "distrobox config";
|
||||
config = lib.mkIf config.swarselsystems.modules.distrobox {
|
||||
options.swarselmodules.distrobox = lib.mkEnableOption "distrobox config";
|
||||
config = lib.mkIf config.swarselmodules.distrobox {
|
||||
environment.systemPackages = with pkgs; [
|
||||
distrobox
|
||||
boxbuddy
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.env = lib.mkEnableOption "environment config";
|
||||
config = lib.mkIf config.swarselsystems.modules.env {
|
||||
options.swarselmodules.env = lib.mkEnableOption "environment config";
|
||||
config = lib.mkIf config.swarselmodules.env {
|
||||
|
||||
environment = {
|
||||
wordlist.enable = true;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.gnome-keyring = lib.mkEnableOption "gnome-keyring config";
|
||||
config = lib.mkIf config.swarselsystems.modules.gnome-keyring {
|
||||
options.swarselmodules.gnome-keyring = lib.mkEnableOption "gnome-keyring config";
|
||||
config = lib.mkIf config.swarselmodules.gnome-keyring {
|
||||
services.gnome.gnome-keyring = {
|
||||
enable = true;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.gvfs = lib.mkEnableOption "gvfs config for nautilus";
|
||||
config = lib.mkIf config.swarselsystems.modules.gvfs {
|
||||
options.swarselmodules.gvfs = lib.mkEnableOption "gvfs config for nautilus";
|
||||
config = lib.mkIf config.swarselmodules.gvfs {
|
||||
services.gvfs.enable = true;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
{ pkgs, config, lib, ... }:
|
||||
{
|
||||
|
||||
options.swarselmodules.hardware = lib.mkEnableOption "hardware config";
|
||||
options.swarselsystems = {
|
||||
modules.hardware = lib.mkEnableOption "hardware config";
|
||||
hasBluetooth = lib.mkEnableOption "bluetooth availability";
|
||||
hasFingerprint = lib.mkEnableOption "fingerprint sensor availability";
|
||||
trackpoint = {
|
||||
|
|
@ -13,7 +13,7 @@
|
|||
};
|
||||
};
|
||||
};
|
||||
config = lib.mkIf config.swarselsystems.modules.hardware {
|
||||
config = lib.mkIf config.swarselmodules.hardware {
|
||||
hardware = {
|
||||
# opengl.driSupport32Bit = true is replaced with graphics.enable32Bit and hence redundant
|
||||
graphics = {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.keyboards = lib.mkEnableOption "keyboards config";
|
||||
config = lib.mkIf config.swarselsystems.modules.keyboards {
|
||||
options.swarselmodules.keyboards = lib.mkEnableOption "keyboards config";
|
||||
config = lib.mkIf config.swarselmodules.keyboards {
|
||||
services.udev.packages = with pkgs; [
|
||||
qmk-udev-rules
|
||||
vial
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.ledger = lib.mkEnableOption "ledger config";
|
||||
config = lib.mkIf config.swarselsystems.modules.ledger {
|
||||
options.swarselmodules.ledger = lib.mkEnableOption "ledger config";
|
||||
config = lib.mkIf config.swarselmodules.ledger {
|
||||
hardware.ledger.enable = true;
|
||||
|
||||
services.udev.packages = with pkgs; [
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@ let
|
|||
inherit (config.repo.secrets.common.yubikeys) cfg1 cfg2;
|
||||
in
|
||||
{
|
||||
options.swarselsystems.modules.yubikey = lib.mkEnableOption "yubikey config";
|
||||
config = lib.mkIf config.swarselsystems.modules.yubikey {
|
||||
options.swarselmodules.yubikey = lib.mkEnableOption "yubikey config";
|
||||
config = lib.mkIf config.swarselmodules.yubikey {
|
||||
programs.ssh.startAgent = false;
|
||||
|
||||
services.pcscd.enable = false;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.interceptionTools = lib.mkEnableOption "interception tools config";
|
||||
config = lib.mkIf config.swarselsystems.modules.interceptionTools {
|
||||
options.swarselmodules.interceptionTools = lib.mkEnableOption "interception tools config";
|
||||
config = lib.mkIf config.swarselmodules.interceptionTools {
|
||||
# Make CAPS work as a dual function ESC/CTRL key
|
||||
services.interception-tools = {
|
||||
enable = true;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.lid = lib.mkEnableOption "lid config";
|
||||
config = lib.mkIf config.swarselsystems.modules.lid {
|
||||
options.swarselmodules.lid = lib.mkEnableOption "lid config";
|
||||
config = lib.mkIf config.swarselmodules.lid {
|
||||
services.logind = {
|
||||
lidSwitch = "suspend";
|
||||
lidSwitchDocked = "ignore";
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.login = lib.mkEnableOption "login config";
|
||||
config = lib.mkIf config.swarselsystems.modules.login {
|
||||
options.swarselmodules.login = lib.mkEnableOption "login config";
|
||||
config = lib.mkIf config.swarselmodules.login {
|
||||
services.greetd = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.lowBattery = lib.mkEnableOption "low battery notification config";
|
||||
config = lib.mkIf config.swarselsystems.modules.lowBattery {
|
||||
options.swarselmodules.lowBattery = lib.mkEnableOption "low battery notification config";
|
||||
config = lib.mkIf config.swarselmodules.lowBattery {
|
||||
systemd.user.services."battery-low" = {
|
||||
enable = true;
|
||||
description = "Timer for battery check that alerts at 10% or less";
|
||||
|
|
|
|||
|
|
@ -10,10 +10,10 @@ let
|
|||
in
|
||||
{
|
||||
options.swarselsystems = {
|
||||
modules.network = lib.mkEnableOption "network config";
|
||||
firewall = lib.swarselsystems.mkTrueOption;
|
||||
};
|
||||
config = lib.mkIf config.swarselsystems.modules.network {
|
||||
options.swarselmodules.network = lib.mkEnableOption "network config";
|
||||
config = lib.mkIf config.swarselmodules.network {
|
||||
|
||||
sops = {
|
||||
secrets = lib.mkIf (!config.swarselsystems.isPublic) {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.networkDevices = lib.mkEnableOption "network device config";
|
||||
config = lib.mkIf config.swarselsystems.modules.networkDevices {
|
||||
options.swarselmodules.networkDevices = lib.mkEnableOption "network device config";
|
||||
config = lib.mkIf config.swarselmodules.networkDevices {
|
||||
# enable scanners over network
|
||||
hardware.sane = {
|
||||
enable = true;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.nix-ld = lib.mkEnableOption "nix-ld config";
|
||||
config = lib.mkIf config.swarselsystems.modules.nix-ld {
|
||||
options.swarselmodules.nix-ld = lib.mkEnableOption "nix-ld config";
|
||||
config = lib.mkIf config.swarselmodules.nix-ld {
|
||||
programs.nix-ld = {
|
||||
enable = true;
|
||||
libraries = with pkgs; [
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.nvd = lib.mkEnableOption "nvd config";
|
||||
config = lib.mkIf config.swarselsystems.modules.nvd {
|
||||
options.swarselmodules.nvd = lib.mkEnableOption "nvd config";
|
||||
config = lib.mkIf config.swarselmodules.nvd {
|
||||
|
||||
environment.systemPackages = [
|
||||
pkgs.nvd
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, pkgs, minimal, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.packages = lib.mkEnableOption "install packages";
|
||||
config = lib.mkIf config.swarselsystems.modules.packages {
|
||||
options.swarselmodules.packages = lib.mkEnableOption "install packages";
|
||||
config = lib.mkIf config.swarselmodules.packages {
|
||||
|
||||
environment.systemPackages = with pkgs; lib.optionals (!minimal) [
|
||||
# yubikey packages
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.pipewire = lib.mkEnableOption "pipewire config";
|
||||
config = lib.mkIf config.swarselsystems.modules.pipewire {
|
||||
options.swarselmodules.pipewire = lib.mkEnableOption "pipewire config";
|
||||
config = lib.mkIf config.swarselmodules.pipewire {
|
||||
security.rtkit.enable = true; # this is required for pipewire real-time access
|
||||
|
||||
services.pipewire = {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, minimal, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.security = lib.mkEnableOption "security config";
|
||||
config = lib.mkIf config.swarselsystems.modules.security {
|
||||
options.swarselmodules.security = lib.mkEnableOption "security config";
|
||||
config = lib.mkIf config.swarselmodules.security {
|
||||
|
||||
security = {
|
||||
pam.services = lib.mkIf (!minimal) {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.ppd = lib.mkEnableOption "power profiles daemon config";
|
||||
config = lib.mkIf config.swarselsystems.modules.ppd {
|
||||
options.swarselmodules.ppd = lib.mkEnableOption "power profiles daemon config";
|
||||
config = lib.mkIf config.swarselmodules.ppd {
|
||||
services.power-profiles-daemon.enable = true;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.programs = lib.mkEnableOption "small program modules config";
|
||||
config = lib.mkIf config.swarselsystems.modules.programs {
|
||||
options.swarselmodules.programs = lib.mkEnableOption "small program modules config";
|
||||
config = lib.mkIf config.swarselmodules.programs {
|
||||
programs = {
|
||||
dconf.enable = true;
|
||||
evince.enable = true;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ config, pkgs, lib, ... }: {
|
||||
|
||||
options.swarselsystems.modules.pulseaudio = lib.mkEnableOption "pulseaudio config";
|
||||
config = lib.mkIf config.swarselsystems.modules.pulseaudio {
|
||||
options.swarselmodules.pulseaudio = lib.mkEnableOption "pulseaudio config";
|
||||
config = lib.mkIf config.swarselmodules.pulseaudio {
|
||||
services.pulseaudio = {
|
||||
enable = lib.mkIf (!config.services.pipewire.enable) true;
|
||||
package = pkgs.pulseaudioFull;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ config, lib, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.sops = lib.mkEnableOption "sops config";
|
||||
config = lib.mkIf config.swarselsystems.modules.sops {
|
||||
options.swarselmodules.sops = lib.mkEnableOption "sops config";
|
||||
config = lib.mkIf config.swarselmodules.sops {
|
||||
sops = {
|
||||
|
||||
# age.sshKeyPaths = lib.swarselsystems.mkIfElseList config.swarselsystems.isBtrfs [ "/persist/.ssh/sops" "/persist/.ssh/ssh_host_ed25519_key" ] [ "${config.swarselsystems.homeDir}/.ssh/sops" "/etc/ssh/sops" "/etc/ssh/ssh_host_ed25519_key" ];
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
{ self, lib, config, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.stylix = lib.mkEnableOption "stylix config";
|
||||
options.swarselmodules.stylix = lib.mkEnableOption "stylix config";
|
||||
config = {
|
||||
stylix = {
|
||||
enable = true;
|
||||
base16Scheme = "${self}/files/stylix/swarsel.yaml";
|
||||
} // lib.optionalAttrs config.swarselsystems.modules.stylix
|
||||
} // lib.optionalAttrs config.swarselmodules.stylix
|
||||
(lib.recursiveUpdate
|
||||
{
|
||||
targets.grub.enable = false; # the styling makes grub more ugly
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.sway = lib.mkEnableOption "sway config";
|
||||
config = lib.mkIf config.swarselsystems.modules.sway {
|
||||
options.swarselmodules.sway = lib.mkEnableOption "sway config";
|
||||
config = lib.mkIf config.swarselmodules.sway {
|
||||
programs.sway = {
|
||||
enable = true;
|
||||
package = pkgs.dev.swayfx;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, pkgs, config, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.swayosd = lib.mkEnableOption "swayosd settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.swayosd {
|
||||
options.swarselmodules.swayosd = lib.mkEnableOption "swayosd settings";
|
||||
config = lib.mkIf config.swarselmodules.swayosd {
|
||||
environment.systemPackages = [ pkgs.dev.swayosd ];
|
||||
services.udev.packages = [ pkgs.dev.swayosd ];
|
||||
systemd.services.swayosd-libinput-backend = {
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@ let
|
|||
inherit (config.swarselsystems) mainUser homeDir;
|
||||
in
|
||||
{
|
||||
options.swarselsystems.modules.syncthing = lib.mkEnableOption "syncthing config";
|
||||
config = lib.mkIf config.swarselsystems.modules.syncthing {
|
||||
options.swarselmodules.syncthing = lib.mkEnableOption "syncthing config";
|
||||
config = lib.mkIf config.swarselmodules.syncthing {
|
||||
services.syncthing = {
|
||||
enable = true;
|
||||
package = pkgs.stable.syncthing;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.systemdTimeout = lib.mkEnableOption "systemd timeout config";
|
||||
config = lib.mkIf config.swarselsystems.modules.systemdTimeout {
|
||||
options.swarselmodules.systemdTimeout = lib.mkEnableOption "systemd timeout config";
|
||||
config = lib.mkIf config.swarselmodules.systemdTimeout {
|
||||
# systemd
|
||||
systemd.extraConfig = ''
|
||||
DefaultTimeoutStartSec=60s
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.xdg-portal = lib.mkEnableOption "xdg portal config";
|
||||
config = lib.mkIf config.swarselsystems.modules.xdg-portal {
|
||||
options.swarselmodules.xdg-portal = lib.mkEnableOption "xdg portal config";
|
||||
config = lib.mkIf config.swarselmodules.xdg-portal {
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
config = {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, pkgs, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.zsh = lib.mkEnableOption "zsh base config";
|
||||
config = lib.mkIf config.swarselsystems.modules.zsh {
|
||||
options.swarselmodules.zsh = lib.mkEnableOption "zsh base config";
|
||||
config = lib.mkIf config.swarselmodules.zsh {
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
enableCompletion = false;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ self, inputs, config, lib, outputs, globals, nodes, minimal, configName, ... }:
|
||||
{ self, inputs, config, lib, outputs, globals, options, nodes, minimal, configName, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.home-manager = lib.mkEnableOption "home-manager";
|
||||
config = lib.mkIf config.swarselsystems.modules.home-manager {
|
||||
options.swarselmodules.home-manager = lib.mkEnableOption "home-manager";
|
||||
config = lib.mkIf config.swarselmodules.home-manager {
|
||||
home-manager = lib.mkIf config.swarselsystems.withHomeManager {
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
|
|
@ -14,6 +14,11 @@
|
|||
imports = [
|
||||
"${self}/profiles/home"
|
||||
"${self}/modules/home"
|
||||
{
|
||||
swarselprofiles = {
|
||||
minimal = lib.mkIf minimal true;
|
||||
};
|
||||
}
|
||||
# "${self}/modules/nixos/common/pii.nix"
|
||||
# "${self}/modules/nixos/common/meta.nix"
|
||||
];
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@ let
|
|||
inherit (config.swarselsystems) isImpermanence isCrypted;
|
||||
in
|
||||
{
|
||||
options.swarselsystems.modules.impermanence = lib.mkEnableOption "impermanence config";
|
||||
config = lib.mkIf config.swarselsystems.modules.impermanence {
|
||||
options.swarselmodules.impermanence = lib.mkEnableOption "impermanence config";
|
||||
config = lib.mkIf config.swarselmodules.impermanence {
|
||||
|
||||
|
||||
security.sudo.extraConfig = lib.mkIf isImpermanence ''
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, pkgs, config, minimal, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.lanzaboote = lib.mkEnableOption "lanzaboote config";
|
||||
config = lib.mkIf config.swarselsystems.modules.lanzaboote {
|
||||
options.swarselmodules.lanzaboote = lib.mkEnableOption "lanzaboote config";
|
||||
config = lib.mkIf config.swarselmodules.lanzaboote {
|
||||
|
||||
environment.systemPackages = lib.mkIf config.swarselsystems.isSecureBoot [
|
||||
pkgs.sbctl
|
||||
|
|
|
|||
|
|
@ -58,9 +58,9 @@ in
|
|||
description = "Exposes the loaded repo secrets. This option is read-only.";
|
||||
};
|
||||
};
|
||||
swarselsystems.modules.pii = lib.mkEnableOption "enable pii management";
|
||||
swarselmodules.pii = lib.mkEnableOption "enable pii management";
|
||||
};
|
||||
config = lib.mkIf config.swarselsystems.modules.pii {
|
||||
config = lib.mkIf config.swarselmodules.pii {
|
||||
repo.secretFiles =
|
||||
let
|
||||
local = config.node.secretsDir + "/pii.nix.enc";
|
||||
|
|
|
|||
|
|
@ -52,8 +52,8 @@ let
|
|||
};
|
||||
in
|
||||
{
|
||||
options.swarselsystems.modules.general = lib.mkEnableOption "general nix settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.general
|
||||
options.swarselmodules.general = lib.mkEnableOption "general nix settings";
|
||||
config = lib.mkIf config.swarselmodules.general
|
||||
(lib.recursiveUpdate
|
||||
{
|
||||
sops.secrets.github-api-token = lib.mkIf (!minimal) {
|
||||
|
|
|
|||
|
|
@ -1,27 +0,0 @@
|
|||
{ lib, ... }:
|
||||
{
|
||||
options = {
|
||||
swarselsystems = {
|
||||
withHomeManager = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
};
|
||||
isSwap = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
};
|
||||
swapSize = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "8G";
|
||||
};
|
||||
rootDisk = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "";
|
||||
};
|
||||
isCrypted = lib.mkEnableOption "uses full disk encryption";
|
||||
|
||||
isImpermanence = lib.mkEnableOption "use impermanence on this system";
|
||||
isSecureBoot = lib.mkEnableOption "use secure boot on this system";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.time = lib.mkEnableOption "time config";
|
||||
config = lib.mkIf config.swarselsystems.modules.time {
|
||||
options.swarselmodules.time = lib.mkEnableOption "time config";
|
||||
config = lib.mkIf config.swarselmodules.time {
|
||||
time = {
|
||||
timeZone = "Europe/Vienna";
|
||||
# hardwareClockInLocalTime = true;
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@ let
|
|||
sopsFile = self + /secrets/general/secrets.yaml;
|
||||
in
|
||||
{
|
||||
options.swarselsystems.modules.users = lib.mkEnableOption "user config";
|
||||
config = lib.mkIf config.swarselsystems.modules.users {
|
||||
options.swarselmodules.users = lib.mkEnableOption "user config";
|
||||
config = lib.mkIf config.swarselmodules.users {
|
||||
sops.secrets.main-user-hashed-pw = lib.mkIf (!config.swarselsystems.isPublic) { inherit sopsFile; neededForUsers = true; };
|
||||
|
||||
users = {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.xserver = lib.mkEnableOption "xserver keymap";
|
||||
config = lib.mkIf config.swarselsystems.modules.packages {
|
||||
options.swarselmodules.xserver = lib.mkEnableOption "xserver keymap";
|
||||
config = lib.mkIf config.swarselmodules.packages {
|
||||
services.xserver = {
|
||||
xkb = {
|
||||
layout = "us";
|
||||
|
|
|
|||
|
|
@ -6,8 +6,8 @@ in
|
|||
imports = [
|
||||
];
|
||||
|
||||
options.swarselsystems.modules.darwin.general = lib.mkEnableOption "darwin config";
|
||||
config = lib.mkIf config.swarselsystems.modules.darwin.general {
|
||||
options.swarselmodules.optional.darwin = lib.mkEnableOption "optional darwin settings";
|
||||
config = lib.mkIf config.swarselmodules.optional.darwin {
|
||||
nix.settings.experimental-features = "nix-command flakes";
|
||||
nixpkgs = {
|
||||
hostPlatform = "x86_64-darwin";
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.optional.amdcpu = lib.mkEnableOption "optional amd cpu settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.optional.amdcpu {
|
||||
options.swarselmodules.optional.amdcpu = lib.mkEnableOption "optional amd cpu settings";
|
||||
config = lib.mkIf config.swarselmodules.optional.amdcpu {
|
||||
hardware = {
|
||||
cpu.amd.updateMicrocode = true;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.optional.amdgpu = lib.mkEnableOption "optional amd gpu settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.optional.amdgpu {
|
||||
options.swarselmodules.optional.amdgpu = lib.mkEnableOption "optional amd gpu settings";
|
||||
config = lib.mkIf config.swarselmodules.optional.amdgpu {
|
||||
hardware = {
|
||||
amdgpu = {
|
||||
opencl.enable = true;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
options.swarselsystems.modules.optional.btrfs = lib.mkEnableOption "optional btrfs settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.optional.btrfs {
|
||||
options.swarselmodules.optional.btrfs = lib.mkEnableOption "optional btrfs settings";
|
||||
config = lib.mkIf config.swarselmodules.optional.btrfs {
|
||||
boot = {
|
||||
supportedFilesystems = [ "btrfs" ];
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,10 +1,7 @@
|
|||
{ self, lib, ... }:
|
||||
{ lib, ... }:
|
||||
let
|
||||
importNames = lib.swarselsystems.readNix "modules/nixos/optional";
|
||||
modulesPath = "${self}/modules";
|
||||
in
|
||||
{
|
||||
imports = lib.swarselsystems.mkImports importNames "modules/nixos/optional" ++ [
|
||||
"${modulesPath}/home/common/sharedsetup.nix"
|
||||
];
|
||||
imports = lib.swarselsystems.mkImports importNames "modules/nixos/optional";
|
||||
}
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue