Compare commits

...

61 Commits

Author SHA1 Message Date
b2458bbefc Update files 2026-04-06 22:40:40 +01:00
70302671ff Update files 2026-04-06 20:07:34 +01:00
0c78fd12a1 Update files 2026-04-06 17:52:15 +01:00
7a2a6ccd23 Update files 2026-04-06 13:54:31 +01:00
ad70686b05 fix krita 2026-04-05 22:47:17 +01:00
0c69a2c32e Update files 2026-04-05 15:17:12 +01:00
0c631272ea Update files 2026-04-05 15:13:37 +01:00
b745739914 Update 2026-04-05 15:02:20 +01:00
67b3c38f52 Update files 2026-04-05 14:16:59 +01:00
e70a5473c4 Update files 2026-04-01 20:42:51 +01:00
96a17d3313 Update files 2026-03-29 21:31:08 +00:00
ed2def05a2 Update files 2026-03-28 17:22:04 +00:00
0482012f79 Update files 2026-03-28 17:21:40 +00:00
f5cd434ac0 Update files 2026-03-28 17:21:19 +00:00
48e51cb952 Update files 2026-03-28 14:07:08 +00:00
7463facb62 Update files 2026-03-27 14:56:46 +00:00
d006e30a31 Update files 2026-03-27 13:48:02 +00:00
7aa9f6c785 Update files 2026-03-27 13:43:07 +00:00
55534e65ff Update files 2026-03-27 13:42:29 +00:00
e934e19ecb Update files 2026-03-27 11:50:47 +00:00
b4f21226ef Update files 2026-03-27 09:56:39 +00:00
ca8931192d Update files 2026-03-27 09:56:09 +00:00
c9fa01aaf0 Update files 2026-03-27 09:47:23 +00:00
6a5fd198b5 Update files 2026-03-27 09:41:53 +00:00
795e73be77 Update files 2026-03-27 09:36:24 +00:00
b4c63b8b79 Update files 2026-03-27 09:31:53 +00:00
356b2a82aa Update files 2026-03-27 08:47:15 +00:00
448432926f Update files 2026-03-26 18:33:47 +00:00
1447336288 Update files 2026-03-26 17:09:56 +00:00
104ef84243 Update files 2026-03-25 21:14:36 +00:00
898868900c Update files 2026-03-25 21:07:14 +00:00
0fb5035fc1 Update files 2026-03-25 21:03:32 +00:00
59c4299ae7 Update files 2026-03-25 20:58:46 +00:00
921b0527ab Update files 2026-03-25 20:57:19 +00:00
36ed8aeff0 Update files 2026-03-24 21:37:51 +00:00
91f10904d2 Update files 2026-03-24 21:01:17 +00:00
bc73d5ec6e Update files 2026-03-24 20:42:44 +00:00
e8b47ea4a5 Update files 2026-03-24 20:39:25 +00:00
b941192860 Update files 2026-03-24 19:07:10 +00:00
249e95075c Update files 2026-03-24 19:03:39 +00:00
876f7e6c3f Update files 2026-03-23 22:33:29 +00:00
6ed74b4d37 Update files 2026-03-23 22:33:11 +00:00
95c859b3f4 Sound 2026-03-23 22:32:55 +00:00
2325e48006 Update files 2026-03-23 22:20:28 +00:00
39ac040d98 Update files 2026-03-23 22:20:05 +00:00
608506ec3b Update files 2026-03-23 22:18:20 +00:00
204803689f Update files 2026-03-23 22:17:22 +00:00
43e0876595 Update files 2026-03-23 21:32:14 +00:00
dea59a0c17 Update files 2026-03-23 21:22:48 +00:00
14043ea855 Update files 2026-03-23 21:12:18 +00:00
b78485c0d6 Update files 2026-03-23 20:13:45 +00:00
1542c5ba2f Update files 2026-03-22 21:48:00 +00:00
aea31984d0 Update files 2026-03-22 21:39:15 +00:00
efe8575777 Update files 2026-03-22 21:36:40 +00:00
805e028eaa Update files 2026-03-22 21:25:04 +00:00
5885f86813 Update files 2026-03-22 21:23:48 +00:00
e41939f2e1 Update files 2026-03-21 17:28:54 +00:00
c1a50c2ce9 Update files 2026-03-21 17:27:28 +00:00
f89861cad7 Update files 2026-03-21 17:25:14 +00:00
345f498212 Update files 2026-03-21 17:24:16 +00:00
bfeca4e848 Flake 2026-03-20 19:42:11 +00:00
22 changed files with 349 additions and 66 deletions

