Ваше предложение select-layout
соответствует правильному пути, но его необходимо вызывать после открытия каждой новой панели. созданный. Все панели немедленно реорганизуются, поэтому (в моем тесте - терминал 95x58) достаточно места для следующего разделения.
Чтобы избежать сообщения не может присоединить панель к собственному окну
, это помогает создать дополнительное окно, затем переместить в него все существующие окна и закрыть дополнительную панель в конце. parallel
не подходит для этого - вам лучше запрашивать текущие окна и перемещать каждое из них в цикле:
top=$(tmux -S $SERVER new-window -P -n all)
tmux -S $SERVER list-panes -a | grep -v "^$top" | grep -o "%[0-9]\+\>" |
while read p ; do
tmux -S $SERVER joinp -s $p -t $top
tmux -S $SERVER select-layout tiled
done
tmux -S $SERVER kill-pane -t $top
tmux -S $SERVER select-layout tiled
В качестве альтернативы вы можете сделать каждую новую панель на 1 строку выше, с joinp -l 1
. В зависимости от размера вашего терминала этого может быть достаточно, чтобы в конце понадобился только один select-layout
.
Однако parallel
не отслеживает существующие tmux
окна / панели, а просто запускает каждое задание в новом окне. Старый может исчезнуть, в зависимости от настройки остаться при выходе . Таким образом, через некоторое время исходное окно (которое показывало каждое задание на панели) не будет содержать запущенных заданий, и все новые задания снова будут в своих окнах. Вам придется повторно запустить скрипт, чтобы снова переместить все окна (и любые старые панели) в одно окно.
Возможно уменьшение размера панели инструментов. Я написал следующий файл CSS (воспользовавшись помощью Google), чтобы изменить размер панели инструментов:
style "gtkcompact" {
GtkButton::default_border={0,0,0,0}
GtkButton::default_outside_border={0,0,0,0}
GtkButtonBox::child_min_width=0
GtkButtonBox::child_min_heigth=0
GtkButtonBox::child_internal_pad_x=0
GtkButtonBox::child_internal_pad_y=0
GtkMenu::vertical-padding=1
GtkMenuBar::internal_padding=0
GtkMenuItem::horizontal_padding=4
GtkToolbar::internal-padding=0
GtkToolbar::space-size=0
GtkOptionMenu::indicator_size=0
GtkOptionMenu::indicator_spacing=0
GtkPaned::handle_size=4
GtkRange::trough_border=0
GtkRange::stepper_spacing=0
GtkScale::value_spacing=0
GtkScrolledWindow::scrollbar_spacing=0
GtkTreeView::vertical-separator=0
GtkTreeView::horizontal-separator=0
GtkTreeView::fixed-height-mode=TRUE
GtkWidget::focus_padding=0
}
class "GtkWidget" style "gtkcompact"
# Make tabs smaller
style "compact-toolbar" {
GtkToolbar::internal-padding = 0
xthickness = 1
ythickness = 1
}
style "compact-button" {
xthickness = 0
ythickness = 0
}
style "compact-default"
{
xthickness=1
ythickness=1
}
style "compact-entry"
{
xthickness=2
ythickness=2
}
class "GtkButton" style "compact-default"
class "GtkPaned" style "compact-default"
class "GtkEntry" style "compact-entry"
class "GtkToolbar" style "compact-toolbar"
widget_class "*<GtkToolbar>*<GtkButton>" style "compact-button"
В этом CSS строка class "GtkEntry" style "compact-entry"
уменьшает размер панели инструментов в соответствии со стилем CSS «компактный ввод»
.
Я сохранил вышеуказанный файл, указав имя как .gtkrc-eclipse
в домашнем каталоге. После этого я написал сценарий eclipse.sh
, содержащий следующую команду для запуска eclipse с файлом, который мы создали.
export SWT_GTK3=0
env GTK2_RC_FILES=/usr/share/themes/Adwaita/gtk-2.0/gtkrc:/home/snoop/.gtkrc-eclipse /home/snoop/Mars2/eclipse
Теперь вызов скрипта с использованием bash eclipse.sh
запускает eclipse с нашим стилем CSS.
А модифицированная панель инструментов Eclipse выглядит так: