Здравствуйте, красноглазые нирийцы, который вздрагивают при одном упоминании Нокталии! Сегодня мы с вами будем перепиливать поведение мыши. Долой наследие иксов!
Итак, сначала идём и вписываем в ~/.config/niri/config.kdl
clipboard {
disable-primary
}
Для GTK можно добавить команду
dconf write /org/gnome/desktop/interface/gtk-enable-primary-paste falseТеперь добираемся до эмулятора терминала. Поскольку я перешёл на Wezterm (написан на нашем любимом Rust'е), то опишу для него. В ~/.config/wezterm/wezterm.lua надо добавить
config.mouse_bindings = {
{
event = { Down = { streak = 1, button = 'Middle' } },
mods = 'NONE',
action = act.Nop,
},
{
event = { Up = { streak = 1, button = "Left" } },
mods = "NONE",
action = wezterm.action.OpenLinkAtMouseCursor,
},
{
event = { Up = { streak = 2, button = "Left" } },
mods = "NONE",
action = wezterm.action.Nop,
},
{
event = { Up = { streak = 3, button = "Left" } },
mods = "NONE",
action = wezterm.action.Nop,
},
}
Однако, это просто отключение. Но у нас освобождается целая кнопка! И её теперь можно использовать в разных сценариях. Например, для того же Wezterm'а можно прописать
config.mouse_bindings = {
{
event = { Down = { streak = 1, button = 'Middle' } },
mods = 'NONE',
action = wezterm.action.SendString 'elio\r',
},
{
event = { Down = { streak = 1, button = 'Middle' } },
mods = 'CTRL',
action = wezterm.action.SendString 'eza --tree ./',
},
{
event = { Down = { streak = 1, button = 'Middle' } },
mods = 'ALT',
action = wezterm.action.SendString 'btm\r',
},
{
event = { Down = { streak = 1, button = 'Middle' } },
mods = 'SHIFT',
action = wezterm.action.SendString 'fd -t f . | fzf --preview "bat --style=numbers --color=always {}" | xargs hx',
},
{
event = { Up = { streak = 1, button = "Left" } },
mods = "NONE",
action = wezterm.action.Nop,
},
{
event = { Up = { streak = 2, button = "Left" } },
mods = "NONE",
action = wezterm.action.Nop,
},
{
event = { Up = { streak = 3, button = "Left" } },
mods = "NONE",
action = wezterm.action.Nop,
},
}
- При нажатии средней кнопки мыши запустится файловый менеджер elio (написан на нашем любимом Rust'е (Niri тоже на Rust'е)).
- При нажатии Ctrl+средняя кнопка мыши в командную строку вставится шаблон 'eza --tree ./' для запуска продвинутой альтернативы ls+tree с подсветкой и значками (написана на нашем любимом Rust'е).
- При нажатии Alt+средняя кнопка мыши запустится системный монитор bottom (написан на нашем любимом Rust'е).
- При нажатии Shift+средняя кнопка мыши в командную строку вставится шаблон 'fd -t f . | fzf --preview «bat --style=numbers --color=always {}» | xargs hx' для поиска и открытия файлов в текстовом редакторе helix (написан на нашем любимом Rust'е). Вместо find и less здесь используются fd и bat соответственно (написаны на нашем любимом Rust'е).
Enjoy!








