summaryrefslogtreecommitdiff
path: root/modules/desktop.nix
diff options
context:
space:
mode:
authorKleidi Bujari <mail@4kb.net>2025-04-29 12:15:09 -0400
committerKleidi Bujari <mail@4kb.net>2025-04-29 12:15:09 -0400
commit2ae51f22c5fb6a76fe3deca99bc2c94368012af7 (patch)
tree2088fd7ef4d244cce40e6e91b505a23936029a5d /modules/desktop.nix
parentbfbfc8cf8a981404415d1e0b0c6a65eacef1e451 (diff)
downloaddepot-2ae51f22c5fb6a76fe3deca99bc2c94368012af7.tar.gz
depot-2ae51f22c5fb6a76fe3deca99bc2c94368012af7.tar.bz2
depot-2ae51f22c5fb6a76fe3deca99bc2c94368012af7.zip
move modules out of xnet
Diffstat (limited to 'modules/desktop.nix')
-rw-r--r--modules/desktop.nix184
1 files changed, 184 insertions, 0 deletions
diff --git a/modules/desktop.nix b/modules/desktop.nix
new file mode 100644
index 0000000..3e0485e
--- /dev/null
+++ b/modules/desktop.nix
@@ -0,0 +1,184 @@
+{ lib, pkgs, ... }:
+let
+ inherit (lib) mkDefault;
+ inherit (builtins) listToAttrs;
+in
+{
+ environment.systemPackages = with pkgs; [
+ foot
+ fuzzel
+ imv
+ man-pages
+ man-pages-posix
+ mpv
+ playerctl
+ pop-icon-theme
+ pwvucontrol
+ swayidle
+ swaylock
+ tigervnc
+ wl-clipboard
+ xorg.xeyes
+ xwayland-satellite
+ zathura
+ ];
+
+ security.rtkit.enable = true;
+ services.pipewire = {
+ enable = true;
+ pulse.enable = true;
+ alsa.enable = true;
+ };
+
+ systemd.user.services =
+ let
+ afterGraphical = ExecStart: {
+ enable = true;
+ after = [ "graphical-session.target" ];
+ partOf = [ "graphical-session.target" ];
+ wantedBy = [ "graphical-session.target" ];
+ serviceConfig = {
+ inherit ExecStart;
+ Type = "simple";
+ };
+ };
+ in
+ {
+ mako = afterGraphical "${pkgs.mako}/bin/mako";
+ waybar = afterGraphical "${pkgs.waybar}/bin/waybar";
+ udiskie = afterGraphical "${pkgs.udiskie}/bin/udiskie";
+ };
+
+ qt = {
+ enable = true;
+ style = "adwaita-dark";
+ platformTheme = "gnome";
+ };
+
+ fonts.packages = with pkgs; [
+ departure-mono
+ iosevka
+ noto-fonts
+ noto-fonts-cjk-sans
+ noto-fonts-emoji
+ nerd-fonts.symbols-only
+ ];
+
+ environment.etc."xdg/user-dirs.defaults".text = ''
+ DOWNLOAD=/tmp/downloads
+ '';
+
+ environment.sessionVariables = {
+ MOZ_ENABLE_WAYLAND = 1;
+ MOZ_USE_XINPUT2 = 1;
+ MOZ_WEBRENDER = 1;
+ # XDG_CURRENT_DESKTOP = "niri";
+ # XDG_SESSION_TYPE = "wayland";
+ };
+
+ programs = {
+ niri.enable = true;
+ light.enable = mkDefault true;
+ direnv.enable = true;
+ fish = {
+ enable = true;
+ interactiveShellInit = ''
+ # disable greeting
+ set fish_greeting
+ '';
+ };
+
+ # GTK settings
+ dconf = {
+ enable = true;
+ profiles.user.databases = [{
+ lockAll = true;
+ settings = {
+ "org/gnome/desktop/interface" = {
+ color-scheme = "prefer-dark";
+ gtk-font-name = "System-ui 10";
+ icon-theme = "Pop";
+ theme-name = "Adwaita-dark";
+ };
+ };
+ }];
+ };
+ };
+
+ # Helper for managing dotfiles
+ environment.shellAliases.dots =
+ "git --git-dir=$HOME/.local/cfg/ --work-tree=$HOME";
+
+ # Enable yubikey for SSH and more
+ services = {
+ yubikey-agent.enable = true;
+ pcscd.enable = true;
+ udev.packages = with pkgs; [ yubikey-personalization ];
+ udisks2.enable = true;
+ };
+
+ programs.firefox = {
+ enable = true;
+ preferences = {
+ # Enable hardware transcoding
+ "media.ffmpeg.vaapi.enabled" = true;
+
+ # Disable controlling media with keyboard
+ "media.hardwaremediakeys.enabled" = false;
+ # Enable legacy compact mode
+ "browser.compactmode.show" = true;
+ "browser.uidensity" = 1;
+
+ # Disable ctrl+q closing browser
+ "browser.quitShortcut.disabled" = true;
+
+ # Hardcode theme to dark mode
+ "ui.systemUsesDarkTheme" = 1;
+ };
+ policies = {
+ DefaultDownloadDirectory = "/tmp/firefox";
+ DisableTelemetry = true;
+ DisableFirefoxStudies = true;
+ EnableTrackingProtection = {
+ Value = true;
+ Locked = true;
+ Cryptomining = true;
+ Fingerprinting = true;
+ };
+ DisableAccounts = true;
+ DisableFirefoxAccounts = true;
+ DisableFirefoxScreenshots = true;
+ DisablePocket = true;
+ DisplayBookmarksToolbar = "never";
+ DisplayMenuBar = "default-off";
+ DontCheckDefaultBrowser = true;
+ Homepage = {
+ URL = "about:blank";
+ StartPage = "homepage";
+ };
+ HttpsOnlyMode = "enabled";
+ DNSOverHTTPS = false;
+ NewTabPage = false;
+ OfferToSaveLogins = false;
+ PasswordManagerEnabled = false;
+ SearchBar = "unified";
+ SearchEngines.Default = "DuckDuckGo";
+ SearchSuggestEnabled = false;
+ ExtensionSettings =
+ let
+ extension = shortId: uuid: {
+ name = uuid;
+ value = {
+ install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/${shortId}/latest.xpi";
+ installation_mode = "force_installed";
+ };
+ };
+ in
+ listToAttrs [
+ (extension "ublock-origin" "uBlock0@raymondhill.net")
+ (extension "bitwarden-password-manager" "{446900e4-71c2-419f-a6a7-df9c091e268b}")
+ (extension "darkreader" "addon@darkreader.org")
+ ];
+ };
+ };
+}