Compare commits

24 Commits

Author SHA1 Message Date
25e647190b devtools: Move rust feature to devtools 2026-04-10 14:53:19 +02:00
c942a482c2 Zen: Enable recently used tab switch order 2026-04-10 14:48:17 +02:00
a802c85678 Docker+Tux: Add docker support 2026-04-10 14:47:38 +02:00
fc58b0ad29 HomeVPN: Add feature to automatically enable tailscale and set custom DNS nameserver 2026-04-03 11:34:29 +02:00
5d4e3982ee Browser: Refine default zen config 2026-04-03 02:08:36 +02:00
cbedc31575 Tux: Update configuration for tux's new setup 2026-04-03 01:10:08 +02:00
f6585da4b7 borgmatic: Rework borgmatic config to be a little less silly
Instead of globally excluding by pattern, exclude directories that
contain a .borgignore file

This makes the borg config more scalable across different setups
2026-04-02 13:48:08 +02:00
64336e8f9f Devtools: Add platformio udev rules 2026-04-02 13:48:08 +02:00
efbb990fab Nixvim: Enable formatters using conform.nvim 2026-04-02 13:48:08 +02:00
0f105b5324 Tux: Remount NAS outside $HOME 2026-04-02 13:48:08 +02:00
Weckyy702
eb0c48b1e7 programs: Add prusa-slicer 2026-03-19 21:44:00 +01:00
e22144dcc0 brightnessKey: Set step size to 5 2026-03-19 21:42:32 +01:00
09e90babd9 steam: disable firewall holes 2026-03-19 21:42:13 +01:00
1d14750a1f programs/development-tools: Add nix-ld and man pages 2026-03-19 21:41:52 +01:00
300a594250 drivers: Add opentablet 2026-03-19 21:41:20 +01:00
dcda6ea9b8 services: Add flameshot 2026-03-19 21:36:25 +01:00
c3981e6316 programs: Add libreoffice 2026-03-19 21:35:52 +01:00
cb37b19941 hosts/tux: Add blueman and blueman-applet 2026-03-19 21:34:28 +01:00
Weckyy702
e54fc963f6 system-settings: Add bluetooth support 2026-03-18 00:09:24 +01:00
Weckyy702
94cad97ba9 home/catppuccin+nixos/nerdfonts: enable gtk-related stuff 2026-03-17 00:33:00 +01:00
Weckyy702
59b1f8b632 home/catppuccin: Move catppuccin-cursors code to its friends 2026-03-17 00:32:19 +01:00
Weckyy702
de7db470ae hosts/keith: Correct resource path for local smb share 2026-03-17 00:31:29 +01:00
Weckyy702
336c395b56 hosts/tux: Move AGHPB-related flake import to where it belongs 2026-03-17 00:30:33 +01:00
Weckyy702
dbed42316a hosts/keith+home/hyprpaper: Remove home/hyprpaper
wpaperd is just cooler :(
2026-03-17 00:29:40 +01:00
36 changed files with 281 additions and 98 deletions

View File

@@ -1,22 +0,0 @@
{
config.flake.factory.hyprpaper = mappings: { config
, osConfig
, lib
, ...
}: {
services.hyprpaper = assert osConfig.programs.hyprland.enable; {
enable = true;
settings = {
preload = map ({ path, ... }: path) mappings;
wallpaper =
map
({ monitor
, path
, prefix ? ""
,
}: "${monitor},${prefix}${path}")
mappings;
};
};
};
}

View File

@@ -5,7 +5,7 @@
imports = with inputs.self.factory; [
(mount-cifs {
host = "duke.veltnet";
resource = "home";
resource = "smb-share";
destination = "/home/weckyy702/duke";
credentials_path = "${config.age.secrets.nas-creds.path}";
UID = "weckyy702";

View File

@@ -3,22 +3,24 @@
imports = with inputs.self.modules.nixos; [
weckyy702
steam
mullvad
];
home-manager.users.weckyy702 = { config, ... }: {
imports = with inputs.self.modules.homeManager;
with inputs.self.factory; [
(hyprpaper {
wallpaper_path = "${inputs.assets}/horizontal_16x9.png";
monitor_names = [
"DP-1"
"HDMI-A-1"
];
(wpaperd {
default = {
path = "${inputs.assets}/horizontal_16x9.png";
};
})
vesktop
spicetify
borgmatic
qbittorrent
prusa-slicer
];
};
};

View File

@@ -0,0 +1,9 @@
{ inputs, ... }: {
flake.modules.nixos.tux = {
imports = with inputs.self.modules.nixos;
with inputs.self.factory; [
development-tools
docker
];
};
}

View File

@@ -1,19 +1,19 @@
{
flake.modules.nixos.tux = {
fileSystems."/" =
{ device = "/dev/disk/by-uuid/39bb2139-7d71-4f3d-9c11-2cf3fe26ad7d";
fsType = "ext4";
};
fileSystems."/" =
{ device = "/dev/mapper/luks-9d836ef1-a7f9-430f-8fb8-f202f6336e5a";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/6514-61C0";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/15FA-55CF";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
swapDevices =
[ { device = "/dev/disk/by-uuid/ac1606de-34d3-4036-baf6-2ed17e54bfc3"; }
];
swapDevices =
[ { device = "/dev/mapper/luks-46e78828-ab23-48b8-8e2a-de7a21adbe24"; }
];
};

View File

@@ -1,15 +1,16 @@
{inputs, ...}: {
flake.modules.nixos.tux = {
imports = with inputs.self.modules.nixos; [
intel-gpu
];
{ inputs, ... }: {
flake.modules.nixos.tux = {
imports = with inputs.self.modules.nixos; [
intel-gpu
];
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" "sdhci_pci" ];
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" "sdhci_pci" ];
boot.initrd.luks.devices."luks-9d836ef1-a7f9-430f-8fb8-f202f6336e5a".device = "/dev/disk/by-uuid/9d836ef1-a7f9-430f-8fb8-f202f6336e5a";
boot.initrd.luks.devices."luks-46e78828-ab23-48b8-8e2a-de7a21adbe24".device = "/dev/disk/by-uuid/46e78828-ab23-48b8-8e2a-de7a21adbe24";
nixpkgs.hostPlatform = "x86_64-linux";
nixpkgs.hostPlatform = "x86_64-linux";
hardware.enableRedistributableFirmware = true;
hardware.cpu.intel.updateMicrocode = true;
};
hardware.enableRedistributableFirmware = true;
hardware.cpu.intel.updateMicrocode = true;
};
}

View File

@@ -4,12 +4,13 @@
with inputs.self.factory; [
system-desktop
systemd-boot
bluetooth
i18n-de
(autologin "weckyy702")
development-tools
i18n-de
tailscale
home-vpn
opentablet
#TODO: laptop specific aspects like powertop
];

View File

@@ -0,0 +1,5 @@
{ inputs, ... }: {
flake.modules.homeManager.blueman-applet = {
services.blueman-applet.enable = true;
};
}

View File

@@ -0,0 +1,5 @@
{
flake.modules.nixos.tux = {
users.users.weckyy702.extraGroups = [ "docker" ];
};
}

View File

@@ -1,11 +1,4 @@
{ inputs, ... }: {
flake-file.inputs = {
aghpb = {
url = "github:cat-milk/Anime-Girls-Holding-Programming-Books";
flake = false;
};
};
flake.modules.homeManager.tux-hyprland = {
imports = with inputs.self.modules.homeManager; [
ashell

View File

@@ -6,7 +6,7 @@
(mount-cifs {
host = "duke.veltnet";
resource = "smb-share";
destination = "/home/weckyy702/duke";
destination = "/mnt/nas";
credentials_path = "${config.age.secrets.nas-creds.path}";
UID = "weckyy702";
GID = "users";

View File

@@ -1,4 +1,11 @@
{ inputs, ... }: {
flake-file.inputs = {
aghpb = {
url = "github:cat-milk/Anime-Girls-Holding-Programming-Books";
flake = false;
};
};
flake.modules.homeManager.randomized-aghpb-wallpaper = {
imports = with inputs.self.factory; [
(wpaperd {

View File

@@ -3,6 +3,7 @@
imports = with inputs.self.modules.nixos; [
weckyy702
upower
libreoffice
];
home-manager.users.weckyy702 = {
@@ -14,6 +15,7 @@
tux-hyprland
randomized-aghpb-wallpaper
nm-applet
blueman-applet
];
};
};

View File

@@ -6,9 +6,84 @@
};
};
flake.modules.homeManager.browser = { pkgs, ... }: {
home.packages = [
inputs.zen-browser.packages.${pkgs.stdenv.hostPlatform.system}.default
];
};
flake.modules.homeManager.browser =
{ pkgs
, lib
, ...
}:
let
mkExtension = shortId: guid: {
name = guid;
value = {
install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/${shortId}/latest.xpi";
installation_mode = "normal_installed";
};
};
zen-pkg =
inputs.zen-browser.packages.${pkgs.stdenv.hostPlatform.system}.zen-browser-unwrapped;
prefs = {
"zen.tabs.vertical.right-side" = true;
"zen.workspaces.force-container-workspace" = true;
"zen.view.compact.enable-at-startup" = true;
"zen.pinned-tab-manager.restore-pinned-tabs-to-pinned-url" = true;
"zen.welcome-screen.seen" = true;
"sidebar.visibility" = "hide-sidebar";
"browser.ctrlTab.sortByRecentlyUsed" = true;
"privacy.fingerprintingProtection" = true;
"privacy.globalprivacycontrol.was_ever_enabled" = true;
"privacy.sanitize.clearOnShutdown.hasMigratedToNewPrefs3" = true;
"privacy.trackingprotection.allow_list.convenience.enabled" = false;
"privacy.trackingprotection.allow_list.hasMigratedCategoryPrefs" = true;
"privacy.trackingprotection.allow_list.hasUserInteractedWithETPSettings" = true;
"privacy.trackingprotection.emailtracking.enabled" = true;
"privacy.trackingprotection.enabled" = true;
"privacy.trackingprotection.socialtracking.enabled" = true;
};
extensions = [
# To add additional extensions, find it on addons.mozilla.org, find
# the short ID in the url (like https://addons.mozilla.org/en-US/firefox/addon/!SHORT_ID!/)
# Then go to https://addons.mozilla.org/api/v5/addons/addon/!SHORT_ID!/ to get the guid
(mkExtension "ublock-origin" "uBlock0@raymondhill.net")
(mkExtension "darkreader" "addon@darkreader.org")
(mkExtension "bitwarden-password-manager" "{446900e4-71c2-419f-a6a7-df9c091e268b}")
# ...
];
in
{
home.packages = [
(
pkgs.wrapFirefox zen-pkg
{
extraPrefs = lib.concatLines (
lib.mapAttrsToList
(
name: value: ''lockPref(${lib.strings.toJSON name}, ${lib.strings.toJSON value});''
)
prefs
);
extraPolicies = {
DisableTelemetry = true;
ExtensionSettings = builtins.listToAttrs extensions;
SearchEngines = {
Default = "ddg";
Add = [
{
Name = "nixpkgs packages";
URLTemplate = "https://search.nixos.org/packages?query={searchTerms}";
IconURL = "https://wiki.nixos.org/favicon.ico";
Alias = "@np";
}
];
};
};
}
)
];
};
}

View File

@@ -38,11 +38,20 @@
hyprcursor.size = size;
};
wayland.windowManager.hyprland.settings.exec-once = [
"hyprctl setcursor catppuccin-mocha-mauve-cursors 24"
];
catppuccin.enable = true;
# Required for QT apps to use the catppuccin colors
qt = {
enable = true;
style.name = "kvantum";
};
gtk = {
enable = true;
colorScheme = "dark";
};
};
}

View File

@@ -1,15 +1,15 @@
{ inputs, ... }: {
flake.modules.nixos.development-tools = { pkgs, ... }: {
imports = with inputs.self.modules.nixos; [
rust
];
environment.systemPackages = with pkgs; [
cmake
gnumake
clang
gcc
man-pages
man-pages-posix
];
documentation.dev.enable = true;
programs.direnv = {
enable = true;
@@ -17,5 +17,7 @@
silent = true;
nix-direnv.enable = true;
};
programs.nix-ld.enable = true;
};
}

View File

@@ -6,7 +6,7 @@
};
};
flake.modules.nixos.rust = { pkgs, ... }: {
flake.modules.nixos.development-tools = { pkgs, ... }: {
nixpkgs.overlays = [
inputs.rust-overlay.overlays.default
];

View File

@@ -0,0 +1,5 @@
{
flake.modules.nixos.development-tools = { pkgs, ... }: {
services.udev.packages = with pkgs; [ platformio-core.udev ];
};
}

View File

@@ -0,0 +1,8 @@
{
flake.modules.nixos.docker = {
virtualisation.docker = {
enable = true;
autoPrune.enable = true;
};
};
}

View File

@@ -21,10 +21,6 @@
follow_mouse = 1;
};
exec-once = [
"hyprctl setcursor catppuccin-mocha-mauve-cursors 24"
];
bind =
[
"$mod, Q, exit"

View File

@@ -0,0 +1,7 @@
{
flake.modules.nixos.libreoffice = { pkgs, ... }: {
environment.systemPackages = with pkgs; [
libreoffice
];
};
}

View File

@@ -1,6 +1,7 @@
{ ... }: {
imports = [
./lsp.nix
./formatter.nix
./telescope
./cmp
];

View File

@@ -0,0 +1,15 @@
{
plugins.conform-nvim = {
enable = true;
autoInstall.enable = true;
settings = {
formatters_by_ft = {
cpp = [ "clang_format" ];
markdown = [
"prettier"
];
};
formatters = { };
};
};
}

View File

@@ -20,6 +20,8 @@
enable = true;
};
rnix.enable = true;
basedpyright.enable = true;
};
keymaps = [

View File

@@ -0,0 +1,7 @@
{
flake.modules.homeManager.prusa-slicer = { pkgs, ... }: {
home.packages = with pkgs; [
prusa-slicer
];
};
}

View File

@@ -8,9 +8,6 @@
protontricks = {
enable = true;
};
dedicatedServer.openFirewall = true;
localNetworkGameTransfers.openFirewall = true;
remotePlay.openFirewall = true;
};
};
}

View File

@@ -2,7 +2,10 @@
flake.modules.nixos.backlight = {
programs.light = {
enable = true;
brightnessKeys.enable = true;
brightnessKeys = {
enable = true;
step = 5;
};
};
};
}

View File

@@ -30,14 +30,10 @@
patterns = [
#TODO: home.homeDirectory might be usable here
#TODO: should be user and machine specific
"R /home/${username}/Documents"
"R /home/${username}/.ssh"
"- /home/${username}/Documents/SteamLibrary"
"- /home/${username}/Documents/PrismLauncher instances"
"- /home/${username}/Documents/.Trash-1000"
"- /home/${username}/Documents/VMs/Data"
"R /home/${username}"
"+ /home/${username}/.ssh"
"- /home/${username}/.*"
"- **/node_modules"
"- **/.git"
"- **/.cache"
"- **/*build"
"- **/target"
@@ -48,6 +44,8 @@
"- **/dist"
"- **/.pio"
];
extraConfig.exclude_if_present = [ ".borgignore" ];
};
retention.keepWeekly = 2;
storage.extraConfig.ssh_command = "ssh -i /home/${username}/.ssh/id_ed25519_borg";

View File

@@ -0,0 +1,12 @@
{
flake.modules.homeManager.flameshot = {
services.flameshot = {
enable = true;
settings = {
General = {
useGrimAdapter = true;
};
};
};
};
}

View File

@@ -0,0 +1,9 @@
{
flake.modules.nixos.bluetooth = {
hardware.bluetooth = {
enable = true;
};
services.blueman.enable = true;
};
}

View File

@@ -0,0 +1,14 @@
{ self, ... }: {
flake.modules.nixos.home-vpn = {
imports = with self.modules.nixos; [
tailscale
resolved
];
services.resolved.extraConfig = ''
[Resolve]
DNS=10.10.0.1
Domains=~veltnet
'';
};
}

View File

@@ -8,4 +8,8 @@
fontDir.enable = true;
};
};
flake.modules.homeManager.nerdfonts = {
gtk.font.name = "JetBrainsMono";
};
}

View File

@@ -0,0 +1,8 @@
{
flake.modules.nixos.opentablet = {
hardware.opentabletdriver = {
enable = true;
daemon.enable = true;
};
};
}

View File

@@ -0,0 +1,7 @@
{
flake.modules.nixos.resolved = {
services.resolved.enable = true;
networking.networkmanager.dns = "systemd-resolved";
};
}

View File

@@ -23,6 +23,7 @@
multimedia
zsh
thunderbird
flameshot
];
};
}

