dotfiles/modules/profiles/desktop.nix

146 lines
4 KiB
Nix
Raw Normal View History

{ lib
2023-05-11 17:33:14 +02:00
, config
2022-07-15 13:11:54 +02:00
, pkgs
, ...
}:
2023-05-11 17:33:14 +02:00
with lib;
let
cfg = config.my.profiles.desktop;
in
{
options.my.profiles.desktop.enable = mkEnableOption "desktop profile";
config = mkIf cfg.enable {
my = {
yubikey = {
enable = mkDefault true;
2023-05-11 17:33:14 +02:00
luksSupport = {
2023-12-10 17:08:27 +01:00
enable = mkDefault false;
2023-05-11 17:33:14 +02:00
devices = mkDefault [ "enc" ];
};
};
2023-05-11 17:33:14 +02:00
wallpapers.enable = mkDefault true;
theming = {
enable = mkDefault true;
scheme = mkDefault "catppuccin-macchiato";
};
virtualisation.podman.enable = mkDefault true;
2022-07-15 13:11:54 +02:00
2023-05-11 17:33:14 +02:00
programs = {
chromium.enable = mkDefault true;
firefox.enable = mkDefault true;
gpg.enable = mkDefault true;
hyprland.enable = mkDefault true;
2023-05-31 15:51:50 +02:00
nix-edit.enable = mkDefault true;
2023-05-11 17:33:14 +02:00
nvim.enable = mkDefault true;
python.versions."311".enable = mkDefault true;
spotify-player = {
enable = mkDefault true;
package = pkgs.spotify-player.overrideAttrs (old: {
buildFeatures = lib.lists.remove "notify" (old.buildFeatures or [ ]);
});
config = {
client_id = "3172dbeaf64949728920c58b823bc24b";
copy_command = {
command = "wl-copy";
args = [ ];
};
enable_cover_image_cache = true;
default_device = "spotify-player-daemon";
enable_streaming = false;
playback_window_position = "Bottom";
cover_img_length = 20;
cover_img_width = 10;
};
};
2023-05-11 17:33:14 +02:00
ssh.enable = mkDefault true;
thunar.enable = mkDefault true;
wallpaper.enable = mkDefault true;
zathura.enable = mkDefault true;
};
services = {
dunst.enable = mkDefault true;
gammastep.enable = true;
kdeconnect.enable = mkDefault true;
printing.enable = true;
spotify-player = {
enable = mkDefault true;
config = {
client_id = "3172dbeaf64949728920c58b823bc24b";
device = {
name = "spotify-player-daemon";
device_type = "computer";
volume = 70;
bitrate = 320;
audio_cache = true;
};
};
};
2023-08-14 08:46:19 +02:00
timers.enable = true;
2023-05-11 17:33:14 +02:00
wireguard.enable = true;
};
2022-07-15 13:11:54 +02:00
};
2023-05-11 17:33:14 +02:00
environment.systemPackages = with pkgs; [
keepassxc
pavucontrol
2023-06-10 10:23:31 +02:00
stable.libreoffice # NOTE breaks often
stable.signal-desktop # NOTE breaks often
stable.texlive.combined.scheme-full # NOTE breaks often
2023-05-11 17:33:14 +02:00
thunderbird
vlc
(symlinkJoin {
name = "obsidian-wayland";
paths = [ obsidian ];
nativeBuildInputs = [ makeWrapper ];
postBuild = ''
wrapProgram $out/bin/obsidian \
--add-flags "--socket=wayland --enable-features=UseOzonePlatform --ozone-platform=wayland"
'';
})
];
nixpkgs.config.permittedInsecurePackages = [
"electron-25.9.0" # obsidian
2023-05-11 17:33:14 +02:00
];
2022-07-15 13:11:54 +02:00
2023-05-11 17:33:14 +02:00
programs.nix-ld.enable = true;
2022-12-23 12:40:37 +01:00
2023-05-11 17:33:14 +02:00
home-manager.users.moritz = {
services.nextcloud-client = {
enable = true;
startInBackground = true;
};
systemd.user.services.nextcloud-client.Service = {
RestartSec = "500ms";
Restart = "on-failure";
};
2022-07-15 13:11:54 +02:00
};
2023-05-11 17:33:14 +02:00
services = {
illum.enable = true;
2023-05-11 17:33:14 +02:00
gnome.gnome-keyring.enable = true;
pipewire = {
enable = true;
alsa.enable = true;
pulse.enable = true;
};
2022-07-15 13:11:54 +02:00
};
2023-10-25 17:19:59 +02:00
# faster startup https://majiehong.com/post/2021-07-30_slow_nixos_startup/
networking = {
# no need to wait interfaces to have an IP to continue booting
dhcpcd.wait = "background";
# avoid checking if IP is already taken to boot a few seconds faster
dhcpcd.extraConfig = "noarp";
};
# disable network-online.target
systemd.services.NetworkManager-wait-online.enable = false;
2023-10-27 19:33:19 +02:00
boot = {
consoleLogLevel = 0;
kernelParams = [ "quiet" "udev.log_level=3" ];
};
2022-07-15 13:11:54 +02:00
};
}