feat[client]: improve tridactyl binds
Some checks are pending
Flake check / Check flake (push) Waiting to run

This commit is contained in:
Leon Schwarzäugl 2025-10-21 13:18:32 +02:00
parent deaa3d5889
commit 41240db5c9
Signed by: swarsel
GPG key ID: 26A54C31F2A4FD84
3 changed files with 342 additions and 217 deletions

View file

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2025-10-11 Sa 23:49 -->
<!-- 2025-10-21 Di 13:09 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>SwarselSystems: NixOS + Emacs Configurationo</title>
@ -443,8 +443,8 @@
<li><a href="#h:15b581ab-09fe-4f84-af26-2f1fbf7d726b">3.2.5.8. Hibernation</a></li>
<li><a href="#h:86fb3236-9e18-43f0-8a08-3a2acd61cc98">3.2.5.9. BTRFS</a></li>
<li><a href="#h:bbf2ecb6-c8ff-4462-b5d5-d45b28604ddf">3.2.5.10. work</a></li>
<li><a href="#org1dbc3ca">3.2.5.11. microvm-host</a></li>
<li><a href="#orgbf7a0ff">3.2.5.12. microvm-guest</a></li>
<li><a href="#orgcb2fcb7">3.2.5.11. microvm-host</a></li>
<li><a href="#orgcf7e090">3.2.5.12. microvm-guest</a></li>
</ul>
</li>
</ul>
@ -472,7 +472,7 @@
<li><a href="#h:4486b02f-4fb8-432b-bfa2-2e786206341d">3.3.1.12. Sourcing environment variables</a></li>
<li><a href="#h:f0e0b580-2e1c-4ca6-a983-f05d3ebbbcde">3.3.1.13. General Programs: bottom, imv, less, lesspipe, sioyek, bat, carapace, wlogout, swayr, yt-dlp, mpv, jq, nix-index, ripgrep, pandoc, fzf, zoxide, timidity</a></li>
<li><a href="#h:64dbbb9e-8097-4c1b-813c-8c10cf9b9748">3.3.1.14. nix-index</a></li>
<li><a href="#orge4d0c6e">3.3.1.15. nix-your-shell</a></li>
<li><a href="#org0bc7fbc">3.3.1.15. nix-your-shell</a></li>
<li><a href="#h:ac0e5e62-0dbf-4782-9a96-9e558eae86ae">3.3.1.16. password-store</a></li>
<li><a href="#h:1ab84307-b3fb-4c32-9def-4b89a53a8547">3.3.1.17. direnv</a></li>
<li><a href="#h:1bd6b0c7-f201-43e2-9624-6c50de00a1f6">3.3.1.18. eza</a></li>
@ -495,12 +495,12 @@
<li><a href="#h:99d05729-df35-4958-9940-3319d6a41359">3.3.1.31.3. Mako</a></li>
<li><a href="#h:388e71be-f00a-4d45-ade1-218ce942057d">3.3.1.31.4. SwayOSD</a></li>
<li><a href="#h:1598c90b-f195-41a0-9132-94612edf3586">3.3.1.31.5. yubikey-touch-detector</a></li>
<li><a href="#orga8387ad">3.3.1.31.6. blueman-applet</a></li>
<li><a href="#org3e03cb0">3.3.1.31.7. network-manager-applet</a></li>
<li><a href="#org2248ba5">3.3.1.31.8. obsidian service for tray</a></li>
<li><a href="#org349a389">3.3.1.31.9. anki service for tray</a></li>
<li><a href="#org367079d">3.3.1.31.10. element service for tray</a></li>
<li><a href="#orga654c87">3.3.1.31.11. vesktop service for tray</a></li>
<li><a href="#org2568de8">3.3.1.31.6. blueman-applet</a></li>
<li><a href="#org84c1201">3.3.1.31.7. network-manager-applet</a></li>
<li><a href="#org43f6e21">3.3.1.31.8. obsidian service for tray</a></li>
<li><a href="#orgaa41ee3">3.3.1.31.9. anki service for tray</a></li>
<li><a href="#orgcb4f253">3.3.1.31.10. element service for tray</a></li>
<li><a href="#orgb766ab8">3.3.1.31.11. vesktop service for tray</a></li>
</ul>
</li>
<li><a href="#h:02df9dfc-d1af-4a37-a7a0-d8da0af96a20">3.3.1.32. Sway</a></li>
@ -509,17 +509,17 @@
<li><a href="#h:7d384e3b-1be7-4644-b304-ada4af0b692b">3.3.1.35. gpg-agent</a></li>
<li><a href="#h:74e236be-a977-4d38-b8c5-0b9feef8af91">3.3.1.36. gammastep</a></li>
<li><a href="#h:d1fb3075-ad52-4c1b-ba45-5ddbd0d3b708">3.3.1.37. Spicetify</a></li>
<li><a href="#org76d116f">3.3.1.38. Obsidian</a></li>
<li><a href="#orga008c2b">3.3.1.39. Anki</a></li>
<li><a href="#org890c5fe">3.3.1.40. Element-desktop</a></li>
<li><a href="#orgc19c8f7">3.3.1.41. Hexchat</a></li>
<li><a href="#org4080c55">3.3.1.42. obs-studio</a></li>
<li><a href="#org0a8046e">3.3.1.43. spotify-player</a></li>
<li><a href="#orga246a4c">3.3.1.44. vesktop</a></li>
<li><a href="#org47c4dda">3.3.1.45. batsignal</a></li>
<li><a href="#orgafe3a00">3.3.1.46. autotiling</a></li>
<li><a href="#orgc152f86">3.3.1.47. swayidle</a></li>
<li><a href="#orgd6d4110">3.3.1.48. swaylock</a></li>
<li><a href="#org3f19616">3.3.1.38. Obsidian</a></li>
<li><a href="#orgd0e6499">3.3.1.39. Anki</a></li>
<li><a href="#orgb6ac1d9">3.3.1.40. Element-desktop</a></li>
<li><a href="#org68fbf73">3.3.1.41. Hexchat</a></li>
<li><a href="#orgea285a9">3.3.1.42. obs-studio</a></li>
<li><a href="#orgd003fee">3.3.1.43. spotify-player</a></li>
<li><a href="#org8616bfa">3.3.1.44. vesktop</a></li>
<li><a href="#orgab3d85e">3.3.1.45. batsignal</a></li>
<li><a href="#orgde9dc92">3.3.1.46. autotiling</a></li>
<li><a href="#orge7185ca">3.3.1.47. swayidle</a></li>
<li><a href="#org4e801e4">3.3.1.48. swaylock</a></li>
</ul>
</li>
<li><a href="#h:b1a00339-6e9b-4ae4-b5dc-6fd5669a2ddb">3.3.2. Server</a>
@ -584,7 +584,8 @@
<li><a href="#h:c3362d4e-d3a8-43e8-9ef7-272b6de0572e">3.5.31. swarsel-build</a></li>
<li><a href="#h:95ebfd13-1f6b-427f-950d-e30c1ed6f9fa">3.5.32. swarsel-instantiate</a></li>
<li><a href="#h:02842543-caca-4d4c-a4d2-7ac749b5c136">3.5.33. sshrm</a></li>
<li><a href="#orgfa84748">3.5.34. endme</a></li>
<li><a href="#org6a36b50">3.5.34. endme</a></li>
<li><a href="#orgb3faf9e">3.5.35. git-replace</a></li>
</ul>
</li>
<li><a href="#h:f0f1c961-3e7a-47b8-99ab-1654bb45dffc">3.6. Profiles</a>
@ -593,7 +594,7 @@
<ul>
<li><a href="#h:32d654de-8db2-403a-9a27-4c46d7b9172d">3.6.1.1. Personal</a></li>
<li><a href="#h:b926f0c8-7968-4079-924c-a5d0ae4d3a45">3.6.1.2. Minimal</a></li>
<li><a href="#org76fa275">3.6.1.3. Optionals</a></li>
<li><a href="#orgefd2161">3.6.1.3. Optionals</a></li>
<li><a href="#h:b79fbb59-9cf2-48eb-b469-2589223dda95">3.6.1.4. Chaostheatre</a></li>
<li><a href="#h:cb3631a8-9c1b-42f2-ab01-502c7b4c273d">3.6.1.5. Work</a></li>
<li><a href="#h:87a83b10-3c2f-407c-89aa-922ad77748a4">3.6.1.6. Uni</a></li>
@ -836,7 +837,7 @@
</div>
</div>
<p>
<b>This file has 95668 words spanning 24729 lines and was last revised on 2025-10-11 23:49:08 +0200.</b>
<b>This file has 96128 words spanning 24842 lines and was last revised on 2025-10-21 13:09:36 +0200.</b>
</p>
<p>
@ -905,7 +906,7 @@ This section defines my Emacs configuration. For a while, I considered to use ry
</p>
<p>
My emacs is built using the emacs-overlay nix flake, which builds a bleeding edge emacs on wayland (pgtk) with utilities like treesitter support. By executing the below source block, the current build setting can be updated at any time, and you can see my most up-to-date build options (last updated: 2025-10-11 23:49:08 +0200)
My emacs is built using the emacs-overlay nix flake, which builds a bleeding edge emacs on wayland (pgtk) with utilities like treesitter support. By executing the below source block, the current build setting can be updated at any time, and you can see my most up-to-date build options (last updated: 2025-10-21 13:09:36 +0200)
</p></li>
</ul>
@ -917,7 +918,7 @@ system-configuration-options
</div>
<pre class="example">
--prefix=/nix/store/qrqw5n6fivwcqfpg83x28bj1klpgfzg8-emacs-git-pgtk-20250928.0 --disable-build-details --with-modules --with-pgtk --with-compress-install --with-toolkit-scroll-bars --with-native-compilation --without-imagemagick --with-mailutils --without-small-ja-dic --with-tree-sitter --without-xinput2 --without-xwidgets --with-dbus --with-selinux
--prefix=/nix/store/x7csgsyxznfca0sn3mank9rp0xd7dh5n-emacs-git-pgtk-20251013.0 --disable-build-details --with-modules --with-pgtk --disable-gc-mark-trace --with-compress-install --with-toolkit-scroll-bars --with-native-compilation --without-imagemagick --with-mailutils --without-small-ja-dic --with-tree-sitter --without-xinput2 --without-xwidgets --with-dbus --with-selinux
</pre>
@ -1352,8 +1353,9 @@ This provides devshell support for flake-parts</li>
swarsel-modules.url = "github:Swarsel/swarsel-modules/main";
swarsel-nix.url = "github:Swarsel/swarsel-nix/main";
home-manager = {
url = "github:nix-community/home-manager";
# url = "github:Swarsel/home-manager/module/pizauth";
# url = "github:nix-community/home-manager";
# url = "github:Swarsel/home-manager/main";
url = "github:JuneStepp/home-manager/anki-fix-booleans";
inputs.nixpkgs.follows = "nixpkgs";
};
swarsel.url = "github:Swarsel/.dotfiles";
@ -3074,8 +3076,8 @@ in
# '';
boot = {
# kernelPackages = lib.mkDefault pkgs.kernel.linuxPackages;
kernelPackages = lib.mkDefault pkgs.linuxPackages_latest;
kernelPackages = lib.mkDefault pkgs.kernel.linuxPackages;
# kernelPackages = lib.mkDefault pkgs.linuxPackages_latest;
binfmt.emulatedSystems = [ "aarch64-linux" ];
initrd = {
availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" "usb_storage" "cryptd" "usbhid" "sd_mod" "r8152" ];
@ -3091,7 +3093,8 @@ in
kernelModules = [ "kvm-amd" ];
kernelParams = [
"mem_sleep_default=deep"
# deep sleep is discontinued by amd
# "mem_sleep_default=deep"
# supposedly, this helps save power on laptops
# in reality (at least on this model), this just generate excessive heat on the CPUs
# "amd_pstate=passive"
@ -5372,6 +5375,7 @@ We enable the use of <code>home-manager</code> as a NixoS module. A nice trick h
useGlobalPkgs = true;
useUserPackages = true;
verbose = true;
backupFileExtension = "hm-bak";
users.${config.swarselsystems.mainUser}.imports = [
inputs.nix-index-database.homeModules.nix-index
inputs.sops-nix.homeManagerModules.sops
@ -5896,6 +5900,9 @@ Mostly used to install some compilers and lsp's that I want to have available wh
"jitsi-meet-1.0.8043"
"electron-29.4.6"
"SDL_ttf-2.0.11"
# audacity?
"mbedtls-2.28.10"
# "qtwebengine-5.15.19"
];
};
}
@ -11830,29 +11837,36 @@ This holds configuration that is specific to framework laptops.
<div class="outline-text-5" id="text-h:15b581ab-09fe-4f84-af26-2f1fbf7d726b">
<div class="org-src-container">
<pre class="src src-nix-ts">{ lib, config, ... }:
{
options.swarselmodules.optional.hibernation = lib.mkEnableOption "optional amd gpu settings";
options.swarselsystems = {
hibernation = {
offset = lib.mkOption {
type = lib.types.int;
default = 0;
};
resumeDevice = lib.mkOption {
type = lib.types.str;
default = "/dev/disk/by-label/nixos";
{
options.swarselmodules.optional.hibernation = lib.mkEnableOption "optional amd gpu settings";
options.swarselsystems = {
hibernation = {
offset = lib.mkOption {
type = lib.types.int;
default = 0;
};
resumeDevice = lib.mkOption {
type = lib.types.str;
default = "/dev/disk/by-label/nixos";
};
};
};
};
config = lib.mkIf config.swarselmodules.optional.hibernation {
boot = {
kernelParams = [
"resume_offset=${builtins.toString config.swarselsystems.hibernation.offset}"
];
inherit (config.swarselsystems.hibernation) resumeDevice;
config = lib.mkIf config.swarselmodules.optional.hibernation {
boot = {
kernelParams = [
"resume_offset=${builtins.toString config.swarselsystems.hibernation.offset}"
# "mem_sleep_default=deep"
];
inherit (config.swarselsystems.hibernation) resumeDevice;
};
systemd.services."systemd-suspend-then-hibernate".aliases = [ "systemd-suspend.service" ];
powerManagement.enable = true;
systemd.sleep.extraConfig = ''
HibernateDelaySec=120m
SuspendState=freeze
'';
};
};
}
}
</pre>
</div>
</div>
@ -11978,11 +11992,13 @@ in
id = "VBC";
type = "wifi";
autoconnect-priority = "500";
uuid = "3988f10e-6451-381f-9330-a12e66f45051";
secondaries = "48d09de4-0521-47d7-9bd5-43f97e23ff82"; # vpn uuid
};
ipv4 = { method = "auto"; };
ipv6 = {
addr-gen-mode = "default";
# addr-gen-mode = "default";
addr-gen-mode = "stable-privacy";
method = "auto";
};
proxy = { };
@ -11995,7 +12011,7 @@ in
ssid = "VBC";
};
wifi-security = {
auth-alg = "open";
# auth-alg = "open";
key-mgmt = "wpa-eap";
};
};
@ -12025,20 +12041,22 @@ in
runAsRoot = true;
swtpm.enable = true;
vhostUserPackages = with pkgs; [ virtiofsd ];
ovmf = {
enable = true;
packages = [
(pkgs.OVMFFull.override {
secureBoot = true;
tpmSupport = true;
}).fd
];
};
# ovmf = {
# enable = true;
# packages = [
# (pkgs.OVMFFull.override {
# secureBoot = true;
# tpmSupport = true;
# }).fd
# ];
# };
};
};
};
environment.systemPackages = with pkgs; [
remmina
# gp-onsaml-gui
stable24_11.python39
qemu
packer
@ -12092,6 +12110,7 @@ in
};
};
# ACTION=="remove", ENV{PRODUCT}=="3/1050/407/110", RUN+="${pkgs.kanshi}/bin/kanshictl switch laptoponly"
udev.extraRules = ''
# lock screen when yubikey removed
ACTION=="remove", ENV{PRODUCT}=="3/1050/407/110", RUN+="${pkgs.systemd}/bin/systemctl suspend"
@ -12115,8 +12134,8 @@ in
</div>
</div>
</div>
<div id="outline-container-org1dbc3ca" class="outline-5">
<h5 id="org1dbc3ca"><span class="section-number-5">3.2.5.11.</span> microvm-host</h5>
<div id="outline-container-orgcb2fcb7" class="outline-5">
<h5 id="orgcb2fcb7"><span class="section-number-5">3.2.5.11.</span> microvm-host</h5>
<div class="outline-text-5" id="text-3-2-5-11">
<p>
Some standard options that should be set for every microvm host.
@ -12142,8 +12161,8 @@ Some standard options that should be set for every microvm host.
</div>
</div>
</div>
<div id="outline-container-orgbf7a0ff" class="outline-5">
<h5 id="orgbf7a0ff"><span class="section-number-5">3.2.5.12.</span> microvm-guest</h5>
<div id="outline-container-orgcf7e090" class="outline-5">
<h5 id="orgcf7e090"><span class="section-number-5">3.2.5.12.</span> microvm-guest</h5>
<div class="outline-text-5" id="text-3-2-5-12">
<p>
Some standard options that should be set vor every microvm guest. We set the default
@ -12672,6 +12691,7 @@ This is just a separate container for derivations defined in <a href="#h:64a5cc1
swarselzellij
sshrm
endme
git-replace
rustdesk-vbc
];
@ -12924,48 +12944,51 @@ TODO: Non-NixOS machines (=sp3) should not use these by default, but instead the
};
xdg.mimeApps = {
enable = true;
defaultApplications = {
"application/epub+zip" = [ "calibre-ebook-viewer.desktop" ];
"application/metalink+xml" = [ "emacsclient.desktop" ];
"application/msword" = [ "writer.desktop" ];
"application/pdf" = [ "org.gnome.Evince.desktop" ];
"application/sql" = [ "emacsclient.desktop" ];
"application/vnd.ms-excel" = [ "calc.desktop" ];
"application/vnd.ms-powerpoint" = [ "impress.desktop" ];
"application/x-extension-htm" = [ "firefox.desktop" ];
"application/x-extension-html" = [ "firefox.desktop" ];
"application/x-extension-shtml" = [ "firefox.desktop" ];
"application/x-extension-xht" = [ "firefox.desktop" ];
"application/x-extension-xhtml" = [ "firefox.desktop" ];
"application/xhtml+xml" = [ "firefox.desktop" ];
"audio/flac" = [ "mpv.desktop" ];
"audio/mp3" = [ "mpv.desktop" ];
"audio/ogg" = [ "mpv.desktop" ];
"audio/wav" = [ "mpv.desktop" ];
"image/gif" = [ "imv.desktop" ];
"image/jpeg" = [ "imv.desktop" ];
"image/png" = [ "imv.desktop" ];
"image/svg" = [ "imv.desktop" ];
"image/vnd.adobe.photoshop" = [ "gimp.desktop" ];
"image/vnd.dxf" = [ "org.inkscape.Inkscape.desktop" ];
"image/webp" = [ "firefox.desktop" ];
"text/csv" = [ "emacsclient.desktop" ];
"text/html" = [ "firefox.desktop" ];
"text/plain" = [ "emacsclient.desktop" ];
"video/3gp" = [ "umpv.desktop" ];
"video/flv" = [ "umpv.desktop" ];
"video/mkv" = [ "umpv.desktop" ];
"video/mp4" = [ "umpv.desktop" ];
"x-scheme-handler/chrome" = [ "firefox.desktop" ];
"x-scheme-handler/http" = [ "firefox.desktop" ];
"x-scheme-handler/https" = [ "firefox.desktop" ];
};
associations = {
added = {
"application/x-zerosize" = [ "emacsclient.desktop" ];
xdg = {
configFile."mimeapps.list".force = true;
mimeApps = {
enable = true;
defaultApplications = {
"application/epub+zip" = [ "calibre-ebook-viewer.desktop" ];
"application/metalink+xml" = [ "emacsclient.desktop" ];
"application/msword" = [ "writer.desktop" ];
"application/pdf" = [ "org.gnome.Evince.desktop" ];
"application/sql" = [ "emacsclient.desktop" ];
"application/vnd.ms-excel" = [ "calc.desktop" ];
"application/vnd.ms-powerpoint" = [ "impress.desktop" ];
"application/x-extension-htm" = [ "firefox.desktop" ];
"application/x-extension-html" = [ "firefox.desktop" ];
"application/x-extension-shtml" = [ "firefox.desktop" ];
"application/x-extension-xht" = [ "firefox.desktop" ];
"application/x-extension-xhtml" = [ "firefox.desktop" ];
"application/xhtml+xml" = [ "firefox.desktop" ];
"audio/flac" = [ "mpv.desktop" ];
"audio/mp3" = [ "mpv.desktop" ];
"audio/ogg" = [ "mpv.desktop" ];
"audio/wav" = [ "mpv.desktop" ];
"image/gif" = [ "imv.desktop" ];
"image/jpeg" = [ "imv.desktop" ];
"image/png" = [ "imv.desktop" ];
"image/svg" = [ "imv.desktop" ];
"image/vnd.adobe.photoshop" = [ "gimp.desktop" ];
"image/vnd.dxf" = [ "org.inkscape.Inkscape.desktop" ];
"image/webp" = [ "firefox.desktop" ];
"text/csv" = [ "emacsclient.desktop" ];
"text/html" = [ "firefox.desktop" ];
"text/plain" = [ "emacsclient.desktop" ];
"video/3gp" = [ "umpv.desktop" ];
"video/flv" = [ "umpv.desktop" ];
"video/mkv" = [ "umpv.desktop" ];
"video/mp4" = [ "umpv.desktop" ];
"x-scheme-handler/chrome" = [ "firefox.desktop" ];
"x-scheme-handler/http" = [ "firefox.desktop" ];
"x-scheme-handler/https" = [ "firefox.desktop" ];
};
associations = {
added = {
"application/x-zerosize" = [ "emacsclient.desktop" ];
"application/epub+zip" = [ "calibre-ebook-viewer.desktop" ];
};
};
};
};
@ -13085,44 +13108,90 @@ This section is for programs that require no further configuration. zsh Integrat
<div class="org-src-container">
<pre class="src src-nix-ts">{ lib, config, pkgs, ... }:
{
options.swarselmodules.programs = lib.mkEnableOption "programs settings";
config = lib.mkIf config.swarselmodules.programs {
programs = {
bat = {
enable = true;
extraPackages = with pkgs.bat-extras; [ batdiff batman batgrep batwatch ];
{
options.swarselmodules.programs = lib.mkEnableOption "programs settings";
config = lib.mkIf config.swarselmodules.programs {
programs = {
bat = {
enable = true;
extraPackages = with pkgs.bat-extras; [ batdiff batman batgrep batwatch ];
};
bottom.enable = true;
carapace.enable = true;
fzf = {
enable = true;
enableBashIntegration = false;
enableZshIntegration = false;
};
imv.enable = true;
jq.enable = true;
less.enable = true;
lesspipe.enable = true;
mpv.enable = true;
pandoc.enable = true;
rclone.enable = true;
ripgrep.enable = true;
sioyek.enable = true;
swayr.enable = true;
timidity.enable = true;
wlogout ={
enable = true;
layout = [
{
label = "lock";
action = "loginctl lock-session";
text = "Lock";
keybind = "l";
circular = true;
}
{
label = "hibernate";
action = "systemctl hibernate";
text = "Hibernate";
keybind = "h";
circular = true;
}
{
label = "logout";
action = "loginctl terminate-user $USER";
text = "Logout";
keybind = "u";
circular = true;
}
{
label = "shutdown";
action = "systemctl poweroff";
text = "Shutdown";
keybind = "p";
circular = true;
}
{
label = "suspend";
action = "systemctl suspend";
text = "Suspend";
keybind = "s";
circular = true;
}
{
label = "reboot";
action = "systemctl reboot";
text = "Reboot";
keybind = "r";
circular = true;
}
];
};
yt-dlp.enable = true;
zoxide = {
enable = true;
enableZshIntegration = true;
options = [
"--cmd cd"
];
};
};
};
bottom.enable = true;
carapace.enable = true;
fzf = {
enable = true;
enableBashIntegration = false;
enableZshIntegration = false;
};
imv.enable = true;
jq.enable = true;
less.enable = true;
lesspipe.enable = true;
mpv.enable = true;
pandoc.enable = true;
rclone.enable = true;
ripgrep.enable = true;
sioyek.enable = true;
swayr.enable = true;
timidity.enable = true;
wlogout.enable = true;
yt-dlp.enable = true;
zoxide = {
enable = true;
enableZshIntegration = true;
options = [
"--cmd cd"
];
};
};
};
}
}
</pre>
</div>
</div>
@ -13163,8 +13232,8 @@ nix-index provides a way to find out which packages are provided by which deriva
</div>
</div>
</div>
<div id="outline-container-orge4d0c6e" class="outline-5">
<h5 id="orge4d0c6e"><span class="section-number-5">3.3.1.15.</span> nix-your-shell</h5>
<div id="outline-container-org0bc7fbc" class="outline-5">
<h5 id="org0bc7fbc"><span class="section-number-5">3.3.1.15.</span> nix-your-shell</h5>
<div class="outline-text-5" id="text-3-3-1-15">
<div class="org-src-container">
<pre class="src src-nix-ts">{ lib, config, ... }:
@ -14877,8 +14946,8 @@ The `extraConfig` section here CANNOT be reindented. This has something to do wi
</div>
</div>
</div>
<div id="outline-container-orga8387ad" class="outline-6">
<h6 id="orga8387ad"><span class="section-number-6">3.3.1.31.6.</span> blueman-applet</h6>
<div id="outline-container-org2568de8" class="outline-6">
<h6 id="org2568de8"><span class="section-number-6">3.3.1.31.6.</span> blueman-applet</h6>
<div class="outline-text-6" id="text-3-3-1-31-6">
<div class="org-src-container">
<pre class="src src-nix-ts">{ lib, config, ... }:
@ -14892,8 +14961,8 @@ The `extraConfig` section here CANNOT be reindented. This has something to do wi
</div>
</div>
</div>
<div id="outline-container-org3e03cb0" class="outline-6">
<h6 id="org3e03cb0"><span class="section-number-6">3.3.1.31.7.</span> network-manager-applet</h6>
<div id="outline-container-org84c1201" class="outline-6">
<h6 id="org84c1201"><span class="section-number-6">3.3.1.31.7.</span> network-manager-applet</h6>
<div class="outline-text-6" id="text-3-3-1-31-7">
<div class="org-src-container">
<pre class="src src-nix-ts">{ lib, config, ... }:
@ -14908,8 +14977,8 @@ The `extraConfig` section here CANNOT be reindented. This has something to do wi
</div>
</div>
</div>
<div id="outline-container-org2248ba5" class="outline-6">
<h6 id="org2248ba5"><span class="section-number-6">3.3.1.31.8.</span> obsidian service for tray</h6>
<div id="outline-container-org43f6e21" class="outline-6">
<h6 id="org43f6e21"><span class="section-number-6">3.3.1.31.8.</span> obsidian service for tray</h6>
<div class="outline-text-6" id="text-3-3-1-31-8">
<div class="org-src-container">
<pre class="src src-nix-ts">{ lib, config, ... }:
@ -14943,8 +15012,8 @@ The `extraConfig` section here CANNOT be reindented. This has something to do wi
</div>
</div>
</div>
<div id="outline-container-org349a389" class="outline-6">
<h6 id="org349a389"><span class="section-number-6">3.3.1.31.9.</span> anki service for tray</h6>
<div id="outline-container-orgaa41ee3" class="outline-6">
<h6 id="orgaa41ee3"><span class="section-number-6">3.3.1.31.9.</span> anki service for tray</h6>
<div class="outline-text-6" id="text-3-3-1-31-9">
<div class="org-src-container">
<pre class="src src-nix-ts">{ lib, config, ... }:
@ -14982,8 +15051,8 @@ The `extraConfig` section here CANNOT be reindented. This has something to do wi
</div>
</div>
</div>
<div id="outline-container-org367079d" class="outline-6">
<h6 id="org367079d"><span class="section-number-6">3.3.1.31.10.</span> element service for tray</h6>
<div id="outline-container-orgcb4f253" class="outline-6">
<h6 id="orgcb4f253"><span class="section-number-6">3.3.1.31.10.</span> element service for tray</h6>
<div class="outline-text-6" id="text-3-3-1-31-10">
<div class="org-src-container">
<pre class="src src-nix-ts">{ lib, config, pkgs, ... }:
@ -15017,8 +15086,8 @@ The `extraConfig` section here CANNOT be reindented. This has something to do wi
</div>
</div>
</div>
<div id="outline-container-orga654c87" class="outline-6">
<h6 id="orga654c87"><span class="section-number-6">3.3.1.31.11.</span> vesktop service for tray</h6>
<div id="outline-container-orgb766ab8" class="outline-6">
<h6 id="orgb766ab8"><span class="section-number-6">3.3.1.31.11.</span> vesktop service for tray</h6>
<div class="outline-text-6" id="text-3-3-1-31-11">
<div class="org-src-container">
<pre class="src src-nix-ts">{ lib, config, pkgs, ... }:
@ -15311,10 +15380,9 @@ Currently, I am too lazy to explain every option here, but most of it is very se
{ command = "sleep 60; kitty -T spotifytui -o confirm_os_window_close=0 spotify_player"; }
];
seat = {
"*" = [
{ hide_cursor = "when-typing enable"; }
{ hide_cursor = "2000"; }
];
"*" = {
hide_cursor = "when-typing enable";
};
};
window = {
border = 1;
@ -15481,7 +15549,7 @@ Currently, I am too lazy to explain every option here, but most of it is very se
exec systemctl --user import-environment
# exec swayidle -w
# seat * hide_cursor 2000
seat * hide_cursor 2000
exec_always kill -1 $(pidof kanshi)
@ -15768,7 +15836,10 @@ Currently, I am too lazy to explain every option here, but most of it is very se
in
{
name = "lidopen";
exec = [ "${pkgs.swaybg}/bin/swaybg --output '${monitor}' --image ${self}/files/wallpaper/standwp.png --mode ${config.stylix.imageScalingMode}" ];
exec = [
"${pkgs.swaybg}/bin/swaybg --output '${config.swarselsystems.sharescreen}' --image ${config.swarselsystems.wallpaper} --mode ${config.stylix.imageScalingMode}"
"${pkgs.swaybg}/bin/swaybg --output '${monitor}' --image ${self}/files/wallpaper/standwp.png --mode ${config.stylix.imageScalingMode}"
];
outputs = [
{
criteria = config.swarselsystems.sharescreen;
@ -15914,7 +15985,7 @@ in
programs.spicetify = {
enable = true;
# spotifyPackage = pkgs.stable24_11.spotify;
spotifyPackage = pkgs.spotify;
spotifyPackage = pkgs.stable.spotify;
enabledExtensions = with spicePkgs.extensions; [
fullAppDisplay
shuffle
@ -15930,22 +16001,27 @@ in
</div>
</div>
</div>
<div id="outline-container-org76d116f" class="outline-5">
<h5 id="org76d116f"><span class="section-number-5">3.3.1.38.</span> Obsidian</h5>
<div id="outline-container-org3f19616" class="outline-5">
<h5 id="org3f19616"><span class="section-number-5">3.3.1.38.</span> Obsidian</h5>
<div class="outline-text-5" id="text-3-3-1-38">
<div class="org-src-container">
<pre class="src src-nix-ts">{ lib, config, pkgs, nixosConfig ? config, ... }:
let
moduleName = "obsidian";
inherit (nixosConfig.repo.secrets.common.obsidian) userIgnoreFilters;
name = "Main";
in
{
options.swarselmodules.${moduleName} = lib.mkEnableOption "enable ${moduleName} with settings";
config = lib.mkIf config.swarselmodules.${moduleName} {
home.file = {
"${config.programs.obsidian.vaults.${name}.target}/.obsidian/app.json".force = true;
"${config.programs.obsidian.vaults.${name}.target}/.obsidian/appearance.json".force = true;
"${config.programs.obsidian.vaults.${name}.target}/.obsidian/core-plugins.json".force = true;
};
programs.obsidian =
let
name = "Main";
in
{
enable = true;
package = pkgs.obsidian;
@ -16070,8 +16146,8 @@ in
</div>
</div>
</div>
<div id="outline-container-orga008c2b" class="outline-5">
<h5 id="orga008c2b"><span class="section-number-5">3.3.1.39.</span> Anki</h5>
<div id="outline-container-orgd0e6499" class="outline-5">
<h5 id="orgd0e6499"><span class="section-number-5">3.3.1.39.</span> Anki</h5>
<div class="outline-text-5" id="text-3-3-1-39">
<div class="org-src-container">
<pre class="src src-nix-ts">{ lib, config, pkgs, globals, nixosConfig ? config, ... }:
@ -16092,7 +16168,7 @@ in
programs.anki = {
enable = true;
package = pkgs.anki;
# # package = pkgs.anki;
hideBottomBar = true;
hideBottomBarMode = "always";
hideTopBar = true;
@ -16103,6 +16179,7 @@ in
sync = {
autoSync = false; # sync on profile close will delay system shutdown
syncMedia = true;
autoSyncMediaMinutes = 5;
url = "https://${globals.services.ankisync.domain}";
usernameFile = nixosConfig.sops.secrets.anki-user.path;
# this is not the password but the syncKey
@ -16142,8 +16219,8 @@ in
</div>
</div>
</div>
<div id="outline-container-org890c5fe" class="outline-5">
<h5 id="org890c5fe"><span class="section-number-5">3.3.1.40.</span> Element-desktop</h5>
<div id="outline-container-orgb6ac1d9" class="outline-5">
<h5 id="orgb6ac1d9"><span class="section-number-5">3.3.1.40.</span> Element-desktop</h5>
<div class="outline-text-5" id="text-3-3-1-40">
<div class="org-src-container">
<pre class="src src-nix-ts">{ lib, config, ... }:
@ -16179,8 +16256,8 @@ in
</div>
</div>
</div>
<div id="outline-container-orgc19c8f7" class="outline-5">
<h5 id="orgc19c8f7"><span class="section-number-5">3.3.1.41.</span> Hexchat</h5>
<div id="outline-container-org68fbf73" class="outline-5">
<h5 id="org68fbf73"><span class="section-number-5">3.3.1.41.</span> Hexchat</h5>
<div class="outline-text-5" id="text-3-3-1-41">
<div class="org-src-container">
<pre class="src src-nix-ts">{ lib, config, nixosConfig ? config, ... }:
@ -16204,8 +16281,8 @@ in
</div>
</div>
</div>
<div id="outline-container-org4080c55" class="outline-5">
<h5 id="org4080c55"><span class="section-number-5">3.3.1.42.</span> obs-studio</h5>
<div id="outline-container-orgea285a9" class="outline-5">
<h5 id="orgea285a9"><span class="section-number-5">3.3.1.42.</span> obs-studio</h5>
<div class="outline-text-5" id="text-3-3-1-42">
<div class="org-src-container">
<pre class="src src-nix-ts">{ lib, config, ... }:
@ -16225,8 +16302,8 @@ in
</div>
</div>
</div>
<div id="outline-container-org0a8046e" class="outline-5">
<h5 id="org0a8046e"><span class="section-number-5">3.3.1.43.</span> spotify-player</h5>
<div id="outline-container-orgd003fee" class="outline-5">
<h5 id="orgd003fee"><span class="section-number-5">3.3.1.43.</span> spotify-player</h5>
<div class="outline-text-5" id="text-3-3-1-43">
<div class="org-src-container">
<pre class="src src-nix-ts">{ lib, config, ... }:
@ -16246,8 +16323,8 @@ in
</div>
</div>
</div>
<div id="outline-container-orga246a4c" class="outline-5">
<h5 id="orga246a4c"><span class="section-number-5">3.3.1.44.</span> vesktop</h5>
<div id="outline-container-org8616bfa" class="outline-5">
<h5 id="org8616bfa"><span class="section-number-5">3.3.1.44.</span> vesktop</h5>
<div class="outline-text-5" id="text-3-3-1-44">
<div class="org-src-container">
<pre class="src src-nix-ts">{ lib, config, ... }:
@ -16333,29 +16410,41 @@ in
</div>
</div>
</div>
<div id="outline-container-org47c4dda" class="outline-5">
<h5 id="org47c4dda"><span class="section-number-5">3.3.1.45.</span> batsignal</h5>
<div id="outline-container-orgab3d85e" class="outline-5">
<h5 id="orgab3d85e"><span class="section-number-5">3.3.1.45.</span> batsignal</h5>
<div class="outline-text-5" id="text-3-3-1-45">
<div class="org-src-container">
<pre class="src src-nix-ts">{ lib, config, ... }:
let
moduleName = "batsignal";
in
{
options.swarselmodules.${moduleName} = lib.mkEnableOption "enable ${moduleName} and settings";
config = lib.mkIf config.swarselmodules.${moduleName} {
services.${moduleName} = {
enable = true;
{
options.swarselmodules.${moduleName} = lib.mkEnableOption "enable ${moduleName} and settings";
config = lib.mkIf config.swarselmodules.${moduleName} {
services.${moduleName} = {
enable = true;
extraArgs = [
"-W"
" Consider charging the battery"
"-C"
" Battery is low; plug in charger now"
"-D"
" Device will lose power in a few seconds"
"-c"
"10"
"-d"
"5"
];
};
};
};
}
}
</pre>
</div>
</div>
</div>
<div id="outline-container-orgafe3a00" class="outline-5">
<h5 id="orgafe3a00"><span class="section-number-5">3.3.1.46.</span> autotiling</h5>
<div id="outline-container-orgde9dc92" class="outline-5">
<h5 id="orgde9dc92"><span class="section-number-5">3.3.1.46.</span> autotiling</h5>
<div class="outline-text-5" id="text-3-3-1-46">
<div class="org-src-container">
<pre class="src src-nix-ts">{ lib, config, ... }:
@ -16376,8 +16465,8 @@ in
</div>
</div>
</div>
<div id="outline-container-orgc152f86" class="outline-5">
<h5 id="orgc152f86"><span class="section-number-5">3.3.1.47.</span> swayidle</h5>
<div id="outline-container-orge7185ca" class="outline-5">
<h5 id="orge7185ca"><span class="section-number-5">3.3.1.47.</span> swayidle</h5>
<div class="outline-text-5" id="text-3-3-1-47">
<div class="org-src-container">
<pre class="src src-nix-ts">{ lib, config, pkgs, ... }:
@ -16391,7 +16480,7 @@ in
let
brightnessctl = "${lib.getExe pkgs.brightnessctl}";
swaylock = "${lib.getExe pkgs.swaylock-effects}";
suspend = "${pkgs.systemd}/bin/systemctl";
suspend = "${pkgs.systemd}/bin/systemctl suspend";
in
{
enable = true;
@ -16406,6 +16495,7 @@ in
];
events = [
# { event = "before-sleep"; command = "${lib.getExe pkgs.swaylock-effects} -f --screenshots --clock --effect-blur 7x5 --effect-vignette 0.5:0.5 --fade-in 0.2"; }
# { event = "after-resume"; command = "${swaylock} -f "; }
{ event = "before-sleep"; command = "${swaylock} -f "; }
{ event = "lock"; command = "${swaylock} -f "; }
];
@ -16417,8 +16507,8 @@ in
</div>
</div>
</div>
<div id="outline-container-orgd6d4110" class="outline-5">
<h5 id="orgd6d4110"><span class="section-number-5">3.3.1.48.</span> swaylock</h5>
<div id="outline-container-org4e801e4" class="outline-5">
<h5 id="org4e801e4"><span class="section-number-5">3.3.1.48.</span> swaylock</h5>
<div class="outline-text-5" id="text-3-3-1-48">
<div class="org-src-container">
<pre class="src src-nix-ts">{ lib, config, pkgs, ... }:
@ -16759,16 +16849,16 @@ The rest of the settings is at <a href="#h:bbf2ecb6-c8ff-4462-b5d5-d45b28604ddf"
awscli = {
enable = true;
package = pkgs.stable24_05.awscli2;
settings = {
"default" = { };
"profile s3-imagebuilder-prod" = { };
};
credentials = {
"s3-imagebuilder-prod" = {
aws_access_key_id = "5OYXY4879EJG9I91K1B6";
credential_process = "${pkgs.pass}/bin/pass show work/awscli/s3-imagebuilder-prod/secret-key";
};
};
# settings = {
# "default" = { };
# "profile s3-imagebuilder-prod" = { };
# };
# credentials = {
# "s3-imagebuilder-prod" = {
# aws_access_key_id = "5OYXY4879EJG9I91K1B6";
# credential_process = "${pkgs.pass}/bin/pass show work/awscli/s3-imagebuilder-prod/secret-key";
# };
# };
};
git.userEmail = lib.mkForce gitMail;
@ -16932,6 +17022,7 @@ The rest of the settings is at <a href="#h:bbf2ecb6-c8ff-4462-b5d5-d45b28604ddf"
profile = {
name = "lidopen";
exec = [
"${pkgs.swaybg}/bin/swaybg --output '${config.swarselsystems.sharescreen}' --image ${config.swarselsystems.wallpaper} --mode ${config.stylix.imageScalingMode}"
"${pkgs.swaybg}/bin/swaybg --output 'HP Inc. HP 732pk CNC4080YL5' --image ${self}/files/wallpaper/botanicswp.png --mode ${config.stylix.imageScalingMode}"
"${pkgs.swaybg}/bin/swaybg --output 'Hewlett Packard HP Z24i CN44250RDT' --image ${self}/files/wallpaper/op6wp.png --mode ${config.stylix.imageScalingMode}"
];
@ -16966,6 +17057,7 @@ The rest of the settings is at <a href="#h:bbf2ecb6-c8ff-4462-b5d5-d45b28604ddf"
{
name = "lidopen";
exec = [
"${pkgs.swaybg}/bin/swaybg --output '${config.swarselsystems.sharescreen}' --image ${config.swarselsystems.wallpaper} --mode ${config.stylix.imageScalingMode}"
"${pkgs.swaybg}/bin/swaybg --output '${monitor}' --image ${self}/files/wallpaper/navidrome.png --mode ${config.stylix.imageScalingMode}"
"${pkgs.kanshare}/bin/kanshare ${config.swarselsystems.sharescreen} '${monitor}'"
];
@ -19621,8 +19713,8 @@ writeShellApplication {
</div>
</div>
</div>
<div id="outline-container-orgfa84748" class="outline-4">
<h4 id="orgfa84748"><span class="section-number-4">3.5.34.</span> endme</h4>
<div id="outline-container-org6a36b50" class="outline-4">
<h4 id="org6a36b50"><span class="section-number-4">3.5.34.</span> endme</h4>
<div class="outline-text-4" id="text-3-5-34">
<p>
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.
@ -19639,6 +19731,30 @@ writeShellApplication {
'';
}
</pre>
</div>
</div>
</div>
<div id="outline-container-orgb3faf9e" class="outline-4">
<h4 id="orgb3faf9e"><span class="section-number-4">3.5.35.</span> git-replace</h4>
<div class="outline-text-4" id="text-3-5-35">
<p>
This script allows for quick git replace of a string.
</p>
<div class="org-src-container">
<pre class="src src-nix-ts">{ name, writeShellApplication, git, gnugrep, findutils, ... }:
writeShellApplication {
inherit name;
runtimeInputs = [ git gnugrep findutils ];
text = ''
git grep -l "$1" | xargs sed -i "s/$1/$2/g"
'';
}
</pre>
</div>
</div>
@ -19782,8 +19898,8 @@ in
</div>
</div>
</div>
<div id="outline-container-org76fa275" class="outline-5">
<h5 id="org76fa275"><span class="section-number-5">3.6.1.3.</span> Optionals</h5>
<div id="outline-container-orgefd2161" class="outline-5">
<h5 id="orgefd2161"><span class="section-number-5">3.6.1.3.</span> Optionals</h5>
<div class="outline-text-5" id="text-3-6-1-3">
<div class="org-src-container">
<pre class="src src-nix-ts">{ lib, config, ... }:
@ -24088,10 +24204,13 @@ bind gd tabdetach
bind gD composite tabduplicate; tabdetach
bind d composite tabprev; tabclose #
bind D tabclose
bind c hint
bind c hint -J
bindurl ^http(s)?://www\.google\.com c hint -Jc [class="LC20lb MBeuO DKV0Md"],[class="YmvwI"],[class="YyVfkd"],[class="fl"]
bindurl ^http(s)?://news\.ycombinator\.com c hint -Jc [class="titleline"],[class="age"]
bindurl ^http(s)?://lobste\.rs c hint -Jc [class="u-url"],[class="comments_label"]
bindurl ^http(s)?://reddit\.com c hint -Jc [class="title may-blank loggedin"],[class="bylink comments may-blank"]
bindurl ^http(s)?://github\.com c hint -Jc [class="Link--primary"],[class="AppHeader-button Button--secondary Button--medium Button p-0 color-fg-muted"],[class="UnderlineNav-item no-wrap js-responsive-underlinenav-item js-selected-navigation-item"],[class="prc-ActionList-ItemLabel-TmBhn"],[class="PRIVATE_TreeView-item-content-text prc-TreeView-TreeViewItemContentText-smZM-"]
bindurl ^http(s)?://vbc\.atlassian\.net\/wiki c hint -Jc [class="_1reo15vq _18m915vq _1bto1l2s _kqswh2mm _o5721q9c _syaz1fxt"],[class="_11c81ixg _1reo15vq _18m915vq _18s81b66 _kqswh2mm _k48p1wq8 _o5721q9c _1bto1l2s _u5f31b66"],[class="_1r04ze3t _kqswstnw"],[class="css-a61etj"],[class="jira-macro-table-underline-pdfexport"]
bindurl ^http(s)?://www\.google\.com gi composite focusinput -l ; text.end_of_line
" Work
@ -26874,7 +26993,7 @@ similarly, there exists an version that starts from the right.
</div>
<div id="postamble" class="status">
<p class="author">Author: Leon Schwarzäugl</p>
<p class="date">Created: 2025-10-11 Sa 23:49</p>
<p class="date">Created: 2025-10-21 Di 13:09</p>
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>