diff --git a/class/desktop/clipboard.nix b/class/desktop/clipboard.nix
new file mode 100644
index 0000000..cab0c1c
--- /dev/null
+++ b/class/desktop/clipboard.nix
@@ -0,0 +1,3 @@
+{pkgs, ...}: {
+  environment.systemPackages = [pkgs.wl-clipboard];
+}
diff --git a/class/desktop/default.nix b/class/desktop/default.nix
index a49ed63..2eaf79e 100644
--- a/class/desktop/default.nix
+++ b/class/desktop/default.nix
@@ -1,5 +1,6 @@
 {
   imports = [
+    ./clipboard.nix
     ./flatpak.nix
     ./fonts.nix
     ./fs.nix
diff --git a/class/desktop/neovide.nix b/class/desktop/neovide.nix
index 6ebbb3b..6821dbf 100644
--- a/class/desktop/neovide.nix
+++ b/class/desktop/neovide.nix
@@ -1,5 +1,5 @@
 {pkgs, ...}: let
   package = pkgs.neovide;
 in {
-  environment.systemPackages = [package pkgs.wl-clipboard];
+  environment.systemPackages = [package];
 }
diff --git a/common/atuin.nix b/common/atuin.nix
deleted file mode 100644
index c02c96a..0000000
--- a/common/atuin.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{
-  lib,
-  pkgs,
-  ...
-}: let
-  package = pkgs.atuin;
-in {
-  environment.systemPackages = [package];
-
-  programs.bash.interactiveShellInit = ''
-    eval "$(${lib.getExe package} init bash)"
-  '';
-}
diff --git a/common/bash.nix b/common/bash.nix
index 4bcd147..f4ac06c 100644
--- a/common/bash.nix
+++ b/common/bash.nix
@@ -1,18 +1,5 @@
 {
-  programs = {
-    command-not-found.enable = false;
-
-    bash = {
-      blesh.enable = true;
-
-      interactiveShellInit = ''
-        shopt -s globstar
-        shopt -s nullglob
-        shopt -s extglob
-        shopt -s checkwinsize
-
-        bind 'set show-mode-in-prompt off'
-      '';
-    };
-  };
+  programs.bash. interactiveShellInit = ''
+    shopt -s autocd globstar failglob extglob checkwinsize
+  '';
 }
diff --git a/common/cnf.nix b/common/cnf.nix
new file mode 100644
index 0000000..fa415f2
--- /dev/null
+++ b/common/cnf.nix
@@ -0,0 +1,3 @@
+{
+  programs.command-not-found.enable = false;
+}
diff --git a/common/default.nix b/common/default.nix
index 51177fe..faff41a 100644
--- a/common/default.nix
+++ b/common/default.nix
@@ -1,8 +1,8 @@
 {
   imports = [
-    ./atuin.nix
-    ./avahi.nix
     ./bash.nix
+    ./cnf.nix
+    ./fish.nix
     ./boot.nix
     ./bottom.nix
     ./dbus.nix
diff --git a/common/direnv.nix b/common/direnv.nix
index fd8cafb..636a9aa 100644
--- a/common/direnv.nix
+++ b/common/direnv.nix
@@ -1,11 +1,3 @@
 {
-  config,
-  lib,
-  ...
-}: {
   programs.direnv.enable = true;
-
-  programs.bash.interactiveShellInit = ''
-    eval "$(${lib.getExe config.programs.direnv.package} hook bash)"
-  '';
 }
diff --git a/common/fish.nix b/common/fish.nix
new file mode 100644
index 0000000..b54be6e
--- /dev/null
+++ b/common/fish.nix
@@ -0,0 +1,5 @@
+{pkgs, ...}: {
+  programs.fish.enable = true;
+
+  users.defaultUserShell = pkgs.fish;
+}
diff --git a/hosts/abacus/atuin.nix b/hosts/abacus/atuin.nix
deleted file mode 100644
index 85cc3ce..0000000
--- a/hosts/abacus/atuin.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{
-  config,
-  lib,
-  ...
-}: {
-  services = {
-    postgresql = {
-      enable = lib.mkDefault true;
-
-      ensureDatabases = ["atuin"];
-      ensureUsers = [
-        {
-          name = "atuin";
-          ensureDBOwnership = true;
-        }
-      ];
-    };
-
-    atuin = {
-      enable = true;
-      openRegistration = false;
-      database.uri = "postgresql:///atuin?host=/run/postgresql&user=atuin";
-    };
-
-    nginx.virtualHosts."atuin.${config.networking.domain}" = {
-      enableACME = true;
-      forceSSL = true;
-      quic = true;
-
-      locations."/".proxyPass = "http://${config.services.atuin.host}:${builtins.toString config.services.atuin.port}";
-    };
-  };
-}
diff --git a/hosts/abacus/default.nix b/hosts/abacus/default.nix
index 650f7bc..d163ddd 100644
--- a/hosts/abacus/default.nix
+++ b/hosts/abacus/default.nix
@@ -2,10 +2,6 @@
   imports = [
     "${modulesPath}/profiles/qemu-guest.nix"
 
-    ./atuin.nix
-    ./conduit.nix
-    ./forgejo.nix
-    ./navidrome.nix
     ./nginx.nix
     ./vaultwarden.nix
   ];
diff --git a/hosts/abacus/forgejo.nix b/hosts/abacus/forgejo.nix
deleted file mode 100644
index d7bae3b..0000000
--- a/hosts/abacus/forgejo.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-{
-  config,
-  pkgs,
-  ...
-}: let
-  virtualHostName = "tea.${config.networking.domain}";
-in {
-  services.forgejo = {
-    enable = true;
-
-    database.type = "postgres";
-
-    lfs.enable = true;
-
-    settings = {
-      session = {
-        COOKIE_SECURE = true;
-        PROVIDER = "db";
-      };
-
-      service = {
-        DISABLE_REGISTRATION = true;
-      };
-
-      server = {
-        PROTOCOL = "http";
-        HTTP_ADDR = "127.0.0.1";
-        HTTP_PORT = 8020;
-        DOMAIN = virtualHostName;
-        ROOT_URL = "https://${virtualHostName}/";
-      };
-    };
-  };
-
-  services.nginx.virtualHosts.${virtualHostName} = {
-    enableACME = true;
-    forceSSL = true;
-    quic = true;
-
-    locations."/".proxyPass = "http://${config.services.forgejo.settings.server.HTTP_ADDR}:${builtins.toString config.services.forgejo.settings.server.HTTP_PORT}";
-  };
-
-  environment.systemPackages = [pkgs.forgejo];
-}
diff --git a/hosts/abacus/navidrome.nix b/hosts/abacus/navidrome.nix
deleted file mode 100644
index 5c7c393..0000000
--- a/hosts/abacus/navidrome.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{config, ...}: {
-  services.navidrome = {
-    enable = true;
-    settings = {
-      Address = "127.0.0.1";
-      Port = 8030;
-      MusicFolder = "/srv/music";
-    };
-  };
-
-  services.nginx.virtualHosts."navi.${config.networking.domain}" = {
-    enableACME = true;
-    forceSSL = true;
-    quic = true;
-
-    locations."/".proxyPass = "http://${config.services.navidrome.settings.Address}:${builtins.toString config.services.navidrome.settings.Port}";
-  };
-
-  fileSystems.${config.services.navidrome.settings.MusicFolder} = {
-    device = "/dev/disk/by-label/music";
-    fsType = "btrfs";
-    options = ["compress=zstd" "noatime"];
-  };
-}