refactor: WIP

This commit is contained in:
Leon Schwarzäugl 2025-03-31 18:29:07 +02:00
parent 289f072c13
commit ecd37537cc
Signed by: swarsel
GPG key ID: 26A54C31F2A4FD84
53 changed files with 2370 additions and 1932 deletions

File diff suppressed because it is too large Load diff

View file

@ -23,6 +23,7 @@ in
"${modulesPath}/nixos/optional/nswitch-rcm.nix" "${modulesPath}/nixos/optional/nswitch-rcm.nix"
"${modulesPath}/nixos/optional/gaming.nix" "${modulesPath}/nixos/optional/gaming.nix"
"${modulesPath}/nixos/optional/work.nix" "${modulesPath}/nixos/optional/work.nix"
"${self}/profiles/nixos"
inputs.home-manager.nixosModules.home-manager inputs.home-manager.nixosModules.home-manager
{ {
@ -90,6 +91,7 @@ in
swarselsystems = lib.recursiveUpdate swarselsystems = lib.recursiveUpdate
{ {
profiles.personal = true;
wallpaper = self + /wallpaper/lenovowp.png; wallpaper = self + /wallpaper/lenovowp.png;
hasBluetooth = true; hasBluetooth = true;
hasFingerprint = true; hasFingerprint = true;

View file

@ -26,6 +26,11 @@ in
} }
); );
mkTrueOption = lib.mkOption {
type = lib.types.bool;
default = true;
};
getSecret = filename: lib.strings.trim (builtins.readFile "${filename}"); getSecret = filename: lib.strings.trim (builtins.readFile "${filename}");
forEachSystem = f: lib.genAttrs (import systems) (system: f lib.swarselsystems.pkgsFor.${system}); forEachSystem = f: lib.genAttrs (import systems) (system: f lib.swarselsystems.pkgsFor.${system});
@ -132,6 +137,13 @@ in
}) })
names); names);
mkProfiles = names: type: builtins.listToAttrs (map
(name: {
inherit name;
value = import "${self}/profiles/${type}/${name}";
})
names);
mkTemplates = names: builtins.listToAttrs (map mkTemplates = names: builtins.listToAttrs (map
(name: { (name: {
inherit name; inherit name;

View file

@ -23,6 +23,7 @@
xdg.configFile = { xdg.configFile = {
"tridactyl/tridactylrc".source = self + /programs/firefox/tridactyl/tridactylrc; "tridactyl/tridactylrc".source = self + /programs/firefox/tridactyl/tridactylrc;
"tridactyl/themes/base16-codeschool.css".source = self + /programs/firefox/tridactyl/themes/base16-codeschool.css; "tridactyl/themes/base16-codeschool.css".source = self + /programs/firefox/tridactyl/themes/base16-codeschool.css;
"tridactyl/themes/swarsel.css".source = self + /programs/firefox/tridactyl/themes/swarsel.css;
"swayidle/config".source = self + /programs/swayidle/config; "swayidle/config".source = self + /programs/swayidle/config;
}; };
} }

View file

@ -1,9 +1,11 @@
_: { lib, config, ... }:
{ {
options.swarselsystems.modules.appimage = lib.mkEnableOption "appimage config";
config = lib.mkIf config.swarselsystems.modules.appimage {
programs.appimage = { programs.appimage = {
enable = true; enable = true;
binfmt = true; binfmt = true;
}; };
};
} }

View file

@ -1,5 +1,8 @@
_: { lib, config, ... }:
{ {
options.swarselsystems.modules.blueman = lib.mkEnableOption "blueman config";
config = lib.mkIf config.swarselsystems.modules.blueman {
services.blueman.enable = true; services.blueman.enable = true;
services.hardware.bolt.enable = true; services.hardware.bolt.enable = true;
};
} }

View file

@ -8,10 +8,5 @@ in
"${modulesPath}/home/common/sharedsetup.nix" "${modulesPath}/home/common/sharedsetup.nix"
]; ];
nixpkgs.config.permittedInsecurePackages = [
"jitsi-meet-1.0.8043"
"electron-29.4.6"
"SDL_ttf-2.0.11"
];
} }

View file