View File

@@ -0,0 +1,3 @@
[Trash Info]
Path=/home/chris/.config/nixos/initial-configs/nextcloud.cfg
DeletionDate=2026-03-23T21:32:08

183
flake.lock generated
View File

@@ -25,11 +25,11 @@
"systems": "systems" "systems": "systems"
}, },
"locked": { "locked": {
"lastModified": 1772866605, "lastModified": 1774640361,
"narHash": "sha256-r2ucLztXQFRu70VrGtNcL3PONyazxDPwq/hSn7opD+I=", "narHash": "sha256-5PLTPbnbtK0iDbsB9yFeHr5y/pv6/XzoVm/CDeXXt/c=",
"owner": "abenz1267", "owner": "abenz1267",
"repo": "elephant", "repo": "elephant",
"rev": "1a52df65c679d17f9889abeb5593aa7ffc40f681", "rev": "d30652147d8e16ebc849b779b8ef495a894b0dd4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -46,11 +46,11 @@
}, },
"locked": { "locked": {
"dir": "pkgs/firefox-addons", "dir": "pkgs/firefox-addons",
"lastModified": 1772957263, "lastModified": 1775448173,
"narHash": "sha256-Rg/pXdpJFK5pGwUEu0wop942QgbrEch+dWB05h3l7uc=", "narHash": "sha256-C6OJuD3A4KDNz4QaYedkYtXzKHPecG5YYyMGLq7UwY8=",
"owner": "rycee", "owner": "rycee",
"repo": "nur-expressions", "repo": "nur-expressions",
"rev": "be0d1413792f3811be7e0c4e9b17e94cbbe73fb9", "rev": "5b0fb7d54dea38c47e5c58058c166e790a0e0cf1",
"type": "gitlab" "type": "gitlab"
}, },
"original": { "original": {
@@ -60,10 +60,44 @@
"type": "gitlab" "type": "gitlab"
} }
}, },
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1767039857,
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
"owner": "NixOS",
"repo": "flake-compat",
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
"type": "github"
},
"original": {
"owner": "NixOS",
"repo": "flake-compat",
"type": "github"
}
},
"flake-parts": { "flake-parts": {
"inputs": { "inputs": {
"nixpkgs-lib": "nixpkgs-lib" "nixpkgs-lib": "nixpkgs-lib"
}, },
"locked": {
"lastModified": 1775087534,
"narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib_2"
},
"locked": { "locked": {
"lastModified": 1763759067, "lastModified": 1763759067,
"narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=", "narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=",
@@ -96,6 +130,51 @@
"type": "github" "type": "github"
} }
}, },
"git-hooks": {
"inputs": {
"flake-compat": "flake-compat",
"gitignore": "gitignore",
"nixpkgs": [
"nix-gaming",
"nixpkgs"
]
},
"locked": {
"lastModified": 1775036584,
"narHash": "sha256-zW0lyy7ZNNT/x8JhzFHBsP2IPx7ATZIPai4FJj12BgU=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "4e0eb042b67d863b1b34b3f64d52ceb9cd926735",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
"nix-gaming",
"git-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"home-manager": { "home-manager": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -103,11 +182,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1772633058, "lastModified": 1775425411,
"narHash": "sha256-SO7JapRy2HPhgmqiLbfnW1kMx5rakPMKZ9z3wtRLQjI=", "narHash": "sha256-KY6HsebJHEe5nHOWP7ur09mb0drGxYSzE3rQxy62rJo=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "080657a04188aca25f8a6c70a0fb2ea7e37f1865", "rev": "0d02ec1d0a05f88ef9e74b516842900c41f0f2fe",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -157,6 +236,26 @@
"type": "github" "type": "github"
} }
}, },
"nix-gaming": {
"inputs": {
"flake-parts": "flake-parts",
"git-hooks": "git-hooks",
"nixpkgs": "nixpkgs_4"
},
"locked": {
"lastModified": 1775445570,
"narHash": "sha256-Vo+fChd5PkSnbHDKPQSROMDPmPPuFsRTqeVpEWd7afU=",
"owner": "fufexan",
"repo": "nix-gaming",
"rev": "98a1511fbc84643be14c6c60816bdad1d00a004a",
"type": "github"
},
"original": {
"owner": "fufexan",
"repo": "nix-gaming",
"type": "github"
}
},
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1768661221, "lastModified": 1768661221,
@@ -174,6 +273,21 @@
} }
}, },
"nixpkgs-lib": { "nixpkgs-lib": {
"locked": {
"lastModified": 1774748309,
"narHash": "sha256-+U7gF3qxzwD5TZuANzZPeJTZRHS29OFQgkQ2kiTJBIQ=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "333c4e0545a6da976206c74db8773a1645b5870a",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixpkgs.lib",
"type": "github"
}
},
"nixpkgs-lib_2": {
"locked": { "locked": {
"lastModified": 1761765539, "lastModified": 1761765539,
"narHash": "sha256-b0yj6kfvO8ApcSE+QmA6mUfu8IYG6/uU28OFn4PaC8M=", "narHash": "sha256-b0yj6kfvO8ApcSE+QmA6mUfu8IYG6/uU28OFn4PaC8M=",
@@ -190,11 +304,11 @@
}, },
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1772773019, "lastModified": 1775036866,
"narHash": "sha256-E1bxHxNKfDoQUuvriG71+f+s/NT0qWkImXsYZNFFfCs=", "narHash": "sha256-ZojAnPuCdy657PbTq5V0Y+AHKhZAIwSIT2cb8UgAz/U=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "aca4d95fce4914b3892661bcb80b8087293536c6", "rev": "6201e203d09599479a3b3450ed24fa81537ebc4e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -206,11 +320,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1772773019, "lastModified": 1764242076,
"narHash": "sha256-E1bxHxNKfDoQUuvriG71+f+s/NT0qWkImXsYZNFFfCs=", "narHash": "sha256-sKoIWfnijJ0+9e4wRvIgm/HgE27bzwQxcEmo2J/gNpI=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "aca4d95fce4914b3892661bcb80b8087293536c6", "rev": "2fad6eac6077f03fe109c4d4eb171cf96791faa4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -238,11 +352,27 @@
}, },
"nixpkgs_4": { "nixpkgs_4": {
"locked": { "locked": {
"lastModified": 1772822230, "lastModified": 1775126147,
"narHash": "sha256-yf3iYLGbGVlIthlQIk5/4/EQDZNNEmuqKZkQssMljuw=", "narHash": "sha256-J0dZU4atgcfo4QvM9D92uQ0Oe1eLTxBVXjJzdEMQpD0=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "8d8c1fa5b412c223ffa47410867813290cdedfef",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_5": {
"locked": {
"lastModified": 1775305101,
"narHash": "sha256-/74n1oQPtKG52Yw41cbToxspxHbYz6O3vi+XEw16Qe8=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "71caefce12ba78d84fe618cf61644dce01cf3a96", "rev": "36a601196c4ebf49e035270e10b2d103fe39076b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -259,7 +389,8 @@
"firefox-addons": "firefox-addons", "firefox-addons": "firefox-addons",
"home-manager": "home-manager", "home-manager": "home-manager",
"impermanence": "impermanence", "impermanence": "impermanence",
"nixpkgs": "nixpkgs_4", "nix-gaming": "nix-gaming",
"nixpkgs": "nixpkgs_5",
"nixpkgs-unstable": "nixpkgs-unstable", "nixpkgs-unstable": "nixpkgs-unstable",
"try-cli": "try-cli", "try-cli": "try-cli",
"voxtype": "voxtype", "voxtype": "voxtype",
@@ -313,7 +444,7 @@
}, },
"try-cli": { "try-cli": {
"inputs": { "inputs": {
"flake-parts": "flake-parts", "flake-parts": "flake-parts_2",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
] ]
@@ -340,11 +471,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1772443545, "lastModified": 1775048999,
"narHash": "sha256-oD3lameQXilKcgxQORR2l0+iDbnCO61+mjYD3MEVbuQ=", "narHash": "sha256-w35TNOdJcgMdt98XusY8DjmY4UPv3NQ7m+vR8oliWRU=",
"owner": "peteonrails", "owner": "peteonrails",
"repo": "voxtype", "repo": "voxtype",
"rev": "d011f3ff074a6a14c14e75fefb375a408e9e8887", "rev": "f292b6e1c9dbcfe4cdc7f781048db8be16c40c18",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -364,11 +495,11 @@
"systems": "systems_3" "systems": "systems_3"
}, },
"locked": { "locked": {
"lastModified": 1772866748, "lastModified": 1773675699,
"narHash": "sha256-Z18wVHImX/w9zoruMlSQuh4JcrJh28jxDwR96oevCzM=", "narHash": "sha256-GrormZ2KxchtCLuO90+5fioEQmlUCKBIil0Mzr9w0Iw=",
"owner": "abenz1267", "owner": "abenz1267",
"repo": "walker", "repo": "walker",
"rev": "ddaf9a02a81155c0de8b7b8db9341825afba319e", "rev": "d2702235710da3d7daf55c912ca7534261cf20f5",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -61,13 +61,6 @@
exit exit
fi fi
DEST_FILE="$HOME/.config/Nextcloud/nextcloud.cfg"
if [ ! -f "$DEST_FILE" ]; then
mkdir -p "$(dirname "$DEST_FILE")"
cp "${../initial-configs/nextcloud.cfg}" "$DEST_FILE"
fi
DEST_FILE="$HOME/.config/sinew.in/Enpass.conf" DEST_FILE="$HOME/.config/sinew.in/Enpass.conf"
if [ ! -f "$DEST_FILE" ]; then if [ ! -f "$DEST_FILE" ]; then

View File

@@ -4,35 +4,40 @@
#imports = [ impermanence.nixosModules.impermanence ]; #imports = [ impermanence.nixosModules.impermanence ];
home.persistence."/persist" = { home.persistence."/persist" = {
directories = [ directories = [
"Downloads" ".cache/Nextcloud"
"Tower"
"Code"
".steam"
".config/dotfiles"
".cache/zsh"
".mozilla/firefox"
".config/nvim"
".cache/wal" ".cache/wal"
".config/yazi/plugins" ".cache/zsh"
".config/nixos" ".config/.gemini"
".config/Nextcloud"
".config/spotify"
".config/sinew.in"
".config/chromium"
".config/obsidian"
".config/superProductivity"
".config/Antigravity" ".config/Antigravity"
".local/share/direnv" ".config/Nextcloud"
".local/share/nvim" ".config/chromium"
".local/share/krita" ".config/dotfiles"
".local/share/voxtype" ".config/nixos"
".local/share/zoxide" ".config/Signal"
".config/nvim"
".config/obsidian"
".config/sinew.in"
".config/spotify"
".config/superProductivity"
".config/yazi/plugins"
".local/share/android"
".local/share/Enpass" ".local/share/Enpass"
".local/share/Steam" ".local/share/Steam"
".local/share/direnv"
".local/share/keyrings"
".local/share/krita"
".local/share/nvim"
".local/share/station" ".local/share/station"
".local/share/voxtype"
".local/share/zoxide"
".local/state/station" ".local/state/station"
".local/share/Nextcloud" ".local/state/wireplumber"
".mozilla/firefox"
".ssh" ".ssh"
".steam"
"Code"
"Downloads"
"Tower"
]; ];
files = [ files = [
".config/shell/.env" ".config/shell/.env"

View File

@@ -1,6 +1,7 @@
{ pkgs, pkgs-unstable, try-cli, ... }: { pkgs, pkgs-unstable, try-cli, nix-direnv, ... }:
let let
krita-appimage = pkgs.callPackage ../packages/krita.nix { };
enpass = pkgs.enpass.overrideAttrs (oldAttrs: rec { enpass = pkgs.enpass.overrideAttrs (oldAttrs: rec {
version = "6.11.13.1957"; version = "6.11.13.1957";
src = pkgs.fetchurl { src = pkgs.fetchurl {
@@ -23,21 +24,20 @@ in
}; };
}; };
home.packages = with pkgs; [ home.packages = with pkgs; [
antigravity # Gemini AI coding assistant pkgs-unstable.antigravity # Gemini AI coding assistant
bluetui # Bluetooth TUI bluetui # Bluetooth TUI
direnv # Directory environment manager
enpass # Password manager enpass # Password manager
enpass-cli # Enpass CLI tool enpass-cli # Enpass CLI tool
expressvpn # VPN expressvpn # VPN
ffmpeg # Video tools ffmpeg # Video tools
ffmpegthumbnailer # Video thumbnailer ffmpegthumbnailer # Video thumbnailer
pkgs-unstable.gemini-cli # Gemini AI CLI tool
ghostty # Terminal emulator ghostty # Terminal emulator
gimp # Image manipulation software gimp # Image manipulation software
gpu-screen-recorder # GPU screen recorder for Linux gpu-screen-recorder # GPU screen recorder for Linux
imv # Image viewer imv # Image viewer
inkscape # Vector graphics software inkscape # Vector graphics software
kdePackages.wacomtablet # Wacom tablet manager krita-appimage # Custom digital art software (from AppImage)
krita # Digital art software
libreoffice-fresh # Office suite libreoffice-fresh # Office suite
lunar-client # Minecraft launcher lunar-client # Minecraft launcher
mpv # Video player mpv # Video player

View File

@@ -15,6 +15,10 @@
Status = "locked"; Status = "locked";
}; };
in { in {
direnv = {
enable = true;
nix-direnv.enable = true;
};
walker = { walker = {
enable = true; enable = true;
config = {}; config = {};

View File

@@ -0,0 +1 @@
$6$MCVd.EUOYYB0A1eS$S1/gSfAq1c2dBCofvJp9RtW.o5mLi78h0Y39LABIeIauPRjlEny/1R5aXEA7uPrZ3TPxhnYOYxTdbCi0imFZp.

40
packages/krita.nix Normal file
View File

@@ -0,0 +1,40 @@
{
lib,
appimageTools,
fetchurl,
makeWrapper
}:
let
version = "6.0.1";
pname = "krita-appimage";
src = fetchurl {
url = "https://download.kde.org/stable/krita/${version}/krita-${version}-x86_64.AppImage";
hash = "sha256-lzIgaqZiTnUOW5FSRF+1ROpj3RASWC390aLVFSBBTQo=";
};
appimageContents = appimageTools.extract { inherit pname version src; };
in
appimageTools.wrapType2 {
inherit pname version src;
extraInstallCommands = ''
install -m 444 -D ${appimageContents}/org.kde.krita.desktop $out/share/applications/krita.desktop
install -m 444 -D ${appimageContents}/krita.png $out/share/icons/hicolor/256x256/apps/krita.png
substituteInPlace $out/share/applications/krita.desktop \
--replace-fail "Exec=krita" "Exec=krita-appimage"
source ${makeWrapper}/nix-support/setup-hook
wrapProgram $out/bin/${pname} \
--set FONTCONFIG_FILE /etc/fonts/fonts.conf
'';
meta = {
description = "Digital painting and illustration application";
homepage = "https://krita.org";
license = lib.licenses.gpl3Only;
platforms = [ "x86_64-linux" ];
maintainers = with lib.maintainers; [ ];
};
}

View File

@@ -58,6 +58,9 @@ in
]; ];
bootspec.enable = true; bootspec.enable = true;
resumeDevice = "/dev/disk/by-partlabel/disk-${hostname}-root"; resumeDevice = "/dev/disk/by-partlabel/disk-${hostname}-root";
kernel.sysctl = {
"net.ipv4.ip_unprivileged_port_start" = 0;
};
}; };
systemd = { systemd = {

View File

@@ -11,5 +11,8 @@
./programs.nix ./programs.nix
./fonts.nix ./fonts.nix
./hardware.nix ./hardware.nix
./sound.nix
./virtualisation.nix
./time.nix
]; ];
} }

View File

@@ -5,6 +5,19 @@
packages = with pkgs; [ packages = with pkgs; [
nerd-fonts.jetbrains-mono nerd-fonts.jetbrains-mono
nerd-fonts.fira-code nerd-fonts.fira-code
noto-fonts
noto-fonts-cjk-sans
noto-fonts-color-emoji
liberation_ttf
]; ];
fontconfig = {
enable = true;
defaultFonts = {
monospace = [ "JetBrainsMono Nerd Font" ];
sansSerif = [ "Noto Sans" ];
serif = [ "Noto Serif" ];
};
};
}; };
} }

View File

@@ -8,5 +8,9 @@
enable = true; enable = true;
enable32Bit = true; enable32Bit = true;
}; };
opentabletdriver.enable = true;
uinput.enable = true;
}; };
boot.kernelModules = [ "uinput" ];
} }

