Я хочу сделать своего рода окно состояния / системный монитор с чем-то вроде node-WebKit на моем компьютере, что довольно тривиально. Дело в том, что я хотел бы иметь возможность иметь команду клавиатуры в i3 для переключения в полноэкранный режим независимо от того, в каком рабочем пространстве в i3 я нахожусь. Как я могу это сделать?
1 ответ
1
Вы можете поместить следующие две строки в вашу конфигурацию i3 :
for_window [title="^WINDOW_TITLE$"] mark "STATWIN", move scratchpad
bindsym Mod4+s [con_mark="^STATWIN$"] fullscreen enable, scratchpad show
Где WINDOW__TITLE
- это точное название окна вашего статуса, а Mod4+s
(Win+s) предполагаемый ярлык. Если вы нажмете Win+s, он либо покажет окно в полноэкранном режиме в текущей рабочей области, либо скроет его, если оно уже там.
Объяснение:
Инициализация:
for_window [title="^WINDOW_TITLE$"] mark "STATWIN", move scratchpad
for_window
может использоваться для запуска определенных команд для окон, которые соответствуют заданным критериям (здесьtitle="^WINDOWS_TITLE$"
) при их создании. Это означает, что заголовок должен соответствовать начальному заголовку окна. Есть и другие критерии, такие какclass
илиinstance
. В зависимости от вашей программы вам может потребоваться использовать что-то кромеtitle
или даже комбинации критериев (дополнительную информацию см. В разделе о критериях в Руководстве пользователя i3).mark
помещает в окно уникальную метку, которую позже можно использовать с критериемcon_mark
для ссылки на это окно. Здесь лейблSTATWIN
,
Важно отметить ,,
используется для цепи команд;
, Критерии окна ([...]
) применяются только до следующего;
(или конец строки, конечно).move scratchpad
перемещает окно в Блокнот, который можно использовать для окон, к которым вы хотите иметь легкий доступ. (См. Раздел "Скретчпад" в Руководстве пользователя).
Доступ к окну
bindsym Mod4+s [con_mark="^STATWIN$"] fullscreen enable, scratchpad show
bindsym
привязывает команду к ярлыку (здесьMod4+s
)- список критериев -
[con_mark="^STATWIN$"]
- говорит i3 запускать следующие команды для всех окон, соответствующих всем критериям (вместо текущего окна). Критерии соответствуют регулярным выражениям, поэтому вы можете / должны использовать^
и$
для обозначения начала и конца строки соответственно. Здесь единственным критерием являетсяcon_mark="^STATWIN$"
, соответствующий окну (может быть только одно), помеченномуSTATWIN
(точно), что было сделано при инициализации. fullscreen enable
должно быть сделано (каждый раз), так как окна из Scratchpad обычно отображаются как плавающие окна. (Если быть точным: хотя полноэкранный статус может быть установлен в окне Scratchpad в любое время (видимый или нет), он будет удален, когда окно будет скрыто с помощьюscratchpad show
. Если окно было невидимым при настройке в полноэкранном режиме, оно останется невидимым, но будет отображаться в полноэкранном режиме наscratchpad show
)- опять же
,
должен использоваться для разделения команд, потому что критерий должен применяться к обеим командам scratchpad show
делает окно видимым в текущем рабочем пространстве, если оно не было в текущем рабочем пространстве раньше. Если оно уже было в текущей рабочей области, окно будет скрыто.