meta: add at least 24 commits into one
This commit is contained in:
parent
db2564d828
commit
6420ebef60
25 changed files with 363 additions and 579 deletions
|
@ -2,9 +2,11 @@
|
|||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
}:
|
||||
let
|
||||
cfg = config.alqueva.programs.direnv;
|
||||
in {
|
||||
in
|
||||
{
|
||||
options.alqueva.programs.direnv = {
|
||||
enable = lib.mkEnableOption "direnv";
|
||||
};
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -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 = [ ];
|
||||
})
|
||||
]);
|
||||
}
|
||||
|
|
|
@ -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" ];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue