diff options
author | 2024-03-31 21:40:41 -0400 | |
---|---|---|
committer | 2024-03-31 21:51:30 -0400 | |
commit | 90f051d46a1d9cfbae5d9c2984a96a621ae4a82a (patch) | |
tree | 30be03a58a2527f25ebb6f195c3c9fee5e1fe91a /.emacs.d/lisp/bandali-exwm.el | |
parent | 2fb78b99b55b612fc758397fdd421ae1de8a51ef (diff) | |
download | configs-90f051d46a1d9cfbae5d9c2984a96a621ae4a82a.tar.gz configs-90f051d46a1d9cfbae5d9c2984a96a621ae4a82a.tar.xz configs-90f051d46a1d9cfbae5d9c2984a96a621ae4a82a.zip |
Merge .emacs.d/lisp/bandali-*.el into .emacs.d/init.el
Somewhat major overhaul. Worth mentioning are the b/keymap-* wrappers
added around the newly introduced keymap-* functions in GNU Emacs 29.
Also dropped some mostly unused configs like exwm and org.
Diffstat (limited to '.emacs.d/lisp/bandali-exwm.el')
-rw-r--r-- | .emacs.d/lisp/bandali-exwm.el | 352 |
1 files changed, 0 insertions, 352 deletions
diff --git a/.emacs.d/lisp/bandali-exwm.el b/.emacs.d/lisp/bandali-exwm.el deleted file mode 100644 index e7f83ce..0000000 --- a/.emacs.d/lisp/bandali-exwm.el +++ /dev/null @@ -1,352 +0,0 @@ -;;; bandali-exwm.el --- bandali's EXWM configuration -*- lexical-binding: t; -*- - -;; Copyright (c) 2018-2023 Amin Bandali - -;; Author: Amin Bandali <bandali@gnu.org> -;; Keywords: tools - -;; This program is free software; you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. - -;; This program is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. - -;; You should have received a copy of the GNU General Public License -;; along with this program. If not, see <https://www.gnu.org/licenses/>. - -;;; Commentary: - -;; My EXWM setup. Makes good use of its simulation keys. - -;;; Code: - -(add-to-list 'load-path (b/lisp "xelb")) -(add-to-list 'load-path (b/lisp "exwm")) -(require 'exwm) -;; (setq exwm-replace t) -;; make class name the buffer name, truncating beyond 60 characters -(defun b/exwm-rename-buffer () - (interactive) - (exwm-workspace-rename-buffer - (concat exwm-class-name ":" - (if (<= (length exwm-title) 60) exwm-title - (concat (substring exwm-title 0 59) "..."))))) -;; Enable EXWM -(exwm-enable) -(add-hook 'exwm-update-class-hook #'b/exwm-rename-buffer) -(add-hook 'exwm-update-title-hook #'b/exwm-rename-buffer) - -(require 'exwm-config) -(add-hook 'exwm-init-hook #'exwm-config--fix/ido-buffer-window-other-frame) - -(require 'exwm-input) -(defun b/exwm-ws-prev-index () - "Return the index for the previous EXWM workspace, wrapping -around if needed." - (if (= exwm-workspace-current-index 0) - (1- exwm-workspace-number) - (1- exwm-workspace-current-index))) - -(defun b/exwm-ws-next-index () - "Return the index for the next EXWM workspace, wrapping -around if needed." - (if (= exwm-workspace-current-index - (1- exwm-workspace-number)) - 0 - (1+ exwm-workspace-current-index))) - -(defun b/exwm-ws-prev () - "Switch to previous EXWM workspace, wrapping around if needed." - (interactive) - (exwm-workspace-switch-create - (b/exwm-ws-prev-index))) - -(defun b/exwm-ws-next () - "Switch to next EXWM workspace, wrapping around if needed." - (interactive) - (exwm-workspace-switch-create - (b/exwm-ws-next-index))) - -;; shorten 'C-c C-q' to 'C-q' -(define-key exwm-mode-map [?\C-q] #'exwm-input-send-next-key) - -;; scroll up/down/left/right on the echo area -(define-key minibuffer-inactive-mode-map [mouse-4] #'b/exwm-ws-prev) -(define-key minibuffer-inactive-mode-map [mouse-5] #'b/exwm-ws-next) -(define-key minibuffer-inactive-mode-map [mouse-6] #'b/exwm-ws-prev) -(define-key minibuffer-inactive-mode-map [mouse-7] #'b/exwm-ws-next) - -(defvar b/shifted-ws-names - '(0 \) 1 \! 2 \@ 3 \# 4 \$ - 5 \% 6 \^ 7 \& 8 \* 9 \() - "Mapping of shifted numbers on my keyboard.") - -(setq - exwm-workspace-number 10 - exwm-input-global-keys - `(([?\s-R] . exwm-reset) - ;; ([?\s-b] . exwm-workspace-switch-to-buffer) - ([?\s-/] . exwm-workspace-switch) - ([?\s-\s] . dmenu) - ([?\s-\\] . (lambda () - (interactive) - (start-process-shell-command - "passmenu" nil "passmenu --type"))) - ([?\S-\s-\s] . (lambda (command) - (interactive - (list (read-shell-command "➜ "))) - (start-process-shell-command - command nil command))) - ([s-return] . (lambda () - (interactive) - (start-process "" nil "xterm"))) - ([S-s-return] . (lambda () - (interactive) - (start-process "" nil "xterm" - "-name" "floating"))) - ([?\C-\s-\s] . counsel-linux-app) - ([?\s-h] . windmove-left) - ([?\s-j] . windmove-down) - ([?\s-k] . windmove-up) - ([?\s-l] . windmove-right) - ([?\s-H] . windmove-swap-states-left) - ([?\s-J] . windmove-swap-states-down) - ([?\s-K] . windmove-swap-states-up) - ([?\s-L] . windmove-swap-states-right) - ([?\s-N ?d] . (lambda () - (interactive) - (start-process - "" nil "dunstctl" "close"))) - ([?\s-N ?D] . (lambda () - (interactive) - (start-process - "" nil "dunstctl" "close-all"))) - ([?\s-N ?h] . (lambda () - (interactive) - (start-process - "" nil "dunstctl" "history-pop"))) - ([?\s-N return] . (lambda () - (interactive) - (start-process - "" nil "dunstctl" "context"))) - ([?\M-\s-h] . shrink-window-horizontally) - ([?\M-\s-l] . enlarge-window-horizontally) - ([?\M-\s-k] . shrink-window) - ([?\M-\s-j] . enlarge-window) - ([?\s-\[] . b/exwm-ws-prev) - ([?\s-\]] . b/exwm-ws-next) - ([mode-line mouse-4] . b/exwm-ws-prev) ; up - ([mode-line mouse-5] . b/exwm-ws-next) ; down - ([mode-line mouse-6] . b/exwm-ws-prev) ; left - ([mode-line mouse-7] . b/exwm-ws-next) ; right - ([?\s-{] . (lambda () - (interactive) - (exwm-workspace-move-window - (b/exwm-ws-prev-index)))) - ([?\s-}] . (lambda () - (interactive) - (exwm-workspace-move-window - (b/exwm-ws-next-index)))) - ,@(mapcar (lambda (i) - `(,(kbd (format "s-%d" i)) . - (lambda () - (interactive) - (exwm-workspace-switch-create ,i)))) - (number-sequence 0 (1- exwm-workspace-number))) - ,@(mapcar - (lambda (i) - `(,(kbd (format "s-%s" - (plist-get b/shifted-ws-names i))) - . - (lambda () - (interactive) - (exwm-workspace-move-window ,i)))) - (number-sequence 0 (1- exwm-workspace-number))) - ([?\s-.] . exwm-floating-toggle-floating) - ([?\s-f] . exwm-layout-toggle-fullscreen) - ([?\s-W] . (lambda () - (interactive) - (kill-buffer (current-buffer)))) - ([?\s-Q] . (lambda () - (interactive) - (exwm-manage--kill-client))) - ([?\s-\'] . (lambda () - (interactive) - (start-process-shell-command - "dmneu-light" nil "dmenu-light"))) - ([?\s-\;] . (lambda () - (interactive) - (start-process-shell-command - "dmneu-pamixer" nil "dmenu-pamixer") - (b/volume-update))) - ([XF86AudioMute] . ; borken on my X200 :-( - (lambda () - (interactive) - (start-process "" nil "pamixer" "--toggle-mute") - (b/volume-update))) - ([\s-XF86AudioMute] . ; toggle mic mute - (lambda () - (interactive) - (start-process - "" nil "pamixer" "--default-source" "--toggle-mute") - (b/volume-update))) - ([XF86Launch1] . - (lambda () - (interactive) - (start-process "" nil "pamixer" "--toggle-mute") - (b/volume-update))) - ([\s-XF86Launch1] . ; toggle mic mute - (lambda () - (interactive) - (start-process - "" nil "pamixer" "--default-source" "--toggle-mute") - (b/volume-update))) - ([XF86AudioLowerVolume] . - (lambda () - (interactive) - (start-process - "" nil "pamixer" "--allow-boost" "--decrease" "5") - (b/volume-update))) - ([XF86AudioRaiseVolume] . - (lambda () - (interactive) - (start-process - "" nil "pamixer" "--allow-boost" "--increase" "5") - (b/volume-update))) - ([\s-XF86AudioLowerVolume] . - (lambda () - (interactive) - (start-process - "" nil "pamixer" "--default-source" "--decrease" "5") - (b/volume-update))) - ([\s-XF86AudioRaiseVolume] . - (lambda () - (interactive) - (start-process - "" nil "pamixer" "--default-source" "--increase" "5") - (b/volume-update))) - ([XF86AudioPlay] . - (lambda () - (interactive) - (start-process "" nil "mpc" "toggle"))) - ([XF86AudioPrev] . - (lambda () - (interactive) - (start-process "" nil "mpc" "prev"))) - ([XF86AudioNext] . - (lambda () - (interactive) - (start-process "" nil "mpc" "next"))) - ([XF86MonBrightnessDown] . - (lambda () - (interactive) - (start-process "" nil "light" "-U" "5"))) - ([XF86MonBrightnessUp] . - (lambda () - (interactive) - (start-process "" nil "light" "-A" "5"))) - ([XF86ScreenSaver] . - (lambda () - (interactive) - (start-process "" nil "dm-tool" "lock"))) - ([\s-XF86Back] . previous-buffer) - ([\s-XF86Forward] . next-buffer))) - -;; Line-editing shortcuts -(setq - exwm-input-simulation-keys - '(;; movement - ([?\C-b] . [left]) - ([?\M-b] . [C-left]) - ([?\C-f] . [right]) - ([?\M-f] . [C-right]) - ([?\C-p] . [up]) - ([?\C-n] . [down]) - ([?\C-a] . [home]) - ([?\C-e] . [end]) - ([?\M-v] . [prior]) - ([?\C-v] . [next]) - ([?\C-d] . [delete]) - ([?\C-k] . [S-end ?\C-x]) - ([?\M-<] . C-home) - ([?\M->] . C-end) - ;; cut/copy/paste - ([?\C-w] . [?\C-x]) - ([?\M-w] . [?\C-c]) - ([?\C-y] . [?\C-v]) - ([?\M-d] . [C-S-right ?\C-x]) - ([?\M-\d] . [C-S-left ?\C-x]) - ;; window - ([?\s-w] . [?\C-w]) - ([?\s-q] . [?\C-q]) - ;; misc - ([?\C-s] . [?\C-f]) - ([?\s-g] . [?\C-g]) - ([?\s-s] . [?\C-s]) - ([?\C-g] . [escape]) - ([?\C-/] . [?\C-z]))) - -(require 'exwm-manage) -(setq - exwm-manage-configurations - '(((equal exwm-instance-name "floating") - floating t - floating-mode-line nil))) -(add-hook 'exwm-manage-finish-hook - (lambda () - (when exwm-class-name - (cond - ((member exwm-class-name '("Abrowser" "IceCat" "Iceweasel")) - (exwm-input-set-local-simulation-keys - `(,@exwm-input-simulation-keys - ([?\C-\S-d] . [?\C-d])))) - ((member exwm-class-name '("XTerm" "Mate-terminal")) - (exwm-input-set-local-simulation-keys - '(([?\C-c ?\C-c] . [?\C-c]) - ([?\C-c ?\C-u] . [?\C-u])))) - ((string= exwm-class-name "Zathura") - (exwm-input-set-local-simulation-keys - '(([?\C-p] . [C-up]) - ([?\C-n] . [C-down])))))))) - -(require 'exwm-randr) -(setq - exwm-randr-workspace-monitor-plist - '(0 "eDP-1" - 1 "eDP-1" 2 "eDP-1" 3 "eDP-1" - 4 "eDP-1" 5 "eDP-1" 6 "eDP-1" - 7 "HDMI-1" 8 "HDMI-1" 9 "HDMI-1")) -;; (add-hook -;; 'exwm-randr-screen-change-hook -;; (lambda () -;; (start-process-shell-command -;; "xrandr" nil -;; "xrandr --output HDMI-1 --mode 1280x720 --above eDP-1 --auto"))) -(exwm-randr-enable) - -(require 'exwm-systemtray) -(exwm-systemtray-enable) - -(add-to-list 'load-path (b/lisp "exwm-edit")) -(require 'exwm-edit) - -(with-eval-after-load 'exwm-workspace - (setq exwm-workspace-show-all-buffers t) - (setq-default - mode-line-format - (append - mode-line-format - '((:eval - (format - " [%s]" (number-to-string - exwm-workspace-current-index))))))) - -(with-eval-after-load 'exwm-layout - (setq exwm-layout-show-all-buffers t)) - -(provide 'bandali-exwm) -;;; bandali-exwm.el ends here |