{ den, __findFile, modules, inputs, ... }: { den.aspects.doloro-desktop = { includes = [ den.aspects.doloro-shared modules.sops modules.flatpaks modules.gamemode modules.hyprland modules.fish modules.tuigreet modules.kitty modules.nikpkgs modules.fonts modules.unity (modules.obs { audio = true; autostart = true; }) # modules.helium ( { default = true; }) # modules.niri # Testing modules.stylix modules.quickshell modules.nix-ld modules.spotify # modules.easyeffects # modules.lavd modules.ai # modules.omp modules.podman ]; nixos = { config, pkgs, ... }: { users.users.doloro = { shell = pkgs.fish; hashedPasswordFile = config.sops.secrets."doloro-hashed_password".path; extraGroups = [ "libvirtd" "gamemode" ]; }; # Register GSettings schemas so GTK/GLib apps (orca-slicer) can find # them; without this GLib aborts with "No GSettings schemas are # installed on the system" on non-GNOME desktops. programs.dconf.enable = true; virtualisation.libvirtd.enable = false; # virtualisation.waydroid.enable = true; # # Newer kernel versions may need # virtualisation.waydroid.package = pkgs.waydroid-nftables; programs.virt-manager.enable = false; }; homeManager = { home, pkgs, ... }: { wayland.windowManager.hyprland.settings = { monitor = [ "HDMI-A-1, 1920x1080@60, 0x0, 1" "DP-2, 1920x1080@120, 1920x0, 1" ]; exec-once = [ "hyprctl dispatch workspace 2" # shit solution to get quickshell on the right monitor ]; workspace = [ "name:2, monitor:DP-2" ]; input = { kb_layout = "gb"; follow_mouse = 2; sensitivity = -0.5; }; }; home.packages = with pkgs; [ equibop telegram-desktop obsidian # pear-desktop prismlauncher # deadlock-mod-manager inputs.nik-pkgs.packages.x86_64-linux.grimorie # gamescope android-studio blender tetrio-plus # bottles # pi-coding-agent # orca-slicer's wrapGAppsHook does not actually wrap the installed # binary, so neither the GSettings schema path nor the NVIDIA/zink # workaround env from `withNvidiaGLWorkaround` reach the process. # Wrap it ourselves: prepend the gtk3 + gsettings-desktop schema dirs # to XDG_DATA_DIRS (fixes "No GSettings schemas are installed on the # system") and set the zink GL workaround explicitly. (pkgs.symlinkJoin { name = "orca-slicer"; paths = [ (pkgs.orca-slicer.override { withNvidiaGLWorkaround = true; }) ]; nativeBuildInputs = [ pkgs.makeWrapper ]; postBuild = '' wrapProgram $out/bin/orca-slicer \ --prefix XDG_DATA_DIRS : "${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}:${pkgs.gsettings-desktop-schemas}/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}" \ --set __GLX_VENDOR_LIBRARY_NAME mesa \ --set __EGL_VENDOR_LIBRARY_FILENAMES /run/opengl-driver/share/glvnd/egl_vendor.d/50_mesa.json \ --set MESA_LOADER_DRIVER_OVERRIDE zink \ --set GALLIUM_DRIVER zink \ --set WEBKIT_DISABLE_DMABUF_RENDERER 1 ''; }) ]; programs.lutris.enable = true; nixpkgs.overlays = [ # Skipping tests while upstream sorts it out, revert once # Hydra consistently builds openldap green. (final: prev: { openldap = prev.openldap.overrideAttrs (_: { doCheck = false; }); }) ]; nixpkgs.config.allowUnfree = true; programs.home-manager.enable = true; }; }; }