This commit is contained in:
4DBug
2026-02-18 22:44:39 -06:00
parent bca6b60a3e
commit e5f9674f8d
82 changed files with 9362 additions and 0 deletions

View File

@@ -0,0 +1,28 @@
{
den.aspects.audio = {
nixos = {
security.rtkit.enable = true;
services = {
pulseaudio.enable = false;
pipewire = {
enable = true;
wireplumber.enable = true;
alsa = {
enable = true;
support32Bit = true;
};
pulse.enable = true;
#lowLatency.enable = false;
jack.enable = true;
};
};
};
};
}

View File

@@ -0,0 +1,39 @@
{
den.aspects.mpd = {
nixos = {
services = {
mpd = {
enable = true;
settings = {
music_directory = "/home/bug/Music";
decoder = [
{
plugin = "ffmpeg";
enabled = "yes";
}
{
plugin = "opus";
enabled = "no";
}
];
audio_output = [{
type = "pipewire";
name = "PipeWire Sound Server";
}];
};
user = "bug";
};
};
systemd.services = {
mpd.environment = {
XDG_RUNTIME_DIR = "/run/user/1000";
};
};
};
};
}

View File

@@ -0,0 +1,15 @@
{ inputs, ... }: {
imports = [
(inputs.flake-file.flakeModules.dendritic or {})
(inputs.den.flakeModules.dendritic or {})
];
flake-file.inputs = {
den.url = "github:vic/den";
flake-file.url = "github:vic/flake-file";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
};
}

View File

@@ -0,0 +1,75 @@
{
den.aspects.cosmic = {
nixos = { pkgs, ... }: {
services = {
greetd.enable = true;
system76-scheduler.enable = true;
displayManager = {
cosmic-greeter.enable = true;
autoLogin = {
enable = true;
user = "bug";
};
};
desktopManager.cosmic.enable = true;
};
environment.systemPackages = with pkgs; [
cosmic-applets
cosmic-edit
cosmic-ext-calculator
cosmic-ext-tweaks
cosmic-screenshot
xdg-desktop-portal-gtk
xdg-desktop-portal-cosmic
];
environment.sessionVariables = {
COSMIC_DATA_CONTROL_ENABLED = 1;
};
xdg = {
portal = {
enable = true;
xdgOpenUsePortal = true;
config.common.default = ["gtk"];
extraPortals = [pkgs.xdg-desktop-portal-gtk pkgs.xdg-desktop-portal-cosmic];
};
mime = {
enable = true;
defaultApplications = {
"text/html" = "firefox.desktop";
"x-scheme-handler/http" = "firefox.desktop";
"x-scheme-handler/https" = "firefox.desktop";
"x-scheme-handler/about" = "firefox.desktop";
"x-scheme-handler/unknown" = "firefox.desktop";
"application/pdf" = "firefox.desktop";
"inode/directory" = "com.system76.CosmicFiles.desktop";
"text/plain" = "com.system76.CosmicEdit.desktop";
"text/markdown" = "com.system76.CosmicEdit.desktop";
"application/zip" = "org.gnome.FileRoller.desktop";
"application/x-7z-compressed" = "org.gnome.FileRoller.desktop";
"application/x-tar" = "org.gnome.FileRoller.desktop";
"application/gzip" = "org.gnome.FileRoller.desktop";
"application/x-xz" = "org.gnome.FileRoller.desktop";
"application/x-zip-compressed" = "org.gnome.FileRoller.desktop";
"application/x-ms-dos-executable" = "wine.desktop";
};
};
};
};
};
}

View File

@@ -0,0 +1,10 @@
{
den.aspects.amdgpu = {
nixos = {
services.xserver = {
enable = true;
videoDrivers = ["amdgpu"];
};
};
};
}

View File

@@ -0,0 +1,45 @@
{
den.aspects.nvidia = {
nixos = { pkgs, config, ... }: {
hardware.graphics = {
enable = true;
enable32Bit = true;
extraPackages = with pkgs; [
libva-vdpau-driver
libvdpau
libvdpau-va-gl
vdpauinfo
libva
libva-utils
libglvnd
mesa
nvidia-vaapi-driver
];
};
services.xserver = {
enable = true;
videoDrivers = ["nvidia"];
};
hardware.nvidia = {
modesetting.enable = true;
powerManagement.enable = false;
powerManagement.finegrained = false;
open = false;
nvidiaSettings = true;
package = config.boot.kernelPackages.nvidiaPackages.beta;
};
nixpkgs.config = {
cudaSupport = true;
nvidia.acceptLicense = true;
};
};
};
}