@ -1,5 +1,7 @@
{ pkgs, ... }: { lib, config, pkgs, ... }:
{ {
options.swarselsystems.modules.distrobox = lib.mkEnableOption "distrobox config";
config = lib.mkIf config.swarselsystems.modules.distrobox {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
distrobox distrobox
boxbuddy boxbuddy
@ -10,5 +12,5 @@
dockerCompat = true; dockerCompat = true;
package = pkgs.stable.podman; package = pkgs.stable.podman;
}; };
};
} }

View file

@ -1,5 +1,7 @@
{ lib, pkgs, ... }: { lib, config, pkgs, ... }:
{ {
options.swarselsystems.modules.env = lib.mkEnableOption "environment config";
config = lib.mkIf config.swarselsystems.modules.env {
environment = { environment = {
wordlist.enable = true; wordlist.enable = true;
sessionVariables = { sessionVariables = {
@ -12,5 +14,5 @@
]); ]);
}; };
}; };
# gstreamer plugins for nautilus (used for file metadata) };
} }

View file

@ -1,9 +1,12 @@
_: { lib, config, ... }:
{ {
options.swarselsystems.modules.gc = lib.mkEnableOption "garbage collection config";
config = lib.mkIf config.swarselsystems.modules.gc {
nix.gc = { nix.gc = {
automatic = true; automatic = true;
randomizedDelaySec = "14m"; randomizedDelaySec = "14m";
dates = "weekly"; dates = "weekly";
options = "--delete-older-than 10d"; options = "--delete-older-than 10d";
}; };
};
} }

View file

@ -1,8 +1,11 @@
_: { lib, config, ... }:
{ {
options.swarselsystems.modules.gnome-keyring = lib.mkEnableOption "gnome-keyring config";
config = lib.mkIf config.swarselsystems.modules.gnome-keyring {
services.gnome.gnome-keyring = { services.gnome.gnome-keyring = {
enable = true; enable = true;
}; };
programs.seahorse.enable = true; programs.seahorse.enable = true;
};
} }

View file

@ -1,4 +1,7 @@
_: { lib, config, ... }:
{ {
options.swarselsystems.modules.gvfs = lib.mkEnableOption "gvfs config for nautilus";
config = lib.mkIf config.swarselsystems.modules.gvfs {
services.gvfs.enable = true; services.gvfs.enable = true;
};
} }

View file

