;;; bandali-exwm.el --- bandali's EXWM configuration -*- lexical-binding: t; -*-
-;; Copyright (C) 2018-2022 Amin Bandali
+;; Copyright (c) 2018-2023 Amin Bandali
;; Author: Amin Bandali <bandali@gnu.org>
;; Keywords: tools
(add-to-list 'load-path (b/lisp "xelb"))
(add-to-list 'load-path (b/lisp "exwm"))
(require 'exwm)
-(setq ;; exwm-replace t
- exwm-workspace-show-all-buffers t)
+;; (setq exwm-replace t)
;; make class name the buffer name, truncating beyond 60 characters
(defun b/exwm-rename-buffer ()
(interactive)
exwm-workspace-number 10
exwm-input-global-keys
`(([?\s-R] . exwm-reset)
- ([?\s-b] . exwm-workspace-switch-to-buffer)
- ([?\s-\\] . exwm-workspace-switch)
+ ;; ([?\s-b] . exwm-workspace-switch-to-buffer)
+ ([?\s-/] . exwm-workspace-switch)
([?\s-\s] . dmenu)
- ;; ([?\s-\s] . (lambda ()
- ;; (interactive)
- ;; (start-process-shell-command
- ;; "rofi" nil "rofi -show run")))
- ([?\S-\s-\s] . (lambda (command) ; doesn't work in X windows
+ ([?\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 "urxvt")))
+ (start-process "" nil "xterm")))
([S-s-return] . (lambda ()
(interactive)
- (start-process "" nil "urxvt"
+ (start-process "" nil "xterm"
"-name" "floating")))
([?\C-\s-\s] . counsel-linux-app)
- ([?\M-\s-\s] . (lambda ()
- (interactive)
- (start-process-shell-command
- "rofi-pass" nil "rofi-pass")))
([?\s-h] . windmove-left)
([?\s-j] . windmove-down)
([?\s-k] . windmove-up)
(interactive)
(exwm-workspace-move-window ,i))))
(number-sequence 0 (1- exwm-workspace-number)))
- ([?\s-F] . exwm-floating-toggle-floating)
+ ([?\s-.] . exwm-floating-toggle-floating)
([?\s-f] . exwm-layout-toggle-fullscreen)
([?\s-W] . (lambda ()
(interactive)
([?\s-\'] . (lambda ()
(interactive)
(start-process-shell-command
- "rofi-light" nil "rofi-light")))
+ "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")))
+ (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")))
+ (start-process "" nil "pamixer" "--toggle-mute")
+ (b/volume-update)))
([\s-XF86Launch1] . ; toggle mic mute
(lambda ()
(interactive)
(start-process
- "" nil "pamixer" "--default-source" "--toggle-mute")))
+ "" nil "pamixer" "--default-source" "--toggle-mute")
+ (b/volume-update)))
([XF86AudioLowerVolume] .
(lambda ()
(interactive)
(start-process
- "" nil "pamixer" "--allow-boost" "--decrease" "5")))
+ "" nil "pamixer" "--allow-boost" "--decrease" "5")
+ (b/volume-update)))
([XF86AudioRaiseVolume] .
(lambda ()
(interactive)
(start-process
- "" nil "pamixer" "--allow-boost" "--increase" "5")))
+ "" 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 "light" "-A" "5")))
([XF86ScreenSaver] .
(lambda ()
- (interactive)
- (start-process "" nil "dm-tool" "lock")))
+ (interactive)
+ (start-process "" nil "dm-tool" "lock")))
([\s-XF86Back] . previous-buffer)
([\s-XF86Forward] . next-buffer)))
([?\s-q] . [?\C-q])
;; misc
([?\C-s] . [?\C-f])
+ ([?\s-g] . [?\C-g])
([?\s-s] . [?\C-s])
- ([?\C-g] . [escape])))
+ ([?\C-g] . [escape])
+ ([?\C-/] . [?\C-z])))
(require 'exwm-manage)
(setq
(exwm-input-set-local-simulation-keys
`(,@exwm-input-simulation-keys
([?\C-\S-d] . [?\C-d]))))
- ((member exwm-class-name '("URxvt" "Mate-terminal"))
+ ((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]))))
(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