feat(tazjin/emacs): Use Emacs input methods in X11 buffers

This is much easier than the shitty keyboard layout switcher which
caused all kinds of terrifying bugs.

Unfortunately the layout switcher remains additionally because this
doesn't work with Quassel (Qt dropped support for XIM).

Change-Id: I7c58cebf9391216b6e7134d8c283d52cb18332de
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3497
Tested-by: BuildkiteCI
Autosubmit: tazjin <mail@tazj.in>
Reviewed-by: tazjin <mail@tazj.in>
This commit is contained in:
Vincent Ambo 2021-12-24 22:28:22 +03:00 committed by clbot
parent 15a9443e36
commit 1935b41620
2 changed files with 17 additions and 2 deletions

View file

@ -4,13 +4,14 @@
;; window-management (EXWM) as well as additional system-wide
;; commands.
(require 's)
(require 'f)
(require 'dash)
(require 'exwm)
(require 'exwm-config)
(require 'exwm-randr)
(require 'exwm-systemtray)
(require 'exwm-xim )
(require 'f)
(require 's)
(defcustom tazjin--screen-lock-command "tazjin-screen-lock"
"Command to execute for locking the screen."
@ -52,6 +53,7 @@
(defun lock-screen ()
(interactive)
(set-xkb-layout "us")
(deactivate-input-method)
(shell-command tazjin--screen-lock-command))
(defun create-window-name ()
@ -180,6 +182,11 @@
(bind-xkb "no" "л т")
(bind-xkb "ru" "л к")
;; Configuration of EXWM input method handling for X applications
(exwm-xim-enable)
(setq default-input-method "russian-computer")
(push ?\C-\\ exwm-input-prefix-keys)
;; Line-editing shortcuts
(exwm-input-set-simulation-keys
'(([?\C-d] . delete)

View file

@ -203,6 +203,14 @@ in lib.fix(self: {
};
};
# Set variables to enable EXWM-XIM
environment.sessionVariables = {
XMODIFIERS = "@im=exwm-xim";
GTK_IM_MODULE = "xim";
QT_IM_MODULE = "xim";
CLUTTER_IM_MODULE = "xim";
};
# Automatically detect location to use for redshift
location.provider = "geoclue2";