* .Xresources.d/xterm: Allow send events, needed for EXWM's simulation
keys to work.
* .emacs.d/init.el: Check additionally that we're in a graphical
environment, though not in another window manager or desktop
environment, before running EXWM. Also, use the EXWM-provided
function for switching buffers that also works for EXWM windows,
including windows in other workspaces or those that are floating.
* .emacs.d/lisp/bandali-exwm.el: Tweak and add to global and
simulation keys for more convenience.
* .gnupg/gpg-agent.conf: It seems we need to explicitly set a
pinentry-program, otherwise GPG will pick the tty or ncurses one even
when we're not in a tty or terminal, which will not work and cause
problems when using EXWM.
!*VT100.utf8Fonts.font: -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso10646-1
!*VT100.utf8Fonts.font: -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso10646-1
!*VT100.utf8Fonts.font: -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso10646-1
!*VT100.utf8Fonts.font: -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso10646-1
!*VT100.utf8Fonts.font: -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso10646-1
!*VT100.utf8Fonts.font: -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso10646-1
+
+! for EXWM simulation keys
+*allowSendEvents: true
(expand-file-name
(convert-standard-filename "lisp") user-emacs-directory))
(expand-file-name
(convert-standard-filename "lisp") user-emacs-directory))
-(when (member (system-name) '("chaman"))
- (require 'bandali-exwm))
+(when
+ (and
+ (display-graphic-p)
+ ;; we're not running in another WM/DE
+ (not (getenv "XDG_CURRENT_DESKTOP"))
+ (member (system-name) '("chaman")))
+ (require 'bandali-exwm)
+ (global-set-key (kbd "C-x b") #'exwm-workspace-switch-to-buffer))
exwm-workspace-number 10
exwm-input-global-keys
`(([?\s-R] . exwm-reset)
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] . (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
(interactive
(list (read-shell-command "➜ ")))
(start-process-shell-command
(start-process "" nil "xterm"
"-name" "floating")))
([?\C-\s-\s] . counsel-linux-app)
(start-process "" nil "xterm"
"-name" "floating")))
([?\C-\s-\s] . counsel-linux-app)
- ([?\M-\s-\s] . (lambda ()
- (interactive)
- (start-process-shell-command
- "passmenu" nil "passmenu --type")))
([?\s-h] . windmove-left)
([?\s-j] . windmove-down)
([?\s-k] . windmove-up)
([?\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)))
(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-f] . exwm-layout-toggle-fullscreen)
([?\s-W] . (lambda ()
(interactive)
(interactive)
(start-process-shell-command
"dmneu-light" nil "dmenu-light")))
(interactive)
(start-process-shell-command
"dmneu-light" nil "dmenu-light")))
+ ([?\s-\;] . (lambda ()
+ (interactive)
+ (start-process-shell-command
+ "dmneu-pamixer" nil "dmenu-pamixer")))
([XF86AudioMute] . ; borken on my X200 :-(
(lambda ()
(interactive)
([XF86AudioMute] . ; borken on my X200 :-(
(lambda ()
(interactive)
([?\s-q] . [?\C-q])
;; misc
([?\C-s] . [?\C-f])
([?\s-q] . [?\C-q])
;; misc
([?\C-s] . [?\C-f])
+ ([?\C-g] . [escape])
+ ([?\C-/] . [?\C-z])))
(require 'exwm-manage)
(setq
(require 'exwm-manage)
(setq
# max-cache-ttl-ssh 86400
# pinentry-program /home/bandali/.guix-profile/bin/pinentry-emacs
# max-cache-ttl-ssh 86400
# pinentry-program /home/bandali/.guix-profile/bin/pinentry-emacs
-# pinentry-program /usr/bin/pinentry-gtk-2
+pinentry-program /usr/bin/pinentry-gtk-2
# pinentry-program /usr/bin/pinentry-tty
allow-emacs-pinentry
allow-loopback-pinentry
# pinentry-program /usr/bin/pinentry-tty
allow-emacs-pinentry
allow-loopback-pinentry