Compare commits
75 Commits
ac5df46bc0
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| b2458bbefc | |||
| 70302671ff | |||
| 0c78fd12a1 | |||
| 7a2a6ccd23 | |||
| ad70686b05 | |||
| 0c69a2c32e | |||
| 0c631272ea | |||
| b745739914 | |||
| 67b3c38f52 | |||
| e70a5473c4 | |||
| 96a17d3313 | |||
| ed2def05a2 | |||
| 0482012f79 | |||
| f5cd434ac0 | |||
| 48e51cb952 | |||
| 7463facb62 | |||
| d006e30a31 | |||
| 7aa9f6c785 | |||
| 55534e65ff | |||
| e934e19ecb | |||
| b4f21226ef | |||
| ca8931192d | |||
| c9fa01aaf0 | |||
| 6a5fd198b5 | |||
| 795e73be77 | |||
| b4c63b8b79 | |||
| 356b2a82aa | |||
| 448432926f | |||
| 1447336288 | |||
| 104ef84243 | |||
| 898868900c | |||
| 0fb5035fc1 | |||
| 59c4299ae7 | |||
| 921b0527ab | |||
| 36ed8aeff0 | |||
| 91f10904d2 | |||
| bc73d5ec6e | |||
| e8b47ea4a5 | |||
| b941192860 | |||
| 249e95075c | |||
| 876f7e6c3f | |||
| 6ed74b4d37 | |||
| 95c859b3f4 | |||
| 2325e48006 | |||
| 39ac040d98 | |||
| 608506ec3b | |||
| 204803689f | |||
| 43e0876595 | |||
| dea59a0c17 | |||
| 14043ea855 | |||
| b78485c0d6 | |||
| 1542c5ba2f | |||
| aea31984d0 | |||
| efe8575777 | |||
| 805e028eaa | |||
| 5885f86813 | |||
| e41939f2e1 | |||
| c1a50c2ce9 | |||
| f89861cad7 | |||
| 345f498212 | |||
| bfeca4e848 | |||
| 695e9d1037 | |||
| 4b83effbda | |||
| bad3d6bb03 | |||
| a9d032fa79 | |||
| 8c47bcea6a | |||
| b09edeb4b7 | |||
| 2b2e18eac3 | |||
| 19fcd662dd | |||
| bff2fe0ea1 | |||
| 94da53c296 | |||
| 16069417e9 | |||
| 95f1f15a68 | |||
| 51ab62ab2b | |||
| a3a1d1c730 |
3
.Trash-1000/info/nextcloud.cfg.trashinfo
Normal file
3
.Trash-1000/info/nextcloud.cfg.trashinfo
Normal file
@@ -0,0 +1,3 @@
|
||||
[Trash Info]
|
||||
Path=/home/chris/.config/nixos/initial-configs/nextcloud.cfg
|
||||
DeletionDate=2026-03-23T21:32:08
|
||||
BIN
default_wallpaper.png
Normal file
BIN
default_wallpaper.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 73 KiB |
183
flake.lock
generated
183
flake.lock
generated
@@ -25,11 +25,11 @@
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1772866605,
|
||||
"narHash": "sha256-r2ucLztXQFRu70VrGtNcL3PONyazxDPwq/hSn7opD+I=",
|
||||
"lastModified": 1774640361,
|
||||
"narHash": "sha256-5PLTPbnbtK0iDbsB9yFeHr5y/pv6/XzoVm/CDeXXt/c=",
|
||||
"owner": "abenz1267",
|
||||
"repo": "elephant",
|
||||
"rev": "1a52df65c679d17f9889abeb5593aa7ffc40f681",
|
||||
"rev": "d30652147d8e16ebc849b779b8ef495a894b0dd4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -46,11 +46,11 @@
|
||||
},
|
||||
"locked": {
|
||||
"dir": "pkgs/firefox-addons",
|
||||
"lastModified": 1772957263,
|
||||
"narHash": "sha256-Rg/pXdpJFK5pGwUEu0wop942QgbrEch+dWB05h3l7uc=",
|
||||
"lastModified": 1775448173,
|
||||
"narHash": "sha256-C6OJuD3A4KDNz4QaYedkYtXzKHPecG5YYyMGLq7UwY8=",
|
||||
"owner": "rycee",
|
||||
"repo": "nur-expressions",
|
||||
"rev": "be0d1413792f3811be7e0c4e9b17e94cbbe73fb9",
|
||||
"rev": "5b0fb7d54dea38c47e5c58058c166e790a0e0cf1",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
@@ -60,10 +60,44 @@
|
||||
"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": {
|
||||
"inputs": {
|
||||
"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": {
|
||||
"lastModified": 1763759067,
|
||||
"narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=",
|
||||
@@ -96,6 +130,51 @@
|
||||
"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": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@@ -103,11 +182,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1772633058,
|
||||
"narHash": "sha256-SO7JapRy2HPhgmqiLbfnW1kMx5rakPMKZ9z3wtRLQjI=",
|
||||
"lastModified": 1775425411,
|
||||
"narHash": "sha256-KY6HsebJHEe5nHOWP7ur09mb0drGxYSzE3rQxy62rJo=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "080657a04188aca25f8a6c70a0fb2ea7e37f1865",
|
||||
"rev": "0d02ec1d0a05f88ef9e74b516842900c41f0f2fe",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -157,6 +236,26 @@
|
||||
"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": {
|
||||
"locked": {
|
||||
"lastModified": 1768661221,
|
||||
@@ -174,6 +273,21 @@
|
||||
}
|
||||
},
|
||||
"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": {
|
||||
"lastModified": 1761765539,
|
||||
"narHash": "sha256-b0yj6kfvO8ApcSE+QmA6mUfu8IYG6/uU28OFn4PaC8M=",
|
||||
@@ -190,11 +304,11 @@
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1772773019,
|
||||
"narHash": "sha256-E1bxHxNKfDoQUuvriG71+f+s/NT0qWkImXsYZNFFfCs=",
|
||||
"lastModified": 1775036866,
|
||||
"narHash": "sha256-ZojAnPuCdy657PbTq5V0Y+AHKhZAIwSIT2cb8UgAz/U=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "aca4d95fce4914b3892661bcb80b8087293536c6",
|
||||
"rev": "6201e203d09599479a3b3450ed24fa81537ebc4e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -206,11 +320,11 @@
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1772773019,
|
||||
"narHash": "sha256-E1bxHxNKfDoQUuvriG71+f+s/NT0qWkImXsYZNFFfCs=",
|
||||
"lastModified": 1764242076,
|
||||
"narHash": "sha256-sKoIWfnijJ0+9e4wRvIgm/HgE27bzwQxcEmo2J/gNpI=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "aca4d95fce4914b3892661bcb80b8087293536c6",
|
||||
"rev": "2fad6eac6077f03fe109c4d4eb171cf96791faa4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -238,11 +352,27 @@
|
||||
},
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1772822230,
|
||||
"narHash": "sha256-yf3iYLGbGVlIthlQIk5/4/EQDZNNEmuqKZkQssMljuw=",
|
||||
"lastModified": 1775126147,
|
||||
"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",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "71caefce12ba78d84fe618cf61644dce01cf3a96",
|
||||
"rev": "36a601196c4ebf49e035270e10b2d103fe39076b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -259,7 +389,8 @@
|
||||
"firefox-addons": "firefox-addons",
|
||||
"home-manager": "home-manager",
|
||||
"impermanence": "impermanence",
|
||||
"nixpkgs": "nixpkgs_4",
|
||||
"nix-gaming": "nix-gaming",
|
||||
"nixpkgs": "nixpkgs_5",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||
"try-cli": "try-cli",
|
||||
"voxtype": "voxtype",
|
||||
@@ -313,7 +444,7 @@
|
||||
},
|
||||
"try-cli": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts",
|
||||
"flake-parts": "flake-parts_2",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
@@ -340,11 +471,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1772443545,
|
||||
"narHash": "sha256-oD3lameQXilKcgxQORR2l0+iDbnCO61+mjYD3MEVbuQ=",
|
||||
"lastModified": 1775048999,
|
||||
"narHash": "sha256-w35TNOdJcgMdt98XusY8DjmY4UPv3NQ7m+vR8oliWRU=",
|
||||
"owner": "peteonrails",
|
||||
"repo": "voxtype",
|
||||
"rev": "d011f3ff074a6a14c14e75fefb375a408e9e8887",
|
||||
"rev": "f292b6e1c9dbcfe4cdc7f781048db8be16c40c18",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -364,11 +495,11 @@
|
||||
"systems": "systems_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1772866748,
|
||||
"narHash": "sha256-Z18wVHImX/w9zoruMlSQuh4JcrJh28jxDwR96oevCzM=",
|
||||
"lastModified": 1773675699,
|
||||
"narHash": "sha256-GrormZ2KxchtCLuO90+5fioEQmlUCKBIil0Mzr9w0Iw=",
|
||||
"owner": "abenz1267",
|
||||
"repo": "walker",
|
||||
"rev": "ddaf9a02a81155c0de8b7b8db9341825afba319e",
|
||||
"rev": "d2702235710da3d7daf55c912ca7534261cf20f5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
||||
16
flake.nix
16
flake.nix
@@ -4,6 +4,7 @@
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
|
||||
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
nix-gaming.url = "github:fufexan/nix-gaming";
|
||||
disko.url = "github:nix-community/disko/latest";
|
||||
impermanence.url = "github:nix-community/impermanence";
|
||||
home-manager = {
|
||||
@@ -41,6 +42,7 @@
|
||||
self,
|
||||
nixpkgs,
|
||||
nixpkgs-unstable,
|
||||
nix-gaming,
|
||||
impermanence,
|
||||
disko,
|
||||
home-manager,
|
||||
@@ -52,8 +54,15 @@
|
||||
} @ inputs: let
|
||||
lib = nixpkgs.lib;
|
||||
system = "x86_64-linux";
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
pkgs-unstable = nixpkgs-unstable.legacyPackages.${system};
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
nix-gaming = inputs.nix-gaming.packages.${system};
|
||||
pkgs-unstable = import nixpkgs-unstable {
|
||||
inherit system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
|
||||
mkHost = hostname: nixpkgs.lib.nixosSystem {
|
||||
modules = [
|
||||
@@ -83,6 +92,7 @@
|
||||
inherit impermanence;
|
||||
inherit disko;
|
||||
inherit hostname;
|
||||
inherit nix-gaming;
|
||||
};
|
||||
};
|
||||
in {
|
||||
@@ -118,6 +128,8 @@
|
||||
"walker.cachix.org-1:fG8q+uAaMqhsMxWjwvk0IMb4mFPFLqHjuvfwQxE4oJM="
|
||||
"walker-git.cachix.org-1:vmC0ocfPWh0S/vRAQGtChuiZBTAe4wiKDeyyXM0/7pM="
|
||||
];
|
||||
substituters = ["https://nix-gaming.cachix.org"];
|
||||
trusted-public-keys = ["nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4="];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
imports = [
|
||||
./disko.nix
|
||||
./filesystem.nix
|
||||
./mounts.nix
|
||||
./${hostname}-hardware-configuration.nix
|
||||
];
|
||||
}
|
||||
|
||||
@@ -30,5 +30,18 @@
|
||||
"noauto"
|
||||
];
|
||||
};
|
||||
|
||||
"/home/chris/Games" = {
|
||||
device = "/dev/disk/by-label/Games";
|
||||
fsType = "ext4";
|
||||
options = [
|
||||
"defaults"
|
||||
"x-systemd.mount-timeout=5"
|
||||
"user"
|
||||
"exec"
|
||||
"x-systemd.automount"
|
||||
"noauto"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -4,6 +4,9 @@
|
||||
imports = [
|
||||
./packages.nix
|
||||
./programs.nix
|
||||
./hooks.nix
|
||||
./impermanence.nix
|
||||
./services.nix
|
||||
];
|
||||
home = {
|
||||
username = "chris";
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
activation = {
|
||||
home.activation = {
|
||||
setupDotfiles = lib.hm.dag.entryAfter ["writeBoundary"] ''
|
||||
if [[ -v DRY_RUN ]]; then
|
||||
echo "Dry run: Would bootstrap dotfiles from labs.scarif.space"
|
||||
@@ -61,16 +61,34 @@
|
||||
exit
|
||||
fi
|
||||
|
||||
DEST_FILE="$HOME/.config/Nextcloud/nextcloud.cfg"
|
||||
|
||||
if [ ! -f "$DEST_FILE" ]; then
|
||||
cp "${./initial-configs/nextcloud.cfg}" "$DEST_FILE"
|
||||
fi
|
||||
|
||||
DEST_FILE="$HOME/.config/sinew.in/Enpass.conf"
|
||||
|
||||
if [ ! -f "$DEST_FILE" ]; then
|
||||
cp "${./initial-configs/Enpass.conf}" "$DEST_FILE"
|
||||
mkdir -p "$(dirname "$DEST_FILE")"
|
||||
cp "${../initial-configs/Enpass.conf}" "$DEST_FILE"
|
||||
fi
|
||||
|
||||
DEST_FILE="$HOME/.config/obsidian/obsidian.json"
|
||||
|
||||
if [ ! -f "$DEST_FILE" ]; then
|
||||
mkdir -p "$(dirname "$DEST_FILE")"
|
||||
cp "${../initial-configs/obsidian.json}" "$DEST_FILE"
|
||||
fi
|
||||
'';
|
||||
setupDefaultWallpaper = lib.hm.dag.entryAfter ["writeBoundary"] ''
|
||||
if [[ -v DRY_RUN ]]; then
|
||||
echo "Dry run: Would copy wallpaper and initialise colour scheme if not set"
|
||||
exit
|
||||
fi
|
||||
|
||||
WALLPAPER_FILE="$HOME/.config/station/current/background"
|
||||
|
||||
if [ ! -f "$WALLPAPER_FILE" ]; then
|
||||
mkdir -p "$(dirname "$WALLPAPER_FILE")"
|
||||
ln -nsf ${../default_wallpaper.png} "$WALLPAPER_FILE"
|
||||
fi
|
||||
if [ ! -f "$HOME/.config/wal/colors" ]; then
|
||||
${pkgs.pywal16}/bin/wal -i "$WALLPAPER_FILE"
|
||||
fi
|
||||
'';
|
||||
};
|
||||
|
||||
@@ -1,31 +1,43 @@
|
||||
{ impermanence, ... }:
|
||||
|
||||
{
|
||||
imports = [ impermanence.nixosModules.impermanence ];
|
||||
#imports = [ impermanence.nixosModules.impermanence ];
|
||||
home.persistence."/persist" = {
|
||||
directories = [
|
||||
"Downloads"
|
||||
"Tower"
|
||||
"Code"
|
||||
".steam"
|
||||
".config/dotfiles"
|
||||
".cache/Nextcloud"
|
||||
".cache/wal"
|
||||
".cache/zsh"
|
||||
".mozilla/firefox"
|
||||
".config/nvim"
|
||||
".config/yazi/plugins"
|
||||
".config/nixos"
|
||||
".config/sinew.in"
|
||||
".config/.gemini"
|
||||
".config/Antigravity"
|
||||
".config/Nextcloud"
|
||||
".config/chromium"
|
||||
".config/dotfiles"
|
||||
".config/nixos"
|
||||
".config/Signal"
|
||||
".config/nvim"
|
||||
".config/obsidian"
|
||||
".config/sinew.in"
|
||||
".config/spotify"
|
||||
".config/superProductivity"
|
||||
".local/share/direnv"
|
||||
".local/share/nvim"
|
||||
".local/share/voxtype"
|
||||
".local/share/zoxide"
|
||||
".config/yazi/plugins"
|
||||
".local/share/android"
|
||||
".local/share/Enpass"
|
||||
".local/share/Steam"
|
||||
".local/share/direnv"
|
||||
".local/share/keyrings"
|
||||
".local/share/krita"
|
||||
".local/share/nvim"
|
||||
".local/share/station"
|
||||
".local/share/voxtype"
|
||||
".local/share/zoxide"
|
||||
".local/state/station"
|
||||
".local/state/wireplumber"
|
||||
".mozilla/firefox"
|
||||
".ssh"
|
||||
".steam"
|
||||
"Code"
|
||||
"Downloads"
|
||||
"Tower"
|
||||
];
|
||||
files = [
|
||||
".config/shell/.env"
|
||||
|
||||
@@ -1,4 +1,15 @@
|
||||
{ pkgs, try-cli, ... }:
|
||||
{ pkgs, pkgs-unstable, try-cli, nix-direnv, ... }:
|
||||
|
||||
let
|
||||
krita-appimage = pkgs.callPackage ../packages/krita.nix { };
|
||||
enpass = pkgs.enpass.overrideAttrs (oldAttrs: rec {
|
||||
version = "6.11.13.1957";
|
||||
src = pkgs.fetchurl {
|
||||
url = "https://apt.enpass.io/pool/main/e/enpass/enpass_${version}_amd64.deb";
|
||||
sha256 = "2d8c90643851591aff41057b380a7e87bb839bf5c5aa0ca1456144e9996c902a";
|
||||
};
|
||||
});
|
||||
in
|
||||
|
||||
{
|
||||
nixpkgs = {
|
||||
@@ -13,24 +24,22 @@
|
||||
};
|
||||
};
|
||||
home.packages = with pkgs; [
|
||||
antigravity # Gemini AI coding assistant
|
||||
pkgs-unstable.antigravity # Gemini AI coding assistant
|
||||
bluetui # Bluetooth TUI
|
||||
direnv # Directory environment manager
|
||||
enpass # Password manager
|
||||
enpass-cli # Enpass CLI tool
|
||||
expressvpn # VPN
|
||||
ffmpeg # Video tools
|
||||
ffmpegthumbnailer # Video thumbnailer
|
||||
pkgs-unstable.gemini-cli # Gemini AI CLI tool
|
||||
ghostty # Terminal emulator
|
||||
gimp # Image manipulation software
|
||||
gpu-screen-recorder # GPU screen recorder for Linux
|
||||
imv # Image viewer
|
||||
inkscape # Vector graphics software
|
||||
kdePackages.wacomtablet # Wacom tablet manager
|
||||
krita # Digital art software
|
||||
krita-appimage # Custom digital art software (from AppImage)
|
||||
libreoffice-fresh # Office suite
|
||||
lunar-client # Minecraft launcher
|
||||
mailspring # Mail client
|
||||
mpv # Video player
|
||||
nautilus # Document viewer
|
||||
nextcloud-client # Nextcloud sync client
|
||||
@@ -40,11 +49,31 @@
|
||||
super-productivity # Task app
|
||||
sxiv # Minimal image viewer
|
||||
tenacity # Audio software
|
||||
thunderbird # Mail client
|
||||
try-cli.packages.${pkgs.system}.default # Try CLI tool
|
||||
wally-cli # Keyboard flasher
|
||||
wiremix # Audio mixer TUI
|
||||
xournalpp # Handwriting note-taking software
|
||||
yad # For creating dialogs during install script
|
||||
zenity # For creating dialogs during install script
|
||||
zathura # Minimal PDF viewer
|
||||
];
|
||||
xdg.desktopEntries.enpass = {
|
||||
type = "Application";
|
||||
name = "Enpass";
|
||||
genericName = "Enpass Password Manager";
|
||||
icon = "enpass";
|
||||
terminal = false;
|
||||
exec = "env QT_SCREEN_SCALE_FACTORS=2 ${enpass}/bin/Enpass %U";
|
||||
mimeType = [
|
||||
"x-scheme-handler/enpassauth"
|
||||
"x-scheme-handler/enpasscard"
|
||||
"x-scheme-handler/enpassstart"
|
||||
"x-scheme-handler/enpass"
|
||||
"x-scheme-handler/cloudkit-7adb8cc64f.in.sinew.walletx"
|
||||
"x-scheme-handler/enpassshare"
|
||||
"application/enpasscard"
|
||||
];
|
||||
categories = [ "Utility" ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -15,6 +15,10 @@
|
||||
Status = "locked";
|
||||
};
|
||||
in {
|
||||
direnv = {
|
||||
enable = true;
|
||||
nix-direnv.enable = true;
|
||||
};
|
||||
walker = {
|
||||
enable = true;
|
||||
config = {};
|
||||
@@ -23,6 +27,10 @@
|
||||
elephant = {
|
||||
enable = true;
|
||||
};
|
||||
waybar = {
|
||||
enable = true;
|
||||
systemd.enable = true;
|
||||
};
|
||||
voxtype = {
|
||||
enable = true;
|
||||
package = voxtype.packages.${pkgs.system}.vulkan;
|
||||
@@ -123,5 +131,6 @@
|
||||
};
|
||||
};
|
||||
xdg.configFile."voxtype/config.toml".enable = false;
|
||||
home.file.".icons/default".source = "${pkgs.vimix-cursors}/share/icons/Vimix-white-cursors";
|
||||
home.file.".mozilla/firefox/default/search.json.mozlz4".force = lib.mkForce true;
|
||||
}
|
||||
|
||||
13
initial-configs/obsidian.json
Normal file
13
initial-configs/obsidian.json
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"vaults": {
|
||||
"default": {
|
||||
"path": "/home/chris/Tower/Documents/Notes",
|
||||
"ts": 1773591361639,
|
||||
"open": true
|
||||
},
|
||||
"rpg": {
|
||||
"path": "/home/chris/Tower/Documents/Areas/RPG",
|
||||
"ts": 1773591361639
|
||||
}
|
||||
}
|
||||
}
|
||||
1
initial-configs/passwords/chris
Normal file
1
initial-configs/passwords/chris
Normal file
@@ -0,0 +1 @@
|
||||
$6$MCVd.EUOYYB0A1eS$S1/gSfAq1c2dBCofvJp9RtW.o5mLi78h0Y39LABIeIauPRjlEny/1R5aXEA7uPrZ3TPxhnYOYxTdbCi0imFZp.
|
||||
40
packages/krita.nix
Normal file
40
packages/krita.nix
Normal 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; [ ];
|
||||
};
|
||||
}
|
||||
@@ -58,6 +58,9 @@ in
|
||||
];
|
||||
bootspec.enable = true;
|
||||
resumeDevice = "/dev/disk/by-partlabel/disk-${hostname}-root";
|
||||
kernel.sysctl = {
|
||||
"net.ipv4.ip_unprivileged_port_start" = 0;
|
||||
};
|
||||
};
|
||||
|
||||
systemd = {
|
||||
|
||||
@@ -11,5 +11,8 @@
|
||||
./programs.nix
|
||||
./fonts.nix
|
||||
./hardware.nix
|
||||
./sound.nix
|
||||
./virtualisation.nix
|
||||
./time.nix
|
||||
];
|
||||
}
|
||||
|
||||
@@ -5,6 +5,19 @@
|
||||
packages = with pkgs; [
|
||||
nerd-fonts.jetbrains-mono
|
||||
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" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -8,5 +8,9 @@
|
||||
enable = true;
|
||||
enable32Bit = true;
|
||||
};
|
||||
|
||||
opentabletdriver.enable = true;
|
||||
uinput.enable = true;
|
||||
};
|
||||
boot.kernelModules = [ "uinput" ];
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
"/var/log"
|
||||
"/var/lib/bluetooth"
|
||||
"/var/lib/networkmanager"
|
||||
"/var/lib/docker"
|
||||
"/var/lib/nixos"
|
||||
"/var/lib/systemd/coredump"
|
||||
"/etc/NetworkManager/system-connections"
|
||||
|
||||
@@ -14,8 +14,40 @@
|
||||
firewall = {
|
||||
enable = true;
|
||||
# Ports used by Local Send
|
||||
allowedTCPPorts = [ 53317 ];
|
||||
allowedUDPPorts = [ 53317 ];
|
||||
allowedTCPPorts = [
|
||||
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"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ pkgs, pkgs-unstable, ... }:
|
||||
{ pkgs, pkgs-unstable, nix-gaming, ... }:
|
||||
|
||||
{
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
@@ -15,9 +15,11 @@
|
||||
gcc # C compiler
|
||||
git # Git
|
||||
gnome-calculator # Calculator TODO: Find a better TUI calculator
|
||||
gnome-keyring
|
||||
grim # Screenshot tool TODO: Figure out and configure
|
||||
gum # Terminal UI tool
|
||||
highlight # Syntax highlighting tool TODO: Hook up to ZSH
|
||||
hyprcursor # Hyprland cursor theme support
|
||||
hypridle # Idle daemon for Hyprland
|
||||
hyprlock # Screen locker for Hyprland
|
||||
hyprpaper # Wallpaper utility for Hyprland TODO: Check if necessary with swaybg
|
||||
@@ -28,13 +30,17 @@
|
||||
lazygit # Git TUI
|
||||
less # Pager
|
||||
libnotify # Notification daemon
|
||||
localsend # Local file sharing tool
|
||||
makima # Key remapper for Linux TODO: Figure out and configure
|
||||
mako # Notification daemon
|
||||
neovim # Editor
|
||||
pkgs-unstable.neovim # Editor
|
||||
nix-gaming.mo2installer
|
||||
nodePackages.pnpm # JavaScript package manager (used by Neovim plugins)
|
||||
tree-sitter # Incremental parsing tool for editors
|
||||
nodejs_24 # JavaScript runtime
|
||||
openssl # SSL/TLS toolkit
|
||||
p7zip # 7-Zip archiver
|
||||
pipewire
|
||||
pkgs-unstable.yazi # Terminal file manager
|
||||
pywal16 # Image colorscheme generator
|
||||
qt6.qtwayland # qtwayland support
|
||||
@@ -43,6 +49,8 @@
|
||||
rustc # Rust compiler
|
||||
rustfmt # Rust formatter
|
||||
satty # Screenshot editor TODO: Figure out and configure
|
||||
seahorse # GNOME Keyring manager
|
||||
sshpass # SSH with password in CLI, used by install scripts
|
||||
swaybg # Wayland wallpaper utility
|
||||
tldr # Simplified man pages
|
||||
tmux # Terminal multiplexer
|
||||
@@ -53,6 +61,8 @@
|
||||
v4l-utils # Video4Linux utilities TODO: Figure out why I need this
|
||||
waybar # Status bar for Hyprland
|
||||
wget # Download tool
|
||||
pkgs-unstable.wineWow64Packages.stable # Wine packages for 64-bit and 32-bit support
|
||||
pkgs-unstable.winetricks # Windows compatibility tool
|
||||
wl-clipboard # Wayland clipboard manager
|
||||
wlogout # Wayland logout menu
|
||||
xdg-terminal-exec # XDG terminal execution utility
|
||||
|
||||
@@ -1,27 +1,30 @@
|
||||
{ pkgs, pkgs-unstable, hostname, ... }:
|
||||
|
||||
{
|
||||
|
||||
programs = {
|
||||
# Easy file sharing on local network
|
||||
localsend = {
|
||||
enable = true;
|
||||
openFirewall = true;
|
||||
};
|
||||
nix-ld.enable = true;
|
||||
zsh = {
|
||||
enable = true;
|
||||
};
|
||||
hyprland = {
|
||||
enable = true;
|
||||
package = pkgs-unstable.hyprland;
|
||||
portalPackage = pkgs-unstable.xdg-desktop-portal-hyprland;
|
||||
xwayland.enable = true;
|
||||
withUWSM = true;
|
||||
};
|
||||
steam = {
|
||||
enable = hostname == "station";
|
||||
package = pkgs-unstable.steam;
|
||||
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
|
||||
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
|
||||
protontricks.enable = true;
|
||||
};
|
||||
chromium = {
|
||||
enable = true;
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
autoLogin.user = "chris";
|
||||
defaultSession = "hyprland-uwsm";
|
||||
};
|
||||
gnome.gnome-keyring.enable = true;
|
||||
};
|
||||
|
||||
security.pam.services.sddm.enableGnomeKeyring = true;
|
||||
}
|
||||
|
||||
11
system/sound.nix
Normal file
11
system/sound.nix
Normal 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
5
system/time.nix
Normal file
@@ -0,0 +1,5 @@
|
||||
{...}:
|
||||
|
||||
{
|
||||
time.timeZone = "Europe/London";
|
||||
}
|
||||
@@ -4,12 +4,28 @@
|
||||
users.users.chris = {
|
||||
uid = 1000;
|
||||
isNormalUser = true;
|
||||
initialPassword = "changeme123";
|
||||
hashedPasswordFile = "/persist/passwords/chris";
|
||||
shell = pkgs.zsh;
|
||||
extraGroups = [
|
||||
"chris"
|
||||
"wheel"
|
||||
"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
10
system/virtualisation.nix
Normal file
@@ -0,0 +1,10 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
virtualisation = {
|
||||
docker = {
|
||||
enable = true;
|
||||
autoPrune.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user