View File

@@ -10,6 +10,7 @@
"/var/log" "/var/log"
"/var/lib/bluetooth" "/var/lib/bluetooth"
"/var/lib/networkmanager" "/var/lib/networkmanager"
"/var/lib/docker"
"/var/lib/nixos" "/var/lib/nixos"
"/var/lib/systemd/coredump" "/var/lib/systemd/coredump"
"/etc/NetworkManager/system-connections" "/etc/NetworkManager/system-connections"

View File

@@ -14,8 +14,40 @@
firewall = { firewall = {
enable = true; enable = true;
# Ports used by Local Send # Ports used by Local Send
allowedTCPPorts = [ 53317 ]; allowedTCPPorts = [
allowedUDPPorts = [ 53317 ]; 53317
8001
8002
8003
8004
];
allowedUDPPorts = [
53317
8001
8002
8003
8004
];
extraCommands = "
iptables -I nixos-fw 1 -i br+ -j ACCEPT
";
extraStopCommands = "
iptables -D nixos-fw -i br+ -j ACCEPT
";
};
hosts = {
"127.0.0.1" = [
"localhost"
"host.docker.internal"
"runcats.test"
"dev.runcats.test"
"landing.runcats.test"
"api.runcats.test"
"mail.runcats.test"
"kibana.runcats.test"
"img.runcats.test"
"docs.runcats.test"
];
}; };
}; };
} }

