This commit is contained in:
2026-03-27 23:01:48 +02:00
parent 5d33a277b3
commit fc729c8aae
3 changed files with 222 additions and 167 deletions

View File

@@ -1,155 +1,168 @@
{ inputs, config, pkgs, lib, ... }: {
inputs,
config,
pkgs,
lib,
...
}:
{ {
fonts.packages = with pkgs; [ fonts.packages = with pkgs; [
noto-fonts noto-fonts
noto-fonts-cjk-sans noto-fonts-cjk-sans
noto-fonts-emoji noto-fonts-emoji
monaspace monaspace
geist-font geist-font
# nerdfonts # nerdfonts
nerd-fonts.geist-mono nerd-fonts.geist-mono
nerd-fonts.monaspace nerd-fonts.monaspace
nerd-fonts.symbols-only nerd-fonts.symbols-only
minecraftia minecraftia
]; ];
programs.seahorse.enable = true; programs.seahorse.enable = true;
environment.sessionVariables.LD_LIBRARY_PATH = "${pkgs.gcc15}/lib"; environment.sessionVariables.LD_LIBRARY_PATH = "${pkgs.gcc15}/lib";
security.polkit = { security.polkit = {
enable = true; enable = true;
}; };
security.soteria.enable = true; security.soteria.enable = true;
# surely they should add programs.discord!! # surely they should add programs.discord!!
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
(discord.override { mosh
withEquicord = true; (discord.override {
}) withEquicord = true;
})
# hyprland stuff # hyprland stuff
inputs.hyprlock.packages.${pkgs.stdenv.hostPlatform.system}.hyprlock inputs.hyprlock.packages.${pkgs.stdenv.hostPlatform.system}.hyprlock
inputs.hyprsysteminfo.packages.${pkgs.stdenv.hostPlatform.system}.hyprsysteminfo inputs.hyprsysteminfo.packages.${pkgs.stdenv.hostPlatform.system}.hyprsysteminfo
# roblox # roblox
inputs.tuxstrap.packages.${pkgs.stdenv.hostPlatform.system}.default inputs.tuxstrap.packages.${pkgs.stdenv.hostPlatform.system}.default
# minecraft # minecraft
qemu qemu
(writeShellScriptBin "qemu-system-x86_64-uefi" '' (writeShellScriptBin "qemu-system-x86_64-uefi" ''
qemu-system-x86_64 \ qemu-system-x86_64 \
-bios ${OVMF.fd}/FV/OVMF.fd \ -bios ${OVMF.fd}/FV/OVMF.fd \
"$@" "$@"
'') '')
(writeShellScriptBin "regretevator" ''xdg-open roblox://placeId=4972273297'') (writeShellScriptBin "regretevator" "xdg-open roblox://placeId=4972273297")
(writeShellScriptBin "kaijuparadise" ''xdg-open roblox://placeId=6456351776'') (writeShellScriptBin "kaijuparadise" "xdg-open roblox://placeId=6456351776")
(writeShellScriptBin "sewh" ''xdg-open roblox://placeId=16991287194'') (writeShellScriptBin "sewh" "xdg-open roblox://placeId=16991287194")
(writeShellScriptBin "fix-gtk" ''${inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland}/bin/hyprctl dispatch exec "${pkgs.xdg-desktop-portal-gtk}/libexec/xdg-desktop-portal-gtk -r"'') (writeShellScriptBin "fix-gtk" ''${
(callPackage ./apps/wl-shimeji.nix {}) inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland
(writeShellScriptBin "stop-shimejis" ''${inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland}/bin/hyprctl dispatch exec "shimejictl stop"'') }/bin/hyprctl dispatch exec "${pkgs.xdg-desktop-portal-gtk}/libexec/xdg-desktop-portal-gtk -r"'')
# (writeShellScriptBin "partynoob" ''shimejictl summon PartyNoob'') (callPackage ./apps/wl-shimeji.nix { })
# inputs.quickshell.packages.${pkgs.stdenv.hostPlatform.system}.default (writeShellScriptBin "stop-shimejis" ''${
kdePackages.qtdeclarative inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland
catppuccin-gtk }/bin/hyprctl dispatch exec "shimejictl stop"'')
catppuccin # (writeShellScriptBin "partynoob" ''shimejictl summon PartyNoob'')
catppuccin-qt5ct # inputs.quickshell.packages.${pkgs.stdenv.hostPlatform.system}.default
catppuccin-catwalk kdePackages.qtdeclarative
catppuccin-whiskers catppuccin-gtk
mission-center catppuccin
# nvtopPackages.full catppuccin-qt5ct
libxkbcommon catppuccin-catwalk
ffmpeg-full catppuccin-whiskers
gnupg mission-center
code-cursor # nvtopPackages.full
nix-direnv libxkbcommon
htop ffmpeg-full
nixpkgs-fmt gnupg
nixd code-cursor
catppuccin-cursors.mochaBlue nix-direnv
unzip htop
libwebp nixpkgs-fmt
ifuse nixd
w3m catppuccin-cursors.mochaBlue
imagemagick unzip
alacritty libwebp
libimobiledevice ifuse
direnv w3m
nautilus imagemagick
kdePackages.dolphin alacritty
kdePackages.kservice libimobiledevice
qpwgraph direnv
wget nautilus
git kdePackages.dolphin
fastfetch kdePackages.kservice
vscode qpwgraph
nodejs wget
bun git
yarn fastfetch
(python3.withPackages (subpkgs: with subpkgs; [ vscode
requests nodejs
pypresence bun
pygobject3 yarn
])) (python3.withPackages (
# wrangler subpkgs: with subpkgs; [
fontforge requests
xclip pypresence
gamescope pygobject3
yt-dlp ]
fontforge-gtk ))
deno # wrangler
wofi fontforge
waybar xclip
hyprpaper gamescope
dunst yt-dlp
swww fontforge-gtk
swappy deno
slurp wofi
grim waybar
wayland-utils hyprpaper
wl-clipboard dunst
github-cli swww
cliphist swappy
pywal slurp
pavucontrol grim
wlogout wayland-utils
libnotify wl-clipboard
killall github-cli
networkmanagerapplet cliphist
blueman pywal
arrpc pavucontrol
playerctl wlogout
mangohud libnotify
jq killall
github-cli networkmanagerapplet
file blueman
nwg-look arrpc
# rhythmbox playerctl
hyprpolkitagent mangohud
jq
github-cli
file
nwg-look
# rhythmbox
hyprpolkitagent
# important # important
glib glib
openssl openssl
nss nss
glibc # C LIBRARY DO NOT REMOVE VERY IMPORTANT glibc # C LIBRARY DO NOT REMOVE VERY IMPORTANT
gobject-introspection gobject-introspection
gimp3 gimp3
mpv mpv
nixfmt-rfc-style nixfmt-rfc-style
protonvpn-cli protonvpn-cli
protonvpn-gui protonvpn-gui
(writeShellScriptBin "protonvpn" ''${pkgs.protonvpn-cli}/bin/protonvpn-cli "$@"'') (writeShellScriptBin "protonvpn" ''${pkgs.protonvpn-cli}/bin/protonvpn-cli "$@"'')
kdePackages.kdialog kdePackages.kdialog
(writeShellScriptBin "roblox-studio-patcher" ''${pkgs.bun}/bin/bun run /home/ocbwoy3/config/scripts/bin/patchInternalRobloxStudio.ts'') (writeShellScriptBin "roblox-studio-patcher" "${pkgs.bun}/bin/bun run /home/ocbwoy3/config/scripts/bin/patchInternalRobloxStudio.ts")
# firefox-devedition # firefox-devedition
]; ];
} }

