diff --git a/oni/home/data/config.scm b/oni/home/data/config.scm index 8c12e30..005edf1 100644 --- a/oni/home/data/config.scm +++ b/oni/home/data/config.scm @@ -20,12 +20,14 @@ #:use-module (oni home services polybar) #:use-module (oni home services kdeconnect) #:use-module (oni home services cmst) - #:use-module (oni home services syncthing)) + #:use-module (oni home services syncthing) + #:use-module (oni packages hlwm-run-or-raise)) (home-environment (packages (list (specification->package+output "glibc-locales") (specification->package+output "font-fantasque-sans") - (specification->package+output "font-comic-neue"))) + (specification->package+output "font-comic-neue") + hlwm-run-or-raise)) (services (list diff --git a/oni/packages/hlwm-run-or-raise.scm b/oni/packages/hlwm-run-or-raise.scm new file mode 100644 index 0000000..5083549 --- /dev/null +++ b/oni/packages/hlwm-run-or-raise.scm @@ -0,0 +1,43 @@ +(define-module (oni packages hlwm-run-or-raise) + #:use-module (guix packages) + #:use-module (guix git-download) + #:use-module (guix build-system gnu) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages base) + #:use-module (gnu packages shells) + #:use-module (gnu packages xdisorg) + #:use-module (gnu packages gawk) + #:use-module (oni packages hlwm-switch-to-window)) + +(define-public hlwm-run-or-raise + (let ((commit "e2747a706d0653220e70246c925a60cd55b612d1") + (revision "0")) + (package + (name "hlwm-run-or-raise") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (uri (git-reference + (url "git://ryuslash.org/util/tom/hlwm-run-or-raise.git") + (commit commit))) + (method git-fetch) + (sha256 + (base32 "11m8gj0dq9dpc6xl6y00mp5wzh5nck7cak4m5jvnznkqcxc4ahij")) + (file-name (git-file-name name version)))) + (propagated-inputs + (list wmctrl gawk grep hlwm-switch-to-window scsh)) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; There is no test suite. + #:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) + (install-file "hlwm-run-or-raise" bin))))))) + (home-page "https://ryuslash.org/") + (synopsis "A simple script that either starts a program or switches to it with herbstluftwm.") + (description "Can be bound to a key to either switch to a program or start it up if it isn't running.") + (license license:gpl3+)))) diff --git a/oni/packages/hlwm-switch-to-window.scm b/oni/packages/hlwm-switch-to-window.scm new file mode 100644 index 0000000..e3eb0f2 --- /dev/null +++ b/oni/packages/hlwm-switch-to-window.scm @@ -0,0 +1,39 @@ +(define-module (oni packages hlwm-switch-to-window) + #:use-module (guix packages) + #:use-module (guix git-download) + #:use-module (guix build-system gnu) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages wm)) + +(define-public hlwm-switch-to-window + (let ((commit "9001a3391f17aa71cc299be8bc8ffadbb9b9ac12") + (revision "0")) + (package + (name "hlwm-switch-to-window") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (uri (git-reference + (url "git://ryuslash.org/util/tom/hlwm-switch-to-window.git") + (commit commit))) + (method git-fetch) + (sha256 + (base32 "153rw46012pvbq624hwmfdfv36wl12g7m87vdf1nv4kp91am1nkm")) + (file-name (git-file-name name version)))) + (propagated-inputs + (list herbstluftwm)) + (build-system gnu-build-system) + (arguments + `(#:tests? #f + #:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) + (install-file "hlwm-switch-to-window" bin))))))) + (home-page "https://ryuslash.org/") + (synopsis "A simple script that checks which monitor to use to switch to a window before switching.") + (description "Can be bound to a key to make sure that when you switch to a window a specific monitor is always used.") + (license license:gpl3+))))