aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/home
diff options
context:
space:
mode:
authorLibravatar sommerfeld <[email protected]>2026-04-17 10:53:38 +0100
committerLibravatar sommerfeld <[email protected]>2026-04-17 10:53:38 +0100
commitf8d471a07736b899dbffe0f4339e4f97748fd5e6 (patch)
treea0c377fb25819bedf20c01f83cfa5b880a98384a /home
parentbc2edabb376d62c50445e4eda25f872db3ea9814 (diff)
downloaddotfiles-f8d471a07736b899dbffe0f4339e4f97748fd5e6.tar.gz
dotfiles-f8d471a07736b899dbffe0f4339e4f97748fd5e6.tar.bz2
dotfiles-f8d471a07736b899dbffe0f4339e4f97748fd5e6.zip
refactor: replace tmux.nvim with smart-splits.nvim for zellij
- Swap aserowy/tmux.nvim for mrjones2014/smart-splits.nvim in init.lua - Configure Ctrl h/j/k/l navigation keymaps (same keys as before) - Add vim-zellij-navigator WASM plugin keybindings to zellij config - Remove tmux treesitter parser (no longer needed) smart-splits.nvim auto-detects zellij as the multiplexer and provides seamless split/pane navigation across neovim and zellij boundaries.
Diffstat (limited to 'home')
-rw-r--r--home/.config/nvim/init.lua2
-rw-r--r--home/.config/nvim/lua/plugins/init.lua11
-rw-r--r--home/.config/nvim/lua/plugins/treesitter.lua1
-rw-r--r--home/.config/nvim/nvim-pack-lock.json3
-rw-r--r--home/.config/zellij/config.kdl31
-rw-r--r--home/.copilot/config.json3
-rwxr-xr-xhome/.local/bin/display-setup4
-rwxr-xr-xhome/.local/bin/input-setup10
-rwxr-xr-xhome/.local/bin/togreta14
-rwxr-xr-xhome/.local/bin/tokodi11
10 files changed, 74 insertions, 16 deletions
diff --git a/home/.config/nvim/init.lua b/home/.config/nvim/init.lua
index 63c1586..fc3271b 100644
--- a/home/.config/nvim/init.lua
+++ b/home/.config/nvim/init.lua
@@ -97,7 +97,7 @@ vim.pack.add({
-- Misc
gh("iamcco/markdown-preview.nvim"),
- gh("aserowy/tmux.nvim"),
+ gh("mrjones2014/smart-splits.nvim"),
gh("folke/which-key.nvim"),
gh("stevearc/quicker.nvim"),
gh("stevearc/oil.nvim"),
diff --git a/home/.config/nvim/lua/plugins/init.lua b/home/.config/nvim/lua/plugins/init.lua
index 8dce4cd..a0a6d49 100644
--- a/home/.config/nvim/lua/plugins/init.lua
+++ b/home/.config/nvim/lua/plugins/init.lua
@@ -1,8 +1,9 @@
-require("tmux").setup({
- resize = {
- enable_default_keybindings = false,
- },
-})
+-- Seamless navigation between neovim splits and zellij panes
+require("smart-splits").setup({})
+vim.keymap.set("n", "<C-h>", require("smart-splits").move_cursor_left, { desc = "Move to left split/pane" })
+vim.keymap.set("n", "<C-j>", require("smart-splits").move_cursor_down, { desc = "Move to below split/pane" })
+vim.keymap.set("n", "<C-k>", require("smart-splits").move_cursor_up, { desc = "Move to above split/pane" })
+vim.keymap.set("n", "<C-l>", require("smart-splits").move_cursor_right, { desc = "Move to right split/pane" })
require("which-key").setup({
spec = {
diff --git a/home/.config/nvim/lua/plugins/treesitter.lua b/home/.config/nvim/lua/plugins/treesitter.lua
index 8355a07..8e72384 100644
--- a/home/.config/nvim/lua/plugins/treesitter.lua
+++ b/home/.config/nvim/lua/plugins/treesitter.lua
@@ -59,7 +59,6 @@ require("nvim-treesitter").install({
"strace",
"sxhkdrc",
"tablegen",
- "tmux",
"todotxt",
"toml",
"typescript",
diff --git a/home/.config/nvim/nvim-pack-lock.json b/home/.config/nvim/nvim-pack-lock.json
new file mode 100644
index 0000000..a5b818f
--- /dev/null
+++ b/home/.config/nvim/nvim-pack-lock.json
@@ -0,0 +1,3 @@
+{
+ "plugins": []
+}
diff --git a/home/.config/zellij/config.kdl b/home/.config/zellij/config.kdl
index 3d7f976..f3d3aa7 100644
--- a/home/.config/zellij/config.kdl
+++ b/home/.config/zellij/config.kdl
@@ -20,3 +20,34 @@ copy_command "wl-copy"
// Auto-attach to existing session with the same name instead of erroring
attach_to_session true
+
+// Seamless navigation between neovim splits and zellij panes (Ctrl h/j/k/l).
+// Requires smart-splits.nvim on the neovim side.
+keybinds {
+ shared_except "locked" {
+ bind "Ctrl h" {
+ MessagePlugin "https://github.com/hiasr/vim-zellij-navigator/releases/download/0.2.1/vim-zellij-navigator.wasm" {
+ name "move_focus";
+ payload "left";
+ };
+ }
+ bind "Ctrl j" {
+ MessagePlugin "https://github.com/hiasr/vim-zellij-navigator/releases/download/0.2.1/vim-zellij-navigator.wasm" {
+ name "move_focus";
+ payload "down";
+ };
+ }
+ bind "Ctrl k" {
+ MessagePlugin "https://github.com/hiasr/vim-zellij-navigator/releases/download/0.2.1/vim-zellij-navigator.wasm" {
+ name "move_focus";
+ payload "up";
+ };
+ }
+ bind "Ctrl l" {
+ MessagePlugin "https://github.com/hiasr/vim-zellij-navigator/releases/download/0.2.1/vim-zellij-navigator.wasm" {
+ name "move_focus";
+ payload "right";
+ };
+ }
+ }
+}
diff --git a/home/.copilot/config.json b/home/.copilot/config.json
index b056167..98deba8 100644
--- a/home/.copilot/config.json
+++ b/home/.copilot/config.json
@@ -1,10 +1,11 @@
{
"banner": "never",
"model": "claude-opus-4.6",
- "effortLevel": 100,
+ "effortLevel": "max",
"experimental": true,
"includeCoAuthoredBy": false,
"firstLaunchAt": "2026-03-11T00:00:00.000Z",
"trusted_folders": [
+ "/home/sommerfeld/dev/copilot"
]
}
diff --git a/home/.local/bin/display-setup b/home/.local/bin/display-setup
index 94d5703..d8e86d8 100755
--- a/home/.local/bin/display-setup
+++ b/home/.local/bin/display-setup
@@ -14,8 +14,8 @@ if [ "$(uname -n)" = "hercules" ] && xrandr --query | grep "HDMI-1 connected"; t
# xrandr --output HDMI-1 --primary --mode 2560x1080 --rate 75
# xrandr --output HDMI-1 --primary --mode 3840x2160
# xrandr --output HDMI-1 --mode 1920x1080 --sameas eDP-1
-elif [ "$(uname -n)" = "halley" ] && xrandr --query | grep "HDMI-1 connected"; then
- xrandr --output HDMI-1 --mode 1920x1080 --same-as eDP-1
+elif [ "$(uname -n)" = "halley2" ] && xrandr --query | grep "HDMI-2 connected"; then
+ xrandr --output HDMI-2 --mode 1920x1080 --same-as eDP-1
fi
bspc wm -r
diff --git a/home/.local/bin/input-setup b/home/.local/bin/input-setup
index b552871..d97f9c2 100755
--- a/home/.local/bin/input-setup
+++ b/home/.local/bin/input-setup
@@ -17,15 +17,11 @@ setmodmap() {
}
if [ "$(uname -n)" = "halley2" ]; then
- setxkbmap -layout pt
- xmodmap ~/.config/X11/Xmodmap
+ setxkbmap -layout us
elif [ "$(uname -n)" = "hercules" ]; then
setxkbmap -layout es
- xmodmap ~/.config/X11/Xmodmap
fi
-setxkbmap -option "caps:escape"
-xset r rate 250 30
setlayout "Kingston HyperX Alloy FPS Pro Mechanical Gaming Keyboard" us
# setlayout "SONiX USB DEVICE" us
@@ -38,6 +34,10 @@ setlayout "Dierya DK61 Keyboard" us
setlayout "ZSA Technology Labs ErgoDox EZ" us
+setxkbmap -option "caps:escape"
+xset r rate 250 30
+xmodmap ~/.config/X11/Xmodmap
+
if [ "$(uname -n)" = "hercules" ]; then
xinput set-prop "ELAN1205:00 04F3:30E9 Touchpad" "libinput Tapping Enabled" 1
xinput set-prop "ELAN1205:00 04F3:30E9 Touchpad" "libinput Natural Scrolling Enabled" 1
diff --git a/home/.local/bin/togreta b/home/.local/bin/togreta
new file mode 100755
index 0000000..14caaa4
--- /dev/null
+++ b/home/.local/bin/togreta
@@ -0,0 +1,14 @@
+#!/usr/bin/env sh
+
+if [ -z "$1" ]; then
+ url=$(xclip -o -selection clipboard)
+elif [ "$1" = "-" ]; then
+ read -r url
+else
+ url="$1"
+fi
+
+# shellcheck disable=SC2029
+ssh greta.wg restream toggle "$url"
+
+tokodi /storage/videos/greta.strm
diff --git a/home/.local/bin/tokodi b/home/.local/bin/tokodi
index 8393c8b..e8a2495 100755
--- a/home/.local/bin/tokodi
+++ b/home/.local/bin/tokodi
@@ -8,6 +8,15 @@ else
url="$1"
fi
-payload="$(printf '{"jsonrpc":"2.0", "id": 1, "method":"Player.Open","params": {"item": {"file":"%s"}}}' "$url")"
+case "$url" in
+*.m3u8*)
+ prefix=''
+ ;;
+*)
+ prefix='plugin://plugin.video.sendtokodi/?'
+ ;;
+esac
+
+payload="$(printf '{"jsonrpc":"2.0", "id": 1, "method":"Player.Open","params": {"item": {"file":"%s%s"}}}' "$prefix" "$url")"
curl -u kodi:kodi 'http://ruiflix.pulpo:8080/jsonrpc' -X POST --data-raw "$payload" -H 'Content-Type: application/json'