@ -2,6 +2,7 @@
{ {
options.swarselsystems = { options.swarselsystems = {
modules.hardware = lib.mkEnableOption "hardware config";
hasBluetooth = lib.mkEnableOption "bluetooth availability"; hasBluetooth = lib.mkEnableOption "bluetooth availability";
hasFingerprint = lib.mkEnableOption "fingerprint sensor availability"; hasFingerprint = lib.mkEnableOption "fingerprint sensor availability";
trackpoint = { trackpoint = {
@ -12,7 +13,7 @@
}; };
}; };
}; };
config = { config = lib.mkIf config.swarselsystems.modules.hardware {
hardware = { hardware = {
# opengl.driSupport32Bit = true is replaced with graphics.enable32Bit and hence redundant # opengl.driSupport32Bit = true is replaced with graphics.enable32Bit and hence redundant
graphics = { graphics = {

View file

@ -1,8 +1,11 @@
{ pkgs, ... }: { lib, config, pkgs, ... }:
{ {
options.swarselsystems.modules.keyboards = lib.mkEnableOption "keyboards config";
config = lib.mkIf config.swarselsystems.modules.keyboards {
services.udev.packages = with pkgs; [ services.udev.packages = with pkgs; [
qmk-udev-rules qmk-udev-rules
vial vial
via via
]; ];
};
} }

View file

@ -1,9 +1,12 @@
{ pkgs, ... }: { lib, config, pkgs, ... }:
{ {
options.swarselsystems.modules.ledger = lib.mkEnableOption "ledger config";
config = lib.mkIf config.swarselsystems.modules.ledger {
hardware.ledger.enable = true; hardware.ledger.enable = true;
services.udev.packages = with pkgs; [ services.udev.packages = with pkgs; [
ledger-udev-rules ledger-udev-rules
]; ];
};
} }

View file

@ -1,5 +1,7 @@
{ pkgs, ... }: { lib, config, pkgs, ... }:
{ {
options.swarselsystems.modules.yubikey = lib.mkEnableOption "yubikey config";
config = lib.mkIf config.swarselsystems.modules.yubikey {
programs.ssh.startAgent = false; programs.ssh.startAgent = false;
services.pcscd.enable = false; services.pcscd.enable = false;
@ -10,12 +12,5 @@
yubikey-personalization yubikey-personalization
]; ];
# systemd.services.shutdownSopsGpg = { };
# path = [ pkgs.gnupg ];
# script = ''
# gpgconf --homedir /var/lib/sops --kill gpg-agent
# '';
# wantedBy = [ "multi-user.target" ];
# };
} }

View file

@ -1,6 +1,9 @@
{ inputs, config, lib, ... }: { inputs, config, lib, ... }:
{ {
options.swarselsystems.modules.home-managerExtra = lib.mkEnableOption "home-manager extras for non-chaostheatre";
config = lib.mkIf config.swarselsystems.modules.home-managerExtra {
home-manager = lib.mkIf config.swarselsystems.withHomeManager { home-manager = lib.mkIf config.swarselsystems.withHomeManager {
extraSpecialArgs = { inherit (inputs) nix-secrets nixgl; }; extraSpecialArgs = { inherit (inputs) nix-secrets nixgl; };
}; };
};
} }

View file

@ -1,8 +1,12 @@
{ inputs, config, lib, ... }: { inputs, config, lib, ... }:
{ {
options.swarselsystems.modules.home-manager = lib.mkEnableOption "home-manager";
config = lib.mkIf config.swarselsystems.modules.home-manager {
home-manager = lib.mkIf config.swarselsystems.withHomeManager { home-manager = lib.mkIf config.swarselsystems.withHomeManager {
useGlobalPkgs = true; useGlobalPkgs = true;
useUserPackages = true; useUserPackages = true;
extraSpecialArgs = { inherit (inputs) self; }; extraSpecialArgs = { inherit (inputs) self; };
}; };
};
} }

View file

@ -4,6 +4,8 @@ let
inherit (config.swarselsystems) homeDir isImpermanence isCrypted; inherit (config.swarselsystems) homeDir isImpermanence isCrypted;
in in
{ {
options.swarselsystems.modules.impermanence = lib.mkEnableOption "impermanence config";
config = lib.mkIf config.swarselsystems.modules.impermanence {
security.sudo.extraConfig = lib.mkIf isImpermanence '' security.sudo.extraConfig = lib.mkIf isImpermanence ''
# rollback results in sudo lectures after each reboot # rollback results in sudo lectures after each reboot
@ -87,5 +89,6 @@ in
"/etc/ssh/ssh_host_rsa_key.pub" "/etc/ssh/ssh_host_rsa_key.pub"
]; ];
}; };
};
} }

View file

@ -1,5 +1,7 @@
{ pkgs, ... }: { lib, config, pkgs, ... }:
{ {
options.swarselsystems.modules.interceptionTools = lib.mkEnableOption "interception tools config";
config = lib.mkIf config.swarselsystems.modules.interceptionTools {
# Make CAPS work as a dual function ESC/CTRL key # Make CAPS work as a dual function ESC/CTRL key
services.interception-tools = { services.interception-tools = {
enable = true; enable = true;
@ -26,4 +28,5 @@
EV_KEY: [KEY_CAPSLOCK] EV_KEY: [KEY_CAPSLOCK]
''; '';
}; };
};
} }

View file

@ -1,5 +1,7 @@
{ lib, config, ... }: { lib, config, ... }:
{ {
options.swarselsystems.modules.lanzaboote = lib.mkEnableOption "lanzaboote config";
config = lib.mkIf config.swarselsystems.modules.lanzaboote {
boot = { boot = {
loader = { loader = {
efi.canTouchEfiVariables = true; efi.canTouchEfiVariables = true;
@ -11,4 +13,5 @@
configurationLimit = 3; configurationLimit = 3;
}; };
}; };
};
} }

View file

@ -1,5 +1,7 @@
_: { lib, config, ... }:
{ {
options.swarselsystems.modules.lid = lib.mkEnableOption "lid config";
config = lib.mkIf config.swarselsystems.modules.lid {
services.logind = { services.logind = {
lidSwitch = "suspend"; lidSwitch = "suspend";
lidSwitchDocked = "ignore"; lidSwitchDocked = "ignore";
@ -31,4 +33,5 @@ _:
''; '';
}; };
}; };
};
} }

View file

