meta: add at least 24 commits into one

This commit is contained in:
Artur Manuel 2025-03-22 17:36:40 +00:00
commit 6420ebef60
Signed by: amadaluzia
SSH key fingerprint: SHA256:Zwg7gBuZyaG48ucAZneJwltiXu0+tJb7c3lYt9AYlLg
25 changed files with 363 additions and 579 deletions

View file

@ -2,9 +2,11 @@
config,
lib,
...
}: let
}:
let
cfg = config.alqueva.programs.direnv;
in {
in
{
options.alqueva.programs.direnv = {
enable = lib.mkEnableOption "direnv";
};

View file

@ -3,65 +3,71 @@
pkgs,
lib,
...
}: let
}:
let
cfg = config.alqueva.system.fonts;
inherit (lib) types mkOption;
mkStringsOption = default: letterform:
mkStringsOption =
default: letterform:
mkOption {
type = types.listOf types.str;
inherit default;
description = "The default fonts for ${letterform}.";
};
mkPackagesOption = default: letterform:
mkPackagesOption =
default: letterform:
mkOption {
type = types.listOf types.package;
inherit default;
description = "The packages you want to use for your ${letterform} fonts.";
};
in {
in
{
options.alqueva.system.fonts = {
enable = lib.mkEnableOption "" // {description = "Whether you want to use this fonts module.";};
enable = lib.mkEnableOption "" // {
description = "Whether you want to use this fonts module.";
};
packages =
{
extra = mkOption {
type = types.listOf types.package;
default = [];
default = [ ];
description = "Extra font packages you want installed.";
};
}
// builtins.mapAttrs (_n: v: mkPackagesOption v.default v.letterform) {
sansSerif = {
default = [pkgs.roboto];
default = [ pkgs.roboto ];
letterform = "sans-serif";
};
monospace = {
default = [pkgs.roboto-mono];
default = [ pkgs.roboto-mono ];
letterform = "monospace";
};
serif = {
default = [pkgs.roboto-serif];
default = [ pkgs.roboto-serif ];
letterform = "serif";
};
emoji = {
default = [pkgs.noto-fonts-color-emoji];
default = [ pkgs.noto-fonts-color-emoji ];
letterform = "emoji";
};
};
names = builtins.mapAttrs (_n: v: mkStringsOption v.default v.letterform) {
sansSerif = {
default = ["Roboto"];
default = [ "Roboto" ];
letterform = "sans-serif";
};
monospace = {
default = ["Roboto Mono"];
default = [ "Roboto Mono" ];
letterform = "monospace";
};
serif = {
default = ["Roboto Serif"];
default = [ "Roboto Serif" ];
letterform = "serif";
};
emoji = {
default = ["Noto Color Emoji"];
default = [ "Noto Color Emoji" ];
letterform = "emoji";
};
};
@ -71,7 +77,12 @@ in {
packages = builtins.concatLists (builtins.attrValues cfg.packages);
fontconfig = {
defaultFonts = {
inherit (cfg.names) sansSerif monospace serif emoji;
inherit (cfg.names)
sansSerif
monospace
serif
emoji
;
};
enable = true;
};

View file

@ -1,116 +0,0 @@
{
config,
lib,
...
}:
let
cfg = config.alqueva.programs.git;
in
{
options.alqueva.programs.git = {
enable = lib.mkEnableOption "git";
};
config = lib.mkIf cfg.enable {
programs.git = {
enable = true;
config = {
alias = {
a = "add";
aa = "add .";
aliases = "! f(){ TOP=$(expr $(grep -n \"^\\\\\\\\[alias\" /etc/gitconfig | sed -e 's|:.*||') + 1) && for LINE_NUMBER in $(grep -n \"^\\\\\\\\[\" /etc/gitconfig | sed -e 's|:.*||'); do [ $TOP -lt $LINE_NUMBER ] && BOTTOM=$(expr $LINE_NUMBER - 2 ) && break; done; sed -n \"\${TOP},\${BOTTOM}p\" /etc/gitconfig; }; f | sed -e 's|^ ||'";
ap = "add -p";
b = "! git for-each-ref --sort='-authordate' --format='%(authordate)%09%(objectname:short)%09%(refname)' refs/heads | sed -e 's|refs/heads/||'";
bD = "branch -D";
ba = "branch -a";
bc = "branch -c";
bd = "branch -d";
br = "branch -r";
c = "! git commit --verbose; git push";
ca = "! git c --amend";
cf = "! git commit --verbose; git push --force";
ch = "switch -C";
change = "switch -C";
cl = "clone";
cm = "commit -m";
co = "checkout "; # old/bad practice - switches branch and can modify worktree
cp = "cherry-pick ; usually abusive; sometimes necessary";
create = "! git bc";
d = "diff";
dc = "diff --cached";
ds = "diff --stat";
expire = "! git fsck --unreachable --dangling --no-reflogs; git reflog expire --expire=now --all; git gc --prune=now";
f = "fetch";
fe = "fetch";
filelog = "log --patch";
find = "! git ls-files | grep -i";
fl = "log --patch";
fp = "fetch --prune ; removes branches not in upstream";
gr = "grep -Ii";
grep = "grep -Ii";
greproot = "! git grr";
grr = "! f() { ROOT=$(git rev-parse --show-toplevel) && cd $ROOT && git grep --full-name -In $1 | xargs -I{} echo $ROOT/{}; }; f";
invert = "revert";
l = "log --oneline --graph --decorate --parents";
lasttag = "describe --tags --abbrev=0";
ll = "log --pretty=format:\"%C(yellow)%h%Cred%d\\\\ %Creset%s%Cblue\\\\ [%cn]\" --decorate --numstat";
lref = "log --oneline --graph --decorate --parents --reflog";
ls = "log --pretty=format:\"%C(yellow)%h\\\\ %ad%Cred%d\\\\ %Creset%s%Cblue\\\\ [%cn]\" --decorate --date=short";
lt = "describe --tags --abbrev=0";
mailmap = "! f(){ printf \\\"$(git config user.name) <$(git config user.email)> <\${1}>\\\" > mailmap; git filter-repo --force --mailmap mailmap; }; f";
one = "log -1 ; no input displays HEAD";
pd = "push -d";
pf = "push --force";
pl = "pull";
pp = "pull --prune ; removes branches not in upstream";
pr = "pull --rebase ; rebases commits onto upstream";
ps = "push";
pt = "! f(){ git push $1 tag $2; }; f";
r = "rebase";
ra = "rebase --skip";
rc = "rebase --continue";
re = "restore";
ref = "reflog";
ri = "rebase --interactive";
rm = "rm -r";
rmf = "! git rm --force";
rq = "rebase --quit";
rs = "rebase --abort";
sh = "show";
st = "status";
sw = "switch ; new checkout - only switching branch w/o restoring worktree";
sync = "! git fe upstream; git rebase upstream/main; git push";
t = "tag";
td = "tag --delete";
un = "restore --staged --worktree";
uncommit = "switch -C";
undo = "restore --staged --worktree";
undo-specific = "! f(){ git restore --source=\\\"$1\\\" $2; }; f";
undo-stage = "restore";
undo-unstaged = "restore";
undo-work = "restore --staged --worktree";
undo-wt = "restore --staged --worktree";
unstage = "restore --staged";
wa = "! f(){ git worktree add ../$1 $1; }; f";
wc = "! f(){ PROJ=$(printf $1 | sed -e 's|.*/||' | sed -e 's|.git||'); mkdir $PROJ; cd $PROJ; if git ls-remote $1 | grep -q \"main\"; then BRANCH=\"main\"; elif git ls-remote $1 | grep -q \"master\"; then BRANCH=\"master\"; elif git ls-remote $1 | grep -q \"trunk\"; then BRANCH=\"trunk\"; fi; git clone $1 $BRANCH; }; f";
wcreate = "! git wc";
wmv = "worktree move";
wnew = "! f(){ git worktree add ../$1; cd ../$1; git push --set-upstream origin $1; }; f";
wr = "worktree remove";
wrm = "! git wr";
wsc = "! f(){ PROJ=$(printf $1 | sed -e 's|.*/||' | sed -e 's|.git||'); mkdir $PROJ; cd $PROJ; if git ls-remote $1 | grep -q \"main\"; then BRANCH=\"main\"; elif git ls-remote $1 | grep -q \"master\"; then BRANCH=\"master\"; elif git ls-remote $1 | grep -q \"trunk\"; then BRANCH=\"trunk\"; fi; git clone --depth=1 --single-branch $1 $BRANCH; }; f";
wshallow = "! git wsc";
};
branch = {
autosetuprebase = "always";
};
color = {
branch = "auto";
diff = "auto";
status = "auto";
};
commit.gpgsign = true;
};
};
};
}

View file

@ -5,21 +5,34 @@
...
}:
let
inherit (lib.options) mkOption mkPackageOption mkEnableOption;
inherit (lib.modules) mkIf mkMerge;
inherit (lib.types) nullOr str;
cfg = config.alqueva.shells.nushell;
in
{
options.alqueva.shells.nushell = {
enable = lib.mkEnableOption "Nushell";
package = lib.mkPackageOption pkgs "nushell" { };
};
config = lib.mkIf cfg.enable {
environment = {
systemPackages = [ cfg.package ];
shells = [
(lib.getExe' cfg.package "nu")
"/run/current-system/sw/bin/nu"
];
enable = mkEnableOption "Nushell";
package = mkPackageOption pkgs "nushell" { };
config = mkOption {
type = nullOr str;
default = null;
description = "Nushell code to load by default with Nushell.";
};
};
config = mkIf cfg.enable (mkMerge [
{
environment = {
systemPackages = [ cfg.package ];
shells = [
(lib.getExe' cfg.package "nu")
"/run/current-system/sw/bin/nu"
];
};
}
(mkIf (cfg.config != null) {
environment.systemPackages = [ ];
})
]);
}

View file

@ -3,19 +3,21 @@
pkgs,
config,
...
}: let
}:
let
cfg = config.alqueva.programs.waybar;
in {
in
{
options.alqueva.programs.waybar = {
enable = lib.mkEnableOption "waybar, a highly customizable Wayland bar for Sway and Wlroots based compositors";
package = lib.mkPackageOption pkgs "waybar" {};
package = lib.mkPackageOption pkgs "waybar" { };
};
config = lib.mkIf cfg.enable {
environment.systemPackages = [cfg.package];
environment.systemPackages = [ cfg.package ];
systemd = {
packages = [cfg.package];
user.services.waybar.wantedBy = ["graphical-session.target"];
packages = [ cfg.package ];
user.services.waybar.wantedBy = [ "graphical-session.target" ];
};
};
}