{ pkgs, config, lib, ... }: with lib; let cfg = config.xyno.presets.gui; in { options.xyno.presets.gui.enable = mkEnableOption "enables xynos gui config"; options.xyno.presets.gui.terminalEmulator = mkOption { type = types.str; default = "foot"; }; config = mkIf cfg.enable { services.udev.packages = [ pkgs.openocd # fix permission errors with connecting things (especially esp32-c3) pkgs.ptouch-print pkgs.yubikey-personalization ]; xyno.desktop.niri.enable = true; xyno.desktop.ibus.enable = true; xyno.desktop.audio.enable = mkDefault true; xyno.user-services.khal.enable = true; boot.kernelPackages = mkDefault pkgs.linuxPackages_zen; security.soteria.enable = true; security.rtkit.enable = true; services.pcscd.enable = true; services.pcscd.plugins = [ pkgs.pcsc-scm-scl011 ]; xyno.hardware.kmonad.enable = true; # wayland on electron environment.sessionVariables.NIXOS_OZONE_WL = "1"; # gdm services.displayManager.gdm.enable = true; # services.xserver.enable = true; services.displayManager.gdm.wayland = true; # ssh agent programs.ssh.startAgent = true; qt = { enable = true; platformTheme = "qt5ct"; }; home-manager.sharedModules = let gruvboxDarkColors = pkgs.writeText "gruvbox-dark.conf" '' [ColorScheme] active_colors=#ffebdbb2, #ff1d2021, #ffbdae93, #ffa89984, #ff3c3836, #ff504945, #ffebdbb2, #ffebdbb2, #ffebdbb2, #ff282828, #ff1d2021, #ff504945, #ff458588, #ff282828, #ff458588, #ffcc241d, #ff282828, #ffebdbb2, #ff1d2021, #ffebdbb2, #ffbdae93 disabled_colors=#ffbdae93, #ff1d2021, #ffbdae93, #ffa89984, #ff3c3836, #ff504945, #ffbdae93, #ffbdae93, #ffbdae93, #ff282828, #ff1d2021, #ff504945, #ff438184, #ff3c3836, #ff458588, #ffcc241d, #ff282828, #ffebdbb2, #ff1d2021, #ffebdbb2, #ffbdae93 inactive_colors=#ffebdbb2, #ff1d2021, #ffbdae93, #ffa89984, #ff3c3836, #ff504945, #ffebdbb2, #ffebdbb2, #ffebdbb2, #ff282828, #ff1d2021, #ff504945, #ff438184, #ffa89984, #ff458588, #ffcc241d, #ff282828, #ffebdbb2, #ff1d2021, #ffebdbb2, #ffbdae93 ''; qt5ctConf = pkgs.writeText "qt5ct.conf" '' [Appearance] color_scheme_path=${gruvboxDarkColors} custom_palette=true icon_theme=breeze-dark standard_dialogs=xdgdesktopportal style=Breeze [Fonts] fixed="Source Sans 3,12,-1,5,50,0,0,0,0,0" general="Source Sans 3,12,-1,5,50,0,0,0,0,0" ''; in [ { home.file.".config/qt5ct/qt5ct.conf".source = qt5ctConf; home.file.".config/qt6ct/qt6ct.conf".source = qt5ctConf; } ]; programs.yazi = { settings.keymap.mgr.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; environment.systemPackages = with pkgs; [ gnome-calendar gnome-clocks gnome-font-viewer mate.engrampa papirus-folders kdePackages.gwenview kdePackages.skanlite kdePackages.okular kdePackages.breeze-gtk kdePackages.breeze.qt5 kdePackages.breeze kdePackages.breeze-icons nautilus # for xdg portal ]; services.gnome.gcr-ssh-agent.enable = mkForce false; # services.gnome.sushi.enable = true; services.gnome.gnome-settings-daemon.enable = true; programs.thunar = { enable = true; plugins = with pkgs.xfce; [ thunar-archive-plugin thunar-volman ]; }; services.tumbler.enable = true; # thunar image preview services.gvfs.enable = true; # thunar network device mount 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, ... }: { xyno.mpv.enable = true; # 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"; # }; # }; }; # fonts fonts.fontconfig.defaultFonts = { sansSerif = [ "Source Sans 3" "Noto Sans Symbols 2" ]; monospace = [ "JetBrainsMono Nerd Font" "Noto Sans Symbols 2" ]; }; fonts.packages = with pkgs; [ nerd-fonts.jetbrains-mono # nerd-fonts.source-sans # nerd-fonts.b612 cantarell-fonts dejavu_fonts source-code-pro # Default monospace font in 3.32 source-sans b612 ptouch-print noto-fonts noto-fonts-color-emoji ]; }; }