Compare commits

...

49 Commits

Author SHA1 Message Date
doloro 14fb9504a7 things 2026-07-20 23:01:15 +01:00
doloro 0a7e26455d feat: added recovery nixos config 2026-07-18 23:21:30 +01:00
doloro 4da3b6c50f lots of meow 2026-07-18 11:08:32 +01:00
doloro 0c6b788345 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 2026-07-13 12:31:50 +01:00
doloro 9c38e07741 "claude. release the files." 2026-07-12 16:05:12 +01:00
doloro d42ad4b44f fixed things and added things 2026-07-01 21:55:36 +01:00
doloro 8f311cc4ba meow 2026-06-29 23:30:19 +01:00
doloro 8742e5a58f nix flake update 2026-06-28 10:18:28 +01:00
doloro c072c583d1 meow 2026-06-23 09:12:21 +01:00
doloro ca0486baff meow 2026-06-20 14:14:40 +01:00
doloro 2b7d77972b meow 2026-06-15 17:48:39 +01:00
doloro 0fb5245525 changes 2026-06-14 13:05:57 +01:00
doloro 8ec7b3429f comit 2026-06-11 00:07:50 +01:00
doloro d8f593c9f0 nix flake update 2026-06-09 22:53:37 +01:00
doloro 2359a79c14 meow 2026-06-09 22:27:33 +01:00
doloro 5ba041b778 a bunch of commits i think 2026-06-07 18:45:11 +01:00
doloro d7eec2970b unity fixes 2026-06-04 12:14:38 +01:00
doloro cf18e8c975 nix flake update nikpkgs 2026-05-30 13:25:29 +01:00
doloro 0842e518cc add: unity 2026-05-30 13:23:07 +01:00
doloro 6de7c0ca67 fixed nik-pkgs & added deadlock mod manager 2026-05-29 15:20:51 +01:00
doloro acb6fb1677 fixes 2026-05-28 13:26:03 +01:00
doloro e45cc182ee nix flake update 2026-05-27 11:38:50 +01:00
doloro 86feb4e601 stuff 2026-05-27 10:59:28 +01:00
doloro ff1629ad1f fixes and cleaning 2026-05-26 13:48:21 +01:00
doloro b93c1ad6aa meow 2026-05-25 23:34:30 +01:00
doloro a9e3deea08 added: rpi binary cache 2026-05-25 20:59:33 +01:00
doloro e1b14b3e07 find file 2026-05-25 15:18:43 +01:00
doloro 2a8f29f35f meow 2026-05-25 15:17:56 +01:00
doloro b92586122e uid fix 2026-05-25 15:12:20 +01:00
doloro e72f3c8dd9 wrong place 2026-05-25 15:01:42 +01:00
doloro 3b0d0e45e3 added more modules to wsl 2026-05-25 14:58:31 +01:00
doloro ffdf1c7e69 default user 2026-05-25 14:50:52 +01:00
doloro 02c8529c83 wsl errors fixed 2026-05-25 14:44:52 +01:00
doloro d486fa170b wsl changes 2026-05-25 14:34:06 +01:00
doloro 7d3a5ba4fa wsl init 2026-05-22 15:00:59 +01:00
doloro 6c609e2fa6 fix build 2026-05-21 17:51:10 +01:00
doloro 140f47649c commit 2026-05-21 15:55:43 +01:00
doloro 212af403dc replaces rpi flake with a maintained one 2026-05-20 16:01:36 +01:00
doloro 1e8337e380 server: added docker reg 2026-05-20 11:54:03 +01:00
doloro 6b8e08fb7a meow 2026-05-19 21:33:08 +01:00
doloro 1977e912ee fix: hyprland breaking 2026-05-15 13:38:03 +01:00
doloro d53bba8961 qol: omp disabled for now 2026-05-15 13:19:08 +01:00
doloro 93ef68a998 nix flake update 2026-05-15 13:14:21 +01:00
doloro 74cadc4f69 nvim is cool now 2026-05-15 12:55:55 +01:00
doloro 5e83cc9863 changes to nvim, added podman to user 2026-05-15 11:47:23 +01:00
doloro 0545039d39 add: claude code 2026-05-12 14:00:47 +01:00
doloro 15c48c0ed3 nix flake update 2026-05-09 00:59:27 +01:00
doloro 49624c8bd1 commit 2026-05-09 00:30:24 +01:00
doloro 9b9a34f708 kernal pera changes 2026-04-30 11:36:28 +01:00
48 changed files with 1993 additions and 634 deletions
@@ -0,0 +1,33 @@
{
den,
modules,
inputs,
...
}:
{
den.aspects.doloro-bootable = {
includes = [
<den/primary-user>
den.aspects.doloro-shared
modules.nixvim
];
homeManager = {
pkgs,
lib,
...
}: {
home.packages = with pkgs; [
btrfs-progs
chntpw
ddrescue
fd
gpart
ntfs3g
parted
ranger
rsync
testdisk
];
};
};
}
@@ -0,0 +1,77 @@
{ den, modules, ... }:
{
den.aspects.doloro-bootable = {
nixos = {
pkgs,
lib,
...
}: {
networking.hostName = "doloro-recovery";
networking.networkmanager.enable = true;
services.openssh.enable = true;
boot.loader.grub.enable = true;
boot.loader.grub.device = "/dev/sda";
boot.loader.grub.efiSupport = true;
boot.loader.grub.efiInstallAsRemovable = true;
boot.initrd.availableKernelModules = [
"ata_piix"
"uhci_hcd"
"ehci_pci"
"xen_blkfront"
"sr_mod"
"nvme"
"virtio_pci"
"virtio_scsi"
];
nixpkgs.config.allowUnfree = true;
fileSystems."/" = {
device = "/dev/disk/by-label/nixos";
fsType = "ext4";
};
environment.systemPackages = with pkgs; [
btrfs-progs
btop
chntpw
ddrescue
e2fsprogs
fastfetch
fd
gpart
git
ntfs3g
parted
pavucontrol
pciutils
ranger
rsync
testdisk
util-linux
wl-clipboard
];
users.users.doloro = {
isNormalUser = true;
group = "doloro";
extraGroups = [ "wheel" "networkmanager" ];
initialPassword = "recovery";
};
users.groups.doloro = {};
security.sudo.wheelNeedsPassword = false;
services.getty.autologinUser = "doloro";
systemd.services."getty@tty1".enable = false;
systemd.services."autovt@tty1".enable = false;
services.xserver.enable = false;
system.stateVersion = "25.11";
};
};
}
+78 -8
View File
@@ -11,17 +11,22 @@
<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;
@@ -31,32 +36,55 @@
modules.quickshell
modules.nix-ld
modules.spotify
modules.easyeffects
modules.lavd
# modules.easyeffects
# modules.lavd
modules.ai
# modules.omp
modules.podman
<modules/ai/ollama-cuda>
];
nixos =
{ config, pkgs, ... }:
{
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, ... }:
{
home,
pkgs,
...
}:
{
wayland.windowManager.hyprland.settings = {
monitor = [
"HDMI-A-1, 1920x1080@60, 0x0, 1"
"DP-3, 1920x1080@144, 1920x0, 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-3"
"name:2, monitor:DP-2"
];
input = {
kb_layout = "gb";
@@ -70,11 +98,53 @@
obsidian
# pear-desktop
prismlauncher
deadlock-mod-manager
gamescope
# deadlock-mod-manager
inputs.nik-pkgs.packages.x86_64-linux.grimoire
# gamescope
android-studio
blender
qbittorrent
mpv
krita
# (tetrio-desktop.override { withTetrioPlus = true; })
# 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
'';
})
# 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;
};
};
+38 -3
View File
@@ -13,7 +13,11 @@
modules.nix
];
nixos =
{ pkgs, config, ... }:
{
pkgs,
config,
...
}:
{
boot.loader.grub.enable = true;
boot.loader.grub.device = "nodev";
@@ -43,6 +47,15 @@
hardware.graphics = {
enable = true;
extraPackages = with pkgs; [
libva-minimal
vulkan-loader
];
};
environment.sessionVariables = {
LIBVA_DRIVER_NAME = "nvidia";
NVD_BACKEND = "direct";
};
services.xserver.videoDrivers = [ "nvidia" ];
@@ -62,7 +75,6 @@
services.gnome.gnome-keyring.enable = true;
hardware.nvidia = {
# Modesetting is required.
modesetting.enable = true;
@@ -70,7 +82,7 @@
# Enable this if you have graphical corruption issues or application crashes after waking
# up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
# of just the bare essentials.
powerManagement.enable = true;
powerManagement.enable = false;
# Fine-grained power management. Turns off GPU when not in use.
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
@@ -92,7 +104,30 @@
# Optionally, you may need to select the appropriate driver version for your specific GPU.
package = config.boot.kernelPackages.nvidiaPackages.stable;
};
swapDevices = [
{
device = "/swapfile";
size = 8192;
}
];
boot.binfmt.emulatedSystems = [
"aarch64-linux"
];
services.scx = {
enable = true;
package = pkgs.scx.rustscheds;
};
systemd.services.scx.environment = {
SCX_SCHEDULER_OVERRIDE = "scx_lavd";
SCX_FLAGS_OVERRIDE = "--performance --no-core-compaction";
};
systemd.oomd = {
enable = true;
enableUserSlices = true;
enableRootSlice = true;
enableSystemSlice = true;
};
};
};
}
@@ -21,6 +21,7 @@
modules.stylix
modules.quickshell
modules.lavd
modules.omp
# modules.podman
# modules.openvivo
];
+3 -3
View File
@@ -171,12 +171,12 @@
# "mem_sleep_default=deep"
# "i915.fastboot=1"
# "i915.modeset=1"
# "ahci.mobile_lpm_policy=1"
"ahci.mobile_lpm_policy=1"
# "intel_idle.max_cstate=10"
"processor.max_cstate=10"
"pci=noaer"
# "quiet"
# "splash"
"quiet"
"splash"
# "idle=halt"
];
boot.binfmt.emulatedSystems = [
+8 -8
View File
@@ -3,8 +3,7 @@
modules,
__findFile,
...
}:
{
}: {
den.aspects.doloro-shared = {
includes = [
modules.nixvim
@@ -14,9 +13,11 @@
modules.hyfetch
modules.ssh
];
homeManager =
{ pkgs, lib, ... }:
{
homeManager = {
pkgs,
lib,
...
}: {
home = {
username = "doloro";
homeDirectory = "/home/doloro";
@@ -24,13 +25,12 @@
wl-clipboard
# home-manager
btop
pavucontrol
];
};
programs.home-manager.enable = true;
};
nixos =
{ lib, ... }:
{
nixos = {lib, ...}: {
};
};
}
+34
View File
@@ -0,0 +1,34 @@
{
den,
modules,
__findFile,
...
}: {
den.aspects.doloro-wsl = {
includes = [
<den/primary-user>
den.aspects.doloro-shared
modules.fish
modules.tmux
modules.nix
modules.omp
modules.hyfetch
modules.git
];
nixos = {
config,
pkgs,
...
}: {
users.users.doloro = {
isNormalUser = true;
shell = pkgs.fish;
uid = 1000;
# hashedPasswordFile = config.sops.secrets."doloro-hashed_password".path;
};
};
homeManager = {...}: {
};
};
}
+22
View File
@@ -0,0 +1,22 @@
{
den,
modules,
...
}: {
flake-file.inputs = {
};
den.aspects.wsl = {
includes = [
modules.wsl
modules.tmux
modules.nix
modules.omp
modules.hyfetch
modules.git
];
nixos = {lib, ...}: {
wsl.enable = true;
wsl.defaultUser = "doloro";
};
};
}
+45 -1
View File
@@ -11,11 +11,28 @@
# <modules/services/traefik>
<modules/services/caddy>
<modules/services/home-assistant>
<modules/services/docker-registry>
<modules/services/ddns>
<modules/services/rtmp-to-whip>
];
nixos = {
nixos =
{ pkgs, ... }:
{
networking.hostName = "nixos-001-rp5";
fileSystems = {
"/" = {
device = "/dev/disk/by-uuid/44444444-4444-4444-8888-888888888888";
fsType = "ext4";
options = [ "noatime" ];
};
"/boot/firmware" = {
device = "/dev/disk/by-uuid/2175-794E";
fsType = "vfat";
options = [ "noatime" ];
};
};
networking.firewall = {
enable = true;
allowedTCPPorts = [
@@ -26,11 +43,38 @@
allowedUDPPortRanges = [ ];
};
system.activationScripts.docker-config-fix = ''
if [ -d /root/.docker/config.json ]; then
rm -rf /root/.docker/config.json
echo '{}' > /root/.docker/config.json
fi
'';
virtualisation.docker.enable = true;
virtualisation.docker.package = pkgs.docker;
virtualisation.docker.autoPrune = {
enable = true;
dates = "weekly";
flags = [
"--all"
"--volumes"
];
};
virtualisation.oci-containers.backend = "docker";
services.openssh.enable = true;
nixpkgs.hostPlatform = "aarch64-linux";
nix.gc = {
automatic = true;
};
};
homeManager =
{ pkgs, ... }:
{
home.packages = [
pkgs.btop
];
};
};
}
+17 -3
View File
@@ -3,8 +3,7 @@
__findFile,
lib,
...
}:
{
}: {
# Homes
den.homes.x86_64-linux.doloro-desktop = {
aspect = "doloro-desktop";
@@ -14,6 +13,9 @@
den.homes.aarch64-linux.doloro-laptop = {
userName = "doloro";
};
den.homes.aarch64-linux.doloro-wsl = {
userName = "doloro";
};
# Machines
den.hosts.x86_64-linux.desktop = {
users.doloro = {
@@ -28,6 +30,19 @@
home-manager.enable = true;
};
};
den.hosts.aarch64-linux.wsl = {
users.doloro = {
aspect = "doloro-wsl";
home-manager.enable = true;
};
};
den.hosts.x86_64-linux.doloro-bootable = {
users.doloro = {
aspect = "doloro-bootable";
homeManager.enable = true;
};
};
den.schema.user.classes = lib.mkDefault ["homeManager"];
@@ -36,5 +51,4 @@
type = lib.types.attrs;
description = "Home Manager configurations for users.";
};
}
+84 -2
View File
@@ -11,9 +11,91 @@
};
};
homeManager =
{ pkgs, ... }:
{ pkgs, config, ... }:
{
home.packages = [ pkgs.opencode ];
home.packages = [
pkgs.claude-code
];
sops = {
secrets.scug-io-ai-key = {
# sopsFile = ./secrets.yaml;
# Decrypted file path (available at runtime, not eval time)
path = config.home.homeDirectory + "/.secrets/scug_io_api_key";
sopsFile = ../secrets/content/secrets.yaml;
};
};
programs.fish = {
shellInit = ''
if test -f "$HOME/.secrets/scug_io_api_key"
set -x SCUG_IO_API_KEY (cat "$HOME/.secrets/scug_io_api_key")
end
'';
};
programs.opencode = {
enable = true;
extraPackages = with pkgs; [
rust-analyzer
typescript-language-server
];
context = ''
Instructions:
- Do NOT preemptively load all references - use lazy loading based on actual need
- When loaded, treat content as mandatory instructions that override defaults
- Follow references recursively when needed
- NO EMOJIS
'';
settings = {
"lsp" = true;
plugin = [
"@tarquinen/opencode-dcp@latest"
"@xberg-io/opencode-xberg"
"@xberg-io/opencode-crawlberg"
"@xberg-io/opencode-html-to-markdown"
"@xberg-io/opencode-liter-llm"
"@xberg-io/opencode-tree-sitter-language-pack"
];
provider.litellm = {
npm = "@ai-sdk/openai-compatible";
name = "LiteLLM (scuggo)";
options = {
baseURL = "https://9f5db439.fwds.scug.io/v1";
apiKey = "{env:SCUG_IO_API_KEY}";
};
models = {
"openai/Qwen3.6-35B-A3B" = {
id = "Qwen3.6-35B-A3B";
name = "Qwen3.6-35B-A3B";
family = "Qwen";
limit = {
context = 262144;
input = 262144;
output = 16384;
};
cost = {
input = 0.00002;
output = 0.00006;
};
provider = {
api = "openai";
};
modalities = {
input = [ "text" ];
output = [ "text" ];
};
status = "active";
reasoning = true;
temperature = false;
tool_call = true;
attachment = false;
experimental = false;
};
};
};
};
};
};
};
}
+17
View File
@@ -0,0 +1,17 @@
{
modules,
den,
inputs,
...
}:
{
flake-file.inputs = {
omp-nix.url = "git+https://git.molez.org/mandlm/omp-nix?ref=main";
};
modules.omp = {
homeManager = {
imports = [ inputs.omp-nix.homeManagerModules.omp ];
oh-my-pi.enable = true;
};
};
}
+10
View File
@@ -0,0 +1,10 @@
{ den, modules, ... }:
{
modules.pi-coding = {
homeManager = {
programs.pi-coding-agent = {
enable = true;
};
};
};
}
+1
View File
@@ -7,6 +7,7 @@
settings = {
global = {
font = "Noto Nerd Font 8";
monitor = "DP-2";
};
};
};
+17 -5
View File
@@ -1,5 +1,12 @@
{ modules, ... }:
{
modules,
inputs,
...
}:
{
flake-file.inputs = {
direnv-instant.url = "github:Mic92/direnv-instant";
};
modules.fish = {
nixos = {
programs.fish.enable = true;
@@ -8,7 +15,10 @@
{ pkgs, ... }:
{
home.shell.enableFishIntegration = true;
home.packages = [ pkgs.nix-output-monitor ];
home.packages = [
pkgs.nix-output-monitor
# pkgs.devenv
];
programs = {
fish = {
enable = true;
@@ -18,9 +28,11 @@
set -g theme_display_user yes
set -g fish_color_autosuggestion 6F6578
alias nik 'nix'
if not set -q TMUX
set -gx COLORTERM truecolor
end
'';
# alias nos 'sudo echo; sudo nixos-rebuild switch --flake .#${aspect-name} --log-format internal-json -v &| nom --json'
# alias hms 'home-manager switch --flake .#${aspect-name} --log-format internal-json -v &| nom --json'
plugins = [
{
name = "bobthefish";
@@ -42,7 +54,7 @@
};
direnv = {
enable = true;
nix-direnv.enable = true;
enableFishIntegration = true;
};
};
};
+36
View File
@@ -0,0 +1,36 @@
{ modules, inputs, ... }:
{
flake-file.inputs = {
nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=latest";
};
modules.flatpaks = {
nixos = {
imports = [
inputs.nix-flatpak.nixosModules.nix-flatpak
];
services.flatpak = {
enable = true;
};
};
homeManager = {
imports = [
inputs.nix-flatpak.homeManagerModules.nix-flatpak
];
services.flatpak = {
enable = true;
packages = [
{
flatpakref = "https://dl.flathub.org/repo/appstream/org.vinegarhq.Sober.flatpakref";
sha256 = "15ak2i5nk64wbmswqml2cqfgidczawqybmc7pmw94yp8wcd4yv6i";
}
];
};
services.flatpak.remotes = [
{
name = "flathub-beta";
location = "https://flathub.org/beta-repo/flathub-beta.flatpakrepo";
}
];
};
};
}
+40
View File
@@ -0,0 +1,40 @@
{ modules, ... }:
{
modules.gamemode = {
homeManager =
{ home, ... }:
{
};
nixos =
{ nixos, ... }:
{
programs.gamemode = {
enable = true;
enableRenice = true;
settings = {
general = {
renice = 10;
ioprio = 0;
inhibit_screensaver = 1;
disable_splitlock = 1;
};
cpu = {
park_cores = "no";
pin_cores = "yes";
};
gpu = {
apply_gpu_optimisations = "accept-responsibility";
gpu_device = 1;
nv_powermizer_mode = 1;
nv_perf_level = -1;
};
script = {
gamestart = "nvidia-smi --power-limit=175";
gamestop = "nvidia-smi --power-limit=125";
};
};
};
};
};
}
+18 -11
View File
@@ -4,6 +4,18 @@
nixos =
{ pkgs, ... }:
{
programs.gamescope = {
enable = true;
package = (
pkgs.gamescope.overrideAttrs {
enableWsi = true;
# Fixes some games being blurry under wayland backend
NIX_CFLAGS_COMPILE = [ "-fno-fast-math" ];
}
);
# Breaks steam launching gamescope
# capSysNice = true;
};
programs.steam = {
enable = true;
remotePlay.openFirewall = true;
@@ -11,14 +23,14 @@
localNetworkGameTransfers.openFirewall = true;
# Ensure gamescope is inside the steam "fhs"
package = pkgs.steam.override {
extraLibraries = pkgs: [ pkgs.xorg.libxcb ];
extraLibraries = pkgs: [ pkgs.libxcb ];
extraPkgs =
pkgs: with pkgs; [
attr
xorg.libXcursor
xorg.libXi
xorg.libXinerama
xorg.libXScrnSaver
libxcursor
libxi
libxinerama
libxscrnsaver
libpng
libpulseaudio
libvorbis
@@ -26,13 +38,8 @@
libkrb5
keyutils
mangohud
gamemode
# gamemode
lsof
(gamescope.overrideAttrs {
enableWsi = true;
# Fixes some games being blurry under wayland backend
NIX_CFLAGS_COMPILE = [ "-fno-fast-math" ];
})
];
};
};
+32 -3
View File
@@ -16,10 +16,39 @@
modules.helium = settings: {
homeManager =
{ pkgs, ... }:
let
heliumPkg = inputs.heliumFlake.packages.${pkgs.stdenv.hostPlatform.system}.helium;
# The upstream `helium` launcher is a plain Nix wrapper that ignores any
# *-flags.conf file (that convention is Arch-specific, not NixOS). So to
# actually pass command-line flags we re-wrap the launcher here.
#
# Flag names verified against this Helium build's binary strings.
# - AcceleratedVideoDecodeLinuxGL / ...ZeroCopyGL: the VA-API GL decode
# path (renamed from the old Vaapi* names, which are no-ops here).
# - VaapiOnNvidiaGPUs: required. Chromium disables VA-API on NVIDIA by
# default and hard-skips the nvidia-drm device ("Should skip nVidia
# device named: nvidia-drm" in the logs); this re-enables it, routing
# decode to NVDEC through the nvidia-vaapi-driver bridge.
# - VaapiIgnoreDriverChecks: bypass the driver allowlist.
# HEVC decode itself needs no runtime flag in this build (enable_platform_hevc
# is compiled in and on by default). Wayland-only: the NVIDIA VA-API path
# is broken under X11. Upstream considers nvidia-vaapi-driver unsupported,
# so confirm via chrome://media-internals (decoder should read VaapiVideoDecoder).
helium = pkgs.symlinkJoin {
name = "helium-wrapped";
paths = [ heliumPkg ];
nativeBuildInputs = [ pkgs.makeWrapper ];
postBuild = ''
wrapProgram $out/bin/helium \
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ pkgs.vulkan-loader ]}" \
--add-flags "--enable-features=AcceleratedVideoDecodeLinuxGL,AcceleratedVideoDecodeLinuxZeroCopyGL,VaapiOnNvidiaGPUs,VaapiIgnoreDriverChecks" \
--add-flags "--ignore-gpu-blocklist" \
--add-flags "--disable-gpu-sandbox"
'';
};
in
{
home.packages = [
inputs.heliumFlake.packages.${pkgs.stdenv.hostPlatform.system}.helium
];
home.packages = [ helium ];
nixpkgs.config.allowUnfree = true;
# Gives me widevine support. yay
xdg.configFile."net.imput.helium/WidevineCdm/latest-component-updated-widevine-cdm" = {
+27 -6
View File
@@ -7,7 +7,11 @@
modules.dunst
];
homeManager =
{ pkgs, home, ... }:
{
pkgs,
home,
...
}:
{
home.packages = [
pkgs.hyprcursor
@@ -24,6 +28,22 @@
package = pkgs.rose-pine-hyprcursor;
hyprcursor.enable = true;
};
services.hyprpaper = {
enable = true;
settings = {
splash = true;
wallpaper = [
{
monitor = "HDMI-A-1";
path = "/home/doloro/Wallpaper.jpg";
}
{
monitor = "DP-2";
path = "/home/doloro/Wallpaper.jpg";
}
];
};
};
wayland.windowManager.hyprland.settings = {
env = [
"XCURSOR_THEME,BreezeX-RosePine-Linux"
@@ -62,7 +82,7 @@
};
};
cursor = {
no_hardware_cursors = true;
no_hardware_cursors = false;
};
animations = {
enabled = true;
@@ -95,7 +115,7 @@
];
};
dwindle = {
pseudotile = true;
# pseudotile = true;
preserve_split = true;
};
# master = {
@@ -105,7 +125,7 @@
force_default_wallpaper = -1;
disable_hyprland_logo = false;
enable_anr_dialog = false;
vfr = true;
# vfr = true;
};
"$mainMod" = "SUPER";
bind = [
@@ -136,8 +156,8 @@
"$mainMod, M, exec, uwsm stop"
"$mainMod, Q, exec, kitty"
"$mainMod, V, togglefloating,"
"$mainMod, P, pseudo, # dwindle"
"$mainMod, J, togglesplit, # dwindle"
# "$mainMod, P, pseudo, # dwindle"
# "$mainMod, J, togglesplit, # dwindle"
"$mainMod, left, movefocus, l"
"$mainMod, right, movefocus, r"
"$mainMod, up, movefocus, u"
@@ -180,6 +200,7 @@
"match:class .*, suppress_event maximize"
"match:class ^(gamescope)$, workspace 5"
"match:class ^(gamescope)$, immediate true"
"match:class ^(gamescope)$, confine_pointer true"
"match:class ^(steam)$, workspace 6 silent"
"match:class ^(vesktop)$, workspace 8 silent"
"match:class ^(org.telegram.desktop)$, workspace 8 silent"
+5 -8
View File
@@ -3,15 +3,12 @@
inputs,
lib,
...
}:
{
}: {
flake-file.inputs = {
hyprland.url = "github:hyprwm/Hyprland";
};
modules.hyprland = {
nixos =
{ pkgs, ... }:
{
nixos = {pkgs, ...}: {
imports = [inputs.hyprland.nixosModules.default];
environment.systemPackages = with pkgs; [
wayfreeze
@@ -46,15 +43,15 @@
# package32 = pkgs-unstable.pkgsi686Linux.mesa;
};
};
homeManager =
{ pkgs, ... }:
{
homeManager = {pkgs, ...}: {
gtk = {
enable = true;
};
# backupFileExtension = "backupHM";
wayland.windowManager.hyprland = {
enable = true;
systemd.variables = ["--all"];
configType = "hyprlang";
};
};
};
+20
View File
@@ -0,0 +1,20 @@
{
den,
modules,
inputs,
...
}:
{
flake-file.inputs = {
hytale-launcher.url = "github:JPyke3/hytale-launcher-nix";
};
modules.hytale-launcher = {
homeManager =
{ pkgs, ... }:
{
home.packages = [
inputs.hytale-launcher.packages.${pkgs.system}.default
];
};
};
}
+5 -1
View File
@@ -1,5 +1,8 @@
{ den, modules, ... }:
{
den,
modules,
...
}: {
modules.kitty = {
homeManager = {
programs.kitty = {
@@ -12,6 +15,7 @@
sync_to_monitor = "yes";
background_opacity = 0.6;
cursor_trail = 1;
auto_reload_config = -1;
};
};
};
+3 -3
View File
@@ -3,11 +3,10 @@
modules,
inputs,
...
}:
{
}: {
flake-file.inputs = {
nik-pkgs = {
url = "git+https://git.scug.io/nikkuss/pkgs.git";
url = "git+https://git.scug.io/nikkuss/pkgs.git?ref=main";
inputs.nixpkgs.follows = "nixpkgs";
};
};
@@ -15,5 +14,6 @@
nixos = {
nixpkgs.overlays = [inputs.nik-pkgs.overlays.default];
};
# debug = inputs.nik-pkgs;
};
}
+21 -21
View File
@@ -24,19 +24,19 @@
systemd
# My own additions
xorg.libXcomposite
xorg.libXtst
xorg.libXrandr
xorg.libXext
xorg.libX11
xorg.libXfixes
libxcomposite
libxtst
libxrandr
libxext
libx11
libxfixes
libGL
libva
pipewire
xorg.libxcb
xorg.libXdamage
xorg.libxshmfence
xorg.libXxf86vm
libxcb
libxdamage
libxshmfence
libxxf86vm
libelf
# Required
@@ -56,13 +56,13 @@
# glibc_multi.bin # Seems to cause issue in ARM
# # Without these it silently fails
xorg.libXinerama
xorg.libXcursor
xorg.libXrender
xorg.libXScrnSaver
xorg.libXi
xorg.libSM
xorg.libICE
libxinerama
libxcursor
libxrender
libxscrnsaver
libxi
libsm
libice
gnome2.GConf
nspr
nss
@@ -88,13 +88,13 @@
# other issue: (Unity:377230): GLib-GIO-CRITICAL **: 21:09:04.706: g_dbus_proxy_call_sync_internal: assertion 'G_IS_DBUS_PROXY (proxy)' failed
# Verified games requirements
xorg.libXt
xorg.libXmu
libxt
libxmu
libogg
libvorbis
SDL
SDL2_image
glew110
glew_1_10
libidn
tbb
@@ -123,7 +123,7 @@
libgcrypt
libvpx
librsvg
xorg.libXft
libxft
libvdpau
# ...
# Some more libraries that I needed to run programs
+8 -6
View File
@@ -1,12 +1,12 @@
{ ... }:
{
{...}: {
flake-file.inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
};
modules.nix = {
nixos =
{ ... }:
{
nixos = {...}: {
nixpkgs.config.allowUnfree = true;
nix.settings = {
substituters = [
extra-substituters = [
"https://hyprland.cachix.org"
"https://nix-community.cachix.org"
"https://cache.nixos.org/"
@@ -14,6 +14,7 @@
"https://cache.nixos-cuda.org"
"https://niri.cachix.org"
"https://attic.xuyh0120.win/lantian"
"https://nixos-raspberrypi.cachix.org"
];
trusted-public-keys = [
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
@@ -22,6 +23,7 @@
"cache.nixos-cuda.org:74DUi4Ye579gUqzH4ziL9IyiJBlDpMRn9MBN8oNan9M="
"niri.cachix.org-1:Wv0OmO7PsuocRKzfDoJ3mulSl7Z6oezYhGhR+3W2964="
"lantian:EeAUQ+W+6r7EtwnmYjeVwx5kOGEBpjlBfPlzGlTNvHc="
"nixos-raspberrypi.cachix.org-1:4iMO9LXa8BqhU+Rpg6LQKiGa2lsNh/j2oiYLNOQ5sPI="
];
experimental-features = [
"flakes"
+239 -24
View File
@@ -10,7 +10,7 @@
flake-file.inputs = {
nixvim = {
url = "github:nix-community/nixvim";
# inputs.nixpkgs.follows = "nixpkgs";
inputs.nixpkgs.follows = "nixpkgs";
};
};
modules = {
@@ -21,6 +21,18 @@
};
homeManager =
{ pkgs, ... }:
let
tiny-code-action = pkgs.vimUtils.buildVimPlugin {
name = "tiny-code-action.nvim";
src = pkgs.fetchFromGitHub {
owner = "rachartier";
repo = "tiny-code-action.nvim";
rev = "0d040ed81f7953118b81cd12681fcdfcac069803";
hash = "sha256-UF9zeO5Uujdt2MEwy2d2Lhk6JRnEN4vrEvYslv0/zaA";
};
nvimSkipModules = [ "tiny-code-action.previewers.snacks" ];
};
in
{
imports = [
inputs.nixvim.homeModules.nixvim
@@ -32,17 +44,24 @@
config = {
allowUnfree = true;
};
# source = inputs.nixpkgs;
};
colorschemes.gruvbox-material.enable = true;
# colorschemes.melange = {
# enable = true;
# autoLoad = false;
# };
extraPackages = with pkgs; [
# formatters
nixfmt
nixfmt-rs
rustfmt
# misc
ripgrep
# misc
nixd
tree-sitter
rust-analyzer
rustc
cargo
];
performance.byteCompileLua = {
enable = true;
@@ -52,10 +71,15 @@
configs = true;
};
plugins = {
luasnip.enable = true;
cmp_luasnip.enable = true;
fidget.enable = true;
mini-comment.enable = true;
# cord.enable = true;
todo-comments.enable = true;
lsp-status.enable = true;
transparent.enable = true;
which-key.enable = true;
snacks.enable = true;
conform-nvim = {
enable = true;
settings = {
@@ -86,12 +110,12 @@
lsp = {
enable = true;
servers = {
qmlls = {
enable = true;
config = {
cmd = "-E";
};
};
# qmlls = {
# enable = true;
# config = {
# cmd = "-E";
# };
# };
rust_analyzer = {
enable = true;
installCargo = false;
@@ -99,14 +123,26 @@
};
nixd = {
enable = true;
settings = {
nixd = {
nixpkgs.expr = "import (builtins.getFlake \"${toString /home/doloro/dotfiles}\").inputs.nixpkgs { }";
options = {
nixos.expr = "(builtins.getFlake \"${toString /home/doloro/dotfiles}\").nixosConfigurations.desktop.options";
home_manager.expr = "(builtins.getFlake \"${toString /home/doloro/dotfiles}\").homeConfigurations.doloro-desktop.options";
};
};
};
};
astro = {
enable = true;
enable = false;
};
ts_ls = {
enable = true;
};
cssls.enable = true;
cssls = {
enable = true;
package = pkgs.vscode-langservers-extracted;
};
svelte.enable = true;
};
};
@@ -138,7 +174,7 @@
"fileformat"
"filetype"
];
lualine_y = [ "lsp_status" ];
lualine_y = [ "progress" ];
lualine_z = [ "location" ];
};
inactive_sections = {
@@ -153,7 +189,10 @@
};
web-devicons.enable = true;
vim-dadbod-completion.enable = true;
telescope.enable = true;
telescope = {
enable = true;
extensions.file-browser.enable = true;
};
lazygit.enable = true;
mini-indentscope = {
enable = true;
@@ -171,29 +210,82 @@
};
};
};
trouble.enable = true;
lsp-lines.enable = true;
trouble = {
enable = true;
settings = {
auto_close = true;
use_diagnostic_signs = true;
};
};
cmp = {
enable = true;
autoEnableSources = true;
settings = {
cmdline = {
":" = {
mapping.__raw = "cmp.mapping.preset.cmdline()";
sources = [
{ name = "nvim_lsp"; }
{ name = "path"; }
{ name = "cmdline"; }
];
};
"/" = {
mapping.__raw = "cmp.mapping.preset.cmdline()";
sources = [
{ name = "buffer"; }
];
};
};
settings = {
snippet.expand.__raw = "function(args) require('luasnip').lsp_expand(args.body) end";
sources = [
{
name = "nvim_lsp";
priority = 100;
}
{
name = "nvim_lsp_signature_help";
priority = 90;
}
{
name = "luasnip";
priority = 75;
}
{
name = "buffer";
priority = 50;
}
{
name = "path";
priority = 40;
}
];
mapping = {
"<C-Space>" = "cmp.mapping.complete()";
"<C-d>" = "cmp.mapping.scroll_docs(-4)";
"<C-e>" = "cmp.mapping.close()";
"<C-f>" = "cmp.mapping.scroll_docs(4)";
"<CR>" = "cmp.mapping.confirm({ select = true })";
"<S-Tab>" = "cmp.mapping(cmp.mapping.select_prev_item(), {'i', 's'})";
"<Tab>" = "cmp.mapping(cmp.mapping.select_next_item(), {'i', 's'})";
"<S-Tab>" =
"cmp.mapping(function(fallback) if cmp.visible() then cmp.select_prev_item() elseif require('luasnip').jumpable(-1) then require('luasnip').jump(-1) else fallback() end end, {'i', 's'})";
"<Tab>" =
"cmp.mapping(function(fallback) if cmp.visible() then cmp.select_next_item() elseif require('luasnip').expand_or_jumpable() then require('luasnip').expand_or_jump() else fallback() end end, {'i', 's'})";
};
window = {
completion = {
border = "rounded";
winhighlight = "Normal:Pmenu,FloatBorder:Pmenu,CursorLine:PmenuSel,Search:None";
};
documentation = {
border = "rounded";
winhighlight = "Normal:Pmenu,FloatBorder:Pmenu";
};
};
};
};
lspkind.enable = true;
tiny-inline-diagnostic.enable = true;
# tiny-code-action.enable = true;
# persisted.enable = true;
auto-session = {
enable = false;
@@ -208,6 +300,9 @@
enable = true;
grammarPackages = with pkgs.vimPlugins.nvim-treesitter.builtGrammars; [
bash
css
html
javascript
json
lua
make
@@ -216,6 +311,8 @@
nix
regex
toml
tsx
typescript
vim
vimdoc
xml
@@ -224,15 +321,13 @@
];
settings = {
highlight.enable = true;
indent.enable = false;
};
};
};
extraPlugins = with pkgs; [
# vimPlugins.mini-completion
vimPlugins.mini-comment
vimPlugins.melange-nvim
vimPlugins.telescope-file-browser-nvim
vimPlugins.lsp-progress-nvim
vimPlugins.cmp-nvim-lsp-signature-help
tiny-code-action
];
opts = {
number = true;
@@ -240,10 +335,25 @@
tabstop = 2;
shiftwidth = 2;
termguicolors = true;
completeopt = "menu,menuone,noselect";
};
globals = {
mapleader = " ";
};
extraConfigLua = ''
-- tree-sitter-nix uses (#is-not? local) which the new nvim-treesitter main branch no longer registers
vim.treesitter.query.add_predicate("is-not?", function() return true end, { force = true })
require('tiny-code-action').setup({
backend = 'vim',
picker = 'snacks',
resolve_timeout = 100,
notify = {
enabled = true,
on_empty = true,
},
})
'';
keymaps = [
{
action = "<cmd>Telescope persisted<cr>";
@@ -292,6 +402,111 @@
key = "<leader>fd";
options = {
silent = true;
desc = "Toggle diagnostics (Trouble)";
};
}
{
action = "<cmd>lua require('tiny-code-action').code_action()<cr>";
key = "<leader>ca";
mode = [
"n"
"x"
];
options = {
silent = true;
};
}
# LSP
{
action = "<cmd>lua vim.lsp.buf.definition()<cr>";
key = "gd";
options = {
silent = true;
desc = "Go to definition";
};
}
{
action = "<cmd>lua vim.lsp.buf.declaration()<cr>";
key = "gD";
options = {
silent = true;
desc = "Go to declaration";
};
}
{
action = "<cmd>lua vim.lsp.buf.implementation()<cr>";
key = "gi";
options = {
silent = true;
desc = "Go to implementation";
};
}
{
action = "<cmd>lua vim.lsp.buf.type_definition()<cr>";
key = "<leader>D";
options = {
silent = true;
desc = "Go to type definition";
};
}
{
action = "<cmd>Telescope lsp_references<cr>";
key = "gr";
options = {
silent = true;
desc = "LSP references";
};
}
{
action = "<cmd>lua vim.lsp.buf.hover()<cr>";
key = "K";
options = {
silent = true;
desc = "Hover docs";
};
}
{
action = "<cmd>lua vim.lsp.buf.signature_help()<cr>";
key = "<C-k>";
mode = [
"n"
"i"
];
options = {
silent = true;
desc = "Signature help";
};
}
{
action = "<cmd>lua vim.lsp.buf.rename()<cr>";
key = "<leader>rn";
options = {
silent = true;
desc = "Rename symbol";
};
}
{
action = "<cmd>lua vim.diagnostic.goto_prev()<cr>";
key = "[d";
options = {
silent = true;
desc = "Previous diagnostic";
};
}
{
action = "<cmd>lua vim.diagnostic.goto_next()<cr>";
key = "]d";
options = {
silent = true;
desc = "Next diagnostic";
};
}
{
action = "<cmd>lua vim.diagnostic.open_float()<cr>";
key = "<leader>e";
options = {
silent = true;
desc = "Show diagnostic float";
};
}
];
+26 -7
View File
@@ -1,4 +1,8 @@
{ den, modules, ... }:
{
den,
modules,
...
}:
{
modules.obs = settings: {
homeManager =
@@ -12,14 +16,29 @@
programs = {
obs-studio = {
enable = true;
package = (
pkgs.obs-studio.override {
cudaSupport = true;
}
);
# package = (
# (pkgs.obs-studio.overrideAttrs (old: {
# version = "32.2.0-beta2-unstable";
# src = pkgs.fetchFromGitHub {
# owner = "obsproject";
# repo = "obs-studio";
# rev = "27ac23ef750aafb2bb7ddd499ede5755a5a3087f";
# hash = "sha256-3wPHNgYzR+ZIbCYMh5ocyK/nsQxy24Wfa03kheYOU88=";
# fetchSubmodules = true;
# };
# cmakeFlags = (old.cmakeFlags or []) ++ [
# "-DOBS_VERSION_OVERRIDE=32.2.0-beta2"
# ];
# })).override
# {
# cudaSupport = true;
# }
# );
package = pkgs.obs-studio.override { cudaSupport = true; };
plugins = with pkgs.obs-studio-plugins; [
obs-pipewire-audio-capture
obs-vkcapture
obs-gstreamer
];
};
};
@@ -63,7 +82,7 @@
lib.mergeAttrsList [ audio-set ];
wayland.windowManager.hyprland.settings = {
exec-once = [ "${config.programs.obs-studio.finalPackage}/bin/obs --startreplaybuffer" ];
# exec-once = ["${config.programs.obs-studio.finalPackage}/bin/obs --startreplaybuffer"];
};
};
};
+1 -1
View File
@@ -18,7 +18,7 @@
# Most energy efficent scheduler setup..
systemd.services.scx.environment = {
SCX_SCHEDULER_OVERRIDE = "scx_lavd";
SCX_FLAGS_OVERRIDE = "--powersave --cpu-pref-order=0-4,5-11";
SCX_FLAGS_OVERRIDE = "--powersave --no-core-compaction";
};
};
};
@@ -1 +1 @@
/run/user/1000/quickshell/vfs/6e389f6b800776b0595d9d90e42ebd04/.qmlls.ini
/run/user/1000/quickshell/vfs/ca6d8e2cdd46bffdf799708f31d409fa/.qmlls.ini
+20 -4
View File
@@ -22,15 +22,31 @@ Rectangle {
id: content
height: 20
anchors.centerIn: parent
spacing: 4
Rectangle {
implicitWidth: 24
implicitHeight: 20
color: "transparent"
Text {
id: speaker
text: root.defaultSpeaker.audio.muted ? "muted" : "unmuted"
anchors.centerIn: parent
text: root.defaultSpeaker.audio.muted ? "󰖁" : "󰕾"
font.family: "CaskaydiaCove NF"
font.pixelSize: 20
color: Colors.textPrimary
}
}
Rectangle {
implicitWidth: 24
implicitHeight: 20
color: "transparent"
radius: 3
Text {
id: mic
text: root.defaultMic.audio.muted ? "muted" : "unmuted"
anchors.centerIn: parent
text: root.defaultMic.audio.muted ? "" : ""
font.family: "CaskaydiaCove NFM"
font.pixelSize: 30
color: Colors.textPrimary
}
}
}
}
+8 -13
View File
@@ -7,33 +7,28 @@
}:
{
flake-file.inputs = {
raspberry-pi-nix.url = "github:nix-community/raspberry-pi-nix";
raspberry-pi-nix.url = "github:cmyk/raspberry-pi-nix";
nixos-raspberrypi.url = "github:nvmd/nixos-raspberrypi/main";
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
};
modules.raspberry-pi = {
provides = {
"5" = {
nixos =
{ pkgs, ... }:
let
rpi-pi = inputs.raspberry-pi-nix;
in
{
imports = [
rpi-pi.nixosModules.raspberry-pi
rpi-pi.nixosModules.sd-image
inputs.nixos-hardware.nixosModules.raspberry-pi-5
];
boot.kernelPackages = pkgs.linuxPackages;
boot.kernel.sysctl."vm.mmap_rnd_bits" = pkgs.lib.mkForce 16;
environment.systemPackages = with pkgs; [
libraspberrypi
];
sdImage.compressImage = false;
raspberry-pi-nix.board = "bcm2712"; # Rpi 5 - 64bit
# We need to rebuild kernel for 6.12
# raspberry-pi-nix.kernel-version = "v6_12_17";
raspberry-pi-nix.uboot.enable = false;
hardware.enableRedistributableFirmware = true;
boot.supportedFilesystems.zfs = false;
};
};
};
+18 -17
View File
@@ -3,10 +3,10 @@ root-hashed_password: ENC[AES256_GCM,data:vzVtz1Ht4XD+omdKjU/Zvoaftq8jKE4kxOjAGZ
wakatime-scug-io-api-key: ENC[AES256_GCM,data:XQUccNW4210U8ZpHSGVcsdbAirzyTvmcy4y6emk7n4N6MO/W,iv:9/f9ceLshA7l8hJB+IDIPvEwYwSkFlPOLmpvtYXLTpU=,tag:x7hESZCouzYVNef2C+iCSA==,type:str]
meow: ENC[AES256_GCM,data:JVzenw==,iv:oCOo9//r5s2K4pSeH5UNEj0LL+9h2yq0G0DPOfwjmyQ=,tag:0gu9FNOrjQ8fpB+B+RbGSg==,type:str]
meoww: ENC[AES256_GCM,data:WPeszDfMWxY=,iv:JJMOror5wj7cTNKfrUj2LDXlO3WCKzb7jk4AeZ0oD+Q=,tag:qs3oyM7K1FGy5cXvS6OHpQ==,type:str]
scug-io-ai-key: ENC[AES256_GCM,data:15YxkgOe2+Kia9z52bYbmrc8SQzpjrZKmQ==,iv:+iMkNsqGVC32THO0nvDBrRby+mKj09DvWEQJn+K6at8=,tag:mI7EvyasCKHhNc55UScCXA==,type:str]
sops:
age:
- recipient: age1ykcy2r4kk729e7adqxu8s24ujc60z5eux7ma0ca4ruzydwgm5p6qmdp838
enc: |
- enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBiZC9ZVlY2T0tXdy90b2hV
dDUxUjNyMjllQStaa0tKRy9YVkNIdFJyWTI4CitYNnhxN3JHQ3lsWXp2Tmgwek9n
@@ -14,8 +14,8 @@ sops:
MkVQY3h2OGhGaGNnYkVJUU1kK3F3VWMKs9B74KovGxx8KL5q/lGA/imVRM/i3mo/
a6Rbxufscp3WWGMbo70w8tWuRsAnIpUGh3EvWCekZ9nOzeMiVA8I2Q==
-----END AGE ENCRYPTED FILE-----
- recipient: age1e6vws55p0g23qzthm4qa93hpt6lqmck6670gkygph0sc0j7my4uq5wqjfh
enc: |
recipient: age1ykcy2r4kk729e7adqxu8s24ujc60z5eux7ma0ca4ruzydwgm5p6qmdp838
- enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0dXJzYndvSC92aElvTVpz
SUtTOWFzcUJxOHVrTk5scm5tcGkzRmEvK1hVClNVbmp3ZjBRTW5ZNXVNNGh3dSti
@@ -23,8 +23,8 @@ sops:
Tk5Zd0h3OHRpQzZjazJKUStPUVdERzQKGnoKYKq7pPJUrcAWJ4/tm8mSxuthjssz
7IsjH4t6VCyug2c7XnLJpcE64yPD+GrXHYixP0r2qj80WMjpv7N7qA==
-----END AGE ENCRYPTED FILE-----
- recipient: age1x3lahhkefkap67cdmdjcqaxan9hp62er78akr79v9m73nvgugpeqk0y32a
enc: |
recipient: age1e6vws55p0g23qzthm4qa93hpt6lqmck6670gkygph0sc0j7my4uq5wqjfh
- enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBLbGQ3MkVCUldqa3dYRTg0
NjVoUDdIc0RvSU02R0o0ZVk4KzVQMkZmeXpjClJaUUU3WTJVQmJkRzV4UTc3bXFI
@@ -32,8 +32,8 @@ sops:
QzhtM3V3VGFzdk9UenV6akxGNDh5d3cKdIKNPvM0GRJamiS4AXRNU+TbuZUnM6K7
FtC1dmHlyU/tXlFHv6TNlMZQtDgIVnE72Jvk48maq3oKiJAXWk11fg==
-----END AGE ENCRYPTED FILE-----
- recipient: age1exzngtk4d9vcsmcq6ap5xx3ca9qacqjkrv86ymged7msx9z6vfyqsf5sjq
enc: |
recipient: age1x3lahhkefkap67cdmdjcqaxan9hp62er78akr79v9m73nvgugpeqk0y32a
- enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBoOHlRcnRwWUYwUGRSVW9s
cmdDZjN1RGFRVWtlODBudGpaemd3UDBZcnhRCksyWlk3VW91a3pnOGNQQVppM09z
@@ -41,8 +41,8 @@ sops:
bWFTMlhCL2IrZjlEOUFydmE4cHBzSmMKhIk8TZtRsIFKzopZCyp27SWYeHmf6jKn
VoIXQ6/VRRQjCYBsseZE5N+ycnr4ZC/RpXJ577G4TfGMCcixX67AfA==
-----END AGE ENCRYPTED FILE-----
- recipient: age1fw4xnh2q52juce94ffn54js708cr6umfwpv0mykuddkea7kr4f0q7a9h05
enc: |
recipient: age1exzngtk4d9vcsmcq6ap5xx3ca9qacqjkrv86ymged7msx9z6vfyqsf5sjq
- enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBuTG9LKzVvUjZEZ1lkMVJN
eldHSkRXQ241bnZmbHBmSXFNMU1seGcyaVNRCjNPaS9ITEJtdGRwOENDRytEMFk1
@@ -50,8 +50,8 @@ sops:
WTR2RU9GUVdsZHdleW1Gd2lyRENzSm8KznMUQ6Ah8O03AzZcCXgUIjjrV1cdkAnq
Pbr2BwdLzJvlF5lzmymIZEt35euv/HzhJGWDLWGpYJmYj/N8qZgBuA==
-----END AGE ENCRYPTED FILE-----
- recipient: age1pa8cecxaw4y4zea6zjnt0k0mz38g4qunmp6trwy5fvdvw88ttcgsv2dgrv
enc: |
recipient: age1fw4xnh2q52juce94ffn54js708cr6umfwpv0mykuddkea7kr4f0q7a9h05
- enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxSDNMRlNaMXB2ZXBPTlNu
eG5BWE5xRTNnVUFtN2psUFVHejZVbFVCQTBFCkRXQitoL0VJaXZmMlI3Q0JHVWk1
@@ -59,8 +59,8 @@ sops:
Q0x4bDFBTzV2L0E3UXQxMUdubVJZRTgKcPQZ9zHQAFwP/Odnh5INleUsHSN06U+x
X98535uapyJR/Wswxj6ukdciMOou8cLfOInLwJgWOf6mZklEhecVXA==
-----END AGE ENCRYPTED FILE-----
- recipient: age1kc0xu0ue2nrrr7w4gam7wlzackv8jv243rxwwndgxjqklgtnp5csdtpgzp
enc: |
recipient: age1pa8cecxaw4y4zea6zjnt0k0mz38g4qunmp6trwy5fvdvw88ttcgsv2dgrv
- enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTaE1mUUlyVUxKQmhPMnlT
eS81cE5TeE1WWFVIRkdWT3c0ckhNMnFYZGxrCnp4My9nK20zcGVxUFZ0cnVVTDBS
@@ -68,7 +68,8 @@ sops:
bzJvaUg2VkFrazBoWmlIY2hKeUdhTjQKbgW+ysm3TWBKfVoKAeqvaPio29SyzjJP
61QsSqCuJyEwSPpOzeWa5NChcCjitOUG1jEMsSHlpIslKA1P7g/P9g==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2026-02-14T00:08:39Z"
mac: ENC[AES256_GCM,data:lp9ZeDxt5gkOkDmYk+F0VQrVhkR0tQiQlYXbygoA8Dcq+gV0IIKKLwRqr5CVfgfRlo3239IwmKLsGaS6zYC1xX4toZ8oqw3Ic2UvP2CiWt6M7HTrlL+3Y2+PKOUvGl7RAqQxQAw7QaoxB4esqdIiWnMDueVHk5BTKrkay+afhno=,iv:NAMaZ9SMBAtROTBSQtU0RJDB60MAuE82AFoPtDqVHVM=,tag:RGBUTQC1pM+LcBweSJbc6w==,type:str]
recipient: age1kc0xu0ue2nrrr7w4gam7wlzackv8jv243rxwwndgxjqklgtnp5csdtpgzp
lastmodified: "2026-07-17T08:50:10Z"
mac: ENC[AES256_GCM,data:WQJ8Ez/0iaRSvziyanxNUmrahir/Ocu+Dysh+qtj3FFhLMhLtPZqoX92L6Eia5pbfXOZcYZUN7uUMmSBn22JCiYUtgoeVjXV8el6GVfi1LHCGKfL25ohsjsTczJXV/+tBlVrrB3MGls9AjFqDV9QnoS/3X/a1MIRGKS3GY+OMAg=,iv:Id9I6BlrzfLpMcy1EmdVGgr9jYSf9JCsOrSiIglRTNc=,tag:gXkaSz5Z8K38Cde6gy3Zvg==,type:str]
unencrypted_suffix: _unencrypted
version: 3.11.0
version: 3.13.2
+2 -1
View File
@@ -15,7 +15,8 @@
inputs.sops-nix.homeManagerModules.sops
];
sops = {
age.keyFile = "/home/doloro/.config/sops/age/key.txt"; # must have no password!
age.keyFile = "/home/doloro/.config/sops/age/keys.txt"; # must have no password!
# I HATE YOU
defaultSopsFile = ./content/secrets.yaml;
};
};
+5 -5
View File
@@ -3,17 +3,17 @@
__findFile,
modules,
...
}:
{
}: {
# Basic caddy
modules.services.provides.caddy = {
nixos =
{ config, ... }:
{
nixos = {config, ...}: {
services.caddy = {
enable = true;
email = "doloroo@proton.me";
enableReload = true;
globalConfig = ''
acme_ca https://acme-v02.api.letsencrypt.org/directory
'';
};
};
};
+16 -8
View File
@@ -3,13 +3,14 @@
__findFile,
modules,
...
}:
{
}: {
# Basic traefik
modules.services.provides.ddns = {
nixos =
{ config, pkgs, ... }:
let
nixos = {
config,
pkgs,
...
}: let
ddnsImg = pkgs.dockerTools.pullImage {
imageName = "qmcgaw/ddns-updater";
imageDigest = "sha256:ee16ab4f6203bf9e5b0925d38a0b4ebf2d9f23771f933cfb2f5a2dbd5f9a2f88";
@@ -18,8 +19,7 @@
sha256 = "sha256-dMCHkvoFaORmGwbIM9io4Vc9fq+wBks25k2dmnW7naI=";
arch = "arm64";
};
in
{
in {
virtualisation.oci-containers.containers = {
ddns = {
image = "qmcgaw/ddns-updater";
@@ -28,10 +28,18 @@
"/data/ddns:/updater/data"
"/etc/localtime:/etc/localtime:ro"
];
# ports = [ "0.0.0.0:8123:8123" ];
ports = ["0.0.0.0:8125:8000"];
# networks = [ "meow" ];
};
};
services.caddy = pkgs.lib.mkIf config.services.caddy.enable {
virtualHosts."ddns.h.doloro.co.uk".extraConfig = ''
reverse_proxy :8125
basic_auth {
doloro $2a$14$FH.UkwC0PUsQ7IEV9XLAf.6/11KLsugCbrX/o6dPTx7NBlJWv3aiO
}
'';
};
};
};
}
+49
View File
@@ -0,0 +1,49 @@
{
den,
__findFile,
modules,
...
}: {
# Basic traefik
modules.services.provides.docker-registry = {
nixos = {
config,
pkgs,
...
}: let
registryImg = pkgs.dockerTools.pullImage {
imageName = "registry";
imageDigest = "sha256:85347ed2ecde64161c7a4788a4d7d3dcc9d6f86f7be95834022e3c6a423a945a";
finalImageName = "registry";
finalImageTag = "3";
sha256 = "sha256-rLG0q/MVVz52veqZuZs5W0Qke6FugXkx7fMe3QnE3gU";
arch = "arm64";
};
in {
virtualisation.oci-containers.containers = {
docker-registry = {
image = "registry";
imageFile = registryImg;
volumes = [
"/data/dockerRegistry:/var/lib/registry"
"/run/dbus:/run/dbus:ro"
"/etc/localtime:/etc/localtime:ro"
];
ports = ["0.0.0.0:5000:5000"];
# networks = [ "meow" ];
};
};
networking.firewall = {
allowedTCPPorts = [
5000
];
allowedUDPPortRanges = [];
};
services.caddy = pkgs.lib.mkIf config.services.caddy.enable {
virtualHosts."https://reg.h.doloro.co.uk".extraConfig = ''
reverse_proxy :5000
'';
};
};
};
}
+105
View File
@@ -0,0 +1,105 @@
{
den,
__findFile,
modules,
...
}:
{
modules.services.provides.rtmp-to-whip = {
nixos =
{
config,
pkgs,
...
}:
{
systemd.services.init-rtmp-to-whip-network = {
description = "Create rtmp-to-whip docker network";
after = [
"docker.service"
"docker.socket"
];
requires = [
"docker.service"
"docker.socket"
];
before = [
"docker-rtmp-to-whip.service"
"docker-rtmp-to-whip-frontend.service"
];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
};
script = ''
${pkgs.docker}/bin/docker network inspect rtmp-to-whip >/dev/null 2>&1 || \
${pkgs.docker}/bin/docker network create rtmp-to-whip
'';
};
virtualisation.oci-containers.containers = {
rtmp-to-whip = {
image = "reg.h.doloro.co.uk/doloro/rtmp-to-whip:latest-aarch64";
ports = [
"0.0.0.0:1935:1935"
"0.0.0.0:6969:6969/udp"
"127.0.0.1:3001:3000"
];
environment = {
PUBLIC_DOMAIN = "stream.h.doloro.co.uk";
RTC_PORT = "6969";
SIGNUP_CODE = "mreowmreow-pawsatyou";
RUST_LOG = "info,warn";
};
volumes = [
"/data/rtmp-to-whip/db:/db"
];
extraOptions = [ "--network=rtmp-to-whip" ];
};
rtmp-to-whip-frontend = {
image = "reg.h.doloro.co.uk/doloro/rtmp-to-whip-frontend:latest-aarch64";
ports = [
"127.0.0.1:3002:3000"
];
environment = {
VITE_API_URL = "https://stream.h.doloro.co.uk/api";
};
extraOptions = [ "--network=rtmp-to-whip" ];
};
rtmp-to-whip-watchtower = {
image = "ghcr.io/nicholas-fedor/watchtower:latest";
volumes = [
"/var/run/docker.sock:/var/run/docker.sock"
];
environment = {
WATCHTOWER_CLEANUP = "true";
WATCHTOWER_POLL_INTERVAL = "300";
};
cmd = [
"rtmp-to-whip"
"rtmp-to-whip-frontend"
];
};
};
networking.firewall = {
allowedTCPPorts = [ 1935 ];
allowedUDPPorts = [ 6969 ];
};
services.caddy = pkgs.lib.mkIf config.services.caddy.enable {
virtualHosts."stream.h.doloro.co.uk".extraConfig = ''
handle /api* {
reverse_proxy :3001
}
handle {
reverse_proxy :3002
}
'';
};
};
};
}
+3 -3
View File
@@ -8,10 +8,10 @@
ssh = {
enable = true;
enableDefaultConfig = false;
matchBlocks = {
settings = {
"*" = {
addKeysToAgent = "yes";
identityFile = [
AddKeysToAgent = "yes";
IdentityFile = [
"~/.ssh/id_ed25519"
"~/.ssh/id_gitea_scug"
];
+4 -9
View File
@@ -3,8 +3,7 @@
modules,
inputs,
...
}:
{
}: {
flake-file.inputs = {
stylix = {
url = "github:nix-community/stylix";
@@ -12,11 +11,9 @@
};
};
modules.stylix = {
homeManager =
{ pkgs, ... }:
{
homeManager = {pkgs, ...}: {
imports = [inputs.stylix.homeModules.stylix];
gtk.gtk4.theme = null;
# gtk.gtk4.theme = null;
stylix = {
enable = true;
autoEnable = false;
@@ -32,9 +29,7 @@
base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-hard.yaml";
};
};
nixos =
{ pkgs, ... }:
{
nixos = {pkgs, ...}: {
imports = [inputs.stylix.nixosModules.stylix];
stylix.enable = false;
stylix.autoEnable = false;
+9 -3
View File
@@ -2,7 +2,11 @@
{
modules.tmux = {
homeManager =
{ home, pkgs, ... }:
{
home,
pkgs,
...
}:
{
programs.tmux = {
enable = true;
@@ -11,10 +15,12 @@
minimal-tmux-status
];
extraConfig = ''
set-option -g default-terminal "xterm-256color"
set -a terminal-features "xterm-256color:RGB"
set-option -g default-terminal "tmux-256color"
set -as terminal-features ",xterm-256color:RGB"
set -g status-bg black
set -g status-fg white
set -g mouse on
set -g extended-keys on
'';
};
};
+1 -1
View File
@@ -8,7 +8,7 @@
enable = true;
settings = {
default_session = {
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --sessions ${config.services.xserver.displayManager.sessionData.desktops}/share/xsessions:${config.services.xserver.displayManager.sessionData.desktops}/share/wayland-sessions --remember --remember-user-session --greeting 'meow meow meow' --time";
command = "${pkgs.tuigreet}/bin/tuigreet --sessions ${config.services.displayManager.sessionData.desktops}/share/xsessions:${config.services.displayManager.sessionData.desktops}/share/wayland-sessions --remember --remember-user-session --greeting 'meow meow meow' --time";
user = "greeter";
};
};
+11
View File
@@ -0,0 +1,11 @@
{modules, ...}: {
modules.unity = {
homeManager = {pkgs, ...}: {
home.packages = [pkgs.unityhub pkgs.alcom pkgs.unityhub.fhsEnv];
home.file."unityExec" = {
source = "${pkgs.unityhub}/bin/unityhub";
recursive = true;
};
};
};
}
+1
View File
@@ -7,6 +7,7 @@
users.users.${user.userName} = {
extraGroups = [
"wheel"
"libvirtd"
"networkmanager"
];
};
+15
View File
@@ -0,0 +1,15 @@
{
modules,
den,
inputs,
...
}: {
flake-file.inputs = {
nixos-wsl.url = "github:nix-community/NixOS-WSL";
};
modules.wsl = {
nixos = {
imports = [inputs.nixos-wsl.nixosModules.default];
};
};
}
Generated
+589 -281
View File
File diff suppressed because it is too large Load Diff
+11 -5
View File
@@ -4,11 +4,12 @@
inputs = {
den.url = "github:vic/den?ref=8101ec865c0bf4027d40b9fd8951e3e435a86d64";
direnv-instant.url = "github:Mic92/direnv-instant";
disko.url = "github:nix-community/disko";
flake-file.url = "github:vic/flake-file";
flake-parts = {
url = "github:hercules-ci/flake-parts";
inputs.nixpkgs-lib.follows = "nixpkgs-lib";
inputs.nixpkgs-lib.follows = "nixpkgs";
};
font-patcher.url = "github:Doloro1978/nix-nerd-fonts-patcher";
heliumFlake = {
@@ -20,9 +21,10 @@
inputs.nixpkgs.follows = "nixpkgs";
};
hyprland.url = "github:hyprwm/Hyprland";
hytale-launcher.url = "github:JPyke3/hytale-launcher-nix";
import-tree.url = "github:vic/import-tree";
nik-pkgs = {
url = "git+https://git.scug.io/nikkuss/pkgs.git";
url = "git+https://git.scug.io/nikkuss/pkgs.git?ref=main";
inputs.nixpkgs.follows = "nixpkgs";
};
niri-flake = {
@@ -30,13 +32,17 @@
inputs.nixpkgs.follows = "nixpkgs";
};
nix-cachyos-kernel.url = "github:xddxdd/nix-cachyos-kernel/release";
nixpkgs.url = "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz";
nixpkgs-lib.follows = "nixpkgs";
nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=latest";
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
nixos-raspberrypi.url = "github:nvmd/nixos-raspberrypi/main";
nixos-wsl.url = "github:nix-community/NixOS-WSL";
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
nixvim = {
url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs";
};
raspberry-pi-nix.url = "github:nix-community/raspberry-pi-nix";
omp-nix.url = "git+https://git.molez.org/mandlm/omp-nix?ref=main";
raspberry-pi-nix.url = "github:cmyk/raspberry-pi-nix";
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";