Я на 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;
Учитывая предложенные мной решения, которые не решили эту проблему полностью, как мне запустить то, что только определенные bindsym
s запускаются в плавающем режиме?
решение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