Это одна из тех вещей, которая выглядит так, как будто у нее может быть простое решение, но довольно трудоемкая, когда вы начинаете исследовать PyTile, Xnee и тому подобное.

Я знаю, я должен просто использовать оконный менеджер листов и т.д., Но я полагаю, что это может быть сделано в EWMH-совместимом оконном менеджере (например, OpenBox), и я просто надеюсь, что у кого-то уже есть работающее решение.

Итак, я хочу нажать комбинацию клавиш, пока я нахожусь в сеансе OpenBox (точнее, Lubuntu LXDE), и чтобы мой терминал отображался под окном Chromium с измененным размером (скажем, ~ 60% хрома и ~ 40% терминала).

1 ответ1

1

Я написал небольшой скрипт, который помещает Chromium на 60% экрана, запускает терминал и помещает его в Chromium:

#!/bin/bash

screen_width=` wmctrl -d | awk '{print $9}' | cut -d x -f 1`
screen_height=`wmctrl -d | awk '{print $9}' | cut -d x -f 2`
titlebar=51
browser="Chromium"
terminal_cmd="xterm"

browser_height=$[$screen_height * 60 / 100 - $titlebar]
# unmaximize browser
wmctrl -b remove,maximized_vert,maximized_horz -r "$browser"
wmctrl -r "$browser" -e "0,0,0,$screen_width,$browser_height"

# start terminal and wait till its window has appeared
$terminal_cmd &
sleep 1

# put terminal under browser
terminal_top=$[$screen_height * 60 / 100 + $titlebar]
terminal_height=$[$screen_height * 40 / 100]
wmctrl -r :ACTIVE: -e "0,0,$terminal_top,$screen_width,$terminal_height"

Вы можете изменить некоторые свойства (например, используемый терминал и браузер, а также высоту заголовка окна). Обратите внимание, что $browser - это (часть) заголовка браузера (окна) (например, "Chromium", "Google Chrome" или "Firefox"), а не команда для запуска браузера.

Если вы не хотите, чтобы Chromium изменял размеры, это немного сложнее, но это можно сделать, получив координаты окна с помощью wmctrl -G -l .

Я не знаю, как назначать сочетания клавиш в OpenBox и работает ли он в том WM, но по крайней мере он работает в Unity, когда я запускаю его в командной строке.

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