Files
nixos-blueprint/hosts/sarien/work_user/desktop/river/main.nix
unexplrd 2e6e28ef32 initial
2025-02-06 00:33:06 +02:00

311 lines
7.6 KiB
Nix

{
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;
};
};
};
}