View File

@@ -0,0 +1,9 @@
{
den.aspects.cloudflare-warp = {
nixos = {
services.cloudflare-warp = {
enable = true;
};
};
};
}

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1,11 @@
{
den.aspects.dns = {
nixos = {
networking = {
networkmanager.enable = true;
nameservers = [ "1.1.1.1" "1.0.0.1" ];
};
};
};
}

View File

@@ -0,0 +1,15 @@
{
den.aspects.openssh = {
nixos = {
services.openssh = {
enable = true;
settings = {
PrintMotd = true;
X11Forwarding = true;
AllowTcpForwarding = true;
};
};
};
};
}

19
modules/core/swap.nix Normal file
View File

@@ -0,0 +1,19 @@
{
den.aspects.swap = {
nixos = {
boot.kernel.sysctl = {
"fs.file-max" = 524288;
};
swapDevices = [{
device = "/var/lib/swapfile";
size = 8 * 1024;
}];
zramSwap = {
enable = true;
memoryMax = 64 * 1024 * 1024 * 1024;
};
};
};
}

View File

@@ -0,0 +1,11 @@
{
den.aspects.virtualisation = {
nixos = {
virtualisation = {
libvirtd.enable = true;
spiceUSBRedirection.enable = true;
};
};
};
}

15
modules/hosts.nix Normal file
View File

@@ -0,0 +1,15 @@
let
bug = {
isNormalUser = true;
description = "bug";
extraGroups = [ "networkmanager" "wheel" "audio" "video" "libvirtd" "ydotool" "dialout" ];
};
in {
den.hosts.x86_64-linux = {
nix.users.bug = bug;
laptop.users.bug = bug;
box.users.bug = bug;
};
den.homes.x86_64-linux.bug = { aspect = "bug"; };
}

35
modules/hosts/box/box.nix Normal file
View File

@@ -0,0 +1,35 @@
{ den, ... }: {
den.aspects.box = {
includes = with den.aspects; [
den.provides.home-manager
syncthing
fish
cloudflared
searxng
copyparty
glances
#invidious
mailserver
matrix
redlib
sish
vscode-server
dns
openssh
];
nixos = {
networking.hostName = "box";
users.users.levi = {
isNormalUser = true;
description = "levi";
extraGroups = [];
hashedPasswordFile = "/home/bug/users/levi.passwd";
};
};
};
}

View File

@@ -0,0 +1,98 @@
{
den.default = {
nixos = { pkgs, ... }: {
imports = [
/etc/nixos/hardware-configuration.nix
];
system = {
stateVersion = "26.05";
autoUpgrade = {
enable = true;
allowReboot = false;
};
};
nixpkgs = {
config = {
allowUnfree = true;
};
};
nix = {
optimise.automatic = true;
settings.experimental-features = [ "nix-command" "flakes" ];
};
security = {
sudo = {
enable = true;
wheelNeedsPassword = false;
};
};
boot = {
kernelPackages = pkgs.linuxPackages_zen;
initrd.checkJournalingFS = false;
loader = {
grub.splashImage = null;
systemd-boot = {
enable = true;
configurationLimit = 25;
};
efi.canTouchEfiVariables = true;
};
};
environment.systemPackages = with pkgs; [
comma
fastfetch
git
home-manager
inetutils
micro
nh
nil
nixd
nixfmt
nix-index
nix-output-monitor
nix-prefetch
nvd
psmisc
tree
unzip
wget
];
time.timeZone = "America/Chicago";
i18n = {
defaultLocale = "en_US.UTF-8";
extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8";
LC_MONETARY = "en_US.UTF-8";
LC_NAME = "en_US.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "en_US.UTF-8";
LC_TELEPHONE = "en_US.UTF-8";
LC_TIME = "en_US.UTF-8";
};
};
};
homeManager = {
home = {
stateVersion = "26.05";
};
};
};
}

View File

