diff --git a/.dotter/global.toml b/.dotter/global.toml index 22633cd..504b5b7 100644 --- a/.dotter/global.toml +++ b/.dotter/global.toml @@ -4,7 +4,7 @@ # a development environment based on git and nvim. [base] -depends = ["shell", "git", "nvim", "scripts", "ssh", "terminal", "bootstrap"] +depends = ["shell", "vcs", "nvim", "scripts", "ssh", "terminal", "bootstrap"] [bootstrap.files] "bootstrap/dotlink.sh" = "~/.config/sh/alias.d/dotlink.sh" @@ -13,9 +13,13 @@ depends = ["shell", "git", "nvim", "scripts", "ssh", "terminal", "bootstrap"] "sh/README.md" = { target = "~/NOWHERE", type = "symbolic", if = "false" } sh = "~" -[git.files] -"git/README.md" = { target = "~/NOWHERE", type = "symbolic", if = "false" } -git = "~" +[vcs.files] +"vcs/README.md" = { target = "~/NOWHERE", type = "symbolic", if = "false" } +"vcs/git" = "~/.config" +"vcs/jj" = "~/.config" +"vcs/gitignore/config" = "~/.config" +"vcs/gitignore/local" = "~/.local" +vcs = "~" [nvim.files] "nvim/.config/nvim/spell/de.utf-8.add.spl" = { target = "~/.config/nvim/spell/de.utf-8.add.spl", type = "symbolic" } diff --git a/nvim/.config/nvim/lua/plugins/pickers.lua b/nvim/.config/nvim/lua/plugins/pickers.lua index 7637b6d..c8d1053 100644 --- a/nvim/.config/nvim/lua/plugins/pickers.lua +++ b/nvim/.config/nvim/lua/plugins/pickers.lua @@ -15,13 +15,20 @@ return { event = { "BufEnter" }, }, -- integrate file manager { - "nvim-tree/nvim-tree.lua", -- integrate file tree - config = true, - dependencies = { "nvim-tree/nvim-web-devicons", config = true }, - cmd = "NvimTreeToggle", - keys = { - { "se", "NvimTreeToggle", desc = "filetree", silent = true }, + "nvim-neo-tree/neo-tree.nvim", + dependencies = { + "MunifTanjim/nui.nvim", + "nvim-lua/plenary.nvim", + { "nvim-tree/nvim-web-devicons", optional = true }, }, + cmd = "Neotree", + opts = { + source_selector = { winbar = true }, + }, + keys = { + { "se", "Neotree toggle left", desc = "filetree", silent = true }, + }, + lazy = false }, { "MagicDuck/grug-far.nvim", lazy = false, opts = {} }, -- fuzzy matching picker diff --git a/git/README.md b/vcs/README.md similarity index 86% rename from git/README.md rename to vcs/README.md index 1c38319..6315168 100644 --- a/git/README.md +++ b/vcs/README.md @@ -1,15 +1,17 @@ -# Git module +# Version control software module [git](https://git-scm.com/) - a distributed version control system +[jujutsu](https://martinvonz.github.io/jj/latest/) - a change-based version control system ## What's in this module [[_TOC_]] -## Global git settings +## Global vcs settings -This is probably the first thing that needs to be customized, since it points to a different identity for each git user. +This are probably the first things that need to be customized, since it points to a different identity for each git user. I sign all my commits by default, so take out the corresponding lines if you don't, or exchange it with your gpg key. +Similarly for jujutsu, change the identity and remove the lines concerning gpg signing if you don't use it. Git will rewrite any remotes using http(s) to use the ssh notation for pushes to github and gitlab so that, even if you set up the repository using an https url you can utilize your usual ssh key for pushing. diff --git a/git/.config/git/config b/vcs/git/git/config similarity index 100% rename from git/.config/git/config rename to vcs/git/git/config diff --git a/git/.config/git/ignore b/vcs/git/git/ignore similarity index 100% rename from git/.config/git/ignore rename to vcs/git/git/ignore diff --git a/git/.config/sh/alias.d/git.sh b/vcs/git/sh/alias.d/git.sh similarity index 100% rename from git/.config/sh/alias.d/git.sh rename to vcs/git/sh/alias.d/git.sh diff --git a/git/.config/zsh/completions/_gitignore b/vcs/gitignore/config/zsh/completions/_gitignore similarity index 100% rename from git/.config/zsh/completions/_gitignore rename to vcs/gitignore/config/zsh/completions/_gitignore diff --git a/git/.local/bin/gitignore b/vcs/gitignore/local/bin/gitignore similarity index 100% rename from git/.local/bin/gitignore rename to vcs/gitignore/local/bin/gitignore diff --git a/vcs/jj/jj/config.toml b/vcs/jj/jj/config.toml new file mode 100644 index 0000000..603c3b2 --- /dev/null +++ b/vcs/jj/jj/config.toml @@ -0,0 +1,12 @@ +[user] +email = "marty.oehme@gmail.com" +name = "Marty Oehme" + +[signing] +sign-all = true +backend = "gpg" +key = "73BA40D5AFAF49C9" + +[ui] +default-command = "log" +diff-editor = ["nvim", "-c", "DiffEditor $left $right $output"] diff --git a/vcs/jj/sh/alias.d/jj.sh b/vcs/jj/sh/alias.d/jj.sh new file mode 100644 index 0000000..ed69305 --- /dev/null +++ b/vcs/jj/sh/alias.d/jj.sh @@ -0,0 +1,30 @@ +#!/usr/bin/env sh + +if ! exist jj; then + return 1 +fi + +alias j='jj' # necessary for a thing as easy to type? +if exist lazyjj; then + alias lj="lazyjj" +fi +alias js="jj status" + +alias jd="jj describe" +alias jn="jj new" +alias jc="jj commit" + +alias jl='jj log' +alias jlo='jj log --summary' +alias jloo='jj log --patch' +alias jo="jj op log" + +alias jss="jj squash" +alias jsi="jj squash --interactive" + +alias je="jj edit" +alias jee="jj next --edit" + +alias jun="jj undo" + +alias jp="jj git push"