190 lines
4.1 KiB
Nix
190 lines
4.1 KiB
Nix
{
|
|
lib,
|
|
config,
|
|
pkgs,
|
|
...
|
|
}: let
|
|
inherit (lib) mkIf mkForce;
|
|
inherit (config) conf versions;
|
|
time = pkgs.makeDesktopItem {
|
|
name = "peaclock-desktop";
|
|
desktopName = "Time";
|
|
exec = "alacritty -e ${pkgs.peaclock}/bin/peaclock";
|
|
};
|
|
in
|
|
mkIf (conf.host != "server") {
|
|
# Audio
|
|
security.rtkit.enable = true;
|
|
|
|
services = {
|
|
pipewire = {
|
|
enable = true;
|
|
alsa.enable = true;
|
|
alsa.support32Bit = true;
|
|
pulse.enable = true;
|
|
jack.enable = mkForce false;
|
|
|
|
extraConfig.pipewire = {
|
|
"90-hifi" = {
|
|
"context.properties" = {
|
|
"default.clock.rate" = 384000;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
# Needed for some features in nautilus such as auto-mounting and trash
|
|
gvfs.enable = true;
|
|
};
|
|
|
|
# Run statically linked and more
|
|
environment.systemPackages = [pkgs.nix-alien];
|
|
programs.nix-ld.enable = true;
|
|
|
|
# Bluetooth
|
|
hardware.bluetooth = {
|
|
enable = true;
|
|
powerOnBoot = true;
|
|
settings = {
|
|
General = {
|
|
Enable = "Source,Sink,Media,Socket";
|
|
Experimental = true;
|
|
};
|
|
};
|
|
};
|
|
|
|
# Regularly clean download folder
|
|
systemd = {
|
|
timers."clean-download" = {
|
|
wantedBy = ["timers.target"];
|
|
timerConfig = {
|
|
OnCalendar = "*-*-* 03:00:00";
|
|
Unit = "clean-download.service";
|
|
};
|
|
};
|
|
|
|
services."clean-download" = {
|
|
script = ''
|
|
${pkgs.coreutils}/bin/rm -rf /home/${conf.username}/Downloads/*
|
|
'';
|
|
serviceConfig = {
|
|
Type = "oneshot";
|
|
User = "root";
|
|
};
|
|
};
|
|
};
|
|
|
|
services.blueman.enable = true;
|
|
|
|
home-manager.users.${conf.username} = {
|
|
home = {
|
|
packages = with pkgs;
|
|
[
|
|
adwaita-icon-theme
|
|
adwaita-qt
|
|
adwaita-qt6
|
|
|
|
loupe
|
|
spotify
|
|
amberol
|
|
snapshot
|
|
papers
|
|
|
|
nautilus
|
|
gnome-disk-utility
|
|
fragments
|
|
|
|
inkscape
|
|
libresprite
|
|
tor-browser
|
|
chromium
|
|
libreoffice-qt6
|
|
prusa-slicer
|
|
ghidra
|
|
peaclock
|
|
(cutter.withPlugins (ps:
|
|
with ps; [
|
|
jsdec
|
|
sigdb
|
|
rz-ghidra
|
|
]))
|
|
|
|
signal-desktop
|
|
vesktop
|
|
element-desktop
|
|
fractal
|
|
]
|
|
++ [
|
|
time
|
|
];
|
|
|
|
file = {
|
|
".config/vesktop/settings.json" = {
|
|
source = ./vesktop.conf.json;
|
|
};
|
|
".config/vesktop/settings/settings.json" = {
|
|
source = ./vencord.conf.json;
|
|
};
|
|
};
|
|
|
|
pointerCursor = rec {
|
|
gtk.enable = true;
|
|
x11.enable = true;
|
|
name = "BreezX-RosePine-Linux";
|
|
size = 24;
|
|
package = pkgs.callPackage ./cursor.nix {
|
|
name = name;
|
|
version = versions.rosepine-cursor;
|
|
};
|
|
};
|
|
};
|
|
|
|
qt = {
|
|
enable = true;
|
|
platformTheme.name = "adwaita";
|
|
style.name = "adwaita-dark";
|
|
};
|
|
|
|
gtk = {
|
|
enable = true;
|
|
gtk4.extraConfig = {
|
|
gtk-application-prefer-dark-theme = true;
|
|
};
|
|
gtk3.extraConfig = {
|
|
gtk-application-prefer-dark-theme = true;
|
|
};
|
|
gtk2.extraConfig = "gtk-application-prefer-dark-theme=1\n";
|
|
theme.name = "Adwaita Dark";
|
|
};
|
|
|
|
dconf = {
|
|
enable = true;
|
|
settings = {
|
|
"org/gnome/desktop/interface" = {
|
|
color-scheme = "prefer-dark";
|
|
};
|
|
};
|
|
};
|
|
|
|
programs = {
|
|
firefox = import ./firefox.conf.nix pkgs;
|
|
|
|
thunderbird = {
|
|
enable = true;
|
|
profiles = {
|
|
"default" = {
|
|
isDefault = true;
|
|
};
|
|
};
|
|
};
|
|
|
|
mpv.enable = true;
|
|
|
|
pandoc.enable = true;
|
|
|
|
alacritty = {
|
|
enable = true;
|
|
settings = import ./alacritty.conf.nix config;
|
|
};
|
|
};
|
|
};
|
|
}
|