View File

@@ -1,12 +1,12 @@
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IFNjTWNPZyB6Mzk1
MWl5cW5uNkc0WTFUTEF1TGFOS0J3a1YyRzJieTlDOGVPbm84WVVNCjJUNlp5K3Ny
YUhMdWp2Zk5tNGp1TkxKcnNST2h1N0VrVnNiaUZzV21QUFUKLT4gc3NoLWVkMjU1
MTkgZkJwNFR3IDR5UFhoTkNOUlJyVmovMUQzTExGK2Y2bFZPMW9ZZFdQTFliUFVj
WDRPM2cKSjFQVWhVZXFMY0ZzdDEraXdkeW1BVkRtemFQdHYzeUI4ZjhrNFdsdmo1
WQotPiBzc2gtZWQyNTUxOSBZazBxSWcgOUJxQkMzYzFrYWhVOTVFTnNvVmI1WDBn
U2ZCVDU0WTliQzRxTVZKdCtCdwpYbUlJVmNHaHpuY0dJMldJSEFkbmpkZTlmTkI1
Y3lhQWRBaWdNOGpvcHdzCi0tLSA0dm04SEovSnZ5dW9MaTdxV1NSUGxnZ3orTzNy
WUt6eUt6TFAyTGFhdWFVCs0loU4KFs/vYaJX4d31Gf1y8Fv/jWEIALZ4KIqbEPPf
3C1Ljr2Mbfz231S/zxjfjK2vhHNtYdBtPOsEtpvThCZSTzuJ/WUzox5XUfL7
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IFNjTWNPZyBDZVNV
dEhaL21OOUpVeEIyVHY0RHUySldpMkxEMjNrbk5nbWlNRUZrblRvCmEyTnRlNC8r
cldvZGEwS1QvSzdWdGdNSHUrR1N5M1lJcXBpcHZ2RDVMc0UKLT4gc3NoLWVkMjU1
MTkgZkJwNFR3IERiWDkrMEk5MU1vSHB4MmpFbjRMSDhiY3EwVXlrejBHT0h2N2pm
N0I3MGsKd3RFQ01ObktrNkV5Z1ZsMVFzakVmUXJEczIyV2FVbldCQThCVERQMzJO
VQotPiBzc2gtZWQyNTUxOSBZazBxSWcgNjBhL2RldVQ2SWhjL0R2c09jUUY4d01j
RjFjamExWlEvOHlaVUhhQlhURQplRzgxY1pxblZnOXNkZVVEUHN0MVlsRFlQK1hW
WWVWQ1NwSHM1eUFtRHBvCi0tLSBnL0tvY3JBR3JVaGZVT2NZU2F4SnJlLzE5VUFw
QU4zM2lsNnRKQkE2blBVCqVEBU+W7CRtMD5OPPvioRttzBk1ZAJSgSiZkJPdVli9
Phhr6ZWAr3crBp3Pbn3emLmh+79XdOeAjXI5NhKA2/qW1eSpfClr2rIwu3HX
-----END AGE ENCRYPTED FILE-----