The other part of dotfiles

This commit is contained in:
Davide Pasetto 2024-06-27 15:31:12 +02:00
parent 2fbfed0e7a
commit 9f1ba4a64b
No known key found for this signature in database
GPG key ID: 8E7AB0CBE3149AF1
25 changed files with 1089 additions and 0 deletions

110
modules/desktop/gnome.nix Normal file
View file

@ -0,0 +1,110 @@
{ lib, config, pkgs, ... }:
let
cfg = config.gnome;
in
{
options.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;
};
}