mio-ops/profiles/desktop_common.nix

126 lines
3.3 KiB
Nix
Raw Normal View History

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
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.`
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
pantheon = {
apps.enable = true;
contractor.enable = true;
};
2020-04-21 08:23:43 +00:00
xserver = {
enable = true;
desktopManager = {
gnome.enable = false; # Enable GNOME desktop environment
pantheon.enable = true; # Enable Pantheon desktop environment
2020-04-21 08:23:43 +00:00
};
displayManager = {
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";
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
};
# 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
}