@ -1,5 +1,7 @@
{ pkgs, ... }: { lib, config, pkgs, ... }:
{ {
options.swarselsystems.modules.login = lib.mkEnableOption "login config";
config = lib.mkIf config.swarselsystems.modules.login {
services.greetd = { services.greetd = {
enable = true; enable = true;
settings = { settings = {
@ -17,4 +19,5 @@
environment.etc."greetd/environments".text = '' environment.etc."greetd/environments".text = ''
sway sway
''; '';
};
} }

View file

@ -1,5 +1,7 @@
{ pkgs, lib, ... }: { pkgs, lib, config, ... }:
{ {
options.swarselsystems.modules.lowBattery = lib.mkEnableOption "low battery notification config";
config = lib.mkIf config.swarselsystems.modules.lowBattery {
systemd.user.services."battery-low" = { systemd.user.services."battery-low" = {
enable = true; enable = true;
description = "Timer for battery check that alerts at 10% or less"; description = "Timer for battery check that alerts at 10% or less";
@ -23,4 +25,5 @@
Unit = "battery-low.service"; Unit = "battery-low.service";
}; };
}; };
};
} }

View file

@ -1,5 +1,7 @@
{ lib, config, ... }: { lib, config, ... }:
{ {
options.swarselsystems.modules.network = lib.mkEnableOption "network config";
config = lib.mkIf config.swarselsystems.modules.network {
networking = { networking = {
nftables.enable = lib.mkDefault true; nftables.enable = lib.mkDefault true;
enableIPv6 = lib.mkDefault true; enableIPv6 = lib.mkDefault true;
@ -242,4 +244,5 @@
}; };
systemd.services.NetworkManager-ensure-profiles.after = [ "NetworkManager.service" ]; systemd.services.NetworkManager-ensure-profiles.after = [ "NetworkManager.service" ];
};
} }

View file

@ -1,5 +1,7 @@
{ pkgs, ... }: { lib, config, pkgs, ... }:
{ {
options.swarselsystems.modules.networkDevices = lib.mkEnableOption "network device config";
config = lib.mkIf config.swarselsystems.modules.networkDevices {
# enable scanners over network # enable scanners over network
hardware.sane = { hardware.sane = {
enable = true; enable = true;
@ -27,4 +29,5 @@
nssmdns4 = true; nssmdns4 = true;
openFirewall = true; openFirewall = true;
}; };
};
} }

View file

@ -1,5 +1,7 @@
{ pkgs, ... }: { lib, config, pkgs, ... }:
{ {
options.swarselsystems.modules.nix-ld = lib.mkEnableOption "nix-ld config";
config = lib.mkIf config.swarselsystems.modules.nix-ld {
programs.nix-ld = { programs.nix-ld = {
enable = true; enable = true;
libraries = with pkgs; [ libraries = with pkgs; [
@ -107,4 +109,5 @@
zlib zlib
]; ];
}; };
};
} }

View file

@ -1,5 +1,7 @@
{ pkgs, ... }: { lib, config, pkgs, ... }:
{ {
options.swarselsystems.modules.nvd = lib.mkEnableOption "nvd config";
config = lib.mkIf config.swarselsystems.modules.nvd {
system.activationScripts.diff = { system.activationScripts.diff = {
supportsDryActivation = true; supportsDryActivation = true;
text = '' text = ''
@ -7,4 +9,5 @@
/run/current-system "$systemConfig" /run/current-system "$systemConfig"
''; '';
}; };
};
} }

View file

@ -1,5 +1,7 @@
{ pkgs, ... }: { lib, config, pkgs, ... }:
{ {
options.swarselsystems.modules.packages = lib.mkEnableOption "install packages";
config = lib.mkIf config.swarselsystems.modules.packages {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
# yubikey packages # yubikey packages
gnupg gnupg
@ -63,61 +65,19 @@
# bluetooth # bluetooth
bluez bluez
# lsp-related -------------------------------
# nix
# latex
# texlab
ghostscript_headless ghostscript_headless
# wireguard
wireguard-tools wireguard-tools
# rust
# rust-analyzer
# clippy
# rustfmt
# go
# go
# gopls
# nix
nixd nixd
# zig
zig zig
zls zls
# cpp
# clang-tools
# + cuda
# cudatoolkit
# ansible
# ansible-lint
ansible-language-server ansible-language-server
# molecule
#lsp-bridge / python
# gcc
# gdb
# (python3.withPackages (ps: with ps; [ jupyter ipython pyqt5 epc orjson sexpdata six setuptools paramiko numpy pandas scipy matplotlib requests debugpy flake8 gnureadline python-lsp-server ]))
# (python3.withPackages(ps: with ps; [ jupyter ipython pyqt5 numpy pandas scipy matplotlib requests debugpy flake8 gnureadline python-lsp-server]))
# --------------------------------------------
# (stdenv.mkDerivation {
# name = "oama";
# src = pkgs.fetchurl {
# name = "oama";
# url = "https://github.com/pdobsan/oama/releases/download/0.13.1/oama-0.13.1-Linux-x86_64-static.tgz";
# sha256 = "sha256-OTdCObVfnMPhgZxVtZqehgUXtKT1iyqozdkPIV+i3Gc=";
# };
# phases = [
# "unpackPhase"
# ];
# unpackPhase = ''
# mkdir -p $out/bin
# tar xvf $src -C $out/
# mv $out/oama-0.13.1-Linux-x86_64-static/oama $out/bin/
# '';
# })
]; ];
nixpkgs.config.permittedInsecurePackages = [
"jitsi-meet-1.0.8043"
"electron-29.4.6"
"SDL_ttf-2.0.11"
];
};
} }

