diff --git a/hosts/nixos/deck/system.nix b/hosts/nixos/deck/system.nix index 2d77db9..4fe1bf8 100644 --- a/hosts/nixos/deck/system.nix +++ b/hosts/nixos/deck/system.nix @@ -43,31 +43,6 @@ }; }; - # Input method configuration - i18n.inputMethod = { - enable = true; - type = "ibus"; - ibus.engines = with pkgs.ibus-engines; [ - libpinyin # Chinese Simplified Pinyin - mozc # Japanese (Romaji) - ]; - }; - - # GNOME settings (prevent suspend, enable virtual keyboard) - programs.dconf.profiles.user.databases = [{ - settings = { - "org/gnome/settings-daemon/plugins/power" = { - sleep-inactive-ac-type = "nothing"; - }; - "org/gnome/desktop/a11y/applications" = { - screen-keyboard-enabled = true; - }; - "org/gnome/desktop/peripherals/mouse" = { - accel-profile = "flat"; - }; - }; - }]; - # Hardware support for Steam Deck (AMD APU) hardware = { enableRedistributableFirmware = true; diff --git a/hosts/nixos/thinkpad/home.nix b/hosts/nixos/thinkpad/home.nix index a6ba383..b598a31 100644 --- a/hosts/nixos/thinkpad/home.nix +++ b/hosts/nixos/thinkpad/home.nix @@ -55,7 +55,5 @@ ''; }) remmina - evince - loupe ]; } diff --git a/modules/gnome/system.nix b/modules/gnome/system.nix index b772818..d9cc4f9 100644 --- a/modules/gnome/system.nix +++ b/modules/gnome/system.nix @@ -80,6 +80,31 @@ in }; }; + # Input method configuration for GNOME + i18n.inputMethod = { + enable = true; + type = "ibus"; + ibus.engines = with pkgs.ibus-engines; [ + libpinyin # Chinese Simplified Pinyin + mozc # Japanese (Romaji) + ]; + }; + + # GNOME dconf settings + programs.dconf.profiles.user.databases = [{ + settings = { + "org/gnome/settings-daemon/plugins/power" = { + sleep-inactive-ac-type = "nothing"; + }; + "org/gnome/desktop/a11y/applications" = { + screen-keyboard-enabled = true; + }; + "org/gnome/desktop/peripherals/mouse" = { + accel-profile = "flat"; + }; + }; + }]; + # System packages for GNOME environment.systemPackages = with pkgs; [ hicolor-icon-theme # Fallback icon theme diff --git a/modules/hyprland/home.nix b/modules/hyprland/home.nix index 6cad46d..d145016 100644 --- a/modules/hyprland/home.nix +++ b/modules/hyprland/home.nix @@ -387,6 +387,8 @@ adwaita-qt6 grimblast xfce.thunar + evince + loupe ]; # Hyprland-specific shell configuration diff --git a/modules/hyprland/system.nix b/modules/hyprland/system.nix index 316adc7..bedfd27 100644 --- a/modules/hyprland/system.nix +++ b/modules/hyprland/system.nix @@ -1,70 +1,86 @@ -{ config, pkgs, ... }: +{ config, pkgs, lib, ... }: + +with lib; + +let + cfg = config.hyprland-system-custom; +in { - # Enable Hyprland - programs.hyprland = { - enable = true; - xwayland.enable = true; + options.hyprland-system-custom = { + enableDisplayManager = mkOption { + type = types.bool; + default = true; + description = "Enable greetd display manager (conflicts with jovian.steam.autoStart)"; + }; }; - # Display manager: greetd + tuigreet - services.greetd = { - enable = true; - settings = { - default_session = { - command = "${pkgs.tuigreet}/bin/tuigreet --time --cmd Hyprland"; - user = "greeter"; + config = { + # Enable Hyprland + programs.hyprland = { + enable = true; + xwayland.enable = true; + }; + + # Display manager: greetd + tuigreet + services.greetd = mkIf cfg.enableDisplayManager { + enable = true; + settings = { + default_session = { + command = "${pkgs.tuigreet}/bin/tuigreet --time --cmd Hyprland"; + user = "greeter"; + }; }; }; - }; - # XDG portals for screen sharing, file picker, etc. - xdg.portal = { - enable = true; - extraPortals = [ - pkgs.xdg-desktop-portal-hyprland - pkgs.xdg-desktop-portal-gtk - ]; - config.common.default = ["*"]; - }; - - # Configure touchpad settings - services.libinput = { - enable = true; - touchpad = { - naturalScrolling = true; - tapping = false; - disableWhileTyping = true; + # XDG portals for screen sharing, file picker, etc. + xdg.portal = { + enable = true; + extraPortals = [ + pkgs.xdg-desktop-portal-hyprland + pkgs.xdg-desktop-portal-gtk + ]; + config.common.default = ["*"]; }; - }; - # GNOME Keyring with PAM integration for WiFi password storage - services.gnome.gnome-keyring.enable = true; - security.pam.services.greetd.enableGnomeKeyring = true; + # Configure touchpad settings + services.libinput = { + enable = true; + touchpad = { + naturalScrolling = true; + tapping = false; + disableWhileTyping = true; + }; + }; - # Input method configuration for Hyprland - i18n.inputMethod = { - enable = true; - type = "fcitx5"; - fcitx5.addons = with pkgs; [ - fcitx5-rime # Chinese Simplified/Traditional (more powerful than libpinyin) - fcitx5-mozc # Japanese (Romaji) - fcitx5-gtk # GTK integration + # GNOME Keyring with PAM integration for WiFi password storage + services.gnome.gnome-keyring.enable = true; + security.pam.services.greetd.enableGnomeKeyring = mkIf cfg.enableDisplayManager true; + + # Input method configuration for Hyprland + i18n.inputMethod = { + enable = true; + type = "fcitx5"; + fcitx5.addons = with pkgs; [ + fcitx5-rime # Chinese Simplified/Traditional (more powerful than libpinyin) + fcitx5-mozc # Japanese (Romaji) + fcitx5-gtk # GTK integration + ]; + }; + + # System packages for Hyprland + environment.systemPackages = with pkgs; [ + hyprland + hypridle + hyprlock + hyprpaper + tuigreet + waybar + wofi + networkmanagerapplet + pavucontrol + nwg-displays + swaynotificationcenter ]; }; - - # System packages for Hyprland - environment.systemPackages = with pkgs; [ - hyprland - hypridle - hyprlock - hyprpaper - tuigreet - waybar - wofi - networkmanagerapplet - pavucontrol - nwg-displays - swaynotificationcenter - ]; }