* Return Caps Lock to normal and make Shift + Caps Lock the compose key Caps Lock as compose, with both Shifts as Caps Lock, confused too many people. Stock XKB has no option for compose on the shifted Caps key, so Omarchy defines one in /etc/xkb, which libxkbcommon reads before the system rules. The explicit actions keep the Shift level from toggling Caps Lock. Lone Shift is no longer part of Caps Lock, which leaves it free for input methods. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Require xkbcli so the keymap check cannot silently skip Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
33 lines
1.5 KiB
Desktop File
33 lines
1.5 KiB
Desktop File
[Unit]
|
|
Description=Fcitx5 input methods and XCompose sequences
|
|
# fcitx5 turns the Shift + CapsLock compose sequences in ~/.XCompose into text for
|
|
# Wayland clients.
|
|
#
|
|
# Wait for the compositor: fcitx5 needs WAYLAND_DISPLAY and DISPLAY, which uwsm
|
|
# imports into the user manager before it reaches graphical-session.target.
|
|
After=graphical-session.target
|
|
# The wayland connection dies with the compositor, so follow the session rather
|
|
# than linger against a socket that is gone.
|
|
PartOf=graphical-session.target
|
|
# After= is ordering only -- it does not stop anything from starting this unit
|
|
# while the target is inactive. An `omarchy update` over SSH has a live user
|
|
# manager (pam_systemd) and no graphical session, and a fcitx5 started there
|
|
# comes up with no WAYLAND_DISPLAY and no way to reach any client. Worse, it
|
|
# stays active, so the later graphical-session.target activation won't pull in a
|
|
# working one -- Wants= does not restart what is already running. Skip the start
|
|
# instead; the unit stays enabled and starts for real at graphical login.
|
|
ConditionEnvironment=WAYLAND_DISPLAY
|
|
|
|
[Service]
|
|
Type=dbus
|
|
BusName=org.fcitx.Fcitx5
|
|
# notificationitem duplicates the tray entry omarchy already renders itself.
|
|
ExecStart=/usr/bin/fcitx5 --disable notificationitem
|
|
# always, not on-failure: fcitx5 exits 0 when it detects another instance owning
|
|
# its bus name, and a clean exit still leaves the user with no input method.
|
|
Restart=always
|
|
RestartSec=2
|
|
|
|
[Install]
|
|
WantedBy=graphical-session.target
|