Я хочу сделать своего рода окно состояния / системный монитор с чем-то вроде node-WebKit на моем компьютере, что довольно тривиально. Дело в том, что я хотел бы иметь возможность иметь команду клавиатуры в i3 для переключения в полноэкранный режим независимо от того, в каком рабочем пространстве в i3 я нахожусь. Как я могу это сделать?

1 ответ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, он либо покажет окно в полноэкранном режиме в текущей рабочей области, либо скроет его, если оно уже там.

Объяснение:

  1. Инициализация:

    for_window [title="^WINDOW_TITLE$"] mark "STATWIN", move scratchpad
    
    • for_window может использоваться для запуска определенных команд для окон, которые соответствуют заданным критериям (здесь title="^WINDOWS_TITLE$") при их создании. Это означает, что заголовок должен соответствовать начальному заголовку окна. Есть и другие критерии, такие как class или instance . В зависимости от вашей программы вам может потребоваться использовать что-то кроме title или даже комбинации критериев (дополнительную информацию см. В разделе о критериях в Руководстве пользователя i3).
    • mark помещает в окно уникальную метку, которую позже можно использовать с критерием con_mark для ссылки на это окно. Здесь лейбл STATWIN
    • , Важно отметить , , используется для цепи команд ; , Критерии окна ([...]) применяются только до следующего ; (или конец строки, конечно).
    • move scratchpad перемещает окно в Блокнот, который можно использовать для окон, к которым вы хотите иметь легкий доступ. (См. Раздел "Скретчпад" в Руководстве пользователя).
  2. Доступ к окну

    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 делает окно видимым в текущем рабочем пространстве, если оно не было в текущем рабочем пространстве раньше. Если оно уже было в текущей рабочей области, окно будет скрыто.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .