1. Прямо floating toggleсbindsym

1. Прямо floating toggleсbindsym

Я на Manjaro с i3. Я пытаюсь сделать так, чтобы некоторые сочетания клавиш запускали что-то плавающее, а другие нет. Я пробовал несколько вещей до сих пор:

1. Прямо floating toggleсbindsym

# in i3/config
bindsym $mod+p          exec $term -e python
bindsym $mod+Shift+p            exec $term -e python; floating toggle

К сожалению, это запускает Python в обычном режиме (разделение/вкладки/стопки) и в том режиме, на котором я был сосредоточен до запуска Python.

2. Поместите каждый запущенный Python bindsymв плавающее состояние

# in i3/config
for_window [title="python"] floating toggle
bindsym $mod+p          exec $term -e python

Это на самом деле работает для автоматического запуска Python в плавающем режиме! Однако,любой и каждыйОкно Python запущено bindsymв плавающем режиме...

3. Пользовательский заголовок окна

# in i3/config
for_window [title="[.*]_floating"] floating toggle
bindsym $mod+p          exec --title "python_floating" $term -e python

К сожалению, флага exec, похоже, нет, --titleпоэтому bindsymвообще не работает.

Я пробовал читатьдокументацияи man i3но пока ничего не нашел, что помогло. Похоже, это не решено. 3 похожих поста, которые я нашел в гугле[1] [2] [3]похоже на мое решение №2;

Учитывая предложенные мной решения, которые не решили эту проблему полностью, как мне запустить то, что только определенные bindsyms запускаются в плавающем режиме?

решение1

Ваш третий вариант был очень близок. Как упоминалось в i3 FAQздесьс обоимиurxvtиxtermвы можете использовать -nameпараметр. Затем вы можете определить, является ли он плавающим, основываясь например.

Например, ваш плавающий/неплавающий питон можно реализовать следующим образом:

set $term urxvt

# floating python
for_window  [class="URxvt" instance="floating"] floating toggle resize set 1500 1000, move position 100 200
bindsym $mod+Shift+P exec $term -name 'floating' -e python

# not floating
bindsym $mod+Shift+O exec $term -name 'not' -e python

Связанный контент