about summary refs log tree commit diff stats
path: root/modules/by-name/at
diff options
context:
space:
mode:
Diffstat (limited to 'modules/by-name/at')
-rw-r--r--modules/by-name/at/atuin/module.nix92
-rw-r--r--modules/by-name/at/atuin/secrets/encryption_key.age42
2 files changed, 134 insertions, 0 deletions
diff --git a/modules/by-name/at/atuin/module.nix b/modules/by-name/at/atuin/module.nix
new file mode 100644
index 00000000..7adc34e1
--- /dev/null
+++ b/modules/by-name/at/atuin/module.nix
@@ -0,0 +1,92 @@
+{
+  config,
+  lib,
+  ...
+}: let
+  cfg = config.soispha.programs.atuin;
+in {
+  options.soispha.programs.atuin = {
+    enable = lib.mkEnableOption "atuin";
+  };
+
+  config = lib.mkIf cfg.enable {
+    age.secrets.atuin_encryption_key = {
+      file = ./secrets/encryption_key.age;
+      mode = "700";
+      owner = "soispha";
+      group = "users";
+    };
+
+    home-manager.users.soispha = {
+      programs.atuin = {
+        enable = true;
+        enableZshIntegration = config.soispha.programs.zsh.enable;
+        settings = {
+          key_path = "${config.age.secrets.atuin_encryption_key.path}";
+
+          # TODO: Setup a self-hosted sync server. <2024-10-18>
+          session_path = "";
+          auto_sync = false;
+          sync_address = "";
+
+          # Use the rather reasonable syntax of `skim` to search.
+          search_mode = "skim";
+
+          # Filter by files in a git directory, when in one.
+          # The filtermode can still be changed with `<Ctrl-r>` later.
+          workspaces = true;
+
+          # Save some space, by setting the mode to 'compact' and the height to 1 (meaning
+          # `atuin` may only use 1 line in the terminal).
+          style = "compact";
+          inline_height = 1;
+
+          # 'k' and 'j' to move up and down.
+          keymap_mode = "vim-normal";
+          keymap_cursor = {
+            emacs = "blink-underline";
+            vim_insert = "blink-block";
+            vim_normal = "blink-bar";
+          };
+
+          # Who wants software, that automatically calls home?!
+          update_check = false;
+
+          stats = {
+            # Commands with subcommands
+            # This list contains the defaults plus `nix`
+            common_subcommands = [
+              "apt"
+              "cargo"
+              "composer"
+              "dnf"
+              "docker"
+              "git"
+              "go"
+              "ip"
+              "kubectl"
+              "nix"
+              "nix"
+              "nmcli"
+              "npm"
+              "pecl"
+              "pnpm"
+              "podman"
+              "port"
+              "systemctl"
+              "tmux"
+              "yarn"
+            ];
+
+            # This overrides the default value.
+            ignored_commands = [];
+          };
+
+          # I currently don't want a sync deamon or a dotfiles manager running.
+          deamon.enable = false;
+          dotfiles.enable = false;
+        };
+      };
+    };
+  };
+}
diff --git a/modules/by-name/at/atuin/secrets/encryption_key.age b/modules/by-name/at/atuin/secrets/encryption_key.age
new file mode 100644
index 00000000..d801b0e0
--- /dev/null
+++ b/modules/by-name/at/atuin/secrets/encryption_key.age
@@ -0,0 +1,42 @@
+-----BEGIN AGE ENCRYPTED FILE-----
+YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBY3djUkVkbUhTZjFWS29F
+MFV5NkdCa3kxZTRjTFQ0N2cwekt4TVVhVTNZClN1ZE9ZSTdhaUtXWDZ2bjhEeVhZ
+V3RPRTAybU8zeWJZdW9VTFdWSVlWYUEKLT4gc3NoLWVkMjU1MTkgelpFb25nIHlH
+N2ZraXp0UGZFNFkzVVdiQTNnQ2RsSmsyWmJheFd3TC82R2RESmEzSFkKY2JEMzV2
+a05hYlJzU3lqbi9zbXR1SFp2VXhKTnhoSFFMTmR3Y0E4Q2VpawotPiBzc2gtZWQy
+NTUxOSA3SGZGVXcgdEtLd08ydks0SGdUWTA1ZlBqeWo5ZWt3dHZ0cXBoMHFzVW10
+ZHZ3cHdWawp2dnpERHV1RU9TUTBuSnJ0TTdXVEVZOFEyblgzKzFEV2txTUZwODNv
+dFlNCi0+IFItZ3JlYXNlIH1fSmMoMlFUIHB0OVR1egpObzZ1MWRIU2tNQ1lBV28K
+LS0tICtJd3hZUVNFdHVlYXpkdUdHZE43YXFpdlZmMmZONVp5d3hKMUdoTVdaNXcK
+YaR4U/tPURDQy/YZzs0KDV74OT5A/6AsSthrrOEf3wyKqf1kzQ2r1DghEwwy7kZD
+oKvgGNV9QgjwqI+yFbH7dHoeQJ/vOouDiC1buwqHGfr0f923VLWphLyAhtOgw6B5
+hDwEY5Kl5rXRbYqv00CFSMjkm8hBdH0/w4viUHjjq6zV4rUifWsshvFsSfsukqjJ
+ldUBuAHTG8D/pHdAe0C01D2wy1upozRTcmR9Pa93Sfojz50H5nX9+WNTFodsWFCA
+C4qdz1Zum4O5GzVG5DROHcdsr54FGhkJQzsWmHkfpazxbIpAfwODUquFPvDSKFdS
+MJVRteeA7qko4BPher2scaAKfy/poBcv1Xwkk1ATlzc3/Lh6gvwfxyB1Uav6FF6Z
+k5FwrNe/FQ99EQLZQrSZeIsiTvgIJuvclSwCxLziR7krTn3xmvOGNhKGgpvg0s6V
+M2azDyIHHdzncY9YlrSwtfyH2lXvDsm9DWllhD3oR1e+ElIxfLWrIxriIse14Bf9
+xacmd/JPQzpupYcmpovkP+RSmKhh5bQHOLn4mxCdkWV/gosYRiE9B5I245l2eMgn
+JGSG9+7Opvg+VX/ZEDmrP7oh7+j5E2w9gnuJvdrZSksWvWQFBhjGVZRf995SlZvu
+aA4jwwRaKukfGOcYp8n02y1YKFFs84melszo2ZkuTAme5zeuw0jANQCeuc0OmEIf
+x0oBYuhT+ZDfD8TOQ3pETFMd71vXsYDzg9iqtgCXD9qvidwGMkDI+RBd32KjHSev
+3aXuriIuP70P7ZbqqwhVhE8V2eSZSNsYzlX3ivzpBLKFEzHNE87o8SqosTExYJUy
+rx4bal+I8POSMTWT37WaUM1+i2Fj6hBJOWSY8oZS3lQ7cVAY0l19BcymIk9GP9CJ
+5IXzDAqf3zb/BaG/yE+9ta/ShwTlSkfthnsylfibbxs+XtqA1ACeUx3XBDFHBboO
+GnOV7/zixcAGWiZevz1qHHdJM9KMRPUL72lsu6RbEqBW4joK5rwvFKLVYZb8WRvO
+9ossUjSnMx7KB6G+3sWg9jdnLnJ0qPhVWVBRUoZ2/Cb41lR3natMThbh1dB/3Apg
+8OvZUnpu709ou6qQVpOw6HNH24VSjqsK/pqYgy1EndjhDZBdXO+OL6skAsBX2+PV
+crmWveUgQag3LeBpKZQGBVW4bV+9vNOW8+kWvAvn4XAhilj4iAMe9swDwHQSpTUf
+Nai78k3jX9qpUan+FjPf4rV8KPlHfkuBZ2Kk2QdyL99766pKPmwPjSTp2LwE49iY
+OfcaPC/IffnNDgbdxr/XO3th6/s/gwj5+80fjMVSho8Nev/anvR1M4jOQq/SSO7j
+4EoqlGrlLX9sAPOmuwGdzu3xKtZ6DAa5fpqTPxg4uOYu1f68zKUYnjHov5PfgS7T
+dNAd1VpVdOu994GyPMEK7sqP2Ii7Ksqc1l+1Tn9fzA9/p7ATgDEhKCXFutT6YzG4
+q0SfDdy21HDcjmhlTHlYsGQ/C2v5Ql25fEhndbbTUq7TtD+U9PpHJGtr77Ro+W6d
+e53MIkJ/KU6UXdq3UhhC8HDnctP0g4PXlimzn4JEhxNpkqXb/RWbuyrrBxUKLcLf
+2DCr3IB51gse+xlrqMIDz1LWAJAZvaaHgOy5XUDYjADHm7hAysm6yFs8ISxyAj8k
+tdFJrS3RwzAp3utmGZh3bSFYP5dalpW/cok+ZVVlk9L2UR+P7sRhkBfwHJMw4g4P
+tDS3V+7n9/DgDd8RwuFK4yRchzKUl0I88lBYwzmDA96OeayhrTfIgi5Tw5kmmZ5J
+GTP2q6T9BhotkAg5enMi0gM5n8zhGRgr4MIJHexQkX143RqBiOs+yjynGdi6eas7
+aiZ5M3H6+GoDVGIZOFDSheO45UPcIcK7W3qTxNCZYuW5/NCoaA0na0ugOcVDc5so
+vr3PxCxixf43e2kT6jVWAlYCf5gWUVNUXG/7SR0u+Q==
+-----END AGE ENCRYPTED FILE-----