configs
1{
2 pkgs,
3 ...
4}:
5{
6 users.defaultUserShell = pkgs.zsh;
7
8 users.users.penny = {
9 description = "Blu";
10 isNormalUser = true;
11 extraGroups = [
12 "networkmanager"
13 "wheel"
14 ];
15 packages = with pkgs; [
16 tree
17 ];
18 };
19
20 programs.firefox = {
21 enable = true;
22 };
23
24 programs.git = {
25 enable = true;
26 config = {
27 user.name = "penny";
28 user.email = "penny@hexmani.ac";
29 init = {
30 defaultBranch = "main";
31 };
32 };
33 };
34
35 programs.zsh = {
36 enable = true;
37 enableCompletion = true;
38 autosuggestions.enable = true;
39 syntaxHighlighting.enable = true;
40 ohMyZsh = {
41 enable = true;
42 theme = "af-magic";
43 plugins = [
44 "bun"
45 "git"
46 "jj"
47 "mix"
48 "node"
49 "npm"
50 "ssh"
51 "sudo"
52 "systemd"
53 "tailscale"
54 "yarn"
55 ];
56 };
57 };
58
59 home-manager.useUserPackages = true;
60 home-manager.users.penny =
61 { pkgs, ... }:
62 let
63 pkgsUnstable = import <nixos-unstable> { };
64 oldZed = # fix later and use flakes or something
65 import
66 (pkgs.fetchFromGitHub {
67 owner = "NixOS";
68 repo = "nixpkgs";
69 rev = "64cd410b141f697c3db5ea25e110a9386fdc46f5";
70 sha256 = "sha256-8uhnBs+EqKW2raNZAV90yFXH9vcn81w2oC+Aso68Cuw=";
71 })
72 {
73 # fix later
74 inherit (pkgs) system;
75 };
76 in
77 {
78 nixpkgs.config = {
79 allowUnfree = true;
80 allowUnfreePredicate = (_: true);
81 };
82
83 # todo: not this shit
84 home.packages =
85 with pkgs;
86 [
87 bun
88 cabal-install
89 cargo
90 cider-2
91 crystal
92 #discord
93 dmd
94 elixir
95 elixir-ls
96 erlang
97 erlang-language-platform
98 go
99 ghostty
100 ghc
101 htop
102 jetbrains-toolbox
103 jujutsu
104 kdePackages.kdeconnect-kde
105 kotlin
106 lmstudio
107 mpv
108 newsflash
109 nil
110 nixd
111 nodejs
112 opencode
113 openjdk
114 plex-desktop
115 plexamp
116 pnpm
117 ruby
118 rustc
119 signal-desktop
120 uv
121 vlang
122 vscodium
123 yarn
124 zed-editor
125 zig
126 ]
127 ++ (with pkgsUnstable; [
128 gleam
129 ]);
130
131 home.stateVersion = "25.11";
132 };
133}