Моя цель - настроить монитор так, чтобы он был максимально гибким и простым в использовании. Я использую рыбу в качестве раковины и добавил следующие две строки:

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 отключен.

Это почему? Я что-то здесь не так понял?

0