From 121e8d4ffe207d1145c3f1e17bc4c8a1420a6666 Mon Sep 17 00:00:00 2001 From: Nikolaos Karaolidis Date: Fri, 16 Aug 2024 20:33:58 +0200 Subject: [PATCH] Add rofi emoji picker Signed-off-by: Nikolaos Karaolidis --- .../user/configs/gui/cliphist/default.nix | 7 +++++- .../common/user/configs/gui/cliphist/rofi.nix | 9 ++++++-- .../common/user/configs/gui/emoji/default.nix | 23 +++++++++++++++++++ .../common/user/configs/gui/rofi/default.nix | 2 +- hosts/eirene/nick.nix | 1 + 5 files changed, 38 insertions(+), 4 deletions(-) create mode 100644 hosts/common/user/configs/gui/emoji/default.nix diff --git a/hosts/common/user/configs/gui/cliphist/default.nix b/hosts/common/user/configs/gui/cliphist/default.nix index b34ea89..cab9b3b 100644 --- a/hosts/common/user/configs/gui/cliphist/default.nix +++ b/hosts/common/user/configs/gui/cliphist/default.nix @@ -8,6 +8,9 @@ pkgs, ... }: +let + hmConfig = config.home-manager.users.${user}; +in { environment.persistence."/cache"."${home}/.cache/cliphist" = { }; @@ -69,7 +72,9 @@ wayland.windowManager.hyprland.settings.bind = let - cliphist-rofi = lib.meta.getExe (pkgs.callPackage ./rofi.nix { }); + cliphist-rofi = lib.meta.getExe ( + pkgs.callPackage ./rofi.nix { rofi = hmConfig.programs.rofi.finalPackage; } + ); cliphist = lib.meta.getExe pkgs.cliphist; in [ diff --git a/hosts/common/user/configs/gui/cliphist/rofi.nix b/hosts/common/user/configs/gui/cliphist/rofi.nix index 6d3f158..5659929 100644 --- a/hosts/common/user/configs/gui/cliphist/rofi.nix +++ b/hosts/common/user/configs/gui/cliphist/rofi.nix @@ -1,4 +1,9 @@ -{ lib, pkgs, ... }: +{ + rofi ? throw "rofi package is required", + lib, + pkgs, + ... +}: let copy = lib.meta.getExe ( pkgs.writeShellApplication { @@ -21,6 +26,6 @@ let in pkgs.writeShellApplication { name = "cliphist-rofi"; - runtimeInputs = with pkgs; [ rofi-wayland ]; + runtimeInputs = [ rofi ]; text = "rofi -modi \"copy:${copy},delete:${delete}\" -show copy"; } diff --git a/hosts/common/user/configs/gui/emoji/default.nix b/hosts/common/user/configs/gui/emoji/default.nix new file mode 100644 index 0000000..b539ea7 --- /dev/null +++ b/hosts/common/user/configs/gui/emoji/default.nix @@ -0,0 +1,23 @@ +{ + user ? throw "user argument is required", + home ? throw "home argument is required", +}: +{ + config, + lib, + pkgs, + ... +}: +let + hmConfig = config.home-manager.users.${user}; +in +{ + home-manager.users.${user} = { + programs.rofi.plugins = with pkgs; [ rofi-emoji-wayland ]; + + wayland.windowManager.hyprland.settings.bind = [ + # Super + Shift + : + "$mod_Shift, code:47, exec, ${lib.meta.getExe hmConfig.programs.rofi.finalPackage} -cache-dir ${home}/.cache/rofi -modi emoji -show emoji" + ]; + }; +} diff --git a/hosts/common/user/configs/gui/rofi/default.nix b/hosts/common/user/configs/gui/rofi/default.nix index 3aff8a0..b9abd48 100644 --- a/hosts/common/user/configs/gui/rofi/default.nix +++ b/hosts/common/user/configs/gui/rofi/default.nix @@ -22,7 +22,7 @@ in }; wayland.windowManager.hyprland.settings.bind = [ - "$mod, r, exec, ${lib.meta.getExe pkgs.rofi-wayland} -cache-dir ${home}/.cache/rofi -show drun" + "$mod, r, exec, ${lib.meta.getExe hmConfig.programs.rofi.finalPackage} -cache-dir ${home}/.cache/rofi -modi drun,window -show drun" ]; }; } diff --git a/hosts/eirene/nick.nix b/hosts/eirene/nick.nix index 5a172b3..98258d6 100644 --- a/hosts/eirene/nick.nix +++ b/hosts/eirene/nick.nix @@ -38,6 +38,7 @@ in (import ../common/user/configs/gui/btop { inherit user home; }) (import ../common/user/configs/gui/chromium { inherit user home; }) (import ../common/user/configs/gui/cliphist { inherit user home; }) + (import ../common/user/configs/gui/emoji { inherit user home; }) (import ../common/user/configs/gui/firefox { inherit user home; }) (import ../common/user/configs/gui/gtk { inherit user home; }) (import ../common/user/configs/gui/hyprland { inherit user home; })