Моя цель - настроить монитор так, чтобы он был максимально гибким и простым в использовании. Я использую рыбу в качестве раковины и добавил следующие две строки:
abbr mon 'xrandr --output DP2 --auto --primary --left-of eDP1 || xrandr --output HDMI1 --auto --primary --left-of eDP1 && setxkbmap -layout de -option ctrl:nocaps && i3-msg restart'
abbr moff 'xrandr --output DP2 --off || xrandr --output HDMI1 --off && i3-msg restart'
Что должно позволить мне просто набирать mon
или moff
всякий раз, когда я хочу включить или выключить свой монитор (также часть setxkbmap
, потому что я в основном использую ключ с монитором и клавиатурой).
Насколько я понимаю, объединение двух команд с &&
запускает вторую команду, когда первая удалась, и объединяет две команды с ||
запускает команду только тогда, когда первая команда не удалась.
Однако в моем случае часть после &&
будет выполняться всегда, потому что одна из команд должна успешно завершиться, что она и делает. Увидеть:
tim@arch ~> false || true && echo hello
hello
tim@arch ~> true || false && echo hello
hello
Моя проблема в том, что часть после ||
в моих строках никогда не запускается, поэтому команда ничего не делает, когда HDMI1
подключен, а DP2
отключен.
Это почему? Я что-то здесь не так понял?