View file

@ -1,4 +1,7 @@
_: { { lib, config, ... }:
{
options.swarselsystems.modules.pipewire = lib.mkEnableOption "pipewire config";
config = lib.mkIf config.swarselsystems.modules.pipewire {
security.rtkit.enable = true; # this is required for pipewire real-time access security.rtkit.enable = true; # this is required for pipewire real-time access
services.pipewire = { services.pipewire = {
@ -12,4 +15,5 @@ _: {
support32Bit = true; support32Bit = true;
}; };
}; };
};
} }

View file

@ -1,5 +1,7 @@
_: { lib, config, ... }:
{ {
options.swarselsystems.modules.security = lib.mkEnableOption "security config";
config = lib.mkIf config.swarselsystems.modules.security {
security = { security = {
pam.services = { pam.services = {
@ -16,5 +18,5 @@ _:
Defaults env_keep+=WAYLAND_DISPLAY Defaults env_keep+=WAYLAND_DISPLAY
''; '';
}; };
};
} }

View file

@ -1,4 +1,7 @@
_: { lib, config, ... }:
{ {
options.swarselsystems.modules.ppd = lib.mkEnableOption "power profiles daemon config";
config = lib.mkIf config.swarselsystems.modules.ppd {
services.power-profiles-daemon.enable = true; services.power-profiles-daemon.enable = true;
};
} }

View file

@ -1,8 +1,11 @@
_: { lib, config, ... }:
{ {
options.swarselsystems.modules.programs = lib.mkEnableOption "small program modules config";
config = lib.mkIf config.swarselsystems.modules.programs {
programs = { programs = {
dconf.enable = true; dconf.enable = true;
evince.enable = true; evince.enable = true;
kdeconnect.enable = true; kdeconnect.enable = true;
}; };
};
} }

View file

@ -1,8 +1,11 @@
{ config, pkgs, lib, ... }: { { config, pkgs, lib, ... }: {
options.swarselsystems.modules.pulseaudio = lib.mkEnableOption "pulseaudio config";
config = lib.mkIf config.swarselsystems.modules.pulseaudio {
services.pulseaudio = { services.pulseaudio = {
enable = lib.mkIf (!config.services.pipewire.enable) true; enable = lib.mkIf (!config.services.pipewire.enable) true;
package = pkgs.pulseaudioFull; package = pkgs.pulseaudioFull;
}; };
};
} }

View file

@ -1,6 +1,7 @@
{ lib, config, outputs, inputs, ... }: { lib, config, outputs, inputs, ... }:
{ {
options.swarselsystems.modules.general = lib.mkEnableOption "general nix settings";
config = lib.mkIf config.swarselsystems.modules.general {
nixpkgs = { nixpkgs = {
overlays = [ outputs.overlays.default ]; overlays = [ outputs.overlays.default ];
config = { config = {
@ -39,7 +40,6 @@
nixPath = lib.mapAttrsToList (n: _: "${n}=flake:${n}") flakeInputs; nixPath = lib.mapAttrsToList (n: _: "${n}=flake:${n}") flakeInputs;
}; };
system.stateVersion = lib.mkDefault "23.05"; system.stateVersion = lib.mkDefault "23.05";
};
} }

View file

@ -4,6 +4,8 @@ let
inherit (config.swarselsystems) mainUser homeDir; inherit (config.swarselsystems) mainUser homeDir;
in in
{ {
options.swarselsystems.modules.commonSops = lib.mkEnableOption "sops config";
config = lib.mkIf config.swarselsystems.modules.commonSops {
sops = lib.mkIf (!config.swarselsystems.isPublic) { sops = lib.mkIf (!config.swarselsystems.isPublic) {
age.sshKeyPaths = lib.swarselsystems.mkIfElseList config.swarselsystems.isBtrfs [ "/persist/.ssh/sops" "/persist/.ssh/ssh_host_ed25519_key" ] [ "${homeDir}/.ssh/sops" "/etc/ssh/ssh_host_ed25519_key" ]; age.sshKeyPaths = lib.swarselsystems.mkIfElseList config.swarselsystems.isBtrfs [ "/persist/.ssh/sops" "/persist/.ssh/ssh_host_ed25519_key" ] [ "${homeDir}/.ssh/sops" "/etc/ssh/ssh_host_ed25519_key" ];
@ -48,4 +50,5 @@ in
''; '';
}; };
}; };
};
} }

View file

@ -1,7 +1,10 @@
_: { lib, config, ... }:
{ {
options.swarselsystems.modules.storeOptimize = lib.mkEnableOption "store optimization config";
config = lib.mkIf config.swarselsystems.modules.storeOptimize {
nix.optimise = { nix.optimise = {
automatic = true; automatic = true;
dates = [ "weekly" ]; dates = [ "weekly" ];
}; };
};
} }

View file

@ -1,5 +1,7 @@
{ lib, config, ... }: { lib, config, ... }:
{ {
options.swarselsystems.modules.stylix = lib.mkEnableOption "stylix config";
config = lib.mkIf config.swarselsystems.modules.stylix {
stylix = lib.recursiveUpdate stylix = lib.recursiveUpdate
{ {
targets.grub.enable = false; # the styling makes grub more ugly targets.grub.enable = false; # the styling makes grub more ugly
@ -11,4 +13,5 @@
targets = config.swarselsystems.stylixHomeTargets; targets = config.swarselsystems.stylixHomeTargets;
}; };
}; };
};
} }

