diff options
| author | 2025-06-06 09:56:39 -0700 | |
|---|---|---|
| committer | 2025-06-06 11:25:46 -0700 | |
| commit | 45873bd7a1115783549a546a114e6b208b031e89 (patch) | |
| tree | 11881ae6102fdf82546ee9ccebe20c4bf757c20d /oni/home/services/stumpwm | |
| parent | d2fa1740278899a328ceb60ca98d5ff684e9909d (diff) | |
| download | new-dotfiles-45873bd7a1115783549a546a114e6b208b031e89.tar.gz new-dotfiles-45873bd7a1115783549a546a114e6b208b031e89.zip | |
pop-os: Add command that lists .desktop applications
Diffstat (limited to 'oni/home/services/stumpwm')
| -rw-r--r-- | oni/home/services/stumpwm/pop-os-config.lisp | 19 |
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") |
