+3
-3
git/config
+3
-3
git/config
···
7
7
[commit]
8
8
gpgsign = true
9
9
[core]
10
-
excludesFile = ~/.config/git/ignore
10
+
excludesFile = ~/.config/git/ignore
11
11
[gpg]
12
12
format = ssh
13
13
[gpg "ssh"]
···
15
15
[url "git@github.com:"]
16
16
insteadOf = https://github.com/
17
17
[url "git@github.com:boltlessengineer/"]
18
-
insteadOf = self:
18
+
insteadOf = self:
19
19
[rerere]
20
20
enabled = true
21
21
[alias]
22
-
st = status
22
+
st = status
23
23
lg = log --branches --remotes --tags --graph --decorate
24
24
ll = log --branches --remotes --tags --graph --decorate --oneline
25
25
find = !sh -c 'git-repo-search \"$@\" | fzf | awk \"{print \\$NF}\" --
+12
-1
jj/config.toml
+12
-1
jj/config.toml
···
3
3
[aliases]
4
4
su = ["squash"]
5
5
tug = ["bookmark", "move", "--from", "heads(::@- & bookmarks())", "--to", "@-"]
6
+
# mega-merge pull
7
+
mp = ["rebase", "-b", "MM", "-d", "heads(MM- | trunk())"]
6
8
7
9
[ui]
8
-
default-command = ["log", "--no-pager"]
10
+
default-command = ["log", "--no-pager", "-r", "@ | coalesce(mega_merge(), default()) | trunk()"]
9
11
should-sign-off = true
10
12
diff-formatter = ["difft", "--color=always", "--syntax-highlight=off", "$left", "$right"]
11
13
# diff-editor = ["nvim", "-c", "DiffEditor $left $right $output"]
···
23
25
24
26
[git]
25
27
write-change-id-header = true
28
+
private-commits = "description(glob:'wip:*') | description(glob:'private:*')"
29
+
30
+
[revset-aliases]
31
+
'MM' = "description('[mega-merge]')"
32
+
'FP' = "fork_point(MM-)"
33
+
'wip' = "description(glob:'wip:*')"
34
+
'default()' = "@ | ancestors(immutable_heads().., 2) | trunk()"
35
+
'show(x)' = "@ | ancestors(..(x::) ~ immutable(), 2) | trunk()"
36
+
'mega_merge()' = "ancestors(..(MM::) ~ immutable(), 2)"
26
37
27
38
[templates]
28
39
draft_commit_description = '''
+14
-1
nix/darwin.nix
+14
-1
nix/darwin.nix
···
9
9
pkgs.vim
10
10
pkgs.git
11
11
pkgs.ollama
12
+
# used for remote linux deployment
13
+
pkgs.nixos-rebuild
12
14
# I don't want to touch this due to current neovim settings.
13
15
# remove it when lux.nvim is out
14
16
(pkgs-unstable.lua5_1.withPackages (ps: with ps; [luarocks]))
···
40
42
nix.settings.experimental-features = "nix-command flakes";
41
43
# Enable rosetta binaries
42
44
nix.settings.extra-platforms = "x86_64-darwin aarch64-darwin";
45
+
46
+
nix.settings.trusted-users = [ "@admin" ];
47
+
nix.settings.extra-trusted-users = [ "boltless" ];
48
+
49
+
nix.linux-builder = {
50
+
enable = true;
51
+
maxJobs = 4;
52
+
config.virtualisation = {
53
+
cores = 6;
54
+
};
55
+
};
43
56
44
57
# Enable alternative shell support in nix-darwin.
45
58
# programs.fish.enable = true;
···
207
220
Pages = 409201541;
208
221
Tampermonkey = 6738342400;
209
222
Things3 = 904280696;
210
-
Xcode = 497799835;
223
+
# Xcode = 497799835;
211
224
};
212
225
};
213
226
}
+16
nix/flake.nix
+16
nix/flake.nix
···
78
78
pkgs.meld
79
79
pkgs.mprocs
80
80
pkgs.nil
81
+
pkgs.nixfmt-classic
81
82
pkgs.nodejs_24
82
83
pkgs.pandoc
83
84
pkgs.qmk
84
85
pkgs.ripgrep
86
+
pkgs.stack
85
87
pkgs.sumneko-lua-language-server
86
88
pkgs.tmux
87
89
pkgs.tree
···
93
95
pkgs-unstable.jujutsu
94
96
pkgs-unstable.neovim
95
97
(pkgs-unstable.lua5_1.withPackages (ps: with ps; [luarocks]))
98
+
(pkgs.buildEnv {
99
+
name = "mailing";
100
+
paths = [
101
+
pkgs.neomutt
102
+
# pkgs.mutt-wizard
103
+
# pkgs.isync
104
+
# pkgs.msmtp
105
+
# pkgs.pass
106
+
# pkgs.cacert
107
+
# pkgs.gettext
108
+
];
109
+
})
96
110
] ++ (if pkgs.stdenv.isDarwin then [
97
111
# TODO: automate this with nix:
98
112
# $ ln -sfn ~/.nix-profile/Applications ~/Applications/Nix\ User\ Apps
···
104
118
pkgs.slack
105
119
] else []);
106
120
};
121
+
# This can be just `imports = [ ./templates/templates.nix ]` when using flake-parts
122
+
templates = ((import ./templates/templates.nix) { inherit inputs; }).flake.templates;
107
123
};
108
124
}
109
125
# vim: et:ts=2
+48
nix/templates/python/flake.nix
+48
nix/templates/python/flake.nix
···
1
+
{
2
+
description = "python flake";
3
+
inputs = {
4
+
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
5
+
flake-parts.url = "github:hercules-ci/flake-parts";
6
+
};
7
+
outputs = inputs @ { flake-parts, ... }:
8
+
flake-parts.lib.mkFlake { inherit inputs; } {
9
+
systems = [
10
+
"x86_64-linux"
11
+
"aarch64-linux"
12
+
"aarch64-darwin"
13
+
];
14
+
perSystem = { pkgs, system, ... }: let
15
+
commonPackages = [
16
+
pkgs.python313Full
17
+
pkgs.pyright
18
+
pkgs.uv
19
+
pkgs.curl
20
+
pkgs.wget
21
+
pkgs.cmake
22
+
] ++ pkgs.lib.optionals pkgs.stdenv.isLinux [
23
+
pkgs.gcc
24
+
pkgs.stdenv.cc.cc.lib
25
+
];
26
+
in {
27
+
devShells.default = pkgs.mkShell {
28
+
buildInputs = commonPackages;
29
+
shellHook = ''
30
+
# Set up the Python virtual environment with uv
31
+
test -d .venv || ${pkgs.uv}/bin/uv venv .venv
32
+
export VIRTUAL_ENV="$(pwd)/.venv"
33
+
export PATH="$VIRTUAL_ENV/bin:$PATH"
34
+
export LD_LIBRARY_PATH=${pkgs.lib.makeLibraryPath commonPackages}:$LD_LIBRARY_PATH
35
+
36
+
source "$VIRTUAL_ENV/bin/activate"
37
+
38
+
if uv sync --frozen; then
39
+
package_count=$(uv pip list --format=freeze | wc -l)
40
+
echo "Done. $package_count pip packages installed."
41
+
else
42
+
echo "Warning: An error occurred during uv sync."
43
+
fi
44
+
'';
45
+
};
46
+
};
47
+
};
48
+
}
+18
nix/templates/templates.nix
+18
nix/templates/templates.nix
···
1
+
{ inputs, ... }:
2
+
let templatesDir = ./.;
3
+
in {
4
+
flake.templates = let
5
+
mkTemplate = name: val:
6
+
let
7
+
path = templatesDir + "/${name}";
8
+
flake = import (path + "/flake.nix");
9
+
in {
10
+
inherit path;
11
+
description = flake.description;
12
+
};
13
+
templateEntities = let
14
+
op = _: val: val == "directory";
15
+
as = builtins.readDir templatesDir;
16
+
in inputs.nixpkgs.lib.filterAttrs op as;
17
+
in builtins.mapAttrs mkTemplate templateEntities;
18
+
}