mio-ops/roles/desktop_common.nix

132 lines
3.5 KiB
Nix
Raw Normal View History

2019-12-10 14:43:41 +00:00
# Common configuration for MIO desktops
{ config, pkgs, ... }:
{
imports =
[
../roles/games-kids.nix
../roles/host_common.nix
2020-06-08 02:21:51 +00:00
../roles/daedalus.nix
2019-12-10 14:43:41 +00:00
../roles/openssh.nix
../secrets/user-craige.nix
2019-12-12 23:02:14 +00:00
../secrets/user-fiona.nix
2019-12-10 14:43:41 +00:00
../secrets/user-hamish.nix
../secrets/user-logan.nix
../secrets/user-root.nix
../secrets/user-xander.nix
];
# Common Desktop Packages
environment.systemPackages = with pkgs; [
2020-03-30 02:09:59 +00:00
brave # Privacy-oriented browser
google-chrome # A freeware web browser developed by Google
2019-12-10 14:43:41 +00:00
chromium
2019-12-17 00:31:15 +00:00
firefoxWrapper # install Firefox with support for plugins
2020-05-04 09:07:49 +00:00
gnome3.gnome-tweaks # A tool to customize advanced GNOME 3 options
2019-12-10 14:43:41 +00:00
libreoffice-fresh
2020-01-06 00:45:20 +00:00
mplayer # A movie player that supports many video formats
2020-01-24 05:40:54 +00:00
shotwell # Photo organizer
usbutils # Tools for working with USB devices, such as lsusb
2019-12-10 14:43:41 +00:00
user-manager
2019-12-17 00:31:15 +00:00
nextcloud-client # Nextcloud desktop client
2020-05-05 14:45:10 +00:00
riot-desktop # A feature-rich client for Matrix.org
2020-01-24 05:40:54 +00:00
xorg.libxcb # X C binding
2019-12-10 14:43:41 +00:00
];
networking.networkmanager.enable = true; # Enables network support via NetworkManager.
# Enable common desktop services
2020-04-21 08:23:43 +00:00
services = {
acpid.enable = true; # A daemon for delivering ACPI events to userspace programs
blueman.enable = true; # GTK-based Bluetooth Manager
devmon.enable = true; # Enable external device automounting.`
udev.packages = [
pkgs.android-udev-rules # Android udev rules list
];
udisks2.enable = true; # Enable udisks2
2019-12-10 14:43:41 +00:00
2020-04-21 08:23:43 +00:00
xserver = {
enable = true;
desktopManager = {
gnome3.enable = true; # Enable GNOME desktop environment
};
displayManager = {
defaultSession = "gnome"; # Set GNOME as the default session
gdm.enable = true; # Enable the GNOME display manager
};
libinput.enable = true; # Enable touchpad support.
};
};
2020-01-24 05:40:54 +00:00
2020-04-21 08:23:43 +00:00
powerManagement.enable = true;
2019-12-10 14:43:41 +00:00
sound.enable = true; # Enable sound.
2020-04-21 08:23:43 +00:00
# Configure common hardware settings
2020-01-06 00:45:20 +00:00
hardware = {
pulseaudio = {
enable = true;
extraModules = [ pkgs.pulseaudio-modules-bt ];
package = pkgs.pulseaudioFull;
};
bluetooth = {
enable = true; # Enable bluetooth
2020-04-21 08:23:43 +00:00
config = {
General = {
Enable = "Source,Sink,Media,Socket";
};
Policy = {
AutoEnable = "true";
};
};
2020-01-06 00:45:20 +00:00
};
opengl.enable = true;
2019-12-10 14:43:41 +00:00
};
# Configure Firefox and Chromium
nixpkgs.config = {
allowUnfree = true;
firefox = {
2020-03-30 02:09:59 +00:00
enableGoogleTalkPlugin = true; # Required for Google Meet
enableAdobeFlash = false; # Disabled because Adobe Flash is just rubbish
2019-12-10 14:43:41 +00:00
};
chromium = {
2020-03-30 02:09:59 +00:00
enablePepperFlash = false; # Chromium's non-NSAPI alternative to Adobe Flash
2019-12-10 14:43:41 +00:00
};
};
programs = {
chromium = {
enable = true;
homepageLocation = "https://start.duckduckgo.com/";
};
};
2020-01-06 00:45:20 +00:00
# Groups to add
users.groups = {
audio.members = [
"craige"
"fiona"
"hamish"
"logan"
"xander"
];
libvirtd.members = [
"craige"
"fiona"
"hamish"
"logan"
"xander"
];
networkmanager.members = [
"craige"
"fiona"
"hamish"
"logan"
"xander"
];
};
2019-12-10 14:43:41 +00:00
}