{ config, pkgs, lib, ... }: { imports = [ ./niri.nix ./wofi.nix ./fuzzel.nix ./waybar.nix ./swaync.nix ./swayidle.nix ./swaylock.nix ./wlsunset.nix ./udiskie.nix ]; stylix = { enable = true; base16Scheme = "${pkgs.base16-schemes}/share/themes/solarized-dark.yaml"; polarity = "dark"; cursor = { package = pkgs.google-cursor; name = "GoogleDot-Blue"; size = 24; }; image = ../wallpapers/wallhaven-5g9ed8.png; opacity.terminal = 0.8; fonts = { sizes = { applications = 13; desktop = 14; popups = 12; terminal = 15; }; serif = { package = pkgs.nerdfonts.override {fonts = ["Iosevka"];}; name = "Iosevka Nerd Font"; }; sansSerif = { package = pkgs.nerdfonts.override {fonts = ["Iosevka"];}; name = "Iosevka Nerd Font"; }; monospace = { package = pkgs.nerdfonts.override {fonts = ["Iosevka"];}; name = "Iosevka Nerd Font Mono"; }; emoji = { package = pkgs.noto-fonts-emoji; name = "Noto Color Emoji"; }; }; }; dconf.settings = { "org/gnome/desktop/interface" = { icon-theme = "Papirus-Dark"; }; }; fuzzel.enable = true; waybar.enable = true; swaync.enable = false; wlsunset.enable = true; component.swaylock.enable = true; swayidle.enable = true; udiskie.enable = true; imv.enable = true; services.gnome-keyring.enable = true; services.network-manager-applet.enable = true; services.copyq.enable = true; services.dunst = { enable = true; settings = { global = { width = 300; height = 300; icon_theme = "${config.dconf.settings."org/gnome/desktop/interface".icon-theme}"; corner_radius = 12; corners = "top-right,bottom-left"; offset = "45x5"; origin = "top-right"; timeout = 15; }; rule-telegram = { "desktop_entry" = "org.telegram.desktop"; "urgency" = "normal"; }; }; }; home.packages = with pkgs; [ dconf glib wbg swayidle swaylock-effects libnotify wdisplays pwvucontrol wl-clipboard-rs polkit_gnome xwayland-satellite papirus-icon-theme #libsForQt5.qt5ct #kdePackages.qt6ct #libsForQt5.qtstyleplugin-kvantum #kdePackages.qtstyleplugin-kvantum #adwaita-qt #adwaita-qt6 ]; gtk = { enable = true; #iconTheme = { # name = "Papirus-Dark"; # package = pkgs.papirus-icon-theme; }; qt = { enable = true; platformTheme.name = "gtk3"; }; xdg.mime.enable = true; xdg.mimeApps = { enable = true; defaultApplications = let file_manager = ["yazi.desktop"]; web_browser = ["io.github.zen_browser.zen.desktop"]; image_viewer = ["imv.desktop"]; video_player = ["io.mpv.Mpv.desktop"]; pdf_reader = ["org.pwmt.zathura-pdf-mupdf.desktop"]; in { "inode/directory" = file_manager; "video/x-matroska" = video_player; "application/pdf" = pdf_reader; }; }; xdg.userDirs = { enable = true; createDirectories = true; templates = "${config.home.homeDirectory}/temps"; publicShare = "${config.home.homeDirectory}/pub"; desktop = "${config.home.homeDirectory}/desktop"; download = "${config.home.homeDirectory}/downloads"; documents = "${config.home.homeDirectory}/docs"; pictures = "${config.home.homeDirectory}/pics"; videos = "${config.home.homeDirectory}/vids"; music = "${config.home.homeDirectory}/music"; }; xdg.configFile = { #niri = { # recursive = true; # source = dotfiles/niri; #}; #qt5ct = { # recursive = true; # source = dotfiles/qt5ct; #}; #qt6ct = { # recursive = true; # source = dotfiles/qt6ct; #}; #Kvantum = { # recursive = true; # source = dotfiles/Kvantum; #}; }; systemd.user.settings.Manager.DefaultEnvironment = { QT_QPA_PLATFORMTHEME = "gtk3"; QT_QPA_PLATFORM = "wayland"; DISPLAY = ":123"; }; systemd.user.targets.tray = { # workaround for udiskie Unit = { Description = "Home Manager System Tray"; }; }; systemd.user.services = { udiskie = { Unit = { PartOf = ["graphical-session.target"]; After = ["graphical-session.target"]; Requisite = ["graphical-session.target"]; }; Install = { WantedBy = ["niri.service"]; }; }; waybar = { # Unit = { # Description = "Swaync notification daemon"; # }; Unit = { PartOf = ["graphical-session.target"]; After = ["graphical-session.target"]; Requisite = ["graphical-session.target"]; }; Install = { WantedBy = ["niri.service"]; }; # Service = { # Type = "dbus"; # ExecStart = "${pkgs.swaynotificationcenter}/bin/swaync"; # Restart = "on-failure"; # RestartSec = 1; # TimeoutStopSec = 10; # }; }; copyq = { Unit = { PartOf = ["graphical-session.target"]; After = ["graphical-session.target"]; Requisite = ["graphical-session.target"]; }; Install = { WantedBy = ["niri.service"]; }; Service = { Environment = lib.mkForce "QT_QPA_PLATFORM=wayland"; Restart = "on-failure"; RestartSec = 1; TimeoutStopSec = 10; }; }; wbg = { Unit = { PartOf = ["graphical-session.target"]; After = ["graphical-session.target"]; Requisite = ["graphical-session.target"]; }; Install = { WantedBy = ["niri.service"]; }; Service = { Type = "simple"; ExecStart = "${pkgs.wbg}/bin/wbg ${config.stylix.image}"; Restart = "on-failure"; RestartSec = 1; TimeoutStopSec = 10; }; }; network-manager-applet = { Unit = { PartOf = ["graphical-session.target"]; After = ["graphical-session.target"]; Requisite = ["graphical-session.target"]; }; Install = { WantedBy = ["niri.service"]; }; }; gnome-polkit-agent = { Unit = { PartOf = ["graphical-session.target"]; After = ["graphical-session.target"]; Requisite = ["graphical-session.target"]; }; Install = { WantedBy = ["niri.service"]; }; Service = { Type = "simple"; ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"; Restart = "on-failure"; RestartSec = 1; TimeoutStopSec = 10; }; }; wlsunset = { Unit = { PartOf = ["graphical-session.target"]; After = ["graphical-session.target"]; Requisite = ["graphical-session.target"]; }; Install = { WantedBy = ["niri.service"]; }; }; swayidle = { Unit = { PartOf = ["graphical-session.target"]; After = ["graphical-session.target"]; Requisite = ["graphical-session.target"]; }; Install = { WantedBy = ["niri.service"]; }; }; xwayland-satellite = { Unit = { PartOf = ["graphical-session.target"]; After = ["graphical-session.target"]; Requisite = ["graphical-session.target"]; }; Install = { WantedBy = ["niri.service"]; }; Service = { Type = "simple"; ExecStart = "${pkgs.xwayland-satellite}/bin/xwayland-satellite :123"; Restart = "on-failure"; RestartSec = 1; TimeoutStopSec = 10; }; }; }; }