rearrange DE modules

This commit is contained in:
Yan Lin 2025-11-05 11:03:46 +01:00
parent 9caeac0da8
commit 77fc760e3d
5 changed files with 100 additions and 84 deletions

View file

@ -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 support for Steam Deck (AMD APU)
hardware = { hardware = {
enableRedistributableFirmware = true; enableRedistributableFirmware = true;

View file

@ -55,7 +55,5 @@
''; '';
}) })
remmina remmina
evince
loupe
]; ];
} }

View file

@ -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 # System packages for GNOME
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
hicolor-icon-theme # Fallback icon theme hicolor-icon-theme # Fallback icon theme

View file

@ -387,6 +387,8 @@
adwaita-qt6 adwaita-qt6
grimblast grimblast
xfce.thunar xfce.thunar
evince
loupe
]; ];
# Hyprland-specific shell configuration # Hyprland-specific shell configuration

View file

@ -1,70 +1,86 @@
{ config, pkgs, ... }: { config, pkgs, lib, ... }:
with lib;
let
cfg = config.hyprland-system-custom;
in
{ {
# Enable Hyprland options.hyprland-system-custom = {
programs.hyprland = { enableDisplayManager = mkOption {
enable = true; type = types.bool;
xwayland.enable = true; default = true;
description = "Enable greetd display manager (conflicts with jovian.steam.autoStart)";
};
}; };
# Display manager: greetd + tuigreet config = {
services.greetd = { # Enable Hyprland
enable = true; programs.hyprland = {
settings = { enable = true;
default_session = { xwayland.enable = true;
command = "${pkgs.tuigreet}/bin/tuigreet --time --cmd Hyprland"; };
user = "greeter";
# 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 portals for screen sharing, file picker, etc.
xdg.portal = { xdg.portal = {
enable = true; enable = true;
extraPortals = [ extraPortals = [
pkgs.xdg-desktop-portal-hyprland pkgs.xdg-desktop-portal-hyprland
pkgs.xdg-desktop-portal-gtk pkgs.xdg-desktop-portal-gtk
]; ];
config.common.default = ["*"]; config.common.default = ["*"];
};
# Configure touchpad settings
services.libinput = {
enable = true;
touchpad = {
naturalScrolling = true;
tapping = false;
disableWhileTyping = true;
}; };
};
# GNOME Keyring with PAM integration for WiFi password storage # Configure touchpad settings
services.gnome.gnome-keyring.enable = true; services.libinput = {
security.pam.services.greetd.enableGnomeKeyring = true; enable = true;
touchpad = {
naturalScrolling = true;
tapping = false;
disableWhileTyping = true;
};
};
# Input method configuration for Hyprland # GNOME Keyring with PAM integration for WiFi password storage
i18n.inputMethod = { services.gnome.gnome-keyring.enable = true;
enable = true; security.pam.services.greetd.enableGnomeKeyring = mkIf cfg.enableDisplayManager true;
type = "fcitx5";
fcitx5.addons = with pkgs; [ # Input method configuration for Hyprland
fcitx5-rime # Chinese Simplified/Traditional (more powerful than libpinyin) i18n.inputMethod = {
fcitx5-mozc # Japanese (Romaji) enable = true;
fcitx5-gtk # GTK integration 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
];
} }