chore: update flake
Some checks are pending
Flake check / Check flake (push) Waiting to run

This commit is contained in:
Leon Schwarzäugl 2025-11-02 12:24:40 +01:00
parent 40b42028d2
commit 783e381fbe
Signed by: swarsel
GPG key ID: 26A54C31F2A4FD84
30 changed files with 4960 additions and 2350 deletions

1
.gitignore vendored
View file

@ -4,5 +4,6 @@ install/flake.lock
result result
*.~undo-tree~ *.~undo-tree~
*.iso *.iso
*.bak
.pre-commit-config.yaml .pre-commit-config.yaml
.direnv .direnv

View file

@ -300,6 +300,7 @@ Here I give a brief overview over the hostmachines that I am using. This is held
** Manual steps when setting up a new machine ** Manual steps when setting up a new machine
#+begin_src markdown :noweb yes :exports both :results html #+begin_src markdown :noweb yes :exports both :results html
These steps are required when setting up a normal NixOS host:
<<setup>> <<setup>>
@ -307,6 +308,17 @@ Here I give a brief overview over the hostmachines that I am using. This is held
<<worksetup>> <<worksetup>>
If the new machine is home-manager only, perform these steps:
<<homemanageronlysetup>>
#+end_src
** Current issues
#+begin_src markdown :noweb yes :exports both :results html
Currently, these adaptions are made to the configuration to account for bugs in upstream repos:
<<fixes>>
#+end_src #+end_src
* flake.nix * flake.nix
@ -420,18 +432,19 @@ A short overview over each input and what it does:
nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-25.05"; nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-25.05";
nixpkgs-stable24_05.url = "github:NixOS/nixpkgs/nixos-24.05"; nixpkgs-stable24_05.url = "github:NixOS/nixpkgs/nixos-24.05";
nixpkgs-stable24_11.url = "github:NixOS/nixpkgs/nixos-24.11"; nixpkgs-stable24_11.url = "github:NixOS/nixpkgs/nixos-24.11";
nixpkgs-stable25_05.url = "github:NixOS/nixpkgs/nixos-25.05";
systems.url = "github:nix-systems/default"; systems.url = "github:nix-systems/default";
swarsel-modules.url = "github:Swarsel/swarsel-modules/main"; swarsel-modules.url = "github:Swarsel/swarsel-modules/main";
swarsel-nix.url = "github:Swarsel/swarsel-nix/main"; swarsel-nix.url = "github:Swarsel/swarsel-nix/main";
home-manager = { home-manager = {
# url = "github:nix-community/home-manager"; url = "github:nix-community/home-manager";
# url = "github:Swarsel/home-manager/main"; # url = "github:Swarsel/home-manager/main";
url = "github:JuneStepp/home-manager/anki-fix-booleans";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
swarsel.url = "github:Swarsel/.dotfiles"; swarsel.url = "github:Swarsel/.dotfiles";
emacs-overlay = { emacs-overlay = {
url = "github:nix-community/emacs-overlay"; # url = "github:nix-community/emacs-overlay";
url = "github:nix-community/emacs-overlay/aba8daa237dc07a3bb28a61c252a718e8eb38057?narHash=sha256-4OXXccXsY1sBXTXjYIthdjXLAotozSh4F8StGRuLyMQ%3D";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
nur.url = "github:nix-community/NUR"; nur.url = "github:nix-community/NUR";
@ -941,6 +954,7 @@ The rest of the outputs either define or help define the actual configurations:
minimal = false; minimal = false;
}; };
modules = [ modules = [
inputs.stylix.homeModules.stylix
inputs.niri-flake.homeModules.niri inputs.niri-flake.homeModules.niri
inputs.nix-index-database.homeModules.nix-index inputs.nix-index-database.homeModules.nix-index
# inputs.sops-nix.homeManagerModules.sops # inputs.sops-nix.homeManagerModules.sops
@ -1497,9 +1511,8 @@ As such, I also define three additional overlays:
NOTE: The packages themselves are built in [[#h:6ed1a641-dba8-4e85-a62e-be93264df57a][Packages (pkgs)]]; here, we just add them to the overlay that we then use in the configuration. NOTE: The packages themselves are built in [[#h:6ed1a641-dba8-4e85-a62e-be93264df57a][Packages (pkgs)]]; here, we just add them to the overlay that we then use in the configuration.
2) =modification= 2) =modification=
These are for packages that are on nixpkgs, but do not fit my usecase, meaning I need to perform modifications on them. These are for packages that are on nixpkgs, but do not fit my usecase, meaning I need to perform modifications on them.
3) =nixpkgs-[stable,...]= 3) =nixpkgs-stable-versions=
These are simply mirrors of other branches of nixpkgs (mostly past stable branches). Useful for packages that are broken on nixpkgs, but do not need to be on bleeding edge anyways. These are simply mirrors of other branches of nixpkgs (mostly past stable branches). Useful for packages that are broken on nixpkgs, but do not need to be on bleeding edge anyways. Automatically fetches all inputs names =nixpkgs-<suffix>= and adds them under the name in =<suffix>=.
- TODO: I need to check out if overlays are really the way to go in this case, or if I should just use =packages=, which should make evalutation a good bit faster.
Also, this is where I define all of my own modules. These are mostly used for setting some host-specifics directly than opposed to through multiple options. Also, this is where I define all of my own modules. These are mostly used for setting some host-specifics directly than opposed to through multiple options.
@ -1523,7 +1536,13 @@ On the structure of overlays: as you notice, all of the attributes within overla
overlays = { overlays = {
default = final: prev: default = final: prev:
let let
additions = final: _: import "${self}/pkgs" { pkgs = final; inherit self lib; }; additions = final: _: import "${self}/pkgs" { pkgs = final; inherit self lib; }
// {
swarsel-nix = import inputs.swarsel-nix {
pkgs = prev;
};
zjstatus = inputs.zjstatus.packages.${prev.system}.default;
};
modifications = final: prev: { modifications = final: prev: {
# vesktop = prev.vesktop.override { # vesktop = prev.vesktop.override {
@ -1554,63 +1573,35 @@ On the structure of overlays: as you notice, all of the attributes within overla
melonds # ds melonds # ds
dolphin # gc/wii dolphin # gc/wii
]); ]);
}; };
nixpkgs-stable = final: _: { nixpkgs-stable-versions = final: _:
stable = import inputs.nixpkgs-stable { let
nixpkgsInputs =
lib.filterAttrs
(name: _v: builtins.match "^nixpkgs-.*" name != null)
inputs;
rename = name: builtins.replaceStrings [ "nixpkgs-" ] [ "" ] name;
mkPkgs = src:
import src {
inherit (final) system; inherit (final) system;
config.allowUnfree = true; config.allowUnfree = true;
}; };
}; in
builtins.listToAttrs (map
nixpkgs-dev = final: _: { (name: {
dev = import inputs.nixpkgs-dev { name = rename name;
inherit (final) system; value = mkPkgs nixpkgsInputs.${name};
config.allowUnfree = true; })
}; (builtins.attrNames nixpkgsInputs));
};
nixpkgs-kernel = final: _: {
kernel = import inputs.nixpkgs-kernel {
inherit (final) system;
config.allowUnfree = true;
};
};
nixpkgs-stable24_05 = final: _: {
stable24_05 = import inputs.nixpkgs-stable24_05 {
inherit (final) system;
config.allowUnfree = true;
};
};
nixpkgs-stable24_11 = final: _: {
stable24_11 = import inputs.nixpkgs-stable24_11 {
inherit (final) system;
config.allowUnfree = true;
};
};
swarsel-nix = _: prev: {
swarsel-nix = import inputs.swarsel-nix {
pkgs = prev;
};
};
zjstatus = _: prev: {
zjstatus = inputs.zjstatus.packages.${prev.system}.default;
};
in in
(additions final prev) (additions final prev)
// (modifications final prev) // (modifications final prev)
// (nixpkgs-stable final prev) // (nixpkgs-stable-versions final prev)
// (nixpkgs-dev final prev)
// (nixpkgs-kernel final prev)
// (nixpkgs-stable24_05 final prev)
// (nixpkgs-stable24_11 final prev)
// (swarsel-nix final prev)
// (zjstatus final prev)
// (inputs.niri-flake.overlays.niri final prev) // (inputs.niri-flake.overlays.niri final prev)
// (inputs.vbc-nix.overlays.default final prev) // (inputs.vbc-nix.overlays.default final prev)
// (inputs.nur.overlays.default final prev) // (inputs.nur.overlays.default final prev)
@ -2631,13 +2622,11 @@ My phone. I use only a minimal config for remote debugging here.
**** Treehouse (DGX Spark) **** Treehouse (DGX Spark)
#+begin_src nix-ts :tangle hosts/home/treehouse/default.nix #+begin_src nix-ts :tangle hosts/home/treehouse/default.nix
{ self, inputs, outputs, ... }: { self, outputs, ... }:
{ {
imports = [ imports = [
inputs.stylix.homeModules.stylix
# inputs.sops-nix.homeManagerModules.sops # inputs.sops-nix.homeManagerModules.sops
inputs.nix-index-database.homeModules.nix-index
"${self}/modules/home" "${self}/modules/home"
"${self}/modules/nixos/common/pii.nix" "${self}/modules/nixos/common/pii.nix"
"${self}/modules/nixos/common/meta.nix" "${self}/modules/nixos/common/meta.nix"
@ -4712,7 +4701,7 @@ Mostly used to install some compilers and lsp's that I want to have available wh
yubikey-touch-detector yubikey-touch-detector
yubico-piv-tool yubico-piv-tool
cfssl cfssl
pcsctools pcsc-tools
pcscliteWithPolkit.out pcscliteWithPolkit.out
# ledger packages # ledger packages
@ -5425,7 +5414,7 @@ Here I disable global completion to prevent redundant compinit calls and cache i
config = lib.mkIf config.swarselmodules.syncthing { config = lib.mkIf config.swarselmodules.syncthing {
services.syncthing = { services.syncthing = {
enable = true; enable = true;
package = pkgs.stable.syncthing; package = pkgs.syncthing;
user = mainUser; user = mainUser;
dataDir = homeDir; dataDir = homeDir;
configDir = "${homeDir}/.config/syncthing"; configDir = "${homeDir}/.config/syncthing";
@ -5861,7 +5850,7 @@ When a program does not work, start with =nix-ldd <program>=. This will tell you
gdk-pixbuf gdk-pixbuf
glew110 glew110
glib glib
stable.gnome2.GConf gnome2.GConf
pango pango
gtk2 gtk2
gtk3 gtk3
@ -5910,8 +5899,8 @@ When a program does not work, start with =nix-ldd <program>=. This will tell you
pipewire pipewire
pixman pixman
speex speex
stdenv.cc.cc # stable.cc.cc
stable.steam-fhsenv-without-steam stable25_05.steam-fhsenv-without-steam
systemd systemd
tbb tbb
vulkan-loader vulkan-loader
@ -6008,7 +5997,7 @@ This is used to better integrate Sway into the system on NixOS hosts. On the hom
config = lib.mkIf config.swarselmodules.sway { config = lib.mkIf config.swarselmodules.sway {
programs.sway = { programs.sway = {
enable = true; enable = true;
package = pkgs.dev.swayfx; package = pkgs.swayfx;
wrapperFeatures = { wrapperFeatures = {
base = true; base = true;
gtk = true; gtk = true;
@ -10247,7 +10236,7 @@ Deployment notes:
topology.self.services.${serviceName}.info = "https://${serviceDomain}"; topology.self.services.${serviceName}.info = "https://${serviceDomain}";
globals.services.${serviceName}.domain = serviceDomain; globals.services.${serviceName}.domain = serviceDomain;
swarselservices.${serviceName} = { services.${serviceName} = {
enable = true; enable = true;
package = pkgs.dev.homebox; package = pkgs.dev.homebox;
database.createLocally = true; database.createLocally = true;
@ -10830,7 +10819,7 @@ When setting up a new machine:
spice spice
spice-gtk spice-gtk
spice-protocol spice-protocol
win-virtio virtio-win
win-spice win-spice
powershell powershell
@ -10997,6 +10986,26 @@ The general structure here is the same as in the [[#h:6da812f5-358c-49cb-aff2-0a
#+end_src #+end_src
*** Steps to setup/upgrade home-manager only
Steps to get a home-manager only setup up and running:
#+begin_src markdown :noweb-ref homemanageronlysetup :exports both :results html
- (Optional) Install openssh-server
- Set hostname to the name specified in the home-manager configuration
- Install nix, either:
- (if upgrading existing nix) Install nix version matching with version that `nix-plugins` is compiled against: `nix-env --install --file '<nixpkgs>' cacert -I nixpkgs=channel:nixpkgs-unstable --attr nixVersions.nix_x_yy`
- (or installing nix freshly):
- Grab the link to the install script of the needed nix version from https://releases.nixos.org/?prefix=nix, e.g. https://releases.nixos.org/nix/nix-2.30.1/install
- `bash <(curl -L https://releases.nixos.org/nix/nix-x-yy-y/install) --daemon`
- add the following to /etc/nix/nix.conf to become a trusted user: `trusted-users = @wheel root swarsel`
- For the first build:
1) Clone dotfile repo & change into it
2) `nix --extra-experimental-features 'nix-command flakes' develop`
3) `home-manager --extra-experimental-features 'nix-command flakes' switch --flake .#$(hostname) --show-trace`
#+end_src
*** TODO Common *** TODO Common
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: h:f0a6b5e0-2157-4522-b5e1-3f0abd91c05e :CUSTOM_ID: h:f0a6b5e0-2157-4522-b5e1-3f0abd91c05e
@ -11053,7 +11062,7 @@ Again, we adapt =nix= to our needs, enable the home-manager command for non-NixO
#+begin_src nix-ts :tangle modules/home/common/settings.nix #+begin_src nix-ts :tangle modules/home/common/settings.nix
{ self, lib, pkgs, config, ... }: { self, lib, pkgs, config, ... }:
let let
inherit (config.swarselsystems) mainUser; inherit (config.swarselsystems) mainUser flakePath isNixos isLinux;
in in
{ {
options.swarselmodules.general = lib.mkEnableOption "general nix settings"; options.swarselmodules.general = lib.mkEnableOption "general nix settings";
@ -11096,33 +11105,21 @@ Again, we adapt =nix= to our needs, enable the home-manager command for non-NixO
auto-optimise-store = true; auto-optimise-store = true;
warn-dirty = false; warn-dirty = false;
max-jobs = 1; max-jobs = 1;
use-cgroups = lib.mkIf config.swarselsystems.isLinux true; use-cgroups = lib.mkIf isLinux true;
}; };
}; };
nixpkgs.overlays = lib.mkIf config.swarselsystems.isNixos (lib.mkForce null); nixpkgs.overlays = lib.mkIf isNixos (lib.mkForce null);
programs = { programs = {
home-manager = lib.mkIf (!config.swarselsystems.isNixos) # home-manager.enable = lib.mkIf (!isNixos) true;
{
enable = true;
package = pkgs.symlinkJoin {
name = "home-manager";
buildInputs = [ pkgs.makeWrapper ];
paths = [ pkgs.home-manager ];
postBuild = ''
wrapProgram $out/bin/home-manager \
--append-flags '--flake .#$(hostname)'
'';
};
};
man = { man = {
enable = true; enable = true;
generateCaches = true; generateCaches = true;
}; };
}; };
targets.genericLinux.enable = lib.mkIf (!config.swarselsystems.isNixos) true; targets.genericLinux.enable = lib.mkIf (!isNixos) true;
home = { home = {
username = lib.mkDefault mainUser; username = lib.mkDefault mainUser;
@ -11137,6 +11134,17 @@ Again, we adapt =nix= to our needs, enable the home-manager command for non-NixO
"info" "info"
"devdoc" "devdoc"
]; ];
packages = lib.mkIf (!isNixos) [
(pkgs.symlinkJoin {
name = "home-manager";
buildInputs = [ pkgs.makeWrapper ];
paths = [ pkgs.home-manager ];
postBuild = ''
wrapProgram $out/bin/home-manager \
--append-flags '--flake ${flakePath}#$(hostname)'
'';
})
];
}; };
}; };
@ -11249,7 +11257,7 @@ This holds packages that I can use as provided, or with small modifications (as
sshfs sshfs
fuse fuse
# ventoy # ventoy
poppler_utils poppler-utils
vdhcoapp vdhcoapp
# nix # nix
@ -11337,7 +11345,7 @@ This holds packages that I can use as provided, or with small modifications (as
unzip unzip
#nautilus #nautilus
stable.nautilus nautilus
xfce.tumbler xfce.tumbler
libgsf libgsf
@ -11354,7 +11362,7 @@ This holds packages that I can use as provided, or with small modifications (as
# the following packages are used (in some way) by waybar # the following packages are used (in some way) by waybar
# playerctl # playerctl
stable.pavucontrol pavucontrol
# stable.pamixer # stable.pamixer
# gnome.gnome-clocks # gnome.gnome-clocks
# wlogout # wlogout
@ -11384,14 +11392,14 @@ This holds packages that I can use as provided, or with small modifications (as
nerd-fonts.fira-mono nerd-fonts.fira-mono
nerd-fonts.fira-code nerd-fonts.fira-code
nerd-fonts.symbols-only nerd-fonts.symbols-only
noto-fonts-emoji noto-fonts-color-emoji
font-awesome_5 font-awesome_5
noto-fonts noto-fonts
noto-fonts-cjk-sans noto-fonts-cjk-sans
]; ];
}; };
} }
#+end_src #+end_src
***** Self-defined ***** Self-defined
:PROPERTIES: :PROPERTIES:
@ -11588,13 +11596,14 @@ This section has been notably empty ever since switching to stylix. Only Emacs i
=theme= is defined in [[#h:5bc1b0c9-dc59-4c81-b5b5-e60699deda78][Theme (stylix)]]. =theme= is defined in [[#h:5bc1b0c9-dc59-4c81-b5b5-e60699deda78][Theme (stylix)]].
#+begin_src nix-ts :noweb yes :tangle modules/home/common/stylix.nix #+begin_src nix-ts :noweb yes :tangle modules/home/common/stylix.nix
{ lib, config, vars, ... }: { self, lib, config, vars, ... }:
{ {
options.swarselmodules.stylix = lib.mkEnableOption "stylix settings"; options.swarselmodules.stylix = lib.mkEnableOption "stylix settings";
config = lib.mkIf config.swarselmodules.stylix { config = lib.mkIf config.swarselmodules.stylix {
stylix = lib.mkIf (!config.swarselsystems.isNixos) (lib.recursiveUpdate stylix = lib.mkIf (!config.swarselsystems.isNixos && config.swarselmodules.stylix) (lib.recursiveUpdate
{ {
image = config.swarselsystems.wallpaper; enable = true;
base16Scheme = "${self}/files/stylix/swarsel.yaml";
targets = vars.stylixHomeTargets; targets = vars.stylixHomeTargets;
} }
vars.stylix); vars.stylix);
@ -11829,7 +11838,14 @@ This section is for programs that require no further configuration. zsh Integrat
programs = { programs = {
bat = { bat = {
enable = true; enable = true;
extraPackages = with pkgs.bat-extras; [ batdiff batman batgrep batwatch ]; extraPackages = [
pkgs.bat-extras.batdiff
pkgs.bat-extras.batman
pkgs.bat-extras.batwatch
] ++ [
pkgs.stable.bat-extras.batgrep
];
# extraPackages = with pkgs.bat-extras; [ batdiff batman batgrep batwatch ];
}; };
bottom.enable = true; bottom.enable = true;
carapace.enable = true; carapace.enable = true;
@ -11849,7 +11865,7 @@ This section is for programs that require no further configuration. zsh Integrat
sioyek.enable = true; sioyek.enable = true;
swayr.enable = true; swayr.enable = true;
timidity.enable = true; timidity.enable = true;
wlogout ={ wlogout = {
enable = true; enable = true;
layout = [ layout = [
{ {
@ -12077,7 +12093,8 @@ Here I set up my git config, automatic signing of commits, useful aliases for my
programs.git = { programs.git = {
enable = true; enable = true;
} // lib.optionalAttrs (!minimal) { } // lib.optionalAttrs (!minimal) {
aliases = { settings = {
alias = {
a = "add"; a = "add";
c = "commit"; c = "commit";
cl = "clone"; cl = "clone";
@ -12090,13 +12107,15 @@ Here I set up my git config, automatic signing of commits, useful aliases for my
p = "pull"; p = "pull";
pp = "push"; pp = "push";
}; };
user = {
email = lib.mkIf (config.swarselsystems.isNixos && !config.swarselsystems.isPublic) (lib.mkDefault address1);
name = lib.mkIf (config.swarselsystems.isNixos && !config.swarselsystems.isPublic) fullName;
};
};
signing = { signing = {
key = "0x76FD3810215AE097"; key = "0x76FD3810215AE097";
signByDefault = true; signByDefault = true;
}; };
userEmail = lib.mkIf (config.swarselsystems.isNixos && !config.swarselsystems.isPublic) (lib.mkDefault address1);
userName = lib.mkIf (config.swarselsystems.isNixos && !config.swarselsystems.isPublic) fullName;
difftastic.enable = true;
lfs.enable = true; lfs.enable = true;
includes = [ includes = [
{ {
@ -12111,6 +12130,7 @@ Here I set up my git config, automatic signing of commits, useful aliases for my
} }
]; ];
}; };
programs.difftastic.enable = lib.mkIf (!minimal) true;
}; };
} }
#+end_src #+end_src
@ -12337,7 +12357,7 @@ Currently I only use it as before with =initExtra= though.
#+begin_src nix-ts :tangle modules/home/common/zsh.nix #+begin_src nix-ts :tangle modules/home/common/zsh.nix
{ config, pkgs, lib, minimal, inputs, globals, nixosConfig ? config, ... }: { config, pkgs, lib, minimal, inputs, globals, nixosConfig ? config, ... }:
let let
inherit (config.swarselsystems) flakePath; inherit (config.swarselsystems) flakePath isNixos;
crocDomain = globals.services.croc.domain; crocDomain = globals.services.croc.domain;
in in
{ {
@ -12358,12 +12378,10 @@ Currently I only use it as before with =initExtra= though.
shellAliases = lib.recursiveUpdate shellAliases = lib.recursiveUpdate
{ {
hg = "history | grep"; hg = "history | grep";
hmswitch = "home-manager --flake ${flakePath}#$(whoami)@$(hostname) switch |& nom"; hmswitch = lib.mkIf (!isNixos) "${lib.getExe pkgs.home-manager} --flake ${flakePath}#$(hostname) switch |& nom";
# nswitch = "sudo nixos-rebuild --flake ${flakePath}#$(hostname) --show-trace --log-format internal-json -v switch |& nom --json"; nswitch = lib.mkIf isNixos "cd ${flakePath}; swarsel-deploy $(hostname) switch; cd -;";
nswitch = "cd ${flakePath}; swarsel-deploy $(hostname) switch; cd -;"; nboot = lib.mkIf isNixos "cd ${flakePath}; swarsel-deploy $(hostname) boot; cd -;";
nboot = "cd ${flakePath}; swarsel-deploy $(hostname) boot; cd -;"; ndry = lib.mkIf isNixos "cd ${flakePath}; swarsel-deploy $(hostname) dry-activate; cd -;";
ndry = "cd ${flakePath}; swarsel-deploy $(hostname) dry-activate; cd -;";
# nboot = "sudo nixos-rebuild --flake ${flakePath}#$(hostname) --show-trace --log-format internal-json -v boot |& nom --json";
magit = "emacsclient -nc -e \"(magit-status)\""; magit = "emacsclient -nc -e \"(magit-status)\"";
config = "git --git-dir=$HOME/.cfg/ --work-tree=$HOME"; config = "git --git-dir=$HOME/.cfg/ --work-tree=$HOME";
g = "git"; g = "git";
@ -12385,7 +12403,7 @@ Currently I only use it as before with =initExtra= though.
cc = "wl-copy"; cc = "wl-copy";
build-topology = "nix build .#topology.x86_64-linux.config.output"; build-topology = "nix build .#topology.x86_64-linux.config.output";
build-iso = "nix build --print-out-paths .#live-iso"; build-iso = "nix build --print-out-paths .#live-iso";
nix-review- = "nix run nixpkgs#nixpkgs-review -- rev HEAD"; nix-review-local = "nix run nixpkgs#nixpkgs-review -- rev HEAD";
nix-review-post = "nix run nixpkgs#nixpkgs-review -- pr --post-result --systems linux"; nix-review-post = "nix run nixpkgs#nixpkgs-review -- pr --post-result --systems linux";
} }
config.swarselsystems.shellAliases; config.swarselsystems.shellAliases;
@ -12847,6 +12865,7 @@ Lastly, I am defining some more packages here that the parser has problems findi
epkgs.lsp-bridge epkgs.lsp-bridge
epkgs.doom-themes epkgs.doom-themes
epkgs.vterm epkgs.vterm
# pkgs.stable.emacs.pkgs.elpaPackages.tramp # use the unstable version from elpa
epkgs.treesit-grammars.with-all-grammars epkgs.treesit-grammars.with-all-grammars
# build the rest of the packages myself # build the rest of the packages myself
@ -14322,9 +14341,11 @@ Currently, I am too lazy to explain every option here, but most of it is very se
"Mod+Shift+Escape".action = spawn "kitty" "-o" "confirm_os_window_close=0" "btm"; "Mod+Shift+Escape".action = spawn "kitty" "-o" "confirm_os_window_close=0" "btm";
"Mod+h".action = sh ''hyprpicker | wl-copy''; "Mod+h".action = sh ''hyprpicker | wl-copy'';
# "Mod+s".action = spawn "grim" "-g" "\"$(slurp)\"" "-t" "png" "-" "|" "wl-copy" "-t" "image/png"; # "Mod+s".action = spawn "grim" "-g" "\"$(slurp)\"" "-t" "png" "-" "|" "wl-copy" "-t" "image/png";
"Mod+s".action = screenshot { show-pointer = false; }; # "Mod+s".action = screenshot { show-pointer = false; };
"Mod+s".action.screenshot = { show-pointer = false; };
# "Mod+Shift+s".action = spawn "slurp" "|" "grim" "-g" "-" "Pictures/Screenshots/$(date +'screenshot_%Y-%m-%d-%H%M%S.png')"; # "Mod+Shift+s".action = spawn "slurp" "|" "grim" "-g" "-" "Pictures/Screenshots/$(date +'screenshot_%Y-%m-%d-%H%M%S.png')";
"Mod+Shift+s".action = screenshot-window { write-to-disk = true; }; # "Mod+Shift+s".action = screenshot-window { write-to-disk = true; };
"Mod+Shift+s".action.screenshot-window = { write-to-disk = true; };
# "Mod+Shift+v".action = spawn "wf-recorder" "-g" "'$(slurp -f %o -or)'" "-f" "~/Videos/screenrecord_$(date +%Y-%m-%d-%H%M%S).mkv"; # "Mod+Shift+v".action = spawn "wf-recorder" "-g" "'$(slurp -f %o -or)'" "-f" "~/Videos/screenrecord_$(date +%Y-%m-%d-%H%M%S).mkv";
"Mod+e".action = sh "emacsclient -nquc -a emacs -e '(dashboard-open)'"; "Mod+e".action = sh "emacsclient -nquc -a emacs -e '(dashboard-open)'";
@ -14631,7 +14652,7 @@ This service changes the screen hue at night. I am not sure if that really does
programs.spicetify = { programs.spicetify = {
enable = true; enable = true;
# spotifyPackage = pkgs.stable24_11.spotify; # spotifyPackage = pkgs.stable24_11.spotify;
spotifyPackage = pkgs.stable.spotify; spotifyPackage = pkgs.spotify;
enabledExtensions = with spicePkgs.extensions; [ enabledExtensions = with spicePkgs.extensions; [
fullAppDisplay fullAppDisplay
shuffle shuffle
@ -14664,8 +14685,9 @@ This service changes the screen hue at night. I am not sure if that really does
"${config.programs.obsidian.vaults.${name}.target}/.obsidian/core-plugins.json".force = true; "${config.programs.obsidian.vaults.${name}.target}/.obsidian/core-plugins.json".force = true;
}; };
programs.obsidian = programs.obsidian = let
{ pluginSource = pkgs.nur.repos.swarsel;
in {
enable = true; enable = true;
package = pkgs.obsidian; package = pkgs.obsidian;
defaultSettings = { defaultSettings = {
@ -14712,7 +14734,8 @@ This service changes the screen hue at night. I am not sure if that really does
"templates" "templates"
"word-count" "word-count"
]; ];
communityPlugins = with pkgs.swarsel-nix; [ # communityPlugins = with pkgs.swarsel-nix; [
communityPlugins = with pluginSource; [
advanced-tables advanced-tables
calendar calendar
file-hider file-hider
@ -14730,7 +14753,8 @@ This service changes the screen hue at night. I am not sure if that really does
appearance = { appearance = {
baseFontSize = lib.mkForce 19; baseFontSize = lib.mkForce 19;
}; };
communityPlugins = with pkgs.swarsel-nix; [ # communityPlugins = with pkgs.swarsel-nix; [
communityPlugins = with pluginSource; [
{ {
pkg = advanced-tables; pkg = advanced-tables;
enable = true; enable = true;
@ -14970,7 +14994,7 @@ This service changes the screen hue at night. I am not sure if that really does
**** vesktop **** vesktop
#+begin_src nix-ts :tangle modules/home/common/vesktop.nix #+begin_src nix-ts :tangle modules/home/common/vesktop.nix
{ lib, config, ... }: { lib, pkgs, config, ... }:
let let
moduleName = "vesktop"; moduleName = "vesktop";
in in
@ -14979,6 +15003,7 @@ This service changes the screen hue at night. I am not sure if that really does
config = lib.mkIf config.swarselmodules.${moduleName} { config = lib.mkIf config.swarselmodules.${moduleName} {
programs.${moduleName} = { programs.${moduleName} = {
enable = true; enable = true;
package = pkgs.stable.vesktop;
settings = { settings = {
appBadge = false; appBadge = false;
arRPC = false; arRPC = false;
@ -15091,7 +15116,7 @@ This service changes the screen hue at night. I am not sure if that really does
{ {
options.swarselmodules.${moduleName} = lib.mkEnableOption "enable ${moduleName} and settings"; options.swarselmodules.${moduleName} = lib.mkEnableOption "enable ${moduleName} and settings";
config = lib.mkIf config.swarselmodules.${moduleName} { config = lib.mkIf config.swarselmodules.${moduleName} {
swarselservices.${moduleName} = { services.${moduleName} = {
enable = true; enable = true;
systemdTarget = config.wayland.systemd.target; systemdTarget = config.wayland.systemd.target;
}; };
@ -15165,7 +15190,6 @@ This service changes the screen hue at night. I am not sure if that really does
} }
#+end_src #+end_src
*** Server *** Server
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: h:b1a00339-6e9b-4ae4-b5dc-6fd5669a2ddb :CUSTOM_ID: h:b1a00339-6e9b-4ae4-b5dc-6fd5669a2ddb
@ -15363,7 +15387,7 @@ When setting up a new machine:
postman postman
# rclone # rclone
libguestfs-with-appliance libguestfs-with-appliance
stable.prometheus.cli prometheus.cli
tigervnc tigervnc
# openstackclient # openstackclient
@ -15488,7 +15512,7 @@ When setting up a new machine:
# }; # };
# }; # };
}; };
git.userEmail = lib.mkForce gitMail; git.settings.user.email = lib.mkForce gitMail;
zsh = { zsh = {
shellAliases = { shellAliases = {
@ -15811,7 +15835,7 @@ When setting up a new machine:
}; };
swarselservices.pizauth = { services.pizauth = {
enable = true; enable = true;
extraConfig = '' extraConfig = ''
auth_notify_cmd = "if [[ \"$(notify-send -A \"Open $PIZAUTH_ACCOUNT\" -t 30000 'pizauth authorisation')\" == \"0\" ]]; then open \"$PIZAUTH_URL\"; fi"; auth_notify_cmd = "if [[ \"$(notify-send -A \"Open $PIZAUTH_ACCOUNT\" -t 30000 'pizauth authorisation')\" == \"0\" ]]; then open \"$PIZAUTH_URL\"; fi";
@ -15991,7 +16015,7 @@ When setting up a new machine:
options.swarselmodules.optional.uni = lib.mkEnableOption "optional uni settings"; options.swarselmodules.optional.uni = lib.mkEnableOption "optional uni settings";
config = lib.mkIf config.swarselmodules.optional.uni config = lib.mkIf config.swarselmodules.optional.uni
{ {
swarselservices.pizauth = { services.pizauth = {
enable = true; enable = true;
accounts = { accounts = {
uni = { uni = {
@ -16195,7 +16219,7 @@ In short, the options defined here are passed to the modules systems using =_mod
name = "FiraCode Nerd Font Mono"; name = "FiraCode Nerd Font Mono";
}; };
emoji = { emoji = {
package = pkgs.noto-fonts-emoji; package = pkgs.noto-fonts-color-emoji;
name = "Noto Color Emoji"; name = "Noto Color Emoji";
}; };
}; };
@ -21676,6 +21700,7 @@ Tramp allows for SSH access of files over Emacs. I have no ideas what the option
(use-package tramp (use-package tramp
;; :ensure nil
:init :init
(setq vc-ignore-dir-regexp (setq vc-ignore-dir-regexp
(format "\\(%s\\)\\|\\(%s\\)" (format "\\(%s\\)\\|\\(%s\\)"
@ -22397,6 +22422,31 @@ These general steps are needed when setting up a new machine and do not fit into
- `systemd-cryptenroll --fido2-device=auto /dev/<device, e.g. 'nvme0n1p2'>` - `systemd-cryptenroll --fido2-device=auto /dev/<device, e.g. 'nvme0n1p2'>`
#+end_src #+end_src
** Current patches and fixes
These are current deviations from the standard settings that I take while some things are broken upstream
#+begin_src markdown :noweb-ref fixes :exports both :results html
- 202501102:
- flake:
- emacs-overlay:
- : version pinned because emacsclient is currently broken on latest
- niri-flake:
- currently not using the sugared version of screenshot-[,window], as it is currently broken
- home-manager:
- emacs-tramp:
- using stable version in extraPackages (broken in unstable)
- :ensure nil in emacs tramp settings to use package in extraPackages
- emacs-calfwL
- pinned to version not in nixpkgs (is in latest emacs-overlay, but that is broken)
- vesktop:
- running stable version (broken in unstable)
- batgrep:
- running stable version (broken in unstable)
- swayosd:
- pinned to version not in nixpkgs (fixes https://github.com/ErikReider/SwayOSD/issues/175)
#+end_src
* Appendix B: Supplementary Files * Appendix B: Supplementary Files
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: h:8fc9f66a-7412-4091-8dee-a06f897baf67 :CUSTOM_ID: h:8fc9f66a-7412-4091-8dee-a06f897baf67

View file

@ -1358,6 +1358,7 @@ create a new one."
;; :mode ("\\.rs" . rustic-mode)) ;; :mode ("\\.rs" . rustic-mode))
(use-package tramp (use-package tramp
;; :ensure nil
:init :init
(setq vc-ignore-dir-regexp (setq vc-ignore-dir-regexp
(format "\\(%s\\)\\|\\(%s\\)" (format "\\(%s\\)\\|\\(%s\\)"

4348
flake.lock generated

File diff suppressed because it is too large Load diff

View file

@ -16,18 +16,19 @@
nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-25.05"; nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-25.05";
nixpkgs-stable24_05.url = "github:NixOS/nixpkgs/nixos-24.05"; nixpkgs-stable24_05.url = "github:NixOS/nixpkgs/nixos-24.05";
nixpkgs-stable24_11.url = "github:NixOS/nixpkgs/nixos-24.11"; nixpkgs-stable24_11.url = "github:NixOS/nixpkgs/nixos-24.11";
nixpkgs-stable25_05.url = "github:NixOS/nixpkgs/nixos-25.05";
systems.url = "github:nix-systems/default"; systems.url = "github:nix-systems/default";
swarsel-modules.url = "github:Swarsel/swarsel-modules/main"; swarsel-modules.url = "github:Swarsel/swarsel-modules/main";
swarsel-nix.url = "github:Swarsel/swarsel-nix/main"; swarsel-nix.url = "github:Swarsel/swarsel-nix/main";
home-manager = { home-manager = {
# url = "github:nix-community/home-manager"; url = "github:nix-community/home-manager";
# url = "github:Swarsel/home-manager/main"; # url = "github:Swarsel/home-manager/main";
url = "github:JuneStepp/home-manager/anki-fix-booleans";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
swarsel.url = "github:Swarsel/.dotfiles"; swarsel.url = "github:Swarsel/.dotfiles";
emacs-overlay = { emacs-overlay = {
url = "github:nix-community/emacs-overlay"; # url = "github:nix-community/emacs-overlay";
url = "github:nix-community/emacs-overlay/aba8daa237dc07a3bb28a61c252a718e8eb38057?narHash=sha256-4OXXccXsY1sBXTXjYIthdjXLAotozSh4F8StGRuLyMQ%3D";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
nur.url = "github:nix-community/NUR"; nur.url = "github:nix-community/NUR";

View file

@ -1,10 +1,8 @@
{ self, inputs, outputs, ... }: { self, outputs, ... }:
{ {
imports = [ imports = [
inputs.stylix.homeModules.stylix
# inputs.sops-nix.homeManagerModules.sops # inputs.sops-nix.homeManagerModules.sops
inputs.nix-index-database.homeModules.nix-index
"${self}/modules/home" "${self}/modules/home"
"${self}/modules/nixos/common/pii.nix" "${self}/modules/nixos/common/pii.nix"
"${self}/modules/nixos/common/meta.nix" "${self}/modules/nixos/common/meta.nix"

1322
index.html

File diff suppressed because it is too large Load diff

View file

@ -5,7 +5,7 @@ in
{ {
options.swarselmodules.${moduleName} = lib.mkEnableOption "enable ${moduleName} and settings"; options.swarselmodules.${moduleName} = lib.mkEnableOption "enable ${moduleName} and settings";
config = lib.mkIf config.swarselmodules.${moduleName} { config = lib.mkIf config.swarselmodules.${moduleName} {
swarselservices.${moduleName} = { services.${moduleName} = {
enable = true; enable = true;
systemdTarget = config.wayland.systemd.target; systemdTarget = config.wayland.systemd.target;
}; };

View file

@ -22,6 +22,7 @@ in
epkgs.lsp-bridge epkgs.lsp-bridge
epkgs.doom-themes epkgs.doom-themes
epkgs.vterm epkgs.vterm
# pkgs.stable.emacs.pkgs.elpaPackages.tramp # use the unstable version from elpa
epkgs.treesit-grammars.with-all-grammars epkgs.treesit-grammars.with-all-grammars
# build the rest of the packages myself # build the rest of the packages myself

View file

@ -11,7 +11,8 @@ in
programs.git = { programs.git = {
enable = true; enable = true;
} // lib.optionalAttrs (!minimal) { } // lib.optionalAttrs (!minimal) {
aliases = { settings = {
alias = {
a = "add"; a = "add";
c = "commit"; c = "commit";
cl = "clone"; cl = "clone";
@ -24,13 +25,15 @@ in
p = "pull"; p = "pull";
pp = "push"; pp = "push";
}; };
user = {
email = lib.mkIf (config.swarselsystems.isNixos && !config.swarselsystems.isPublic) (lib.mkDefault address1);
name = lib.mkIf (config.swarselsystems.isNixos && !config.swarselsystems.isPublic) fullName;
};
};
signing = { signing = {
key = "0x76FD3810215AE097"; key = "0x76FD3810215AE097";
signByDefault = true; signByDefault = true;
}; };
userEmail = lib.mkIf (config.swarselsystems.isNixos && !config.swarselsystems.isPublic) (lib.mkDefault address1);
userName = lib.mkIf (config.swarselsystems.isNixos && !config.swarselsystems.isPublic) fullName;
difftastic.enable = true;
lfs.enable = true; lfs.enable = true;
includes = [ includes = [
{ {
@ -45,5 +48,6 @@ in
} }
]; ];
}; };
programs.difftastic.enable = lib.mkIf (!minimal) true;
}; };
} }

View file

@ -114,9 +114,11 @@
"Mod+Shift+Escape".action = spawn "kitty" "-o" "confirm_os_window_close=0" "btm"; "Mod+Shift+Escape".action = spawn "kitty" "-o" "confirm_os_window_close=0" "btm";
"Mod+h".action = sh ''hyprpicker | wl-copy''; "Mod+h".action = sh ''hyprpicker | wl-copy'';
# "Mod+s".action = spawn "grim" "-g" "\"$(slurp)\"" "-t" "png" "-" "|" "wl-copy" "-t" "image/png"; # "Mod+s".action = spawn "grim" "-g" "\"$(slurp)\"" "-t" "png" "-" "|" "wl-copy" "-t" "image/png";
"Mod+s".action = screenshot { show-pointer = false; }; # "Mod+s".action = screenshot { show-pointer = false; };
"Mod+s".action.screenshot = { show-pointer = false; };
# "Mod+Shift+s".action = spawn "slurp" "|" "grim" "-g" "-" "Pictures/Screenshots/$(date +'screenshot_%Y-%m-%d-%H%M%S.png')"; # "Mod+Shift+s".action = spawn "slurp" "|" "grim" "-g" "-" "Pictures/Screenshots/$(date +'screenshot_%Y-%m-%d-%H%M%S.png')";
"Mod+Shift+s".action = screenshot-window { write-to-disk = true; }; # "Mod+Shift+s".action = screenshot-window { write-to-disk = true; };
"Mod+Shift+s".action.screenshot-window = { write-to-disk = true; };
# "Mod+Shift+v".action = spawn "wf-recorder" "-g" "'$(slurp -f %o -or)'" "-f" "~/Videos/screenrecord_$(date +%Y-%m-%d-%H%M%S).mkv"; # "Mod+Shift+v".action = spawn "wf-recorder" "-g" "'$(slurp -f %o -or)'" "-f" "~/Videos/screenrecord_$(date +%Y-%m-%d-%H%M%S).mkv";
"Mod+e".action = sh "emacsclient -nquc -a emacs -e '(dashboard-open)'"; "Mod+e".action = sh "emacsclient -nquc -a emacs -e '(dashboard-open)'";

View file

@ -15,6 +15,9 @@ in
}; };
programs.obsidian = programs.obsidian =
let
pluginSource = pkgs.nur.repos.swarsel;
in
{ {
enable = true; enable = true;
package = pkgs.obsidian; package = pkgs.obsidian;
@ -62,7 +65,8 @@ in
"templates" "templates"
"word-count" "word-count"
]; ];
communityPlugins = with pkgs.swarsel-nix; [ # communityPlugins = with pkgs.swarsel-nix; [
communityPlugins = with pluginSource; [
advanced-tables advanced-tables
calendar calendar
file-hider file-hider
@ -80,7 +84,8 @@ in
appearance = { appearance = {
baseFontSize = lib.mkForce 19; baseFontSize = lib.mkForce 19;
}; };
communityPlugins = with pkgs.swarsel-nix; [ # communityPlugins = with pkgs.swarsel-nix; [
communityPlugins = with pluginSource; [
{ {
pkg = advanced-tables; pkg = advanced-tables;
enable = true; enable = true;

View file

@ -42,7 +42,7 @@
sshfs sshfs
fuse fuse
# ventoy # ventoy
poppler_utils poppler-utils
vdhcoapp vdhcoapp
# nix # nix
@ -130,7 +130,7 @@
unzip unzip
#nautilus #nautilus
stable.nautilus nautilus
xfce.tumbler xfce.tumbler
libgsf libgsf
@ -147,7 +147,7 @@
# the following packages are used (in some way) by waybar # the following packages are used (in some way) by waybar
# playerctl # playerctl
stable.pavucontrol pavucontrol
# stable.pamixer # stable.pamixer
# gnome.gnome-clocks # gnome.gnome-clocks
# wlogout # wlogout
@ -177,7 +177,7 @@
nerd-fonts.fira-mono nerd-fonts.fira-mono
nerd-fonts.fira-code nerd-fonts.fira-code
nerd-fonts.symbols-only nerd-fonts.symbols-only
noto-fonts-emoji noto-fonts-color-emoji
font-awesome_5 font-awesome_5
noto-fonts noto-fonts
noto-fonts-cjk-sans noto-fonts-cjk-sans

View file

@ -5,7 +5,14 @@
programs = { programs = {
bat = { bat = {
enable = true; enable = true;
extraPackages = with pkgs.bat-extras; [ batdiff batman batgrep batwatch ]; extraPackages = [
pkgs.bat-extras.batdiff
pkgs.bat-extras.batman
pkgs.bat-extras.batwatch
] ++ [
pkgs.stable.bat-extras.batgrep
];
# extraPackages = with pkgs.bat-extras; [ batdiff batman batgrep batwatch ];
}; };
bottom.enable = true; bottom.enable = true;
carapace.enable = true; carapace.enable = true;

View file

@ -1,6 +1,6 @@
{ self, lib, pkgs, config, ... }: { self, lib, pkgs, config, ... }:
let let
inherit (config.swarselsystems) mainUser; inherit (config.swarselsystems) mainUser flakePath isNixos isLinux;
in in
{ {
options.swarselmodules.general = lib.mkEnableOption "general nix settings"; options.swarselmodules.general = lib.mkEnableOption "general nix settings";
@ -43,33 +43,21 @@ in
auto-optimise-store = true; auto-optimise-store = true;
warn-dirty = false; warn-dirty = false;
max-jobs = 1; max-jobs = 1;
use-cgroups = lib.mkIf config.swarselsystems.isLinux true; use-cgroups = lib.mkIf isLinux true;
}; };
}; };
nixpkgs.overlays = lib.mkIf config.swarselsystems.isNixos (lib.mkForce null); nixpkgs.overlays = lib.mkIf isNixos (lib.mkForce null);
programs = { programs = {
home-manager = lib.mkIf (!config.swarselsystems.isNixos) # home-manager.enable = lib.mkIf (!isNixos) true;
{
enable = true;
package = pkgs.symlinkJoin {
name = "home-manager";
buildInputs = [ pkgs.makeWrapper ];
paths = [ pkgs.home-manager ];
postBuild = ''
wrapProgram $out/bin/home-manager \
--append-flags '--flake .#$(hostname)'
'';
};
};
man = { man = {
enable = true; enable = true;
generateCaches = true; generateCaches = true;
}; };
}; };
targets.genericLinux.enable = lib.mkIf (!config.swarselsystems.isNixos) true; targets.genericLinux.enable = lib.mkIf (!isNixos) true;
home = { home = {
username = lib.mkDefault mainUser; username = lib.mkDefault mainUser;
@ -84,6 +72,17 @@ in
"info" "info"
"devdoc" "devdoc"
]; ];
packages = lib.mkIf (!isNixos) [
(pkgs.symlinkJoin {
name = "home-manager";
buildInputs = [ pkgs.makeWrapper ];
paths = [ pkgs.home-manager ];
postBuild = ''
wrapProgram $out/bin/home-manager \
--append-flags '--flake ${flakePath}#$(hostname)'
'';
})
];
}; };
}; };

View file

@ -9,7 +9,7 @@ in
programs.spicetify = { programs.spicetify = {
enable = true; enable = true;
# spotifyPackage = pkgs.stable24_11.spotify; # spotifyPackage = pkgs.stable24_11.spotify;
spotifyPackage = pkgs.stable.spotify; spotifyPackage = pkgs.spotify;
enabledExtensions = with spicePkgs.extensions; [ enabledExtensions = with spicePkgs.extensions; [
fullAppDisplay fullAppDisplay
shuffle shuffle

View file

@ -1,10 +1,11 @@
{ lib, config, vars, ... }: { self, lib, config, vars, ... }:
{ {
options.swarselmodules.stylix = lib.mkEnableOption "stylix settings"; options.swarselmodules.stylix = lib.mkEnableOption "stylix settings";
config = lib.mkIf config.swarselmodules.stylix { config = lib.mkIf config.swarselmodules.stylix {
stylix = lib.mkIf (!config.swarselsystems.isNixos) (lib.recursiveUpdate stylix = lib.mkIf (!config.swarselsystems.isNixos && config.swarselmodules.stylix) (lib.recursiveUpdate
{ {
image = config.swarselsystems.wallpaper; enable = true;
base16Scheme = "${self}/files/stylix/swarsel.yaml";
targets = vars.stylixHomeTargets; targets = vars.stylixHomeTargets;
} }
vars.stylix); vars.stylix);

View file

@ -1,4 +1,4 @@
{ lib, config, ... }: { lib, pkgs, config, ... }:
let let
moduleName = "vesktop"; moduleName = "vesktop";
in in
@ -7,6 +7,7 @@ in
config = lib.mkIf config.swarselmodules.${moduleName} { config = lib.mkIf config.swarselmodules.${moduleName} {
programs.${moduleName} = { programs.${moduleName} = {
enable = true; enable = true;
package = pkgs.stable.vesktop;
settings = { settings = {
appBadge = false; appBadge = false;
arRPC = false; arRPC = false;

View file

@ -1,6 +1,6 @@
{ config, pkgs, lib, minimal, inputs, globals, nixosConfig ? config, ... }: { config, pkgs, lib, minimal, inputs, globals, nixosConfig ? config, ... }:
let let
inherit (config.swarselsystems) flakePath; inherit (config.swarselsystems) flakePath isNixos;
crocDomain = globals.services.croc.domain; crocDomain = globals.services.croc.domain;
in in
{ {
@ -21,12 +21,10 @@ in
shellAliases = lib.recursiveUpdate shellAliases = lib.recursiveUpdate
{ {
hg = "history | grep"; hg = "history | grep";
hmswitch = "home-manager --flake ${flakePath}#$(whoami)@$(hostname) switch |& nom"; hmswitch = lib.mkIf (!isNixos) "${lib.getExe pkgs.home-manager} --flake ${flakePath}#$(hostname) switch |& nom";
# nswitch = "sudo nixos-rebuild --flake ${flakePath}#$(hostname) --show-trace --log-format internal-json -v switch |& nom --json"; nswitch = lib.mkIf isNixos "cd ${flakePath}; swarsel-deploy $(hostname) switch; cd -;";
nswitch = "cd ${flakePath}; swarsel-deploy $(hostname) switch; cd -;"; nboot = lib.mkIf isNixos "cd ${flakePath}; swarsel-deploy $(hostname) boot; cd -;";
nboot = "cd ${flakePath}; swarsel-deploy $(hostname) boot; cd -;"; ndry = lib.mkIf isNixos "cd ${flakePath}; swarsel-deploy $(hostname) dry-activate; cd -;";
ndry = "cd ${flakePath}; swarsel-deploy $(hostname) dry-activate; cd -;";
# nboot = "sudo nixos-rebuild --flake ${flakePath}#$(hostname) --show-trace --log-format internal-json -v boot |& nom --json";
magit = "emacsclient -nc -e \"(magit-status)\""; magit = "emacsclient -nc -e \"(magit-status)\"";
config = "git --git-dir=$HOME/.cfg/ --work-tree=$HOME"; config = "git --git-dir=$HOME/.cfg/ --work-tree=$HOME";
g = "git"; g = "git";
@ -48,7 +46,7 @@ in
cc = "wl-copy"; cc = "wl-copy";
build-topology = "nix build .#topology.x86_64-linux.config.output"; build-topology = "nix build .#topology.x86_64-linux.config.output";
build-iso = "nix build --print-out-paths .#live-iso"; build-iso = "nix build --print-out-paths .#live-iso";
nix-review- = "nix run nixpkgs#nixpkgs-review -- rev HEAD"; nix-review-local = "nix run nixpkgs#nixpkgs-review -- rev HEAD";
nix-review-post = "nix run nixpkgs#nixpkgs-review -- pr --post-result --systems linux"; nix-review-post = "nix run nixpkgs#nixpkgs-review -- pr --post-result --systems linux";
} }
config.swarselsystems.shellAliases; config.swarselsystems.shellAliases;

View file

@ -3,7 +3,7 @@
options.swarselmodules.optional.uni = lib.mkEnableOption "optional uni settings"; options.swarselmodules.optional.uni = lib.mkEnableOption "optional uni settings";
config = lib.mkIf config.swarselmodules.optional.uni config = lib.mkIf config.swarselmodules.optional.uni
{ {
swarselservices.pizauth = { services.pizauth = {
enable = true; enable = true;
accounts = { accounts = {
uni = { uni = {

View file

@ -16,7 +16,7 @@ in
postman postman
# rclone # rclone
libguestfs-with-appliance libguestfs-with-appliance
stable.prometheus.cli prometheus.cli
tigervnc tigervnc
# openstackclient # openstackclient
@ -141,7 +141,7 @@ in
# }; # };
# }; # };
}; };
git.userEmail = lib.mkForce gitMail; git.settings.user.email = lib.mkForce gitMail;
zsh = { zsh = {
shellAliases = { shellAliases = {
@ -464,7 +464,7 @@ in
}; };
swarselservices.pizauth = { services.pizauth = {
enable = true; enable = true;
extraConfig = '' extraConfig = ''
auth_notify_cmd = "if [[ \"$(notify-send -A \"Open $PIZAUTH_ACCOUNT\" -t 30000 'pizauth authorisation')\" == \"0\" ]]; then open \"$PIZAUTH_URL\"; fi"; auth_notify_cmd = "if [[ \"$(notify-send -A \"Open $PIZAUTH_ACCOUNT\" -t 30000 'pizauth authorisation')\" == \"0\" ]]; then open \"$PIZAUTH_URL\"; fi";

View file

@ -33,7 +33,7 @@
gdk-pixbuf gdk-pixbuf
glew110 glew110
glib glib
stable.gnome2.GConf gnome2.GConf
pango pango
gtk2 gtk2
gtk3 gtk3
@ -82,8 +82,8 @@
pipewire pipewire
pixman pixman
speex speex
stdenv.cc.cc # stable.cc.cc
stable.steam-fhsenv-without-steam stable25_05.steam-fhsenv-without-steam
systemd systemd
tbb tbb
vulkan-loader vulkan-loader

View file

@ -13,7 +13,7 @@
yubikey-touch-detector yubikey-touch-detector
yubico-piv-tool yubico-piv-tool
cfssl cfssl
pcsctools pcsc-tools
pcscliteWithPolkit.out pcscliteWithPolkit.out
# ledger packages # ledger packages

View file

@ -7,7 +7,7 @@ in
config = lib.mkIf config.swarselmodules.sway { config = lib.mkIf config.swarselmodules.sway {
programs.sway = { programs.sway = {
enable = true; enable = true;
package = pkgs.dev.swayfx; package = pkgs.swayfx;
wrapperFeatures = { wrapperFeatures = {
base = true; base = true;
gtk = true; gtk = true;

View file

@ -8,7 +8,7 @@ in
config = lib.mkIf config.swarselmodules.syncthing { config = lib.mkIf config.swarselmodules.syncthing {
services.syncthing = { services.syncthing = {
enable = true; enable = true;
package = pkgs.stable.syncthing; package = pkgs.syncthing;
user = mainUser; user = mainUser;
dataDir = homeDir; dataDir = homeDir;
configDir = "${homeDir}/.config/syncthing"; configDir = "${homeDir}/.config/syncthing";

View file

@ -179,7 +179,7 @@ in
spice spice
spice-gtk spice-gtk
spice-protocol spice-protocol
win-virtio virtio-win
win-spice win-spice
powershell powershell

View file

@ -12,7 +12,7 @@ in
topology.self.services.${serviceName}.info = "https://${serviceDomain}"; topology.self.services.${serviceName}.info = "https://${serviceDomain}";
globals.services.${serviceName}.domain = serviceDomain; globals.services.${serviceName}.domain = serviceDomain;
swarselservices.${serviceName} = { services.${serviceName} = {
enable = true; enable = true;
package = pkgs.dev.homebox; package = pkgs.dev.homebox;
database.createLocally = true; database.createLocally = true;

View file

@ -53,7 +53,7 @@
name = "FiraCode Nerd Font Mono"; name = "FiraCode Nerd Font Mono";
}; };
emoji = { emoji = {
package = pkgs.noto-fonts-emoji; package = pkgs.noto-fonts-color-emoji;
name = "Noto Color Emoji"; name = "Noto Color Emoji";
}; };
}; };

View file

@ -91,6 +91,7 @@
minimal = false; minimal = false;
}; };
modules = [ modules = [
inputs.stylix.homeModules.stylix
inputs.niri-flake.homeModules.niri inputs.niri-flake.homeModules.niri
inputs.nix-index-database.homeModules.nix-index inputs.nix-index-database.homeModules.nix-index
# inputs.sops-nix.homeManagerModules.sops # inputs.sops-nix.homeManagerModules.sops

View file

@ -9,7 +9,13 @@ in
overlays = { overlays = {
default = final: prev: default = final: prev:
let let
additions = final: _: import "${self}/pkgs" { pkgs = final; inherit self lib; }; additions = final: _: import "${self}/pkgs" { pkgs = final; inherit self lib; }
// {
swarsel-nix = import inputs.swarsel-nix {
pkgs = prev;
};
zjstatus = inputs.zjstatus.packages.${prev.system}.default;
};
modifications = final: prev: { modifications = final: prev: {
# vesktop = prev.vesktop.override { # vesktop = prev.vesktop.override {
@ -40,63 +46,35 @@ in
melonds # ds melonds # ds
dolphin # gc/wii dolphin # gc/wii
]); ]);
}; };
nixpkgs-stable = final: _: { nixpkgs-stable-versions = final: _:
stable = import inputs.nixpkgs-stable { let
nixpkgsInputs =
lib.filterAttrs
(name: _v: builtins.match "^nixpkgs-.*" name != null)
inputs;
rename = name: builtins.replaceStrings [ "nixpkgs-" ] [ "" ] name;
mkPkgs = src:
import src {
inherit (final) system; inherit (final) system;
config.allowUnfree = true; config.allowUnfree = true;
}; };
}; in
builtins.listToAttrs (map
nixpkgs-dev = final: _: { (name: {
dev = import inputs.nixpkgs-dev { name = rename name;
inherit (final) system; value = mkPkgs nixpkgsInputs.${name};
config.allowUnfree = true; })
}; (builtins.attrNames nixpkgsInputs));
};
nixpkgs-kernel = final: _: {
kernel = import inputs.nixpkgs-kernel {
inherit (final) system;
config.allowUnfree = true;
};
};
nixpkgs-stable24_05 = final: _: {
stable24_05 = import inputs.nixpkgs-stable24_05 {
inherit (final) system;
config.allowUnfree = true;
};
};
nixpkgs-stable24_11 = final: _: {
stable24_11 = import inputs.nixpkgs-stable24_11 {
inherit (final) system;
config.allowUnfree = true;
};
};
swarsel-nix = _: prev: {
swarsel-nix = import inputs.swarsel-nix {
pkgs = prev;
};
};
zjstatus = _: prev: {
zjstatus = inputs.zjstatus.packages.${prev.system}.default;
};
in in
(additions final prev) (additions final prev)
// (modifications final prev) // (modifications final prev)
// (nixpkgs-stable final prev) // (nixpkgs-stable-versions final prev)
// (nixpkgs-dev final prev)
// (nixpkgs-kernel final prev)
// (nixpkgs-stable24_05 final prev)
// (nixpkgs-stable24_11 final prev)
// (swarsel-nix final prev)
// (zjstatus final prev)
// (inputs.niri-flake.overlays.niri final prev) // (inputs.niri-flake.overlays.niri final prev)
// (inputs.vbc-nix.overlays.default final prev) // (inputs.vbc-nix.overlays.default final prev)
// (inputs.nur.overlays.default final prev) // (inputs.nur.overlays.default final prev)