···11# dotfiles
22-my personal dotfiles22+my personal dotfiles
33+44+---
55+66+This repository is hosted on [Tangled](https://tangled.org/danieldaum.net/dotfiles) and mirrored to [GitHub](https://github.com/daniel-daum/dotfiles).
+29-37
jj.config.toml
···44email = "daniel@danieldaum.net"
5566[ui]
77+pager = "delta" # pipe all output through delta for syntax-highlighted diffs
88+diff.format = "git" # use unified git-style diffs (required for delta to render correctly)
99+diff.tool = "difftastic" # use difftastic as the diff engine for structural, syntax-aware diffs
710default-command = "log"
88-pager = "delta"
99-diff.format = "git"
10111112[git]
1212-write-change-id-header = true
1313+write-change-id-header = true # embed jj change-id in git commit object; enables change tracking across force pushes on Tangled
1414+sign-on-push = true # sign commits at push time only
13151416[signing]
1515-behavior = "own"
1616-backend = "ssh"
1717-key = "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBAVwC6JAlpdvuyLJE+PvIkbBesM+P5yeyLfeDwP5CSndFPYPsznRWlu7cyn2kh1EoSevPXhP30QBXanWpnyvQvc= coruscant@secretive.coruscant.local" # from Secretive
1717+behavior = "drop" # drop signatures on rewrite; rely solely on sign-on-push
1818+backend = "ssh" # use SSH for commit signing
1919+key = "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBC+8q3HyMfBSLDTRjrHvXcH49947NPsNHq6TYwh+GzAtO0dF7ROZOmatuhvN5jXH/b9ybTJwIGyQweCZNTmuVJg= Coruscant@secretive.coruscant.local" # public key from Secretive
18201921[signing.backends.ssh]
2020-allowed-signers = "/Users/daniel/.gitallowedsigners"
2222+allowed-signers = "/Users/daniel/.gitallowedsigners" # file used to verify incoming SSH-signed commits
21232222-[remotes.origin]
2323-auto-track-bookmarks = "glob:*"
2424-2525-2424+# renders all timestamps as relative time e.g. "3 hours ago"
2625[template-aliases]
2726"format_timestamp(timestamp)" = "timestamp.ago()"
28272929-[templates]
3030-log_node = '''
3131- label("node",
3232- coalesce(
3333- if(!self, label("elided", "~")),
3434- if(current_working_copy, label("working_copy", "@")),
3535- if(conflict, label("conflict", "×")),
3636- if(immutable, label("immutable", "*")),
3737- label("normal", "·")
3838- )
3939- )
4040-'''
41282929+# [remotes.origin]
3030+# auto-track-bookmarks = ["glob:danieldaum/*", "main"]
3131+3232+# [templates]
3333+# git_push_bookmark = '"danieldaum/" ++ change_id.short()'
3434+3535+# my aliases
3636+[aliases]
3737+init = ["git", "init"]
3838+push = ["git", "push"]
3939+pull = ["git", "fetch"]
4040+clone = ["git", "clone"]
4141+tug = ["bookmark", "move", "--from", "heads(::@- & bookmarks())", "--to", "@-"]
4242+4343+# compact single-line log: change ID, description, bookmarks, conflict flag; no author or timestamp
4444+[templates]
4245log = '''
4346 if(root,
4447 format_root_commit(self),
···5962 )
6063'''
61646262-draft_commit_description = '''
6363- concat(
6464- coalesce(description, default_commit_description, "\n"),
6565- surround(
6666- "\nJJ: This commit contains the following changes:\n", "",
6767- indent("JJ: ", diff.stat(72)),
6868- ),
6969- "\nJJ: ignore-rest\n",
7070- diff.git(),
7171- )
7272-'''
7373-7474-[aliases]
7575-tug = ["bookmark", "move", "--from", "heads(::@- & bookmarks())", "--to", "@-"]
6565+[merge-tools.difftastic]
6666+program = "difft"
6767+diff-args = ["--color=always", "--display=side-by-side", "$left", "$right"] # always colorize, side-by-side layout