@@ -0,0 +1,36 @@
{ den, ... }: {
den.aspects.laptop = {
includes = with den.aspects; [
amdgpu
cosmic
firefox
audio
den.provides.home-manager
stylix
#nvidia
syncthing
swap
cloudflare-warp
packages
development
#cad
mpd
virtualisation
flatpak
fish
dns
openssh
];
nixos = {
networking.hostName = "nix";
services.logind.settings.Login = {
HandleLidSwitch = "ignore";
HandleLidSwitchDocked = "ignore";
};
};
};
}

31
modules/hosts/nix/nix.nix Normal file
View File

@@ -0,0 +1,31 @@
{ den, ... }:
{
den.aspects.nix = {
includes = with den.aspects; [
#amdgpu
cosmic
firefox
audio
den.provides.home-manager
stylix
nvidia
syncthing
swap
#cloudflare-warp
packages
development
#cad
mpd
virtualisation
flatpak
fish
dns
openssh
];
nixos = {
networking.hostName = "nix";
};
};
}

View File

@@ -0,0 +1,31 @@
{
den.aspects.cloudflared = {
nixos = { pkgs, ...}: let
TUNNEL_UUID = "4118935e-359b-4dd2-95bd-eb27f7b0c5bb";
in {
environment.systemPackages = [ pkgs.cloudflared ];
environment.etc."cloudflared/${TUNNEL_UUID}.json".source = "/home/bug/.cloudflared/${TUNNEL_UUID}.json";
services.cloudflared = {
enable = true;
tunnels."${TUNNEL_UUID}" = {
credentialsFile = "/etc/cloudflared/${TUNNEL_UUID}.json";
default = "http_status:404";
ingress = {
"tvtun.bug.tools" = "http://127.0.0.1:3001";
"search.bug.tools" = "http://127.0.0.1:8888";
"files.bug.tools" = "http://127.0.0.1:3210";
"tube.bug.tools" = "http://127.0.0.1:3030";
"monitor.bug.tools" = "http://127.0.0.1:61208";
"reddit.bug.tools" = "http://127.0.0.1:8975";
"matrix.bug.tools" = "http://127.0.0.1:8008";
"bug.tools" = "http://127.0.0.1:8080";
};
};
};
};
};
}

View File

@@ -0,0 +1,70 @@
{
den.aspects.syncthing = {
homeManager = {
services.syncthing = {
enable = true;
overrideDevices = true;
overrideFolders = true;
key = "/home/bug/.syncthing/key.pem";
cert = "/home/bug/.syncthing/cert.pem";
settings = {
devices = {
desktop.id = "VEZXY3W-U6UXWTP-6BHANIG-O5EKNZY-XNV5YOX-4V4O3HB-ETECIUX-T2DK7AV";
laptop.id = "I6NW53P-IJMMT73-7O53TXY-3GAHS2U-4EAADM7-ZNB5ZPB-62QHKVW-H7DYXQ2";
server.id = "KJECAIP-Y2Y3FHV-NOJKIQV-LWIDMMZ-5ITEAZ4-LQCQL72-3BGW6T7-BFPFJQA";
};
folders = {
"Documents" = {
path = "/home/bug/Documents";
devices = ["desktop" "laptop" "server"];
};
"Downloads" = {
path = "/home/bug/Downloads";
devices = ["desktop" "laptop" "server"];
};
"Pictures" = {
path = "/home/bug/Pictures";
devices = ["desktop" "laptop" "server"];
};
"Videos" = {
path = "/home/bug/Videos";
devices = ["desktop" "laptop" "server"];
};
"nix" = {
path = "/home/bug/nix";
devices = ["desktop" "laptop" "server"];
};
"hytale" = {
path = "/home/bug/.local/share/Hytale/UserData/Saves";
devices = ["desktop" "laptop"];
};
"ssh" = {
path = "/home/bug/.ssh";
devices = ["desktop" "laptop" "server"];
};
"cloudflared" = {
path = "/home/bug/.cloudflared";
devices = ["desktop" "laptop" "server"];
};
"Music" = {
path = "/home/bug/Music/";
devices = ["desktop" "laptop" "server"];
};
};
};
};
};
};
}

View File

