nix-configs/modules/presets/gui.nix
2025-07-29 03:02:25 +02:00

128 lines
3.8 KiB
Nix

{
pkgs,
config,
lib,
...
}:
let
cfg = config.xyno.presets.gui;
in
{
options.xyno.presets.gui.enable = lib.mkEnableOption "enables xynos gui config";
options.xyno.presets.gui.terminalEmulator = lib.mkOption {
type = lib.types.str;
default = "alacritty";
};
config = lib.mkIf cfg.enable {
services.udev.packages = [
pkgs.openocd # fix permission errors with connecting things (especially esp32-c3)
pkgs.ptouch-print
];
xyno.desktop.niri.enable = true;
xyno.desktop.audio.enable = lib.mkDefault true;
security.soteria.enable = true;
security.rtkit.enable = true;
xyno.hardware.kmonad.enable = true;
# wayland on electron
environment.sessionVariables.NIXOS_OZONE_WL = "1";
services.displayManager.defaultSession = "niri";
# gdm
services.xserver.displayManager.gdm.enable = true;
services.xserver.enable = true;
services.xserver.displayManager.gdm.wayland = true;
# ssh agent
programs.ssh.startAgent = true;
qt = {
enable = true;
style = "breeze";
platformTheme = "lxqt";
};
programs.yazi = {
settings.keymap.manager.prepend_keymap = [
{
on = "y";
run = [
''shell -- for path in "$@"; do echo "file://$path"; done | ${pkgs.wl-clipboard-rs}/bin/wl-copy -t text/uri-list''
"yank"
];
}
];
};
# setup printing
services.avahi = {
enable = true;
nssmdns4 = true;
nssmdns6 = true;
openFirewall = true;
};
services.printing.enable = true;
services.printing.stateless = true;
services.system-config-printer.enable = true;
# enable the gnome shit
services.gnome.gnome-keyring.enable = true;
services.gnome.gnome-online-accounts.enable = true;
services.gnome.core-utilities.enable = true;
services.gnome.gcr-ssh-agent.enable = lib.mkForce false;
services.gnome.sushi.enable = true;
services.gnome.gnome-settings-daemon.enable = true;
services.gvfs.enable = true;
xdg.terminal-exec = {
enable = true;
settings.default = [ "foot.desktop" ];
};
xdg.portal.xdgOpenUsePortal = true;
environment.sessionVariables.GTK_USE_PORTAL = "1";
# home-manager.users.${config.xyno.system.user.name} =
# { pkgs, ... }:
# {
# xdg.mimeApps = {
# enable = true;
# defaultApplications = {
# "x-scheme-handler/mailto" = [ "aerc.desktop" ];
# "inode/directory" = [ "org.gnome.Nautilus.desktop" ];
# "application/x-gnome-saved-search" = [ "org.gnome.Nautilus.desktop" ];
# "x-scheme-handler/http" = "userapp-Zen-D2P132.desktop";
# "x-scheme-handler/https" = "userapp-Zen-D2P132.desktop";
# "x-scheme-handler/chrome" = "userapp-Zen-D2P132.desktop";
# "text/html" = "userapp-Zen-D2P132.desktop";
# "application/x-extension-htm" = "userapp-Zen-D2P132.desktop";
# "application/x-extension-html" = "userapp-Zen-D2P132.desktop";
# "application/x-extension-shtml" = "userapp-Zen-D2P132.desktop";
# "application/xhtml+xml" = "userapp-Zen-D2P132.desktop";
# "application/x-extension-xhtml" = "userapp-Zen-D2P132.desktop";
# "application/x-extension-xht" = "userapp-Zen-D2P132.desktop";
# "application/pdf" = "org.gnome.Evince.desktop";
# };
# };
# };
environment.systemPackages = with pkgs; [
kdePackages.breeze-gtk
kdePackages.breeze.qt5
kdePackages.breeze
kdePackages.breeze-icons
];
# fonts
fonts.packages = with pkgs; [
nerd-fonts.jetbrains-mono
cantarell-fonts
dejavu_fonts
source-code-pro # Default monospace font in 3.32
source-sans
b612
lxqt.lxqt-config
ptouch-print
];
};
}