View File

@@ -5,6 +5,48 @@
... ...
}: }:
let
mkUserService = pkgs.writeShellScriptBin "mk-user-service" ''
set -euo pipefail
if [ "$#" -lt 2 ]; then
echo "Usage: mk-user-service <name> <exec command...>" >&2
exit 1
fi
name="$1"
shift
unitDir="''${XDG_CONFIG_HOME:-$HOME/.config}/systemd/user"
unitFile="$unitDir/$name.service"
mkdir -p "$unitDir"
if [ -e "$unitFile" ]; then
echo "Refusing to overwrite existing unit: $unitFile" >&2
exit 2
fi
cat > "$unitFile" <<EOF
[Unit]
Description=$name
[Service]
Type=simple
ExecStart=$*
Restart=on-failure
RestartSec=2
[Install]
WantedBy=default.target
EOF
echo "Created $unitFile"
echo "Next steps:"
echo " systemctl --user daemon-reload"
echo " systemctl --user enable --now $name.service"
'';
in
{ {
imports = [ imports = [
./modules/atproto-pds.nix ./modules/atproto-pds.nix
@@ -23,27 +65,6 @@
services.vscode-server.enable = true; services.vscode-server.enable = true;
systemd.services.ocbwoy3-start-pm2 = {
enable = true;
description = "Start PM2";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
Type = "forking";
User = "ocbwoy3";
LimitNOFILE = "infinity";
LimitNPROC = "infinity";
LimitCORE = "infinity";
Environment = "PM2_HOME=/home/ocbwoy3/.pm2";
PIDFile = "/home/ocbwoy3/.pm2/pm2.pid";
Restart = "on-failure";
ExecStart = "${pkgs.pm2}/bin/pm2 resurrect";
ExecReload = "${pkgs.pm2}/bin/pm2 reload all";
ExecStop = "${pkgs.pm2}/bin/pm2 kill";
};
};
services.openssh.settings = lib.mkDefault { services.openssh.settings = lib.mkDefault {
PubkeyAuthentication = "yes"; PubkeyAuthentication = "yes";
TrustedUserCAKeys = "/etc/ssh/ca.pub"; TrustedUserCAKeys = "/etc/ssh/ca.pub";
@@ -56,9 +77,11 @@
}; };
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
mosh
fastfetch fastfetch
hyfetch hyfetch
pm2 bash
jdk
steam-run steam-run
opencode opencode
bun bun
@@ -81,6 +104,25 @@
shell = pkgs.zsh; shell = pkgs.zsh;
}; };
users.users.kris = {
initialPassword = "thisisapassword42069!";
isNormalUser = true;
extraGroups = [
"wheel"
"networkmanager"
"docker"
];
shell = pkgs.zsh;
packages = [
pkgs.mrpack-install
mkUserService
];
};
system.activationScripts.enableKrisLinger.text = ''
${pkgs.systemd}/bin/loginctl enable-linger kris || true
'';
nixpkgs.overlays = [ nixpkgs.overlays = [
(final: prev: { (final: prev: {
nixos-rebuild = prev.writeShellScriptBin "nixos-rebuild" '' nixos-rebuild = prev.writeShellScriptBin "nixos-rebuild" ''

View File

@@ -9,10 +9,10 @@
services.vaultwarden = { services.vaultwarden = {
enable = true; enable = true;
dbBackend = "sqlite"; dbBackend = "sqlite";
environmentFile = "/private/vaultwarden/vaultwarden.env"; environmentFile = "/var/lib/vaultwarden/vaultwarden.env";
config = { config = {
# Keep data alongside the secret env file so we can back it up together. # Keep data alongside the secret env file so we can back it up together.
DATA_FOLDER = "/private/vaultwarden/data"; DATA_FOLDER = "/var/lib/vaultwarden/data";
PUSH_RELAY_URI = "https://api.bitwarden.eu"; PUSH_RELAY_URI = "https://api.bitwarden.eu";
PUSH_IDENTITY_URI = "https://identity.bitwarden.eu"; PUSH_IDENTITY_URI = "https://identity.bitwarden.eu";
DOMAIN = "https://vault.ocbwoy3.dev"; DOMAIN = "https://vault.ocbwoy3.dev";
@@ -25,15 +25,15 @@
}; };
}; };
# Allow vaultwarden to write under /private/vaultwarden and ensure the directories exist. # Allow vaultwarden to write under /var/lib/vaultwarden and ensure the directories exist.
systemd.services.vaultwarden.serviceConfig = { systemd.services.vaultwarden.serviceConfig = {
ReadWritePaths = [ "/private/vaultwarden" ]; ReadWritePaths = [ "/var/lib/vaultwarden" ];
}; };
# Create parent/data directories with proper ownership before startup. # Create parent/data directories with proper ownership before startup.
systemd.tmpfiles.rules = [ systemd.tmpfiles.rules = [
"d /private/vaultwarden 0750 vaultwarden vaultwarden -" "d /var/lib/vaultwarden 0750 vaultwarden vaultwarden -"
"d /private/vaultwarden/data 0750 vaultwarden vaultwarden -" "d /var/lib/vaultwarden/data 0750 vaultwarden vaultwarden -"
]; ];
# cloudflared!! # cloudflared!!