From 2edad6c5df72f13e0077db15b9d7bfc8b7526820 Mon Sep 17 00:00:00 2001 From: alexion Date: Sun, 11 Oct 2026 21:36:54 -0400 Subject: [PATCH] refactor(clipboard): simplify picker wiring --- .../modules/desktop/utilities/clipboard.nix | 32 ++++++++----------- 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/configs/nixos/modules/desktop/utilities/clipboard.nix b/configs/nixos/modules/desktop/utilities/clipboard.nix index 5f965e4..f1b437a 100644 --- a/configs/nixos/modules/desktop/utilities/clipboard.nix +++ b/configs/nixos/modules/desktop/utilities/clipboard.nix @@ -6,21 +6,15 @@ }: # Clipboard history: cliphist records every copy, picked back through rofi. let - user = config.user.name; - - cliphist = "${pkgs.cliphist}/bin/cliphist"; - rofi = "${pkgs.rofi}/bin/rofi"; - wl-copy = "${pkgs.wl-clipboard}/bin/wl-copy"; - # The picker reuses the themed rofi, so history looks like every other menu # the launcher drives. # decode is needed because list emits id-prefixed lines rather than the copied # bytes, so the chosen id has to be resolved back before it can be re-copied. picker = pkgs.writeShellScript "clipboard-picker" '' - ${cliphist} list \ - | ${rofi} -dmenu -i -p Clipboard \ - | ${cliphist} decode \ - | ${wl-copy} + ${lib.getExe pkgs.cliphist} list \ + | ${lib.getExe pkgs.rofi} -dmenu -i -p Clipboard \ + | ${lib.getExe pkgs.cliphist} decode \ + | ${lib.getExe' pkgs.wl-clipboard "wl-copy"} ''; in { @@ -28,15 +22,7 @@ in lib.mkEnableOption "cliphist clipboard history"; config = lib.mkIf config.modules.desktop.utilities.clipboard.enable { - registry.keybind.${config.networking.hostName}.clipboard-history = { - keys = "SUPER + SHIFT + V"; - action = { - kind = "exec"; - command = "${picker}"; - }; - }; - - home-manager.users.${user} = { + home-manager.users.${config.user.name} = { # wl-copy and wl-paste on PATH, so the shell can pipe into and out of the # clipboard. # The watchers and picker above reach wl-clipboard by store path, so this @@ -47,5 +33,13 @@ in # session so uwsm starts and stops them with it. services.cliphist.enable = true; }; + + registry.keybind.${config.networking.hostName}.clipboard-history = { + keys = "SUPER + SHIFT + V"; + action = { + kind = "exec"; + command = "${picker}"; + }; + }; }; } -- 2.47.3