View file

@ -1,6 +1,7 @@
{ pkgs, ... }: { lib, config, pkgs, ... }:
{ {
options.swarselsystems.modules.sway = lib.mkEnableOption "sway config";
config = lib.mkIf config.swarselsystems.modules.sway {
programs.sway = { programs.sway = {
enable = true; enable = true;
package = pkgs.swayfx; package = pkgs.swayfx;
@ -19,5 +20,5 @@
export MOZ_DISABLE_RDD_SANDBOX=1 export MOZ_DISABLE_RDD_SANDBOX=1
''; '';
}; };
};
} }

View file

@ -3,6 +3,8 @@ let
inherit (config.swarselsystems) mainUser homeDir; inherit (config.swarselsystems) mainUser homeDir;
in in
{ {
options.swarselsystems.modules.syncthing = lib.mkEnableOption "syncthing config";
config = lib.mkIf config.swarselsystems.modules.syncthing {
services.syncthing = { services.syncthing = {
enable = true; enable = true;
user = mainUser; user = mainUser;
@ -50,4 +52,5 @@ in
}; };
}; };
}; };
};
} }

View file

@ -1,8 +1,11 @@
_: { lib, config, ... }:
{ {
options.swarselsystems.modules.systemdTimeout = lib.mkEnableOption "systemd timeout config";
config = lib.mkIf config.swarselsystems.modules.systemdTimeout {
# systemd # systemd
systemd.extraConfig = '' systemd.extraConfig = ''
DefaultTimeoutStartSec=60s DefaultTimeoutStartSec=60s
DefaultTimeoutStopSec=15s DefaultTimeoutStopSec=15s
''; '';
};
} }

View file

