blob: ac2fa0a8db7afa8a3d41c3f780c13e992d45fee5 [file] [log] [blame]
{ inputs, config, lib, pkgs, ... }:
{
options.chimera.users.minion.enable = lib.mkEnableOption "Enable Chimera options for minion";
config = lib.mkIf config.chimera.users.minion.enable (let
git_emails = {
personal = "sky@a.starrysky.fyi";
collabora = "skyler.grey@collabora.com";
transplace = "minion@trans.gg";
clicks = "minion@clicks.codes";
};
git_email_to_include_option = name: email: {
condition = "gitdir:~/Code/${name}/";
contents.user.email = email;
};
git_email_to_alias_value = email: "config user.email ${email}";
in {
chimera.shell.rebuildFlakePath = "/home/${config.home.username}/Code/chimera/config";
home.packages = [
];
programs.git.includes =
lib.mapAttrsToList
git_email_to_include_option
git_emails;
programs.git.extraConfig.alias = {
recommit = "!git commit --verbose -eF $(git rev-parse --git-dir)/COMMIT_EDITMSG";
graph = "log --graph --oneline --decorate";
hash = "rev-parse HEAD";
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'';
} // (builtins.mapAttrs (_name: email: git_email_to_alias_value email) git_emails);
home.shellAliases = {
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;'';
};
programs.git.extraConfig.user = {
name = "Skyler Grey";
signingkey = "7C868112B5390C5C";
};
chimera.git = {
delta.enable = true;
stgit.enable = true;
jj.enable = true;
radicle.enable = true;
gitReview.enable = true;
auth.clicksUsername = "minion";
gpg.enable = true;
};
chimera.theme = {
font.nerdFontGlyphs.enable = true;
catppuccin = {
enable = true;
style = "Latte";
color = "Maroon";
};
};
chimera.browser.chromium = {
enable = true;
extensions = {
ublockOrigin.enable = true;
bitwarden.enable = true;
};
};
chimera.browser.firefox = {
enable = true;
extensions = {
bitwarden.enable = true;
youtube = {
sponsorBlock.enable = true;
returnDislike.enable = true;
deArrow.enable = true;
};
reactDevTools.enable = true;
adnauseam.enable = true;
};
search = {
enable = true;
extensions.enable = true;
bookmarks.enable = true;
engines = [
"Kagi"
"MDN"
"NixOS Options"
"NixOS Packages"
"Home-Manager Options"
"Noogle"
"GitHub"
"Docs.rs"
"Crates.io"
"Arch Wiki"
"Gentoo Wiki"
];
};
extraExtensions = [
config.nur.repos.rycee.firefox-addons.sidebery
config.nur.repos.rycee.firefox-addons.gitpod
config.nur.repos.rycee.firefox-addons.refined-github
];
};
programs.firefox.profiles.chimera.userChrome = ''
@import "${inputs.firefox-sidebery-gnome}/userChrome.css";
#TabsToolbar {
display: none;
}
#sidebar-header {
display: none;
}
/* Hide "Sign in to sync" */
#PanelUI-fxa-status {
display: none !important;
}
#appMenu-fxa-status2, #appMenu-fxa-separator {
display: none !important;
}
'';
programs.firefox.profiles.chimera.userContent = ''
@import "${inputs.firefox-sidebery-gnome}/userContent.css";
@-moz-document url("about:preferences") {
#category-sync { display:none!important; }
#category-more-from-mozilla { display:none!important; }
}
'';
programs.firefox.profiles.chimera.settings = {
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
"svg.context-properties.content.enabled" = true;
"browser.uidensity" = 0;
"browser.theme.dark-private-windows" = false;
"widget.gtk.rounded-bottom-corners.enabled" = true;
};
chimera.shell = {
tsStatus.enable = true;
bash.enable = true;
defaultAliases.enable = true;
replacements.defaultEnable = true;
replacements.bat.enable = false;
replacements.glow.enable = false;
usefulPackages.enable = true;
};
chimera.editor = {
ed = {
enable = true;
prompt = ":";
defaultEditor = false;
};
neovim = {
enable = true;
defaultEditor = false;
};
emacs.enable = true;
editorconfig.enable = true;
};
chimera.yubikey.enable = true;
chimera.input = {
keyboard = {
layout = "us";
variant = "dvorak";
};
mouse.scrolling.natural = true;
};
chimera.nextcloud.enable = true;
programs.bash.bashrcExtra = ''
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\]"
'';
programs.kitty.extraConfig = ''
map kitty_mod+enter launch --cwd=current --type=window
map kitty_mod+t launch --cwd=current --type=tab
'';
});
}