diff options
-rw-r--r-- | desktop.org | 294 |
1 files changed, 0 insertions, 294 deletions
diff --git a/desktop.org b/desktop.org index eae0bb1..47d9217 100644 --- a/desktop.org +++ b/desktop.org @@ -513,297 +513,3 @@ Create Both SyncState * #+end_src - -* Stumpwm -#+begin_src lisp :tangle ~/.stumpwm.d/init.lisp - (let ((quicklisp-init (merge-pathnames "quicklisp/setup.lisp" - (user-homedir-pathname)))) - (when (probe-file quicklisp-init) - (load quicklisp-init))) - - (in-package :stumpwm) - (setf *default-package* :stumpwm) - (set-module-dir "~/.stumpwm.d/modules") - - (load-module "beckon") - (load-module "end-session") - (load-module "globalwindows") - (load-module "mpd") - (load-module "stump-backlight") - (load-module "urgentwindows") - - (mpd:mpd-connect) - - (setf *startup-message* "StumpWM is ready!") - - ;; autostart - (run-shell-command " - emacs --daemon & - feh --bg-scale ~/wallpapers/robo-girl.jpg & - picom & - setxkbmap us -option ctrl:swapcaps") - - - (setf *mouse-focus-policy* :click) - - ;; prefix key - (set-prefix-key (kbd "C-t")) - (which-key-mode) - - ;; prompt the user for an interactive command. The first arg is an - ;; optional initial contents. - (defcommand colon1 (&optional (initial "")) (:rest) - (let ((cmd (read-one-line (current-screen) ": " :initial-input initial))) - (when cmd - (eval-command cmd t)))) - - ;(define-key *top-map* (kbd "Super-2") (gselect 1)) - ;; Run rofi - (define-key *root-map* (kbd "C-r") "exec rofi -show drun") - (define-key *root-map* (kbd "p") "exec ~/Developer/rofi-pass/rofi-pass") - (define-key *root-map* (kbd "f") "float-this") - (define-key *root-map* (kbd "C-f") "unfloat-this") - (define-key *root-map* (kbd "C-s") "hsplit-and-focus") - - (define-key *root-map* (kbd "e") "exec emacsclient -c") - - (define-key *root-map* (kbd "C-e") "exec emacs --daemon") - - ;; Ssh somewhere - (define-key *root-map* (kbd "C-S") "colon1 exec xterm -e ssh ") - - ;; Lock screen - (define-key *root-map* (kbd "C-l") "exec pkill -KILL -u thanos") - - ;; Audio - (define-key *top-map* (kbd "XF86AudioLowerVolume") "exec pamixer -d 5") - (define-key *top-map* (kbd "XF86AudioRaiseVolume") "exec pamixer -i 5") - - ;;Keyboard-light - (define-key *top-map* (kbd "XF86Explorer") "exec brightnessctl --device='tpacpi::kbd_backlight' set +1") - (define-key *top-map* (kbd "XF86LaunchA") "exec brightnessctl --device='tpacpi::kbd_backlight' set 1-") - - ;; Keyboard layout - (define-key *top-map* (kbd "F1") "exec setxkbmap us") - (define-key *top-map* (kbd "F2") "exec setxkbmap gr") - - ;;; Groups - ;; Switch to group - (define-key *root-map* (kbd "M-1") "gselect 1") - (define-key *root-map* (kbd "M-2") "gselect 2") - (define-key *root-map* (kbd "M-3") "gselect 3") - (define-key *root-map* (kbd "M-4") "gselect 4") - (define-key *root-map* (kbd "M-5") "gselect 5") - (define-key *root-map* (kbd "M-6") "gselect 6") - (define-key *root-map* (kbd "M-7") "gselect 7") - ;; Move window to group - (define-key *root-map* (kbd "M-!") "gmove 1") - (define-key *root-map* (kbd "M-@") "gmove 2") - (define-key *root-map* (kbd "M-#") "gmove 3") - (define-key *root-map* (kbd "M-$") "gmove 4") - (define-key *root-map* (kbd "M-%") "gmove 5") - (define-key *root-map* (kbd "M-^") "gmove 6") - (define-key *root-map* (kbd "M-&") "gmove 7") - ;; Focus - (define-key *root-map* (kbd "M-b") "move-focus left") - (define-key *root-map* (kbd "M-f") "move-focus right") - (define-key *root-map* (kbd "M-n") "move-focus down") - - ;; Web jump (works for DuckDuckGo and Imdb) - (defmacro make-web-jump (name prefix) - `(defcommand ,(intern name) (search) ((:rest ,(concatenate 'string name " Ask the duck: "))) - (nsubstitute #\+ #\Space search) - (run-shell-command (concatenate 'string ,prefix search)))) - - (make-web-jump "duckduckgo" "mullvad-browser https://duckduckgo.com/?q=") - ;(make-web-jump "imdb" "firefox http://www.imdb.com/find?q=") - - ;; C-t M-s is a terrble binding, but you get the idea. - (define-key *root-map* (kbd "M-s") "duckduckgo") - - ;; - (defcommand mullvad-browser () () - "Run or raise Firefox." - (sb-thread:make-thread (lambda () (run-or-raise "mullvad-browser" '(:class "mullvad-browser") 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"))))) - - (defvar *my/desktop-dump-file* "~/.cache/stump-at-work" - "Where my desktop dump should go and be loaded from.") - - (defcommand dump-work () () - "Save desktop layout when at work." - (dump-desktop-to-file *my/desktop-dump-file*)) - - (defcommand at-work () () - "Restore desktop layout when at work." - (restore-from-file *my/desktop-dump-file*) - (run-shell-command "gpclient") - (run-shell-command "bluetoothctl power on && bluetoothctl connect 14:3F:A6:6D:E3:D9")) - ;; UI - (setf *message-window-gravity* :center - ,*input-window-gravity* :center - ,*window-border-style :thin - ,*mouse-focus-policy* :click - ,*transient-border-width* 2 - ,*normal-size-border-width* 2) - - ;; Theme - (defvar thanos-nord0 "#2e3440") - (defvar thanos-nord1 "#3b4252") - (defvar thanos-nord2 "#434c5e") - (defvar thanos-nord3 "#4c566a") - (defvar thanos-nord4 "#d8dee9") - (defvar thanos-nord5 "#e5e9f0") - (defvar thanos-nord6 "#eceff4") - (defvar thanos-nord7 "#8fbcbb") - (defvar thanos-nord8 "#88c0d0") - (defvar thanos-nord9 "#81a1c1") - (defvar thanos-nord10 "#5e81ac") - (defvar thanos-nord11 "#bf616a") - (defvar thanos-nord12 "#d08770") - (defvar thanos-nord13 "#ebcb8b") - (defvar thanos-nord14 "#a3be8c") - (defvar thanos-nord15 "#b48ead") - - (setq *colors* - `(,thanos-nord0 ;; 0 black - ,thanos-nord11 ;; 1 red - ,thanos-nord14 ;; 2 green - ,thanos-nord13 ;; 3 yellow - ,thanos-nord10 ;; 4 blue - ,thanos-nord14 ;; 5 magenta - ,thanos-nord8 ;; 6 cyan - ,thanos-nord5)) ;; 7 white - - (when *initializing* - (update-color-map (current-screen))) - - ;; Modeline phun - (load-module "battery-portable") - (load-module "cpu") - (load-module "mpd") - (load-module "mem") - - - (setf *mode-line-timeout* 2) - (setf *group-format* "%t") - (setf *window-format* "%n: %30t") - - (setf *mode-line-background-color* thanos-nord1 - ,*mode-line-foreground-color* thanos-nord5) - - (setf *mode-line-border-color* thanos-nord1 - ,*mode-line-border-width* 0) - - (setf cpu::*cpu-modeline-fmt* "%c" - cpu::*cpu-usage-modeline-fmt* "^f2^f0^[~A~2D%^]" - mem::*mem-modeline-fmt* "%a%p" - mpd:*mpd-modeline-fmt* "%a - %t" - mpd:*mpd-status-fmt* "%a - %t" - ,*hidden-window-color* "^**" - ,*mode-line-highlight-template* "«~A»") - - (defvar *mode-line-formatter-list* - '(("%g") ("%W") ("^>") ("docker-running" . t) ("mu-unread" . t) ("%m") ("%C") ("%M") ("%B") ("%d")) - "List of formatters for the modeline.") - - (defun generate-modeline (elements &optional not-invertedp rightp) - "Generate a modeline for StumpWM. - ELEMENTS should be a list of `cons'es which `car' is the modeline - formatter or the shell command to run, and their `cdr' is either nil - when the `car' is a formatter and t when it is a shell command." - (when elements - (cons (format nil - " ^[~A^]^(:bg \"~A\") " - (format nil "^(:fg \"~A\")^(:bg \"~A\")^f1~A^f0" - (if (xor not-invertedp rightp) phundrak-nord1 phundrak-nord3) - (if (xor not-invertedp rightp) phundrak-nord3 phundrak-nord1) - (if rightp "" "")) - (if not-invertedp phundrak-nord3 phundrak-nord1)) - (let* ((current-element (car elements)) - (formatter (car current-element)) - (commandp (cdr current-element))) - (cons (if commandp - `(:eval (run-shell-command ,formatter t)) - (format nil "~A" formatter)) - (generate-modeline (cdr elements) - (not not-invertedp) - (if (string= "^>" (caar elements)) t rightp))))))) - - (defcommand reload-modeline () () - "Reload modeline." - (sb-thread:make-thread - (lambda () - (setf *screen-mode-line-format* - (cdr (generate-modeline *mode-line-formatter-list*)))))) - - - (when *initializing* - (grename "[EMACS]") - (grename "[BROWSER]") - (grename "[LAMBDA]")) - (clear-window-placement-rules) - (setf *dynamic-group-master-split-ratio* 1/2) - - - - - (setf *input-window-gravity* :center - ,*message-window-padding* 10 - ,*message-window-y-padding* 10 - ,*message-window-gravity* :center) - - - (load-module "swm-gaps") - (setf swm-gaps:*head-gaps-size* 0 - swm-gaps:*inner-gaps-size* 2 - swm-gaps:*outer-gaps-size* 4) - - (when *initializing* - (swm-gaps:toggle-gaps)) - - (set-border-color thanos-nord1) - (set-focus-color thanos-nord1) - (set-unfocus-color thanos-nord3) - (set-float-focus-color thanos-nord1) - (set-float-unfocus-color thanos-nord3) - - (set-fg-color thanos-nord4) - (set-bg-color thanos-nord1) - - ;; Modeline - (setf *window-format* "%m%n%s%c") - (setf *screen-mode-line-format* (list "%g ^> %d")) - - (enable-mode-line (current-screen) (current-head) t) - - (setf *mode-line-timeout* 2) - - (setf *time-modeline-string* "%F %H:%M") - - (setf *group-format* "%t") - - (setf *window-format* "%n: %30t") -#+end_src |