Harald Hoyer
f4c89c2adf
Enabled Intel media driver support and set environment variables for better compatibility with Wayland. Also updated MPV configuration for hardware decoding and GPU settings.
165 lines
3.8 KiB
Nix
165 lines
3.8 KiB
Nix
{ options, config, lib, pkgs, ... }:
|
|
|
|
with lib;
|
|
with lib.metacfg;
|
|
let cfg = config.metacfg.gui;
|
|
in
|
|
{
|
|
options.metacfg.gui = with types; {
|
|
enable = mkBoolOpt false "Whether or not to enable a GUI.";
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
services = {
|
|
gnome.tracker-miners.enable = lib.mkForce false;
|
|
|
|
flatpak.enable = true;
|
|
|
|
pcscd.enable = lib.mkDefault false;
|
|
|
|
# Enable CUPS to print documents.
|
|
printing.enable = true;
|
|
|
|
pipewire = {
|
|
enable = true;
|
|
alsa.enable = true;
|
|
alsa.support32Bit = true;
|
|
pulse.enable = true;
|
|
# If you want to use JACK applications, uncomment this
|
|
#jack.enable = true;
|
|
|
|
# use the example session manager (no others are packaged yet so this is enabled by default,
|
|
# no need to redefine it in your config for now)
|
|
#media-session.enable = true;
|
|
};
|
|
|
|
udev.packages = [
|
|
pkgs.libu2f-host
|
|
pkgs.yubikey-personalization
|
|
];
|
|
|
|
xserver = {
|
|
xkb.layout = lib.mkDefault "de+us";
|
|
enable = true;
|
|
displayManager.gdm.enable = true;
|
|
desktopManager.gnome.enable = true;
|
|
};
|
|
};
|
|
#security.pam.p11.control = "sufficient";
|
|
#security.pam.p11.control = "required";
|
|
#security.pam.p11.enable = true;
|
|
# services.fprintd.enable = true;
|
|
#security.pam.yubico.enable = true;
|
|
#security.pam.yubico.control = "sufficient";
|
|
#security.pam.yubico.mode = "challenge-response";
|
|
|
|
#security.tpm2.pkcs11.enable = true;
|
|
|
|
# Enable sound with pipewire.
|
|
sound.enable = true;
|
|
hardware.pulseaudio.enable = false;
|
|
hardware.opengl = {
|
|
enable = true;
|
|
extraPackages = with pkgs; [
|
|
onevpl-intel-gpu
|
|
intel-compute-runtime
|
|
intel-media-driver # LIBVA_DRIVER_NAME=iHD
|
|
#intel-vaapi-driver # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium)
|
|
libvdpau-va-gl
|
|
];
|
|
};
|
|
environment.sessionVariables = {
|
|
LIBVA_DRIVER_NAME = "iHD";
|
|
NIXOS_OZONE_WL = "1";
|
|
}; # Force intel-media-driver
|
|
|
|
metacfg.home.configFile."mpv/mpv.conf".text = ''
|
|
hwdec=auto-safe
|
|
vo=gpu
|
|
profile=gpu-hq
|
|
gpu-context=wayland
|
|
'';
|
|
|
|
security.rtkit.enable = true;
|
|
|
|
programs.gnupg.agent = {
|
|
enable = true;
|
|
enableSSHSupport = true;
|
|
enableBrowserSocket = true;
|
|
};
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
#pcsctools
|
|
bat
|
|
cardpeek
|
|
ccache
|
|
chromium
|
|
clang
|
|
dive
|
|
file
|
|
firefox
|
|
gh
|
|
gimp
|
|
git
|
|
gnome-browser-connector
|
|
gnome.cheese
|
|
gnome.gnome-software
|
|
gnomeExtensions.appindicator
|
|
gnomeExtensions.autohide-battery
|
|
gnomeExtensions.dash-to-panel
|
|
gnomeExtensions.hibernate-status-button
|
|
gnomeExtensions.vitals
|
|
gnupg
|
|
go
|
|
jetbrains-toolbox
|
|
jq
|
|
kbfs
|
|
libu2f-host
|
|
mosh
|
|
mosh
|
|
nixpkgs-fmt
|
|
opensc
|
|
pasystray
|
|
pinentry-gnome3
|
|
pkg-config
|
|
pstree
|
|
ripgrep
|
|
rustup
|
|
slack
|
|
spotify
|
|
statix
|
|
thunderbird
|
|
tmux
|
|
vim
|
|
wl-clipboard
|
|
yubikey-manager-qt
|
|
yubikey-personalization
|
|
zellij
|
|
];
|
|
|
|
#----=[ Fonts ]=----#
|
|
fonts = {
|
|
enableDefaultPackages = false;
|
|
packages = with pkgs; [
|
|
noto-fonts-emoji
|
|
liberation_ttf
|
|
freefont_ttf
|
|
(nerdfonts.override { fonts = [ "FiraCode" "DroidSansMono" "JetBrainsMono" ]; })
|
|
];
|
|
|
|
fontconfig = {
|
|
enable = true;
|
|
defaultFonts = {
|
|
serif = [ "Liberation" ];
|
|
sansSerif = [ "Liberation" ];
|
|
monospace = [ "JetBrainsMono" ];
|
|
emoji = [ "Noto Color Emoji" ];
|
|
};
|
|
};
|
|
};
|
|
|
|
# remote desktop
|
|
networking.firewall.allowedTCPPorts = [ 3389 ];
|
|
};
|
|
}
|