Compare commits

...
Sign in to create a new pull request.

91 commits

Author SHA1 Message Date
Anthony Cicchetti
f5d5dfa94c updates 2025-03-31 08:53:40 -04:00
Anthony Cicchetti
bb71dcbced tons of stuff, all in neovim 2025-03-28 16:35:51 -04:00
Anthony Cicchetti
aeb6afa880 blink-cmp - Way nicer 2025-03-28 15:45:52 -04:00
Anthony Cicchetti
0043e78eb2 zellij shakeup 2025-03-24 11:49:35 -04:00
Anthony Cicchetti
257d53e993 switch back to Maple, plus neovide changes 2025-03-24 09:29:46 -04:00
a5168b87dd maple-mono fixes 2025-03-23 21:30:11 -04:00
6d49b68de8 updates 2025-03-17 18:14:34 -04:00
Anthony Cicchetti
7c0f157560 updates 2025-03-10 08:58:51 -04:00
Anthony Cicchetti
b55b73075b flake.lock updates 2025-03-05 09:59:19 -05:00
Anthony Cicchetti
f0e371cda2 updates 2025-02-25 09:38:50 -05:00
Anthony Cicchetti
7de37a7b5d Berkeley Mono in neovide 2025-02-06 10:42:58 -05:00
Anthony Cicchetti
087a7d30d2 updates 2025-02-05 08:37:38 -05:00
Anthony Cicchetti
5c592a0034 maccy (clipboard manager) 2025-02-04 10:52:24 -05:00
Anthony Cicchetti
ddc4b83e77 ghostty and zed and new fonts 2025-02-04 08:20:51 -05:00
Anthony Cicchetti
b894d7f4ec nixvim no longer follows nixpkgs sadly 2025-02-03 08:21:46 -05:00
Anthony Cicchetti
b81be4ee0f updates 2025-01-30 10:00:50 -05:00
Anthony Cicchetti
83db3efd18 updates 2025-01-27 09:16:27 -05:00
414550da70 switch to nixfmt-rfc-style, run nix fmt 2025-01-25 11:02:36 -05:00
Anthony Cicchetti
601817ece5 updates 2025-01-21 08:39:21 -05:00
Anthony Cicchetti
294a9d3c42 updates, and some SetEnv TERM 2025-01-17 09:09:38 -05:00
Anthony Cicchetti
f227aaca0a updates 2025-01-16 09:11:45 -05:00
Anthony Cicchetti
c1fe196ac7 updates or something 2025-01-10 13:13:09 -05:00
7dcfd82a90 cy 2025-01-03 22:52:44 -05:00
b4bc034f9b updates, fix zshrc, default terminal on macOS == ghostty 2025-01-01 20:24:16 -05:00
99920bee6a remove wezterm override 2024-12-30 16:33:34 -05:00
89e2b46a2c updates 2024-12-30 14:12:09 -05:00
57288d1d23 ghostty, among other things 2024-12-29 17:05:15 -05:00
Anthony Cicchetti
60362b3dd1 fontconfig 2024-12-19 08:54:12 -05:00
Anthony Cicchetti
815c1c15c2 updates 2024-12-19 08:38:48 -05:00
5ef6cec155 updates, more font-handling 2024-12-15 22:03:14 -05:00
Anthony Cicchetti
3ca79cf7e0 updates, remove devenv binary 2024-12-10 11:00:19 -05:00
Anthony Cicchetti
12e5310f12 add yamlls 2024-12-02 13:48:34 -05:00
Anthony Cicchetti
eb9f25b740 telescope fixes 2024-11-25 13:36:38 -05:00
2b7bbdf2fe bump devenv flake 2024-11-24 15:35:05 -05:00
08c92c7220 remove zed from default nix 2024-11-23 11:24:29 -05:00
Anthony Cicchetti
999bded4d4 departure mono 2024-11-22 13:45:47 -05:00
Anthony Cicchetti
66d9bd1c52 updates 2024-11-21 10:24:18 -05:00
Anthony Cicchetti
ac7a4a83cf updates 2024-11-19 13:56:19 -05:00
Anthony Cicchetti
0d5c8e93d5 merged up 2024-11-18 08:52:08 -05:00
600a5aa862 fmt, and jujutsu overlay 2024-11-16 13:50:08 -05:00
0a5faf47c2 nixvim fixups 2024-11-15 18:40:28 -05:00
Anthony Cicchetti
72ec14cda1 back on not-staging-next 2024-11-14 11:14:10 -05:00
57e7c1e02e nixvim (#7)
Co-authored-by: Anthony Cicchetti <acicchetti@jellyfish.co>
Reviewed-on: #7
2024-11-10 18:52:23 -05:00
0d15d7179e nixpkgs/staging-next to get neovide working again 2024-11-10 16:07:33 -05:00
Anthony Cicchetti
95e1ee46b1 remove the wezterm nonsense, just use zellij like a normie 2024-11-05 15:04:30 -05:00
Anthony Cicchetti
e89c6941d3 wezterm mux? 2024-10-28 15:25:30 -04:00
f0bdfb0a05 wezterm-gui as a real option 2024-10-20 22:44:09 -04:00
71ae53bd5e fixes 2024-10-20 22:04:32 -04:00
Anthony Cicchetti
fc7045f1d7 fix deprecation 2024-10-16 13:33:39 -04:00
Anthony Cicchetti
b040c4defd updates, and some mise 2024-10-15 15:11:50 -04:00
2dd6de9f59 see-cat 2024-10-12 22:41:05 -04:00
62694b358b picocrypt 2024-10-12 18:41:09 -04:00
Anthony Cicchetti
2e03f41459 updates 2024-10-10 10:29:08 -04:00
Anthony Cicchetti
153a9932b5 updates 2024-10-01 11:01:29 -04:00
Anthony Cicchetti
a29ca36b6a updates 2024-09-26 09:12:30 -04:00
Anthony Cicchetti
9a812e16e8 zed stuff 2024-09-24 15:17:55 -04:00
Anthony Cicchetti
9ecded3c29 updates 2024-09-24 08:53:07 -04:00
Anthony Cicchetti
51d98089b0 updates & devenv updates 2024-09-23 08:41:28 -04:00
3394c3157f updates 2024-09-22 15:53:37 -04:00
Anthony Cicchetti
7ada6a7ffe updates 2024-09-19 09:33:34 -04:00
Anthony Cicchetti
6c960be16a updates, that finally worked 2024-09-17 08:32:55 -04:00
fee99e186f what do I need ruby for 2024-09-07 11:06:41 -04:00
Anthony Cicchetti
ecd44cf125 updates 2024-09-05 09:07:43 -04:00
Anthony Cicchetti
4b674603c7 uv-via-mise 2024-09-04 15:55:37 -04:00
Anthony Cicchetti
7230af1223 Fix atuin 2024-08-29 10:03:32 -04:00
Anthony Cicchetti
4062a898d2 updates 2024-08-28 09:00:20 -04:00
Anthony Cicchetti
114303e4b4 vale + zsh-autosuggestions 2024-08-26 09:28:52 -04:00
Anthony Cicchetti
0c803cacbf updates 2024-08-26 07:59:43 -04:00
7af9e17e2a updates 2024-08-23 09:23:54 -04:00
Anthony Cicchetti
a5bfe7a273 atuin self-hosted setup 2024-08-21 11:54:10 -04:00
Anthony Cicchetti
845b65d714 overlay mynixpkgs 2024-08-21 09:00:06 -04:00
Anthony Cicchetti
2f3661365c fixup some rust breakages 2024-08-14 15:31:42 -04:00
Anthony Cicchetti
807fa7249a change zsh-vi-mode plugin 2024-08-13 14:27:39 -04:00
Anthony Cicchetti
7d39c221e6 pushd_silent 2024-08-12 10:35:07 -04:00
Anthony Cicchetti
9bfab277e3 updates 2024-08-12 08:40:54 -04:00
Anthony Cicchetti
c6a614fc1f no more luasnip 2024-08-05 09:51:11 -04:00
326c36d9b7 flake updates 2024-08-03 11:02:45 -04:00
Anthony Cicchetti
80698f4d65 updates 2024-07-31 14:37:22 -04:00
Anthony Cicchetti
a3fcd0adea more updates, devenv update 2024-07-26 09:32:02 -04:00
Anthony Cicchetti
cff69c8f5d zed keymaps, and updates 2024-07-26 08:00:26 -04:00
Anthony Cicchetti
cba2290cd2 updates 2024-07-23 09:28:43 -04:00
28ab8e2d57 updates 2024-07-19 18:20:18 -04:00
5ff1cd9b81 flake lock updates 2024-07-17 08:57:10 -04:00
e6cd790dfb Updates 2024-07-11 09:30:45 -04:00
3923f11ff8 topgrade stuff, because jj as vcs now 2024-07-10 09:41:35 -04:00
8a47be9700 More git options set 2024-07-09 14:13:00 -04:00
a87da58eaa Add custom starship config, updates 2024-07-08 09:55:40 -04:00
4dcccd888b Formatting, removing duplicate config definition 2024-07-07 11:34:00 -04:00
be706005eb Adding jujutsu config 2024-07-07 11:26:35 -04:00
75ee8c9cf1 Remove ov 2024-07-07 11:26:35 -04:00
56ae7c11c8 updates for flake.locks 2024-07-03 09:40:45 -04:00
34 changed files with 1398 additions and 1390 deletions

4
.envrc
View file

@ -1,5 +1,5 @@
if ! has nix_direnv_version || ! nix_direnv_version 3.0.4; then
source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/3.0.4/direnvrc" "sha256-DzlYZ33mWF/Gs8DDeyjr8mnVmQGx7ASYqA5WlxwvBG4="
if ! has nix_direnv_version || ! nix_direnv_version 3.0.5; then
source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/3.0.5/direnvrc" "sha256-DzlYZ33mWF/Gs8DDeyjr8mnVmQGx7ASYqA5WlxwvBG4="
fi
watch_file flake.nix

1
cy/cy.janet Normal file
View file

@ -0,0 +1 @@
(key/bind :root ["ctrl+a" "p"] action/command-palette)

View file

@ -21,8 +21,8 @@
;; font string. You generally only need these two:
;; (setq doom-font (font-spec :family "monospace" :size 12 :weight 'semi-light)
;; doom-variable-pitch-font (font-spec :family "sans" :size 13))
(setq doom-font (font-spec :family "Iosevka Custom" :size 14 :weight 'medium)
doom-unicode-font (font-spec :family "Iosevka Custom" :size 14 :weight 'medium))
(setq doom-font (font-spec :family "TX-02-BerkeleyAC" :size 14 :weight 'medium)
doom-unicode-font (font-spec :family "TX-02-BerkeleyAC" :size 14 :weight 'medium))
;; There are two ways to load a theme. Both assume the theme is installed and
;; available. You can either set `doom-theme' or manually load a theme with the

389
flake.lock generated
View file

@ -2,30 +2,28 @@
"nodes": {
"cachix": {
"inputs": {
"devenv": "devenv_2",
"devenv": [
"devenv"
],
"flake-compat": [
"devenv",
"flake-compat"
"devenv"
],
"nixpkgs": [
"devenv",
"nixpkgs"
"git-hooks": [
"devenv"
],
"pre-commit-hooks": [
"devenv",
"pre-commit-hooks"
]
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1712055811,
"narHash": "sha256-7FcfMm5A/f02yyzuavJe06zLa9hcMHsagE28ADcmQvk=",
"lastModified": 1737621947,
"narHash": "sha256-8HFvG7fvIFbgtaYAY2628Tb89fA55nPm2jSiNs0/Cws=",
"owner": "cachix",
"repo": "cachix",
"rev": "02e38da89851ec7fec3356a5c04bc8349cae0e30",
"rev": "f65a3cd5e339c223471e64c051434616e18cc4f5",
"type": "github"
},
"original": {
"owner": "cachix",
"ref": "latest",
"repo": "cachix",
"type": "github"
}
@ -33,52 +31,23 @@
"devenv": {
"inputs": {
"cachix": "cachix",
"flake-compat": "flake-compat_2",
"nix": "nix_2",
"nixpkgs": "nixpkgs_2",
"pre-commit-hooks": "pre-commit-hooks"
},
"locked": {
"lastModified": 1719759336,
"narHash": "sha256-3a34VL/QnHprl5gMy9xlx6d8J+iNp+W88Ex8smkgH9M=",
"owner": "cachix",
"repo": "devenv",
"rev": "bb32aa986f2f695385e54428d0eaf7d05b31466e",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "devenv",
"type": "github"
}
},
"devenv_2": {
"inputs": {
"flake-compat": [
"devenv",
"cachix",
"flake-compat"
],
"flake-compat": "flake-compat",
"git-hooks": "git-hooks",
"nix": "nix",
"nixpkgs": "nixpkgs",
"poetry2nix": "poetry2nix",
"pre-commit-hooks": [
"devenv",
"cachix",
"pre-commit-hooks"
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1708704632,
"narHash": "sha256-w+dOIW60FKMaHI1q5714CSibk99JfYxm0CzTinYWr+Q=",
"lastModified": 1743025451,
"narHash": "sha256-5gqfQwTpOIHWSltdm5tKbyOvnTll81lGSiuC2EsVZt0=",
"owner": "cachix",
"repo": "devenv",
"rev": "2ee4450b0f4b95a1b90f2eb5ffea98b90e48c196",
"rev": "686aaf88c9c095fc49dadc620d1a814830c78206",
"type": "github"
},
"original": {
"owner": "cachix",
"ref": "python-rewrite",
"repo": "devenv",
"type": "github"
}
@ -86,11 +55,11 @@
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1673956053,
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
"lastModified": 1733328505,
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
"type": "github"
},
"original": {
@ -99,55 +68,50 @@
"type": "github"
}
},
"flake-compat_2": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-utils": {
"flake-parts": {
"inputs": {
"systems": "systems"
"nixpkgs-lib": [
"devenv",
"nix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1689068808,
"narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4",
"lastModified": 1712014858,
"narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "9126214d0a59633752a136528f5f3b9aa8565b7d",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-utils_2": {
"git-hooks": {
"inputs": {
"systems": "systems_2"
"flake-compat": [
"devenv"
],
"gitignore": "gitignore",
"nixpkgs": [
"devenv",
"nixpkgs"
]
},
"locked": {
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"lastModified": 1740849354,
"narHash": "sha256-oy33+t09FraucSZ2rZ6qnD1Y1c8azKKmQuCvF2ytUko=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "4a709a8ce9f8c08fa7ddb86761fe488ff7858a07",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
@ -155,7 +119,7 @@
"inputs": {
"nixpkgs": [
"devenv",
"pre-commit-hooks",
"git-hooks",
"nixpkgs"
]
},
@ -173,268 +137,109 @@
"type": "github"
}
},
"nix": {
"inputs": {
"flake-compat": "flake-compat",
"nixpkgs": [
"devenv",
"cachix",
"devenv",
"nixpkgs"
],
"nixpkgs-regression": "nixpkgs-regression"
},
"libgit2": {
"flake": false,
"locked": {
"lastModified": 1712911606,
"narHash": "sha256-BGvBhepCufsjcUkXnEEXhEVjwdJAwPglCC2+bInc794=",
"owner": "domenkozar",
"repo": "nix",
"rev": "b24a9318ea3f3600c1e24b4a00691ee912d4de12",
"lastModified": 1697646580,
"narHash": "sha256-oX4Z3S9WtJlwvj0uH9HlYcWv+x1hqp8mhXl7HsLu2f0=",
"owner": "libgit2",
"repo": "libgit2",
"rev": "45fd9ed7ae1a9b74b957ef4f337bc3c8b3df01b5",
"type": "github"
},
"original": {
"owner": "domenkozar",
"ref": "devenv-2.21",
"repo": "nix",
"owner": "libgit2",
"repo": "libgit2",
"type": "github"
}
},
"nix-github-actions": {
"nix": {
"inputs": {
"nixpkgs": [
"devenv",
"cachix",
"devenv",
"poetry2nix",
"nixpkgs"
"flake-compat": [
"devenv"
],
"flake-parts": "flake-parts",
"libgit2": "libgit2",
"nixpkgs": "nixpkgs_2",
"nixpkgs-23-11": [
"devenv"
],
"nixpkgs-regression": [
"devenv"
],
"pre-commit-hooks": [
"devenv"
]
},
"locked": {
"lastModified": 1688870561,
"narHash": "sha256-4UYkifnPEw1nAzqqPOTL2MvWtm3sNGw1UTYTalkTcGY=",
"owner": "nix-community",
"repo": "nix-github-actions",
"rev": "165b1650b753316aa7f1787f3005a8d2da0f5301",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nix-github-actions",
"type": "github"
}
},
"nix_2": {
"inputs": {
"flake-compat": [
"devenv",
"flake-compat"
],
"nixpkgs": [
"devenv",
"nixpkgs"
],
"nixpkgs-regression": "nixpkgs-regression_2"
},
"locked": {
"lastModified": 1712911606,
"narHash": "sha256-BGvBhepCufsjcUkXnEEXhEVjwdJAwPglCC2+bInc794=",
"lastModified": 1741798497,
"narHash": "sha256-E3j+3MoY8Y96mG1dUIiLFm2tZmNbRvSiyN7CrSKuAVg=",
"owner": "domenkozar",
"repo": "nix",
"rev": "b24a9318ea3f3600c1e24b4a00691ee912d4de12",
"rev": "f3f44b2baaf6c4c6e179de8cbb1cc6db031083cd",
"type": "github"
},
"original": {
"owner": "domenkozar",
"ref": "devenv-2.21",
"ref": "devenv-2.24",
"repo": "nix",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1692808169,
"narHash": "sha256-x9Opq06rIiwdwGeK2Ykj69dNc2IvUH1fY55Wm7atwrE=",
"lastModified": 1733212471,
"narHash": "sha256-M1+uCoV5igihRfcUKrr1riygbe73/dzNnzPsmaLCmpo=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "9201b5ff357e781bf014d0330d18555695df7ba8",
"rev": "55d15ad12a74eb7d4646254e13638ad0c4128776",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-regression": {
"locked": {
"lastModified": 1643052045,
"narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
"type": "github"
},
"original": {
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
"type": "github"
}
},
"nixpkgs-regression_2": {
"locked": {
"lastModified": 1643052045,
"narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
"type": "github"
},
"original": {
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2",
"type": "github"
}
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1710695816,
"narHash": "sha256-3Eh7fhEID17pv9ZxrPwCLfqXnYP006RKzSs0JptsN84=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "614b4613980a522ba49f0d194531beddbb7220d3",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-23.11",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1713361204,
"narHash": "sha256-TA6EDunWTkc5FvDCqU3W2T3SFn0gRZqh6D/hJnM02MM=",
"owner": "cachix",
"repo": "devenv-nixpkgs",
"rev": "285676e87ad9f0ca23d8714a6ab61e7e027020c6",
"lastModified": 1717432640,
"narHash": "sha256-+f9c4/ZX5MWDOuB1rKoWj+lBNm0z0rs4CK47HBLxy1o=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "88269ab3044128b7c2f4c7d68448b2fb50456870",
"type": "github"
},
"original": {
"owner": "cachix",
"ref": "rolling",
"repo": "devenv-nixpkgs",
"owner": "NixOS",
"ref": "release-24.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1719506693,
"narHash": "sha256-C8e9S7RzshSdHB7L+v9I51af1gDM5unhJ2xO1ywxNH8=",
"rev": "b2852eb9365c6de48ffb0dc2c9562591f652242a",
"revCount": 644565,
"lastModified": 1742422364,
"narHash": "sha256-mNqIplmEohk5jRkqYqG19GA8MbQ/D4gQSK0Mu4LvfRQ=",
"rev": "a84ebe20c6bc2ecbcfb000a50776219f48d134cc",
"revCount": 770807,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.1.644565%2Brev-b2852eb9365c6de48ffb0dc2c9562591f652242a/01906511-d0fc-7244-b596-2d790f5bfdb0/source.tar.gz"
"url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.1.770807%2Brev-a84ebe20c6bc2ecbcfb000a50776219f48d134cc/0195b626-8c1d-7fb9-9282-563af3d37ab9/source.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://flakehub.com/f/NixOS/nixpkgs/0.1.0.tar.gz"
}
},
"poetry2nix": {
"inputs": {
"flake-utils": "flake-utils",
"nix-github-actions": "nix-github-actions",
"nixpkgs": [
"devenv",
"cachix",
"devenv",
"nixpkgs"
]
},
"locked": {
"lastModified": 1692876271,
"narHash": "sha256-IXfZEkI0Mal5y1jr6IRWMqK8GW2/f28xJenZIPQqkY0=",
"owner": "nix-community",
"repo": "poetry2nix",
"rev": "d5006be9c2c2417dafb2e2e5034d83fabd207ee3",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "poetry2nix",
"type": "github"
}
},
"pre-commit-hooks": {
"inputs": {
"flake-compat": [
"devenv",
"flake-compat"
],
"flake-utils": "flake-utils_2",
"gitignore": "gitignore",
"nixpkgs": [
"devenv",
"nixpkgs"
],
"nixpkgs-stable": "nixpkgs-stable"
},
"locked": {
"lastModified": 1713775815,
"narHash": "sha256-Wu9cdYTnGQQwtT20QQMg7jzkANKQjwBD9iccfGKkfls=",
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"rev": "2ac4dcbf55ed43f3be0bae15e181f08a57af24a4",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"type": "github"
}
},
"root": {
"inputs": {
"devenv": "devenv",
"nixpkgs": "nixpkgs_3",
"systems": "systems_3"
"systems": "systems"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_3": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",

View file

@ -1,7 +1,12 @@
{
inputs = {
nixpkgs.url = "https://flakehub.com/f/NixOS/nixpkgs/0.1.0.tar.gz";
devenv.url = "github:cachix/devenv";
devenv = {
url = "github:cachix/devenv";
inputs = {
nixpkgs.follows = "nixpkgs";
};
};
};
nixConfig = {
@ -9,39 +14,51 @@
extra-substituters = "https://devenv.cachix.org";
};
outputs = {
nixpkgs,
devenv,
systems,
...
} @ inputs: let
forEachSystem = nixpkgs.lib.genAttrs (import systems);
in {
formatter = forEachSystem (system: nixpkgs.legacyPackages.${system}.alejandra);
devShells =
forEachSystem
(system: let
pkgs = nixpkgs.legacyPackages.${system};
in {
default = devenv.lib.mkShell {
inherit inputs pkgs;
modules = [
{
# https://devenv.sh/reference/options/
packages = [pkgs.hello pkgs.delta pkgs.difftastic pkgs.alejandra pkgs.nodePackages.bash-language-server pkgs.shellcheck pkgs.shfmt];
outputs =
{
nixpkgs,
devenv,
systems,
...
}@inputs:
let
forEachSystem = nixpkgs.lib.genAttrs (import systems);
in
{
formatter = forEachSystem (system: nixpkgs.legacyPackages.${system}.nixfmt-rfc-style);
devShells = forEachSystem (
system:
let
pkgs = nixpkgs.legacyPackages.${system};
in
{
default = devenv.lib.mkShell {
inherit inputs pkgs;
modules = [
{
# https://devenv.sh/reference/options/
packages = [
pkgs.hello
pkgs.delta
pkgs.difftastic
pkgs.nodePackages.bash-language-server
pkgs.shellcheck
pkgs.shfmt
];
pre-commit.hooks = {
alejandra.enable = true;
black.enable = true;
deadnix.enable = true;
stylua.enable = true;
shellcheck.enable = true;
shfmt.enable = true;
taplo.enable = true;
};
}
];
};
});
};
pre-commit.hooks = {
nixfmt-rfc-style.enable = true;
black.enable = true;
deadnix.enable = true;
stylua.enable = true;
shellcheck.enable = true;
shfmt.enable = true;
taplo.enable = true;
};
}
];
};
}
);
};
}

2
ghostty/config Normal file
View file

@ -0,0 +1,2 @@
font-family = "Berkeley Mono"
font-style = "Retina"

View file

@ -5,7 +5,8 @@ spoon.SpoonInstall:andUse("WindowHalfsAndThirds")
spoon.SpoonInstall:andUse("Commander")
spoon.SpoonInstall:andUse("ReloadConfiguration")
TERMINAL_NAME = "WezTerm"
-- Keep a running, and preferred terminal as the _last_ value here
TERMINAL_NAMES = { "Ghostty", "wezterm-gui", "WezTerm" }
spoon.WindowScreenLeftAndRight:bindHotkeys(spoon.WindowScreenLeftAndRight.defaultHotkeys)
@ -15,23 +16,36 @@ spoon.ReloadConfiguration:start()
pcall(require, "initlocal")
hs.hotkey.bind({"cmd", "alt", "ctrl"}, "SPACE", function ()
spoon.Commander.show()
hs.hotkey.bind({ "cmd", "alt", "ctrl" }, "SPACE", function()
spoon.Commander.show()
end)
hs.hotkey.bind({"ctrl"}, "t", function ()
local currentApp = hs.window.focusedWindow():application()
if (currentApp:name() == TERMINAL_NAME) then
hs.eventtap.keyStroke({"ctrl"}, "t", 1000, currentApp)
else
hs.application.launchOrFocus(TERMINAL_NAME)
end
hs.hotkey.bind({ "ctrl" }, "t", function()
local terminal = nil
for i = 1, #TERMINAL_NAMES do
-- Can't use .get here, as there's an open bug where it just… returns a window instead sometimes
if hs.application.find(TERMINAL_NAMES[i], true) then
terminal = hs.application.find(TERMINAL_NAMES[i], true)
break
end
end
local currentApp = hs.window.focusedWindow():application()
print(currentApp)
if terminal then
if currentApp:name() == terminal:name() then
hs.eventtap.keyStroke({ "ctrl" }, "t", 1000, currentApp)
else
terminal:activate()
end
else
hs.application.launchOrFocus(TERMINAL_NAMES[1])
end
end)
hs.hotkey.bind({"cmd", "alt"}, ",", function ()
hs.application.launchOrFocus("System Preferences")
hs.hotkey.bind({ "cmd", "alt" }, ",", function()
hs.application.launchOrFocus("System Preferences")
end)
hs.hotkey.bind({"cmd", "shift"}, "l", function ()
hs.application.launchOrFocus("Launchpad")
hs.hotkey.bind({ "cmd", "shift" }, "l", function()
hs.application.launchOrFocus("Launchpad")
end)

View file

@ -1,26 +1,5 @@
{
"nodes": {
"crane": {
"inputs": {
"nixpkgs": [
"zjstatus",
"nixpkgs"
]
},
"locked": {
"lastModified": 1718730147,
"narHash": "sha256-QmD6B6FYpuoCqu6ZuPJH896ItNquDkn0ulQlOn4ykN8=",
"owner": "ipetkov",
"repo": "crane",
"rev": "32c21c29b034d0a93fdb2379d6fabc40fc3d0e6c",
"type": "github"
},
"original": {
"owner": "ipetkov",
"repo": "crane",
"type": "github"
}
},
"fenix": {
"inputs": {
"nixpkgs": [
@ -29,11 +8,11 @@
"rust-analyzer-src": "rust-analyzer-src"
},
"locked": {
"lastModified": 1719815435,
"narHash": "sha256-K2xFp142onP35jcx7li10xUxNVEVRWjAdY8DSuR7Naw=",
"lastModified": 1742452566,
"narHash": "sha256-sVuLDQ2UIWfXUBbctzrZrXM2X05YjX08K7XHMztt36E=",
"owner": "nix-community",
"repo": "fenix",
"rev": "ebfe2c639111d7e82972a12711206afaeeda2450",
"rev": "7d9ba794daf5e8cc7ee728859bc688d8e26d5f06",
"type": "github"
},
"original": {
@ -42,16 +21,69 @@
"type": "github"
}
},
"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-compat_2": {
"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": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1741352980,
"narHash": "sha256-+u2UunDA4Cl5Fci3m7S643HzKmIDAe+fiXrLqYsR2fs=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "f4330d22f1c5d2ba72d3d22df5597d123fdb60a9",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
@ -60,22 +92,64 @@
"type": "github"
}
},
"haumea": {
"flake-utils_2": {
"inputs": {
"nixpkgs": "nixpkgs"
"systems": "systems_2"
},
"locked": {
"lastModified": 1685133229,
"narHash": "sha256-FePm/Gi9PBSNwiDFq3N+DWdfxFq0UKsVVTJS3cQPn94=",
"owner": "nix-community",
"repo": "haumea",
"rev": "34dd58385092a23018748b50f9b23de6266dffc2",
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "v0.2.2",
"repo": "haumea",
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_3": {
"inputs": {
"systems": "systems_3"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"ghostty": {
"inputs": {
"flake-compat": "flake-compat",
"flake-utils": "flake-utils_2",
"nixpkgs-stable": "nixpkgs-stable",
"nixpkgs-unstable": [
"nixpkgs"
],
"zig": "zig",
"zon2nix": "zon2nix"
},
"locked": {
"lastModified": 1743191728,
"narHash": "sha256-LrQd2IkfcmHdBh+pwPEPXzcosBerIEFzz/DbVNzBqig=",
"owner": "ghostty-org",
"repo": "ghostty",
"rev": "1067cd3d8a061eb5b23bc1a4c46ca10af4481941",
"type": "github"
},
"original": {
"owner": "ghostty-org",
"repo": "ghostty",
"type": "github"
}
},
@ -86,11 +160,11 @@
]
},
"locked": {
"lastModified": 1719827439,
"narHash": "sha256-tneHOIv1lEavZ0vQ+rgz67LPNCgOZVByYki3OkSshFU=",
"lastModified": 1743360001,
"narHash": "sha256-HtpS/ZdgWXw0y+aFdORcX5RuBGTyz3WskThspNR70SM=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "59ce796b2563e19821361abbe2067c3bb4143a7d",
"rev": "b6fd653ef8fbeccfd4958650757e91767a65506d",
"type": "github"
},
"original": {
@ -99,40 +173,31 @@
"type": "github"
}
},
"nix-flake-tests": {
"locked": {
"lastModified": 1677844186,
"narHash": "sha256-ErJZ/Gs1rxh561CJeWP5bohA2IcTq1rDneu1WT6CVII=",
"owner": "antifuchs",
"repo": "nix-flake-tests",
"rev": "bbd9216bd0f6495bb961a8eb8392b7ef55c67afb",
"type": "github"
},
"original": {
"owner": "antifuchs",
"repo": "nix-flake-tests",
"type": "github"
}
},
"nix-github-actions": {
"ixx": {
"inputs": {
"flake-utils": [
"nixvim",
"nuschtosSearch",
"flake-utils"
],
"nixpkgs": [
"nixneovimplugins",
"poetry2nix",
"nixvim",
"nuschtosSearch",
"nixpkgs"
]
},
"locked": {
"lastModified": 1688870561,
"narHash": "sha256-4UYkifnPEw1nAzqqPOTL2MvWtm3sNGw1UTYTalkTcGY=",
"owner": "nix-community",
"repo": "nix-github-actions",
"rev": "165b1650b753316aa7f1787f3005a8d2da0f5301",
"lastModified": 1729958008,
"narHash": "sha256-EiOq8jF4Z/zQe0QYVc3+qSKxRK//CFHMB84aYrYGwEs=",
"owner": "NuschtOS",
"repo": "ixx",
"rev": "9fd01aad037f345350eab2cd45e1946cc66da4eb",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nix-github-actions",
"owner": "NuschtOS",
"ref": "v0.0.6",
"repo": "ixx",
"type": "github"
}
},
@ -143,11 +208,11 @@
]
},
"locked": {
"lastModified": 1719832725,
"narHash": "sha256-dr8DkeS74KVNTgi8BE0BiUKALb+EKlMIV86G2xPYO64=",
"lastModified": 1743306489,
"narHash": "sha256-LROaIjSLo347cwcHRfSpqzEOa2FoLSeJwU4dOrGm55E=",
"owner": "Mic92",
"repo": "nix-index-database",
"rev": "2917972ed34ce292309b3a4976286f8b5c08db27",
"rev": "b3696bfb6c24aa61428839a99e8b40c53ac3a82d",
"type": "github"
},
"original": {
@ -156,150 +221,104 @@
"type": "github"
}
},
"nixneovim": {
"inputs": {
"flake-utils": [
"flake-utils"
],
"haumea": "haumea",
"home-manager": [
"home-manager"
],
"nix-flake-tests": "nix-flake-tests",
"nixneovimplugins": [
"nixneovimplugins"
],
"nixpkgs": [
"nixpkgs"
],
"nmd": "nmd",
"nmt": "nmt"
},
"locked": {
"lastModified": 1718612773,
"narHash": "sha256-Uzw1jJhriSwctKZvEc9vwUfKHSvnX7YGKJxYv8JPG14=",
"owner": "nixneovim",
"repo": "nixneovim",
"rev": "2ae81f2ed61ebf4ca4d4b36ea9e8eb5163380d44",
"type": "github"
},
"original": {
"owner": "nixneovim",
"repo": "nixneovim",
"rev": "2ae81f2ed61ebf4ca4d4b36ea9e8eb5163380d44",
"type": "github"
}
},
"nixneovimplugins": {
"inputs": {
"flake-compat": "flake-compat_2",
"flake-utils": [
"flake-utils"
],
"nixpkgs": [
"nixpkgs"
],
"poetry2nix": "poetry2nix"
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1719319285,
"narHash": "sha256-lSs8OrF4bSpNpmnt074xspUusTa+6UyXt50dnIZQdYA=",
"owner": "NixNeovim",
"repo": "NixNeovimPlugins",
"rev": "6fa0915e49dc3822f7630f0fece4819e09df014d",
"lastModified": 1743355494,
"narHash": "sha256-NlHg4uJ0aneeoh2q6ZMGElDStnSNxF4YdxNGgZitjQw=",
"owner": "m15a",
"repo": "flake-awesome-neovim-plugins",
"rev": "aa8458831dc4e07c159616091216f56e488fc952",
"type": "github"
},
"original": {
"owner": "NixNeovim",
"repo": "NixNeovimPlugins",
"owner": "m15a",
"repo": "flake-awesome-neovim-plugins",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1681001314,
"narHash": "sha256-5sDnCLdrKZqxLPK4KA8+f4A3YKO/u6ElpMILvX0g72c=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "367c0e1086a4eb4502b24d872cea2c7acdd557f4",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixpkgs.lib",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1719837240,
"narHash": "sha256-Qg3AqKTgFvttXP7O+1+OhGsRwrNr+7Hgm112v/n4XVE=",
"owner": "nixOS",
"lastModified": 1743423905,
"narHash": "sha256-KMl3R0n1H4Vo9OyFFwAUI6d799r8zbxV+Q5WSsVNajw=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "dcffdd1040ec14a003bb053e6df7e4e298d1de59",
"rev": "e68b342423c69aa8113894d9e89ae50e4fd9c456",
"type": "github"
},
"original": {
"owner": "nixOS",
"owner": "nixos",
"repo": "nixpkgs",
"type": "github"
}
},
"nmd": {
"flake": false,
"nixpkgs-stable": {
"locked": {
"lastModified": 1672949361,
"narHash": "sha256-WWg1kbilAb3sA+RoJtSYfAZvyYu1Nk79ocHaerwbQxQ=",
"owner": "~rycee",
"repo": "nmd",
"rev": "fb9cf8e991487c6923f3c654b8ae51b6f0f205ce",
"type": "sourcehut"
},
"original": {
"owner": "~rycee",
"repo": "nmd",
"rev": "fb9cf8e991487c6923f3c654b8ae51b6f0f205ce",
"type": "sourcehut"
}
},
"nmt": {
"flake": false,
"locked": {
"lastModified": 1709382952,
"narHash": "sha256-n/BvuWVcQxaXCU30feNRqWWqabhIIO2+tRFnhLIhjiQ=",
"owner": "jooooscha",
"repo": "nmt",
"rev": "86a09994d1007c39a1f4d386e3caea9b4681d9d6",
"lastModified": 1741992157,
"narHash": "sha256-nlIfTsTrMSksEJc1f7YexXiPVuzD1gOfeN1ggwZyUoc=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "da4b122f63095ca1199bd4d526f9e26426697689",
"type": "github"
},
"original": {
"owner": "jooooscha",
"repo": "nmt",
"owner": "nixos",
"ref": "release-24.11",
"repo": "nixpkgs",
"type": "github"
}
},
"poetry2nix": {
"nixvim": {
"inputs": {
"flake-utils": [
"nixneovimplugins",
"flake-utils"
],
"nix-github-actions": "nix-github-actions",
"flake-parts": "flake-parts",
"nixpkgs": [
"nixneovimplugins",
"nixpkgs"
],
"nuschtosSearch": "nuschtosSearch"
},
"locked": {
"lastModified": 1743362786,
"narHash": "sha256-XbXIRDbb8/vLBX1M096l7lM5wfzBTp1ZXfUl9bUhVGU=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "d81f37256d0a8691b837b74979d27bf89be8ecdd",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixvim",
"type": "github"
}
},
"nuschtosSearch": {
"inputs": {
"flake-utils": "flake-utils_3",
"ixx": "ixx",
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1689849924,
"narHash": "sha256-d259Z2S7CS7Na04qQNQ6LYQILuI7cf4Rpe76qc4mz40=",
"owner": "nix-community",
"repo": "poetry2nix",
"rev": "1d7eda9336f336392d24e9602be5cb9be7ae405c",
"lastModified": 1742659553,
"narHash": "sha256-i/JCrr/jApVorI9GkSV5to+USrRCa0rWuQDH8JSlK2A=",
"owner": "NuschtOS",
"repo": "search",
"rev": "508752835128a3977985a4d5225ff241f7756181",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "poetry2nix",
"owner": "NuschtOS",
"repo": "search",
"type": "github"
}
},
@ -307,22 +326,22 @@
"inputs": {
"fenix": "fenix",
"flake-utils": "flake-utils",
"ghostty": "ghostty",
"home-manager": "home-manager",
"nix-index-database": "nix-index-database",
"nixneovim": "nixneovim",
"nixneovimplugins": "nixneovimplugins",
"nixpkgs": "nixpkgs_2",
"zjstatus": "zjstatus"
"nixpkgs": "nixpkgs",
"nixvim": "nixvim"
}
},
"rust-analyzer-src": {
"flake": false,
"locked": {
"lastModified": 1719760370,
"narHash": "sha256-fsxAuW6RxKZYjAP3biUC6C4vaYFhDfWv8lp1Tmx3ZCY=",
"lastModified": 1742296961,
"narHash": "sha256-gCpvEQOrugHWLimD1wTFOJHagnSEP6VYBDspq96Idu0=",
"owner": "rust-lang",
"repo": "rust-analyzer",
"rev": "ea7fdada6a0940b239ddbde2048a4d7dac1efe1e",
"rev": "15d87419f1a123d8f888d608129c3ce3ff8f13d4",
"type": "github"
},
"original": {
@ -332,27 +351,6 @@
"type": "github"
}
},
"rust-overlay": {
"inputs": {
"nixpkgs": [
"zjstatus",
"nixpkgs"
]
},
"locked": {
"lastModified": 1719109180,
"narHash": "sha256-96dwGCV2yQxDozDATqbsM3YU0ft3Isw3cwVDO/eNCv8=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "5fc5f3a0d7eabf7db86851e6423f9d7fbceaf89d",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
@ -368,28 +366,108 @@
"type": "github"
}
},
"zjstatus": {
"inputs": {
"crane": "crane",
"flake-utils": [
"flake-utils"
],
"nixpkgs": [
"nixpkgs"
],
"rust-overlay": "rust-overlay"
},
"systems_2": {
"locked": {
"lastModified": 1719650330,
"narHash": "sha256-spoLPg8Ty7LvypwM4JpuWA06B/TUcIzyjs+N1nzGha4=",
"owner": "dj95",
"repo": "zjstatus",
"rev": "f5fd92d8ebd3152b0db4c85c6ff7b638c6f52d14",
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "dj95",
"repo": "zjstatus",
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_3": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"nixneovimplugins",
"nixpkgs"
]
},
"locked": {
"lastModified": 1743081648,
"narHash": "sha256-WRAylyYptt6OX5eCEBWyTwOEqEtD6zt33rlUkr6u3cE=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "29a3d7b768c70addce17af0869f6e2bd8f5be4b7",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"zig": {
"inputs": {
"flake-compat": [
"ghostty"
],
"flake-utils": [
"ghostty",
"flake-utils"
],
"nixpkgs": [
"ghostty",
"nixpkgs-stable"
]
},
"locked": {
"lastModified": 1741825901,
"narHash": "sha256-aeopo+aXg5I2IksOPFN79usw7AeimH1+tjfuMzJHFdk=",
"owner": "mitchellh",
"repo": "zig-overlay",
"rev": "0b14285e283f5a747f372fb2931835dd937c4383",
"type": "github"
},
"original": {
"owner": "mitchellh",
"repo": "zig-overlay",
"type": "github"
}
},
"zon2nix": {
"inputs": {
"flake-utils": [
"ghostty",
"flake-utils"
],
"nixpkgs": [
"ghostty",
"nixpkgs-unstable"
]
},
"locked": {
"lastModified": 1742104771,
"narHash": "sha256-LhidlyEA9MP8jGe1rEnyjGFCzLLgCdDpYeWggibayr0=",
"owner": "jcollie",
"repo": "zon2nix",
"rev": "56c159be489cc6c0e73c3930bd908ddc6fe89613",
"type": "github"
},
"original": {
"owner": "jcollie",
"ref": "56c159be489cc6c0e73c3930bd908ddc6fe89613",
"repo": "zon2nix",
"type": "github"
}
}

View file

@ -2,13 +2,23 @@
description = "Home Manager configuration of acicchetti";
nixConfig = {
extra-substituters = ["https://devenv.cachix.org" "https://nixpkgs.cachix.org" "https://nix-community.cachix.org"];
extra-trusted-public-keys = ["devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw=" "nixpkgs.cachix.org-1:q91R6hxbwFvDqTSDKwDAV4T5PxqXGxswD8vhONFMeOE=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="];
extra-substituters = [
"https://devenv.cachix.org"
"https://nixpkgs.cachix.org"
"https://nix-community.cachix.org"
];
extra-trusted-public-keys = [
"devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw="
"nixpkgs.cachix.org-1:q91R6hxbwFvDqTSDKwDAV4T5PxqXGxswD8vhONFMeOE="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
];
};
inputs = {
# Specify the source of Home Manager and Nixpkgs.
nixpkgs = {url = "github:nixOS/nixpkgs";};
nixpkgs = {
url = "github:nixos/nixpkgs";
};
flake-utils.url = "github:numtide/flake-utils"; # not directly used, but common source for the several flakes that do use it
home-manager = {
url = "github:nix-community/home-manager";
@ -18,24 +28,19 @@
url = "github:Mic92/nix-index-database";
inputs.nixpkgs.follows = "nixpkgs";
};
nixneovim = {
url = "github:nixneovim/nixneovim/2ae81f2ed61ebf4ca4d4b36ea9e8eb5163380d44";
ghostty = {
url = "github:ghostty-org/ghostty";
inputs.nixpkgs-unstable.follows = "nixpkgs";
};
nixvim = {
url = "github:nix-community/nixvim";
inputs = {
nixpkgs.follows = "nixpkgs";
home-manager.follows = "home-manager";
flake-utils.follows = "flake-utils";
nixneovimplugins.follows = "nixneovimplugins";
# home-manager.follows = "home-manager";
};
};
nixneovimplugins = {
url = "github:NixNeovim/NixNeovimPlugins";
inputs = {
nixpkgs.follows = "nixpkgs";
flake-utils.follows = "flake-utils";
};
};
zjstatus = {
url = "github:dj95/zjstatus";
url = "github:m15a/flake-awesome-neovim-plugins";
inputs = {
nixpkgs.follows = "nixpkgs";
flake-utils.follows = "flake-utils";
@ -49,55 +54,63 @@
};
};
outputs = {
self,
nixpkgs,
home-manager,
nix-index-database,
nixneovim,
nixneovimplugins,
zjstatus,
fenix,
...
}: let
supportedSystems = ["aarch64-darwin" "x86_64-linux"];
forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
outputs =
{
self,
nixpkgs,
home-manager,
nix-index-database,
nixvim,
fenix,
nixneovimplugins,
ghostty,
...
}:
let
supportedSystems = [
"aarch64-darwin"
"x86_64-linux"
];
forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
pkgs = forAllSystems (
system:
pkgs = forAllSystems (
system:
import nixpkgs {
inherit system;
config = {allowUnfree = true;};
config = {
allowUnfree = true;
};
overlays = [
(_final: prev: {
zjstatus = zjstatus.packages.${prev.system}.default;
})
ghostty.overlays.default
nixneovimplugins.overlays.default
fenix.overlays.default
];
}
);
);
homeManagerConfigs = forAllSystems (
system: {
homeManagerConfigs = forAllSystems (system: {
pkgs = pkgs.${system};
modules = [
{
imports = [
nixneovim.nixosModules.${system}.homeManager
nixvim.homeManagerModules.nixvim
];
}
nix-index-database.hmModules.nix-index
./home.nix
];
}
);
in {
formatter = forAllSystems (system: pkgs.${system}.alejandra);
homeConfigurations.aarch64-darwin-acicchetti = home-manager.lib.homeManagerConfiguration homeManagerConfigs."aarch64-darwin";
homeConfigurations.x86_64-linux-acicchetti = home-manager.lib.homeManagerConfiguration homeManagerConfigs."x86_64-linux";
});
in
{
formatter = forAllSystems (system: pkgs.${system}.nixfmt-rfc-style);
homeConfigurations.aarch64-darwin-acicchetti =
home-manager.lib.homeManagerConfiguration
homeManagerConfigs."aarch64-darwin";
homeConfigurations.x86_64-linux-acicchetti =
home-manager.lib.homeManagerConfiguration
homeManagerConfigs."x86_64-linux";
defaultPackage.aarch64-darwin = self.homeConfigurations.aarch64-darwin-acicchetti.activationPackage;
defaultPackage.x86_64-linux = self.homeConfigurations.x86_64-linux-acicchetti.activationPackage;
};
defaultPackage.aarch64-darwin = self.homeConfigurations.aarch64-darwin-acicchetti.activationPackage;
defaultPackage.x86_64-linux = self.homeConfigurations.x86_64-linux-acicchetti.activationPackage;
};
}

View file

@ -1,13 +1,12 @@
{pkgs, ...}: let
{ pkgs, ... }:
let
inherit (pkgs.stdenv.hostPlatform) isDarwin;
in {
in
{
home = {
username = "acicchetti";
homeDirectory =
if isDarwin
then "/Users/acicchetti"
else "/home/acicchetti";
homeDirectory = if isDarwin then "/Users/acicchetti" else "/home/acicchetti";
stateVersion = "24.11";
@ -16,6 +15,8 @@ in {
};
};
fonts.fontconfig.enable = true;
programs = {
home-manager.enable = true;
@ -34,6 +35,7 @@ in {
vim_insert = "steady-bar";
vim_normal = "steady-block";
};
sync_address = "https://atuin.acicchetti.dev";
};
};
@ -46,7 +48,7 @@ in {
eza = {
enable = true;
git = true;
icons = false;
icons = "auto";
enableZshIntegration = true;
};
@ -58,6 +60,18 @@ in {
};
};
ghostty = {
enable = true;
package = null;
# installVimSyntax = true;
# installBatSyntax = true;
enableZshIntegration = true;
settings = {
font-family = "Maple Mono NF";
font-style = "Medium";
};
};
htop = {
enable = true;
};
@ -65,13 +79,13 @@ in {
jujutsu = {
enable = true;
settings = {
user = {
name = "Anthony Cicchetti";
email = "anthony@anthonycicchetti.com";
};
"default-command" = "log";
};
user = {
name = "Anthony Cicchetti";
email = "anthony@anthonycicchetti.com";
};
"default-command" = "log";
};
};
nix-index = {
enable = true;
@ -84,6 +98,9 @@ in {
enable = true;
};
pay-respects = {
enable = true;
};
skim = {
enable = true;
enableZshIntegration = false;
@ -97,12 +114,26 @@ in {
enable = true;
settings = {
misc = {
disable = ["node" "nix" "home_manager" "gem" "ruby_gems" "cargo" "vim" "pipx" "pip3" "containers"];
disable = [
"node"
"nix"
"home_manager"
"gem"
"ruby_gems"
"cargo"
"vim"
"pipx"
"pip3"
"containers"
];
run_in_tmux = true;
display_time = true;
skip_notify = true;
};
git.max_concurrency = 5;
git = {
max_concurrency = 5;
pull_predefined = false;
};
linux.arch_package_manager = "paru";
};
};
@ -111,6 +142,7 @@ in {
enable = true;
enableZshIntegration = true;
extraConfig = builtins.readFile ../../wezterm/wezterm.lua;
# package = wezterm.packages.${pkgs.system}.default;
};
yazi = {

View file

@ -1,4 +1,5 @@
{...}: {
{ ... }:
{
home.sessionVariables = {
EDITOR = "nvim";
PAGE = "page -q 90000 -z 90000";

View file

@ -2,19 +2,21 @@
pkgs,
config,
...
}: let
}:
let
inherit (pkgs.stdenv.hostPlatform) isLinux;
repo_root = "../../..";
nv_fonts_basic = ["Iosevka Custom"];
nv_fonts_basic = [
"Maple Mono NF"
"Berkeley Mono"
"Departure Mono"
"Fantasque Sans Mono"
];
nv_fonts_normal =
nv_fonts_basic
++ (
if isLinux
then ["Noto Color Emoji"]
else ["Apple Color Emoji"]
);
nv_fonts_italic = ["Dank Mono"] ++ nv_fonts_basic;
in {
nv_fonts_basic ++ (if isLinux then [ "Noto Color Emoji" ] else [ "Apple Color Emoji" ]);
nv_fonts_italic = nv_fonts_basic;
in
{
home.file = {
"/.zsh.d/" = {
source = ./${repo_root}/zsh/funcs;
@ -23,7 +25,7 @@ in {
text = "";
recursive = true;
};
".cargo/config.toml".source = (pkgs.formats.toml {}).generate "cargo-config" {
".cargo/config.toml".source = (pkgs.formats.toml { }).generate "cargo-config" {
net = {
git-fetch-with-cli = true;
};
@ -34,7 +36,10 @@ in {
# Could avoid setting this at all with another `isLinux` but whatever, doesn't truly matter
"target.x86_64-unknown-linux-gnu" = {
linker = "clang";
rustflags = ["-C" "link-arg=-fuse-ld=${config.home.profileDirectory}/bin/mold"];
rustflags = [
"-C"
"link-arg=-fuse-ld=${config.home.profileDirectory}/bin/mold"
];
};
"registries.crates-io" = {
protocol = "sparse";
@ -58,6 +63,7 @@ in {
[[ssh-keys]]
item = "mpf42t6kn2hxijw5jsqti4hxfm"
'';
"cy/cyrc.janet".source = ./${repo_root}/cy/cy.janet;
"doom/init.el" = {
source = ./${repo_root}/emacs/emacs.doom/init.el;
onChange = "~/.emacs.d/bin/doom sync";
@ -71,16 +77,17 @@ in {
onChange = "~/.emacs.d/bin/doom sync";
};
"erdtree/.erdtreerc".source = ./${repo_root}/erdtree/erdtreerc;
# "ghostty/config".source = ./${repo_root}/ghostty/config;
"kitty/kitty.conf".source = ./${repo_root}/kitty/kitty.conf;
"lsd/config.yaml".source = ./${repo_root}/lsd/config.yaml;
"neovide/config.toml".source = (pkgs.formats.toml {}).generate "neovide-config" {
"neovide/config.toml".source = (pkgs.formats.toml { }).generate "neovide-config" {
font = {
normal = nv_fonts_normal;
italic = nv_fonts_italic;
size = 14;
};
};
"ov/config.yaml".source = ./${repo_root}/ov/ov-less.yaml;
"zed/settings.json".source = ./${repo_root}/zed/settings.json;
"zed/keymap.json".source = ./${repo_root}/zed/keymap.json;
};
}

View file

@ -1,11 +1,64 @@
{pkgs, ...}: let
{ pkgs, ... }:
let
inherit (pkgs.stdenv.hostPlatform) isLinux;
systemSpecificPackages = with pkgs;
if isLinux
systemSpecificPackages =
with pkgs;
if
isLinux
# ncdu (well, all zig packages) don't work on macOS nix right now
then [zsh racket mold ncdu zed-editor]
else [keka colima];
in {
then
[
zsh
racket
mold
ncdu
ghostty
xorg.libX11
]
else
[
keka
colima
neovide
aerospace
maccy
];
cy =
{
pkgs,
fetchFromGitHub,
}:
let
ver = "1.3.1";
in
pkgs.buildGoModule {
pname = "cy";
version = "${ver}";
src = fetchFromGitHub {
owner = "cfoust";
repo = "cy";
rev = "refs/tags/v${ver}";
hash = "sha256-i5suNLh1Dy8sWKBasO1rnVRzDetEF77XXRonRk1RzB4=";
};
vendorHash = null;
buildPhase = ''
runHook preBuild
export GOCACHE=$PWD/.cache/go-build
go install ./cmd/cy/
runHook postBuild
'';
installPhase = ''
runHook preInstall
install -Dm755 -t $out/bin $GOPATH/bin/cy
runHook postInstall
'';
};
in
{
imports = [
./git.nix
./mise.nix
@ -14,17 +67,19 @@ in {
./starship.nix
./zellij.nix
./zsh.nix
# ./cy.nix
];
home.packages = with pkgs;
home.packages =
with pkgs;
[
_1password
bandwhich
_1password-cli
nerd-fonts._0xproto
bat
bottom
cargo-workspaces
clipboard-jh
curl
devenv
departure-mono
docker-client
dogedns
erdtree
@ -32,7 +87,13 @@ in {
emacs
fantasque-sans-mono
fd
(fenix.latest.withComponents ["cargo" "clippy" "rustfmt" "rust-src" "rustc"])
(fenix.latest.withComponents [
"cargo"
"clippy"
"rustfmt"
"rust-src"
"rustc"
])
ffmpeg_6
gawkInteractive
gnugrep
@ -42,7 +103,6 @@ in {
gql
httpstat
imagemagick
inshellisense
internetarchive
jless
jq
@ -50,27 +110,34 @@ in {
kondo
litecli
magic-wormhole-rs
maple-mono.NF
martian-mono
neovide
ov
page
pandoc
parallel
pdm
picocrypt
picocrypt-cli
python312Packages.pipx
poetry
rage
ripgrep
rsync
rust-analyzer-nightly # part of the fenix distribution/overlay
scriptisto
see-cat
sqlite
tmux
# vscode-fhs
vale
python312Packages.yt-dlp
zenith
# zoom-us
zstd
]
++ systemSpecificPackages;
++ systemSpecificPackages
++ (
if isLinux then
[ ]
else
[
(callPackage cy { })
]
);
}

View file

@ -1,4 +1,5 @@
{...}: {
{ ... }:
{
home.file = {
".doom.d/init.el".source = ../../../../emacs/emacs.doom/init.el;
".doom.d/config.el".source = ../../../../emacs/emacs.doom/config.el;

View file

@ -1,4 +1,5 @@
{pkgs, ...}: {
{ pkgs, ... }:
{
programs.git = {
enable = true;
# Don't use difftastic on git-diff by default
@ -30,6 +31,7 @@
diff = {
tool = "difftastic";
algorithm = "histogram";
submodule = "log";
};
difftool = {
@ -41,6 +43,8 @@
fetch = {
prune = true;
fsckObjects = true;
pruneTags = true;
};
format = {
@ -79,17 +83,29 @@
updateRefs = true;
};
receive = {
fsckObjects = true;
};
rerere = {
enabled = true;
};
status = {
submoduleSummary = true;
};
submodule = {
recurse = true;
};
transfer = {
fsckObjects = true;
};
};
includes = [
{path = "~/.gitconfig_local";}
{ path = "~/.gitconfig_local"; }
];
};
}

View file

@ -1,4 +1,5 @@
{...}: {
{ ... }:
{
programs.mise = {
enable = true;
enableZshIntegration = true;
@ -6,9 +7,13 @@
tools = {
node = "lts";
python = "latest";
ruby = "latest";
uv = "latest";
};
settings = {
experimental = true;
pipx = {
uvx = true;
};
status = {
missing_tools = "always";
};

View file

@ -1,15 +1,18 @@
{pkgs, ...}: {
programs.nixneovim = {
{ pkgs, ... }:
{
programs.nixvim = {
enable = true;
defaultEditor = true;
viAlias = true;
vimAlias = true;
extraLuaPreConfig = builtins.readFile ./neovim/pre.lua;
extraConfigLua = builtins.readFile ./neovim/core.lua;
colorscheme = "onedark";
extraConfigLuaPre = builtins.readFile ./neovim/pre.lua;
extraConfigLuaPost = builtins.readFile ./neovim/core.lua;
colorschemes = {
onedark.enable = true;
};
diagnostics = {
virtual_lines = true;
};
plugins = {
fugitive = {
enable = true;
@ -20,257 +23,356 @@
lualine = {
enable = true;
# theme = "bubbles_theme"; # Currently doesn't work
componentSeparators = {
left = "";
right = "";
};
sectionSeparators = {
left = "";
right = "";
};
sections = {
lualine_a = ["mode" {separator = {left = "";};} {right_padding = 2;}];
lualine_b = ["filename" "branch"];
lualine_c = ["%="];
lualine_x = [];
lualine_y = ["filetype" "progress"];
lualine_z = ["location" {separator = {right = "";};} {left_padding = 2;}];
settings = {
componentSeparators = {
left = "";
right = "";
};
sectionSeparators = {
left = "";
right = "";
};
sections = {
lualine_a = [
{
__unkeyed-1 = "mode";
separator = {
left = "";
};
padding = {
right = 2;
left = 0;
};
}
];
lualine_b = [
"filename"
"branch"
];
lualine_c = [ "%=" ];
lualine_x = [ ];
lualine_y = [
"filetype"
"progress"
];
lualine_z = [
{
__unkeyed-1 = "location";
separator = {
right = "";
};
padding = {
right = 0;
left = 2;
};
}
];
};
};
};
luasnip = {
lsp = {
enable = true;
};
lsp-lines = {
enable = true;
};
lspconfig = {
enable = true;
preConfig = ''
'';
preConfig = '''';
servers = {
bashls.enable = true;
gopls.enable = true;
jsonls.enable = true;
pyright.enable = true; # In preference to attempting to use pylyzer
nil.enable = true;
rust-analyzer.enable = true;
nil_ls.enable = true;
rust_analyzer =
let
fenix = fenix.latest.withComponents [
"cargo"
"rustc"
];
in
{
enable = true;
installCargo = false;
installRustc = false;
cargoPackage = fenix.cargo;
rustcPackage = fenix.rustc;
};
taplo.enable = true;
terraform-ls.enable = true;
terraformls.enable = true;
yamlls.enable = true;
};
};
lspkind = {
enable = true;
mode = "symbol";
};
mini = {
enable = true;
ai.enable = true;
align.enable = true;
animate.enable = true;
comment.enable = true;
completion.enable = true;
indentscope.enable = true;
jump.enable = true;
jump2d = {
enable = true;
extraConfig = {
modules = {
ai.enable = true;
align.enable = true;
animate.enable = true;
comment.enable = true;
completion.enable = true;
indentscope.enable = true;
jump.enable = true;
jump2d = {
enable = true;
mappings.start_jumping = "<leader>a";
};
splitjoin.enable = true;
surround.enable = true;
tabline.enable = true;
clue = {
triggers = [
{
mode = "n";
keys = "<leader>";
}
{
mode = "n";
keys = "z";
}
];
clues = [
{ __raw = "require('mini.clue').gen_clues.builtin_completion()"; }
{ __raw = "require('mini.clue').gen_clues.g()"; }
{ __raw = "require('mini.clue').gen_clues.marks()"; }
{ __raw = "require('mini.clue').gen_clues.registers()"; }
{ __raw = "require('mini.clue').gen_clues.windows()"; }
{ __raw = "require('mini.clue').gen_clues.z()"; }
];
};
};
splitjoin.enable = true;
surround.enable = true;
tabline.enable = true;
};
nvim-cmp = {
blink-cmp = {
enable = true;
formatting = {
format = ''
function(entry, vim_item)
vim_item.kind = string.format("%s %s", kind_icons[vim_item.kind], vim_item.kind)
vim_item.menu = ({
buffer = "[Buffer]",
nvim_lsp = "[LSP]",
luasnip = "[LuaSnip]",
nvim_lua = "[Lua]",
latex_symbols = "[LaTeX]",
})[entry.source.name]
return vim_item
end
'';
};
mappingPresets = ["insert"];
mapping = {
"<CR>" = "cmp.mapping.confirm({ select = true})";
"<C-Space>" = "cmp.mapping.complete()";
"<Tab>" = {
modes = ["i" "s" "c"];
action = ''
function(fallback)
local entry = cmp.get_selected_entry()
if not entry then
cmp.select_next_item({ behavior = cmp.SelectBehavior.Select })
cmp.confirm()
elseif entry then
cmp.confirm()
elseif luasnip.expandable() then
luasnip.expand()
elseif luasnip.expand_or_jumpable() then
luasnip.expand_or_jump()
elseif check_backspace() then
fallback()
else
fallback()
end
end
'';
settings = {
keymap.preset = "super-tab";
appearance = {
nerd_font_variant = "mono";
};
"<S-Tab>" = {
modes = ["i" "s" "c"];
action = ''
function(fallback)
if cmp.visible() then
cmp.select_prev_item()
elseif luasnip.jumpable(-1) then
luasnip.jump(-1)
else
fallback()
end
end
'';
completion = {
ghost_text = {
enabled = true;
show_with_menu = false;
};
accept = {
auto_brackets = {
enabled = true;
};
};
list = {
selection = {
auto_insert = false;
preselect = true;
};
};
menu = {
draw = {
columns.__raw = "{ { 'kind_icon' }, {'label', gap = 1 } }";
components = {
label.__raw = ''
{
text = function(ctx)
return require('colorful-menu').blink_components_text(ctx)
end,
highlight = function(ctx)
return require('colorful-menu').blink_components_highlight(ctx)
end,
}'';
};
};
};
};
};
snippet = {
luasnip.enable = true;
};
sources = {
cmdline = {
enable = true;
signature = {
enabled = true;
};
sources = {
default = [
"lsp"
"path"
"snippets"
"buffer"
# [TODO] Disabled until I figure this out, rust uses :: "emoji"
];
providers = {
emoji = {
module = "blink-emoji";
name = "Emoji";
score_offset = 15;
opts = {
insert = true;
};
};
};
};
emoji.enable = true;
fuzzy_path.enable = true;
luasnip.enable = true;
nvim_lsp.enable = true;
nvim_lsp_document_symbol.enable = true;
nvim_lsp_signature_help.enable = true;
treesitter.enable = true;
};
view = {
entries = "custom";
};
};
blink-emoji.enable = true;
project-nvim = {
enable = true;
enableTelescope = true;
settings.detection_methods = [
"lsp"
"pattern"
];
};
telescope = {
enable = true;
extraLua = {
post = builtins.readFile ./neovim/telescope.lua;
extensions.live-grep-args.enable = true;
enabledExtensions = [
"zf-native" # TODO
"projects" # TODO
];
# extraLua = {
# post = builtins.readFile ./neovim/telescope.lua;
# };
keymaps = {
"<leader>ff" = {
mode = "n";
action = "find_files";
options.desc = "Find Files";
};
"<leader>fg" = {
mode = "n";
action = "live_grep";
options.desc = "Live Grep";
};
"<leader>fb" = {
mode = "n";
action = "buffers";
options.desc = "Find Buffers";
};
"<leader>r" = {
mode = "n";
action = "registers";
options.desc = "View Registers";
};
"<leader>pr" = {
mode = "n";
action = "lsp_references";
options.desc = "(LSP) References";
};
"<leader>pi" = {
mode = "n";
action = "lsp_implementations";
options.desc = "(LSP) Implementations";
};
"<leader>pd" = {
mode = "n";
action = "lsp_definitions";
options.desc = "(LSP) Definitions";
};
"<leader>ps" = {
mode = "n";
action = "lsp_document_symbols";
options.desc = "(LSP) Document Symbols";
};
"<leader>pws" = {
mode = "n";
action = "lsp_workspace_symbols";
options.desc = "(LSP) Workspace Symbols";
};
"<leader>pwd" = {
mode = "n";
action = "lsp_dynamic_workspace_symbols";
options.desc = "(LSP) Dynamic Workspace Symbols";
};
};
};
treesitter = {
enable = true;
indent = true;
folding = true;
incrementalSelection = {
enable = true;
settings = {
indent = {
enable = true;
};
incremental_selection = {
enable = true;
};
};
folding = true;
};
trouble = {
enable = true;
};
ufo = {
enable = true;
extraLua.pre = ''
require('ufo').setup({ provider_selector = function(bufnr, filetype, buftype)
return {'treesitter', 'indent' }
end
})
'';
};
undotree = {
ts-context-commentstring = {
enable = true;
};
which-key = {
overseer = {
enable = true;
groups = {
normal = {
"<leader>f" = "Telescope - Find";
"<leader>r" = "View registers";
"<leader>p" = "Telescope - LSP";
};
};
};
nvim-ufo = {
enable = true;
};
rainbow-delimiters = {
enable = true;
};
vim-bbye = {
enable = true;
};
web-devicons.enable = true;
};
extraPlugins =
(
with pkgs.vimPlugins; [
fuzzy-nvim
nvim-ts-context-commentstring
telescope-zf-native-nvim
vim-ReplaceWithRegister
vim-bbye
vim-dispatch-neovim
vim-expand-region
]
)
++ (with pkgs.vimExtraPlugins; [
rainbow-delimiters-nvim
gitlinker-linrongbin16
(with pkgs.vimPlugins; [
telescope-symbols-nvim
overseer-nvim
telescope-zf-native-nvim
vim-ReplaceWithRegister
vim-dispatch-neovim
vim-expand-region
colorful-menu-nvim
])
++ (with pkgs.awesomeNeovimPlugins; [
linrongbin16-gitlinker-nvim
officer-nvim
nvim-web-devicons
lsp-signature-nvim
nvim-rg
nvim-biscuits
telescope-egrepify-nvim
colorful-menu-nvim
]);
mappings = {
normal = {
"<leader>u" = {
action = "vim.cmd.UndotreeToggle";
desc = "Toggle undotree";
};
"<leader>h" = {
action = "function() vim.api.nvim_command('wincmd h') end";
desc = "Cursor - Window left";
};
"<leader>j" = {
action = "function() vim.api.nvim_command('wincmd j') end";
desc = "Cursor - Window down";
};
"<leader>k" = {
action = "function() vim.api.nvim_command('wincmd k') end";
desc = "Cursor - Window up";
};
"<leader>l" = {
action = "function() vim.api.nvim_command('wincmd l') end";
desc = "Cursor - Window right";
};
"<c-k>" = {
action = "'<c-u>'";
};
"<c-j>" = {
action = "'<c-d>'";
};
"<leader>n" = {
action = "function() vim.api.nvim_command('nohl') end";
desc = "nohl";
};
"<leader>t" = {
action = "'<cmd>Telescope<cr>'";
desc = "Open Telescope";
};
};
visual = {
"<c-k>" = {
action = "'<c-u>'";
};
"<c-j>" = {
action = "'<c-d>'";
};
};
};
keymaps = [
{
action = "function() vim.api.nvim_command('wincmd h') end";
key = "<leader>h";
options.desc = "Cursor - Window left";
mode = "n";
}
{
action = "function() vim.api.nvim_command('wincmd j') end";
key = "<leader>j";
options.desc = "Cursor - Window down";
mode = "n";
}
{
action = "function() vim.api.nvim_command('wincmd k') end";
key = "<leader>k";
options.desc = "Cursor - Window up";
mode = "n";
}
{
action = "function() vim.api.nvim_command('wincmd l') end";
key = "<leader>l";
options.desc = "Cursor - Window right";
mode = "n";
}
{
key = "<c-k>";
action = "<c-u>";
mode = [
"n"
"v"
];
}
{
key = "<c-j>";
action = "<c-d>";
mode = [
"n"
"v"
];
}
{
key = "<leader>n";
action = "function() vim.api.nvim_command('nohl') end";
options.desc = "nohl";
mode = "n";
}
{
action = "<cmd>Telescope<cr>";
key = "<leader>t";
options.desc = "Open Telescope";
mode = "n";
}
];
};
}

View file

@ -1,11 +1,11 @@
vim.o.expandtab = true
local guifont = { "Iosevka Custom" }
if vim.loop.os_uname().sysname == "Darwin" then
table.insert(guifont, "Apple Color Emoji")
else
table.insert(guifont, "Noto Color Emoji")
end
vim.o.guifont = table.concat(guifont, ",") .. ":14"
-- local guifont = { "Iosevka Custom" }
-- if vim.loop.os_uname().sysname == "Darwin" then
-- table.insert(guifont, "Apple Color Emoji")
-- else
-- table.insert(guifont, "Noto Color Emoji")
-- end
-- vim.o.guifont = table.concat(guifont, ",") .. ":14"
vim.o.hidden = true
vim.o.ignorecase = true
vim.o.inccommand = "split"
@ -47,15 +47,3 @@ require("gitlinker").setup()
require("nvim-biscuits").setup()
require("overseer").setup()
require("officer").setup({ create_mappings = true })
local cmp = require("cmp")
cmp.setup.cmdline(":", {
mapping = cmp.mapping.preset.cmdline(),
sources = cmp.config.sources({
{ name = "path" },
}, {
{ name = "cmdline" },
}),
matching = { disallow_symbol_nonprefix_matching = false },
})

View file

@ -1,33 +1,33 @@
vim.g.mapleader = " "
vim.g.maplocalleader = ","
local kind_icons = {
Text = "",
Method = "",
Function = "",
Constructor = "",
Field = "",
Variable = "μ",
Class = "",
Interface = "",
Module = "",
Property = "",
Unit = "",
Value = "",
Enum = "",
Keyword = "",
Snippet = "",
Color = "",
File = "",
Reference = "",
Folder = "",
EnumMember = "",
Constant = "",
Struct = "",
Event = "",
Operator = "",
TypeParameter = "",
}
-- local kind_icons = {
-- Text = "",
-- Method = "",
-- Function = "⨐",
-- Constructor = "",
-- Field = "",
-- Variable = "μ",
-- Class = "",
-- Interface = "",
-- Module = "",
-- Property = "",
-- Unit = "",
-- Value = "",
-- Enum = "",
-- Keyword = "",
-- Snippet = "",
-- Color = "፨",
-- File = "",
-- Reference = "",
-- Folder = "",
-- EnumMember = "",
-- Constant = "",
-- Struct = "",
-- Event = "",
-- Operator = "",
-- TypeParameter = "",
-- }
local colors = {
blue = "#80a0ff",
@ -56,3 +56,25 @@ local bubbles_theme = {
c = { fg = colors.white },
},
}
do
function setup()
require("ufo").setup({
provider_selector = function(bufnr, filetype, buftype)
return { "treesitter", "indent" }
end,
})
require("ufo").setup({})
vim.o.foldcolumn = "1" -- '0' is not bad
vim.o.foldlevel = 99 -- Using ufo provider need a large value, feel free to decrease the value
vim.o.foldlevelstart = 99
vim.o.foldenable = true
end
success, output = pcall(setup) -- execute 'setup()' and catch any errors
if not success then
print("Error on setup for plugin: ufo")
print(output)
end
end

View file

@ -7,7 +7,7 @@ local builtin = require("telescope.builtin")
-- greps
vim.keymap.set("n", "<leader>ff", builtin.find_files, { desc = "Find Files" })
-- vim.keymap.set("n", "<leader>fg", builtin.live_grep, { desc = "Live Grep" })
vim.keymap.set("n", "<leader>fg", require("telescope").extensions.egrepify.egrepify, { desc = "Live Grep" })
vim.keymap.set("n", "<leader>fg", ":Telescope egrepify<CR>", { desc = "Live Grep" })
vim.keymap.set("n", "<leader>fb", builtin.buffers, { desc = "Buffers" })
-- register reading

View file

@ -2,20 +2,25 @@
config,
pkgs,
...
}: let
}:
let
inherit (pkgs.stdenv.hostPlatform) isDarwin;
_1pass_socket =
if isDarwin
then "${config.home.homeDirectory}/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock"
else "${config.home.homeDirectory}/.1password/agent.sock";
in {
if isDarwin then
"${config.home.homeDirectory}/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock"
else
"${config.home.homeDirectory}/.1password/agent.sock";
in
{
programs.ssh = {
enable = true;
includes =
if isDarwin
then ["${config.home.homeDirectory}/.colima/ssh_config"]
else [];
includes = if isDarwin then [ "${config.home.homeDirectory}/.colima/ssh_config" ] else [ ];
matchBlocks = {
"10.*" = {
setEnv = {
"TERM" = "xterm-256color";
};
};
"acicchetti.dev" = {
extraOptions = {
"IdentityAgent" = "'${_1pass_socket}'\n";

View file

@ -1,4 +1,5 @@
{...}: {
{ ... }:
{
programs.starship = {
enable = true;
enableZshIntegration = true;
@ -31,6 +32,41 @@
};
continuation_prompt = "";
custom.jj = {
command = ''
jj log -r@ -l1 --ignore-working-copy --no-graph --color always -T '
separate(" ",
branches.map(|x| if(
x.name().substr(0, 10).starts_with(x.name()),
x.name().substr(0, 10),
x.name().substr(0, 9) ++ "")
).join(" "),
tags.map(|x| if(
x.name().substr(0, 10).starts_with(x.name()),
x.name().substr(0, 10),
x.name().substr(0, 9) ++ "")
).join(" "),
surround("\"","\"",
if(
description.first_line().substr(0, 24).starts_with(description.first_line()),
description.first_line().substr(0, 24),
description.first_line().substr(0, 23) ++ ""
)
),
if(conflict, "conflict"),
if(divergent, "divergent"),
if(hidden, "hidden"),
)
'
'';
detect_folders = [ ".jj" ];
symbol = "jj";
};
custom.jjstatus = {
command = ''jj log -r@ -l1 --no-graph -T "" --stat | tail -n1 | sd "(\d+) files? changed, (\d+) insertions?\(\+\), (\d+) deletions?\(-\)" " $${1}m $${2}+ $${3}-" | sd " 0." ""'';
detect_folders = [ ".jj" ];
};
dart = {
symbol = " ";
};

View file

@ -1,41 +1,11 @@
{pkgs, ...}: let
zjstatus_config = ''
pane size=1 borderless=true {
plugin location="file:${pkgs.zjstatus}/bin/zjstatus.wasm" {
format_left "{mode}#[fg=black,bg=blue,bold,italic]{session} #[fg=blue,bg=#181825]{tabs}"
format_right "#[fg=#181825,bg=#b1bbfa]{datetime}"
format_space "#[bg=#181825]"
mode_normal "#[bg=blue]Normal"
mode_tmux "#[bg=green]Tmux "
tab_normal "#[fg=#181825,bg=#4C4C59] #[fg=#000000,bg=#4C4C59]{index} {name} #[fg=#4C4C59,bg=#181825]"
tab_normal_fullscreen "#[fg=#6C7086,bg=#181825] {index} {name} [] "
tab_normal_sync "#[fg=#6C7086,bg=#181825] {index} {name} <> "
tab_active "#[fg=#181825,bg=#ffffff,bold,italic] {index} {name} #[fg=#ffffff,bg=#181825]"
tab_active_fullscreen "#[fg=#9399B2,bg=#181825,bold,italic] {index} {name} [] "
tab_active_sync "#[fg=#9399B2,bg=#181825,bold,italic] {index} {name} <> "
datetime "#[fg=#6C7086,bg=#b1bbfa,bold] {format} "
datetime_format "%A, %d %b %Y %H:%M"
datetime_timezone "America/New_York"
}
}'';
in {
{ ... }:
{
programs.zellij = {
enable = true;
# enableZshIntegration = true; # automatically sets up a session - I don't want this, I want manual control of my sessions
enableZshIntegration = false; # automatically sets up a session - I don't want this, I want manual control of my sessions
};
xdg.configFile = {
"zellij/config.kdl".source = ../../../../zellij/config.kdl;
"zellij/layouts/zjstatus.kdl".text = ''
layout {
default_tab_template {
children
${zjstatus_config}
}
}'';
};
}

View file

@ -1,6 +1,8 @@
{pkgs, ...}: let
{ pkgs, ... }:
let
inherit (pkgs.stdenv.hostPlatform) isDarwin isLinux;
in {
in
{
programs.zsh = {
enable = true;
initExtraFirst = ''
@ -15,23 +17,25 @@ in {
initExtra = builtins.readFile ../../../../zsh/zshrc;
antidote = {
enable = true;
plugins = let
ohmyzsh-lib = "ohmyzsh/oh-my-zsh path:lib";
ohmyzsh-plugin = "ohmyzsh/oh-my-zsh path:plugins";
extraPlugins =
if isLinux
then []
else if isDarwin
then [
"${ohmyzsh-plugin}/brew"
]
else [];
in
plugins =
let
ohmyzsh-lib = "ohmyzsh/oh-my-zsh path:lib";
ohmyzsh-plugin = "ohmyzsh/oh-my-zsh path:plugins";
extraPlugins =
if isLinux then
[ ]
else if isDarwin then
[
"${ohmyzsh-plugin}/brew"
]
else
[ ];
in
extraPlugins
++ [
"zdharma-continuum/fast-syntax-highlighting"
"zsh-users/zsh-completions"
"b4b4r07/zsh-vimode-visual"
"jeffreytse/zsh-vi-mode"
"reegnz/jq-zsh-plugin"
"${ohmyzsh-lib}/completion.zsh"
"${ohmyzsh-lib}/git.zsh"
@ -57,6 +61,9 @@ in {
];
useFriendlyNames = true;
};
autosuggestion = {
enable = true;
};
dirHashes = {
"-- -dotfiles" = "$HOME/.dotfiles";
"-- -src" = "$HOME/src";
@ -79,19 +86,21 @@ in {
AGE = "rage";
AGE_KEYPATH = "op://Jellyfish/age-key";
};
shellAliases = let
platformSpecificAliases =
if isLinux
then {
cp = "cp --reflink=auto";
}
else {
# exa = "eza -l --git";
# ls = "exa";
nv = "neovide --fork";
};
in
{zj = "zellij -l welcome";} // platformSpecificAliases;
shellAliases =
let
platformSpecificAliases =
if isLinux then
{
cp = "cp --reflink=auto";
}
else
{
# exa = "eza -l --git";
# ls = "exa";
nv = "neovide --fork";
};
in
{ zj = "zellij -l welcome"; } // platformSpecificAliases;
};
programs.carapace = {
enable = true;

View file

@ -1,4 +1,5 @@
{...}: {
{ ... }:
{
imports = [
./git-sync.nix
];

View file

@ -1,4 +1,5 @@
{config, ...}: {
{ config, ... }:
{
services.git-sync = {
enable = true;
repositories = {

View file

@ -1,4 +1,5 @@
local wezterm = require("wezterm")
local act = wezterm.action
-- Allow working with both the current release and the nightly
local config = {}
@ -7,6 +8,9 @@ if wezterm.config_builder then
end
config.font = wezterm.font_with_fallback({
{ family = "0xProto Nerd Font Mono" },
{ family = "Maple Mono NF" },
{ family = "Departure Mono" },
{ family = "Fantasque Sans Mono" },
{ family = "Iosevka Custom", weight = "Medium" },
})
@ -15,6 +19,7 @@ config.font_rules = {
{
italic = true,
font = wezterm.font_with_fallback({
{ family = "Maple Mono NF", italic = true },
{ family = "Dank Mono", italic = true },
{ family = "Fantasque Sans Mono", italic = true },
{ family = "Iosevka Custom", weight = "Light" },
@ -22,7 +27,7 @@ config.font_rules = {
},
}
config.font_size = 16.0
config.font_size = 14.0
-- wayland?
config.enable_wayland = true
-- TERM name
@ -78,4 +83,75 @@ config.hide_tab_bar_if_only_one_tab = true
config.front_end = "WebGpu"
-- Wezterm Mux
config.unix_domains = { { name = "unix" } }
config.default_gui_startup_args = { "connect", "unix" }
-- Some keybinds… A lot of keybinds
local copy_mode = nil
if wezterm.gui then
copy_mode = wezterm.gui.default_key_tables().copy_mode
table.insert(copy_mode, { key = "k", mods = "CTRL", action = act.CopyMode({ MoveByPage = -0.5 }) })
table.insert(copy_mode, { key = "j", mods = "CTRL", action = act.CopyMode({ MoveByPage = 0.5 }) })
end
-- config.leader = { key = "a", mods = "CTRL", timeout_milliseconds = 1000 }
-- config.keys = {
-- {
-- key = "|",
-- mods = "LEADER|SHIFT",
-- action = act.SplitHorizontal({ domain = "CurrentPaneDomain" }),
-- },
-- {
-- key = "a",
-- mods = "LEADER|CTRL",
-- action = act.SendKey({ key = "a", mods = "CTRL" }),
-- },
-- {
-- key = "-",
-- mods = "LEADER",
-- action = act.SplitVertical({ domain = "CurrentPaneDomain" }),
-- },
-- {
-- key = "n",
-- mods = "LEADER",
-- action = act.ActivateKeyTable({
-- name = "manage_panes",
-- one_shot = false,
-- timeout_milliseconds = 5000,
-- until_unknown = true,
-- }),
-- },
-- {
-- key = "Escape",
-- mods = "LEADER",
-- action = act.ActivateCopyMode,
-- },
-- { key = "Tab", mods = "LEADER", action = act.QuickSelect },
-- { key = "c", mods = "LEADER", action = act.SpawnTab("CurrentPaneDomain") },
-- }
-- config.key_tables = {
-- manage_panes = {
-- { key = "LeftArrow", action = act.AdjustPaneSize({ "Left", 1 }) },
-- { key = "h", action = act.AdjustPaneSize({ "Left", 1 }) },
-- { key = "h", mods = "SHIFT", action = act.ActivatePaneDirection("Left") },
-- { key = "RightArrow", action = act.AdjustPaneSize({ "Right", 1 }) },
-- { key = "l", action = act.AdjustPaneSize({ "Right", 1 }) },
-- { key = "l", mods = "SHIFT", action = act.ActivatePaneDirection("Right") },
-- { key = "UpArrow", action = act.AdjustPaneSize({ "Up", 1 }) },
-- { key = "k", action = act.AdjustPaneSize({ "Up", 1 }) },
-- { key = "k", mods = "SHIFT", action = act.ActivatePaneDirection("Up") },
-- { key = "DownArrow", action = act.AdjustPaneSize({ "Down", 1 }) },
-- { key = "j", action = act.AdjustPaneSize({ "Down", 1 }) },
-- { key = "j", mods = "SHIFT", action = act.ActivatePaneDirection("Down") },
-- -- Cancel the mode by pressing escape
-- { key = "Escape", action = "PopKeyTable" },
-- },
-- copy_mode = copy_mode,
-- }
return config

9
zed/keymap.json Normal file
View file

@ -0,0 +1,9 @@
[
{
"context": "VimControl",
"bindings": {
"space s": "pane::RevealInProjectPanel",
"ctrl-r": "workspace::ToggleRightDock"
}
}
]

View file

@ -1,29 +1,96 @@
// Zed settings
//
// For information on how to configure Zed, see the Zed
// documentation: https://zed.dev/docs/configuring-zed
//
// To see all of Zed's default settings without changing your
// custom settings, run the `open default settings` command
// from the command palette or from `Zed` application menu.
// custom settings, run `zed: open default settings` from the
// command palette
{
"theme": "Kanagawa Wave",
"assistant": {
"default_model": {
"provider": "ollama",
"model": "llama3.2:3b"
},
"version": "2"
},
"vim_mode": true,
"autosave": "on_focus_change",
"buffer_font_family": "Berkeley Mono",
"buffer_font_fallbacks": [
"Apple Color Emoji",
"Segoe UI Emoji",
"Noto Color Emoji"
],
"buffer_font_weight": 400,
"buffer_font_size": 14,
"load_direnv": "shell_hook",
"ui_font_size": 16,
"buffer_font_family": "Fantasque Sans Mono",
"buffer_font_size": 16,
"assistant_v2": {
"enabled": true
"theme": {
"mode": "system",
"light": "Kanagawa Wave",
"dark": "Kanagawa Wave"
},
"scrollbar": {
"show": "always"
},
"tab_bar": {
"show_nav_history_buttons": false
},
"tabs": {
"file_icons": true,
"git_status": true
},
"toolbar": {
"breadcrumbs": true,
"quick_actions": true
},
"lsp": {
"rust-analyzer": {
"initialization_options": {
"check": {
"command": "clippy"
}
}
}
},
"always_treat_brackets_as_autoclosed": true,
"git": {
"git_gutter": "tracked_files",
"inline_blame": {
"enabled": true,
"delay_ms": 200
}
},
"indent_guides": {
"enabled": true,
"coloring": "indent_aware",
"background_coloring": "disabled"
},
"inlay_hints": {
"enabled": true,
"show_type_hints": true,
"show_parameter_hints": true
},
"languages": {
"Typescript": {
"language_servers": ["!typescript-language-server", "vtsls"]
"Python": {
"format_on_save": "on",
"formatter": {
"external": {
"command": "black",
"args": ["--quiet", "-"]
}
}
}
},
"assistant": {
"version": "1",
"provider": {
"name": "ollama",
"low_speed_timeout_in_seconds": 30
}
"preview_tabs": {
"enabled": true,
"enable_preview_from_file_finder": true,
"enable_preview_from_code_navigation": true
},
"show_whitespaces": "all",
"telemetry": {
"diagnostics": false,
"metrics": false
}
}

View file

@ -1,249 +1,29 @@
keybinds clear-defaults=true {
normal {
keybinds {
shared_except "locked" "tmux" {
bind "Ctrl g" { SwitchToMode "locked"; }
bind "Ctrl p" { SwitchToMode "pane"; }
// bind "Ctrl p" { SwitchToMode "pane"; }
bind "Ctrl n" { SwitchToMode "resize"; }
bind "Ctrl t" { SwitchToMode "tab"; }
bind "Ctrl s" { SwitchToMode "scroll"; }
bind "Ctrl o" { SwitchToMode "session"; }
bind "Ctrl h" { SwitchToMode "move"; }
bind "Ctrl a" { SwitchToMode "tmux"; }
}
normal {
bind "Ctrl q" { Quit; }
bind "Alt n" { NewPane; }
bind "Alt h" { MoveFocusOrTab "Left"; }
bind "Alt l" { MoveFocusOrTab "Right"; }
bind "Alt j" { MoveFocus "Down"; }
bind "Alt k" { MoveFocus "Up"; }
bind "Alt [" { FocusPreviousPane; }
bind "Alt ]" { FocusNextPane; }
bind "Alt =" { Resize "Increase"; }
bind "Alt +" { Resize "Increase"; }
bind "Alt -" { Resize "Decrease"; }
}
move {
bind "Esc" { SwitchToMode "Normal";}
}
locked {
bind "Ctrl g" { SwitchToMode "normal"; }
}
pane {
bind "Ctrl g" { SwitchToMode "locked"; }
bind "Ctrl n" { SwitchToMode "resize"; }
bind "Ctrl t" { SwitchToMode "tab"; }
bind "Ctrl p" "Enter" "Space" "Esc" { SwitchToMode "normal"; }
bind "Ctrl s" { SwitchToMode "scroll"; }
bind "Ctrl o" { SwitchToMode "session"; }
bind "Ctrl h" { SwitchToMode "move"; }
bind "Ctrl b" { SwitchToMode "tmux"; }
bind "Ctrl q" { Quit; }
bind "h" "Left" { MoveFocus "Left"; }
bind "l" "Right" { MoveFocus "Right"; }
bind "j" "Down" { MoveFocus "Down"; }
bind "k" "Up" { MoveFocus "Up"; }
bind "p" { SwitchFocus; }
bind "n" { NewPane; SwitchToMode "normal"; }
bind "d" { NewPane "Down"; SwitchToMode "normal"; }
bind "r" { NewPane "Right"; SwitchToMode "normal"; }
bind "x" { CloseFocus; SwitchToMode "normal"; }
bind "f" { ToggleFocusFullscreen; SwitchToMode "normal"; }
bind "z" { TogglePaneFrames; SwitchToMode "normal"; }
bind "w" { ToggleFloatingPanes; SwitchToMode "normal"; }
bind "e" { TogglePaneEmbedOrFloating; SwitchToMode "normal"; }
bind "Alt n" { NewPane; }
bind "Alt h" { MoveFocus "Left"; }
bind "Alt l" { MoveFocus "Right"; }
bind "Alt j" { MoveFocus "Down"; }
bind "Alt k" { MoveFocus "Up"; }
bind "Alt [" { FocusPreviousPane; }
bind "Alt ]" { FocusNextPane; }
bind "Alt =" { Resize "Increase"; }
bind "Alt +" { Resize "Increase"; }
bind "Alt -" { Resize "Decrease"; }
bind "c" { SwitchToMode "RenamePane"; PaneNameInput 0; }
}
tab {
bind "Ctrl g" { SwitchToMode "locked"; }
bind "Ctrl p" { SwitchToMode "pane"; }
bind "Ctrl n" { SwitchToMode "resize"; }
bind "Ctrl t" "Enter" "Space" "Esc" { SwitchToMode "normal"; }
bind "Ctrl s" { SwitchToMode "scroll"; }
bind "Ctrl h" { SwitchToMode "move"; }
bind "Ctrl b" { SwitchToMode "tmux"; }
bind "Ctrl o" { SwitchToMode "session"; }
bind "r" { SwitchToMode "RenameTab"; TabNameInput 0; }
bind "Ctrl q" { Quit; }
bind "h" "Left" "Up" "k" { GoToPreviousTab; }
bind "l" "Right" "Down" "j" { GoToNextTab; }
bind "n" { NewTab; SwitchToMode "normal"; }
bind "x" { CloseTab; SwitchToMode "normal"; }
bind "s" { ToggleActiveSyncTab; SwitchToMode "normal"; }
bind "1" { GoToTab 1; SwitchToMode "normal"; }
bind "2" { GoToTab 2; SwitchToMode "normal"; }
bind "3" { GoToTab 3; SwitchToMode "normal"; }
bind "4" { GoToTab 4; SwitchToMode "normal"; }
bind "5" { GoToTab 5; SwitchToMode "normal"; }
bind "6" { GoToTab 6; SwitchToMode "normal"; }
bind "7" { GoToTab 7; SwitchToMode "normal"; }
bind "8" { GoToTab 8; SwitchToMode "normal"; }
bind "9" { GoToTab 9; SwitchToMode "normal"; }
bind "Tab" { ToggleTab; }
bind "Alt n" { NewPane; }
bind "Alt h" { MoveFocus "Left"; }
bind "Alt l" { MoveFocus "Right"; }
bind "Alt j" { MoveFocus "Down"; }
bind "Alt k" { MoveFocus "Up"; }
bind "Alt [" { FocusPreviousPane; }
bind "Alt ]" { FocusNextPane; }
bind "Alt =" { Resize "Increase"; }
bind "Alt +" { Resize "Increase"; }
bind "Alt -" { Resize "Decrease"; }
}
resize {
bind "Ctrl g" { SwitchToMode "locked"; }
bind "Ctrl p" { SwitchToMode "pane"; }
bind "Ctrl t" { SwitchToMode "tab"; }
bind "Ctrl n" "Enter" "Space" "Esc" { SwitchToMode "normal"; }
bind "Ctrl s" { SwitchToMode "scroll"; }
bind "Ctrl o" { SwitchToMode "session"; }
bind "Ctrl h" { SwitchToMode "move"; }
bind "Ctrl b" { SwitchToMode "tmux"; }
bind "Ctrl q" { Quit; }
bind "h" "Left" { Resize "Left"; }
bind "j" "Down" { Resize "Down"; }
bind "k" "Up" { Resize "Up"; }
bind "l" "Right" { Resize "Right"; }
bind "=" { Resize "Increase"; }
bind "+" { Resize "Increase"; }
bind "-" { Resize "Decrease"; }
bind "Alt n" { NewPane; }
bind "Alt h" { MoveFocus "Left"; }
bind "Alt l" { MoveFocus "Right"; }
bind "Alt j" { MoveFocus "Down"; }
bind "Alt k" { MoveFocus "Up"; }
bind "Alt [" { FocusPreviousPane; }
bind "Alt ]" { FocusNextPane; }
bind "Alt =" { Resize "Increase"; }
bind "Alt +" { Resize "Increase"; }
bind "Alt -" { Resize "Decrease"; }
}
move {
bind "Ctrl g" { SwitchToMode "locked"; }
bind "Ctrl p" { SwitchToMode "pane"; }
bind "Ctrl t" { SwitchToMode "tab"; }
bind "Ctrl n" { SwitchToMode "resize"; }
bind "Ctrl h" "Enter" "Space" "Esc" { SwitchToMode "normal"; }
bind "Ctrl s" { SwitchToMode "scroll"; }
bind "Ctrl o" { SwitchToMode "session"; }
bind "Ctrl q" { Quit; }
bind "n" "Tab" { MovePane; }
bind "h" "Left" { MovePane "Left"; }
bind "j" "Down" { MovePane "Down"; }
bind "k" "Up" { MovePane "Up"; }
bind "l" "Right" { MovePane "Right"; }
bind "Alt n" { NewPane; }
bind "Alt h" { MoveFocus "Left"; }
bind "Alt l" { MoveFocus "Right"; }
bind "Alt j" { MoveFocus "Down"; }
bind "Alt k" { MoveFocus "Up"; }
bind "Alt [" { FocusPreviousPane; }
bind "Alt ]" { FocusNextPane; }
bind "Alt =" { Resize "Increase"; }
bind "Alt +" { Resize "Increase"; }
bind "Alt -" { Resize "Decrease"; }
}
scroll {
bind "Ctrl s" "Space" "Enter" "Esc" { SwitchToMode "normal"; }
bind "Ctrl t" { SwitchToMode "tab"; }
bind "Ctrl g" { SwitchToMode "locked"; }
bind "Ctrl p" { SwitchToMode "pane"; }
bind "Ctrl h" { SwitchToMode "move"; }
bind "Ctrl b" { SwitchToMode "tmux"; }
bind "Ctrl o" { SwitchToMode "session"; }
bind "Ctrl n" { SwitchToMode "resize"; }
bind "Ctrl c" { ScrollToBottom; SwitchToMode "normal"; }
bind "Ctrl q" { Quit; }
bind "j" "Down" { ScrollDown; }
bind "k" "Up" { ScrollUp; }
bind "Ctrl f" "PageDown" "Right" "l" { PageScrollDown; }
bind "Ctrl b" "PageUp" "Left" "h" { PageScrollUp; }
bind "d" { HalfPageScrollDown; }
bind "u" { HalfPageScrollUp; }
bind "e" { EditScrollback; SwitchToMode "normal"; }
bind "Alt n" { NewPane; }
bind "Alt h" { MoveFocus "Left"; }
bind "Alt l" { MoveFocus "Right"; }
bind "Alt j" { MoveFocus "Down"; }
bind "Alt k" { MoveFocus "Up"; }
bind "Alt [" { FocusPreviousPane; }
bind "Alt ]" { FocusNextPane; }
bind "Alt =" { Resize "Increase"; }
bind "Alt +" { Resize "Increase"; }
bind "Alt -" { Resize "Decrease"; }
}
session {
bind "Ctrl g" { SwitchToMode "locked"; }
bind "Ctrl n" { SwitchToMode "resize"; }
bind "Ctrl p" { SwitchToMode "pane"; }
bind "Ctrl h" { SwitchToMode "move"; }
bind "Ctrl b" { SwitchToMode "tmux"; }
bind "Ctrl t" { SwitchToMode "tab"; }
bind "Ctrl o" "Enter" "Space" "Esc" { SwitchToMode "normal"; }
bind "Ctrl s" { SwitchToMode "scroll"; }
bind "Ctrl q" { Quit; }
bind "d" { Detach; }
bind "w" {
LaunchOrFocusPlugin "session-manager" {
floating true
move_to_focused_tab true
};
SwitchToMode "Normal"
}
bind "Alt n" { NewPane; }
bind "Alt h" { MoveFocus "Left"; }
bind "Alt l" { MoveFocus "Right"; }
bind "Alt j" { MoveFocus "Down"; }
bind "Alt k" { MoveFocus "Up"; }
bind "Alt [" { FocusPreviousPane; }
bind "Alt ]" { FocusNextPane; }
bind "Alt =" { Resize "Increase"; }
bind "Alt +" { Resize "Increase"; }
bind "Alt -" { Resize "Decrease"; }
}
RenameTab {
bind "Enter" "Ctrl c" "Esc" { SwitchToMode "normal"; }
bind "Esc" { TabNameInput 27; SwitchToMode "tab"; }
bind "Alt n" { NewPane; }
bind "Alt h" { MoveFocus "Left"; }
bind "Alt l" { MoveFocus "Right"; }
bind "Alt j" { MoveFocus "Down"; }
bind "Alt k" { MoveFocus "Up"; }
bind "Alt [" { FocusPreviousPane; }
bind "Alt ]" { FocusNextPane; }
bind "Alt =" { Resize "Increase"; }
bind "Alt +" { Resize "Increase"; }
bind "Alt -" { Resize "Decrease"; }
}
RenamePane {
bind "Enter" "Ctrl c" "Esc" { SwitchToMode "normal"; }
bind "Esc" { PaneNameInput 27; SwitchToMode "pane"; }
bind "Alt n" { NewPane; }
bind "Alt h" { MoveFocus "Left"; }
bind "Alt l" { MoveFocus "Right"; }
bind "Alt j" { MoveFocus "Down"; }
bind "Alt k" { MoveFocus "Up"; }
bind "Alt [" { FocusPreviousPane; }
bind "Alt ]" { FocusNextPane; }
bind "Alt =" { Resize "Increase"; }
bind "Alt +" { Resize "Increase"; }
bind "Alt -" { Resize "Decrease"; }
}
tmux {
bind "Ctrl g" { SwitchToMode "locked"; }
bind "Esc" { EditScrollback; SwitchToMode "normal"; }
bind "Ctrl n" { SwitchToMode "resize"; }
bind "Ctrl p" { SwitchToMode "pane"; }
bind "Ctrl h" { SwitchToMode "move"; }
bind "Ctrl t" { SwitchToMode "tab"; }
bind "Ctrl o" "Enter" "Space" "Esc" { SwitchToMode "normal"; }
bind "Ctrl s" { SwitchToMode "scroll"; }
bind "Ctrl q" { Quit; }
bind "[" { SwitchToMode "Scroll";}
bind "-" { NewPane "Down"; SwitchToMode "normal"; }
bind "|" { NewPane "Right"; SwitchToMode "normal"; }
bind "z" { ToggleFocusFullscreen; SwitchToMode "normal"; }
@ -255,51 +35,21 @@ keybinds clear-defaults=true {
bind "l" { MoveFocus "Right"; SwitchToMode "normal"; }
bind "j" { MoveFocus "Down"; SwitchToMode "normal"; }
bind "k" { MoveFocus "Up"; SwitchToMode "normal"; }
bind "Alt n" { NewPane; }
bind "Alt h" { MoveFocus "Left"; }
bind "Alt l" { MoveFocus "Right"; }
bind "Alt j" { MoveFocus "Down"; }
bind "Alt k" { MoveFocus "Up"; }
bind "Alt [" { PreviousSwapLayout; }
bind "Alt ]" { NextSwapLayout; }
bind "Alt =" { Resize "Increase"; }
bind "Alt +" { Resize "Increase"; }
bind "Alt -" { Resize "Decrease"; }
bind "Ctrl a" { Write 1; SwitchToMode "normal"; }
bind "d" { Detach; }
bind "e" { EditScrollback; SwitchToMode "normal"; }
bind "y" { ToggleActiveSyncTab; SwitchToMode "normal"; }
bind "r" { SwitchToMode "RenamePane"; PaneNameInput 0; }
bind "/" { SwitchToMode "EnterSearch"; SearchInput 0;}
bind "m" { SwitchToMode "Move"; }
bind "+" { Resize "Increase";}
bind "=" { Resize "Decrease"; }
bind "w" { ToggleFloatingPanes; SwitchToMode "normal";}
bind "e" { TogglePaneEmbedOrFloating; SwitchToMode "normal";}
bind "i" { TogglePanePinned; SwitchToMode "normal";}
}
}
// Choose what to do when zellij receives SIGTERM, SIGINT, SIGQUIT or SIGHUP
// eg. when terminal window with an active zellij session is closed
// Options:
// - detach (Default)
// - quit
//
// on_force_close "quit"
// Send a request for a simplified ui (without arrow fonts) to plugins
// Options:
// - true
// - false (Default)
//
// simplified_ui true
// Choose the path to the default shell that zellij will use for opening new panes
// Default: $SHELL
//
// default_shell "fish"
// Toggle between having pane frames around the panes
// Options:
// - true (default)
// - false
//
pane_frames false
session_serialization false
// Choose the theme that is specified in the themes section.
@ -307,87 +57,8 @@ session_serialization false
//
theme "nord"
// The name of the default layout to load on startup
// Default: "default"
//
// default_layout "compact"
// Choose the mode that zellij uses when starting up.
// Default: normal
//
// default_mode "locked"
// Toggle enabling the mouse mode.
// On certain configurations, or terminals this could
// potentially interfere with copying text.
// Options:
// - true (default)
// - false
//
// mouse_mode false
// Configure the scroll back buffer size
// This is the number of lines zellij stores for each pane in the scroll back
// buffer. Excess number of lines are discarded in a FIFO fashion.
// Valid values: positive integers
// Default value: 10000
//
// scroll_buffer_size 10000
// Provide a command to execute when copying text. The text will be piped to
// the stdin of the program to perform the copy. This can be used with
// terminal emulators which do not support the OSC 52 ANSI control sequence
// that will be used by default if this option is not set.
// Examples:
//
// copy_command "xclip -selection clipboard" // x11
// copy_command "wl-copy" // wayland
// copy_command "pbcopy" // osx
// Choose the destination for copied text
// Allows using the primary selection buffer (on x11/wayland) instead of the system clipboard.
// Does not apply when using copy_command.
// Options:
// - system (default)
// - primary
//
// copy_clipboard "primary"
// Enable or disable automatic copy (and clear) of selection when releasing mouse
// Default: true
//
// copy_on_select false
// Path to the default editor to use to edit pane scrollbuffer
// Default: $EDITOR or $VISUAL
//
// scrollback_editor "/usr/bin/vim"
// When attaching to an existing session with other users,
// should the session be mirrored (true)
// or should each user have their own cursor (false)
// Default: false
//
// mirror_session true
// The folder in which Zellij will look for layouts
//
// layout_dir /path/to/my/layout_dir
// The folder in which Zellij will look for themes
//
// theme_dir "/path/to/my/theme_dir"
plugins {
tab-bar { path "tab-bar"; }
status-bar { path "status-bar"; }
strider { path "strider"; }
compact-bar location="zellij:compact-bar"
session-manager location="zellij:session-manager"
welcome-screen location="zellij:session-manager" {
welcome_screen true
}
filepicker location="zellij:strider" {
cwd "/"
ui {
pane_frames {
rounded_corners true
}
}

View file

@ -1,28 +0,0 @@
layout {
default_tab_template {
children
pane size=1 borderless=true {
plugin location="file:${pkgs.zjstatus}/bin/zjstatus.wasm" {
format_left "{mode}#[fg=black,bg=blue,bold]{session} #[fg=blue,bg=#181825]{tabs}"
format_right "#[fg=#181825,bg=#b1bbfa]{datetime}"
format_space "#[bg=#181825]"
hide_frame_for_single_pane "true"
mode_normal "#[bg=blue] "
tab_normal "#[fg=#181825,bg=#4C4C59] #[fg=#000000,bg=#4C4C59]{index}  {name} #[fg=#4C4C59,bg=#181825]"
tab_normal_fullscreen "#[fg=#6C7086,bg=#181825] {index} {name} [] "
tab_normal_sync "#[fg=#6C7086,bg=#181825] {index} {name} <> "
tab_active "#[fg=#181825,bg=#ffffff,bold,italic] {index}  {name} #[fg=#ffffff,bg=#181825]"
tab_active_fullscreen "#[fg=#9399B2,bg=#181825,bold,italic] {index} {name} [] "
tab_active_sync "#[fg=#9399B2,bg=#181825,bold,italic] {index} {name} <> "
datetime "#[fg=#6C7086,bg=#b1bbfa,bold] {format} "
datetime_format "%A, %d %b %Y %H:%M"
datetime_timezone "Europe/Berlin" // plugin configuration...
}
}
}
}

11
zsh/funcs/atuin Normal file
View file

@ -0,0 +1,11 @@
# zsh-vi-mode for some reason is overriding these - so overriding them back
bindkey -M emacs '^r' atuin-search
bindkey -M viins '^r' atuin-search-viins
bindkey -M vicmd '/' atuin-search
bindkey -M emacs '^[[A' atuin-up-search
bindkey -M vicmd '^[[A' atuin-up-search-vicmd
bindkey -M viins '^[[A' atuin-up-search-viins
bindkey -M emacs '^[OA' atuin-up-search
bindkey -M vicmd '^[OA' atuin-up-search-vicmd
bindkey -M viins '^[OA' atuin-up-search-viins
bindkey -M vicmd 'k' atuin-up-search-vicm

View file

@ -1,8 +1,8 @@
function update_me {
pushd ~
pushd ~/.dotfiles/nix
(
setopt local_options pushd_silent
cd ~/.dotfiles/nix
./update.sh $@
popd
popd || return
)
}

View file

@ -22,11 +22,20 @@ fi
fpath=(~/bin ~/.zshcompletions $fpath)
zstyle :compinstall filename '/home/anthonys/.zshrc'
export CARAPACE_BRIDGES='zsh,fish,bash,inshellisense'
export CARAPACE_BRIDGES='zsh,fish,bash'
zstyle ':completion:*' format $'\e[2;37mCompleting %d\e[m'
# Both because it's nice and as an example
zstyle ':completion:*:git:*' group-order 'main commands' 'alias commands' 'external commands'
# zsh-vi-mode stuff
ZVM_VI_SURROUND_BINDKEY="s-prefix"
ZVM_READKEY_ENDINE=$ZVM_READKEY_ENGINE_NEX
ZVM_INSERT_MODE_CURSOR=$ZVM_CURSOR_BLOCK
ZVM_LINE_INIT_MODE=$ZVM_MODE_INSERT
function zvm_after_lazy_keybindings() {
eval "$(/nix/store/imgh8mjpck0xadj64h9q4gqrjaj9pbn7-atuin-18.3.0/bin/atuin init zsh )"
}
# zstyle ":completion:*" complete _complete _ignored _approximate _expand
# zstyle ":completion:*" glob 1
# zstyle ":completion:*" insert-unambiguous true