Files
dotfiles/config/hosts/aspects/doloro-desktop/home.nix
T

144 lines
4.3 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.helium
(<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
<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,
...
}:
{
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;
};
};
}