Compare commits
10 commits
1f43ea8730
...
441a6b68d6
Author | SHA1 | Date | |
---|---|---|---|
441a6b68d6 | |||
69165bbbf7 | |||
c5b629b295 | |||
64596a073c | |||
92f097cb82 | |||
fa30c4d826 | |||
4f6281d4d5 | |||
b7e9b356d8 | |||
d45aacbead | |||
5a0a85aed9 |
21 changed files with 662 additions and 146 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -1 +1,3 @@
|
|||
.direnv/
|
||||
|
||||
.weavehist
|
||||
|
|
12
README.md
12
README.md
|
@ -2,20 +2,14 @@
|
|||
|
||||
My dotfiles.
|
||||
|
||||
## Installing packages
|
||||
## Usage
|
||||
|
||||
```shell
|
||||
pacman --sync - < packages.txt
|
||||
```
|
||||
|
||||
## Installing dotfiles
|
||||
|
||||
```shell
|
||||
plow --force
|
||||
plow --force --verbose
|
||||
```
|
||||
|
||||
or...
|
||||
|
||||
```shell
|
||||
plow --force --from ./home --to ~
|
||||
plow --force --verbose --from ./home --to ~
|
||||
```
|
||||
|
|
14
devenv.nix
Normal file
14
devenv.nix
Normal file
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
pre-commit.hooks = {
|
||||
# Nix
|
||||
alejandra.enable = true;
|
||||
deadnix.enable = true;
|
||||
statix.enable = true;
|
||||
|
||||
# Flakes
|
||||
flake-checker.enable = true;
|
||||
|
||||
# Shell
|
||||
shellcheck.enable = true;
|
||||
};
|
||||
}
|
355
flake.lock
generated
355
flake.lock
generated
|
@ -1,15 +1,96 @@
|
|||
{
|
||||
"nodes": {
|
||||
"cachix": {
|
||||
"inputs": {
|
||||
"devenv": [
|
||||
"weave",
|
||||
"devenv"
|
||||
],
|
||||
"flake-compat": [
|
||||
"weave",
|
||||
"devenv"
|
||||
],
|
||||
"git-hooks": [
|
||||
"weave",
|
||||
"devenv"
|
||||
],
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1742042642,
|
||||
"narHash": "sha256-D0gP8srrX0qj+wNYNPdtVJsQuFzIng3q43thnHXQ/es=",
|
||||
"owner": "cachix",
|
||||
"repo": "cachix",
|
||||
"rev": "a624d3eaf4b1d225f918de8543ed739f2f574203",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"ref": "latest",
|
||||
"repo": "cachix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"devenv": {
|
||||
"inputs": {
|
||||
"cachix": "cachix",
|
||||
"flake-compat": "flake-compat",
|
||||
"git-hooks": "git-hooks",
|
||||
"nix": "nix",
|
||||
"nixpkgs": "nixpkgs_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1743783972,
|
||||
"narHash": "sha256-5wPsNCnWmeLpLxavsftA9L7tnYgtlexV7FwLegxtpy4=",
|
||||
"owner": "cachix",
|
||||
"repo": "devenv",
|
||||
"rev": "2f53e2f867e0c2ba18b880e66169366e5f8ca554",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"repo": "devenv",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"devenv-root": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"narHash": "sha256-d6xi4mKdjkX2JFicDIv5niSzpyI0m/Hnm8GGAIU04kY=",
|
||||
"type": "file",
|
||||
"url": "file:///dev/null"
|
||||
},
|
||||
"original": {
|
||||
"type": "file",
|
||||
"url": "file:///dev/null"
|
||||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1733328505,
|
||||
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1726153070,
|
||||
"narHash": "sha256-HO4zgY0ekfwO5bX0QH/3kJ/h4KvUDFZg8YpkNwIbg1U=",
|
||||
"lastModified": 1743550720,
|
||||
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "bcef6817a8b2aa20a5a6dbb19b43e63c5bf8619a",
|
||||
"rev": "c621e8422220273271f52058f618c94e405bb0f5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -18,13 +99,157 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts_2": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"weave",
|
||||
"devenv",
|
||||
"nix",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1712014858,
|
||||
"narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "9126214d0a59633752a136528f5f3b9aa8565b7d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts_3": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": "nixpkgs-lib_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1743550720,
|
||||
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "c621e8422220273271f52058f618c94e405bb0f5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"git-hooks": {
|
||||
"inputs": {
|
||||
"flake-compat": [
|
||||
"weave",
|
||||
"devenv"
|
||||
],
|
||||
"gitignore": "gitignore",
|
||||
"nixpkgs": [
|
||||
"weave",
|
||||
"devenv",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1742649964,
|
||||
"narHash": "sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco=",
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "dcf5072734cb576d2b0c59b2ac44f5050b5eac82",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gitignore": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"weave",
|
||||
"devenv",
|
||||
"git-hooks",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1709087332,
|
||||
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"libgit2": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1697646580,
|
||||
"narHash": "sha256-oX4Z3S9WtJlwvj0uH9HlYcWv+x1hqp8mhXl7HsLu2f0=",
|
||||
"owner": "libgit2",
|
||||
"repo": "libgit2",
|
||||
"rev": "45fd9ed7ae1a9b74b957ef4f337bc3c8b3df01b5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "libgit2",
|
||||
"repo": "libgit2",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix": {
|
||||
"inputs": {
|
||||
"flake-compat": [
|
||||
"weave",
|
||||
"devenv"
|
||||
],
|
||||
"flake-parts": "flake-parts_2",
|
||||
"libgit2": "libgit2",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"nixpkgs-23-11": [
|
||||
"weave",
|
||||
"devenv"
|
||||
],
|
||||
"nixpkgs-regression": [
|
||||
"weave",
|
||||
"devenv"
|
||||
],
|
||||
"pre-commit-hooks": [
|
||||
"weave",
|
||||
"devenv"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1741798497,
|
||||
"narHash": "sha256-E3j+3MoY8Y96mG1dUIiLFm2tZmNbRvSiyN7CrSKuAVg=",
|
||||
"owner": "domenkozar",
|
||||
"repo": "nix",
|
||||
"rev": "f3f44b2baaf6c4c6e179de8cbb1cc6db031083cd",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "domenkozar",
|
||||
"ref": "devenv-2.24",
|
||||
"repo": "nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1726243404,
|
||||
"narHash": "sha256-sjiGsMh+1cWXb53Tecsm4skyFNag33GPbVgCdfj3n9I=",
|
||||
"lastModified": 1746663147,
|
||||
"narHash": "sha256-Ua0drDHawlzNqJnclTJGf87dBmaO/tn7iZ+TCkTRpRc=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "345c263f2f53a3710abe117f28a5cb86d0ba4059",
|
||||
"rev": "dda3dcd3fe03e991015e9a74b22d35950f264a54",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -36,20 +261,124 @@
|
|||
},
|
||||
"nixpkgs-lib": {
|
||||
"locked": {
|
||||
"lastModified": 1725233747,
|
||||
"narHash": "sha256-Ss8QWLXdr2JCBPcYChJhz4xJm+h/xjl4G0c0XlP6a74=",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/NixOS/nixpkgs/archive/356624c12086a18f2ea2825fed34523d60ccc4e3.tar.gz"
|
||||
"lastModified": 1743296961,
|
||||
"narHash": "sha256-b1EdN3cULCqtorQ4QeWgLMrd5ZGOjLSLemfa00heasc=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"rev": "e4822aea2a6d1cdd36653c134cacfd64c97ff4fa",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/NixOS/nixpkgs/archive/356624c12086a18f2ea2825fed34523d60ccc4e3.tar.gz"
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-lib_2": {
|
||||
"locked": {
|
||||
"lastModified": 1743296961,
|
||||
"narHash": "sha256-b1EdN3cULCqtorQ4QeWgLMrd5ZGOjLSLemfa00heasc=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"rev": "e4822aea2a6d1cdd36653c134cacfd64c97ff4fa",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1733212471,
|
||||
"narHash": "sha256-M1+uCoV5igihRfcUKrr1riygbe73/dzNnzPsmaLCmpo=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "55d15ad12a74eb7d4646254e13638ad0c4128776",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1717432640,
|
||||
"narHash": "sha256-+f9c4/ZX5MWDOuB1rKoWj+lBNm0z0rs4CK47HBLxy1o=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "88269ab3044128b7c2f4c7d68448b2fb50456870",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "release-24.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1733477122,
|
||||
"narHash": "sha256-qamMCz5mNpQmgBwc8SB5tVMlD5sbwVIToVZtSxMph9s=",
|
||||
"owner": "cachix",
|
||||
"repo": "devenv-nixpkgs",
|
||||
"rev": "7bd9e84d0452f6d2e63b6e6da29fe73fac951857",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"ref": "rolling",
|
||||
"repo": "devenv-nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_5": {
|
||||
"locked": {
|
||||
"lastModified": 1743827369,
|
||||
"narHash": "sha256-rpqepOZ8Eo1zg+KJeWoq1HAOgoMCDloqv5r2EAa9TSA=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "42a1c966be226125b48c384171c44c651c236c22",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts",
|
||||
"nixpkgs": "nixpkgs"
|
||||
"nixpkgs": "nixpkgs",
|
||||
"weave": "weave"
|
||||
}
|
||||
},
|
||||
"weave": {
|
||||
"inputs": {
|
||||
"devenv": "devenv",
|
||||
"devenv-root": "devenv-root",
|
||||
"flake-parts": "flake-parts_3",
|
||||
"nixpkgs": "nixpkgs_5"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1744154589,
|
||||
"narHash": "sha256-W56RJmip2eup9o7uF/C7XHbamqqC5JXcDZ3AQ8M5jVI=",
|
||||
"ref": "refs/heads/main",
|
||||
"rev": "0d6662bdc7c73aa323074b11c6a14b0a6a041d8e",
|
||||
"revCount": 2,
|
||||
"type": "git",
|
||||
"url": "https://codeberg.org/helvetica/weave.git"
|
||||
},
|
||||
"original": {
|
||||
"type": "git",
|
||||
"url": "https://codeberg.org/helvetica/weave.git"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
16
flake.nix
16
flake.nix
|
@ -4,6 +4,7 @@
|
|||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
flake-parts.url = "github:hercules-ci/flake-parts";
|
||||
weave.url = "git+https://codeberg.org/helvetica/weave.git";
|
||||
};
|
||||
|
||||
outputs = {
|
||||
|
@ -15,16 +16,21 @@
|
|||
systems = nixpkgs.lib.systems.flakeExposed;
|
||||
|
||||
perSystem = {
|
||||
system,
|
||||
pkgs,
|
||||
self',
|
||||
...
|
||||
}: {
|
||||
packages.plow = pkgs.callPackage ./plow {};
|
||||
|
||||
devShells.default = pkgs.mkShellNoCC {
|
||||
PLOW_FROM = "./home";
|
||||
packages = [
|
||||
inputs.weave.packages.${system}.default
|
||||
];
|
||||
|
||||
packages = [self'.packages.plow];
|
||||
shellHook = ''
|
||||
root=$(git rev-parse --show-toplevel)
|
||||
|
||||
export WEAVE_FROM=$root/home
|
||||
export WEAVE_HIST=$root/.weavehist
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -1 +1,29 @@
|
|||
source /etc/bash.bashrc
|
||||
# shellcheck shell=bash
|
||||
|
||||
shopt -s autocd globstar nullglob extglob checkwinsize
|
||||
|
||||
for rc in /etc/bashrc /etc/*.bashrc; do
|
||||
if [[ -e $rc ]]; then
|
||||
# shellcheck disable=SC1090
|
||||
source "$rc"
|
||||
fi
|
||||
done
|
||||
|
||||
if hash direnv 2>/dev/null; then
|
||||
eval "$(direnv hook bash)"
|
||||
fi
|
||||
|
||||
if hash starship 2>/dev/null; then
|
||||
eval "$(starship init bash)"
|
||||
fi
|
||||
|
||||
if hash nix 2>/dev/null; then
|
||||
export PATH=${XDG_STATE_HOME:-~/.local/state}/nix/profile/bin:$PATH
|
||||
fi
|
||||
|
||||
if hash hx 2>/dev/null; then
|
||||
export EDITOR=hx
|
||||
export VISUAL=hx
|
||||
fi
|
||||
|
||||
export PATH=~/.local/bin:$PATH
|
||||
|
|
15
home/bottom/.config/bottom/bottom.toml
Normal file
15
home/bottom/.config/bottom/bottom.toml
Normal file
|
@ -0,0 +1,15 @@
|
|||
[flags]
|
||||
rate = "1s"
|
||||
retention = "10m"
|
||||
|
||||
temperature_type = "celsius"
|
||||
|
||||
battery = true
|
||||
enable_cache_memory = true
|
||||
|
||||
tree = true
|
||||
show_table_scroll_position = true
|
||||
process_command = false
|
||||
|
||||
[styles]
|
||||
theme = "gruvbox"
|
|
@ -12,10 +12,10 @@ if status is-interactive
|
|||
set fish_cursor_replace_one underscore blink
|
||||
set fish_cursor_visual block
|
||||
|
||||
if set -q XDG_CONFIG_HOME
|
||||
set -x RIPGREP_CONFIG_PATH $XDG_CONFIG_HOME/ripgrep/ripgreprc
|
||||
else
|
||||
set -x RIPGREP_CONFIG_PATH ~/.config/ripgrep/ripgreprc
|
||||
begin
|
||||
set --local parent $XDG_CONFIG_HOME
|
||||
test -z $parent && set parent ~/.config
|
||||
set --export RIPGREP_CONFIG_PATH $parent/ripgrep/ripgreprc
|
||||
end
|
||||
|
||||
if type -q direnv
|
||||
|
@ -27,9 +27,18 @@ if status is-interactive
|
|||
end
|
||||
|
||||
if type -q nix
|
||||
fish_add_path ~/.local/state/nix/profile/bin
|
||||
set --local parent $XDG_STATE_HOME
|
||||
test -z $parent && set parent ~/.local/state
|
||||
fish_add_path $parent/nix/profile/bin
|
||||
end
|
||||
|
||||
if type -q hx
|
||||
set --export EDITOR hx
|
||||
set --export VISUAL hx
|
||||
end
|
||||
|
||||
fish_add_path ~/.local/bin
|
||||
|
||||
abbr --add l ls
|
||||
abbr --add lsa ls -a
|
||||
abbr --add la ls -a
|
||||
|
|
|
@ -1,12 +1,123 @@
|
|||
[user]
|
||||
name = Lukas Wurzinger
|
||||
email = lukas@wrz.one
|
||||
signingkey = ~/.ssh/id_ed25519.pub
|
||||
# Error when the user has not explicitly been configured
|
||||
useConfigOnly = true
|
||||
[core]
|
||||
# Global gitignore
|
||||
excludesFile = ~/.config/git/ignore
|
||||
# Paginate output
|
||||
pager = less
|
||||
# Use Helix as default editor
|
||||
editor = hx
|
||||
# Don't consider trailing space change as a cause for merge conflicts
|
||||
whitespace = -trailing-space
|
||||
[init]
|
||||
defaultBranch = main
|
||||
[gpg]
|
||||
# Use SSH keys for signing
|
||||
format = ssh
|
||||
[commit]
|
||||
# Sign commits
|
||||
gpgsign = true
|
||||
[push]
|
||||
# Avoid having to manually set up remote branches
|
||||
autoSetupRemote = true
|
||||
[help]
|
||||
# Only display suggestions
|
||||
autoCorrect = 0
|
||||
[color]
|
||||
# Pretty
|
||||
ui = auto
|
||||
[diff]
|
||||
# Use better, descriptive initials (c, i, w) instead of a/b.
|
||||
mnemonicPrefix = true
|
||||
# Show renames/moves as such
|
||||
renames = true
|
||||
# When using --word-diff, assume --word-diff-regex=.
|
||||
wordRegex = .
|
||||
# Display submodule-related information (commit listings)
|
||||
submodule = log
|
||||
# Use Helix as default diff tool when running `git difftool` (TODO)
|
||||
# tool = helix
|
||||
[difftool]
|
||||
prompt = false
|
||||
# [difftool "helix"]
|
||||
# cmd = hx --wait --diff -- "$LOCAL" "$REMOTE"
|
||||
[fetch]
|
||||
# Auto-fetch submodule changes (won't auto-update)
|
||||
recurseSubmodules = on-demand
|
||||
[grep]
|
||||
break = true
|
||||
heading = true
|
||||
lineNumber = true
|
||||
# Consider most regexes to be ERE
|
||||
extendedRegexp = true
|
||||
[log]
|
||||
# Use abbrev SHAs whenever possible/relevant instead of full 40 chars
|
||||
abbrevCommit = true
|
||||
# Automatically --follow when given a single path
|
||||
follow = true
|
||||
[merge]
|
||||
# Display common-ancestor blocks in conflict hunks
|
||||
conflictStyle = diff3
|
||||
# Disable fast-forward merges as default merge strategy
|
||||
ff = false
|
||||
[mergetool]
|
||||
# Clean up backup files created by merge tools on tool exit
|
||||
keepBackup = false
|
||||
# Clean up temp files created by merge tools on tool exit
|
||||
keepTemporaries = false
|
||||
# Put the temp files in a dedicated dir anyway
|
||||
writeToTemp = true
|
||||
# Auto-accept file prompts when launching merge tools
|
||||
prompt = false
|
||||
[push]
|
||||
# Default push should only push the current branch to its push target, regardless of its remote name
|
||||
default = upstream
|
||||
# When pushing, also push tags whose commit-ishs are now reachable upstream
|
||||
followTags = true
|
||||
[rebase]
|
||||
# Automatically stash CWD and stage when running rebase
|
||||
autoStash = true
|
||||
[status]
|
||||
# Display submodule rev change summaries in status
|
||||
submoduleSummary = true
|
||||
# Recursively traverse untracked directories to display all contents
|
||||
showUntrackedFiles = all
|
||||
[tag]
|
||||
# Sort tags as version numbers whenever applicable
|
||||
sort = version:refname
|
||||
[alias]
|
||||
# List available aliases
|
||||
aliases = !git config --get-regexp '^alias\\.' | sed -E 's/^alias\\.//'
|
||||
# Command shortcuts
|
||||
ci = commit
|
||||
co = checkout
|
||||
st = status
|
||||
sw = switch
|
||||
rs = restore
|
||||
# Update last commit with staged files without editing the commit message
|
||||
oops = commit --amend --no-edit
|
||||
# Ensure that force-pushing won't lose someone else's work (only mine)
|
||||
push-with-lease = push --force-with-lease
|
||||
# Replay each commit during rebase with the standard commit command which will trigger hooks
|
||||
rebase-with-hooks = rebase --exec 'git reset --soft HEAD~1 && git commit -C HEAD@{1}'
|
||||
# Review commit log
|
||||
review = log --graph
|
||||
# List local commits that were not pushed to remote repository
|
||||
log-local = log @{push}..
|
||||
review-local = review @{push}..
|
||||
# Edit last commit message
|
||||
reword = commit --amend
|
||||
# Undo last commit but keep changed files in stage
|
||||
uncommit = reset --soft HEAD~1
|
||||
# Remove file(s) from Git but not from disk
|
||||
untrack = rm --cached --
|
||||
|
||||
[includeIf "gitdir:~/Personal/"]
|
||||
path = config-personal
|
||||
|
||||
[includeIf "gitdir:~/Work/"]
|
||||
path = config-work
|
||||
|
||||
[include]
|
||||
path = config-local
|
||||
|
|
4
home/git/.config/git/config-personal
Normal file
4
home/git/.config/git/config-personal
Normal file
|
@ -0,0 +1,4 @@
|
|||
[user]
|
||||
name = Lukas Wurzinger
|
||||
email = lukas@wrz.one
|
||||
signingkey = ~/.ssh/id_ed25519.pub
|
4
home/git/.config/git/config-work
Normal file
4
home/git/.config/git/config-work
Normal file
|
@ -0,0 +1,4 @@
|
|||
[user]
|
||||
name = Lukas Wurzinger
|
||||
email = lukas@wrz.one
|
||||
signingkey = ~/.ssh/id_ed25519.pub
|
|
@ -47,5 +47,9 @@ zig-cache/
|
|||
|
||||
zig-out/
|
||||
|
||||
.devenv*
|
||||
devenv.local.nix
|
||||
|
||||
.direnv/
|
||||
.devenv/
|
||||
|
||||
.pre-commit-config.yaml
|
||||
|
|
31
home/gitui/.config/gitui/key_bindings.ron
Normal file
31
home/gitui/.config/gitui/key_bindings.ron
Normal file
|
@ -0,0 +1,31 @@
|
|||
(
|
||||
open_help: Some(( code: F(1), modifiers: "")),
|
||||
|
||||
move_left: Some(( code: Char('h'), modifiers: "")),
|
||||
move_right: Some(( code: Char('l'), modifiers: "")),
|
||||
move_up: Some(( code: Char('k'), modifiers: "")),
|
||||
move_down: Some(( code: Char('j'), modifiers: "")),
|
||||
|
||||
popup_up: Some(( code: Char('p'), modifiers: "CONTROL")),
|
||||
popup_down: Some(( code: Char('n'), modifiers: "CONTROL")),
|
||||
page_up: Some(( code: Char('b'), modifiers: "CONTROL")),
|
||||
page_down: Some(( code: Char('f'), modifiers: "CONTROL")),
|
||||
home: Some(( code: Char('g'), modifiers: "")),
|
||||
end: Some(( code: Char('G'), modifiers: "SHIFT")),
|
||||
shift_up: Some(( code: Char('K'), modifiers: "SHIFT")),
|
||||
shift_down: Some(( code: Char('J'), modifiers: "SHIFT")),
|
||||
|
||||
edit_file: Some(( code: Char('I'), modifiers: "SHIFT")),
|
||||
|
||||
status_reset_item: Some(( code: Char('U'), modifiers: "SHIFT")),
|
||||
|
||||
diff_reset_lines: Some(( code: Char('u'), modifiers: "")),
|
||||
diff_stage_lines: Some(( code: Char('s'), modifiers: "")),
|
||||
|
||||
stashing_save: Some(( code: Char('w'), modifiers: "")),
|
||||
stashing_toggle_index: Some(( code: Char('m'), modifiers: "")),
|
||||
|
||||
stash_open: Some(( code: Char('l'), modifiers: "")),
|
||||
|
||||
abort_merge: Some(( code: Char('M'), modifiers: "SHIFT")),
|
||||
)
|
|
@ -50,7 +50,6 @@ after-delay.enable = true
|
|||
after-delay.timeout = 3000
|
||||
|
||||
[keys.normal]
|
||||
# Nicities
|
||||
esc = ["collapse_selection", "keep_primary_selection"]
|
||||
|
||||
C-h = "select_prev_sibling"
|
||||
|
@ -65,13 +64,7 @@ C-r = "redo"
|
|||
|
||||
x = "extend_line"
|
||||
|
||||
# Vim-like
|
||||
V = ["select_mode", "extend_to_line_bounds"]
|
||||
C = ["extend_to_line_end", "yank_main_selection_to_clipboard", "delete_selection", "insert_mode"]
|
||||
D = ["extend_to_line_end", "yank_main_selection_to_clipboard", "delete_selection"]
|
||||
G = "goto_last_line"
|
||||
|
||||
# Vim-like but also generally useful
|
||||
# Vim
|
||||
"{" = ["goto_prev_paragraph", "collapse_selection"]
|
||||
"}" = ["goto_next_paragraph", "collapse_selection"]
|
||||
|
||||
|
@ -84,7 +77,9 @@ a = ["append_mode", "collapse_selection"]
|
|||
|
||||
u = ["undo", "collapse_selection"]
|
||||
|
||||
## Search for word under cursor
|
||||
G = "goto_last_line"
|
||||
|
||||
# Search for word under cursor
|
||||
"*" = ["move_char_right", "move_prev_word_start", "move_next_word_end", "search_selection", "search_next"]
|
||||
"#" = ["move_char_right", "move_prev_word_start", "move_next_word_end", "search_selection", "search_prev"]
|
||||
|
||||
|
@ -92,20 +87,13 @@ u = ["undo", "collapse_selection"]
|
|||
esc = ["collapse_selection", "normal_mode"]
|
||||
|
||||
[keys.select]
|
||||
# Nicities
|
||||
esc = ["collapse_selection", "keep_primary_selection", "normal_mode"]
|
||||
|
||||
";" = ["collapse_selection", "normal_mode"]
|
||||
|
||||
x = "extend_line"
|
||||
|
||||
# Vim-like
|
||||
V = ["select_mode", "extend_to_line_bounds"]
|
||||
C = ["extend_to_line_end", "yank_main_selection_to_clipboard", "delete_selection", "insert_mode"]
|
||||
D = ["extend_to_line_end", "yank_main_selection_to_clipboard", "delete_selection"]
|
||||
G = "goto_last_line"
|
||||
|
||||
# Vim-like but also generally useful
|
||||
# Vim
|
||||
"{" = ["goto_prev_paragraph", "collapse_selection"]
|
||||
"}" = ["goto_next_paragraph", "collapse_selection"]
|
||||
|
||||
|
@ -115,3 +103,5 @@ a = "select_textobject_around"
|
|||
0 = "goto_first_nonwhitespace"
|
||||
"^" = "goto_line_start"
|
||||
"$" = "goto_line_end"
|
||||
|
||||
G = "goto_last_line"
|
||||
|
|
|
@ -1,3 +1,16 @@
|
|||
[[language]]
|
||||
name = "gotmpl"
|
||||
file-types = ["tmpl"]
|
||||
|
||||
[[language]]
|
||||
name = "python"
|
||||
language-servers = [ "basedpyright" ]
|
||||
formatter = {command = 'ruff', args = ["format", "--quiet", "-"]}
|
||||
|
||||
[language-server]
|
||||
zk-lsp = { command = "zk", args = [ "lsp" ] }
|
||||
|
||||
[[language]]
|
||||
name = "markdown"
|
||||
roots = [ ".zk" ]
|
||||
language-servers = [ "zk-lsp" ]
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
auto-optimise-store = true
|
||||
experimental-features = nix-command flakes
|
||||
use-xdg-base-directories = true
|
||||
substituters = https://cache.nixos.org https://cosmic.cachix.org/ https://cache.nixos.org/ https://fossar.cachix.org https://cosmic.cachix.org
|
||||
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE= fossar.cachix.org-1:Zv6FuqIboeHPWQS7ysLCJ7UT7xExb4OE8c4LyGb5AsE=
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
Include local/*
|
||||
|
||||
Host *
|
||||
Compression yes
|
||||
ServerAliveInterval 60
|
||||
|
|
50
home/zk/.config/zk/config.toml
Normal file
50
home/zk/.config/zk/config.toml
Normal file
|
@ -0,0 +1,50 @@
|
|||
[notebook]
|
||||
dir = "~/Notes"
|
||||
|
||||
[note]
|
||||
language = "en"
|
||||
default-title = "Untitled"
|
||||
filename = "{{id}}-{{slug title}}"
|
||||
extension = "md"
|
||||
template = "default.md"
|
||||
|
||||
id-charset = "alphanum"
|
||||
id-length = 4
|
||||
id-case = "lower"
|
||||
|
||||
[extra]
|
||||
author = "Helvetica"
|
||||
|
||||
[group.journal]
|
||||
paths = ["journal/weekly", "journal/daily"]
|
||||
|
||||
[group.journal.note]
|
||||
filename = "{{format-date now}}"
|
||||
|
||||
[format.markdown]
|
||||
hashtags = true
|
||||
colon-tags = true
|
||||
|
||||
[tool]
|
||||
editor = "hx"
|
||||
# shell = "/bin/bash"
|
||||
# pager = "less -FIRX"
|
||||
fzf-preview = "bat -p --color always {-1}"
|
||||
|
||||
[filter]
|
||||
recents = "--sort created- --created-after 'last two weeks'"
|
||||
|
||||
[alias]
|
||||
# Edit the last modified note.
|
||||
edlast = "zk edit --limit 1 --sort modified- $@"
|
||||
# Edit the notes selected interactively among the notes created the last two weeks.
|
||||
recent = "zk edit --sort created- --created-after 'last two weeks' --interactive"
|
||||
# Show a random note.
|
||||
lucky = "zk list --quiet --format full --sort random --limit 1"
|
||||
|
||||
[lsp]
|
||||
[lsp.diagnostics]
|
||||
# Report titles of wiki-links as hints.
|
||||
wiki-title = "hint"
|
||||
# Warn for dead links between notes.
|
||||
dead-link = "error"
|
12
packages.txt
12
packages.txt
|
@ -1,12 +0,0 @@
|
|||
bash
|
||||
direnv
|
||||
fd
|
||||
fish
|
||||
git
|
||||
gitui
|
||||
helix
|
||||
nix
|
||||
ripgrep
|
||||
starship
|
||||
wl-clipboard
|
||||
zellij
|
|
@ -1,6 +0,0 @@
|
|||
{writeShellApplication}:
|
||||
writeShellApplication {
|
||||
name = "plow";
|
||||
|
||||
text = builtins.readFile ./plow.bash;
|
||||
}
|
|
@ -1,74 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
shopt -s nullglob globstar
|
||||
|
||||
opts=$(getopt --options f:t:Fivm: --longoptions=from:,to:,force,interactive,verbose,directory-mode: --name "$0" -- "$@")
|
||||
|
||||
eval set -- "$opts"
|
||||
|
||||
from=${PLOW_FROM:-$PWD}
|
||||
to=${PLOW_TO:-$HOME}
|
||||
lnflags=()
|
||||
mkdirflags=()
|
||||
while true; do
|
||||
case "$1" in
|
||||
-f | --from)
|
||||
from=$2
|
||||
shift 2
|
||||
;;
|
||||
-t | --to)
|
||||
to=$2
|
||||
shift 2
|
||||
;;
|
||||
-F | --force)
|
||||
lnflags+=(--force)
|
||||
shift
|
||||
;;
|
||||
-i | --interactive)
|
||||
lnflags+=(--interactive)
|
||||
shift
|
||||
;;
|
||||
-v | --verbose)
|
||||
lnflags+=(--verbose)
|
||||
mkdirflags+=(--verbose)
|
||||
shift
|
||||
;;
|
||||
-m | --directory-mode)
|
||||
mkdirflags+=(--mode "$2")
|
||||
shift 2
|
||||
;;
|
||||
--)
|
||||
shift
|
||||
break
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
from=$(realpath --strip -- "$from")
|
||||
to=$(realpath --strip -- "$to")
|
||||
|
||||
if (( $# > 0 )); then
|
||||
choices=("$@")
|
||||
else
|
||||
choices=()
|
||||
for dir in "$from"/*/; do
|
||||
choices+=("$(basename -- "$dir")")
|
||||
done
|
||||
fi
|
||||
|
||||
shopt -s dotglob
|
||||
|
||||
for choice in "${choices[@]}"; do
|
||||
prefix=$from/$choice
|
||||
for target in "$prefix"/**/*; do
|
||||
if [[ -f "$target" ]]; then
|
||||
link=$to${target#"$prefix"}
|
||||
mkdir --parents "${mkdirflags[@]}" -- "$(dirname -- "$link")"
|
||||
ln --symbolic "${lnflags[@]}" -- "$target" "$link"
|
||||
fi
|
||||
done
|
||||
done
|
Loading…
Add table
Add a link
Reference in a new issue