154 lines
5.1 KiB
Nix
154 lines
5.1 KiB
Nix
{
|
|
den,
|
|
__findFile,
|
|
modules,
|
|
inputs,
|
|
...
|
|
}:
|
|
{
|
|
den.aspects.doloro-desktop = {
|
|
includes = [
|
|
<den/primary-user>
|
|
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/hyprland/doloro-settings>
|
|
(modules.obs {
|
|
audio = true;
|
|
autostart = true;
|
|
})
|
|
<modules/common/gaming>
|
|
modules.hytale-launcher
|
|
# modules.helium
|
|
(<modules/helium> {
|
|
default = true;
|
|
})
|
|
# modules.niri # Testing
|
|
modules.stylix
|
|
modules.quickshell
|
|
modules.nix-ld
|
|
modules.spotify
|
|
# modules.easyeffects
|
|
# modules.lavd
|
|
<modules/ai/secrets>
|
|
# modules.ai
|
|
modules.pi-coding # inactive: swapped to opencode
|
|
# modules.omp
|
|
modules.podman
|
|
modules.wivrn
|
|
# <modules/ai/ollama-cuda>
|
|
];
|
|
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,
|
|
...
|
|
}:
|
|
{
|
|
xdg.configFile."hypr/hyprland-local.lua" = {
|
|
text = ''
|
|
-- Host overrides (desktop): pin workspaces to monitors.
|
|
-- HDMI-A-1 (left) shows workspace 1, DP-2 (right) shows workspace 2.
|
|
hl.workspace_rule({ workspace = "name:1", monitor = "HDMI-A-1" })
|
|
hl.workspace_rule({ workspace = "name:2", monitor = "DP-2" })
|
|
|
|
-- Autostart (workspace placement applies only to these spawned windows)
|
|
hl.on("hyprland.start", function()
|
|
hl.exec_cmd("steam", { workspace = "6 silent" })
|
|
hl.exec_cmd("telegram-desktop", { workspace = "8 silent" })
|
|
hl.exec_cmd("equibop", { workspace = "8 silent" })
|
|
hl.exec_cmd("spotify", { workspace = "9 silent" })
|
|
hl.exec_cmd("obs", { workspace = "10 silent" })
|
|
end)
|
|
'';
|
|
};
|
|
home.packages = with pkgs; [
|
|
equibop
|
|
telegram-desktop
|
|
obsidian
|
|
# pear-desktop
|
|
prismlauncher
|
|
# deadlock-mod-manager
|
|
inputs.nik-pkgs.packages.x86_64-linux.grimoire
|
|
# gamescope
|
|
android-studio
|
|
blender
|
|
qbittorrent
|
|
mpv
|
|
krita
|
|
# (tetrio-desktop.override { withTetrioPlus = true; })
|
|
# bottles
|
|
# 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
|
|
'';
|
|
})
|
|
# prusa-slicer
|
|
];
|
|
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;
|
|
nixpkgs.config.problems.handlers = {
|
|
tetrio-plus.broken = "warn";
|
|
};
|
|
programs.home-manager.enable = true;
|
|
};
|
|
};
|
|
}
|