Поведение Caps Lock в Sway / Wayland

Да. подстановка команды удаляет все завершающие символы новой строки 1 .

Чтобы обойти это:

var=$(xsel --clipboard; echo .)
var=${var%?}

То есть добавьте . \ N к этому выходу. Затем удалите точку с помощью $ {var%?} ( \ n позаботится о замене команды).

Обратите внимание, что, за исключением zsh , переменные оболочки не могут содержать байты NUL.

Если вы хотите сохранить статус выхода:

var=$(xsel --clipboard; ret=$?; echo .; exit "$ret")
ret=$?
var=${var%?}

Не забудьте процитировать $ var при его расширении:

printf %s "$var"

Вспомогательная функция:

cmdsubst() {
  _var=$1; shift
  eval "$_var="'$("$@"; ret=$?; echo .; exit "$ret")
    _ret=$?
    '"$_var=\${$_var%?}"
  return "$_ret"
}

Используется как:

cmdsubst var xsel --clipboard

Чтобы сохранить жирным шрифтом"...Некоторые инструменты экспортируют выделение CLIPBOARD как text / html в дополнение к простой строке UTF8. В этом случае (с последними версиями xclip ) вы можете сделать:

cmdsubst html xclip -sel c -o -t text/html

См. Вывод xclip -sel c -o -t TARGETS , чтобы увидеть, какой выбор нацелен на текущий Владелец БУФЕРЫ ОБМЕНА предоставляет.

Пример после копирования части моего комментария к Микелю выше в iceweasel:

$ xclip -sel c -o -t TARGETS
TIMESTAMP
TARGETS
MULTIPLE
SAVE_TARGETS
text/html
text/_moz_htmlcontext
text/_moz_htmlinfo
UTF8_STRING
COMPOUND_TEXT
TEXT
STRING
text/x-moz-url-priv
$ xclip -sel c -o -t text/html
<span class="comment-copy"><i>should</i> remove <i>only one</i> trailing newline</span>
$ xclip -sel c -o -t TEXT
should remove only one trailing newline

1 Исключением являются оболочки семейства rc , где вы можете сказать, что не хотите любая постобработка с синтаксисом var = `` () {xsel --clipboard} .

0
06.03.2019, 14:45
1 ответ

Добавьте следующее в конфигурацию sway:

input <identifier> {
    xkb_options caps:ctrl_modifier
}

где <identifier>— идентификатор вашего устройства ввода с клавиатуры, который можно получить, запустив swaymsg -t get_inputs.

Источник:https://github.com/swaywm/sway/wiki#keyboard-layout

ОБНОВЛЕНИЕ :OP спрашивает: «Caps Lock является Escape, но при удерживании является элементом управления». Оказывается, здесь есть простая программа , которая делает именно это на уровне libevdev (, поэтому работает с любым сервером отображения, Wayland или нет, и приведенная выше конфигурация влияния не нужна ).

Связанная ветка обсуждения:https://github.com/swaywm/sway/issues/719

3
28.01.2020, 02:30

Теги

Похожие вопросы