fix[work]: fix aws,cdr commands, easier git switch in emacs
Some checks failed
Flake check / Check flake (push) Has been cancelled

This commit is contained in:
Leon Schwarzäugl 2025-11-19 15:22:48 +01:00 committed by Leon Schwarzäugl
parent 46f2ec8b96
commit ec6ae25e9b
52 changed files with 4610 additions and 1364 deletions

View file

@ -832,7 +832,7 @@ More information on the actual packages build can be found in [[#h:64a5cc16-6b16
inherit (self.outputs) lib; inherit (self.outputs) lib;
in in
{ {
packages = lib.swarselsystems.forEachLinuxSystem (pkgs: import "${self}/pkgs" { inherit self lib pkgs; }); packages = lib.swarselsystems.forEachLinuxSystem (pkgs: import "${self}/pkgs/flake" { inherit self lib pkgs; });
}; };
perSystem = { pkgs, system, ... }: perSystem = { pkgs, system, ... }:
@ -1725,7 +1725,7 @@ 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/flake" { pkgs = final; inherit self lib; }
// { // {
swarsel-nix = import inputs.swarsel-nix { swarsel-nix = import inputs.swarsel-nix {
pkgs = prev; pkgs = prev;
@ -4646,11 +4646,13 @@ in
:END: :END:
#+begin_src nix-ts :tangle modules/nixos/common/home-manager-secrets.nix #+begin_src nix-ts :tangle modules/nixos/common/home-manager-secrets.nix
{ lib, config, globals, ... }: { self, lib, config, globals, ... }:
let let
inherit (config.swarselsystems) mainUser homeDir; inherit (config.swarselsystems) mainUser homeDir;
inherit (config.repo.secrets.common.emacs) radicaleUser; inherit (config.repo.secrets.common.emacs) radicaleUser;
modules = config.home-manager.users.${mainUser}.swarselmodules; modules = config.home-manager.users.${mainUser}.swarselmodules;
certsSopsFile = self + /secrets/certs/secrets.yaml;
in in
{ {
config = lib.mkIf config.swarselsystems.withHomeManager { config = lib.mkIf config.swarselsystems.withHomeManager {
@ -4670,6 +4672,8 @@ in
github-nixpkgs-review-token = { owner = mainUser; }; github-nixpkgs-review-token = { owner = mainUser; };
}) // (lib.optionalAttrs modules.emacs { }) // (lib.optionalAttrs modules.emacs {
emacs-radicale-pw = { owner = mainUser; }; emacs-radicale-pw = { owner = mainUser; };
}) // (lib.optionalAttrs modules.optional.work {
harica-root-ca = { sopsFile = certsSopsFile; path = "${homeDir}/.aws/certs/harica-root.pem"; owner = mainUser; };
}) // (lib.optionalAttrs modules.anki { }) // (lib.optionalAttrs modules.anki {
anki-user = { owner = mainUser; }; anki-user = { owner = mainUser; };
anki-pw = { owner = mainUser; }; anki-pw = { owner = mainUser; };
@ -4851,7 +4855,19 @@ A breakdown of the flags being set:
system.stateVersion = lib.mkDefault "23.05"; system.stateVersion = lib.mkDefault "23.05";
nixpkgs = { nixpkgs = {
overlays = [ outputs.overlays.default ]; overlays = [
outputs.overlays.default
(final: prev:
let
additions = final: _: import "${self}/pkgs/config" {
inherit self config lib;
pkgs = final;
homeConfig = config.home-manager.users.${config.swarselsystems.mainUser};
};
in
additions final prev
)
];
config = { config = {
allowUnfree = true; allowUnfree = true;
}; };
@ -12265,9 +12281,20 @@ Again, we adapt =nix= to our needs, enable the home-manager command for non-NixO
}; };
}; };
# nixpkgs.overlays = lib.mkIf isNixos (lib.mkForce null);
nixpkgs = lib.mkIf (!isNixos) { nixpkgs = lib.mkIf (!isNixos) {
overlays = [ outputs.overlays.default ]; overlays = [
outputs.overlays.default
(final: prev:
let
additions = final: _: import "${self}/pkgs/config" {
inherit self config lib;
pkgs = final;
homeConfig = config;
};
in
additions final prev
)
];
config = { config = {
allowUnfree = true; allowUnfree = true;
}; };
@ -12583,6 +12610,7 @@ This is just a separate container for derivations defined in [[#h:64a5cc16-6b16-
pass-fuzzel pass-fuzzel
cdw cdw
cdb cdb
cdr
bak bak
timer timer
e e
@ -12607,8 +12635,6 @@ This is just a separate container for derivations defined in [[#h:64a5cc16-6b16-
sshrm sshrm
endme endme
git-replace git-replace
rustdesk-vbc
]; ];
}; };
} }
@ -13533,7 +13559,8 @@ Currently I only use it as before with =initExtra= though.
hotspot = "nmcli connection up local; nmcli device wifi hotspot;"; hotspot = "nmcli connection up local; nmcli device wifi hotspot;";
youtube-dl = "yt-dlp"; youtube-dl = "yt-dlp";
cat-orig = "cat"; cat-orig = "cat";
cdr = "cd \"$( (find $DOCUMENT_DIR_WORK $DOCUMENT_DIR_PRIV -maxdepth 1 && echo $FLAKE) | fzf )\""; # cdr = "cd \"$( (find $DOCUMENT_DIR_WORK $DOCUMENT_DIR_PRIV -maxdepth 1 && echo $FLAKE) | fzf )\"";
cdr = "source cdr";
nix-ldd-ldd = "LD_LIBRARY_PATH=$NIX_LD_LIBRARY_PATH ldd"; nix-ldd-ldd = "LD_LIBRARY_PATH=$NIX_LD_LIBRARY_PATH ldd";
nix-ldd = "LD_LIBRARY_PATH=$NIX_LD_LIBRARY_PATH ldd"; nix-ldd = "LD_LIBRARY_PATH=$NIX_LD_LIBRARY_PATH ldd";
nix-ldd-locate = "nix-locate --minimal --top-level -w "; nix-ldd-locate = "nix-locate --minimal --top-level -w ";
@ -14326,6 +14353,19 @@ Currently I only use it as before with =initExtra= though.
_children = [{ Resize._args = [ "Increase" ]; }]; _children = [{ Resize._args = [ "Increase" ]; }];
}; };
} }
{
bind = {
_args = [ "Alt r" ];
_children = [
{
WriteChars._args = [ "source cdr" ];
}
{
WriteChars._args = [ "\n" ];
}
];
};
}
{ {
bind = { bind = {
_args = [ "Alt f" ]; _args = [ "Alt f" ];
@ -17880,17 +17920,20 @@ When setting up a new machine:
#+end_src #+end_src
#+begin_src nix-ts :tangle modules/home/optional/work.nix :noweb yes #+begin_src nix-ts :tangle modules/home/optional/work.nix :noweb yes
{ self, config, pkgs, lib, vars, nixosConfig ? config, ... }: { self, inputs, config, pkgs, lib, vars, nixosConfig ? config, ... }:
let let
inherit (config.swarselsystems) homeDir; inherit (config.swarselsystems) homeDir mainUser;
inherit (nixosConfig.repo.secrets.local.mail) allMailAddresses; inherit (nixosConfig.repo.secrets.local.mail) allMailAddresses;
inherit (nixosConfig.repo.secrets.local.work) mailAddress; inherit (nixosConfig.repo.secrets.local.work) mailAddress;
certsSopsFile = self + /secrets/certs/secrets.yaml;
in in
{ {
options.swarselmodules.optional.work = lib.mkEnableOption "optional work settings"; options.swarselmodules.optional.work = lib.mkEnableOption "optional work settings";
config = lib.mkIf config.swarselmodules.optional.work config = lib.mkIf config.swarselmodules.optional.work
{ ({
home.packages = with pkgs; [ home = {
packages = with pkgs; [
stable.teams-for-linux stable.teams-for-linux
shellcheck shellcheck
dig dig
@ -17903,8 +17946,13 @@ When setting up a new machine:
# openstackclient # openstackclient
vscode vscode
];
rustdesk-vbc
];
sessionVariables = {
AWS_CA_BUNDLE = nixosConfig.sops.secrets.harica-root-ca.path;
};
};
systemd.user.sessionVariables = { systemd.user.sessionVariables = {
DOCUMENT_DIR_WORK = lib.mkForce "${homeDir}/Documents/Work"; DOCUMENT_DIR_WORK = lib.mkForce "${homeDir}/Documents/Work";
} // lib.optionalAttrs (!config.swarselsystems.isPublic) { } // lib.optionalAttrs (!config.swarselsystems.isPublic) {
@ -18526,7 +18574,16 @@ When setting up a new machine:
}; };
}; };
} // lib.optionalAttrs (inputs ? sops) {
sops.secrets = lib.mkIf (!config.swarselsystems.isPublic && !config.swarselsystems.isNixos) {
harica-root-ca = {
sopsFile = certsSopsFile;
path = "${homeDir}/.aws/certs/harica-root.pem";
owner = mainUser;
}; };
};
});
} }
@ -18930,7 +18987,7 @@ In short, the options defined here are passed to the modules systems using =_mod
} }
#+end_src #+end_src
** Packages *** Packages
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: h:64a5cc16-6b16-4802-b421-c67ccef853e1 :CUSTOM_ID: h:64a5cc16-6b16-4802-b421-c67ccef853e1
:END: :END:
@ -18939,23 +18996,25 @@ This is the central station for self-defined packages. These are all referenced
Note: The structure of generating the packages was changed in commit =2cf03a3 refactor: package and module generation=. That commit can be checked out in order to see a simpler version of achieving the same thing. Note: The structure of generating the packages was changed in commit =2cf03a3 refactor: package and module generation=. That commit can be checked out in order to see a simpler version of achieving the same thing.
#+begin_src nix-ts :tangle pkgs/default.nix *** Packages (flake)
#+begin_src nix-ts :tangle pkgs/flake/default.nix
{ self, lib, pkgs, ... }: { self, lib, pkgs, ... }:
let let
mkPackages = names: pkgs: builtins.listToAttrs (map mkPackages = names: pkgs: builtins.listToAttrs (map
(name: { (name: {
inherit name; inherit name;
value = pkgs.callPackage "${self}/pkgs/${name}" { inherit self name; }; value = pkgs.callPackage "${self}/pkgs/flake/${name}" { inherit self name; };
}) })
names); names);
packageNames = lib.swarselsystems.readNix "pkgs"; packageNames = lib.swarselsystems.readNix "pkgs/flake";
in in
mkPackages packageNames pkgs mkPackages packageNames pkgs
#+end_src #+end_src
*** pass-fuzzel **** pass-fuzzel
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: h:4fce458d-7c9c-4bcd-bd90-76b745fe5ce3 :CUSTOM_ID: h:4fce458d-7c9c-4bcd-bd90-76b745fe5ce3
:END: :END:
@ -19016,7 +19075,7 @@ This app allows me, in conjunction with my Yubikey, to quickly enter passwords w
notify-send -u critical -a pass -t 1000 "Copied/Typed Password" notify-send -u critical -a pass -t 1000 "Copied/Typed Password"
#+end_src #+end_src
#+begin_src nix-ts :tangle pkgs/pass-fuzzel/default.nix #+begin_src nix-ts :tangle pkgs/flake/pass-fuzzel/default.nix
{ self, name, writeShellApplication, libnotify, pass, fuzzel, wtype }: { self, name, writeShellApplication, libnotify, pass, fuzzel, wtype }:
writeShellApplication { writeShellApplication {
inherit name; inherit name;
@ -19026,7 +19085,7 @@ This app allows me, in conjunction with my Yubikey, to quickly enter passwords w
#+end_src #+end_src
*** quickpass **** quickpass
#+begin_src shell :tangle files/scripts/quickpass.sh :mkdirp yes #+begin_src shell :tangle files/scripts/quickpass.sh :mkdirp yes
shopt -s nullglob globstar shopt -s nullglob globstar
@ -19042,7 +19101,7 @@ This app allows me, in conjunction with my Yubikey, to quickly enter passwords w
notify-send -u critical -a pass -t 1000 "Typed Password" notify-send -u critical -a pass -t 1000 "Typed Password"
#+end_src #+end_src
#+begin_src nix-ts :tangle pkgs/quickpass/default.nix #+begin_src nix-ts :tangle pkgs/flake/quickpass/default.nix
{ self, name, writeShellApplication, libnotify, pass, wtype }: { self, name, writeShellApplication, libnotify, pass, wtype }:
writeShellApplication { writeShellApplication {
inherit name; inherit name;
@ -19052,7 +19111,7 @@ This app allows me, in conjunction with my Yubikey, to quickly enter passwords w
#+end_src #+end_src
*** cura5 **** cura5
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: h:799579f3-ddd3-4f76-928a-a8c665980476 :CUSTOM_ID: h:799579f3-ddd3-4f76-928a-a8c665980476
:END: :END:
@ -19060,7 +19119,7 @@ This app allows me, in conjunction with my Yubikey, to quickly enter passwords w
The version of =cura= used to be quite outdated in nixpkgs. I am fetching a newer AppImage here and use that instead. The version of =cura= used to be quite outdated in nixpkgs. I am fetching a newer AppImage here and use that instead.
#+begin_src nix-ts :tangle pkgs/cura5/default.nix #+begin_src nix-ts :tangle pkgs/flake/cura5/default.nix
# taken from https://github.com/NixOS/nixpkgs/issues/186570#issuecomment-1627797219 # taken from https://github.com/NixOS/nixpkgs/issues/186570#issuecomment-1627797219
{ appimageTools, fetchurl, writeScriptBin, pkgs, ... }: { appimageTools, fetchurl, writeScriptBin, pkgs, ... }:
@ -19093,7 +19152,7 @@ The version of =cura= used to be quite outdated in nixpkgs. I am fetching a newe
#+end_src #+end_src
*** hm-specialisation **** hm-specialisation
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: h:e6612cff-0804-47ef-9f2b-d2cc6d81a896 :CUSTOM_ID: h:e6612cff-0804-47ef-9f2b-d2cc6d81a896
:END: :END:
@ -19101,7 +19160,7 @@ The version of =cura= used to be quite outdated in nixpkgs. I am fetching a newe
This script allows for quick git home-manager specialisation switching. This script allows for quick git home-manager specialisation switching.
#+begin_src nix-ts :tangle pkgs/hm-specialisation/default.nix #+begin_src nix-ts :tangle pkgs/flake/hm-specialisation/default.nix
{ name, writeShellApplication, fzf, findutils, home-manager, ... }: { name, writeShellApplication, fzf, findutils, home-manager, ... }:
writeShellApplication { writeShellApplication {
@ -19117,7 +19176,7 @@ This script allows for quick git home-manager specialisation switching.
#+end_src #+end_src
*** cdw **** cdw
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: h:73b14c7a-5444-4fed-b7ac-d65542cdeda3 :CUSTOM_ID: h:73b14c7a-5444-4fed-b7ac-d65542cdeda3
:END: :END:
@ -19125,7 +19184,7 @@ This script allows for quick git home-manager specialisation switching.
This script allows for quick git worktree switching. This script allows for quick git worktree switching.
#+begin_src nix-ts :tangle pkgs/cdw/default.nix #+begin_src nix-ts :tangle pkgs/flake/cdw/default.nix
{ name, writeShellApplication, fzf, ... }: { name, writeShellApplication, fzf, ... }:
writeShellApplication { writeShellApplication {
@ -19139,14 +19198,14 @@ This script allows for quick git worktree switching.
#+end_src #+end_src
*** cdb **** cdb
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: h:5ad99997-e54c-4f0b-9ab7-15f76b1e16e1 :CUSTOM_ID: h:5ad99997-e54c-4f0b-9ab7-15f76b1e16e1
:END: :END:
This script allows for quick git branch switching. This script allows for quick git branch switching.
#+begin_src nix-ts :tangle pkgs/cdb/default.nix #+begin_src nix-ts :tangle pkgs/flake/cdb/default.nix
{ name, writeShellApplication, fzf, ... }: { name, writeShellApplication, fzf, ... }:
writeShellApplication { writeShellApplication {
@ -19159,7 +19218,7 @@ This script allows for quick git branch switching.
#+end_src #+end_src
*** bak **** bak
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: h:03b1b77b-3ca8-4a8f-8e28-9f29004d96d3 :CUSTOM_ID: h:03b1b77b-3ca8-4a8f-8e28-9f29004d96d3
:END: :END:
@ -19167,7 +19226,7 @@ This script allows for quick git branch switching.
This script lets me quickly backup files by appending =.bak= to the filename. This script lets me quickly backup files by appending =.bak= to the filename.
#+begin_src nix-ts :tangle pkgs/bak/default.nix #+begin_src nix-ts :tangle pkgs/flake/bak/default.nix
{ name, writeShellApplication, ... }: { name, writeShellApplication, ... }:
writeShellApplication { writeShellApplication {
@ -19180,7 +19239,7 @@ This script lets me quickly backup files by appending =.bak= to the filename.
#+end_src #+end_src
*** timer **** timer
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: h:3c72d263-411c-44f0-90ff-55f14d4d9d49 :CUSTOM_ID: h:3c72d263-411c-44f0-90ff-55f14d4d9d49
:END: :END:
@ -19188,7 +19247,7 @@ This script lets me quickly backup files by appending =.bak= to the filename.
This app starts a configuratble timer and uses TTS to say something once the timer runs out. This app starts a configuratble timer and uses TTS to say something once the timer runs out.
#+begin_src nix-ts :tangle pkgs/timer/default.nix #+begin_src nix-ts :tangle pkgs/flake/timer/default.nix
{ name, writeShellApplication, speechd, ... }: { name, writeShellApplication, speechd, ... }:
writeShellApplication { writeShellApplication {
@ -19201,7 +19260,7 @@ This app starts a configuratble timer and uses TTS to say something once the tim
#+end_src #+end_src
*** e **** e
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: h:1834df06-9238-4efa-9af6-851dafe66c68 :CUSTOM_ID: h:1834df06-9238-4efa-9af6-851dafe66c68
:END: :END:
@ -19234,7 +19293,7 @@ This is a shorthand for calling emacsclient mostly. Also, it hides the kittyterm
fi fi
#+end_src #+end_src
#+begin_src nix-ts :tangle pkgs/e/default.nix #+begin_src nix-ts :tangle pkgs/flake/e/default.nix
{ self, name, writeShellApplication, emacs30-pgtk, sway, jq }: { self, name, writeShellApplication, emacs30-pgtk, sway, jq }:
writeShellApplication { writeShellApplication {
inherit name; inherit name;
@ -19244,7 +19303,7 @@ This is a shorthand for calling emacsclient mostly. Also, it hides the kittyterm
#+end_src #+end_src
*** command-not-found **** command-not-found
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: h:10268005-a9cd-4a00-967c-cbe975c552fa :CUSTOM_ID: h:10268005-a9cd-4a00-967c-cbe975c552fa
:END: :END:
@ -19288,7 +19347,7 @@ The normal =command-not-found.sh= uses the outdated =nix-shell= commands as sugg
} }
#+end_src #+end_src
*** swarselcheck **** swarselcheck
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: h:82f4f414-749b-4d5a-aaaa-6e3ec15fbc3d :CUSTOM_ID: h:82f4f414-749b-4d5a-aaaa-6e3ec15fbc3d
:END: :END:
@ -19360,7 +19419,7 @@ This app checks for different apps that I keep around in the scratchpad for quic
fi fi
#+end_src #+end_src
#+begin_src nix-ts :tangle pkgs/swarselcheck/default.nix #+begin_src nix-ts :tangle pkgs/flake/swarselcheck/default.nix
{ self, name, writeShellApplication, kitty, element-desktop, vesktop, spotify-player, jq }: { self, name, writeShellApplication, kitty, element-desktop, vesktop, spotify-player, jq }:
writeShellApplication { writeShellApplication {
inherit name; inherit name;
@ -19370,7 +19429,7 @@ This app checks for different apps that I keep around in the scratchpad for quic
#+end_src #+end_src
*** swarselcheck-niri **** swarselcheck-niri
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: h:96da8360-2d23-4e86-9602-415fbdb972af :CUSTOM_ID: h:96da8360-2d23-4e86-9602-415fbdb972af
:END: :END:
@ -19414,7 +19473,7 @@ This app checks for different apps that I keep around in the scratchpad for quic
fi fi
#+end_src #+end_src
#+begin_src nix-ts :tangle pkgs/swarselcheck-niri/default.nix #+begin_src nix-ts :tangle pkgs/flake/swarselcheck-niri/default.nix
{ self, name, writeShellApplication, kitty, element-desktop, vesktop, spotify-player, jq }: { self, name, writeShellApplication, kitty, element-desktop, vesktop, spotify-player, jq }:
writeShellApplication { writeShellApplication {
inherit name; inherit name;
@ -19424,7 +19483,7 @@ This app checks for different apps that I keep around in the scratchpad for quic
#+end_src #+end_src
*** swarselzellij **** swarselzellij
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: h:564c102c-e335-4f17-a613-c5a436bb4864 :CUSTOM_ID: h:564c102c-e335-4f17-a613-c5a436bb4864
:END: :END:
@ -19440,7 +19499,7 @@ This app checks for different apps that I keep around in the scratchpad for quic
exec kitty -o confirm_os_window_close=0 zellij exec kitty -o confirm_os_window_close=0 zellij
#+end_src #+end_src
#+begin_src nix-ts :tangle pkgs/swarselzellij/default.nix #+begin_src nix-ts :tangle pkgs/flake/swarselzellij/default.nix
{ self, name, writeShellApplication, kitty }: { self, name, writeShellApplication, kitty }:
writeShellApplication { writeShellApplication {
inherit name; inherit name;
@ -19450,7 +19509,7 @@ This app checks for different apps that I keep around in the scratchpad for quic
#+end_src #+end_src
*** waybarupdate **** waybarupdate
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: h:f93f66f9-6b8b-478e-b139-b2f382c1f25e :CUSTOM_ID: h:f93f66f9-6b8b-478e-b139-b2f382c1f25e
:END: :END:
@ -19484,7 +19543,7 @@ This scripts checks if there are uncommited changes in either my dotfile repo, m
echo "$OUT" echo "$OUT"
#+end_src #+end_src
#+begin_src nix-ts :tangle pkgs/waybarupdate/default.nix #+begin_src nix-ts :tangle pkgs/flake/waybarupdate/default.nix
{ self, name, writeShellApplication, git }: { self, name, writeShellApplication, git }:
writeShellApplication { writeShellApplication {
inherit name; inherit name;
@ -19494,7 +19553,7 @@ This scripts checks if there are uncommited changes in either my dotfile repo, m
#+end_src #+end_src
*** opacitytoggle **** opacitytoggle
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: h:a1d94db2-837a-40c4-bbd8-81ce847440ee :CUSTOM_ID: h:a1d94db2-837a-40c4-bbd8-81ce847440ee
:END: :END:
@ -19509,7 +19568,7 @@ This app quickly toggles between 5% and 0% transparency.
fi fi
#+end_src #+end_src
#+begin_src nix-ts :tangle pkgs/opacitytoggle/default.nix #+begin_src nix-ts :tangle pkgs/flake/opacitytoggle/default.nix
{ self, name, writeShellApplication, sway }: { self, name, writeShellApplication, sway }:
writeShellApplication { writeShellApplication {
inherit name; inherit name;
@ -19518,7 +19577,7 @@ This app quickly toggles between 5% and 0% transparency.
} }
#+end_src #+end_src
*** fs-diff **** fs-diff
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: h:7c4e41b3-8c1e-4f71-87a6-30d40baed6a0 :CUSTOM_ID: h:7c4e41b3-8c1e-4f71-87a6-30d40baed6a0
:END: :END:
@ -19548,7 +19607,7 @@ This utility is used to compare the current state of the root directory with the
done done
#+end_src #+end_src
#+begin_src nix-ts :tangle pkgs/fs-diff/default.nix #+begin_src nix-ts :tangle pkgs/flake/fs-diff/default.nix
{ self, name, writeShellApplication }: { self, name, writeShellApplication }:
writeShellApplication { writeShellApplication {
inherit name; inherit name;
@ -19556,7 +19615,7 @@ This utility is used to compare the current state of the root directory with the
} }
#+end_src #+end_src
*** github-notifications **** github-notifications
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: h:a9398c4e-4d3b-4942-b03c-192f9c0517e5 :CUSTOM_ID: h:a9398c4e-4d3b-4942-b03c-192f9c0517e5
:END: :END:
@ -19564,7 +19623,7 @@ This utility is used to compare the current state of the root directory with the
This utility checks if there are updated packages in nixpkgs-unstable. It does so by fully building the most recent configuration, which I do not love, but it has its merits once I am willing to switch to the newer version. This utility checks if there are updated packages in nixpkgs-unstable. It does so by fully building the most recent configuration, which I do not love, but it has its merits once I am willing to switch to the newer version.
#+begin_src nix-ts :tangle pkgs/github-notifications/default.nix #+begin_src nix-ts :tangle pkgs/flake/github-notifications/default.nix
{ name, writeShellApplication, jq, ... }: { name, writeShellApplication, jq, ... }:
writeShellApplication { writeShellApplication {
@ -19580,7 +19639,7 @@ This utility checks if there are updated packages in nixpkgs-unstable. It does s
} }
#+end_src #+end_src
*** kanshare **** kanshare
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: h:3981cd16-00c0-4ea8-95e2-c6d8c04ec4e5 :CUSTOM_ID: h:3981cd16-00c0-4ea8-95e2-c6d8c04ec4e5
:END: :END:
@ -19588,7 +19647,7 @@ This utility checks if there are updated packages in nixpkgs-unstable. It does s
This utility checks if there are updated packages in nixpkgs-unstable. It does so by fully building the most recent configuration, which I do not love, but it has its merits once I am willing to switch to the newer version. This utility checks if there are updated packages in nixpkgs-unstable. It does so by fully building the most recent configuration, which I do not love, but it has its merits once I am willing to switch to the newer version.
#+begin_src nix-ts :tangle pkgs/kanshare/default.nix #+begin_src nix-ts :tangle pkgs/flake/kanshare/default.nix
{ name, writeShellApplication, wlr-randr, busybox, wl-mirror, mako, ... }: { name, writeShellApplication, wlr-randr, busybox, wl-mirror, mako, ... }:
writeShellApplication { writeShellApplication {
@ -19602,7 +19661,7 @@ This utility checks if there are updated packages in nixpkgs-unstable. It does s
} }
#+end_src #+end_src
*** swarsel-bootstrap **** swarsel-bootstrap
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: h:74db57ae-0bb9-4257-84be-eddbc85130dd :CUSTOM_ID: h:74db57ae-0bb9-4257-84be-eddbc85130dd
:END: :END:
@ -19984,7 +20043,7 @@ This program sets up a new NixOS host remotely. It also takes care of secret man
| [ | Babel | evaluation | exited | with | code | 1 | ] | | [ | Babel | evaluation | exited | with | code | 1 | ] |
#+begin_src nix-ts :tangle pkgs/swarsel-bootstrap/default.nix #+begin_src nix-ts :tangle pkgs/flake/swarsel-bootstrap/default.nix
{ self, name, writeShellApplication, openssh }: { self, name, writeShellApplication, openssh }:
writeShellApplication { writeShellApplication {
inherit name; inherit name;
@ -19993,7 +20052,7 @@ This program sets up a new NixOS host remotely. It also takes care of secret man
} }
#+end_src #+end_src
*** swarsel-rebuild **** swarsel-rebuild
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: h:1eabdc59-8832-44ca-a22b-11f848ab150a :CUSTOM_ID: h:1eabdc59-8832-44ca-a22b-11f848ab150a
:END: :END:
@ -20113,7 +20172,7 @@ This program sets up a new NixOS host remotely. It also takes care of secret man
#+begin_src nix-ts :tangle pkgs/swarsel-rebuild/default.nix #+begin_src nix-ts :tangle pkgs/flake/swarsel-rebuild/default.nix
{ self, name, writeShellApplication, git }: { self, name, writeShellApplication, git }:
writeShellApplication { writeShellApplication {
inherit name; inherit name;
@ -20122,7 +20181,7 @@ This program sets up a new NixOS host remotely. It also takes care of secret man
} }
#+end_src #+end_src
*** swarsel-install **** swarsel-install
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: h:fbd8aaf2-9dca-4ca3-aca1-19d0d188a435 :CUSTOM_ID: h:fbd8aaf2-9dca-4ca3-aca1-19d0d188a435
:END: :END:
@ -20327,7 +20386,7 @@ Autoformatting always puts the =EOF= with indentation, which makes shfmt check f
#+begin_src nix-ts :tangle pkgs/swarsel-install/default.nix #+begin_src nix-ts :tangle pkgs/flake/swarsel-install/default.nix
{ self, name, writeShellApplication, git }: { self, name, writeShellApplication, git }:
writeShellApplication { writeShellApplication {
inherit name; inherit name;
@ -20336,7 +20395,7 @@ Autoformatting always puts the =EOF= with indentation, which makes shfmt check f
} }
#+end_src #+end_src
*** swarsel-postinstall **** swarsel-postinstall
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: h:c98a7615-e5da-4f47-8ed1-2b2ea65519e9 :CUSTOM_ID: h:c98a7615-e5da-4f47-8ed1-2b2ea65519e9
:END: :END:
@ -20418,7 +20477,7 @@ Autoformatting always puts the =EOF= with indentation, which makes shfmt check f
#+begin_src nix-ts :tangle pkgs/swarsel-postinstall/default.nix #+begin_src nix-ts :tangle pkgs/flake/swarsel-postinstall/default.nix
{ self, name, writeShellApplication, git }: { self, name, writeShellApplication, git }:
writeShellApplication { writeShellApplication {
inherit name; inherit name;
@ -20427,12 +20486,12 @@ Autoformatting always puts the =EOF= with indentation, which makes shfmt check f
} }
#+end_src #+end_src
*** t2ts **** t2ts
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: h:5ad99997-e54c-4f0b-9ab7-15f76b1e16e1 :CUSTOM_ID: h:5ad99997-e54c-4f0b-9ab7-15f76b1e16e1
:END: :END:
#+begin_src nix-ts :tangle pkgs/t2ts/default.nix #+begin_src nix-ts :tangle pkgs/flake/t2ts/default.nix
{ name, writeShellApplication, ... }: { name, writeShellApplication, ... }:
writeShellApplication { writeShellApplication {
@ -20445,12 +20504,12 @@ Autoformatting always puts the =EOF= with indentation, which makes shfmt check f
#+end_src #+end_src
*** ts2t **** ts2t
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: h:5ad99997-e54c-4f0b-9ab7-15f76b1e16e1 :CUSTOM_ID: h:5ad99997-e54c-4f0b-9ab7-15f76b1e16e1
:END: :END:
#+begin_src nix-ts :tangle pkgs/ts2t/default.nix #+begin_src nix-ts :tangle pkgs/flake/ts2t/default.nix
{ name, writeShellApplication, ... }: { name, writeShellApplication, ... }:
writeShellApplication { writeShellApplication {
@ -20463,12 +20522,12 @@ Autoformatting always puts the =EOF= with indentation, which makes shfmt check f
#+end_src #+end_src
*** vershell **** vershell
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: h:7806b129-a4a5-4d10-af27-6cbeafbcb294 :CUSTOM_ID: h:7806b129-a4a5-4d10-af27-6cbeafbcb294
:END: :END:
#+begin_src nix-ts :tangle pkgs/vershell/default.nix #+begin_src nix-ts :tangle pkgs/flake/vershell/default.nix
{ name, writeShellApplication, ... }: { name, writeShellApplication, ... }:
writeShellApplication { writeShellApplication {
@ -20481,12 +20540,12 @@ Autoformatting always puts the =EOF= with indentation, which makes shfmt check f
#+end_src #+end_src
*** eontimer **** eontimer
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: h:9fda7829-09a4-4b8f-86f6-08b078ab2874 :CUSTOM_ID: h:9fda7829-09a4-4b8f-86f6-08b078ab2874
:END: :END:
#+begin_src nix-ts :tangle pkgs/eontimer/default.nix #+begin_src nix-ts :tangle pkgs/flake/eontimer/default.nix
{ lib { lib
, python3 , python3
, fetchFromGitHub , fetchFromGitHub
@ -20585,7 +20644,7 @@ Autoformatting always puts the =EOF= with indentation, which makes shfmt check f
#+end_src #+end_src
*** project **** project
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: h:154b6df4-dd50-4f60-9794-05a140d02994 :CUSTOM_ID: h:154b6df4-dd50-4f60-9794-05a140d02994
:END: :END:
@ -20600,7 +20659,7 @@ Autoformatting always puts the =EOF= with indentation, which makes shfmt check f
direnv allow direnv allow
#+end_src #+end_src
#+begin_src nix-ts :tangle pkgs/project/default.nix #+begin_src nix-ts :tangle pkgs/flake/project/default.nix
{ self, name, writeShellApplication }: { self, name, writeShellApplication }:
writeShellApplication { writeShellApplication {
inherit name; inherit name;
@ -20608,13 +20667,13 @@ Autoformatting always puts the =EOF= with indentation, which makes shfmt check f
} }
#+end_src #+end_src
*** fhs **** fhs
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: h:36d6c17c-6d91-4297-b76d-9d7feab6c1a0 :CUSTOM_ID: h:36d6c17c-6d91-4297-b76d-9d7feab6c1a0
:END: :END:
#+begin_src nix-ts :tangle pkgs/fhs/default.nix #+begin_src nix-ts :tangle pkgs/flake/fhs/default.nix
{ name, pkgs, ... }: { name, pkgs, ... }:
let let
base = pkgs.appimageTools.defaultFhsEnvArgs; base = pkgs.appimageTools.defaultFhsEnvArgs;
@ -20628,7 +20687,7 @@ Autoformatting always puts the =EOF= with indentation, which makes shfmt check f
}) })
#+end_src #+end_src
*** swarsel-displaypower **** swarsel-displaypower
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: h:814d5e7f-4b95-412d-b246-33f888514ec6 :CUSTOM_ID: h:814d5e7f-4b95-412d-b246-33f888514ec6
:END: :END:
@ -20640,7 +20699,7 @@ A crude script to power on all displays that might be attached. Needed because s
swaymsg "output * dpms on" > /dev/null 2>&1 || true swaymsg "output * dpms on" > /dev/null 2>&1 || true
#+end_src #+end_src
#+begin_src nix-ts :tangle pkgs/swarsel-displaypower/default.nix #+begin_src nix-ts :tangle pkgs/flake/swarsel-displaypower/default.nix
{ self, name, writeShellApplication, sway }: { self, name, writeShellApplication, sway }:
writeShellApplication { writeShellApplication {
inherit name; inherit name;
@ -20650,7 +20709,7 @@ A crude script to power on all displays that might be attached. Needed because s
#+end_src #+end_src
*** swarsel-mgba **** swarsel-mgba
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: h:799579f3-ddd3-4f76-928a-a8c665980476 :CUSTOM_ID: h:799579f3-ddd3-4f76-928a-a8c665980476
:END: :END:
@ -20658,7 +20717,7 @@ A crude script to power on all displays that might be attached. Needed because s
AppImage version of mgba in which the lua scripting works. AppImage version of mgba in which the lua scripting works.
#+begin_src nix-ts :tangle pkgs/swarsel-mgba/default.nix #+begin_src nix-ts :tangle pkgs/flake/swarsel-mgba/default.nix
{ appimageTools, fetchurl, ... }: { appimageTools, fetchurl, ... }:
let let
pname = "mgba"; pname = "mgba";
@ -20682,12 +20741,12 @@ AppImage version of mgba in which the lua scripting works.
#+end_src #+end_src
*** swarsel-deploy **** swarsel-deploy
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: h:c3362d4e-d3a8-43e8-9ef7-272b6de0572e :CUSTOM_ID: h:c3362d4e-d3a8-43e8-9ef7-272b6de0572e
:END: :END:
#+begin_src nix-ts :tangle pkgs/swarsel-deploy/default.nix #+begin_src nix-ts :tangle pkgs/flake/swarsel-deploy/default.nix
# heavily inspired from https://github.com/oddlama/nix-config/blob/d42cbde676001a7ad8a3cace156e050933a4dcc3/pkgs/deploy.nix # heavily inspired from https://github.com/oddlama/nix-config/blob/d42cbde676001a7ad8a3cace156e050933a4dcc3/pkgs/deploy.nix
{ name, bc, nix-output-monitor, writeShellApplication, ... }: { name, bc, nix-output-monitor, writeShellApplication, ... }:
writeShellApplication { writeShellApplication {
@ -20814,12 +20873,12 @@ AppImage version of mgba in which the lua scripting works.
#+end_src #+end_src
*** swarsel-build **** swarsel-build
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: h:c3362d4e-d3a8-43e8-9ef7-272b6de0572e :CUSTOM_ID: h:c3362d4e-d3a8-43e8-9ef7-272b6de0572e
:END: :END:
#+begin_src nix-ts :tangle pkgs/swarsel-build/default.nix #+begin_src nix-ts :tangle pkgs/flake/swarsel-build/default.nix
{ name, nix-output-monitor, writeShellApplication, ... }: { name, nix-output-monitor, writeShellApplication, ... }:
writeShellApplication { writeShellApplication {
runtimeInputs = [ nix-output-monitor ]; runtimeInputs = [ nix-output-monitor ];
@ -20838,14 +20897,14 @@ AppImage version of mgba in which the lua scripting works.
#+end_src #+end_src
*** swarsel-instantiate **** swarsel-instantiate
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: h:95ebfd13-1f6b-427f-950d-e30c1ed6f9fa :CUSTOM_ID: h:95ebfd13-1f6b-427f-950d-e30c1ed6f9fa
:END: :END:
This is a convenience function that calls =nix-instantiate= with a number of flags that I need in order to evaluate nix expressions in org-src blocks. This is a convenience function that calls =nix-instantiate= with a number of flags that I need in order to evaluate nix expressions in org-src blocks.
#+begin_src nix-ts :tangle pkgs/swarsel-instantiate/default.nix #+begin_src nix-ts :tangle pkgs/flake/swarsel-instantiate/default.nix
{ name, writeShellApplication, ... }: { name, writeShellApplication, ... }:
writeShellApplication { writeShellApplication {
inherit name; inherit name;
@ -20857,7 +20916,7 @@ This is a convenience function that calls =nix-instantiate= with a number of fla
#+end_src #+end_src
*** sshrm **** sshrm
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: h:02842543-caca-4d4c-a4d2-7ac749b5c136 :CUSTOM_ID: h:02842543-caca-4d4c-a4d2-7ac749b5c136
:END: :END:
@ -20878,7 +20937,7 @@ This programs simply runs ssh-keygen on the last host that I tried to ssh into.
fi fi
#+end_src #+end_src
#+begin_src nix-ts :tangle pkgs/sshrm/default.nix #+begin_src nix-ts :tangle pkgs/flake/sshrm/default.nix
{ self, name, writeShellApplication, openssh }: { self, name, writeShellApplication, openssh }:
writeShellApplication { writeShellApplication {
inherit name; inherit name;
@ -20886,11 +20945,11 @@ This programs simply runs ssh-keygen on the last host that I tried to ssh into.
text = builtins.readFile "${self}/files/scripts/${name}.sh"; text = builtins.readFile "${self}/files/scripts/${name}.sh";
} }
#+end_src #+end_src
*** endme **** endme
Sometimes my DE crashes after putting it to suspend - to be precise, it happens when I put it into suspend when I have multiple screens plugged in. I have never taken the time to debug the issue, but instead just switch to a different TTY and then use this script to kill the hanging session. Sometimes my DE crashes after putting it to suspend - to be precise, it happens when I put it into suspend when I have multiple screens plugged in. I have never taken the time to debug the issue, but instead just switch to a different TTY and then use this script to kill the hanging session.
#+begin_src nix-ts :tangle pkgs/endme/default.nix #+begin_src nix-ts :tangle pkgs/flake/endme/default.nix
{ name, writeShellApplication, ... }: { name, writeShellApplication, ... }:
writeShellApplication { writeShellApplication {
inherit name; inherit name;
@ -20903,12 +20962,12 @@ Sometimes my DE crashes after putting it to suspend - to be precise, it happens
#+end_src #+end_src
*** git-replace **** git-replace
This script allows for quick git replace of a string. This script allows for quick git replace of a string.
#+begin_src nix-ts :tangle pkgs/git-replace/default.nix #+begin_src nix-ts :tangle pkgs/flake/git-replace/default.nix
{ name, writeShellApplication, git, gnugrep, findutils, ... }: { name, writeShellApplication, git, gnugrep, findutils, ... }:
writeShellApplication { writeShellApplication {
@ -20974,6 +21033,43 @@ This script allows for quick git replace of a string.
} }
#+end_src
*** Packages (config)
#+begin_src nix-ts :tangle pkgs/config/default.nix
{ self, homeConfig, lib, pkgs, ... }:
let
mkPackages = names: pkgs: builtins.listToAttrs (map
(name: {
inherit name;
value = pkgs.callPackage "${self}/pkgs/config/${name}" { inherit self name homeConfig; };
})
names);
packageNames = lib.swarselsystems.readNix "pkgs/config";
in
mkPackages packageNames pkgs
#+end_src
**** cdr
#+begin_src nix-ts :tangle pkgs/config/cdr/default.nix
{ name, homeConfig, writeShellApplication, fzf, ... }:
writeShellApplication {
inherit name;
runtimeInputs = [ fzf ];
text = ''
DOCUMENT_DIR_WORK=${homeConfig.systemd.user.sessionVariables.DOCUMENT_DIR_WORK or ""}
DOCUMENT_DIR_PRIV=${homeConfig.systemd.user.sessionVariables.DOCUMENT_DIR_PRIV}
FLAKE=${homeConfig.home.sessionVariables.FLAKE}
cd "$( (find "$DOCUMENT_DIR_WORK" "$DOCUMENT_DIR_PRIV" -maxdepth 1 && echo "$FLAKE") | fzf )"
'';
}
#+end_src #+end_src
** Profiles ** Profiles
@ -22117,6 +22213,22 @@ This function was found here: [[https://www.reddit.com/r/emacs/comments/re31i6/h
(define-key minibuffer-local-filename-completion-map (define-key minibuffer-local-filename-completion-map
[C-backspace] #'up-directory) [C-backspace] #'up-directory)
#+end_src
**** Magit: List directories using vertico/consult
#+begin_src emacs-lisp
(defun swarsel/consult-magit-repos ()
(interactive)
(require 'magit)
(let* ((repos (magit-list-repos))
(repo (consult--read repos
:prompt "Magit repo: "
:require-match t
:history 'my/consult-magit-repos-history
:sort t)))
(magit-status repo)))
#+end_src #+end_src
**** org-mode: General setup **** org-mode: General setup
:PROPERTIES: :PROPERTIES:
@ -22321,6 +22433,7 @@ I also define some keybinds to some combinations directly. Those are used mostly
"l" '(:ignore l :which-key "links") "l" '(:ignore l :which-key "links")
"lc" '((lambda () (interactive) (progn (find-file swarsel-swarsel-org-filepath) (org-overview) )) :which-key "SwarselSystems.org") "lc" '((lambda () (interactive) (progn (find-file swarsel-swarsel-org-filepath) (org-overview) )) :which-key "SwarselSystems.org")
"le" '((lambda () (interactive) (progn (find-file swarsel-swarsel-org-filepath) (goto-char (org-find-exact-headline-in-buffer "Emacs") ) (org-overview) (org-cycle) )) :which-key "Emacs.org") "le" '((lambda () (interactive) (progn (find-file swarsel-swarsel-org-filepath) (goto-char (org-find-exact-headline-in-buffer "Emacs") ) (org-overview) (org-cycle) )) :which-key "Emacs.org")
"lr" '(swarsel/consult-magit-repos :which-key "List repos")
"ln" '((lambda () (interactive) (progn (find-file swarsel-swarsel-org-filepath) (goto-char (org-find-exact-headline-in-buffer "System") ) (org-overview) (org-cycle))) :which-key "Nixos.org") "ln" '((lambda () (interactive) (progn (find-file swarsel-swarsel-org-filepath) (goto-char (org-find-exact-headline-in-buffer "System") ) (org-overview) (org-cycle))) :which-key "Nixos.org")
"lp" '((lambda () (interactive) (projectile-switch-project)) :which-key "switch project") "lp" '((lambda () (interactive) (projectile-switch-project)) :which-key "switch project")
"lg" '((lambda () (interactive) (magit-list-repositories)) :which-key "list git repos") "lg" '((lambda () (interactive) (magit-list-repositories)) :which-key "list git repos")
@ -22370,6 +22483,7 @@ I also define some keybinds to some combinations directly. Those are used mostly
"C-c D" 'crux-duplicate-and-comment-current-line-or-region "C-c D" 'crux-duplicate-and-comment-current-line-or-region
"<DUMMY-m>" 'swarsel/last-buffer "<DUMMY-m>" 'swarsel/last-buffer
"M-\\" 'indent-region "M-\\" 'indent-region
"M-r" 'swarsel/consult-magit-repos
"<Paste>" 'yank "<Paste>" 'yank
"<Cut>" 'kill-region "<Cut>" 'kill-region
"<Copy>" 'kill-ring-save "<Copy>" 'kill-ring-save
@ -24083,8 +24197,8 @@ Also, Emacs needs a little extra love to accept my Yubikey for git commits etc.
(use-package magit (use-package magit
:config :config
(setq magit-repository-directories `((,swarsel-work-projects-directory . 1) (setq magit-repository-directories `((,swarsel-work-projects-directory . 3)
(,swarsel-private-projects-directory . 1) (,swarsel-private-projects-directory . 3)
("~/.dotfiles/" . 0))) ("~/.dotfiles/" . 0)))
:custom :custom
(magit-display-buffer-function #'magit-display-buffer-same-window-except-diff-v1)) ; stay in the same window (magit-display-buffer-function #'magit-display-buffer-same-window-except-diff-v1)) ; stay in the same window

View file

@ -162,6 +162,17 @@ create a new one."
(define-key minibuffer-local-filename-completion-map (define-key minibuffer-local-filename-completion-map
[C-backspace] #'up-directory) [C-backspace] #'up-directory)
(defun swarsel/consult-magit-repos ()
(interactive)
(require 'magit)
(let* ((repos (magit-list-repos))
(repo (consult--read repos
:prompt "Magit repo: "
:require-match t
:history 'my/consult-magit-repos-history
:sort t)))
(magit-status repo)))
(defun swarsel/org-mode-setup () (defun swarsel/org-mode-setup ()
(variable-pitch-mode 1) (variable-pitch-mode 1)
(add-hook 'org-tab-first-hook 'org-end-of-line) (add-hook 'org-tab-first-hook 'org-end-of-line)
@ -272,6 +283,7 @@ create a new one."
"l" '(:ignore l :which-key "links") "l" '(:ignore l :which-key "links")
"lc" '((lambda () (interactive) (progn (find-file swarsel-swarsel-org-filepath) (org-overview) )) :which-key "SwarselSystems.org") "lc" '((lambda () (interactive) (progn (find-file swarsel-swarsel-org-filepath) (org-overview) )) :which-key "SwarselSystems.org")
"le" '((lambda () (interactive) (progn (find-file swarsel-swarsel-org-filepath) (goto-char (org-find-exact-headline-in-buffer "Emacs") ) (org-overview) (org-cycle) )) :which-key "Emacs.org") "le" '((lambda () (interactive) (progn (find-file swarsel-swarsel-org-filepath) (goto-char (org-find-exact-headline-in-buffer "Emacs") ) (org-overview) (org-cycle) )) :which-key "Emacs.org")
"lr" '(swarsel/consult-magit-repos :which-key "List repos")
"ln" '((lambda () (interactive) (progn (find-file swarsel-swarsel-org-filepath) (goto-char (org-find-exact-headline-in-buffer "System") ) (org-overview) (org-cycle))) :which-key "Nixos.org") "ln" '((lambda () (interactive) (progn (find-file swarsel-swarsel-org-filepath) (goto-char (org-find-exact-headline-in-buffer "System") ) (org-overview) (org-cycle))) :which-key "Nixos.org")
"lp" '((lambda () (interactive) (projectile-switch-project)) :which-key "switch project") "lp" '((lambda () (interactive) (projectile-switch-project)) :which-key "switch project")
"lg" '((lambda () (interactive) (magit-list-repositories)) :which-key "list git repos") "lg" '((lambda () (interactive) (magit-list-repositories)) :which-key "list git repos")
@ -321,6 +333,7 @@ create a new one."
"C-c D" 'crux-duplicate-and-comment-current-line-or-region "C-c D" 'crux-duplicate-and-comment-current-line-or-region
"<DUMMY-m>" 'swarsel/last-buffer "<DUMMY-m>" 'swarsel/last-buffer
"M-\\" 'indent-region "M-\\" 'indent-region
"M-r" 'swarsel/consult-magit-repos
"<Paste>" 'yank "<Paste>" 'yank
"<Cut>" 'kill-region "<Cut>" 'kill-region
"<Copy>" 'kill-ring-save "<Copy>" 'kill-ring-save
@ -1241,8 +1254,8 @@ create a new one."
(use-package magit (use-package magit
:config :config
(setq magit-repository-directories `((,swarsel-work-projects-directory . 1) (setq magit-repository-directories `((,swarsel-work-projects-directory . 3)
(,swarsel-private-projects-directory . 1) (,swarsel-private-projects-directory . 3)
("~/.dotfiles/" . 0))) ("~/.dotfiles/" . 0)))
:custom :custom
(magit-display-buffer-function #'magit-display-buffer-same-window-except-diff-v1)) ; stay in the same window (magit-display-buffer-function #'magit-display-buffer-same-window-except-diff-v1)) ; stay in the same window

5043
index.html

File diff suppressed because it is too large Load diff

View file

@ -7,6 +7,7 @@
pass-fuzzel pass-fuzzel
cdw cdw
cdb cdb
cdr
bak bak
timer timer
e e
@ -31,8 +32,6 @@
sshrm sshrm
endme endme
git-replace git-replace
rustdesk-vbc
]; ];
}; };
} }

View file

@ -47,9 +47,20 @@ in
}; };
}; };
# nixpkgs.overlays = lib.mkIf isNixos (lib.mkForce null);
nixpkgs = lib.mkIf (!isNixos) { nixpkgs = lib.mkIf (!isNixos) {
overlays = [ outputs.overlays.default ]; overlays = [
outputs.overlays.default
(final: prev:
let
additions = final: _: import "${self}/pkgs/config" {
inherit self config lib;
pkgs = final;
homeConfig = config;
};
in
additions final prev
)
];
config = { config = {
allowUnfree = true; allowUnfree = true;
}; };

View file

@ -620,6 +620,19 @@
_children = [{ Resize._args = [ "Increase" ]; }]; _children = [{ Resize._args = [ "Increase" ]; }];
}; };
} }
{
bind = {
_args = [ "Alt r" ];
_children = [
{
WriteChars._args = [ "source cdr" ];
}
{
WriteChars._args = [ "\n" ];
}
];
};
}
{ {
bind = { bind = {
_args = [ "Alt f" ]; _args = [ "Alt f" ];

View file

@ -35,7 +35,8 @@ in
hotspot = "nmcli connection up local; nmcli device wifi hotspot;"; hotspot = "nmcli connection up local; nmcli device wifi hotspot;";
youtube-dl = "yt-dlp"; youtube-dl = "yt-dlp";
cat-orig = "cat"; cat-orig = "cat";
cdr = "cd \"$( (find $DOCUMENT_DIR_WORK $DOCUMENT_DIR_PRIV -maxdepth 1 && echo $FLAKE) | fzf )\""; # cdr = "cd \"$( (find $DOCUMENT_DIR_WORK $DOCUMENT_DIR_PRIV -maxdepth 1 && echo $FLAKE) | fzf )\"";
cdr = "source cdr";
nix-ldd-ldd = "LD_LIBRARY_PATH=$NIX_LD_LIBRARY_PATH ldd"; nix-ldd-ldd = "LD_LIBRARY_PATH=$NIX_LD_LIBRARY_PATH ldd";
nix-ldd = "LD_LIBRARY_PATH=$NIX_LD_LIBRARY_PATH ldd"; nix-ldd = "LD_LIBRARY_PATH=$NIX_LD_LIBRARY_PATH ldd";
nix-ldd-locate = "nix-locate --minimal --top-level -w "; nix-ldd-locate = "nix-locate --minimal --top-level -w ";

View file

@ -1,14 +1,17 @@
{ self, config, pkgs, lib, vars, nixosConfig ? config, ... }: { self, inputs, config, pkgs, lib, vars, nixosConfig ? config, ... }:
let let
inherit (config.swarselsystems) homeDir; inherit (config.swarselsystems) homeDir mainUser;
inherit (nixosConfig.repo.secrets.local.mail) allMailAddresses; inherit (nixosConfig.repo.secrets.local.mail) allMailAddresses;
inherit (nixosConfig.repo.secrets.local.work) mailAddress; inherit (nixosConfig.repo.secrets.local.work) mailAddress;
certsSopsFile = self + /secrets/certs/secrets.yaml;
in in
{ {
options.swarselmodules.optional.work = lib.mkEnableOption "optional work settings"; options.swarselmodules.optional.work = lib.mkEnableOption "optional work settings";
config = lib.mkIf config.swarselmodules.optional.work config = lib.mkIf config.swarselmodules.optional.work
{ ({
home.packages = with pkgs; [ home = {
packages = with pkgs; [
stable.teams-for-linux stable.teams-for-linux
shellcheck shellcheck
dig dig
@ -21,8 +24,13 @@ in
# openstackclient # openstackclient
vscode vscode
];
rustdesk-vbc
];
sessionVariables = {
AWS_CA_BUNDLE = nixosConfig.sops.secrets.harica-root-ca.path;
};
};
systemd.user.sessionVariables = { systemd.user.sessionVariables = {
DOCUMENT_DIR_WORK = lib.mkForce "${homeDir}/Documents/Work"; DOCUMENT_DIR_WORK = lib.mkForce "${homeDir}/Documents/Work";
} // lib.optionalAttrs (!config.swarselsystems.isPublic) { } // lib.optionalAttrs (!config.swarselsystems.isPublic) {
@ -644,6 +652,15 @@ in
}; };
}; };
} // lib.optionalAttrs (inputs ? sops) {
sops.secrets = lib.mkIf (!config.swarselsystems.isPublic && !config.swarselsystems.isNixos) {
harica-root-ca = {
sopsFile = certsSopsFile;
path = "${homeDir}/.aws/certs/harica-root.pem";
owner = mainUser;
};
}; };
});
} }

View file

@ -1,8 +1,10 @@
{ lib, config, globals, ... }: { self, lib, config, globals, ... }:
let let
inherit (config.swarselsystems) mainUser homeDir; inherit (config.swarselsystems) mainUser homeDir;
inherit (config.repo.secrets.common.emacs) radicaleUser; inherit (config.repo.secrets.common.emacs) radicaleUser;
modules = config.home-manager.users.${mainUser}.swarselmodules; modules = config.home-manager.users.${mainUser}.swarselmodules;
certsSopsFile = self + /secrets/certs/secrets.yaml;
in in
{ {
config = lib.mkIf config.swarselsystems.withHomeManager { config = lib.mkIf config.swarselsystems.withHomeManager {
@ -22,6 +24,8 @@ in
github-nixpkgs-review-token = { owner = mainUser; }; github-nixpkgs-review-token = { owner = mainUser; };
}) // (lib.optionalAttrs modules.emacs { }) // (lib.optionalAttrs modules.emacs {
emacs-radicale-pw = { owner = mainUser; }; emacs-radicale-pw = { owner = mainUser; };
}) // (lib.optionalAttrs modules.optional.work {
harica-root-ca = { sopsFile = certsSopsFile; path = "${homeDir}/.aws/certs/harica-root.pem"; owner = mainUser; };
}) // (lib.optionalAttrs modules.anki { }) // (lib.optionalAttrs modules.anki {
anki-user = { owner = mainUser; }; anki-user = { owner = mainUser; };
anki-pw = { owner = mainUser; }; anki-pw = { owner = mainUser; };

View file

@ -107,7 +107,19 @@ in
system.stateVersion = lib.mkDefault "23.05"; system.stateVersion = lib.mkDefault "23.05";
nixpkgs = { nixpkgs = {
overlays = [ outputs.overlays.default ]; overlays = [
outputs.overlays.default
(final: prev:
let
additions = final: _: import "${self}/pkgs/config" {
inherit self config lib;
pkgs = final;
homeConfig = config.home-manager.users.${config.swarselsystems.mainUser};
};
in
additions final prev
)
];
config = { config = {
allowUnfree = true; allowUnfree = true;
}; };

View file

@ -9,7 +9,7 @@ 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/flake" { pkgs = final; inherit self lib; }
// { // {
swarsel-nix = import inputs.swarsel-nix { swarsel-nix = import inputs.swarsel-nix {
pkgs = prev; pkgs = prev;

View file

@ -17,7 +17,7 @@
inherit (self.outputs) lib; inherit (self.outputs) lib;
in in
{ {
packages = lib.swarselsystems.forEachLinuxSystem (pkgs: import "${self}/pkgs" { inherit self lib pkgs; }); packages = lib.swarselsystems.forEachLinuxSystem (pkgs: import "${self}/pkgs/flake" { inherit self lib pkgs; });
}; };
perSystem = { pkgs, system, ... }: perSystem = { pkgs, system, ... }:

View file

@ -0,0 +1,13 @@
{ name, homeConfig, writeShellApplication, fzf, ... }:
writeShellApplication {
inherit name;
runtimeInputs = [ fzf ];
text = ''
DOCUMENT_DIR_WORK=${homeConfig.systemd.user.sessionVariables.DOCUMENT_DIR_WORK or ""}
DOCUMENT_DIR_PRIV=${homeConfig.systemd.user.sessionVariables.DOCUMENT_DIR_PRIV}
FLAKE=${homeConfig.home.sessionVariables.FLAKE}
cd "$( (find "$DOCUMENT_DIR_WORK" "$DOCUMENT_DIR_PRIV" -maxdepth 1 && echo "$FLAKE") | fzf )"
'';
}

11
pkgs/config/default.nix Normal file
View file

@ -0,0 +1,11 @@
{ self, homeConfig, lib, pkgs, ... }:
let
mkPackages = names: pkgs: builtins.listToAttrs (map
(name: {
inherit name;
value = pkgs.callPackage "${self}/pkgs/config/${name}" { inherit self name homeConfig; };
})
names);
packageNames = lib.swarselsystems.readNix "pkgs/config";
in
mkPackages packageNames pkgs

View file

@ -3,9 +3,9 @@ let
mkPackages = names: pkgs: builtins.listToAttrs (map mkPackages = names: pkgs: builtins.listToAttrs (map
(name: { (name: {
inherit name; inherit name;
value = pkgs.callPackage "${self}/pkgs/${name}" { inherit self name; }; value = pkgs.callPackage "${self}/pkgs/flake/${name}" { inherit self name; };
}) })
names); names);
packageNames = lib.swarselsystems.readNix "pkgs"; packageNames = lib.swarselsystems.readNix "pkgs/flake";
in in
mkPackages packageNames pkgs mkPackages packageNames pkgs

View file

@ -1,10 +0,0 @@
{ name, writeShellApplication, sway, ... }:
writeShellApplication {
inherit name;
runtimeInputs = [ sway ];
text = ''
swaymsg '[app_id=at.yrlf.wl_mirror] move to workspace 14:T'
swaymsg '[app_id=at.yrlf.wl_mirror] fullscreen'
'';
}

View file

@ -2,6 +2,7 @@ pia-vpn1-crl-pem: ENC[AES256_GCM,data:vIngU8HivUQpJLZyOVTeBTmlaDxfPnyTfPakYk7aEf
pia-vpn1-ca-pem: ENC[AES256_GCM,data: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,iv:bIQdKQPSsaR7cY6mfTZdqQTowEcga4H9yzNANHKcNEw=,tag:oto4R2yeumVxKoPy+U2eKQ==,type:str] pia-vpn1-ca-pem: ENC[AES256_GCM,data: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,iv:bIQdKQPSsaR7cY6mfTZdqQTowEcga4H9yzNANHKcNEw=,tag:oto4R2yeumVxKoPy+U2eKQ==,type:str]
kanidm-self-signed-crt: ENC[AES256_GCM,data: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,iv:LIuJpGoxOCBX73ZyjIUl9mYVA0wcRdue8EJyfqQzcK0=,tag:5W2UVbOH3Lma99lVxDdkNw==,type:str] kanidm-self-signed-crt: ENC[AES256_GCM,data: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,iv:LIuJpGoxOCBX73ZyjIUl9mYVA0wcRdue8EJyfqQzcK0=,tag:5W2UVbOH3Lma99lVxDdkNw==,type:str]
kanidm-self-signed-key: ENC[AES256_GCM,data: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,iv:p7TGpmls39IYix0rHgeeV+ngkQkXybrUtKQCOF+M8rk=,tag:lNmUlYzd/zxvCfpk50TXTw==,type:str] kanidm-self-signed-key: ENC[AES256_GCM,data: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,iv:p7TGpmls39IYix0rHgeeV+ngkQkXybrUtKQCOF+M8rk=,tag:lNmUlYzd/zxvCfpk50TXTw==,type:str]
harica-root-ca: ENC[AES256_GCM,data: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,iv:0FTPt+bXgzOngxxFqoP1Sg12j0BMk4pJj5JIsHWPIuQ=,tag:tigFlF0LxzG8Za5+kbG4fA==,type:str]
sops: sops:
age: age:
- recipient: age16lnmuuxfuxxtty3atnhut8wseppwnhp7rdhmxqd5tdvs9qnjffjq42sqyy - recipient: age16lnmuuxfuxxtty3atnhut8wseppwnhp7rdhmxqd5tdvs9qnjffjq42sqyy
@ -67,8 +68,8 @@ sops:
bHRhZnBtUXZybm9VT2Y3TGhjbCtsSVEKfEo8jXw9wQdncX1gWev5xxz4s9XRMrX0 bHRhZnBtUXZybm9VT2Y3TGhjbCtsSVEKfEo8jXw9wQdncX1gWev5xxz4s9XRMrX0
OampKe7MO30BsocF2blkgRQqJe8aZqFgZt0AvSBc7OyuI3mRZMPCBQ== OampKe7MO30BsocF2blkgRQqJe8aZqFgZt0AvSBc7OyuI3mRZMPCBQ==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2025-07-05T11:01:02Z" lastmodified: "2025-11-19T14:09:27Z"
mac: ENC[AES256_GCM,data:XnLmZ65mZqoTHQfSKdvPVr+IGb1mb0nFRQLBiVPSyKfg9ABlqwsht3sykR+enDkmIk1urRewpKvPRr1YyLKAezHaE2I5CQdRwMViGTxbtN18SCqlKcL6CgGzC7UzAI8A2jVqB6D9swCx63TEOwnaWySBFnQuOog58R43rhxcJJc=,iv:U0ZMZZyuRJVAE0el0tRAdvHS7qtqU+z2kN78XEZOW2k=,tag:TrPIoG7cxLBDgG4vXJ5NiQ==,type:str] mac: ENC[AES256_GCM,data:tZ6QzVPivueZiC9Qfb3KNZAv02QatgHRNnlM+Y0iV4BZkYoBjxeDojutizvAMwUarnubUdk5I6m2OZK1mvVDZKXyI6zALX4JMeT2xYQWRHYzHpOygLhhGwTFVhV+0C4jN+eJFF2cNf9lu7NuZI9ylZSOY8I3YKUl+l0l3CkXUl4=,iv:JSGOUq+j9T/NXspn70dfu0J4ISV6vVFZUe/Z1CirrJk=,tag:Hm9N55f9qMc056nSTR1piw==,type:str]
pgp: pgp:
- created_at: "2025-11-11T17:51:25Z" - created_at: "2025-11-11T17:51:25Z"
enc: |- enc: |-
@ -102,4 +103,4 @@ sops:
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: 4BE7925262289B476DBBC17B76FD3810215AE097 fp: 4BE7925262289B476DBBC17B76FD3810215AE097
unencrypted_suffix: _unencrypted unencrypted_suffix: _unencrypted
version: 3.10.2 version: 3.11.0