Compare commits

...

6 Commits

Author SHA1 Message Date
xenia 0ddfd25c7b Update kak-tree and config 2023-11-13 09:48:08 +01:00
xenia f52f28b84e Add kakrc for kak-tree 2023-11-12 23:08:20 +01:00
xenia 28dde8e2a5 Skip tests for alacritty 2023-11-12 12:44:11 +01:00
xenia 8a50c88e80 Remove alacritty from darwin.nix 2023-11-12 12:44:11 +01:00
xenia 0ad0c26bf4 restructure kakrc 2023-11-12 12:44:11 +01:00
xenia 14d79d3134 kak-tree 2023-11-12 12:44:07 +01:00
7 changed files with 283 additions and 85 deletions

View File

@ -1,15 +1,10 @@
{ system, pkgs, ... }:
let alacritty = import ./alacritty/alacritty.nix pkgs;
in
{
nixpkgs.hostPlatform = system;
nixpkgs.config.allowUnfree = true;
environment.systemPackages = with pkgs ; [
alacritty.package
binutils
coreutils

View File

@ -1,7 +1,3 @@
## Highlight whitespace at end of line
add-highlighter global/ regex '^.*[^ ]( +)$' 1:black,red
add-highlighter global/ number-lines -relative -hlcursor
hook global WinSetOption .* %{
remove-highlighter global/show-ws
add-highlighter global/show-ws show-whitespaces -tabpad ' '
@ -19,11 +15,7 @@ hook global WinSetOption filetype=(verilog|nix|vhdl) %{
set buffer indentwidth 2
}
hook global WinSetOption filetype=vhdl %{
set buffer comment_block_begin '/*'
set buffer comment_block_end '/*'
set buffer comment_line '--'
}
set-option global ignored_files "^(\..*|.*\.(o|so|a)|__pycache__)$"
## == keybinds ==
@ -48,26 +40,6 @@ map global normal '<c-v>' '!pbpaste<ret>'
map global user 'b' ':enter-user-mode buffers<ret>' -docstring 'buffer mode'
map global user 'B' ':enter-user-mode -lock buffers<ret>' -docstring 'buffer mode (lock)'
# command to copy <filename>:<line> into the clipboard (useful for pasting into debugger)
define-command copy-location -docstring "Copies <filename>:<line> for the current cursor into the clipboard" %{
evaluate-commands %sh{
set -e
printf "%s" "$kak_bufname:$kak_cursor_line" | pbcopy
echo "echo 'Copied $kak_bufname:$kak_cursor_line into clipboard'"
}
}
define-command copy-location-path -docstring "Copies <full path>:<line> for the current cursor into the clipboard" %{
evaluate-commands %sh{
set -e
printf "%s" "$kak_buffile:$kak_cursor_line" | pbcopy
echo "echo 'Copied $kak_buffile:$kak_cursor_line into clipboard'"
}
}
map global user 'y' ':copy-location<ret>' -docstring "Copy location"
map global user 'Y' ':copy-location-path<ret>' -docstring "Copy location (full path)"
## == plugin configuration ==
# Custom function surround
@ -86,16 +58,14 @@ define-command -hidden surround-Tag %{
execute-keys "xZ<a-:><a-;>gih<a-h>yz<gt>xZO<c-r>""<lt>%val{text}<gt><esc>zo<c-r>""<lt>%val{text}<gt><esc>z"
}
}
define-command -hidden surround-ins %{
prompt 'prefix: ' %{
execute-keys "<a-:><a-;>Z;ha%val{text}<esc><a-;>L<a-z>u"
}
define-command -hidden surround-space %{
execute-keys "i <esc>Ha <esc>"
}
map global mirror 'f' ':surround-function<ret>' -docstring 'function'
map global mirror 't' ':surround-tag<ret>' -docstring 'function'
map global mirror 'T' ':surround-Tag<ret>' -docstring 'function'
map global mirror 'i' ':surround-ins<ret>' -docstring 'function'
map global mirror 't' ':surround-tag<ret>mjau' -docstring 'tag'
map global mirror 'T' ':surround-Tag<ret>' -docstring 'tag, break line'
map global mirror ' ' ':surround-space<ret>' -docstring 'spaces'
map global normal ö ':enter-user-mode mirror<ret>' -docstring 'mirror mode'
@ -112,7 +82,47 @@ map global lsp '"' ':lsp-clear-references<ret>' -docstring "Clear references"
face global Reference white,rgb:550055
face global ReferenceBind white,rgb:552200
map global insert '<c-s>' '<a-;>:enter-user-mode lsp<ret>s'
# tree-sitter
tree-always-highlight
set-option global tree_highlight_style ",rgb:404040"
declare-user-mode tree
map global normal 't' ":enter-user-mode tree<ret>"
map global normal '<tab>' ":enter-user-mode tree<ret>"
map global normal 'T' ":enter-user-mode -lock tree<ret>"
map -docstring "select node" global tree 'n' ":tree-select-node<ret>"
map -docstring "select parent" global tree 'k' ":tree-select-parent-node<ret>"
map -docstring "select children" global tree 'C' ":tree-select-children<ret>"
map -docstring "select children of type" global tree 'c' ":enter-user-mode tree-children<ret>"
map -docstring "select next node of type" global tree 'l' ":enter-user-mode tree-next<ret>"
map -docstring "select previous node of type" global tree 'h' ":enter-user-mode tree-prev<ret>"
map -docstring "show sexp" global tree 's' ":tree-node-sexp<ret>"
map -docstring "enable highlighting" global tree '"' ":tree-always-highlight<ret>"
map -docstring "disable highlighting" global tree '&' ":tree-always-highlight-disable<ret>"
declare-user-mode tree-children
declare-user-mode tree-next
declare-user-mode tree-prev
map global normal 'f' ":enter-user-mode tree-next<ret>"
map global normal 'F' ":enter-user-mode tree-children<ret>"
evaluate-commands %sh{
echo "i,identifier
t,type
c,call
a,arguments
s,statement
d,declaration
n,number
\",string" |
while IFS=, read -r cmd group ; do
echo "map -docstring '$group child' global tree-children '$cmd' ':tree-select-children $group<ret>'"
echo "map -docstring 'next $group' global tree-next '$cmd' ':tree-select-next-node $group<ret>'"
echo "map -docstring 'previous $group' global tree-prev '$cmd' ':tree-select-previous-node $group<ret>'"
done
}
#TODO
# map global user '&' ':qhl-word<ret>' -docstring "Highlight current word"
@ -120,6 +130,10 @@ map global insert '<c-s>' '<a-;>:enter-user-mode lsp<ret>s'
## == Colors ==
## Highlight whitespace at end of line
add-highlighter global/ regex '^.*[^ ]( +)$' 1:black,red
add-highlighter global/ number-lines -relative -hlcursor
define-command update-cursor-style %{
evaluate-commands %sh{
if [ $(echo "$kak_selection" | wc -c) -eq 2 ] ; then
@ -163,11 +177,3 @@ hook global WinSetOption filetype=python %{
set-option window formatcmd 'black -q -'
}
set-option global ignored_files "^(\..*|.*\.(o|so|a)|__pycache__)$"
## APL execute on =
define-command -hidden dyalog-execute %{
execute-keys -itersel 'i⎕←<esc>HH|dyalogscript /dev/fd/0<ret>'
}
map global normal '=' ':dyalog-execute<ret>'

View File

@ -2,7 +2,7 @@
"nodes": {
"agda": {
"inputs": {
"flake-utils": "flake-utils_3",
"flake-utils": "flake-utils_6",
"nixpkgs": [
"rachel",
"nixpkgs"
@ -68,8 +68,8 @@
],
"agda-stdlib-source": "agda-stdlib-source",
"flake-compat": "flake-compat",
"flake-utils": "flake-utils_4",
"nixpkgs": "nixpkgs_2"
"flake-utils": "flake-utils_7",
"nixpkgs": "nixpkgs_4"
},
"locked": {
"lastModified": 1694540816,
@ -138,12 +138,15 @@
}
},
"flake-utils_3": {
"inputs": {
"systems": "systems_3"
},
"locked": {
"lastModified": 1678901627,
"narHash": "sha256-U02riOqrKKzwjsxc/400XnElV+UtPUQWpANPlyazjH0=",
"lastModified": 1694529238,
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "93a2b84fc4b70d9e089d029deacc3583435c2ed6",
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
"type": "github"
},
"original": {
@ -154,14 +157,14 @@
},
"flake-utils_4": {
"inputs": {
"systems": "systems_3"
"systems": "systems_4"
},
"locked": {
"lastModified": 1692799911,
"narHash": "sha256-3eihraek4qL744EvQXsK1Ha6C3CR7nnT8X2qWap4RNk=",
"lastModified": 1681202837,
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "f9e7cf818399d17d347f847525c5a5a8032e4e44",
"rev": "cfacdce06f30d2b68473a46042957675eebb3401",
"type": "github"
},
"original": {
@ -172,7 +175,7 @@
},
"flake-utils_5": {
"inputs": {
"systems": "systems_4"
"systems": "systems_5"
},
"locked": {
"lastModified": 1694529238,
@ -189,8 +192,59 @@
}
},
"flake-utils_6": {
"locked": {
"lastModified": 1678901627,
"narHash": "sha256-U02riOqrKKzwjsxc/400XnElV+UtPUQWpANPlyazjH0=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "93a2b84fc4b70d9e089d029deacc3583435c2ed6",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_7": {
"inputs": {
"systems": "systems_5"
"systems": "systems_6"
},
"locked": {
"lastModified": 1692799911,
"narHash": "sha256-3eihraek4qL744EvQXsK1Ha6C3CR7nnT8X2qWap4RNk=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "f9e7cf818399d17d347f847525c5a5a8032e4e44",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_8": {
"inputs": {
"systems": "systems_7"
},
"locked": {
"lastModified": 1694529238,
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_9": {
"inputs": {
"systems": "systems_8"
},
"locked": {
"lastModified": 1694529238,
@ -213,11 +267,11 @@
]
},
"locked": {
"lastModified": 1698392685,
"narHash": "sha256-yx/sbRneR2AfSAeAMqUu0hoVJdjh+qhl/7dkirp8yo8=",
"lastModified": 1699783872,
"narHash": "sha256-4zTwLT2LL45Nmo6iwKB3ls3hWodVP9DiSWxki/oewWE=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "1369d2cefb6f128c30e42fabcdebbacc07e18b3f",
"rev": "280721186ab75a76537713ec310306f0eba3e407",
"type": "github"
},
"original": {
@ -269,6 +323,29 @@
"url": "https://githug.xyz/xenia/kakoune.git"
}
},
"kak-tree": {
"inputs": {
"flake-utils": "flake-utils_3",
"nixpkgs": [
"nixpkgs"
],
"rust-overlay": "rust-overlay",
"tree-sitters": "tree-sitters"
},
"locked": {
"lastModified": 1699828151,
"narHash": "sha256-JI+tkQbzm1u3CYrPWNRHZupQx8rk8BpdeyAFDD6cNvY=",
"ref": "refs/heads/main",
"rev": "2c17cea19ee8d2b93f48e619b59912b1e5dc0ca0",
"revCount": 14,
"type": "git",
"url": "https://githug.xyz/xenia/kak-tree.git"
},
"original": {
"type": "git",
"url": "https://githug.xyz/xenia/kak-tree.git"
}
},
"nix-darwin": {
"inputs": {
"nixpkgs": [
@ -276,11 +353,11 @@
]
},
"locked": {
"lastModified": 1698429334,
"narHash": "sha256-Gq3+QabboczSu7RMpcy79RSLMSqnySO3wsnHQk4DfbE=",
"lastModified": 1699704228,
"narHash": "sha256-NApWG385goidsXmsakWgFRjvbH+aw/n1CGGHn/UuXsc=",
"owner": "LnL7",
"repo": "nix-darwin",
"rev": "afe83cbc2e673b1f08d32dd0f70df599678ff1e7",
"rev": "0f1ad801387445fdda01d080db8ecf169be8e793",
"type": "github"
},
"original": {
@ -291,11 +368,41 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1698318101,
"narHash": "sha256-gUihHt3yPD7bVqg+k/UVHgngyaJ3DMEBchbymBMvK1E=",
"lastModified": 1681358109,
"narHash": "sha256-eKyxW4OohHQx9Urxi7TQlFBTDWII+F+x2hklDOQPB50=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "96ba1c52e54e74c3197f4d43026b3f3d92e83ff9",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1697009197,
"narHash": "sha256-viVRhBTFT8fPJTb1N3brQIpFZnttmwo3JVKNuWRVc3s=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "01441e14af5e29c9d27ace398e6dd0b293e25a54",
"type": "github"
},
"original": {
"id": "nixpkgs",
"type": "indirect"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1699099776,
"narHash": "sha256-X09iKJ27mGsGambGfkKzqvw5esP1L/Rf8H3u3fCqIiU=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "63678e9f3d3afecfeafa0acead6239cdb447574c",
"rev": "85f1ba3e51676fa8cc604a3d863d729026a6b8eb",
"type": "github"
},
"original": {
@ -305,7 +412,7 @@
"type": "github"
}
},
"nixpkgs_2": {
"nixpkgs_4": {
"locked": {
"lastModified": 1694062546,
"narHash": "sha256-PiGI4f2BGnZcedP6slLjCLGLRLXPa9+ogGGgVPfGxys=",
@ -331,11 +438,11 @@
]
},
"locked": {
"lastModified": 1698442363,
"narHash": "sha256-MoAnALR+r/+tuWNm2DqHUHhQMTrq5jNSgwPgQ4/vIKs=",
"lastModified": 1699738267,
"narHash": "sha256-spGi9SpcDQ4Vf9ulojj7wdVz83erFMvpwmtXGNkKalk=",
"ref": "refs/heads/master",
"rev": "78a50f078d7efda240c2ef17f51a50f821dbe238",
"revCount": 62,
"rev": "f536566a01ef215386131a5baef1a25e744cf069",
"revCount": 78,
"type": "git",
"url": "https://git@githug.xyz/rachel/nixos-config"
},
@ -349,13 +456,33 @@
"ansi-utils": "ansi-utils",
"home-manager": "home-manager",
"kak": "kak",
"kak-tree": "kak-tree",
"nix-darwin": "nix-darwin",
"nixpkgs": "nixpkgs",
"nixpkgs": "nixpkgs_3",
"rachel": "rachel",
"unambig-path": "unambig-path",
"unispect": "unispect"
}
},
"rust-overlay": {
"inputs": {
"flake-utils": "flake-utils_4",
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1699669856,
"narHash": "sha256-OIb0WAoEMUA1EH70AwpWabdEpvYt/kJChBnb7XiXAJs=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "efd15e11c8954051a47679e7718b4c2a9b68ce27",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
@ -431,9 +558,73 @@
"type": "github"
}
},
"unambig-path": {
"systems_6": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_7": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_8": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"tree-sitters": {
"inputs": {
"flake-utils": "flake-utils_5",
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1699742193,
"narHash": "sha256-1pc59vyEpFwtHYKsEGAwxL7/4wiTmLmzKO6j61wqOeo=",
"ref": "refs/heads/main",
"rev": "bb561d2e33d4d9f9d8171df2484ba6ae8e810b74",
"revCount": 3,
"type": "git",
"url": "https://githug.xyz/xenia/tree-sitters"
},
"original": {
"type": "git",
"url": "https://githug.xyz/xenia/tree-sitters"
}
},
"unambig-path": {
"inputs": {
"flake-utils": "flake-utils_8",
"nixpkgs": [
"nixpkgs"
]
@ -454,7 +645,7 @@
},
"unispect": {
"inputs": {
"flake-utils": "flake-utils_6",
"flake-utils": "flake-utils_9",
"nixpkgs": [
"nixpkgs"
]

View File

@ -17,6 +17,10 @@
url = "git+https://githug.xyz/xenia/kakoune.git";
inputs.nixpkgs.follows = "nixpkgs";
};
kak-tree = {
url = "git+https://githug.xyz/xenia/kak-tree.git";
inputs.nixpkgs.follows = "nixpkgs";
};
unispect = {
url = "git+https://git@githug.xyz/xenia/unispect";
inputs.nixpkgs.follows = "nixpkgs";
@ -35,7 +39,7 @@
};
};
outputs = { self, nixpkgs, home-manager, nix-darwin, kak, unispect, ansi-utils, unambig-path, rachel }:
outputs = { self, nixpkgs, home-manager, nix-darwin, kak, kak-tree, unispect, ansi-utils, unambig-path, rachel }:
let
xdg-runtime-dir = "/tmp/xdg-rt";
@ -47,6 +51,7 @@
unispect = unispect.packages.${system}.unispect;
ansi-utils = ansi-utils.packages.${system};
unambig-path = unambig-path.packages.${system}.unambig-path;
kak-tree = kak-tree.packages.${system}.kak-tree;
};
mkPC = {system, pkgs} : import ./home/graphical.nix {
inherit pkgs xdg-runtime-dir;

View File

@ -144,7 +144,7 @@ esac";
dontPatchELF = true;
passthru.tests.test = nixosTests.terminal-emulators.alacritty;
# passthru.tests.test = nixosTests.terminal-emulators.alacritty;
};
in

View File

@ -1,7 +1,7 @@
{ pkgs, username, home-dir, prompt-color, xdg-runtime-dir, kak-pkg, unispect, ansi-utils, unambig-path }:
{ pkgs, username, home-dir, prompt-color, xdg-runtime-dir, kak-pkg, kak-tree, unispect, ansi-utils, unambig-path }:
let
kak = import ./kak.nix { kak = kak-pkg; inherit pkgs; };
kak = import ./kak.nix { kak = kak-pkg; inherit pkgs kak-tree; };
extras = import ./extras.nix pkgs;

View File

@ -1,4 +1,4 @@
{ pkgs, kak }:
{ pkgs, kak, kak-lsp ? pkgs.kak-lsp, kak-tree }:
with pkgs; let
kakoune-mirror = kakouneUtils.buildKakounePluginFrom2Nix {
pname = "kakoune-mirror";
@ -63,7 +63,7 @@ with pkgs; let
command = "clangd"
'';
kak-lsp-config-line = "set global lsp_cmd \"kak-lsp -s %val{session} --config ${kak-lsp-config-file} --log /tmp/kak-lsp.log\"";
kak-lsp-config-line = "set global lsp_cmd \"${kak-lsp}/bin/kak-lsp -s %val{session} --config ${kak-lsp-config-file} --log /tmp/kak-lsp.log\"";
in
{
enable = true;
@ -77,6 +77,7 @@ in
ad-hoc-org-mode
kakoune-lsp
kak-tree
];
config = {