@@ -0,0 +1,82 @@
{ inputs, ... }: {
den.aspects.copyparty = {
nixos = {
imports = [ inputs.copyparty.nixosModules.default ];
nixpkgs.overlays = [ inputs.copyparty.overlays.default ];
services.copyparty = {
enable = true;
user = "bug";
group = "copyparty";
settings = {
i = "0.0.0.0";
p = [ 3210 3211 ];
no-reload = true;
ignored-flag = false;
};
accounts = {
bug = {
passwordFile = "/home/bug/mailserver/bug.passwd";
};
sang = {
passwordFile = "/home/bug/nix/sang.passwd";
};
};
groups = {
g1 = [ "bug" ];
};
volumes = {
"/" = {
path = "/srv/copyparty";
access = {
r = "*";
rw = [ "bug" ];
};
flags = {
fk = 4;
scan = 60;
};
};
"/music" = {
path = "/home/bug/Music";
access = {
r = "*";
rw = [ "bug" ];
};
flags = {
fk = 4;
scan = 60;
};
};
"/sang" = {
path = "/srv/sang";
access = {
rw = [ "bug" "sang" ];
};
flags = {
fk = 4;
scan = 60;
};
};
};
openFilesLimit = 8192;
};
};
};
}

View File

@@ -0,0 +1,44 @@
{
den.aspects.glances = {
nixos = { pkgs, ... }: {
environment.systemPackages = [ pkgs.glances ];
users.users.glances = {
isSystemUser = true;
group = "glances";
home = "/var/lib/glances";
createHome = true;
};
users.groups.glances = {};
systemd.services.glances-web = {
description = "glances web interface";
after = [ "network-online.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
User = "glances";
Group = "glances";
ExecStart = ''
${pkgs.glances}/bin/glances \
-w \
-p 61208 \
-B 0.0.0.0
'';
Restart = "always";
RestartSec = 5;
NoNewPrivileges = true;
PrivateTmp = true;
ProtectSystem = "strict";
ProtectHome = true;
LockPersonality = true;
MemoryDenyWriteExecute = true;
};
};
};
};
}

View File

@@ -0,0 +1,65 @@
{
den.aspects.invidious = {
nixos = { pkgs, lib, ... }: let
companionPort = 8282;
companionPath = "/companion";
companionKey = "kKg3RKeZjE7frmvw";
in {
virtualisation.podman.enable = true;
virtualisation.oci-containers.backend = lib.mkDefault "podman";
virtualisation.oci-containers.containers.invidious-companion = {
image = "quay.io/invidious/invidious-companion:latest";
extraOptions = [ "--network=host" "--pull=always" ];
environment = {
SERVER_SECRET_KEY = companionKey;
HOST = "127.0.0.1";
PORT = toString companionPort;
SERVER_BASE_URL = "http://127.0.0.1:${toString companionPort}";
# HTTP_PROXY = "http://proxy.example:3128";
# HTTPS_PROXY = "http://proxy.example:3128";
# NO_PROXY = "127.0.0.1,localhost";
};
};
services.invidious = {
enable = true;
package = pkgs.invidious;
address = "127.0.0.1";
port = 3030;
nginx.enable = false;
sig-helper.enable = false;
settings = {
domain = "tube.bug.tools";
https_only = true;
external_port = 443;
use_pubsub_feeds = true;
use_innertube_for_captions = true;
visitor_data = "Cgt6ZmQ4UEtOUkJJNCjwtcPMBjIKCgJVUxIEGgAgXA%3D%3D";
po_token = "Mni77CY6tviRIrvQXWaz6OfDryNNzAlKeIj4m0N1SHIITM94AZ8R0fK2dfuYke5tjZJjD33c4jB94p1Wy_XKCJPNbSkE2dgzRPdP502Q8ufofOe6fd4hV-fZFitud_tZO_BcNa18nKgfnupVYgV8huPgaFu-RKyGPIU=";
invidious_companion = [
{ private_url = "http://127.0.0.1:${toString companionPort}${companionPath}"; }
];
popular_enabled = true;
invidious_companion_key = companionKey;
};
};
systemd.services.invidious = let dep = "podman-invidious-companion.service"; in {
wants = [ dep ];
after = [ dep ];
requires = [ dep ];
};
};
};
}

View File

