summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--desktop.org327
1 files changed, 192 insertions, 135 deletions
diff --git a/desktop.org b/desktop.org
index 0de42c7..eae0bb1 100644
--- a/desktop.org
+++ b/desktop.org
@@ -67,8 +67,8 @@
decoration {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
- active_opacity = 0.95
- inactive_opacity = 0.85
+ active_opacity = 0.99
+ inactive_opacity = 0.97
rounding = 10
blur = no
blur_size = 3
@@ -192,7 +192,7 @@
*** Exec upon start
#+begin_src conf :tangle ~/.config/hypr/hyprland.conf
exec-once = waybar
- exec-once = hyprpaper
+ exec = hyprpaper
exec-once = emacs --daemon
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
exec-once = nm-applet
@@ -202,10 +202,11 @@
preload = ~/wallpapers/wallpaper-cyberpunk.jpg
preload = ~/wallpapers/science-athlete.jpg
preload = ~/wallpapers/robo-girl.jpg
+ preload = ~/wallpapers/chalk-board-wallpapers.jpg
- wallpaper = DP-1, ~/wallpapers/robo-girl.jpg
+ wallpaper = DP-1, ~/wallpapers/chalk-board-wallpapers.jpg
- wallpaper = HDMI-A-1, ~/wallpapers/robo-girl.jpg
+ wallpaper = HDMI-A-1, ~/wallpapers/chalk-board-wallpapers.jpg
wallpaper = LVDS-1, ~/wallpapers/science-athlete.jpg
#+end_src
@@ -482,29 +483,72 @@
}
#+end_src
+* iSync
+#+begin_src conf :tangle ~/.mbsyncrc
+ IMAPAccount public
+ Host mail.gandi.net
+ Port 993
+ PassCmd "pass show gandi/thanosapollo"
+ SSLType IMAPS
+ SSLVersions TLSv1.2
+ CertificateFile /etc/ssl/certs/ca-certificates.crt
+
+ IMAPStore public-remote
+ Account public
+
+ MaildirStore public-local
+ Path ~/Mail/Public/
+ Inbox ~/Mail/Public/Inbox
+ Trash ~/Mail/Public/Trash/
+ SubFolders Verbatim
+
+ Channel public
+ Far :public-remote:
+ Near :public-local:
+ Patterns *
+ Expunge None
+ CopyArrivalDate yes
+ Sync All
+ 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)))
+ (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")
+ 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.
@@ -512,19 +556,24 @@
(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 ".") "exec rofi-pass")
+ (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 ")
+ (define-key *root-map* (kbd "C-S") "colon1 exec xterm -e ssh ")
;; Lock screen
- (define-key *root-map* (kbd "C-l") "exec xlock")
+ (define-key *root-map* (kbd "C-l") "exec pkill -KILL -u thanos")
;; Audio
(define-key *top-map* (kbd "XF86AudioLowerVolume") "exec pamixer -d 5")
@@ -535,11 +584,10 @@
(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 -option ctrl:swapcaps")
- (define-key *top-map* (kbd "F2") "exec setxkbmap gr -option ctrl:swapcaps")
- (define-key *top-map* (kbd "F3") "exec setxkbmap my-cyr -option ctrl:swapcaps")
+ (define-key *top-map* (kbd "F1") "exec setxkbmap us")
+ (define-key *top-map* (kbd "F2") "exec setxkbmap gr")
- ;;; Groups
+ ;;; Groups
;; Switch to group
(define-key *root-map* (kbd "M-1") "gselect 1")
(define-key *root-map* (kbd "M-2") "gselect 2")
@@ -568,12 +616,51 @@
(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=")
+ ;(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
@@ -601,104 +688,111 @@
(defvar thanos-nord15 "#b48ead")
(setq *colors*
- `(,thanos-nord1 ;; 0 black
+ `(,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-nord8 ;; 6 cyan
,thanos-nord5)) ;; 7 white
(when *initializing*
(update-color-map (current-screen)))
- (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)
+ ;; Modeline phun
+ (load-module "battery-portable")
+ (load-module "cpu")
+ (load-module "mpd")
+ (load-module "mem")
- (set-fg-color thanos-nord4)
- (set-bg-color thanos-nord1)
+ (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*))))))
- (setf *normal-border-width* 0
- ,*float-window-border* 0
- ,*float-window-title-height* 15
- ,*window-border-style* :none
- ,*window-format* "%n:%t")
+ (when *initializing*
+ (grename "[EMACS]")
+ (grename "[BROWSER]")
+ (grename "[LAMBDA]"))
+ (clear-window-placement-rules)
+ (setf *dynamic-group-master-split-ratio* 1/2)
+
- (setf *key-seq-color* "^2")
- (setf *which-key-format* (concat *key-seq-color* "*~5a^n ~a"))
- (setf *input-window-gravity* :top
+ (setf *input-window-gravity* :center
,*message-window-padding* 10
,*message-window-y-padding* 10
,*message-window-gravity* :center)
- ;; Message window font
- (set-font "-xos4-terminus-medium-r-normal--14-140-72-72-c-80-iso8859-15")
-
- (set-font "-xos4-terminus-medium-r-normal-*-20-*-*-*-*-*-*-*")
-
- ;;; Define window placement policy...
-
-
- (defvar *thanos/workspaces*
- (list "ALPHA"
- "BETA"
- "GAMMA"
- "DELTA"
- "EPSILON"
- "ZETA"
- "LAMBDA"))
- ;; I had to put lambda in there! But I don't want the rest of the letters before it. Don't @ me!
-
- (stumpwm:grename (nth 0 *thanos/workspaces*))
- (dolist (workspace (cdr *thanos/workspaces*))
- (stumpwm:gnewbg workspace))
-
- ;; (defvar *move-to-keybinds* (list "!" "@" "#" "$" "%" "^" "&" "*" "("))
- ;; (dotimes (y (length *ce/workspaces*))
- ;; (let ((workspace (write-to-string (+ y 1))))
- ;; (define-key *root-map* (kbd workspace) (concat "gselect " workspace))
- ;; (define-key *root-map* (kbd (nth y *move-to-keybinds*)) (concat "gmove-and-follow " workspace))))
-
- ;; Clear rules
- ;; (clear-window-placement-rules)
- ;; (setf *dynamic-group-master-split-ratio* 1/2)
- ;; ;; Last rule to match takes precedence!
- ;; ;; TIP: if the argument to :title or :role begins with an ellipsis, a substring
- ;; ;; match is performed.
- ;; ;; TIP: if the :create flag is set then a missing group will be created and
- ;; ;; restored from *data-dir*/create file.
- ;; ;; TIP: if the :restonre flag is set then group dump is restored even for an
- ;; ;; existing group using *data-dir*/restore file.
- ;; (define-frame-preference "Default"
- ;; ;; frame raise lock (lock AND raise == jumpto)
- ;; (0 t nil :class "Konqueror" :role "...konqueror-mainwindow")
- ;; (1 t nil :class "XTerm"))
-
- ;; (define-frame-preference "Ardour"
- ;; (0 t t :instance "ardour_editor" :type :normal)
- ;; (0 t t :title "Ardour Session Control")
- ;; (0 nil nil :class "XTerm")
- ;; (1 t nil :type :normal)
- ;; (1 t t :instance "ardour_mixer")
- ;; (2 t t :instance "jvmetro")
- ;; (1 t t :instance "qjackctl")
- ;; (3 t t :instance "qjackctl" :role "qjackctlMainForm"))
-
- ;; (define-frame-preference "Shareland"
- ;; (0 t nil :class "XTerm")
- ;; (1 nil t :class "aMule"))
-
- ;; (define-frame-preference "Emacs"
- ;; (1 t t :restore "emacs-editing-dump" :title "...xdvi")
- ;; (0 t t :create "emacs-dump" :class "Emacs"))
+
+ (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"))
@@ -712,41 +806,4 @@
(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)
-#+end_src
-* iSync
-#+begin_src conf :tangle ~/.mbsyncrc
- IMAPAccount public
- Host mail.gandi.net
- Port 993
- PassCmd "pass show gandi/thanosapollo"
- SSLType IMAPS
- SSLVersions TLSv1.2
- CertificateFile /etc/ssl/certs/ca-certificates.crt
-
- IMAPStore public-remote
- Account public
-
- MaildirStore public-local
- Path ~/Mail/Public/
- Inbox ~/Mail/Public/Inbox
- Trash ~/Mail/Public/Trash/
- SubFolders Verbatim
-
- Channel public
- Far :public-remote:
- Near :public-local:
- Patterns *
- Expunge None
- CopyArrivalDate yes
- Sync All
- Create Both
- SyncState *
#+end_src