Как в конфигурации Hyperland установить правило для консольного приложения, запускаемого в терминале?

Мне нужно установить правила для некоторых консольных утилит, в частности, чтобы Htop открывался в режиме плавающего окна и имел определенный размер. Я понимаю, что это можно сделать с помощью параметра title, но все мои попытки не увенчались успехом. В последнем варианте я использовал правило: `windowrule = float,class:^(kitty)$,title:^(htop ~ )$`, но оно не сработало. Как мне правильно задать это правило?
  • 14 февраля 2025 г. 15:14
Ответы на вопрос 2
В конфигурации Hyperland для установки правил на консольные приложения, таких как `htop`, нужно правильно задать условия для их идентификации. В вашем случае, чтобы сделать `htop` плавающим окном и установить определенный размер, вы можете использовать параметры `title` и `class`.

Вот пример того, как может выглядеть правило для `htop`:

```lua
windowrule = {
    class = "htop",  -- Замените на класс вашего терминала, если нужно
    title = "htop",  -- Убедитесь, что заголовок окна именно таков
    float = true,
    geometry = { width = 800, height = 600 },  -- Параметры размера окна
}
```

Если `htop` запускается в терминале (например, `kitty`), то класс окна может быть определен именно терминалом, а сам `htop` может не задавать отдельный класс. В таком случае, вы можете воспользоваться параметром `title`, который может отражать название программы в заголовке.

Для поиска правильного класса можно использовать команду `xprop` в терминале, затем кликнуть по окну `htop`, чтобы узнать его класс. 

Если правила не срабатывают, проверьте:

1. Правильность написания класса и заголовка окна.
2. Убедитесь, что правила загружаются корректно, возможно, потребуется перезапуск Hyperland.
3. Конфигурация должна быть в правильном формате, убедитесь, что нет синтаксических ошибок.

Для вашего корректного примера предлагаю следующее:

```lua
windowrule = {
    class = "kitty",  -- класс терминала, в котором запускается htop
    title = "htop",   -- заголовок, который отображается у htop
    float = true,
    geometry = { width = 800, height = 600 },
}
```

Если вы все равно сталкиваетесь с проблемами, попробуйте временно убрать условия (например, попробуйте только с классом или только с заголовком), чтобы понять, с чем именно возникла проблема.
hyperland.conf 
windowrulev2 = float,class:kitty,title:htop
windowrulev2 = size 600 800,class:kitty,title:htop

запуск
kitty --title htop htop
Похожие вопросы