@@ -0,0 +1,52 @@
{
den.aspects.mailserver = {
nixos = {
imports = [
(builtins.fetchTarball {
url = "https://gitlab.com/simple-nixos-mailserver/nixos-mailserver/-/archive/master.tar.gz";
sha256 = "0rm5f749xakmkqrpkl5ay1pydbnlinr50pvwg1vm795js2infmj5";
})
];
security.acme = {
acceptTerms = true;
defaults.email = "security@bug.tools";
certs."mail.bug.tools" = {
listenHTTP = "1360";
};
};
mailserver = {
enable = true;
stateVersion = 3;
fqdn = "mail.bug.tools";
domains = [ "bug.tools" ];
x509.useACMEHost = "mail.bug.tools";
loginAccounts = {
"bug@bug.tools" = {
hashedPasswordFile = "/home/bug/mailserver/bug.passwd";
aliases = [
"admin@bug.tools"
"google@bug.tools"
"apple@bug.tools"
"roblox@bug.tools"
"twitch@bug.tools"
"discord@bug.tools"
"github@bug.tools"
"matrix@bug.tools"
];
};
"pare@bug.tools" = {
hashedPasswordFile = "/home/bug/mailserver/pare.passwd";
};
};
};
};
};
}

View File

@@ -0,0 +1,7 @@
{
den.aspects.matrix = {
nixos = {
};
};
}

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1,37 @@
{
den.aspects.redlib = {
nixos = {
services.redlib = {
enable = true;
address = "127.0.0.1";
port = 8975;
openFirewall = false;
settings = {
SFW_ONLY = "off";
ROBOTS_DISABLE_INDEXING = "on";
ENABLE_RSS = "on";
THEME = "system";
FRONT_PAGE = "default";
LAYOUT = "card";
WIDE = "on";
POST_SORT = "hot";
COMMENT_SORT = "confidence";
BLUR_SPOILER = "off";
SHOW_NSFW = "on";
BLUR_NSFW = "off";
USE_HLS = "on";
HIDE_HLS_NOTIFICATION = "off";
AUTOPLAY_VIDEOS = "off";
HIDE_AWARDS = "off";
DISABLE_VISIT_REDDIT_CONFIRMATION = "off";
HIDE_SCORE = "off";
HIDE_SIDEBAR_AND_SUMMARY = "off";
FIXED_NAVBAR = "on";
REMOVE_DEFAULT_FEEDS = "off";
};
};
};
};
}

View File

