From cf7de1eb9ce2953af911f56234879bf6d64d8ddd Mon Sep 17 00:00:00 2001
From: Oliver Davies <oliver@oliverdavies.dev>
Date: Wed, 29 Jan 2025 01:15:42 +0000
Subject: [PATCH] Refactor desktop Home Manager packages

---
 nix/home/opdavies/default.nix             | 29 +++++++-------------
 nix/home/opdavies/desktop/default.nix     | 19 ++++++++++++++
 nix/home/opdavies/desktop/qutebrowser.nix | 32 +++++++++++++++++++++++
 3 files changed, 60 insertions(+), 20 deletions(-)
 create mode 100644 nix/home/opdavies/desktop/default.nix
 create mode 100644 nix/home/opdavies/desktop/qutebrowser.nix

diff --git a/nix/home/opdavies/default.nix b/nix/home/opdavies/default.nix
index 228c981a..d389ac34 100644
--- a/nix/home/opdavies/default.nix
+++ b/nix/home/opdavies/default.nix
@@ -44,27 +44,16 @@ let
   };
 in
 {
-  imports = [
-    ../common
-    shared-config
-  ];
+  imports =
+    [
+      ../common
+      shared-config
+    ]
+    ++ pkgs.lib.optionals (!headless) [
+      ./desktop
+    ];
 
-  home.packages =
-    shared-packages
-    ++ pkgs.lib.optionals (!headless) (
-      with pkgs;
-      [
-        build-glove80
-        gscan2pdf
-        meslo-lg
-        obs-studio
-        okular
-        pamixer
-        pavucontrol
-        xcape
-        xsel
-      ]
-    );
+  home.packages = shared-packages;
 
   home.sessionVariables = {
     DOCUMENTS = "$HOME/Documents";
diff --git a/nix/home/opdavies/desktop/default.nix b/nix/home/opdavies/desktop/default.nix
new file mode 100644
index 00000000..5606958e
--- /dev/null
+++ b/nix/home/opdavies/desktop/default.nix
@@ -0,0 +1,19 @@
+{ pkgs, ... }:
+
+{
+  imports = [
+    ./qutebrowser.nix
+  ];
+
+  home.packages = with pkgs; [
+    build-glove80
+    gscan2pdf
+    meslo-lg
+    obs-studio
+    okular
+    pamixer
+    pavucontrol
+    xcape
+    xsel
+  ];
+}
diff --git a/nix/home/opdavies/desktop/qutebrowser.nix b/nix/home/opdavies/desktop/qutebrowser.nix
new file mode 100644
index 00000000..056bdcf4
--- /dev/null
+++ b/nix/home/opdavies/desktop/qutebrowser.nix
@@ -0,0 +1,32 @@
+{ lib, ... }:
+
+{
+  programs.qutebrowser = {
+    enable = true;
+
+    searchEngines = {
+      dp = "https://www.drupal.org/project/{}";
+      du = "https://www.drupal.org/u/{}";
+      gh = "https://github.com/search?q={}";
+      mn = "https://mynixos.com/search?q={}";
+      nx = "https://search.nixos.org/packages?query={}";
+    };
+
+    settings = {
+      colors.webpage.darkmode.enabled = true;
+    };
+
+    keyBindings = {
+      normal = {
+        "<Ctrl-d>" = "config-cycle colors.webpage.darkmode.enabled true false";
+
+        "xb" = "config-cycle statusbar.show always never";
+        "xt" = "config-cycle tabs.show always never";
+        "xx" = lib.mkMerge [
+          "config-cycle statusbar.show always never"
+          "config-cycle tabs.show always never"
+        ];
+      };
+    };
+  };
+}