summaryrefslogtreecommitdiff
path: root/desktop.org
diff options
context:
space:
mode:
Diffstat (limited to 'desktop.org')
-rw-r--r--desktop.org294
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