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

142 lines
4.3 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.
desktopManager.gnome.enable = true;
desktopManager.gnome.extraGSettingsOverrides = ''
[org.gnome.login-screen.banner-message]
enable = true
text = """
--
Welcome to ${hostname}
You are accessing a U.S. Government (USG) Information
System (IS) that is provided for USG-authorized use only.
By using this IS (which includes any device attached to
this IS), you consent to the following conditions:
- The USG routinely intercepts and monitors communications
on this IS for purposes including, but not limited
to, renetration testing, COMSEC monitoring, network
operations and defense, personnel misconduct (PM), law
enforcement (LE), and counterintelligence (CI)
investigations.
- At any time, the USG may inspect and seize data stored
on this IS.
- Communications using, or data stored on, this IS are not
private, are subject to routine monitoring, interception,
and search, and may be disclosed or used for any
USG-authorized purpose.
- This IS includes security measures (e.g., authentication
and access controls) to protect USG interests--not for
your personal benefit or privacy.
- Notwithstanding the above, using this IS does not
constitute consent to PM, LE or CI investigative
searching or monitoring of the content of privileged
communications, or work product, elated to personal
representation or services by attorneys, psychotherapists,
or clergy, and their assistants. Such communications
and work product are private and confidential. See User
Agreement for details.
--
""";
'';
displayManager.gdm = {
enable = true;
settings = {
"/apps/gdm/simple-greeter/banner".message = {
enable = true;
};
};
};
};
# 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
];
}