blob: 757895042f1fe621147077ebc2e02c1b210e5b4c [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
101 ];
102 };
103
104 chimera.shell = {
105 bash.enable = true;
106 defaultAliases.enable = true;
107 replacements.defaultEnable = true;
108 replacements.bat.enable = false;
109 usefulPackages.enable = true;
110 };
111
112 chimera.editor = {
113 ed = {
114 enable = true;
115 prompt = ":";
116 defaultEditor = false;
117 };
118
119 neovim = {
120 enable = true;
121 defaultEditor = false;
122 };
123
124 emacs.enable = true;
125
126 editorconfig.enable = true;
127 };
128
129 chimera.yubikey.enable = true;
130
131 chimera.input = {
132 keyboard = {
133 layout = "us";
134 variant = "dvorak";
135 };
136 mouse.scrolling.natural = true;
137 };
138
139 chimera.nextcloud.enable = true;
140
141 programs.bash.bashrcExtra = ''
142 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\]"
143 '';
144
145 programs.kitty.extraConfig = ''
146 map kitty_mod+enter launch --cwd=current --type=window
147 map kitty_mod+t launch --cwd=current --type=tab
148 '';
149 });
150}