blob: 7f7823d688715a8a4da0c9f52a3f69c86da71084 [file] [log] [blame]
Samuel Shuertcc979af2024-06-20 21:07:22 -04001{
2 inputs,
3 config,
4 lib,
5 pkgs,
6 ...
7}:
8let
9 cfg = config.chimera.users.coded;
10in {
11 options.chimera.users.coded.enable = lib.mkEnableOption "Enable Chimera options for coded";
12
13 config = lib.mkIf cfg.enable {
14 # Chimera Config
15 chimera.nextcloud.enable = true;
16
17 chimera.shell.rebuildFlakePath = "/home/coded/Programming/Chimera/Nix/NixFiles";
18
19 chimera.shell = {
20 zsh.enable = true;
21 starship.enable = true;
22
23 defaultAliases.enable = true;
24 usefulPackages.enable = true;
25
26 replacements = {
27 defaultEnable = true;
28 bat.enable = false;
29 atuin.enableUpArrow = true;
30 };
31 };
32
33 chimera.git = {
34 delta.enable = true;
35 stgit.enable = true;
36 gitReview.enable = true;
37 auth.clicksUsername = "coded";
38 gpg.enable = true;
39 };
40
41 chimera.input.touchpad = {
42 enable = true;
43 scrolling.natural = true;
44 };
45
46 chimera.browser.firefox = {
47 enable = true;
48 extensions = {
49 bitwarden.enable = true;
50 youtube = {
51 sponsorBlock.enable = true;
52 returnDislike.enable = true;
53 deArrow.enable = true;
54 };
55 reactDevTools.enable = true;
56 adnauseam.enable = true;
57 };
58 search = {
59 enable = true;
60 extensions.enable = true;
61 bookmarks.enable = true;
62 engines = [
63 "Kagi"
64 "MDN"
65 "NixOS Options"
66 "NixOS Packages"
67 "Home-Manager Options"
68 "Noogle"
69 "GitHub"
70 "Arch Wiki"
71 "Gentoo Wiki"
72 ];
73 };
74 extraExtensions = [
75 config.nur.repos.rycee.firefox-addons.refined-github
76 config.nur.repos.rycee.firefox-addons.new-tab-override
77 ];
78 };
79
80 chimera.games.minecraft.enable = true;
81
82 chimera.editor = {
83 neovim.enable = true;
84 editorconfig.enable = true;
85 emacs = {
86 enable = true;
87 defaultEditor = false;
88 };
89 };
90
91 chimera.theme.font.nerdFontGlyphs.enable = true;
92
93 chimera.theme.catppuccin = {
94 enable = true;
95 style = "Macchiato";
96 color = "Blue";
97 };
98
99 chimera.yubikey.enable = true;
100
Samuel Shuert35d5f652024-07-01 13:09:28 -0400101 chimera.niri.startupCommands = [
102 {
103 command = [ "nextcloud" ];
104 }
105 ];
106
Samuel Shuertcc979af2024-06-20 21:07:22 -0400107 # Programming Folder Creation
108 home.file = {
109 "Programming/README.md" = {
110 text = ''
111 # Structure
112 [Org]/[Language]/[project]
113
114 Both Org and Language should be capitalized however project may follow any name scheme.
115 '';
116 };
117 "Programming/Personal/README.md" = {
118 text = ''
119 # What is this directory for?
120 This directory stores all my personal programming projects
121
122 # Git config modifications
123 user.name = "Samuel Shuert"
124 user.email = "me@thecoded.prof"
125 '';
126 };
127 "Programming/Auxolotl/README.md" = {
128 text = ''
129 # What is this directory for?
130 This directory stores all Auxolotl related programming projects
131
132 # Git config modifications
133 user.name = "Samuel Shuert"
134 user.email = "me@thecoded.prof"
135 '';
136 };
137 "Programming/Chimera/README.md" = {
138 text = ''
139 # What is this directory for?
140 This directory stores all Chimera related programming projects
141
142 # Git config modifications
143 user.name = "Samuel Shuert"
144 user.email = "me@thecoded.prof"
145 '';
146 };
147 "Programming/Clicks/README.md" = {
148 text = ''
149 # What is this directory for?
150 This directory stores all Clicks related programming projects
151
152 # Git config modifications
153 user.name = "Samuel Shuert"
154 user.email = "coded@clicks.codes"
155 '';
156 };
157 };
158
159 # Git Config
160 programs.git.includes = [
161 {
162 condition = "gitdir:~/Programming/Chimera/**";
163
164 contents = {
165 user.name = "Samuel Shuert";
166 user.email = "me@thecoded.prof";
167 };
168 }
169 {
170 condition = "gitdir:~/Programming/Clicks/**";
171
172 contents = {
173 user.name = "Samuel Shuert";
174 user.email = "coded@clicks.codes";
175 };
176 }
177 {
178 condition = "gitdir:~/Programming/Personal/**";
179
180 contents = {
181 user.name = "Samuel Shuert";
182 user.email = "me@thecoded.prof";
183 };
184 }
185 {
186 condition = "gitdir:~/Programming/Auxolotl/**";
187
188 contents = {
189 user.name = "Samuel Shuert";
190 user.email = "me@thecoded.prof";
191 };
192 }
193 ];
194
195 # Additional Kitty Config
196 programs.kitty.extraConfig = ''
197 map kitty_mod+enter launch --cwd=current --type=window
198 map kitty_mod+t launch --cwd=current --type=tab
199 '';
200
201 # Additional Packages
202 home.packages = [ pkgs.foliate pkgs.openrgb ];
203 };
204}