From 3d0547e831f6948d8337675bb14c434ecdd88491 Mon Sep 17 00:00:00 2001 From: Jakub Czajka Date: Mon, 26 Dec 2022 20:09:39 +0100 Subject: [PATCH] [home] Select emoji with dmenu. --- X11/.config/X11/xbindkeysrc | 3 +++ conf/home/desktop.scm | 19 +++++++++--------- conf/home/emoji.scm | 40 +++++++++++++++++++++++++++++++++++++ home.scm | 6 +++++- scripts/select_emoji | 13 ++++++++++++ 5 files changed, 70 insertions(+), 11 deletions(-) create mode 100644 conf/home/emoji.scm create mode 100755 scripts/select_emoji diff --git a/X11/.config/X11/xbindkeysrc b/X11/.config/X11/xbindkeysrc index 31f74e4..c2a885e 100644 --- a/X11/.config/X11/xbindkeysrc +++ b/X11/.config/X11/xbindkeysrc @@ -7,6 +7,9 @@ "volume 5%-" XF86AudioLowerVolume +"select_emoji" + Mod4 + e + "sleep 0.5; xtrlock" Mod4 + l diff --git a/conf/home/desktop.scm b/conf/home/desktop.scm index aee2e93..53d72eb 100644 --- a/conf/home/desktop.scm +++ b/conf/home/desktop.scm @@ -13,19 +13,18 @@ #:use-module (gnu packages xdisorg) #:use-module (gnu packages xorg) #:use-module (gnu services) - #:export (autorandr-services + #:export (autorandr-service desktop-services screenshot-service)) -(define autorandr-services - (list (service home-program-service-type - (home-program-configuration - (packages - (list autorandr - xrandr)) - (dotfiles - (list "autorandr/.config/autorandr/postswitch")))) - notify-service)) +(define autorandr-service + (service home-program-service-type + (home-program-configuration + (packages + (list autorandr + xrandr)) + (dotfiles + (list "autorandr/.config/autorandr/postswitch"))))) (define desktop-services (list status-bar-service diff --git a/conf/home/emoji.scm b/conf/home/emoji.scm new file mode 100644 index 0000000..f2167f4 --- /dev/null +++ b/conf/home/emoji.scm @@ -0,0 +1,40 @@ +;; Copyright (c) 2022 Jakub Czajka +;; License: GPL-3.0 or later. +;; +;; emoji.scm - package for copying emojis to the clipboard. + +(define-module (conf home emoji) + #:use-module (guix build-system trivial) + #:use-module (guix gexp) + #:use-module (guix licenses) + #:use-module (guix packages) + #:export (select-emoji)) + +(define select-emoji + (package + (name "select-emoji") + (version "1.0") + (source + (local-file + (string-concatenate + (list (getenv "GUIX_PACKAGE_PATH") + "/scripts/select_emoji")))) + (build-system trivial-build-system) + (arguments + '(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + + (let* ((ins (assoc-ref %build-inputs "source")) + (out (assoc-ref %outputs "out")) + (dir (string-concatenate (list out "/bin"))) + (file (string-append dir "/select_emoji"))) + (mkdir-p dir) + (copy-file ins file) + (chmod file #o555))))) + (synopsis "Script for copying emojis to the clipboard through dmenu.") + (description "`select_emoji` displays a list of emojis with dmenu and copies +the selection to the clipboard.") + (home-page "https://git.ekhem.eu.org") + (license gpl3+))) diff --git a/home.scm b/home.scm index 057b307..27ec32f 100644 --- a/home.scm +++ b/home.scm @@ -4,18 +4,22 @@ ;; home.scm - home directory configuration for GNU Guix. (use-modules (conf home bash) + (conf home emoji) (conf home desktop) (conf home emacs) + (conf home notify) (conf home suckless) (gnu packages package-management)) (home-environment (packages - (list st-libxft-bgra + (list select-emoji + st-libxft-bgra stow)) (services (append (list autorandr-service + notify-service screenshot-service) bash-services desktop-services diff --git a/scripts/select_emoji b/scripts/select_emoji new file mode 100755 index 0000000..aa4f160 --- /dev/null +++ b/scripts/select_emoji @@ -0,0 +1,13 @@ +#!/bin/sh +# Copyright (c) 2022 Jakub Czajka +# License: GPL-3.0 or later. + +EMOJI=$(cat ${XDG_DATA_HOME}/emojis \ + | dmenu -i -l 15 \ + | cut --delimiter=" " --fields=1) + +if [ -n "${EMOJI}" ] +then + echo -n ${EMOJI} | xclip \ + && dunstify "${EMOJI} copied to clipboard" +fi -- 2.39.5