View File

@@ -15,6 +15,7 @@
gcc # C compiler gcc # C compiler
git # Git git # Git
gnome-calculator # Calculator TODO: Find a better TUI calculator gnome-calculator # Calculator TODO: Find a better TUI calculator
gnome-keyring
grim # Screenshot tool TODO: Figure out and configure grim # Screenshot tool TODO: Figure out and configure
gum # Terminal UI tool gum # Terminal UI tool
highlight # Syntax highlighting tool TODO: Hook up to ZSH highlight # Syntax highlighting tool TODO: Hook up to ZSH
@@ -29,14 +30,17 @@
lazygit # Git TUI lazygit # Git TUI
less # Pager less # Pager
libnotify # Notification daemon libnotify # Notification daemon
localsend # Local file sharing tool
makima # Key remapper for Linux TODO: Figure out and configure makima # Key remapper for Linux TODO: Figure out and configure
mako # Notification daemon mako # Notification daemon
neovim # Editor pkgs-unstable.neovim # Editor
nix-gaming.mo2installer nix-gaming.mo2installer
nodePackages.pnpm # JavaScript package manager (used by Neovim plugins) nodePackages.pnpm # JavaScript package manager (used by Neovim plugins)
tree-sitter # Incremental parsing tool for editors
nodejs_24 # JavaScript runtime nodejs_24 # JavaScript runtime
openssl # SSL/TLS toolkit openssl # SSL/TLS toolkit
p7zip # 7-Zip archiver p7zip # 7-Zip archiver
pipewire
pkgs-unstable.yazi # Terminal file manager pkgs-unstable.yazi # Terminal file manager
pywal16 # Image colorscheme generator pywal16 # Image colorscheme generator
qt6.qtwayland # qtwayland support qt6.qtwayland # qtwayland support
@@ -45,6 +49,7 @@
rustc # Rust compiler rustc # Rust compiler
rustfmt # Rust formatter rustfmt # Rust formatter
satty # Screenshot editor TODO: Figure out and configure satty # Screenshot editor TODO: Figure out and configure
seahorse # GNOME Keyring manager
sshpass # SSH with password in CLI, used by install scripts sshpass # SSH with password in CLI, used by install scripts
swaybg # Wayland wallpaper utility swaybg # Wayland wallpaper utility
tldr # Simplified man pages tldr # Simplified man pages

