blob: 677ed3438d7ef556fda17186d8be8640d1c4e852 [file] [log] [blame]
Skyler Greya2c02ac2024-03-01 21:10:17 +00001{ config, lib, pkgs, ... }:
2{
3 options.chimera.minion.enable = lib.mkEnableOption "Enable Chimera options for minion";
4
5 config = lib.mkIf config.chimera.minion.enable (let
6 git_emails = {
7 personal = "skyler3665@gmail.com";
8 collabora = "skyler.grey@collabora.com";
9 transplace = "minion@trans.gg";
10 clicks = "minion@clicks.codes";
11 };
12
13 git_email_to_include_option = name: email: {
14 condition = "gitdir:~/Code/${name}/";
15 contents.user.email = email;
16 };
17
18 git_email_to_alias_value = email: "config user.email ${email}";
19 in {
20 chimera.shell.rebuildFlakePath = "/home/skyler/Code/nix/configs/personal";
21
22 programs.git.includes =
23 lib.mapAttrsToList
24 git_email_to_include_option
25 git_emails;
26
27 programs.git.extraConfig.alias = {
28 recommit = "!git commit --verbose -eF $(git rev-parse --git-dir)/COMMIT_EDITMSG";
29 graph = "log --graph --oneline --decorate";
30 hash = "rev-parse HEAD";
31
32 stg-clean = ''!for PATCH in $(stg series -PU); do CHANGE_ID=$(git show -s --format="%(trailers:key=Change-Id,valueonly,separator=%x2C )" $(stg id $PATCH)); git log --format="%(trailers:key=Change-Id,valueonly,separator=%x2C )" | grep -qFx "$CHANGE_ID" && stg delete $PATCH; done'';
33 } // (builtins.mapAttrs (_name: email: git_email_to_alias_value email) git_emails);
34
35 home.shellAliases = {
36 gpg-card-switch = ''for keygrip in $(gpg --with-keygrip --list-secret-keys 76E0B09A741C4089522111E5F27E3E5922772E7A | grep Keygrip | sed "1d" | sed "s/ *Keygrip = //"); do gpg-connect-agent "delete_key $keygrip" /bye > /dev/null; done; gpg --card-status;'';
37 };
38
39 programs.git.extraConfig.user = {
40 name = "Skyler Grey";
41 signingkey = "7C868112B5390C5C";
42 };
43
44 chimera.git = {
45 delta.enable = true;
46 stgit.enable = true;
47 gitReview.enable = true;
48 auth.clicksUsername = "minion";
49 gpg.enable = true;
50 };
51
52 chimera.theme = {
53 font.nerdFontGlyphs.enable = true;
54 catppuccin = {
55 enable = true;
56 style = "Latte";
57 color = "Maroon";
58 };
59 };
60
61 chimera.browser.chromium = {
62 enable = true;
63 extensions = {
64 ublockOrigin.enable = true;
65 bitwarden.enable = true;
66 };
67 };
68
69 chimera.browser.firefox = {
70 enable = true;
71 extensions = {
72 bitwarden.enable = true;
73 youtube = {
74 sponsorBlock.enable = true;
75 returnDislike.enable = true;
76 deArrow.enable = true;
77 };
78 reactDevTools.enable = true;
79 adnauseam.enable = true;
80 };
81 search = {
82 enable = true;
83 extensions.enable = true;
84 bookmarks.enable = true;
85 engines = [
86 "Kagi"
87 "MDN"
88 "NixOS Options"
89 "NixOS Packages"
90 "Home-Manager Options"
91 "Noogle"
92 "GitHub"
93 "Docs.rs"
94 "Crates.io"
95 "Arch Wiki"
96 "Gentoo Wiki"
97 ];
98 };
99 extraExtensions = [
100 config.nur.repos.rycee.firefox-addons.sidebery
Skyler Greyf7f83f42024-05-24 23:48:39 +0000101 config.nur.repos.rycee.firefox-addons.gitpod
102 config.nur.repos.rycee.firefox-addons.refined-github
Skyler Greya2c02ac2024-03-01 21:10:17 +0000103 ];
104 };
105
106 chimera.shell = {
107 bash.enable = true;
108 defaultAliases.enable = true;
109 replacements.defaultEnable = true;
110 replacements.bat.enable = false;
111 usefulPackages.enable = true;
112 };
113
114 chimera.editor = {
115 ed = {
116 enable = true;
117 prompt = ":";
118 defaultEditor = false;
119 };
120
121 neovim = {
122 enable = true;
123 defaultEditor = false;
124 };
125
126 emacs.enable = true;
127
128 editorconfig.enable = true;
129 };
130
131 chimera.yubikey.enable = true;
132
133 chimera.input = {
134 keyboard = {
135 layout = "us";
136 variant = "dvorak";
137 };
138 mouse.scrolling.natural = true;
139 };
140
141 chimera.nextcloud.enable = true;
142
143 programs.bash.bashrcExtra = ''
144 export PS1="\[\e]133;k;start_kitty\a\]\[\e]133;A\a\]\[\e]133;k;end_kitty\a\]\n\[\e]133;k;start_secondary_kitty\a\]\[\e]133;A;k=s\a\]\[\e]133;k;end_secondary_kitty\a\]\[\033[1;35m\][\[\e]0;\u@\h: \w\a\]\u@\h:\w]\$\[\033[0m\] \[\e]133;k;start_suffix_kitty\a\]\[\e[5 q\]\[\e]2;\w\a\]\[\e]133;k;end_suffix_kitty\a\]"
145 '';
146
147 programs.kitty.extraConfig = ''
148 map kitty_mod+enter launch --cwd=current --type=window
149 map kitty_mod+t launch --cwd=current --type=tab
150 '';
151 });
152}