Stumpwm configs
This commit is contained in:
parent
feadd84c93
commit
6339a9ef31
4 changed files with 105 additions and 5 deletions
|
|
@ -1,7 +1,7 @@
|
||||||
(in-package :stumpwm)
|
(in-package :stumpwm)
|
||||||
|
|
||||||
;; change the prefix key to something else
|
;; change the prefix key to something else
|
||||||
(set-prefix-key (kbd "C-z"))
|
(set-prefix-key (kbd "C-t"))
|
||||||
|
|
||||||
;; prompt the user for an interactive command. The first arg is an
|
;; prompt the user for an interactive command. The first arg is an
|
||||||
;; optional initial contents.
|
;; optional initial contents.
|
||||||
|
|
@ -10,6 +10,7 @@
|
||||||
(when cmd
|
(when cmd
|
||||||
(eval-command cmd t))))
|
(eval-command cmd t))))
|
||||||
|
|
||||||
|
|
||||||
;; Read some doc
|
;; Read some doc
|
||||||
(define-key *root-map* (kbd "d") "exec gv")
|
(define-key *root-map* (kbd "d") "exec gv")
|
||||||
;; Browse somewhere
|
;; Browse somewhere
|
||||||
|
|
@ -32,8 +33,47 @@
|
||||||
(define-key *root-map* (kbd "M-s") "duckduckgo")
|
(define-key *root-map* (kbd "M-s") "duckduckgo")
|
||||||
(define-key *root-map* (kbd "i") "imdb")
|
(define-key *root-map* (kbd "i") "imdb")
|
||||||
|
|
||||||
;; Message window font
|
;; Message/help window styling
|
||||||
(set-font "-xos4-terminus-medium-r-normal--14-140-72-72-c-80-iso8859-15")
|
(set-fg-color "#d8dee9")
|
||||||
|
(set-bg-color "#1b2b34")
|
||||||
|
(set-border-color "#6699cc")
|
||||||
|
(setf *normal-border-width* 2)
|
||||||
|
(setf *window-border-style* :thin)
|
||||||
|
(setf *ignore-wm-inc-hints* t)
|
||||||
|
(set-module-dir "~/.stumpwm.d/modules/util")
|
||||||
|
(load-module "swm-gaps")
|
||||||
|
(setf swm-gaps:*inner-gaps-size* 8)
|
||||||
|
(setf swm-gaps:*outer-gaps-size* 16)
|
||||||
|
|
||||||
|
(defcommand gaps-off () ()
|
||||||
|
(swm-gaps:toggle-gaps-off))
|
||||||
|
|
||||||
|
(defcommand gaps-small () ()
|
||||||
|
(setf swm-gaps:*inner-gaps-size* 8
|
||||||
|
swm-gaps:*outer-gaps-size* 8)
|
||||||
|
(swm-gaps:toggle-gaps-on))
|
||||||
|
|
||||||
|
(defcommand gaps-medium () ()
|
||||||
|
(setf swm-gaps:*inner-gaps-size* 16
|
||||||
|
swm-gaps:*outer-gaps-size* 16)
|
||||||
|
(swm-gaps:toggle-gaps-on))
|
||||||
|
|
||||||
|
(defcommand gaps-large () ()
|
||||||
|
(setf swm-gaps:*inner-gaps-size* 32
|
||||||
|
swm-gaps:*outer-gaps-size* 32)
|
||||||
|
(swm-gaps:toggle-gaps-on))
|
||||||
|
|
||||||
|
(defvar *gaps-map* (make-sparse-keymap))
|
||||||
|
(define-key *gaps-map* (kbd "0") "gaps-off")
|
||||||
|
(define-key *gaps-map* (kbd "1") "gaps-small")
|
||||||
|
(define-key *gaps-map* (kbd "2") "gaps-medium")
|
||||||
|
(define-key *gaps-map* (kbd "3") "gaps-large")
|
||||||
|
(set-font "-b&h-luxi mono-medium-r-normal--20-*-*-*-m-0-iso10646-1")
|
||||||
|
(setf *message-window-padding* 16)
|
||||||
|
(setf *message-window-gravity* :center)
|
||||||
|
(setf *input-window-gravity* :center)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;;; Define window placement policy...
|
;;; Define window placement policy...
|
||||||
|
|
||||||
|
|
@ -69,3 +109,46 @@
|
||||||
(define-frame-preference "Emacs"
|
(define-frame-preference "Emacs"
|
||||||
(1 t t :restore "emacs-editing-dump" :title "...xdvi")
|
(1 t t :restore "emacs-editing-dump" :title "...xdvi")
|
||||||
(0 t t :create "emacs-dump" :class "Emacs"))
|
(0 t t :create "emacs-dump" :class "Emacs"))
|
||||||
|
|
||||||
|
(defcommand kill-window-or-frame () ()
|
||||||
|
(if (current-window)
|
||||||
|
(delete-window)
|
||||||
|
(remove-split)))
|
||||||
|
|
||||||
|
;; Don't send a random window to a new split
|
||||||
|
(setf *new-frame-action* :empty)
|
||||||
|
(setf *suppress-frame-indicator* t)
|
||||||
|
|
||||||
|
(defcommand rofi-pull-window () ()
|
||||||
|
(let* ((windows (remove (current-window) (group-windows (current-group))))
|
||||||
|
(names (format nil "~{~a~%~}" (mapcar #'window-name windows)))
|
||||||
|
(selection (run-prog-collect-output
|
||||||
|
"/bin/sh" "-c"
|
||||||
|
(format nil "echo '~a' | rofi -dmenu -p 'window'" names))))
|
||||||
|
(when (and selection (not (string= selection "")))
|
||||||
|
(let ((win (find (string-trim '(#\Newline) selection)
|
||||||
|
windows :key #'window-name :test #'string=)))
|
||||||
|
(when win (pull-window win))))))
|
||||||
|
|
||||||
|
(defvar *window-map* (make-sparse-keymap))
|
||||||
|
(define-key *top-map* (kbd "s-W") *window-map*)
|
||||||
|
(define-key *window-map* (kbd "r") "iresize")
|
||||||
|
(define-key *window-map* (kbd "g") *gaps-map*)
|
||||||
|
|
||||||
|
(defvar *media-map* (make-sparse-keymap))
|
||||||
|
(define-key *top-map* (kbd "s-m") *media-map*)
|
||||||
|
(define-key *media-map* (kbd "v")
|
||||||
|
"exec mpv-pick.sh")
|
||||||
|
|
||||||
|
(define-key *top-map* (kbd "s-d") "exec rofi -show run")
|
||||||
|
(define-key *top-map* (kbd "s-h") "move-focus left")
|
||||||
|
(define-key *top-map* (kbd "s-j") "move-focus down")
|
||||||
|
(define-key *top-map* (kbd "s-k") "move-focus up")
|
||||||
|
(define-key *top-map* (kbd "s-l") "move-focus right")
|
||||||
|
(define-key *top-map* (kbd "s-w") "rofi-pull-window")
|
||||||
|
(define-key *top-map* (kbd "s-p") "next-in-frame")
|
||||||
|
(define-key *top-map* (kbd "s-n") "prev-in-frame")
|
||||||
|
(define-key *top-map* (kbd "s-q") "kill-window-or-frame")
|
||||||
|
(define-key *top-map* (kbd "s--") "vsplit")
|
||||||
|
(define-key *top-map* (kbd "s-\|") "hsplit")
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -186,7 +186,7 @@ Setting this in the :init of evil doesn't work for some reason. It has to be ear
|
||||||
;; '(font . "Fira Code Mono 16"))
|
;; '(font . "Fira Code Mono 16"))
|
||||||
|
|
||||||
(set-face-attribute 'default nil
|
(set-face-attribute 'default nil
|
||||||
:family "Fira Code"
|
:family "FiraCode Nerd Font Mono"
|
||||||
:height 160)
|
:height 160)
|
||||||
|
|
||||||
;; (load-theme 'doom-oceanic-next t)
|
;; (load-theme 'doom-oceanic-next t)
|
||||||
|
|
|
||||||
11
link.sh
11
link.sh
|
|
@ -37,6 +37,15 @@ backup_and_link "$DOTFILES/config/yazi" "$HOME/.config/yazi"
|
||||||
backup_and_link "$DOTFILES/config/rofi" "$HOME/.config/rofi"
|
backup_and_link "$DOTFILES/config/rofi" "$HOME/.config/rofi"
|
||||||
backup_and_link "$DOTFILES/config/zathura" "$HOME/.config/zathura"
|
backup_and_link "$DOTFILES/config/zathura" "$HOME/.config/zathura"
|
||||||
|
|
||||||
|
# StumpWM contrib modules (not stored in dotfiles, cloned on demand)
|
||||||
|
STUMPWM_MODULES="$HOME/.stumpwm.d/modules"
|
||||||
|
if [ ! -d "$STUMPWM_MODULES" ]; then
|
||||||
|
echo "cloning stumpwm-contrib modules..."
|
||||||
|
git clone https://github.com/stumpwm/stumpwm-contrib "$STUMPWM_MODULES"
|
||||||
|
else
|
||||||
|
echo "stumpwm-contrib already present, skipping"
|
||||||
|
fi
|
||||||
|
|
||||||
# StumpWM: link individual file (preserve ~/.config/stumpwm for live data like groups, etc.)
|
# StumpWM: link individual file (preserve ~/.config/stumpwm for live data like groups, etc.)
|
||||||
mkdir -p "$HOME/.config/stumpwm"
|
mkdir -p "$HOME/.config/stumpwm"
|
||||||
backup_and_link "$DOTFILES/config/stumpwm/config.lisp" "$HOME/.config/stumpwm/config"
|
backup_and_link "$DOTFILES/config/stumpwm/config.lisp" "$HOME/.config/stumpwm/config"
|
||||||
|
|
@ -48,7 +57,7 @@ backup_and_link "$DOTFILES/config/gnupg/gpg-agent.conf" "$HOME/.gnupg/gpg-agent.
|
||||||
|
|
||||||
# pinentry-smart: TUI-aware wrapper (curses normally, tty inside senpai/mutt/etc.)
|
# pinentry-smart: TUI-aware wrapper (curses normally, tty inside senpai/mutt/etc.)
|
||||||
mkdir -p "$HOME/.local/bin"
|
mkdir -p "$HOME/.local/bin"
|
||||||
backup_and_link "$DOTFILES/scripts/pinentry-smart" "$HOME/.local/bin/pinentry-smart"
|
backup_and_link "$DOTFILES/scripts/mpv-pick.sh" "$HOME/.local/bin/mpv-pick.sh"
|
||||||
chmod +x "$DOTFILES/scripts/pinentry-smart"
|
chmod +x "$DOTFILES/scripts/pinentry-smart"
|
||||||
|
|
||||||
# GTK themes
|
# GTK themes
|
||||||
|
|
|
||||||
8
scripts/mpv-pick.sh
Executable file
8
scripts/mpv-pick.sh
Executable file
|
|
@ -0,0 +1,8 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# Build a list of full paths, display just filenames in rofi
|
||||||
|
files=$(cd $HOME/Videos && fd -t f)
|
||||||
|
selection=$(echo "$files" | awk -F'/' '{print $NF}' | rofi -i -dmenu -p mpv)
|
||||||
|
if [ -n "$selection" ]; then
|
||||||
|
fullpath=$(echo "$files" | grep -F "$selection" | head -1)
|
||||||
|
mpv --save-position-on-quit "$HOME/Videos/$fullpath"
|
||||||
|
fi
|
||||||
Loading…
Add table
Add a link
Reference in a new issue