# Common configuration for MIO desktops { config, pkgs, ... }: { imports = [ ../profiles/ebooks.nix ../profiles/games-kids.nix ../profiles/host_common.nix ../profiles/daedalus.nix ../profiles/openssh.nix ../profiles/powerManagement.nix ../secrets/user-craige.nix ../secrets/user-fiona.nix ../secrets/user-hamish.nix ../secrets/user-logan.nix ../secrets/user-root.nix ../secrets/user-xander.nix ]; # Common Desktop Packages environment.systemPackages = with pkgs; [ brave # Privacy-oriented browser chromium element-desktop # A feature-rich client for Matrix.org librewolf # Firefox fork, focused on privacy, security and freedom gnome.gnome-tweaks # A tool to customize advanced GNOME 3 options krita # A free and open source painting application libreoffice-fresh mplayer # A movie player that supports many video formats nextcloud-client # Nextcloud desktop client pwgen # Password generator rsync shotwell # Photo organizer signal-desktop # Private, simple, and secure messenger usbutils # Tools for working with USB devices, such as lsusb xorg.libxcb # X C binding ]; networking.networkmanager.enable = true; # Enables network support via NetworkManager. # Enable common desktop services 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 pantheon = { apps.enable = true; contractor.enable = true; }; xserver = { enable = true; desktopManager = { gnome.enable = false; # Enable GNOME desktop environment pantheon.enable = true; # Enable Pantheon desktop environment }; displayManager = { defaultSession = "pantheon"; # Set GNOME as the default session gdm.enable = false; # Enable the GNOME display manager lightdm.greeters.pantheon.enable = true; }; libinput = { enable = true; # Enable touchpad support. touchpad = { tapping = true; tappingButtonMap = "lrm"; # Set the touchpad button mappeing }; }; }; pipewire = { enable = true; alsa = { enable = true; support32Bit = true; }; pulse.enable = true; }; }; sound.enable = true; # Enable sound. security.rtkit.enable = true; # realtime scheduling for sound # Configure common hardware settings hardware = { pulseaudio = { enable = false; }; bluetooth = { enable = true; # Enable bluetooth settings = { General = { Enable = "Source,Sink,Media,Socket"; NoPlugin = "sap"; }; Policy = {AutoEnable = "true";}; }; }; opengl.enable = true; }; # Configure libreWolf and Chromium nixpkgs.config = {allowUnfree = true;}; programs = { chromium = { enable = true; homepageLocation = "https://start.duckduckgo.com/"; }; }; # 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"]; }; }