@ -1,5 +1,7 @@
_: { lib, config, ... }:
{ {
options.swarselsystems.modules.time = lib.mkEnableOption "time config";
config = lib.mkIf config.swarselsystems.modules.time {
time = { time = {
timeZone = "Europe/Vienna"; timeZone = "Europe/Vienna";
# hardwareClockInLocalTime = true; # hardwareClockInLocalTime = true;
@ -19,4 +21,5 @@ _:
LC_TIME = "de_AT.UTF-8"; LC_TIME = "de_AT.UTF-8";
}; };
}; };
};
} }

View file

@ -1,5 +1,7 @@
{ pkgs, config, lib, ... }: { pkgs, config, lib, ... }:
{ {
options.swarselsystems.modules.users = lib.mkEnableOption "user config";
config = lib.mkIf config.swarselsystems.modules.users {
sops.secrets.swarseluser = lib.mkIf (!config.swarselsystems.isPublic) { neededForUsers = true; }; sops.secrets.swarseluser = lib.mkIf (!config.swarselsystems.isPublic) { neededForUsers = true; };
users = { users = {
@ -13,4 +15,5 @@
packages = with pkgs; [ ]; packages = with pkgs; [ ];
}; };
}; };
};
} }

View file

@ -1,6 +1,7 @@
{ pkgs, ... }: { lib, config, pkgs, ... }:
{ {
options.swarselsystems.modules.xdg-portal = lib.mkEnableOption "xdg portal config";
config = lib.mkIf config.swarselsystems.modules.xdg-portal {
xdg.portal = { xdg.portal = {
enable = true; enable = true;
config = { config = {
@ -15,5 +16,5 @@
chooser_cmd = "${pkgs.slurp}/bin/slurp -f %o -or"; chooser_cmd = "${pkgs.slurp}/bin/slurp -f %o -or";
}; };
}; };
};
} }

View file

@ -1,9 +1,12 @@
_: { lib, config, ... }:
{ {
options.swarselsystems.modules.xserver = lib.mkEnableOption "xserver keymap";
config = lib.mkIf config.swarselsystems.modules.packages {
services.xserver = { services.xserver = {
xkb = { xkb = {
layout = "us"; layout = "us";
variant = "altgr-intl"; variant = "altgr-intl";
}; };
}; };
};
} }

View file

@ -1,7 +1,10 @@
{ pkgs, ... }: { lib, config, pkgs, ... }:
{ {
options.swarselsystems.modules.zsh = lib.mkEnableOption "zsh base config";
config = lib.mkIf config.swarselsystems.modules.zsh {
programs.zsh.enable = true; programs.zsh.enable = true;
users.defaultUserShell = pkgs.zsh; users.defaultUserShell = pkgs.zsh;
environment.shells = with pkgs; [ zsh ]; environment.shells = with pkgs; [ zsh ];
environment.pathsToLink = [ "/share/zsh" ]; environment.pathsToLink = [ "/share/zsh" ];
};
} }

View file

@ -2,4 +2,4 @@
let let
moduleNames = lib.swarselsystems.readNix "profiles/home"; moduleNames = lib.swarselsystems.readNix "profiles/home";
in in
lib.swarselsystems.mkModules moduleNames "home" lib.swarselsystems.mkProfiles moduleNames "home"

View file

@ -2,4 +2,4 @@
let let
moduleNames = lib.swarselsystems.readNix "profiles/nixos"; moduleNames = lib.swarselsystems.readNix "profiles/nixos";
in in
lib.swarselsystems.mkModules moduleNames "nixos" lib.swarselsystems.mkProfiles moduleNames "nixos"

View file

