Added EasyEffects to the system packages and its preset selector GNOME extension to improve audio management capabilities. This enhances user control over audio processing and customization options.
207 lines
4.5 KiB
Nix
207 lines
4.5 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.localsearch.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;
|
|
|
|
hardware.graphics = {
|
|
enable = true;
|
|
|
|
extraPackages =
|
|
[ ]
|
|
++ lib.optionals pkgs.stdenv.targetPlatform.isx86_64 (
|
|
with pkgs;
|
|
[
|
|
vpl-gpu-rt
|
|
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
|
|
rocmPackages.clr.icd
|
|
amdvlk
|
|
]
|
|
);
|
|
};
|
|
|
|
systemd.tmpfiles.rules =
|
|
let
|
|
rocmEnv = pkgs.symlinkJoin {
|
|
name = "rocm-combined";
|
|
paths =
|
|
[ ]
|
|
++ lib.optionals pkgs.stdenv.targetPlatform.isx86_64 (
|
|
with pkgs.rocmPackages;
|
|
[
|
|
rocblas
|
|
hipblas
|
|
clr
|
|
]
|
|
);
|
|
};
|
|
in
|
|
[ "L+ /opt/rocm - - - - ${rocmEnv}" ];
|
|
|
|
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
|
|
easyeffects
|
|
file
|
|
firefox
|
|
gh
|
|
gimp
|
|
git
|
|
gnome-browser-connector
|
|
cheese
|
|
gnome-software
|
|
gnomeExtensions.appindicator
|
|
gnomeExtensions.autohide-battery
|
|
gnomeExtensions.dash-to-panel
|
|
gnomeExtensions.easyeffects-preset-selector
|
|
gnomeExtensions.hibernate-status-button
|
|
gnomeExtensions.vitals
|
|
gnupg
|
|
go
|
|
jq
|
|
kbfs
|
|
libu2f-host
|
|
mosh
|
|
mosh
|
|
nixpkgs-fmt
|
|
opensc
|
|
pasystray
|
|
pinentry-gnome3
|
|
pkg-config
|
|
pstree
|
|
remmina
|
|
ripgrep
|
|
rustup
|
|
statix
|
|
thunderbird
|
|
tmux
|
|
vim
|
|
wl-clipboard
|
|
yubikey-manager-qt
|
|
yubikey-personalization
|
|
zellij
|
|
]
|
|
++ lib.optionals pkgs.stdenv.targetPlatform.isx86_64 (
|
|
with pkgs;
|
|
[
|
|
slack
|
|
spotify
|
|
jetbrains-toolbox
|
|
]
|
|
);
|
|
|
|
#----=[ 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 ];
|
|
};
|
|
}
|