summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--kartei/lass/prism.nix3
-rw-r--r--kartei/palo/default.nix21
-rw-r--r--kartei/palo/retiolum.pub13
-rw-r--r--krebs/1systems/hotdog/config.nix4
-rw-r--r--krebs/1systems/news/config.nix11
-rw-r--r--krebs/2configs/hotdog-host.nix9
-rw-r--r--krebs/2configs/news-host.nix9
-rw-r--r--krebs/2configs/news.nix3
-rw-r--r--krebs/5pkgs/simple/fzfmenu/default.nix9
-rw-r--r--krebs/5pkgs/simple/pager.nix2
-rw-r--r--lass/1systems/aergia/config.nix6
-rw-r--r--lass/1systems/aergia/physical.nix73
-rw-r--r--lass/1systems/coaxmetal/config.nix6
-rw-r--r--lass/1systems/green/config.nix1
-rw-r--r--lass/1systems/lasspi/config.nix5
-rw-r--r--lass/1systems/lasspi/physical.nix21
-rw-r--r--lass/1systems/neoprism/config.nix1
-rw-r--r--lass/1systems/orange/config.nix1
-rw-r--r--lass/1systems/prism/config.nix1
-rw-r--r--lass/2configs/antimicrox/default.nix33
-rw-r--r--lass/2configs/antimicrox/empty.amgp20
-rw-r--r--lass/2configs/antimicrox/mouse.amgp272
-rw-r--r--lass/2configs/baseX.nix2
-rw-r--r--lass/2configs/browsers.nix14
-rw-r--r--lass/2configs/jitsi.nix14
-rw-r--r--lass/2configs/mail.nix6
-rw-r--r--lass/2configs/mumble-reminder.nix6
-rw-r--r--lass/2configs/print.nix14
-rw-r--r--lass/2configs/xdg-open.nix26
-rw-r--r--lass/2configs/xmonad.nix6
-rw-r--r--lass/3modules/browsers.nix94
-rw-r--r--lass/3modules/default.nix2
-rw-r--r--lass/3modules/xjail.nix173
33 files changed, 509 insertions, 372 deletions
diff --git a/kartei/lass/prism.nix b/kartei/lass/prism.nix
index cfc05b63..d72b167b 100644
--- a/kartei/lass/prism.nix
+++ b/kartei/lass/prism.nix
@@ -21,7 +21,7 @@ rec {
60 IN TXT ( "v=DKIM1; k=rsa; t=s; s=*; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDUv3DMndFellqu208feABEzT/PskOfTSdJCOF/HELBR0PHnbBeRoeHEm9XAcOe/Mz2t/ysgZ6JFXeFxCtoM5fG20brUMRzsVRxb9Ur5cEvOYuuRrbChYcKa+fopu8pYrlrqXD3miHISoy6ErukIYCRpXWUJHi1TlNQhLWFYqAaywIDAQAB" )
default._domainkey 60 IN TXT "k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDUv3DMndFellqu208feABEzT/PskOfTSdJCOF/HELBR0PHnbBeRoeHEm9XAcOe/Mz2t/ysgZ6JFXeFxCtoM5fG20brUMRzsVRxb9Ur5cEvOYuuRrbChYcKa+fopu8pYrlrqXD3miHISoy6ErukIYCRpXWUJHi1TlNQhLWFYqAaywIDAQAB"
cache 60 IN A ${config.krebs.hosts.prism.nets.internet.ip4.addr}
- cgit CNAME ${config.krebs.hosts.prism.nets.internet.ip4.addr}
+ cgit 60 IN A ${config.krebs.hosts.prism.nets.internet.ip4.addr}
pad 60 IN A ${config.krebs.hosts.prism.nets.internet.ip4.addr}
codi 60 IN A ${config.krebs.hosts.prism.nets.internet.ip4.addr}
go 60 IN A ${config.krebs.hosts.prism.nets.internet.ip4.addr}
@@ -38,6 +38,7 @@ rec {
mail 60 IN AAAA ${config.krebs.hosts.prism.nets.internet.ip6.addr}
flix 60 IN A ${config.krebs.hosts.prism.nets.internet.ip4.addr}
testing 60 IN A ${config.krebs.hosts.prism.nets.internet.ip4.addr}
+ schrott 60 IN A ${config.krebs.hosts.prism.nets.internet.ip4.addr}
'';
};
nets = rec {
diff --git a/kartei/palo/default.nix b/kartei/palo/default.nix
index 9d35c380..6fc9a594 100644
--- a/kartei/palo/default.nix
+++ b/kartei/palo/default.nix
@@ -17,13 +17,28 @@ let
in
{
hosts = mapAttrs hostDefaults {
- sterni = {
+ sol = {
owner = config.krebs.users.palo;
nets = {
retiolum = {
tinc.port = 720;
- aliases = [ "sterni.r" ];
- tinc.pubkey = builtins.readFile ./retiolum.pub;
+ aliases = [ "sol.r" ];
+ tinc.pubkey = ''
+ -----BEGIN RSA PUBLIC KEY-----
+ MIICCgKCAgEAxrvdMSAcOJXM1TbIIDZ+zPojrcRG3RVMfPC2/0DasRpBFSuS+L60
+ mQEs0l0ptAL6Sbr4+9gfaHkdETfYpeKB4Q4lCPahMq88YfTyB1f3tEOqW3vP22nC
+ Z+Yf+W/sTLWVRoDoS/Eok6wS95R1IQ74vr37YXdbJTD/eeX6sAJkn2I2RV5PD6Bu
+ lHsMuunAj+PyhAgqb2P393h7FN4exL0xM6UbHbgsd9OSp5qKTjZE3jeOyWmounK1
+ 7n+8pyRjI0VE47ontnj/GANwpsxRFFtRGmG/S5KhUBXMv7wZr/vaVETRphAu+KhT
+ NqdclmGkQlB/YBodzJID7C21Zz4b33kcn12TU3nc6AL5u9j3sU2sEu/22fAZBWLV
+ yOZ9l/Qe4aJkIbdL70Gvp9G8m7+M4vkdM+e/nA5cZT0N9ArI2D5ltJRd7VLVzxef
+ Y0t/bS9bVOcNt2Sgd81Ubg0OmF2paHGGboAAMqXhf3afwCMyXcDsP6sgPXOIEu7Q
+ hjuo5rg6Fu8eK9edAAQ2afl52GiFUawzjHbjGANwVyea1JTQ3uR6eBtxGOEaYpkr
+ vbl75CxLwE0YA0L3VwhJTNLMVldTrUi2M76QedjzyePkJHMijHT5+0nqTlsmjcNg
+ uv89Mh9shNKdqulfGjTAFyKjTCuUe/rCprJ5CeZWBaEuQKYkcZuMkJsCAwEAAQ==
+ -----END RSA PUBLIC KEY-----
+ '';
+ tinc.pubkey_ed25519 = "qCJvjlNz5YNOz5IEiwGaoK3InSVCL76uNl+xVBUa/AP";
};
};
};
diff --git a/kartei/palo/retiolum.pub b/kartei/palo/retiolum.pub
deleted file mode 100644
index 65284d51..00000000
--- a/kartei/palo/retiolum.pub
+++ /dev/null
@@ -1,13 +0,0 @@
------BEGIN RSA PUBLIC KEY-----
-MIICCgKCAgEA2ACttoosnRZ99o+OyMrxBdUWPqsT5btzSIQ5dU1XWqGjO4nRchCE
-8tO0b/4jqVgJVTRZVIUJQESZRlSmclsCAjdM8tsGj74CJrm7tBvgbBn2IObSs5+4
-oJWe57VsQaeHPuI2JZuGqv8Z3Esw+B07bQS5VTaC1ISo7vnLG/q5XLCbKHB9JZc/
-ztYbk4bEQHwbulfoPjD9FY3heLnTzqPw9Xr3ixao5gbAXfWNJM+iCluMq+Q2g1BD
-ozSnyYvaGLQ6h4yksDp+xuK8YCqiRj174EkXySI8Jee1CBMuI8ciX/5Q7yzvzscQ
-ZQ/MLVdx3MRW+VeT0ctaRzoA9E09ILqPe+56DjpsKzt4Ne8qeMG5HdpzO9UdNzTu
-MuibsCL7CJy5Ytl38PK+LAXHQr3Os1Z4OHjeTZ38vTAZcOUJZEkl6w9nO1XjcyBL
-rIaG+20Nx0ZU79MlJZFiG7ovlUiDfIEKNygng8v/yoTMaqMYLxQZ/leQwLMNLujo
-sku8+oV4Jvx4SyUjuAS6jgG9CnejLCnHP/yyDGdaMQSzmlzYXacLMfnPZE3r7bj1
-EjA6yQbkPixm7xLCyMm5u2leWtqtbg1oRA6Mw3UyYkNy3hiTU+jTvztEI3SCliDH
-yjGlESH4/edryKjLNjmYP77VFbM9ZSQ+QGlbMGPvjcn6XCdJGdxm3PUCAwEAAQ==
------END RSA PUBLIC KEY-----
diff --git a/krebs/1systems/hotdog/config.nix b/krebs/1systems/hotdog/config.nix
index 9849937d..70307a96 100644
--- a/krebs/1systems/hotdog/config.nix
+++ b/krebs/1systems/hotdog/config.nix
@@ -26,4 +26,8 @@
boot.isContainer = true;
networking.useDHCP = false;
+ krebs.sync-containers3.inContainer = {
+ enable = true;
+ pubkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM20tYHHvwIgrJZzR35ATzH9AlTrM1enNKEQJ7IP6lBh";
+ };
}
diff --git a/krebs/1systems/news/config.nix b/krebs/1systems/news/config.nix
index 620e6249..b27fc373 100644
--- a/krebs/1systems/news/config.nix
+++ b/krebs/1systems/news/config.nix
@@ -17,13 +17,8 @@
boot.isContainer = true;
networking.useDHCP = lib.mkForce true;
- krebs.bindfs = {
- "/var/lib/brockman" = {
- source = "/var/state/brockman";
- options = [
- "-m ${toString config.users.users.brockman.uid}:${toString config.users.users.nginx.uid}"
- ];
- clearTarget = true;
- };
+ krebs.sync-containers3.inContainer = {
+ enable = true;
+ pubkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMBVZomw68WDQy0HsHhNbWK1KpzaR5aRUG1oioE7IgCv";
};
}
diff --git a/krebs/2configs/hotdog-host.nix b/krebs/2configs/hotdog-host.nix
new file mode 100644
index 00000000..95d70376
--- /dev/null
+++ b/krebs/2configs/hotdog-host.nix
@@ -0,0 +1,9 @@
+{
+ krebs.sync-containers3.containers.hotdog = {
+ sshKey = "${toString <secrets>}/hotdog.sync.key";
+ };
+ containers.hotdog.bindMounts."/var/lib" = {
+ hostPath = "/var/lib/sync-containers3/hotdog/state";
+ isReadOnly = false;
+ };
+}
diff --git a/krebs/2configs/news-host.nix b/krebs/2configs/news-host.nix
index 07674c86..71793e51 100644
--- a/krebs/2configs/news-host.nix
+++ b/krebs/2configs/news-host.nix
@@ -1,10 +1,5 @@
{
- krebs.sync-containers.containers.news = {
- peers = [
- "shodan"
- "mors"
- "styx"
- ];
- format = "plain";
+ krebs.sync-containers3.containers.news = {
+ sshKey = "${toString <secrets>}/news.sync.key";
};
}
diff --git a/krebs/2configs/news.nix b/krebs/2configs/news.nix
index d6c6371d..9d947072 100644
--- a/krebs/2configs/news.nix
+++ b/krebs/2configs/news.nix
@@ -74,7 +74,7 @@
limits.identlen = 100;
history.enabled = false;
};
- systemd.services.brockman.bindsTo = [ "ergo.service" ];
+ systemd.services.brockman.bindsTo = [ "ergochat.service" ];
systemd.services.brockman.serviceConfig.LimitNOFILE = 16384;
systemd.services.brockman.environment.BROCKMAN_LOG_LEVEL = "DEBUG";
krebs.brockman = {
@@ -87,6 +87,7 @@
nick = "brockman";
extraChannels = [ "#all" ];
};
+ statePath = "/var/state/brockman/brockman.json";
bots = {};
};
};
diff --git a/krebs/5pkgs/simple/fzfmenu/default.nix b/krebs/5pkgs/simple/fzfmenu/default.nix
index 4527ad90..fe5d5e27 100644
--- a/krebs/5pkgs/simple/fzfmenu/default.nix
+++ b/krebs/5pkgs/simple/fzfmenu/default.nix
@@ -48,10 +48,11 @@ pkgs.writeDashBin "fzfmenu" ''
exec 4>&1
export FZFMENU_INPUT_FD=3
export FZFMENU_OUTPUT_FD=4
- exec ${pkgs.rxvt-unicode}/bin/urxvt \
- -name ${cfg.appName} \
- -title ${shell.escape cfg.windowTitle} \
- -e "$0" "$@"
+ exec ${pkgs.alacritty}/bin/alacritty \
+ --config-file /var/theme/config/alacritty.yaml \
+ --class ${cfg.appName} \
+ --title ${shell.escape cfg.windowTitle} \
+ --command "$0" "$@"
else
exec 0<&''${FZFMENU_INPUT_FD-0}
exec 1>&''${FZFMENU_OUTPUT_FD-1}
diff --git a/krebs/5pkgs/simple/pager.nix b/krebs/5pkgs/simple/pager.nix
index 506ef2eb..952b5ee1 100644
--- a/krebs/5pkgs/simple/pager.nix
+++ b/krebs/5pkgs/simple/pager.nix
@@ -33,8 +33,6 @@ pkgs.symlinkJoin {
-ti vt340 \
-xrm '*geometry: 32x10' \
-xrm '*internalBorder: 2' \
- -xrm '*background: #050505' \
- -xrm '*foreground: #d0d7d0' \
-e ${pkgs.haskellPackages.pager}/bin/pager "$@"
'')
pkgs.haskellPackages.pager
diff --git a/lass/1systems/aergia/config.nix b/lass/1systems/aergia/config.nix
index ed5bbcf1..6992db4a 100644
--- a/lass/1systems/aergia/config.nix
+++ b/lass/1systems/aergia/config.nix
@@ -26,6 +26,7 @@
<stockholm/lass/2configs/dunst.nix>
<stockholm/lass/2configs/print.nix>
<stockholm/lass/2configs/br.nix>
+ <stockholm/lass/2configs/c-base.nix>
];
system.stateVersion = "22.11";
@@ -47,11 +48,6 @@
};
hardware.pulseaudio.package = pkgs.pulseaudioFull;
- lass.browser.config = {
- fy = { browser = "chromium"; groups = [ "audio" "video" ]; hidden = true; };
- qt = { browser = "qutebrowser"; groups = [ "audio" "video" ]; hidden = true; };
- };
-
nix.trustedUsers = [ "root" "lass" ];
# nix.extraOptions = ''
diff --git a/lass/1systems/aergia/physical.nix b/lass/1systems/aergia/physical.nix
index de5f7540..02363908 100644
--- a/lass/1systems/aergia/physical.nix
+++ b/lass/1systems/aergia/physical.nix
@@ -3,6 +3,7 @@
imports = [
./config.nix
(modulesPath + "/installer/scan/not-detected.nix")
+ <stockholm/lass/2configs/antimicrox>
];
disko.devices = import ./disk.nix;
@@ -20,15 +21,41 @@
boot.kernelParams = [
# Enable energy savings during sleep
"mem_sleep_default=deep"
- "initcall_blacklist=acpi_cpufreq_init"
+
+ # use less power with pstate
+ "amd_pstate=passive"
# for ryzenadj -i
"iomem=relaxed"
+
+ # suspend
+ "resume_offset=178345675"
];
- # Enables the amd cpu scaling https://www.kernel.org/doc/html/latest/admin-guide/pm/amd-pstate.html
- # On recent AMD CPUs this can be more energy efficient.
- boot.kernelModules = [ "amd-pstate" "kvm-amd" ];
+ boot.kernelModules = [
+ # Enables the amd cpu scaling https://www.kernel.org/doc/html/latest/admin-guide/pm/amd-pstate.html
+ # On recent AMD CPUs this can be more energy efficient.
+ "amd-pstate"
+ "kvm-amd"
+
+ # needed for zenstates
+ "msr"
+
+ # zenpower
+ "zenpower"
+ ];
+
+ boot.extraModulePackages = [
+ (config.boot.kernelPackages.zenpower.overrideAttrs (old: {
+ src = pkgs.fetchFromGitea {
+ domain = "git.exozy.me";
+ owner = "a";
+ repo = "zenpower3";
+ rev = "c176fdb0d5bcba6ba2aba99ea36812e40f47751f";
+ hash = "sha256-d2WH8Zv7F0phZmEKcDiaak9On+Mo9bAFhMulT/N5FWI=";
+ };
+ }))
+ ];
# hardware.cpu.amd.updateMicrocode = true;
@@ -36,7 +63,16 @@
"amdgpu"
];
- boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "usbhid" "usb_storage" "sd_mod" ];
+ boot.initrd.availableKernelModules = [
+ "nvme"
+ "thunderbolt"
+ "xhci_pci"
+ "usbhid"
+ ];
+
+ boot.initrd.kernelModules = [
+ "amdgpu"
+ ];
environment.systemPackages = [
pkgs.vulkan-tools
@@ -54,7 +90,13 @@
hardware.video.hidpi.enable = lib.mkDefault true;
# corectrl
- programs.corectrl.enable = true;
+ programs.corectrl = {
+ enable = true;
+ gpuOverclock = {
+ enable = true;
+ ppfeaturemask = "0xffffffff";
+ };
+ };
users.users.mainUser.extraGroups = [ "corectrl" ];
# use newer ryzenadj
@@ -72,7 +114,7 @@
# keyboard quirks
services.xserver.displayManager.sessionCommands = ''
- xmodmap -e 'keycode 96 = F12 Insert F12 F12' # rebind shift + F12 to shift + insert
+ ${pkgs.xorg.xmodmap}/bin/xmodmap -e 'keycode 96 = F12 Insert F12 F12' # rebind shift + F12 to shift + insert
'';
services.udev.extraHwdb = /* sh */ ''
# disable back buttons
@@ -82,5 +124,20 @@
'';
# ignore power key
- services.logind.extraConfig = "HandlePowerKey=ignore";
+
+ # update cpu microcode
+ hardware.cpu.amd.updateMicrocode = true;
+
+ # suspend to disk
+ swapDevices = [{
+ device = "/swapfile";
+ }];
+ boot.resumeDevice = "/dev/mapper/aergia1";
+ services.logind.lidSwitch = "suspend-then-hibernate";
+ services.logind.extraConfig = ''
+ HandlePowerKey=hibernate
+ '';
+
+ # firefox touchscreen support
+ environment.sessionVariables.MOZ_USE_XINPUT2 = "1";
}
diff --git a/lass/1systems/coaxmetal/config.nix b/lass/1systems/coaxmetal/config.nix
index 2c88b68c..1df56f59 100644
--- a/lass/1systems/coaxmetal/config.nix
+++ b/lass/1systems/coaxmetal/config.nix
@@ -54,12 +54,6 @@
};
hardware.pulseaudio.package = pkgs.pulseaudioFull;
- lass.browser.config = {
- dc = { browser = "chromium"; groups = [ "audio" "video" ]; hidden = true; };
- ff = { browser = "firefox"; groups = [ "audio" "video" ]; hidden = true; };
- fy = { browser = "chromium"; groups = [ "audio" "video" ]; hidden = true; };
- };
-
nix.trustedUsers = [ "root" "lass" ];
services.tor = {
diff --git a/lass/1systems/green/config.nix b/lass/1systems/green/config.nix
index 077f7b3f..c232be9b 100644
--- a/lass/1systems/green/config.nix
+++ b/lass/1systems/green/config.nix
@@ -35,6 +35,7 @@ with import <stockholm/lib>;
systemd.tmpfiles.rules = [
"d /home/lass/.local/share 0700 lass users -"
"d /home/lass/.local 0700 lass users -"
+ "d /home/lass/.config 0700 lass users -"
"d /var/state/lass_mail 0700 lass users -"
"L+ /home/lass/Maildir - - - - ../../var/state/lass_mail"
diff --git a/lass/1systems/lasspi/config.nix b/lass/1systems/lasspi/config.nix
index 9f823dfc..d2207627 100644
--- a/lass/1systems/lasspi/config.nix
+++ b/lass/1systems/lasspi/config.nix
@@ -1,4 +1,3 @@
-with import <stockholm/lib>;
{ config, lib, pkgs, ... }:
let
in
@@ -18,9 +17,9 @@ in
};
environment.systemPackages = with pkgs; [
vim
- rxvt_unicode.terminfo
+ rxvt-unicode-unwrapped.terminfo
];
services.openssh.enable = true;
- system.stateVersion = "21.05";
+ system.stateVersion = "22.05";
}
diff --git a/lass/1systems/lasspi/physical.nix b/lass/1systems/lasspi/physical.nix
index 868bafad..07efb5ca 100644
--- a/lass/1systems/lasspi/physical.nix
+++ b/lass/1systems/lasspi/physical.nix
@@ -1,15 +1,14 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, pkgs, modulesPath, ... }:
{
- # This configuration worked on 09-03-2021 nixos-unstable @ commit 102eb68ceec
- # The image used https://hydra.nixos.org/build/134720986
imports = [
+ (modulesPath + "/installer/scan/not-detected.nix")
./config.nix
];
boot = {
# kernelPackages = pkgs.linuxPackages_rpi4;
tmpOnTmpfs = true;
- initrd.availableKernelModules = [ "usbhid" "usb_storage" ];
+ initrd.availableKernelModules = [ "usbhid" "usb_storage" "xhci_pci" ];
# ttyAMA0 is the serial console broken out to the GPIO
kernelParams = [
"8250.nr_uarts=1"
@@ -20,19 +19,23 @@
];
};
- boot.loader.raspberryPi = {
- enable = true;
- version = 4;
- };
+ # boot.loader.raspberryPi = {
+ # enable = true;
+ # version = 4;
+ # # uboot.enable = true;
+ # };
boot.loader.grub.enable = false;
+ boot.loader.generic-extlinux-compatible.enable = true;
# Required for the Wireless firmware
hardware.enableRedistributableFirmware = true;
+ networking.interfaces.eth0.useDHCP = true;
+
# Assuming this is installed on top of the disk image.
fileSystems = {
"/" = {
- device = "/dev/disk/by-label/NIXOS_SD";
+ device = "/dev/disk/by-uuid/44444444-4444-4444-8888-888888888888";
fsType = "ext4";
options = [ "noatime" ];
};
diff --git a/lass/1systems/neoprism/config.nix b/lass/1systems/neoprism/config.nix
index 7f6be782..be80e28d 100644
--- a/lass/1systems/neoprism/config.nix
+++ b/lass/1systems/neoprism/config.nix
@@ -10,6 +10,7 @@
<stockholm/lass/2configs/yellow-host.nix>
<stockholm/lass/2configs/radio/container-host.nix>
<stockholm/lass/2configs/ubik-host.nix>
+ <stockholm/krebs/2configs/hotdog-host.nix>
# other containers
<stockholm/lass/2configs/riot.nix>
diff --git a/lass/1systems/orange/config.nix b/lass/1systems/orange/config.nix
index 3bc20878..5e975dba 100644
--- a/lass/1systems/orange/config.nix
+++ b/lass/1systems/orange/config.nix
@@ -5,6 +5,7 @@ with import <stockholm/lib>;
<stockholm/lass>
<stockholm/lass/2configs>
<stockholm/lass/2configs/retiolum.nix>
+ <stockholm/lass/2configs/mumble-reminder.nix>
];
krebs.build.host = config.krebs.hosts.orange;
diff --git a/lass/1systems/prism/config.nix b/lass/1systems/prism/config.nix
index bcc8c1a0..f23778eb 100644
--- a/lass/1systems/prism/config.nix
+++ b/lass/1systems/prism/config.nix
@@ -137,7 +137,6 @@ with import <stockholm/lib>;
<stockholm/lass/2configs/jitsi.nix>
<stockholm/lass/2configs/fysiirc.nix>
<stockholm/lass/2configs/bgt-bot>
- <stockholm/lass/2configs/mumble-reminder.nix>
<stockholm/krebs/2configs/mastodon-proxy.nix>
{
services.tor = {
diff --git a/lass/2configs/antimicrox/default.nix b/lass/2configs/antimicrox/default.nix
new file mode 100644
index 00000000..16f546ce
--- /dev/null
+++ b/lass/2configs/antimicrox/default.nix
@@ -0,0 +1,33 @@
+{ config, lib, pkgs, ... }:
+{
+ systemd.services.antimicrox = {
+ wantedBy = [ "multi-user.target" ];
+ environment = {
+ DISPLAY = ":0";
+ };
+ serviceConfig = {
+ User = config.users.users.mainUser.name;
+ ExecStartPre = lib.singleton (pkgs.writeDash "init_state" "echo 0 > /tmp/gamepad.state");
+ ExecStart = "${pkgs.antimicrox}/bin/antimicrox --no-tray --hidden --profile ${./mouse.amgp}";
+ };
+ };
+
+ environment.systemPackages = [
+ (pkgs.writers.writeDashBin "gamepad_mouse_disable" ''
+ echo 1 > /tmp/gamepad.state
+ ${pkgs.antimicrox}/bin/antimicrox --profile ${./empty.amgp}
+ '')
+ (pkgs.writers.writeDashBin "gamepad_mouse_enable" ''
+ echo 0 > /tmp/gamepad.state
+ ${pkgs.antimicrox}/bin/antimicrox --profile ${./mouse.amgp}
+ '')
+ (pkgs.writers.writeDashBin "gamepad_mouse_toggle" ''
+ state=$(${pkgs.coreutils}/bin/cat /tmp/gamepad.state)
+ if [ "$state" = 1 ]; then
+ /run/current-system/sw/bin/gamepad_mouse_enable
+ else
+ /run/current-system/sw/bin/gamepad_mouse_disable
+ fi
+ '')
+ ];
+}
diff --git a/lass/2configs/antimicrox/empty.amgp b/lass/2configs/antimicrox/empty.amgp
new file mode 100644
index 00000000..0257bfe7
--- /dev/null
+++ b/lass/2configs/antimicrox/empty.amgp
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gamecontroller configversion="19" appversion="3.3.2">
+ <!--The SDL name for a joystick is included for informational purposes only.-->
+ <sdlname>XInput Controller</sdlname>
+ <!--The Unique ID for a joystick is included for informational purposes only.-->
+ <uniqueID>030000005e0400008e020000010100001118654</uniqueID>
+ <stickAxisAssociation index="2" xAxis="3" yAxis="4"/>
+ <stickAxisAssociation index="1" xAxis="1" yAxis="2"/>
+ <vdpadButtonAssociations index="1">
+ <vdpadButtonAssociation axis="0" button="12" direction="1"/>
+ <vdpadButtonAssociation axis="0" button="13" direction="4"/>
+ <vdpadButtonAssociation axis="0" button="14" direction="8"/>
+ <vdpadButtonAssociation axis="0" button="15" direction="2"/>
+ </vdpadButtonAssociations>
+ <names>
+ <controlstickname index="2">R Stick</controlstickname>
+ <controlstickname index="1">L Stick</controlstickname>
+ </names>
+ <sets/>
+</gamecontroller>
diff --git a/lass/2configs/antimicrox/mouse.amgp b/lass/2configs/antimicrox/mouse.amgp
new file mode 100644
index 00000000..313e598d
--- /dev/null
+++ b/lass/2configs/antimicrox/mouse.amgp
@@ -0,0 +1,272 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gamecontroller configversion="19" appversion="3.3.2">
+ <!--The SDL name for a joystick is included for informational purposes only.-->
+ <sdlname>XInput Controller</sdlname>
+ <!--The Unique ID for a joystick is included for informational purposes only.-->
+ <uniqueID>030000005e0400008e020000010100001118654</uniqueID>
+ <stickAxisAssociation index="2" xAxis="3" yAxis="4"/>
+ <stickAxisAssociation index="1" xAxis="1" yAxis="2"/>
+ <vdpadButtonAssociations index="1">
+ <vdpadButtonAssociation axis="0" button="12" direction="1"/>
+ <vdpadButtonAssociation axis="0" button="13" direction="4"/>
+ <vdpadButtonAssociation axis="0" button="14" direction="8"/>
+ <vdpadButtonAssociation axis="0" button="15" direction="2"/>
+ </vdpadButtonAssociations>
+ <names>
+ <controlstickname index="2">Stick 2</controlstickname>
+ <controlstickname index="1">Stick 1</controlstickname>
+ </names>
+ <sets>
+ <set index="1">
+ <stick index="2">
+ <deadZone>1</deadZone>
+ <maxZone>29501</maxZone>
+ <modifierZone>1412</modifierZone>
+ <diagonalRange>90</diagonalRange>
+ <stickbutton index="7">
+ <mousespeedx>74</mousespeedx>
+ <mousespeedy>74</mousespeedy>
+ <accelerationmultiplier>4</accelerationmultiplier>
+ <startaccelmultiplier>20</startaccelmultiplier>
+ <minaccelthreshold>3</minaccelthreshold>
+ <extraaccelerationcurve>easeoutquad</extraaccelerationcurve>
+ <slots>
+ <slot>
+ <code>3</code>
+ <mode>mousemovement</mode>
+ </slot>
+ </slots>
+ </stickbutton>
+ <stickbutton index="6">
+ <mousespeedx>74</mousespeedx>
+ <mousespeedy>74</mousespeedy>
+ </stickbutton>
+ <stickbutton index="5">
+ <mousespeedx>74</mousespeedx>
+ <mousespeedy>74</mousespeedy>
+ <accelerationmultiplier>4</accelerationmultiplier>
+ <startaccelmultiplier>20</startaccelmultiplier>
+ <minaccelthreshold>3</minaccelthreshold>
+ <extraaccelerationcurve>easeoutquad</extraaccelerationcurve>
+ <slots>
+ <slot>
+ <code>2</code>
+ <mode>mousemovement</mode>
+ </slot>
+ </slots>
+ </stickbutton>
+ <stickbutton index="4">
+ <mousespeedx>74</mousespeedx>
+ <mousespeedy>74</mousespeedy>
+ </stickbutton>
+ <stickbutton index="3">
+ <mousespeedx>74</mousespeedx>
+ <mousespeedy>74</mousespeedy>
+ <accelerationmultiplier>4</accelerationmultiplier>
+ <startaccelmultiplier>20</startaccelmultiplier>
+ <minaccelthreshold>3</minaccelthreshold>
+ <extraaccelerationcurve>easeoutquad</extraaccelerationcurve>
+ <slots>
+ <slot>
+ <code>4</code>
+ <mode>mousemovement</mode>
+ </slot>
+ </slots>
+ </stickbutton>
+ <stickbutton index="2">
+ <mousespeedx>74</mousespeedx>
+ <mousespeedy>74</mousespeedy>
+ </stickbutton>
+ <stickbutton index="1">
+ <mousespeedx>74</mousespeedx>
+ <mousespeedy>74</mousespeedy>
+ <accelerationmultiplier>4</accelerationmultiplier>
+ <startaccelmultiplier>20</startaccelmultiplier>
+ <minaccelthreshold>3</minaccelthreshold>
+ <extraaccelerationcurve>easeoutquad</extraaccelerationcurve>
+ <slots>
+ <slot>
+ <code>1</code>
+ <mode>mousemovement</mode>
+ </slot>
+ </slots>
+ </stickbutton>
+ <stickbutton index="8">
+ <mousespeedx>74</mousespeedx>
+ <mousespeedy>74</mousespeedy>
+ </stickbutton>
+ </stick>
+ <stick index="1">
+ <deadZone>2578</deadZone>
+ <maxZone>30799</maxZone>
+ <stickbutton index="7">
+ <mouseacceleration>linear</mouseacceleration>
+ <slots>
+ <slot>
+ <code>6</code>
+ <mode>mousebutton</mode>
+ </slot>
+ </slots>
+ </stickbutton>
+ <stickbutton index="6">
+ <mouseacceleration>linear</mouseacceleration>
+ </stickbutton>
+ <stickbutton index="5">
+ <mouseacceleration>linear</mouseacceleration>
+ <slots>
+ <slot>
+ <code>5</code>
+ <mode>mousebutton</mode>
+ </slot>
+ </slots>
+ </stickbutton>
+ <stickbutton index="4">