117 lines
2.7 KiB
Nix
117 lines
2.7 KiB
Nix
{
|
|
lib,
|
|
config,
|
|
pkgs,
|
|
...
|
|
}:
|
|
let
|
|
cfg = config.my.desktop.gnome;
|
|
in
|
|
{
|
|
options.my.desktop.gnome = {
|
|
enable = lib.mkEnableOption "Enable Gnome and apply customization module";
|
|
|
|
keyboardLayout = lib.mkOption {
|
|
default = "it";
|
|
type = lib.types.str;
|
|
description = config.services.xserver.xkb.layout.description;
|
|
};
|
|
|
|
disableXTerm = lib.mkOption {
|
|
default = true;
|
|
type = lib.types.bool;
|
|
description = ''
|
|
Disable the default terminal. Xterm.
|
|
If disable don't forget to install one terminal!
|
|
'';
|
|
};
|
|
|
|
# extraExtension = lib.mkOption {
|
|
# default = [ ];
|
|
# description = ''
|
|
# Extra extensions to add without polluting the main module
|
|
# '';
|
|
# };
|
|
|
|
};
|
|
|
|
config = lib.mkIf cfg.enable {
|
|
services = {
|
|
xserver = {
|
|
enable = true;
|
|
|
|
xkb.layout = cfg.keyboardLayout;
|
|
|
|
displayManager.gdm.enable = true;
|
|
desktopManager.gnome.enable = true;
|
|
|
|
desktopManager.xterm.enable = !cfg.disableXTerm;
|
|
excludePackages = lib.mkIf cfg.disableXTerm [ pkgs.xterm ];
|
|
};
|
|
|
|
libinput.enable = true;
|
|
|
|
};
|
|
|
|
environment = {
|
|
systemPackages = with pkgs; [
|
|
dconf
|
|
dconf2nix
|
|
gnome-extension-manager
|
|
gnome.dconf-editor
|
|
gnome.gnome-tweaks
|
|
];
|
|
|
|
# Remove standard Gnome Packages
|
|
gnome.excludePackages =
|
|
(with pkgs; [
|
|
gedit # text editor
|
|
gnome-photos
|
|
gnome-tour
|
|
gnome-connections
|
|
gnome-photos
|
|
])
|
|
++ (with pkgs.gnome; [
|
|
atomix # puzzle game
|
|
cheese # webcam tool
|
|
epiphany # web browser
|
|
evince # document viewer
|
|
geary # email reader
|
|
gnome-calendar
|
|
gnome-characters
|
|
gnome-clocks
|
|
gnome-contacts
|
|
gnome-font-viewer
|
|
gnome-maps
|
|
gnome-music
|
|
gnome-terminal
|
|
gnome-weather
|
|
hitori # sudoku game
|
|
iagno # go game
|
|
tali # poker game
|
|
totem # video player
|
|
yelp # help viewer
|
|
]);
|
|
|
|
};
|
|
|
|
# gnome-extensions
|
|
# home.packages = with pkgs;
|
|
# lib.mkIf cfg.enableExtension
|
|
# [
|
|
# gnomeExtensions.blur-my-shell
|
|
# gnomeExtensions.caffeine
|
|
# gnomeExtensions.dash-to-dock
|
|
# gnomeExtensions.gsconnect
|
|
# gnomeExtensions.gtile
|
|
# gnomeExtensions.just-perfection
|
|
# gnomeExtensions.pano
|
|
# gnomeExtensions.quick-settings-tweaker
|
|
# gnomeExtensions.rounded-window-corners
|
|
# gnomeExtensions.tailscale-status
|
|
# gnomeExtensions.vitals
|
|
# ] ++ cfg.extraExtension;
|
|
|
|
};
|
|
|
|
}
|