View File

@@ -1,24 +1,26 @@
{ pkgs, pkgs-unstable, hostname, ... }: { pkgs, pkgs-unstable, hostname, ... }:
{ {
programs = { programs = {
# Easy file sharing on local network # Easy file sharing on local network
localsend = { localsend = {
enable = true; enable = true;
openFirewall = true; openFirewall = true;
}; };
nix-ld.enable = true;
zsh = { zsh = {
enable = true; enable = true;
}; };
hyprland = { hyprland = {
enable = true; enable = true;
package = pkgs-unstable.hyprland; package = pkgs-unstable.hyprland;
portalPackage = pkgs-unstable.xdg-desktop-portal-hyprland;
xwayland.enable = true; xwayland.enable = true;
withUWSM = true; withUWSM = true;
}; };
steam = { steam = {
enable = hostname == "station"; enable = hostname == "station";
package = pkgs-unstable.steam;
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers

View File

@@ -26,6 +26,7 @@
autoLogin.user = "chris"; autoLogin.user = "chris";
defaultSession = "hyprland-uwsm"; defaultSession = "hyprland-uwsm";
}; };
gnome.gnome-keyring.enable = true;
}; };
security.pam.services.sddm.enableGnomeKeyring = true;
} }

11
system/sound.nix Normal file
View File

