diff --git a/hosts/reykjavik/default.nix b/hosts/reykjavik/default.nix index 1bdf022..c1a1778 100644 --- a/hosts/reykjavik/default.nix +++ b/hosts/reykjavik/default.nix @@ -69,6 +69,11 @@ in system.kanata.enable = true; system.devices.voyager.enable = true; + system.input = { + japanese.enable = true; + greek.enable = true; + }; + # - Desktop ---------------------------------- desktop = { inherit wallpaper; @@ -76,8 +81,8 @@ in # Use Γραφείο (custom) desktop environment grapheio.enable = true; - # Add greek keyboard layout - wm.hyprland.kb_layout = "es,gr"; + # # Add greek keyboard layout -- currently commented as fcitx5 adds greek support + # wm.hyprland.kb_layout = "es,gr"; }; # - Editors and development ------------------ @@ -91,6 +96,7 @@ in dev.docker.users = ["marc"]; # - Other apps ------------------------------- + app.anki.enable = true; app.spotify.enable = true; # app.skype.enable = true; app.nextcloud.enable = true; diff --git a/modules/desktop/wm/hyprland.nix b/modules/desktop/wm/hyprland.nix index bb2bd7c..df4ebb4 100644 --- a/modules/desktop/wm/hyprland.nix +++ b/modules/desktop/wm/hyprland.nix @@ -109,8 +109,8 @@ in { "${cfg.mod} SHIFT, 5, movetoworkspace, 5" "${cfg.mod} SHIFT, 0, movetoworkspace, 6" - # - Keyboard --------------------------- - "${cfg.mod}, Escape, exec, hyprctl switchxkblayout current next" + # # - Keyboard --------------------------- + # "${cfg.mod}, Escape, exec, hyprctl switchxkblayout current next" ] ++ cfg.extraKeybindings; diff --git a/modules/system/input/greek.nix b/modules/system/input/greek.nix new file mode 100644 index 0000000..c42898c --- /dev/null +++ b/modules/system/input/greek.nix @@ -0,0 +1,39 @@ +{ config, lib, pkgs, inputs, ... }: + +with lib; +let + cfg = config.samfelag.modules.system.input.greek; + hyprCfg = config.samfelag.modules.desktop.wm.hyprland; +in +{ + options.samfelag.modules.system.input.greek = { + enable = mkEnableOption "Enable greek input"; + }; + + config = mkIf cfg.enable { + + i18n.inputMethod = { + type = "fcitx5"; + enable = true; + fcitx5.addons = with pkgs; [ + fcitx5-gtk + fcitx5-nord + ]; + }; + + environment.variables = { + GTK_IM_MODULE = "fcitx"; + QT_IM_MODULE = "fcitx"; + XMODIFIERS = "@im=fcitx"; + }; + + hm.wayland.windowManager.hyprland.settings = lib.mkIf hyprCfg.enable { + windowrule = "pseudo, class:fcitx"; + exec-once = [ + "fcitx -d -r" + "fcitx-remote -r" + ]; + }; + + }; +} diff --git a/modules/system/input/japanese.nix b/modules/system/input/japanese.nix new file mode 100644 index 0000000..7baffdf --- /dev/null +++ b/modules/system/input/japanese.nix @@ -0,0 +1,46 @@ +{ config, lib, pkgs, inputs, ... }: + +with lib; +let + cfg = config.samfelag.modules.system.input.japanese; + hyprCfg = config.samfelag.modules.desktop.wm.hyprland; +in +{ + options.samfelag.modules.system.input.japanese = { + enable = mkEnableOption "Enable japanese input"; + }; + + config = mkIf cfg.enable { + + i18n.inputMethod = { + type = "fcitx5"; + enable = true; + fcitx5.addons = with pkgs; [ + fcitx5-mozc-ut + fcitx5-gtk + fcitx5-nord + ]; + }; + + fonts.packages = with pkgs; [ + ipafont + kochi-substitute + noto-fonts-cjk-sans + ]; + + environment.variables = { + GTK_IM_MODULE = "fcitx"; + QT_IM_MODULE = "fcitx"; + XMODIFIERS = "@im=fcitx"; + }; + + hm.wayland.windowManager.hyprland.settings = lib.mkIf hyprCfg.enable { + windowrule = "pseudo, class:fcitx"; + exec-once = [ + "fcitx -d -r" + "fcitx-remote -r" + ]; + }; + + }; +}