nix/nixos/common/desktops/gnome/default.nix
2023-08-24 01:32:57 +09:00

132 lines
4.1 KiB
Nix

{ lib, config, pkgs, hostname, ... }: {
# Enable sound with pipewire.
sound.enable = true;
hardware.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
# Configure keymap in X11
services.xserver = {
enable = true;
layout = "us";
xkbVariant = "";
autorun = true;
# When you play games, change this to nvidia
videoDrivers = [ "intel" ];
};
##### disable nvidia, very nice battery life.
# hardware.nvidiaOptimus.disable = lib.mkDefault true;
services.xserver = {
# https://nixos.org/manual/nixos/stable/index.html#chap-gnome
# Enable the GNOME Desktop Environment.
displayManager.gdm.enable = true;
desktopManager.gnome.enable = true;
desktopManager.gnome.extraGSettingsOverrides = ''
[org.gnome.login-screen]
banner-message-enable=true
banner-message-text='\n
Welcome to ${hostname}\n
\n
You are accessing a U.S. Government (USG) Information \n
System (IS) that is provided for USG-authorized use only.\n
\n
By using this IS (which includes any device attached to \n
this IS), you consent to the following conditions:\n
\n
- The USG routinely intercepts and monitors communications \n
on this IS for purposes including, but not limited \n
to, renetration testing, COMSEC monitoring, network \n
operations and defense, personnel misconduct (PM), law \n
enforcement (LE), and counterintelligence (CI) \n
investigations.\n
\n
- At any time, the USG may inspect and seize data stored \n
on this IS.\n
\n
- Communications using, or data stored on, this IS are not \n
private, are subject to routine monitoring, interception, \n
and search, and may be disclosed or used for any \n
USG-authorized purpose.\n
\n
- This IS includes security measures (e.g., authentication \n
and access controls) to protect USG interests--not for \n
your personal benefit or privacy.\n
\n
- Notwithstanding the above, using this IS does not \n
constitute consent to PM, LE or CI investigative \n
searching or monitoring of the content of privileged \n
communications, or work product, elated to personal \n
representation or services by attorneys, psychotherapists, \n
or clergy, and their assistants. Such communications \n
and work product are private and confidential. See User \n
Agreement for details. \n
';
'';
};
# Set Gnome settings:
services.gnome = {
games.enable = false;
core-utilities.enable = true;
gnome-remote-desktop.enable = true;
};
# Set the firewall ports for gnome-remote-desktop:
networking.firewall.interfaces.tailscale0.allowedTCPPorts = [ 3389 ];
# https://nixos.wiki/wiki/GNOME
# Remove unwanted packages
environment.gnome.excludePackages = (with pkgs; [
gnome.cheese
gnome.gnome-music
gnome.epiphany
gnome.geary
gnome.totem
gnome.gnome-characters
gnome-tour
gnome-photos
gnome.yelp
gnome.gnome-font-viewer
gnome-connections
gnome.gnome-contacts
gnome.gnome-logs
gnome.gnome-maps
gnome.simple-scan
]);
environment.systemPackages = with pkgs; [
# Gnome Extensions
gnomeExtensions.tiling-assistant
gnomeExtensions.dash-to-dock
gnomeExtensions.blur-my-shell
gnomeExtensions.vitals
gnomeExtensions.user-themes
gnomeExtensions.caffeine
gnomeExtensions.hibernate-status-button
gnomeExtensions.night-theme-switcher
gnomeExtensions.gamemode
# Gnome relevant packages
gnome3.gnome-tweaks
papirus-icon-theme
dconf2nix # https://github.com/gvolpe/dconf2nix
];
imports = [
# Gnome Themes
./themes/gruvbox.nix
./themes/tokyo-night.nix
./themes/nordic.nix
./themes/vimix.nix
./themes/fluent.nix
# You may need to edit which theme you're using in dconf.nix if you remove themes
];
}