diff options
Diffstat (limited to '.stumpwm.d/commands.lisp')
-rw-r--r-- | .stumpwm.d/commands.lisp | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/.stumpwm.d/commands.lisp b/.stumpwm.d/commands.lisp new file mode 100644 index 0000000..1976e9d --- /dev/null +++ b/.stumpwm.d/commands.lisp @@ -0,0 +1,56 @@ +;; Functions + +(defun feh-set-wallpaper (wallpaper-name) + "Set wallpaper using feh" + (let ((wallpaper-dir "~/wallpapers/")) + (format t "Setting wallpaper: ~a~%" wallpaper-name) + (stumpwm:run-shell-command (format nil "feh --bg-scale ~a~a" wallpaper-dir wallpaper-name)))) + + +(defun thanos/set-wallpapers () + "Set wallpapers depending on hostname." + (cond ((equal (asdf:hostname) "zeus") (feh-set-wallpaper "anime-night-mountains.jpg")) + ((equal (asdf:hostname) "hermes") (feh-set-wallpaper "library-old-house.jpg")))) + +;; Web jump (works for DuckDuckGo) +(defmacro make-web-jump (name prefix) + `(defcommand ,(intern name) (search) ((:rest ,(concatenate 'string "Ask the " name ": "))) + (nsubstitute #\+ #\Space search) + (run-shell-command (concatenate 'string ,prefix search)))) + +(make-web-jump "Duck" "firefox https://duckduckgo.com/?q=") +(make-web-jump "Invidious" "firefox https://yewtu.be/search?q=") +(defcommand firefox () () + "Run or raise Firefox." + (sb-thread:make-thread (lambda () (run-or-raise "firefox" '(:class "firefox") t nil)))) + +(defcommand delete-window-and-frame () () + "Delete the current frame with its window." + (delete-window) + (remove-split)) + +(defcommand hsplit-and-focus () () + "Create a new frame on the right and focus it." + (hsplit) + (move-focus :right)) + +(defcommand vsplit-and-focus () () + "Create a new frame below and move focus to it." + (vsplit) + (move-focus :down)) + +(defcommand term (&optional program) () + "Invoke a terminal, possibly with a @arg{program}." + (sb-thread:make-thread + (lambda () + (run-shell-command (if program + (format nil "kitty ~A" program) + "kitty"))))) + +(when *initializing* + (mapc #'stumpwm:run-shell-command + '("emacs --daemon" + "picom" + "transmission-daemon" + "xsetroot -cursor_name left_ptr")) + (thanos/set-wallpapers)) |