2019-12-10 14:43:41 +00:00
|
|
|
# Common configuration for MIO desktops
|
|
|
|
{
|
2022-03-07 14:26:15 +00:00
|
|
|
config,
|
|
|
|
pkgs,
|
|
|
|
...
|
|
|
|
}: {
|
2021-11-16 04:57:23 +00:00
|
|
|
imports = [
|
2022-04-20 02:52:08 +00:00
|
|
|
../profiles/ebooks.nix
|
2021-11-16 04:57:23 +00:00
|
|
|
../profiles/games-kids.nix
|
|
|
|
../profiles/host_common.nix
|
|
|
|
../profiles/daedalus.nix
|
|
|
|
../profiles/openssh.nix
|
|
|
|
../profiles/powerManagement.nix
|
2024-08-23 13:48:24 +00:00
|
|
|
../secrets/users-core.nix
|
|
|
|
../secrets/users.nix
|
2021-11-16 04:57:23 +00:00
|
|
|
];
|
2019-12-10 14:43:41 +00:00
|
|
|
|
|
|
|
# Common Desktop Packages
|
|
|
|
environment.systemPackages = with pkgs; [
|
2021-11-16 04:57:23 +00:00
|
|
|
brave # Privacy-oriented browser
|
2019-12-10 14:43:41 +00:00
|
|
|
chromium
|
2021-11-16 04:57:23 +00:00
|
|
|
element-desktop # A feature-rich client for Matrix.org
|
2023-03-22 02:49:37 +00:00
|
|
|
librewolf # Firefox fork, focused on privacy, security and freedom
|
2021-11-16 04:57:23 +00:00
|
|
|
gnome.gnome-tweaks # A tool to customize advanced GNOME 3 options
|
2023-09-19 00:56:33 +00:00
|
|
|
krita # A free and open source painting application
|
2019-12-10 14:43:41 +00:00
|
|
|
libreoffice-fresh
|
2021-11-16 04:57:23 +00:00
|
|
|
mplayer # A movie player that supports many video formats
|
|
|
|
nextcloud-client # Nextcloud desktop client
|
|
|
|
pwgen # Password generator
|
2024-02-16 03:26:46 +00:00
|
|
|
rsync
|
2021-11-16 04:57:23 +00:00
|
|
|
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
|
2019-12-10 14:43:41 +00:00
|
|
|
];
|
|
|
|
|
2021-11-16 04:57:23 +00:00
|
|
|
networking.networkmanager.enable =
|
|
|
|
true; # Enables network support via NetworkManager.
|
2019-12-10 14:43:41 +00:00
|
|
|
|
|
|
|
# Enable common desktop services
|
2020-04-21 08:23:43 +00:00
|
|
|
services = {
|
2021-11-16 04:57:23 +00:00
|
|
|
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.`
|
2024-06-03 10:33:02 +00:00
|
|
|
displayManager = {
|
|
|
|
defaultSession = "pantheon"; # Set GNOME as the default session
|
|
|
|
};
|
|
|
|
libinput = {
|
|
|
|
enable = true; # Enable touchpad support.
|
|
|
|
touchpad = {
|
|
|
|
tapping = true;
|
|
|
|
tappingButtonMap = "lrm"; # Set the touchpad button mappeing
|
|
|
|
};
|
|
|
|
};
|
2020-04-21 08:23:43 +00:00
|
|
|
udev.packages = [
|
2021-11-16 04:57:23 +00:00
|
|
|
pkgs.android-udev-rules # Android udev rules list
|
2020-04-21 08:23:43 +00:00
|
|
|
];
|
2021-11-16 04:57:23 +00:00
|
|
|
udisks2.enable = true; # Enable udisks2
|
2019-12-10 14:43:41 +00:00
|
|
|
|
2023-09-19 00:56:33 +00:00
|
|
|
pantheon = {
|
|
|
|
apps.enable = true;
|
|
|
|
contractor.enable = true;
|
|
|
|
};
|
|
|
|
|
2020-04-21 08:23:43 +00:00
|
|
|
xserver = {
|
|
|
|
enable = true;
|
|
|
|
desktopManager = {
|
2023-09-19 00:56:33 +00:00
|
|
|
gnome.enable = false; # Enable GNOME desktop environment
|
|
|
|
pantheon.enable = true; # Enable Pantheon desktop environment
|
2020-04-21 08:23:43 +00:00
|
|
|
};
|
|
|
|
displayManager = {
|
2023-09-19 00:56:33 +00:00
|
|
|
gdm.enable = false; # Enable the GNOME display manager
|
|
|
|
lightdm.greeters.pantheon.enable = true;
|
2020-04-21 08:23:43 +00:00
|
|
|
};
|
|
|
|
};
|
2024-02-16 03:26:46 +00:00
|
|
|
|
|
|
|
pipewire = {
|
|
|
|
enable = true;
|
|
|
|
alsa = {
|
|
|
|
enable = true;
|
|
|
|
support32Bit = true;
|
|
|
|
};
|
|
|
|
pulse.enable = true;
|
|
|
|
};
|
2020-04-21 08:23:43 +00:00
|
|
|
};
|
2020-01-24 05:40:54 +00:00
|
|
|
|
2021-11-16 04:57:23 +00:00
|
|
|
sound.enable = true; # Enable sound.
|
2024-02-16 03:26:46 +00:00
|
|
|
security.rtkit.enable = true; # realtime scheduling for sound
|
2020-04-21 08:23:43 +00:00
|
|
|
|
|
|
|
# Configure common hardware settings
|
2020-01-06 00:45:20 +00:00
|
|
|
hardware = {
|
|
|
|
pulseaudio = {
|
2024-02-16 03:26:46 +00:00
|
|
|
enable = false;
|
2020-01-06 00:45:20 +00:00
|
|
|
};
|
|
|
|
bluetooth = {
|
2021-11-16 04:57:23 +00:00
|
|
|
enable = true; # Enable bluetooth
|
2021-06-04 00:32:51 +00:00
|
|
|
settings = {
|
2020-04-21 08:23:43 +00:00
|
|
|
General = {
|
|
|
|
Enable = "Source,Sink,Media,Socket";
|
2021-02-22 10:44:57 +00:00
|
|
|
NoPlugin = "sap";
|
2020-04-21 08:23:43 +00:00
|
|
|
};
|
2022-03-07 14:26:15 +00:00
|
|
|
Policy = {AutoEnable = "true";};
|
2020-04-21 08:23:43 +00:00
|
|
|
};
|
2020-01-06 00:45:20 +00:00
|
|
|
};
|
|
|
|
opengl.enable = true;
|
2019-12-10 14:43:41 +00:00
|
|
|
};
|
|
|
|
|
2023-09-19 00:56:33 +00:00
|
|
|
# Configure libreWolf and Chromium
|
2022-03-07 14:26:15 +00:00
|
|
|
nixpkgs.config = {allowUnfree = true;};
|
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 = {
|
2022-03-07 14:26:15 +00:00
|
|
|
audio.members = ["craige" "fiona" "hamish" "logan" "xander"];
|
|
|
|
libvirtd.members = ["craige" "fiona" "hamish" "logan" "xander"];
|
|
|
|
networkmanager.members = ["craige" "fiona" "hamish" "logan" "xander"];
|
2020-01-06 00:45:20 +00:00
|
|
|
};
|
2019-12-10 14:43:41 +00:00
|
|
|
}
|