Personal-NixOS-Configuration/modules/nixos/cspark-desktop-gnome/module.nix

127 lines
3.5 KiB
Nix

{ lib, config, pkgs, modulesPath, ... }:
let
cfg = config.cspark-desktop-gnome;
in
{
options.cspark-desktop-gnome = {
enable
= lib.mkEnableOption "Enable GNOME Plasma Desktop Setup";
};
config = lib.mkIf cfg.enable {
services.xserver = {
# Enable the X11 windowing system.
enable = true;
# Remove/disable xterm, we are using Foot.
desktopManager.xterm.enable = false;
excludePackages = with pkgs; [ xterm ];
# Enable the GDM display manager
displayManager.gdm = {
enable = true;
wayland = true;
};
# Enable the GNOME Desktop Environment.
desktopManager.gnome.enable = true;
# Enable touchpad support (enabled default in most desktopManager).
# libinput.enable = true;
};
# Exclude default GNOME applications
environment.gnome.excludePackages = (with pkgs; [
gnome-photos
gnome-tour
gedit # text editor
gnome-console
cheese # webcam tool
gnome-music
gnome-terminal
gnome-calendar
gnome-weather
gnome-contacts
gnome-calculator
gnome-maps
simple-scan
epiphany # web browser
geary # email reader
evince # document viewer
gnome-characters
totem # video player
tali # poker game
iagno # go game
hitori # sudoku game
atomix # puzzle game
]) ++ (with pkgs.gnome; [
]);
services.udev.packages = with pkgs; [ gnome-settings-daemon ];
# services.dbus.packages = with pkgs; [ gnome2.GConf ];
# GTK themes are not applied in Wayland applications / Window Decorations missing / Cursor looks different
programs.dconf.enable = true;
# Enable CUPS to print documents.
services.printing.enable = true;
# Enable sound with pipewire.
# sound.enable = true; # Apparently now deprecated
security.rtkit.enable = true;
services.pulseaudio.enable = lib.mkForce false;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
# If you want to use JACK applications, uncomment this
jack.enable = true;
# use the example session manager (no others are packaged yet so this is enabled by default,
# no need to redefine it in your config for now)
#media-session.enable = true;
};
# Set konsole to be default terminal
environment.sessionVariables = {
TERM = "foot";
QT_QPA_PLATFORM = "wayland";
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
SDL_VIDEODRIVER = "wayland,x11,windows";
MOZ_ENABLE_WAYLAND = "1";
# Enable native wayland support for chromium and electron based applications
NIXOS_OZONE_WL = "1";
};
environment.variables = {
TERM = "foot";
QT_QPA_PLATFORM = "wayland";
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
SDL_VIDEODRIVER = "wayland,x11,windows";
MOZ_ENABLE_WAYLAND = "1";
# Enable native wayland support for chromium and electron based applications
NIXOS_OZONE_WL = "1";
};
environment.systemPackages = with pkgs; [
# GNOME plugins
gnomeExtensions.appindicator
gnomeExtensions.paperwm
gnomeExtensions.notification-timeout
gnomeExtensions.blur-my-shell
gnomeExtensions.gsconnect
gnomeExtensions.wallpaper-slideshow
gnome-tweaks
foot # Terminal Emulator
wl-clipboard
wev # Clone of X11 xev for wayland
wofi
wofi-pass
];
};
}