Compare commits

..

No commits in common. "45448d1099bf1bcd4dc1f471068a290a31bd465a" and "eed28e3219ecd0c6bedf0566cecde565691b60f8" have entirely different histories.

60 changed files with 646 additions and 824 deletions

1
.envrc
View file

@ -1,2 +1 @@
# shellcheck disable=SC2148
use flake

1
.known_hosts Normal file
View file

@ -0,0 +1 @@
etna ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEnkKSd4IV+PM88WKHHfEhSTlknHT0FVXzA0JUcCzOp+

View file

@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
imports = [
./common.nix
@ -11,7 +10,7 @@
(ffmpeg-full.override {withUnfree = true;})
fastfetch
lazygit
nixd
nil
];
hm.programs.keychain = {

View file

@ -10,20 +10,15 @@
vencord,
hydro,
...
}:
let
}: let
username = "leo";
stateVersion = "24.11";
rootPassword = _utils.setupSingleSecret config "rootPassword" {};
secrets = _utils.setupSharedSecrets config {
secrets = [
"userPassword"
"tailscaleKey"
];
secrets = ["userPassword" "tailscaleKey"];
};
in
{
in {
imports = [
agenix.nixosModules.default
home-manager.nixosModules.home-manager
@ -45,10 +40,7 @@ in
boot = {
kernelPackages = lib.mkDefault pkgs.linuxPackages; # use lts
kernelParams = [
"quiet"
"loglevel=3"
];
kernelParams = ["quiet" "loglevel=3"];
# faster tcp !!!
kernel.sysctl = {
@ -91,10 +83,7 @@ in
networking = {
useNetworkd = lib.mkDefault true;
nameservers = [
"1.1.1.1"
"1.0.0.1"
];
nameservers = ["1.1.1.1" "1.0.0.1"];
};
nix = {
@ -121,14 +110,8 @@ in
settings = {
auto-optimise-store = true;
experimental-features = [
"nix-command"
"flakes"
];
trusted-users = [
"root"
"@wheel"
];
experimental-features = ["nix-command" "flakes"];
trusted-users = ["root" "@wheel"];
connect-timeout = 5; # fail fast if substituters are not available
builders-use-substitutes = true;
log-lines = 25;
@ -189,10 +172,7 @@ in
tailscale = {
enable = true;
useRoutingFeatures = "both";
extraUpFlags = [
"--ssh"
"--stateful-filtering"
];
extraUpFlags = ["--ssh" "--stateful-filtering"];
authKeyFile = secrets.get "tailscaleKey";
};
};
@ -217,14 +197,7 @@ in
"${username}" = {
isNormalUser = true;
shell = pkgs.fish;
extraGroups = [
"networkmanager"
"wheel"
"video"
"libvirtd"
"input"
"docker"
];
extraGroups = ["networkmanager" "wheel" "video" "libvirtd" "input" "docker"];
hashedPasswordFile = secrets.get "userPassword";
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIN+7+KfdOrhcnHayxvOENUeMx8rE4XEIV/AxMHiaNUP8"

View file

@ -5,8 +5,7 @@
catppuccin,
lanzaboote,
...
}:
{
}: {
imports = [
catppuccin.nixosModules.catppuccin
lanzaboote.nixosModules.lanzaboote

View file

@ -3,8 +3,7 @@
pkgs,
config,
...
}:
{
}: {
imports = [./desktop.nix];
boot.initrd.kernelModules = ["xe"];

View file

@ -2,13 +2,11 @@
config,
_utils,
...
}:
let
}: let
secrets = _utils.setupSharedSecrets config {
secrets = ["vmAuthToken"];
};
in
{
in {
imports = [
./common.nix
secrets.generate
@ -61,9 +59,7 @@ in
scrape_configs = [
{
job_name = "node";
static_configs = [
{ targets = [ "localhost:${builtins.toString config.services.prometheus.exporters.node.port}" ]; }
];
static_configs = [{targets = ["localhost:${builtins.toString config.services.prometheus.exporters.node.port}"];}];
relabel_configs = [
{
target_label = "instance";

View file

@ -22,8 +22,7 @@
pipewire,
udev,
xrandr,
}:
let
}: let
inherit (jetbrains) idea-ultimate;
in
symlinkJoin {
@ -33,8 +32,7 @@ symlinkJoin {
nativeBuildInputs = [makeWrapper];
postBuild =
let
postBuild = let
runtimeLibs = [
stdenv.cc.cc.lib
## native versions
@ -65,8 +63,7 @@ symlinkJoin {
xrandr # needed for LWJGL [2.9.2, 3) https://github.com/LWJGL/lwjgl/issues/128
esbuild
];
in
''
in ''
wrapProgram $out/bin/idea-ultimate \
--set LD_LIBRARY_PATH ${lib.makeLibraryPath runtimeLibs} \
--prefix PATH : ${lib.makeBinPath runtimePrograms}

View file

@ -5,7 +5,9 @@ inputs: final: prev: {
version = "${old.version}+git.${inputs.vencord.shortRev}";
src = inputs.vencord;
env = old.env // {
env =
old.env
// {
VENCORD_REMOTE = "Vendicated/Vencord";
VENCORD_HASH = src.shortRev;
};

42
flake.lock generated
View file

@ -253,6 +253,26 @@
"type": "github"
}
},
"nixinate": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1708891350,
"narHash": "sha256-VOQrKK7Df/IVuNki+NshVuGkTa/Tw0GigPjWcZff6kk=",
"owner": "matthewcroughan",
"repo": "nixinate",
"rev": "452f33c60df5b72ad0858f5f2cf224bdf1f17746",
"type": "github"
},
"original": {
"owner": "matthewcroughan",
"repo": "nixinate",
"type": "github"
}
},
"nixos-wsl": {
"inputs": {
"flake-compat": [],
@ -305,10 +325,10 @@
"home-manager": "home-manager",
"lanzaboote": "lanzaboote",
"mystia": "mystia",
"nixinate": "nixinate",
"nixos-wsl": "nixos-wsl",
"nixpkgs": "nixpkgs",
"systems": "systems_2",
"treefmt-nix": "treefmt-nix",
"ukubot-rs": "ukubot-rs",
"vencord": "vencord",
"vscode-extensions": "vscode-extensions"
@ -365,26 +385,6 @@
"type": "github"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1735135567,
"narHash": "sha256-8T3K5amndEavxnludPyfj3Z1IkcFdRpR23q+T0BVeZE=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "9e09d30a644c57257715902efbb3adc56c79cf28",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"ukubot-rs": {
"inputs": {
"flake-parts": [

View file

@ -1,34 +1,31 @@
{
description = "example flake idk";
outputs =
{
agenix,
outputs = {
self,
flake-parts,
treefmt-nix,
nixinate,
agenix,
...
} @ inputs:
flake-parts.lib.mkFlake {inherit inputs;} {
systems = [
"x86_64-linux"
"aarch64-linux"
];
systems = ["x86_64-linux" "aarch64-linux"];
imports = [
treefmt-nix.flakeModule
./systems
];
perSystem =
{
perSystem = {
pkgs,
system,
self',
...
}:
{
devShells.default = pkgs.mkShellNoCC {
packages = with pkgs; [
}: {
apps = (nixinate.nixinate.${system} self).nixinate;
devShells.default = with pkgs;
mkShellNoCC {
packages = [
agenix.packages.${system}.default
just
self'.formatter
@ -36,24 +33,7 @@
];
};
treefmt = {
projectRootFile = "flake.nix";
settings.excludes = [
".envrc"
".gitignore"
"*.age"
"flake.lock"
"justfile"
"LICENSE"
];
programs = {
nixfmt.enable = true;
prettier.enable = true;
stylua.enable = true;
};
};
formatter = pkgs.alejandra;
};
};
@ -114,6 +94,11 @@
inputs.flake-compat.follows = "";
};
nixinate = {
url = "github:matthewcroughan/nixinate";
inputs.nixpkgs.follows = "nixpkgs";
};
nixos-wsl = {
url = "github:nix-community/NixOS-WSL";
inputs.nixpkgs.follows = "nixpkgs";
@ -124,11 +109,6 @@
# nix's most elaborate, overcomplicated joke
systems.url = "github:nix-systems/default";
treefmt-nix = {
url = "github:numtide/treefmt-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
vscode-extensions = {
url = "github:nix-community/nix-vscode-extensions";
inputs.nixpkgs.follows = "nixpkgs";

View file

@ -1,51 +1,30 @@
{ lib, ... }:
{
setupSecrets =
_config:
{
{lib, ...}: {
setupSecrets = _config: {
secrets,
extra ? {},
}:
let
}: let
inherit (_config.networking) hostName;
in
{
generate = {
age.secrets = lib.genAttrs secrets (name: extra // { file = ../secrets/${hostName}/${name}.age; });
};
in {
generate = {age.secrets = lib.genAttrs secrets (name: extra // {file = ../secrets/${hostName}/${name}.age;});};
get = name: _config.age.secrets.${name}.path;
};
setupSingleSecret =
_config: name: extra:
let
setupSingleSecret = _config: name: extra: let
inherit (_config.networking) hostName;
in
{
generate = {
age.secrets.${name} = extra // {
file = ../secrets/${hostName}/${name}.age;
};
};
in {
generate = {age.secrets.${name} = extra // {file = ../secrets/${hostName}/${name}.age;};};
inherit (_config.age.secrets.${name}) path;
};
setupSharedSecrets =
_config:
{
setupSharedSecrets = _config: {
secrets,
extra ? {},
}:
{
generate = {
age.secrets = lib.genAttrs secrets (name: extra // { file = ../secrets/shared/${name}.age; });
};
}: {
generate = {age.secrets = lib.genAttrs secrets (name: extra // {file = ../secrets/shared/${name}.age;});};
get = name: _config.age.secrets.${name}.path;
};
mkMinecraftServer =
_config:
{
mkMinecraftServer = _config: {
name,
port,
remotePort,
@ -55,20 +34,20 @@
env ? {},
envFiles ? [],
extraPorts ? [],
}:
let
}: let
inherit (_config.virtualisation.oci-containers) backend;
in
{
in {
virtualisation.oci-containers.containers."mc-${name}" = {
image = "itzg/minecraft-server:${tag}";
ports = ["${builtins.toString port}:25565"] ++ extraPorts;
volumes = ["${dataDir}:/data"];
environmentFiles = envFiles;
environment = {
environment =
{
EULA = "true";
MEMORY = memory;
} // env;
}
// env;
};
networking.firewall.allowedTCPPorts = [port];

View file

@ -16,12 +16,8 @@ boot *args:
@sudo -v
sudo nixos-rebuild boot --flake . --keep-going {{args}}
deploy system user="leo":
#!/usr/bin/env bash
set -euxo pipefail
flake=$(nix eval --impure --raw --expr "(builtins.getFlake \"$PWD\").outPath")
nix copy "$flake" --to "ssh://{{user}}@{{system}}"
ssh -t "{{user}}@{{system}}" "sudo flock -w 60 /dev/shm/deploy-{{system}} nixos-rebuild switch --flake $flake#{{system}}"
deploy system:
nix run .#{{system}}
lint *args:
statix check -i flake.nix **/hardware-configuration.nix {{args}}

View file

@ -2,10 +2,8 @@
lib,
pkgs,
...
}:
{
hm.programs.alacritty =
let
}: {
hm.programs.alacritty = let
theme = pkgs.fetchurl {
# url = "https://raw.githubusercontent.com/catppuccin/alacritty/ce476fb41f307d90f841c1a4fd7f0727c21248b2/catppuccin-macchiato.toml";
url = "https://raw.githubusercontent.com/rose-pine/alacritty/3c3e36eb5225b0eb6f1aa989f9d9e783a5b47a83/dist/rose-pine.toml";
@ -13,8 +11,7 @@
};
themeAttr = builtins.fromTOML (builtins.readFile theme);
in
{
in {
enable = true;
settings = lib.recursiveUpdate themeAttr {
font = {

View file

@ -3,17 +3,14 @@
config,
pkgs,
...
}:
let
}: let
inherit (config.lib.file) mkOutOfStoreSymlink;
in
{
in {
home = {
packages = [pkgs.jetbrains.rider];
file = {
".dotnet/8".source =
mkOutOfStoreSymlink "${pkgs.dotnetCorePackages.dotnet_8.sdk.unwrapped}/share/dotnet";
".dotnet/8".source = mkOutOfStoreSymlink "${pkgs.dotnetCorePackages.dotnet_8.sdk.unwrapped}/share/dotnet";
".dotnet/mono".source = mkOutOfStoreSymlink pkgs.mono;
};
};

View file

@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
programs.fish.enable = true;
environment.systemPackages = with pkgs; [

View file

@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
hardware = {
xone.enable = true;
xpadneo.enable = true;
@ -10,11 +9,7 @@
osu-lazer-bin
(prismlauncher.override {
jdks = [
temurin-bin-21
temurin-bin-17
temurin-bin-8
];
jdks = [temurin-bin-21 temurin-bin-17 temurin-bin-8];
})
];

View file

@ -2,8 +2,7 @@
pkgs,
ghostty,
...
}:
{
}: {
hm.home = {
packages = [ghostty.packages.${pkgs.system}.default];

View file

@ -1,5 +1,4 @@
{ config, ... }:
{
{config, ...}: {
programs.git.enable = true;
hm.programs = {

View file

@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
services = {
xserver.desktopManager.gnome.enable = true;
displayManager = {

View file

@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
# utility packages for hyprland, since you know it's not a DE
hm.home.packages = with pkgs; [
@ -15,10 +14,7 @@
thunar = {
enable = true;
plugins = with pkgs.xfce; [
thunar-volman
thunar-archive-plugin
];
plugins = with pkgs.xfce; [thunar-volman thunar-archive-plugin];
};
};
}

View file

@ -2,8 +2,7 @@
lib,
pkgs,
...
}:
{
}: {
imports = [
./hyprland-misc.nix
./alacritty.nix
@ -38,24 +37,11 @@
wayland.windowManager.hyprland = {
enable = true;
settings =
let
settings = let
inherit (lib) getExe getExe';
keys = [
"ampersand"
"eacute"
"quotedbl"
"apostrophe"
"parenleft"
"minus"
"egrave"
"underscore"
"ccedilla"
"agrave"
];
keys = ["ampersand" "eacute" "quotedbl" "apostrophe" "parenleft" "minus" "egrave" "underscore" "ccedilla" "agrave"];
in
with pkgs;
{
with pkgs; {
"$mod" = "SUPER";
"$wl-paste" = getExe' wl-clipboard "wl-paste";
"$wpctl" = getExe' wireplumber "wpctl";
@ -166,18 +152,12 @@
++
# Switch workspaces with mod + [0-9]
# Move active window to a workspace with mod + SHIFT + [0-9]
lib.flatten (
builtins.map (
i:
let
lib.flatten (builtins.map (i: let
key = builtins.elemAt keys (i - 1);
in
[
in [
"$mod, ${key}, workspace, ${toString i}"
"$mod SHIFT, ${key}, movetoworkspace, ${toString i}"
]
) (lib.range 1 10)
);
]) (lib.range 1 10));
bindm = [
"$mod, mouse:272, movewindow"

View file

@ -3,11 +3,9 @@
config,
pkgs,
...
}:
let
}: let
inherit (config.lib.file) mkOutOfStoreSymlink;
in
{
in {
home.file = {
".jdks/temurin-21".source = mkOutOfStoreSymlink pkgs.temurin-bin-21;
".jdks/temurin-17".source = mkOutOfStoreSymlink pkgs.temurin-bin-17;

View file

@ -2,8 +2,7 @@
pkgs,
camasca,
...
}:
{
}: {
services = {
desktopManager.plasma6.enable = true;
displayManager.sddm = {

View file

@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
hm.programs.neovim = {
enable = true;
defaultEditor = true;

View file

@ -1,5 +1,5 @@
-- sets the <Leader> "key", which can be used in shortcuts
vim.g.mapleader = " "
vim.g.mapleader = ' '
vim.g.have_nerd_font = true
@ -8,7 +8,7 @@ vim.g.have_nerd_font = true
vim.opt.number = true
-- enable mouse
vim.opt.mouse = "a"
vim.opt.mouse = 'a'
-- save undo history
vim.opt.undofile = true
@ -31,19 +31,21 @@ vim.opt.splitbelow = true
vim.opt.list = true
-- preview substitutions (:s & :%s) while typing
vim.opt.inccommand = "split"
vim.opt.inccommand = 'split'
-- highlight the line the cursor is on
vim.opt.cursorline = true
-- sync os clipboard and neovim
vim.schedule(function()
vim.opt.clipboard = "unnamedplus"
vim.opt.clipboard = 'unnamedplus'
end)
-- [[ shortcuts, see `:help vim.keymap.set()` ]]
-- hide search results when pressing esc
vim.keymap.set("n", "<Esc>", "<cmd>nohlsearch<CR>")
vim.keymap.set('n', '<Esc>', '<cmd>nohlsearch<CR>')
-- disable arrow keys in normal mode
-- vim.keymap.set('n', '<left>', '<cmd>echo "Use h to move!!"<CR>')
@ -55,10 +57,11 @@ vim.keymap.set("n", "<Esc>", "<cmd>nohlsearch<CR>")
-- Use CTRL+<hjkl> to switch between windows
--
-- See `:help wincmd` for a list of all window commands
vim.keymap.set("n", "<C-h>", "<C-w><C-h>", { desc = "Move focus to the left window" })
vim.keymap.set("n", "<C-l>", "<C-w><C-l>", { desc = "Move focus to the right window" })
vim.keymap.set("n", "<C-j>", "<C-w><C-j>", { desc = "Move focus to the lower window" })
vim.keymap.set("n", "<C-k>", "<C-w><C-k>", { desc = "Move focus to the upper window" })
vim.keymap.set('n', '<C-h>', '<C-w><C-h>', { desc = 'Move focus to the left window' })
vim.keymap.set('n', '<C-l>', '<C-w><C-l>', { desc = 'Move focus to the right window' })
vim.keymap.set('n', '<C-j>', '<C-w><C-j>', { desc = 'Move focus to the lower window' })
vim.keymap.set('n', '<C-k>', '<C-w><C-k>', { desc = 'Move focus to the upper window' })
-- [[ plugin configuration ]]
require("nvim-treesitter.configs").setup({

View file

@ -3,20 +3,15 @@
pkgs,
config,
...
}:
let
}: let
toml = pkgs.formats.toml {};
in
{
in {
hm.home.file.".cargo/config.toml".source = toml.generate "config.toml" {
build.target-dir = "${config.hm.home.homeDirectory}/.cargo/target";
target.x86_64-unknown-linux-gnu = {
linker = "${lib.getExe pkgs.clang}";
rustflags = [
"-C"
"link-arg=-fuse-ld=${lib.getExe pkgs.mold}"
];
rustflags = ["-C" "link-arg=-fuse-ld=${lib.getExe pkgs.mold}"];
};
};
}

View file

@ -1,13 +1,15 @@
{
hm.programs.starship = {
enable = true;
settings = {
settings =
{
add_newline = false;
directory = {
truncation_length = 3;
truncation_symbol = "/";
};
} // (import ./nerd-font.nix);
}
// builtins.fromTOML (builtins.readFile ./nerd-font.toml);
};
}

View file

@ -1,84 +0,0 @@
{
aws.symbol = " ";
buf.symbol = " ";
c.symbol = " ";
conda.symbol = " ";
crystal.symbol = " ";
dart.symbol = " ";
directory.read_only = " 󰌾";
docker_context.symbol = " ";
elixir.symbol = " ";
elm.symbol = " ";
fennel.symbol = " ";
fossil_branch.symbol = " ";
git_branch.symbol = " ";
golang.symbol = " ";
guix_shell.symbol = " ";
haskell.symbol = " ";
haxe.symbol = " ";
hg_branch.symbol = " ";
hostname.ssh_symbol = " ";
java.symbol = " ";
julia.symbol = " ";
kotlin.symbol = " ";
lua.symbol = " ";
memory_usage.symbol = "󰍛 ";
meson.symbol = "󰔷 ";
nim.symbol = "󰆥 ";
nix_shell.symbol = " ";
nodejs.symbol = " ";
ocaml.symbol = " ";
package.symbol = "󰏗 ";
perl.symbol = " ";
php.symbol = " ";
pijul_channel.symbol = " ";
python.symbol = " ";
rlang.symbol = "󰟔 ";
ruby.symbol = " ";
rust.symbol = " ";
scala.symbol = " ";
swift.symbol = " ";
zig.symbol = " ";
os.symbols = {
Alpaquita = " ";
Alpine = " ";
Amazon = " ";
Android = " ";
Arch = " ";
Artix = " ";
CentOS = " ";
Debian = " ";
DragonFly = " ";
Emscripten = " ";
EndeavourOS = " ";
Fedora = " ";
FreeBSD = " ";
Garuda = "󰛓 ";
Gentoo = " ";
HardenedBSD = "󰞌 ";
Illumos = "󰈸 ";
Linux = " ";
Mabox = " ";
Macos = " ";
Manjaro = " ";
Mariner = " ";
MidnightBSD = " ";
Mint = " ";
NetBSD = " ";
NixOS = " ";
OpenBSD = "󰈺 ";
openSUSE = " ";
OracleLinux = "󰌷 ";
Pop = " ";
Raspbian = " ";
Redhat = " ";
RedHatEnterprise = " ";
Redox = "󰀘 ";
Solus = "󰠳 ";
SUSE = " ";
Ubuntu = " ";
Unknown = " ";
Windows = "󰍲 ";
};
}

View file

@ -0,0 +1,160 @@
[aws]
symbol = " "
[buf]
symbol = " "
[c]
symbol = " "
[conda]
symbol = " "
[crystal]
symbol = " "
[dart]
symbol = " "
[directory]
read_only = " 󰌾"
[docker_context]
symbol = " "
[elixir]
symbol = " "
[elm]
symbol = " "
[fennel]
symbol = " "
[fossil_branch]
symbol = " "
[git_branch]
symbol = " "
[golang]
symbol = " "
[guix_shell]
symbol = " "
[haskell]
symbol = " "
[haxe]
symbol = " "
[hg_branch]
symbol = " "
[hostname]
ssh_symbol = " "
[java]
symbol = " "
[julia]
symbol = " "
[kotlin]
symbol = " "
[lua]
symbol = " "
[memory_usage]
symbol = "󰍛 "
[meson]
symbol = "󰔷 "
[nim]
symbol = "󰆥 "
[nix_shell]
symbol = " "
[nodejs]
symbol = " "
[ocaml]
symbol = " "
[os.symbols]
Alpaquita = " "
Alpine = " "
Amazon = " "
Android = " "
Arch = " "
Artix = " "
CentOS = " "
Debian = " "
DragonFly = " "
Emscripten = " "
EndeavourOS = " "
Fedora = " "
FreeBSD = " "
Garuda = "󰛓 "
Gentoo = " "
HardenedBSD = "󰞌 "
Illumos = "󰈸 "
Linux = " "
Mabox = " "
Macos = " "
Manjaro = " "
Mariner = " "
MidnightBSD = " "
Mint = " "
NetBSD = " "
NixOS = " "
OpenBSD = "󰈺 "
openSUSE = " "
OracleLinux = "󰌷 "
Pop = " "
Raspbian = " "
Redhat = " "
RedHatEnterprise = " "
Redox = "󰀘 "
Solus = "󰠳 "
SUSE = " "
Ubuntu = " "
Unknown = " "
Windows = "󰍲 "
[package]
symbol = "󰏗 "
[perl]
symbol = " "
[php]
symbol = " "
[pijul_channel]
symbol = " "
[python]
symbol = " "
[rlang]
symbol = "󰟔 "
[ruby]
symbol = " "
[rust]
symbol = " "
[scala]
symbol = " "
[swift]
symbol = " "
[zig]
symbol = " "

View file

@ -2,8 +2,7 @@
pkgs,
vscode-extensions,
...
}:
let
}: let
inherit (pkgs.stdenv.hostPlatform) system;
extensions = vscode-extensions.extensions.${system};
@ -14,16 +13,14 @@ let
rust-lang.rust-analyzer
wakatime.vscode-wakatime
];
in
{
in {
hm.programs.vscode = {
enable = true;
enableUpdateCheck = false;
enableExtensionUpdateCheck = false;
mutableExtensionsDir = false;
extensions =
with extensions.vscode-marketplace;
extensions = with extensions.vscode-marketplace;
patched
++ [
# style
@ -52,12 +49,8 @@ in
# cpp
mesonbuild.mesonbuild
(ms-vscode.cmake-tools.overrideAttrs (_: {
sourceRoot = "extension";
}))
(ms-vscode.makefile-tools.overrideAttrs (_: {
sourceRoot = "extension";
}))
(ms-vscode.cmake-tools.overrideAttrs (_: {sourceRoot = "extension";}))
(ms-vscode.makefile-tools.overrideAttrs (_: {sourceRoot = "extension";}))
twxs.cmake
xaver.clang-format

View file

@ -3,8 +3,7 @@
pkgs,
config,
...
}:
{
}: {
hm.programs.waybar = {
enable = true;
style = ./style.css;
@ -20,19 +19,11 @@
modules-center = [];
modules-right =
["memory"]
++ lib.optionals (builtins.elem "amdgpu" config.services.xserver.videoDrivers) [
"custom/gpu-usage"
]
++ [
"cpu"
"wireplumber"
]
++ lib.optionals (builtins.elem "amdgpu" config.services.xserver.videoDrivers) ["custom/gpu-usage"]
++ ["cpu" "wireplumber"]
++ lib.optionals config.services.power-profiles-daemon.enable ["battery"]
++ lib.optionals config.programs.light.enable ["backlight"]
++ [
"clock"
"tray"
];
++ ["clock" "tray"];
"hyprland/workspaces" = {
format = "{name}";

View file

@ -31,9 +31,7 @@
@define-color rosewater #f4dbd6;
* {
font-family:
Jetbrains Mono,
sans-serif;
font-family: Jetbrains Mono, sans-serif;
font-size: 12px;
}
@ -41,7 +39,7 @@ window#waybar {
background-color: @base;
color: @text;
transition-property: background-color;
transition-duration: 0.5s;
transition-duration: .5s;
}
button {

View file

@ -5,17 +5,9 @@ let
etna = "age1m3jm6c5ywc5zntv5j4xhals0h28mpea88zzddq88zxcshmhteqwqu89qnh";
vesuvio = "age1g2z0tztrv2w7wtludjrd85q7px3lvjms0cjj32zej9dqpjwpscwsle6xhf";
main = [
fuji
kilimandjaro
mottarone
];
all = main ++ [
etna
vesuvio
];
in
{
main = [fuji kilimandjaro mottarone];
all = main ++ [etna vesuvio];
in {
"shared/userPassword.age".publicKeys = all;
"shared/tailscaleKey.age".publicKeys = all;
"shared/frpToken.age".publicKeys = all;

View file

@ -2,17 +2,15 @@
lib,
inputs,
...
}:
let
}: let
_utils = import ../global/utils.nix {inherit lib;};
toSystem =
name:
{
toSystem = name: {
role,
system,
}:
inputs.nixpkgs.lib.nixosSystem {
inputs.nixpkgs.lib.nixosSystem
{
inherit system;
modules = [
@ -23,12 +21,9 @@ let
{networking.hostName = name;}
];
specialArgs = inputs // {
inherit _utils;
specialArgs = inputs // {inherit _utils;};
};
};
in
{
in {
flake.nixosConfigurations = lib.mapAttrs toSystem {
fuji = {
role = "desktop";

View file

@ -4,8 +4,7 @@
config,
_utils,
...
}:
let
}: let
tunnelId = "57f51ad7-25a0-45f3-b113-0b6ae0b2c3e5";
secrets = _utils.setupSharedSecrets config {secrets = ["frpToken"];};
@ -13,8 +12,7 @@ let
owner = "cloudflared";
group = "cloudflared";
};
in
{
in {
assertions = [
{
assertion = lib.versionAtLeast config.boot.kernelPackages.kernel.version "6.6.31";

View file

@ -2,11 +2,9 @@
config,
_utils,
...
}:
let
}: let
secretKey = _utils.setupSingleSecret config "dendriteKey" {};
in
{
in {
imports = [secretKey.generate];
cfTunnels."m.uku.moe" = "http://localhost:80";
@ -17,16 +15,14 @@ in
};
services = {
dendrite =
let
dendrite = let
database = {
connection_string = "postgres:///dendrite?host=/run/postgresql";
max_open_conns = 50;
max_idle_conns = 5;
conn_max_lifetime = -1;
};
in
{
in {
enable = true;
httpPort = 8008;
loadCredential = ["private_key:${secretKey.path}"];
@ -68,16 +64,10 @@ in
];
};
nginx.virtualHosts."m.uku.moe".locations =
let
server = {
"m.server" = "m.uku.moe:443";
};
client = {
"m.homeserver"."base_url" = "https://m.uku.moe";
};
in
{
nginx.virtualHosts."m.uku.moe".locations = let
server = {"m.server" = "m.uku.moe:443";};
client = {"m.homeserver"."base_url" = "https://m.uku.moe";};
in {
"=/.well-known/matrix/server" = {
return = "200 '${builtins.toJSON server}'";
};

View file

@ -3,20 +3,15 @@
config,
_utils,
...
}:
let
}: let
secrets = _utils.setupSecrets config {
secrets = [
"turnstileSecret"
"forgejoRunnerSecret"
];
secrets = ["turnstileSecret" "forgejoRunnerSecret"];
extra = {
owner = "forgejo";
group = "forgejo";
};
};
in
{
in {
imports = [secrets.generate];
cfTunnels."git.uku3lig.net" = "http://localhost:3000";

View file

@ -7,19 +7,12 @@
pkgs,
modulesPath,
...
}:
{
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [
"xhci_pci"
"ahci"
"usbhid"
"usb_storage"
"sd_mod"
];
boot.initrd.availableKernelModules = ["xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod"];
boot.initrd.kernelModules = [];
boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [];
@ -32,10 +25,7 @@
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/FBB1-A79D";
fsType = "vfat";
options = [
"fmask=0022"
"dmask=0022"
];
options = ["fmask=0022" "dmask=0022"];
};
fileSystems."/data" = {

View file

@ -1,5 +1,4 @@
{ ... }:
{
{...}: {
services.immich = {
enable = true;

View file

@ -3,13 +3,11 @@
mystia,
_utils,
...
}:
let
}: let
vmcfg = config.services.victoriametrics;
secrets = _utils.setupSharedSecrets config {secrets = ["vmAuthToken"];};
vmauthEnv = _utils.setupSingleSecret config "vmauthEnv" {};
in
{
in {
imports = [
mystia.nixosModules.vmauth
secrets.generate

View file

@ -4,8 +4,7 @@
config,
_utils,
...
}:
let
}: let
inherit (config.virtualisation.oci-containers) backend;
secret = _utils.setupSingleSecret config "minecraftEnv" {};
@ -49,8 +48,7 @@ let
MODRINTH_PROJECTS = "spark, no-chat-reports";
};
};
in
{
in {
imports = [
secret.generate

View file

@ -2,16 +2,14 @@
config,
_utils,
...
}:
let
}: let
cfg = config.services.navidrome;
env = _utils.setupSingleSecret config "navidromeEnv" {
inherit (cfg) group;
owner = cfg.user;
};
in
{
in {
imports = [env.generate];
cfTunnels."navidrome.uku3lig.net" = "http://localhost:4533";

View file

@ -3,14 +3,12 @@
config,
_utils,
...
}:
let
}: let
adminPass = _utils.setupSingleSecret config "nextcloudAdminPass" {
owner = config.users.users.nextcloud.name;
group = config.users.users.nextcloud.name;
};
in
{
in {
imports = [adminPass.generate];
# nextcloud generates nginx config

View file

@ -1,5 +1,4 @@
{ camasca, ... }:
{
{camasca, ...}: {
imports = [camasca.nixosModules.reposilite];
cfTunnels."maven.uku3lig.net" = "http://localhost:8080";

View file

@ -1,14 +1,9 @@
{ config, ... }:
let
{config, ...}: let
inherit (config.virtualisation.oci-containers) backend;
in
{
in {
virtualisation.oci-containers.containers.satisfactory = {
image = "wolveix/satisfactory-server:v1.8.5";
ports = [
"7777:7777/udp"
"7777:7777/tcp"
];
ports = ["7777:7777/udp" "7777:7777/tcp"];
volumes = ["/var/lib/satisfactory-server:/config"];
environment = {
MAXPLAYERS = "4";

View file

@ -4,16 +4,11 @@
api-rs,
ukubot-rs,
...
}:
let
}: let
secrets = _utils.setupSecrets config {
secrets = [
"apiRsEnv"
"ukubotRsEnv"
];
secrets = ["apiRsEnv" "ukubotRsEnv"];
};
in
{
in {
imports = [
api-rs.nixosModules.default
ukubot-rs.nixosModules.default

View file

@ -2,11 +2,9 @@
_utils,
config,
...
}:
let
}: let
upsdPass = _utils.setupSingleSecret config "upsdUserPass" {};
in
{
in {
imports = [upsdPass.generate];
power.ups = {
@ -23,10 +21,7 @@ in
users.admin = {
passwordFile = upsdPass.path;
instcmds = ["ALL"];
actions = [
"SET"
"FSD"
];
actions = ["SET" "FSD"];
};
ups.eaton-3s-850 = {

View file

@ -2,11 +2,9 @@
config,
_utils,
...
}:
let
}: let
envFile = _utils.setupSingleSecret config "vaultwardenEnv" {};
in
{
in {
imports = [envFile.generate];
cfTunnels."bw.uku3lig.net" = "http://localhost:8222";

View file

@ -3,8 +3,7 @@
pkgs,
nixos-wsl,
...
}:
{
}: {
imports = [
nixos-wsl.nixosModules.default
];

View file

@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
imports = [
./nvidia.nix
../../programs/games.nix

View file

@ -7,19 +7,12 @@
pkgs,
modulesPath,
...
}:
{
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [
"xhci_pci"
"ahci"
"nvme"
"usbhid"
"sd_mod"
];
boot.initrd.availableKernelModules = ["xhci_pci" "ahci" "nvme" "usbhid" "sd_mod"];
boot.initrd.kernelModules = [];
boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [];

View file

@ -2,8 +2,7 @@
lib,
pkgs,
...
}:
{
}: {
services.xserver.videoDrivers = lib.mkForce ["nvidia"];
boot.kernelParams = [

View file

@ -1,5 +1,4 @@
{ camasca, ... }:
{
{camasca, ...}: {
imports = [
camasca.nixosModules.asus-numpad
../../programs/games.nix

View file

@ -7,21 +7,12 @@
pkgs,
modulesPath,
...
}:
{
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [
"xhci_pci"
"thunderbolt"
"vmd"
"nvme"
"usb_storage"
"sd_mod"
"rtsx_usb_sdmmc"
];
boot.initrd.availableKernelModules = ["xhci_pci" "thunderbolt" "vmd" "nvme" "usb_storage" "sd_mod" "rtsx_usb_sdmmc"];
boot.initrd.kernelModules = [];
boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [];

View file

@ -3,11 +3,9 @@
pkgs,
camasca,
...
}:
let
}: let
inherit (pkgs.stdenv.hostPlatform) system;
in
{
in {
environment.systemPackages = with pkgs; [
gtkterm
remmina

View file

@ -7,20 +7,12 @@
pkgs,
modulesPath,
...
}:
{
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [
"xhci_pci"
"thunderbolt"
"nvme"
"usbhid"
"usb_storage"
"sd_mod"
];
boot.initrd.availableKernelModules = ["xhci_pci" "thunderbolt" "nvme" "usbhid" "usb_storage" "sd_mod"];
boot.initrd.kernelModules = [];
boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [];
@ -33,10 +25,7 @@
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/D4AA-EE25";
fsType = "vfat";
options = [
"fmask=0022"
"dmask=0022"
];
options = ["fmask=0022" "dmask=0022"];
};
swapDevices = [

View file

@ -3,19 +3,14 @@
config,
_utils,
...
}:
let
}: let
secrets = _utils.setupSharedSecrets config {secrets = ["frpToken"];};
in
{
in {
imports = [secrets.generate];
zramSwap.enable = true;
environment.systemPackages = with pkgs; [
dig
traceroute
];
environment.systemPackages = with pkgs; [dig traceroute];
services = {
openssh.ports = [4269];

View file

@ -1,5 +1,4 @@
{ modulesPath, ... }:
{
{modulesPath, ...}: {
imports = ["${modulesPath}/profiles/qemu-guest.nix"];
boot = {
@ -15,15 +14,8 @@
kernelParams = ["console=tty"];
initrd = {
availableKernelModules = [
"ata_piix"
"uhci_hcd"
"xen_blkfront"
];
kernelModules = [
"nvme"
"virtio_gpu"
];
availableKernelModules = ["ata_piix" "uhci_hcd" "xen_blkfront"];
kernelModules = ["nvme" "virtio_gpu"];
};
};