@@ -0,0 +1,25 @@
{
den.aspects.searxng = {
nixos = {
systemd.services.searx-init.serviceConfig.EnvironmentFile = [
"/home/bug/.searxng.env"
];
services.searx = {
enable = true;
redisCreateLocally = false;
configureUwsgi = false;
settingsFile = ./searxng.yml;
environmentFile = "/home/bug/.searxng.env";
settings = {
general.instance_name = "search.bug.tools";
server.port = 8888;
server.bind_address = "0.0.0.0";
server.secret_key = "$SEARX_SECRET_KEY";
};
};
};
};
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,7 @@
{
den.aspects.sish = {
nixos = {
};
};
}

View File

@@ -0,0 +1,11 @@
{
den.aspects.vscode-server = {
nixos = {
imports = [
(fetchTarball "https://github.com/nix-community/nixos-vscode-server/tarball/master")
];
services.vscode-server.enable = true;
};
};
}

View File

@@ -0,0 +1,51 @@
{
den.aspects.beets = {
homeManager = { pkgs, ... }: {
packages = with pkgs; [
beets
ffmpeg
chromaprint
];
file.".config/beets/config.yaml".text = ''
library: ~/.local/share/beets/library.db
directory: ~/Music
import:
write: true
copy: true
plugins:
- convert
- fetchart
- embedart
- fromfilename
- chroma
- smartplaylist
paths:
default: $artist/$album/$track - $title
convert:
auto: true
format: opus
formats:
opus: ffmpeg -i $source -y -vn -c:a libopus -b:a 160k $dest
dest: /home/bug/Music
fetchart:
auto: yes
ifempty: yes
art_filename: folder
embedart:
auto: yes
smartplaylist:
playlist_dir: ~/Music/playlists
relative_to: library
output: extm3u
'';
};
};
}

11
modules/software/cad.nix Normal file
View File

@@ -0,0 +1,11 @@
{
den.aspects.cad = {
nixos = { pkgs, ... }: {
users.users.bug.packages = with pkgs; [
blender
plasticity
orca-slicer
];
};
};
}

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1,21 @@
{
den.aspects.development = {
nixos = { pkgs, ... }: {
environment.systemPackages = with pkgs; [
file-roller
];
users.users.bug.packages = with pkgs; [
zed-editor
vscode
tree
gh
scanmem
arduino-ide
];
};
};
}

View File

@@ -0,0 +1,11 @@
{
den.aspects.firefox = {
nixos = { pkgs, ... }: {
programs.firefox = {
enable = true;
package = pkgs.firefox-bin;
};
};
};
}

View File

@@ -0,0 +1,9 @@
{
den.aspects.fish = {
nixos = {
programs.fish.shellAliases = {
box = "ssh box.bug.tools";
};
};
};
}

View File

@@ -0,0 +1,55 @@
{ inputs, lib, ... }: {
den.aspects.flatpak = {
nixos = { pkgs, ... }: {
imports = [ inputs.nix-flatpak.nixosModules.nix-flatpak ];
services.flatpak = {
enable = true;
remotes = lib.mkOptionDefault [{
name = "flathub-beta";
location = "https://flathub.org/beta-repo/flathub-beta.flatpakrepo";
}];
update.auto.enable = true;
uninstallUnmanaged = true;
packages = [
"org.vinegarhq.Sober"
"org.vinegarhq.Vinegar"
"org.gnome.Decibels"
"org.pipewire.Helvum"
"community.pathofbuilding.PathOfBuilding"
"io.github.gaheldev.Millisecond"
{
appId = "com.hytale.Launcher";
sha256 = "sha256-SUxfyovC2umZmsOj5bOTZ8WfGCpnWcz7svOESwNekV0=";
bundle = "${pkgs.fetchurl {
url = "https://launcher.hytale.com/builds/release/linux/amd64/hytale-launcher-latest.flatpak";
sha256 = "sha256-SUxfyovC2umZmsOj5bOTZ8WfGCpnWcz7svOESwNekV0=";
}}";
}
# add Polytoria client
# https://cdn.polytoria.com/releases/installer/linux/Polytoria%20Setup%204.12.0.flatpak
{
appId = "com.polytoria.launcher";
sha256 = "sha256-VjhNiJfSdCtlH2SuP3Mn8jjOrx5xcOqhtDKaWYIwxYg=";
bundle = "${pkgs.fetchurl {
url = "https://github.com/4DBug/poly/releases/download/poly/poly.flatpak";
sha256 = "sha256-VjhNiJfSdCtlH2SuP3Mn8jjOrx5xcOqhtDKaWYIwxYg=";
}}";
}
];
overrides = {
global = {
Context.sockets = ["wayland" "!x11" "!fallback-x11"];
};
};
};
};
};
}

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1,195 @@
{
den.aspects.packages = {
nixos = { pkgs, options, ... }: {
environment.systemPackages = with pkgs; [
gnome-boxes
wine64
wineWow64Packages.full
appimage-run
pulseaudioFull
lug-helper
gamemode
steam-run
firmware-updater
file-roller
baobab
firefox-bin
];
users.users.bug.packages = with pkgs; [
obsidian
vesktop
nicotine-plus
fastfetch
gh
scanmem
samrewritten
impression
mission-center
authenticator
steamtinkerlaunch
#prismlauncher
euphonica
kooha
loupe
arduino-ide
geary
fractal
gnome-calendar
];
services = {
/*
flatpak = {
enable = true;
remotes = lib.mkOptionDefault [{
name = "flathub-beta";
location = "https://flathub.org/beta-repo/flathub-beta.flatpakrepo";
}];
update.auto.enable = true;
uninstallUnmanaged = true;
packages = [
"org.vinegarhq.Sober"
"org.vinegarhq.Vinegar"
"org.gnome.Decibels"
"org.pipewire.Helvum"
"community.pathofbuilding.PathOfBuilding"
"io.github.gaheldev.Millisecond"
{
appId = "com.hytale.Launcher";
sha256 = "sha256-SUxfyovC2umZmsOj5bOTZ8WfGCpnWcz7svOESwNekV0=";
bundle = "${pkgs.fetchurl {
url = "https://launcher.hytale.com/builds/release/linux/amd64/hytale-launcher-latest.flatpak";
sha256 = "sha256-SUxfyovC2umZmsOj5bOTZ8WfGCpnWcz7svOESwNekV0=";
}}";
}
# add Polytoria client
# https://cdn.polytoria.com/releases/installer/linux/Polytoria%20Setup%204.12.0.flatpak
{
appId = "com.polytoria.launcher";
sha256 = "sha256-VjhNiJfSdCtlH2SuP3Mn8jjOrx5xcOqhtDKaWYIwxYg=";
bundle = "${pkgs.fetchurl {
url = "https://github.com/4DBug/poly/releases/download/poly/poly.flatpak";
sha256 = "sha256-VjhNiJfSdCtlH2SuP3Mn8jjOrx5xcOqhtDKaWYIwxYg=";
}}";
}
];
overrides = {
global = {
Context.sockets = ["wayland" "!x11" "!fallback-x11"];
};
};
};
*/
ollama = {
enable = false;
loadModels = [ "llama3.2:3b" "deepseek-r1:1.5b" "deepseek-r1:8b"];
};
};
fonts = {
fontDir.enable = true;
enableDefaultPackages = true;
packages = with pkgs; [
twitter-color-emoji
nerd-fonts.fira-code
nerd-fonts.droid-sans-mono
];
fontconfig = {
enable = true;
useEmbeddedBitmaps = true;
defaultFonts = {
emoji = [ "Twitter Color Emoji" ];
};
};
};
programs = {
appimage = {
enable = true;
binfmt = true;
};
steam = {
enable = true;
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = false;
localNetworkGameTransfers.openFirewall = true;
gamescopeSession.enable = true;
extraCompatPackages = with pkgs; [
proton-ge-bin
];
#platformOptimizations.enable = true;
};
ydotool.enable = true;
gamescope = {
enable = true;
capSysNice = true;
args = [
"--rt"
"--expose-wayland"
];
};
virt-manager.enable = true;
nix-ld = {
enable = true;
libraries = options.programs.nix-ld.libraries.default ++ (with pkgs; [
libxml2
udev
gcc
egl-wayland
mesa
libglvnd
wayland
libX11
libXcursor
libXrandr
libXi
]);
};
};
};
};
}