@ -0,0 +1,51 @@
{ lib, config, ... }:
{
options.swarselsystems.profiles.personalz = lib.mkEnableOption "is this a personal host";
config = lib.mkIf config.swarselsystems.profiles.personalz {
config.swarselsystems.modules = {
packages = lib.mkDefault true;
general = lib.mkDefault true;
home-manager = lib.mkDefault true;
home-managerExtra = lib.mkDefault true;
xserver = lib.mkDefault true;
users = lib.mkDefault true;
env = lib.mkDefault true;
security = lib.mkDefault true;
gc = lib.mkDefault true;
storeOptimize = lib.mkDefault true;
systemdTimeout = lib.mkDefault true;
hardware = lib.mkDefault true;
pulseaudio = lib.mkDefault true;
pipewire = lib.mkDefault true;
network = lib.mkDefault true;
time = lib.mkDefault true;
commonSops = lib.mkDefault true;
stylix = lib.mkDefault true;
programs = lib.mkDefault true;
zsh = lib.mkDefault true;
syncthing = lib.mkDefault true;
blueman = lib.mkDefault true;
networkDevices = lib.mkDefault true;
gvfs = lib.mkDefault true;
interceptionTools = lib.mkDefault true;
ppd = lib.mkDefault true;
yubikey = lib.mkDefault true;
ledger = lib.mkDefault true;
keyboards = lib.mkDefault true;
login = lib.mkDefault true;
nix-ld = lib.mkDefault true;
impermanence = lib.mkDefault true;
nvd = lib.mkDefault true;
gnome-keyring = lib.mkDefault true;
sway = lib.mkDefault true;
xdg-portal = lib.mkDefault true;
distrobox = lib.mkDefault true;
appimage = lib.mkDefault true;
lid = lib.mkDefault true;
lowBattery = lib.mkDefault true;
lanzaboote = lib.mkDefault true;
};
};
}

View file

@ -8,6 +8,24 @@ See the above repository for updates as well as full license text. */
:root{ :root{
--uc-autohide-toolbox-delay: 0ms; /* Wait 0.1s before hiding toolbars */ --uc-autohide-toolbox-delay: 0ms; /* Wait 0.1s before hiding toolbars */
--uc-toolbox-rotation: 107deg; /* This may need to be lower on mac - like 75 or so */ --uc-toolbox-rotation: 107deg; /* This may need to be lower on mac - like 75 or so */
--base00: #1D252C;
--base01: #171D23;
--base02: #5EC4FF;
--base03: #566C7D;
--base04: #5EC4FF;
--base05: #A0B3C5;
--base06: #C06ECE;
--base07: #A0B3C5;
--base08: #D95468;
--base09: #FFA880;
--base0A: #5EC4FF;
--base0B: #8BD49C;
--base0C: #008B94;
--base0D: #5EC4FF;
--base0E: #C06ECE;
--base0F: #5EC4FF;
} }
:root[sizemode="maximized"]{ :root[sizemode="maximized"]{

View file

@ -0,0 +1 @@
swarsel@nbl-imba-2.3038:1743148454

View file

@ -15,6 +15,7 @@ set searchurls.hm https://home-manager-options.extranix.com/?query=
set completions.Tab.statusstylepretty true set completions.Tab.statusstylepretty true
set hintfiltermode vimperator-reflow set hintfiltermode vimperator-reflow
set hintnames numeric set hintnames numeric
unbind --mode=hint <Space>
" Binds " Binds
bind <C-m> buffer # bind <C-m> buffer #
@ -47,6 +48,7 @@ bind gwm tab_or_tabopen monitoring.vbc.ac.at/grafana
bind gwM tab_or_tabopen monitoring.vbc.ac.at/prometheus bind gwM tab_or_tabopen monitoring.vbc.ac.at/prometheus
bind gwn tab_or_tabopen netbox.vbc.ac.at bind gwn tab_or_tabopen netbox.vbc.ac.at
bind gwN tab_or_tabopen nap.imp.ac.at bind gwN tab_or_tabopen nap.imp.ac.at
bind gwo tab_or_tabopen outlook.office.com bind gwo tab_or_tabopen outlook.office.com
bind gws tab_or_tabopen satellite.vbc.ac.at bind gws tab_or_tabopen satellite.vbc.ac.at
bind gwt tab_or_tabopen tower.vbc.ac.at bind gwt tab_or_tabopen tower.vbc.ac.at
@ -102,7 +104,7 @@ set allowautofocus false
jsb browser.webRequest.onHeadersReceived.addListener(tri.request.clobberCSP,{urls:["<all_urls>"],types:["main_frame"]},["blocking","responseHeaders"]) jsb browser.webRequest.onHeadersReceived.addListener(tri.request.clobberCSP,{urls:["<all_urls>"],types:["main_frame"]},["blocking","responseHeaders"])
" default is 300ms " default is 300ms
set hintdelay 100 " set hintdelay 500
" Some pages like github break on the tridactyl quick search. have this as a fallback " Some pages like github break on the tridactyl quick search. have this as a fallback
unbind <C-f> unbind <C-f>

View file

@ -0,0 +1 @@
swarsel@nbl-imba-2.3038:1743148454