Files
nix/modules/nixos/gnome.nix
alex 91b8e65a79 1 封装nix-fhs使用nix-ld
2 修改生成hylrland配置文件的方式
3 启用flatpak
2025-05-19 10:20:28 +08:00

163 lines
5.2 KiB
Nix

{ config, pkgs, lib, username, ... }: {
services.xserver = {
enable = true;
displayManager.gdm.enable = true;
desktopManager.gnome.enable = true;
};
environment = {
systemPackages = (with pkgs;[
gnome-tweaks
gnome-shell-extensions
]) ++ (with pkgs.gnomeExtensions;[
dash-to-dock
appindicator # tray icon
]);
gnome.excludePackages = (with pkgs; [
atomix # puzzle game
cheese # webcam tool
gnome-photos
gnome-tour
gnome-text-editor
epiphany # web browser
geary # email reader
evince # document viewer
gedit # text editor
gnome-contacts
gnome-maps
gnome-weather
gnome-music
gnome-characters
# gnome-terminal
hitori # sudoku game
iagno # go game
simple-scan
totem # video player
tali # poker game
yelp # help viewer
]);
variables = {
"GTK_IM_MODULE" = "fcitx";
"QT_IM_MODULE" = "fcitx";
"XMODIFIERS" = "@im=fcitx";
"SDL_IM_MODULE" = "fcitx";
"GLFW_IM_MODULE" = "ibus";
};
};
programs = {
dconf = {
enable = true;
profiles = {
# TODO: Investigate customizing gdm greeter.
user.databases = [{
settings = with lib.gvariant; {
"org/gnome/desktop/interface" = {
clock-show-weekday = true;
cursor-size = mkUint32 16;
cursor-theme = "capitaine-cursors";
enable-hot-corners = false;
icon-theme = "Papirus-Dark";
locate-pointer = false;
monospace-font-name = "JetBrainsMono Nerd Font Mono 10";
overlay-scrolling = true;
};
"org/gnome/mutter" = {
edge-tiling = true;
attach-modal-dialogs = true;
experimental-features = [ "scale-monitor-framebuffer" ];
};
"org/gnome/shell" = {
last-selected-power-profile = "power-saver";
};
"org/gnome/desktop/session" = {
idle-delay = mkUint32 900;
};
"org/gnome/settings-daemon/plugins/power" = {
power-button-action = "interactive";
sleep-inactive-ac-timeout = mkUint32 7200;
sleep-inactive-ac-type = "nothing";
};
"org/gtk/gtk4/settings/file-chooser" = {
sort-directories-first = true;
# show-hidden = true;
view-type = "list";
};
"org/gnome/desktop/wm/keybindings" = {
minimize = mkEmptyArray type.string;
move-to-workspace-1 = [ "<Shift><Super>1" ];
move-to-workspace-2 = [ "<Shift><Super>2" ];
move-to-workspace-3 = [ "<Shift><Super>3" ];
move-to-workspace-4 = [ "<Shift><Super>4" ];
switch-to-workspace-1 = [ "<Super>1" ];
switch-to-workspace-2 = [ "<Super>2" ];
switch-to-workspace-3 = [ "<Super>3" ];
switch-to-workspace-4 = [ "<Super>4" ];
switch-to-workspace-left = [ "<Control><Super>h" ];
switch-to-workspace-right = [ "<Control><Super>l" ];
switch-windows = [ "<Alt>Tab" ];
switch-windows-backward = [ "<Shift><Alt>Tab" ];
switch-applications = [ "<Super>Tab" ];
switch-applications-backward = [ "<Shift><Super>Tab" ];
};
"org/gnome/shell/keybindings" = {
# Following binds are replaced by the ones above.
switch-to-application-1 = mkEmptyArray type.string;
switch-to-application-2 = mkEmptyArray type.string;
switch-to-application-3 = mkEmptyArray type.string;
switch-to-application-4 = mkEmptyArray type.string;
};
"org/gnome/shell" = {
enabled-extensions = [
"appindicatorsupport@rgcjonas.gmail.com"
"dash-to-dock@micxgx.gmail.com"
"status-icons@gnome-shell-extensions.gcampax.github.com"
"system-monitor@gnome-shell-extensions.gcampax.github.com"
];
};
"org/gnome/shell/extensions/dash-to-panel" = {
apply-custom-theme = false;
background-opacity = 0.8;
click-action = "previews";
custom-background-color = false;
custom-theme-shrink = true;
dash-max-icon-size = mkUint32 40;
dock-position = "BOTTOM";
extend-height = false;
height-fraction = 0.9;
hot-keys = false;
icon-size-fixed = true;
isolate-monitors = true;
max-alpha = 0.8;
multi-monitor = true;
preview-size-scale = 0.0;
running-indicator-style = "DOTS";
scroll-action = "cycle-windows";
show-mounts = false;
show-mounts-only-mounted = true;
transparency-mode = "DYNAMIC";
};
"org/gnome/shell/extensions/system-monitor" = {
show-download = true;
show-swap = false;
show-upload = false;
};
};
}];
};
};
};
}