View File

@@ -0,0 +1 @@
{}

View File

@@ -0,0 +1,47 @@
{ inputs, ... }: {
den.aspects.stylix = {
homeManager = { pkgs, ... }: {
imports = [
(inputs.stylix.homeModules.stylix or {})
];
stylix = {
enable = true;
autoEnable = true;
polarity = "dark";
# catppuccin mocha
base16Scheme = {
base00 = "1E1E2E";
base01 = "181825";
base02 = "313244";
base03 = "45475A";
base04 = "585B70";
base05 = "CDD6F4";
base06 = "F5E0DC";
base07 = "B4BEFE";
base08 = "F38BA8";
base09 = "FAB387";
base0A = "F9E2AF";
base0B = "A6E3A1";
base0C = "94E2D5";
base0D = "89B4FA";
base0E = "CBA6F7";
base0F = "F2CDCD";
};
fonts.emoji = {
name = "Twitter Color Emoji";
package = pkgs.twitter-color-emoji;
};
targets = {
vesktop.enable = true;
gnome.enable = true;
gtk.enable = true;
firefox.enable = true;
};
};
};
};
}

10
modules/users/bug.nix Normal file
View File

@@ -0,0 +1,10 @@
{ den, ... }:
{
den.aspects.bug = {
includes = [
den.provides.primary-user
(den.provides.user-shell "fish")
den.provides.home-manager
];
};
}

16
modules/vm.nix Normal file
View File

@@ -0,0 +1,16 @@
# nix run .#vm
{ inputs, den, ... }: {
den.aspects.nix.includes = [ (den.provides.tty-autologin "bug") ];
perSystem = { pkgs, ... }: {
packages.vm = pkgs.writeShellApplication {
name = "vm";
text = let
host = inputs.self.nixosConfigurations.nix.config;
in ''
${host.system.build.vm}/bin/run-${host.networking.hostName}-vm "$@"
'';
};
};
}