ime: wrapper helper for fcitx module

This commit is contained in:
js0ny 2025-11-18 08:19:15 +00:00
parent 20a2dc258f
commit 5c189f5c0f
7 changed files with 147 additions and 104 deletions

View file

@ -55,5 +55,7 @@
srm
mediainfo
exiftool
ddgr # DuckDuckGo CLI
jujutsu
];
}

View file

@ -1,66 +1,88 @@
{pkgs, ...}: {
home.packages = with pkgs; [
# Terminal Emulator
ghostty # default
kitty
alacritty
warp-terminal
{
pkgs,
lib,
...
}: let
mkFcitxIM = builtins.map (
p:
lib.hiPrio (
pkgs.runCommand "${p.name}-wrapped" {nativeBuildInputs = with pkgs; [makeWrapper];} ''
mkdir -p $out/bin
makeWrapper \
${p}/bin/${p.meta.mainProgram or p.pname} \
$out/bin/${p.meta.mainProgram or p.pname} \
--set GTK_IM_MODULE fcitx \
--set QT_IM_MODULE fcitx
''
)
);
in {
home.packages = with pkgs;
[
# Terminal Emulator
ghostty # default
kitty
alacritty
warp-terminal
# PDF Viewer
kdePackages.okular # default
sioyek
# PDF Viewer
kdePackages.okular # default
sioyek
# Image Viewer
loupe # SUPER FAST 有催人跑的感觉 w/ GPU Accel.
# Image Viewer
loupe # SUPER FAST 有催人跑的感觉 w/ GPU Accel.
kdePackages.elisa
mpv
haruna
kdePackages.elisa
mpv
haruna
# Email
protonmail-bridge
thunderbird
birdtray
# Email
protonmail-bridge
thunderbird
birdtray
# Theming
papirus-icon-theme
rose-pine-cursor
# Theming
papirus-icon-theme
rose-pine-cursor
pcloud
materialgram
steam
signal-desktop
# Use Wayland for Jetbrains
(jetbrains.idea-ultimate.override {
vmopts = ''-Dawt.toolkit.name=WLToolkit'';
})
(jetbrains.rider.override {
vmopts = ''-Dawt.toolkit.name=WLToolkit'';
})
localsend
cherry-studio
kdePackages.kdeconnect-kde
picard
qutebrowser
ryubing
qbittorrent
protonvpn-gui
proton-pass
neovim-qt
goldendict-ng
kdePackages.kdenlive
gimp
steam-run
bottles
lutris
vivaldi
rustdesk
kdePackages.krdc
kdePackages.breeze
zotero
anki-bin
feishin
];
pcloud
materialgram
steam
signal-desktop
# Use Wayland for Jetbrains
(jetbrains.idea-ultimate.override {
vmopts = ''-Dawt.toolkit.name=WLToolkit'';
})
(jetbrains.rider.override {
vmopts = ''-Dawt.toolkit.name=WLToolkit'';
})
localsend
cherry-studio
kdePackages.kdeconnect-kde
picard
qutebrowser
ryubing
qbittorrent
protonvpn-gui
proton-pass
goldendict-ng
kdePackages.kdenlive
gimp
steam-run
bottles
lutris
vivaldi
rustdesk
kdePackages.krdc
kdePackages.breeze
zotero
anki-bin
feishin
]
++ (mkFcitxIM [
pkgs.neovim-qt
pkgs.anki
]);
home.sessionVariables = {
ANKI_WAYLAND = 1;
@ -68,37 +90,6 @@
NIXOS_OZONE_WL = 1;
};
xdg.desktopEntries = {
"anki" = {
name = "Anki";
genericName = "Flashcards";
comment = "An intelligent spaced-repetition memory training program";
icon = "anki";
type = "Application";
terminal = false;
categories = [
"Education"
"Languages"
"KDE"
"Qt"
];
mimeType = [
"application/x-apkg"
"application/x-anki"
"application/x-ankiaddon"
];
# Should specify wayland and IME used
exec = "env ANKI_WAYLAND=1 QT_IM_MODULE=fcitx anki %f";
settings = {
"TryExec" = "anki";
"Version" = "1.0";
"X-GNOME-SingleWindow" = "true";
"SingleMainWindow" = "true";
"StartupWMClass" = "anki";
};
};
};
# TODO: This is a dependency of `feishin` (EOL)
# Once the new version is published, delete this
nixpkgs.config.permittedInsecurePackages = [