Files
nixos/modules/desktop/default.nix
T
2026-10-06 17:01:39 +02:00

129 lines
3.2 KiB
Nix

{ pkgs, inputs, ... }:
{
imports = [
./hypr.nix
];
services.greetd = {
enable = true;
useTextGreeter = true;
settings = rec {
initial_session = {
command="${pkgs.uwsm}/bin/uwsm start hyprland.desktop";
user = "djai";
};
default_session = {
command = "${pkgs.tuigreet}/bin/tuigreet";
user = "greeter";
};
};
};
# note that we set the videodrivers on a per-host basis, so not here.
services.xserver = {
enable = true;
xkb = {
layout = "us";
variant = "euro";
options = "caps:escape";
};
};
console.useXkbConfig = true;
hardware.graphics = {
enable = true;
enable32Bit = true;
};
hardware.bluetooth.enable = true;
services.blueman.enable = true;
fonts.packages = with pkgs; [
nerd-fonts.caskaydia-cove
nerd-fonts.fira-code
nerd-fonts.iosevka
nerd-fonts.shure-tech-mono
nerd-fonts.symbols-only
yudit
];
services.udisks2.enable = true;
services.printing.enable = true;
users.users.djai.packages = with pkgs; [
hyprpicker
hyprprop
waybar
tuigreet
wf-recorder
grimblast
wmctrl
kanshi
rofi
wl-clipboard
wl-clipboard-x11
swaybg
catppuccin-qt5ct
];
# i have no clue what this does.
# GLib aborts any program that loads a GSettings schema it can't find, and Qt's GTK file dialog needs gtk3's. Nothing else puts these on the path.
environment.sessionVariables.GSETTINGS_SCHEMA_DIR = builtins.concatStringsSep ":" [
"${pkgs.gsettings-desktop-schemas}/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}/glib-2.0/schemas"
"${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}/glib-2.0/schemas"
];
environment.pathsToLink = [ "/share/xdg-desktop-portal" "/share/applications" ];
home-manager.users.djai = {
xdg = {
mimeApps = {
enable = true;
defaultApplications = {
"inode/directory" = [ "kitty.desktop" ];
"image/gif" = [ "mpv.desktop" ];
"text/html" = [ "librewolf.desktop" ];
"application/pdf" = [ "zathura.desktop" ];
"image/*" = [ "feh.deskop" ];
"x-scheme-handler/http" = [ "librewolf.desktop" ];
"x-scheme-handler/https" = [ "librewolf.desktop" ];
};
};
# TODO: check termfilechooser still works; had to disable this becos of hyprland
# portal = {
# enable = true;
# config = {
# common.default = [ "gtk" ];
# hyprland = {
# default = [
# "gtk"
# "hyprland"
# ];
# org.freedesktop.impl.portal.FileChooser = [ "termfilechooser" ];
# };
# };
# extraPortals = with pkgs; [
# xdg-desktop-portal-gtk
# xdg-desktop-portal-termfilechooser
# ];
# };
};
home.pointerCursor.enable = true; # catppuccin wanted this for cursors
catppuccin = {
cursors = {
enable = true;
accent = "mauve";
};
qt5ct.enable = true;
};
qt = {
style.name = "kvantum"; # required for catppuccin-nix
platformTheme.name = "qtct";
enable = true;
};
};
}