Вот что я придумал, пока доволен.
" Unlist unchanged buffers if they are hidden
function! BufferUnchanged()
return exists("b:undo_seq_load") && b:undo_seq_load==changenr()
endfunction
function! UnlistUnchangedBuffer()
if BufferUnchanged()
set nobuflisted
endif
endfunction
" Save the undo sequence position on buffer load
autocmd BufReadPost * let b:undo_seq_load=changenr()
autocmd BufWinLeave * call UnlistUnchangedBuffer()
После долгих исследований я узнал, что для запуска -экранной клавиатуры для Gnome необходимо разработать приложение на основе GTK. Любое приложение, которое не может этого сделать, считается «чужим» на рабочем столе Gnome. По-видимому, Chrome попадает в эту категорию, и Electron также создает приложения, потому что они построены на Chromium. При всем при этом стороннее приложение все еще может отправлять события экранной клавиатуры -через dbus. Проблема вhttps://stackoverflow.com/questions/51434141/centos-on-screen-keyboard-not-showing-for-jawa-swing-text-entry-fields/51476903#51476903описывает этот процесс. Чтобы включить клавиатуру:
dbus-send --type=method_call --dest=org.gnome.Caribou.Keyboard /org/gnome/Caribou/Keyboard org.gnome.Caribou.Keyboard.Show uint32:0
Чтобы выключить клавиатуру:
dbus-send --type=method_call --dest=org.gnome.Caribou.Keyboard /org/gnome/Caribou/Keyboard org.gnome.Caribou.Keyboard.Hide uint32:0