Various tweaks and fixes for using EXWM
authorAmin Bandali <bandali@gnu.org>
Sun, 25 Dec 2022 00:52:34 +0000 (19:52 -0500)
committerAmin Bandali <bandali@gnu.org>
Sun, 25 Dec 2022 00:53:49 +0000 (19:53 -0500)
* .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.

.Xresources.d/xterm
.emacs.d/init.el
.emacs.d/lisp/bandali-exwm.el
.gnupg/gpg-agent.conf

index b0af6ac..44c4eea 100644 (file)
@@ -13,3 +13,6 @@
 !*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
index b4a16cc..7f6ef96 100644 (file)
@@ -491,8 +491,14 @@ for all frames."
  (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))
 
 (require 'bandali-org)
 
 
 (require 'bandali-org)
 
index bd28d5b..dca5d70 100644 (file)
@@ -90,14 +90,14 @@ around if needed."
  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] . dmenu)
    ([?\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
                     (interactive
                      (list (read-shell-command "➜ ")))
                     (start-process-shell-command
@@ -110,10 +110,6 @@ around if needed."
                      (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)
@@ -171,7 +167,7 @@ around if needed."
             (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)
@@ -183,6 +179,10 @@ around if needed."
                  (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)
@@ -262,8 +262,10 @@ around if needed."
    ([?\s-q] . [?\C-q])
    ;; misc
    ([?\C-s] . [?\C-f])
    ([?\s-q] . [?\C-q])
    ;; misc
    ([?\C-s] . [?\C-f])
+   ([?\s-g] . [?\C-g])
    ([?\s-s] . [?\C-s])
    ([?\s-s] . [?\C-s])
-   ([?\C-g] . [escape])))
+   ([?\C-g] . [escape])
+   ([?\C-/] . [?\C-z])))
 
 (require 'exwm-manage)
 (setq
 
 (require 'exwm-manage)
 (setq
index f00d1c8..af2c254 100644 (file)
@@ -5,7 +5,7 @@ max-cache-ttl 10000000
 # 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