blob: 9167ae87f60fa530ed79726ee463107e90c1fd42 [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
101 # Programming Folder Creation
102 home.file = {
103 "Programming/README.md" = {
104 text = ''
105 # Structure
106 [Org]/[Language]/[project]
107
108 Both Org and Language should be capitalized however project may follow any name scheme.
109 '';
110 };
111 "Programming/Personal/README.md" = {
112 text = ''
113 # What is this directory for?
114 This directory stores all my personal programming projects
115
116 # Git config modifications
117 user.name = "Samuel Shuert"
118 user.email = "me@thecoded.prof"
119 '';
120 };
121 "Programming/Auxolotl/README.md" = {
122 text = ''
123 # What is this directory for?
124 This directory stores all Auxolotl related programming projects
125
126 # Git config modifications
127 user.name = "Samuel Shuert"
128 user.email = "me@thecoded.prof"
129 '';
130 };
131 "Programming/Chimera/README.md" = {
132 text = ''
133 # What is this directory for?
134 This directory stores all Chimera related programming projects
135
136 # Git config modifications
137 user.name = "Samuel Shuert"
138 user.email = "me@thecoded.prof"
139 '';
140 };
141 "Programming/Clicks/README.md" = {
142 text = ''
143 # What is this directory for?
144 This directory stores all Clicks related programming projects
145
146 # Git config modifications
147 user.name = "Samuel Shuert"
148 user.email = "coded@clicks.codes"
149 '';
150 };
151 };
152
153 # Git Config
154 programs.git.includes = [
155 {
156 condition = "gitdir:~/Programming/Chimera/**";
157
158 contents = {
159 user.name = "Samuel Shuert";
160 user.email = "me@thecoded.prof";
161 };
162 }
163 {
164 condition = "gitdir:~/Programming/Clicks/**";
165
166 contents = {
167 user.name = "Samuel Shuert";
168 user.email = "coded@clicks.codes";
169 };
170 }
171 {
172 condition = "gitdir:~/Programming/Personal/**";
173
174 contents = {
175 user.name = "Samuel Shuert";
176 user.email = "me@thecoded.prof";
177 };
178 }
179 {
180 condition = "gitdir:~/Programming/Auxolotl/**";
181
182 contents = {
183 user.name = "Samuel Shuert";
184 user.email = "me@thecoded.prof";
185 };
186 }
187 ];
188
189 # Additional Kitty Config
190 programs.kitty.extraConfig = ''
191 map kitty_mod+enter launch --cwd=current --type=window
192 map kitty_mod+t launch --cwd=current --type=tab
193 '';
194
195 # Additional Packages
196 home.packages = [ pkgs.foliate pkgs.openrgb ];
197 };
198}