@@ -0,0 +1,11 @@
{ ... }:
{
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
jack.enable = true;
};
}

5
system/time.nix Normal file
View File

@@ -0,0 +1,5 @@
{...}:
{
time.timeZone = "Europe/London";
}

View File

@@ -4,12 +4,28 @@
users.users.chris = { users.users.chris = {
uid = 1000; uid = 1000;
isNormalUser = true; isNormalUser = true;
initialPassword = "changeme123"; hashedPasswordFile = "/persist/passwords/chris";
shell = pkgs.zsh; shell = pkgs.zsh;
extraGroups = [ extraGroups = [
"chris" "chris"
"wheel" "wheel"
"networkmanager" "networkmanager"
"docker"
]; ];
}; };
system.activationScripts = {
setupInitialPassword = {
text = ''
# Ensure the directory exists
mkdir -p /persist/passwords
# Copy the initial hash if the file is missing
if [ ! -f /persist/passwords/chris ]; then
cp ${../initial-configs/passwords/chris} /persist/passwords/chris
chmod 600 /persist/passwords/chris
chown root:root /persist/passwords/chris
fi
'';
};
};
} }

10
system/virtualisation.nix Normal file
View File

@@ -0,0 +1,10 @@
{ ... }:
{
virtualisation = {
docker = {
enable = true;
autoPrune.enable = true;
};
};
}