aboutsummaryrefslogtreecommitdiffstats
path: root/oni/home/services
diff options
context:
space:
mode:
authorGravatar Tom Willemse2025-06-06 09:56:39 -0700
committerGravatar Tom Willemse2025-06-06 11:25:46 -0700
commit45873bd7a1115783549a546a114e6b208b031e89 (patch)
tree11881ae6102fdf82546ee9ccebe20c4bf757c20d /oni/home/services
parentd2fa1740278899a328ceb60ca98d5ff684e9909d (diff)
downloadnew-dotfiles-45873bd7a1115783549a546a114e6b208b031e89.tar.gz
new-dotfiles-45873bd7a1115783549a546a114e6b208b031e89.zip
pop-os: Add command that lists .desktop applications
Diffstat (limited to 'oni/home/services')
-rw-r--r--oni/home/services/stumpwm/pop-os-config.lisp19
1 files changed, 19 insertions, 0 deletions
diff --git a/oni/home/services/stumpwm/pop-os-config.lisp b/oni/home/services/stumpwm/pop-os-config.lisp
index fbada5e..7651aed 100644
--- a/oni/home/services/stumpwm/pop-os-config.lisp
+++ b/oni/home/services/stumpwm/pop-os-config.lisp
@@ -40,3 +40,22 @@
(add-hook *screen-locking-hook* 'pause-notifications)
(add-hook *screen-unlocked-hook* 'resume-notifications)
+
+(defvar *applications* nil)
+
+(defun pop-os-load-applications ()
+ (mapcar (lambda (s) (split-string s " "))
+ (split-string (with-output-to-string (mystr)
+ (sb-ext:run-program "/home/tomwillemsen/sources/10-diamond-interactive/chanced-scripts/list-desktop-files" '() :output mystr)))))
+
+(define-stumpwm-type :application (input prompt)
+ (or (argument-pop input)
+ (let ((applications (setf *applications* (or *applications* (pop-os-load-applications)))))
+ (cadr (assoc (completing-read (current-screen) prompt (mapcar #'car applications) :require-match t)
+ applications :test 'string=)))))
+
+(defcommand run-application (application)
+ ((:application "Application: "))
+ (sb-ext:run-program "/usr/bin/gtk-launch" (list application) :wait nil))
+
+(define-key *user-bindings* (kbd "a") "run-application")