- (defun b/exwm-pasystray ()
- "A command used to start pasystray."
- (interactive)
- (if (executable-find "pasystray")
- (progn
- (message "EXWM: starting pasystray ...")
- (start-process-shell-command "pasystray" nil "pasystray --notify=all"))
- (message "EXWM: pasystray is not installed, abort!")))
- ;; (add-hook 'exwm-init-hook #'b/exwm-pasystray)
-
- (defun b/exwm-nm-applet ()
- "A command used to start nm-applet."
- (interactive)
- (if (executable-find "nm-applet")
- (progn
- (message "EXWM: starting nm-applet ...")
- (start-process-shell-command "nm-applet" nil "nm-applet"))
- (message "EXWM: nm-applet is not installed, abort!")))
- ;; (add-hook 'exwm-init-hook #'b/exwm-nm-applet)
-
- (defun b/exwm-light-locker ()
- "Start light-locker to make `dm-tool lock' actually work."
- (interactive)
- (if (executable-find "light-locker")
- (progn
- (message "EXWM: starting light-locker ...")
- (start-process-shell-command "light-locker" nil "light-locker --lock-on-suspend"))
- (message "EXWM: light-locker is not installed, abort!")))
- ;;(add-hook 'exwm-init-hook #'b/exwm-light-locker)
- )
+ ;; Shorten 'C-c C-q' to 'C-q'
+ (define-key exwm-mode-map [?\C-q] #'exwm-input-send-next-key)
+
+ ;; 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])
+ ;; 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])
+ ;; search
+ ([?\C-s] . [?\C-f])
+ ;; escape
+ ([?\C-g] . [escape])))
+
+ ;; Enable EXWM
+ (exwm-enable)
+
+ (add-hook 'exwm-init-hook #'exwm-config--fix/ido-buffer-window-other-frame)
+
+ (require 'exwm-systemtray)
+ (exwm-systemtray-enable)
+
+ (require 'exwm-randr)
+ (exwm-randr-enable))