Skip to content

eylles/xterm-nvim

Repository files navigation

xterm-nvim

A shell wrappers that provide a sessioned (neo)vim client

install

make clean install-all

notes

terminal wrapper

By default the script will use the x-terminal-emulator program, which is a debianism, usually a symlink pointing to an appropriate wrapper script that does the work of normalizing the command line to provide scripts an interface that is compatible with the common xterm parameter flags and behaviours for example the gnome-terminal.wrapper however you may not need to build your own x-terminal-emulator wrapper as by policy debian will provide such wrapper for the terminal emulators that DO need it, you can check from the following list of terminals that provide the x-terminal-emulator interface in debian to simply yank the needed wrapper: x-terminal-emulator list

As such the gnvim script expects x-terminal-emulator to exist, have the same argument handling behaviour as an xterm and to support the following flags:

flag use
-e execute command
-name change terminal class or profile, set the WM_CLASS(STRING)
-title change terminal title, set the WM_NAME(STRING)

Both gnvim and tmux-nvim will generate a default config upon first run.

help output

The 4 scripts support the -h flag to show help messages, consult them before using, the scripts that have a config file (gnvim, tmux-nvim) will generate the default config when a config file does not exist, even when run with the -h option.

Pro gamer tip: use this to your advantage.

gnvim

The script jumping through the hoops to wrap the x-terminal-emulator, by default it will want to use tmux via the tmux-nvim wrapper, but it can also work without tmux, just enable the option in the config file.

vim-anywhere

Decided to roll out my own vim-anywhere implementation inspired on the original one with quite some changes, for it to work your terminal emulator or wrapper must support the -name and -title flags as by convenience with those you can set up rules in your window manager to to always treat the terminal window as a floating window (if you use a tiling window manager) to be always on top, the name and class passed onto the vim anywhere terminal is GVim

wayland support

In addition to the previous requirements you will need these:

nvim-url-handler

This provides support for the yet to be officialized nvim:// uri schema from: neovim #34102

The script in addition to coreutils requires a python interpreter for uri decoding and programs xdg-mime from xdg-utils and update-desktop-database from desktop-file-utils

You can modify which uri schemes will be handled by the script at install time, just edit the config.mk file then install as normal, for example:

URI_SCHEMES = nvim vim editor

to add support for a generic editor uri scheme in the spirit of debian.