Вопрос или проблема
Как я могу контролировать высоту панели заголовка в xfce
?
У меня только средний опыт работы с Linux-рабочими столами, я мог бы изменить некоторые настройки в текстовом файле или установить пакет, но инструкция, которая описала бы основные шаги, была бы отличной.
Я не смог найти ответ, который я мог бы понять или следовать на этот вопрос во время своих поисков.
Я выяснил, что это невозможно, изменив какое-либо числовое значение высоты, потому что высота панели заголовка окна не генерируется динамически. Она рисуется на основе графического элемента, который является частью темы, и имеет фиксированную высоту.
Чтобы сделать то, что я просил, необходимо создать новую тему с желаемыми пропорциями.
Существуют также “компактные” темы, которые имеют больше пространства, потому что они рисуют некоторые элементы меньше, но их трудно найти, и они все равно не такие маленькие, как мне бы хотелось.
Перейдите в Настройки > Диспетчер окон > Стиль (первая вкладка)
Высота панели заголовка в XFCE зависит от “Темы”, которую вы выбираете.
Я решил эту проблему, редактируя файлы xpm в /usr/share/themes/
Файлы xpm можно редактировать в текстовом редакторе.
Перейдите в ~/usr/share/themes/
, найдите папку для темы, которую вы хотите изменить (Greybird-dark в моем случае), и отредактируйте файл themerc.txt в этой папке в текстовом редакторе, открытом от имени root.
Параметры, которые вы хотите установить/изменить, подробно описаны здесь. Заменив значения по умолчанию, где это необходимо, я добавил
frame_border_top=10
title_vertical_offset_active=6
title_vertical_offset_inactive=6
button_offset=6
button_spacing=2
Когда вы закончите, выйдите из текстового редактора. Затем измените свою тему на что-то другое, а затем вернитесь к той, которую вы только что изменили. Это должно активировать ваши изменения.
Обратите внимание, что эти настройки иногда будут перезаписаны значительными обновлениями. Например, я потерял их при переходе с Xubuntu 20.04 на Xubuntu 22.04.
Этот ответ расширяет советы, данные в предыдущих, а именно, “создайте новую тему с желаемыми пропорциями” и “[редактируйте] файлы xpm в /usr/share/themes/”.
-
Определите тему, которую вы хотите изменить. Это та, которую вы выбрали в “Настройки” > “Диспетчер окон”, вкладка “Стиль”, настройка “Тема”.
-
Найдите директорию, где хранится эта тема. Это, вероятно, либо
~/.themes/
,~/.local/share/themes/
, либо/usr/share/themes/
. Откройте терминал иcd
в эту директорию. -
Предполагая, что
<theme_name>
это подкаталог, содержащий тему, которую вы хотите изменить, в терминале выполните командуcp -a <theme_name> <theme_name>_modified
. (Если директория, в которой она содержится, это/usr/share/themes/
, вместо этого выполните командуcp -a <theme_name> ~/.themes/<theme_name>_modified
, чтобы вам не пришлось использоватьsudo
.) -
В новой директории
<theme_name>_modified
должно быть пять файлов с именамиtitle-N-active.xpm
и пять файлов с именамиtitle-N-inactive.xpm
, гдеN
– это цифра от 1 до 5. Должно также быть четыре файла с именамиtop-left-active.xpm
,top-right-active.xpm
,top-left-inactive.xpm
иtop-right-inactive.xpm
. Откройте все эти 14 файлов для редактирования. Содержимое одного из файлов должно выглядеть примерно так. (Этот пример взят из темы xfwm4-theme-pixa-master.)/* XPM */ static char *title_1_active[] = { "1 26 1 1 ", ". c #2878C8 s active_color_1", ".", ".", ".", [20 одинаковых строк пропущено] ".", ".", "."};
-
Число
26
на третьей строке означает высоту панели заголовка в пикселях. В каждом из 14 файлов измените его на то, что вы хотите, чтобы новая высота панели заголовка была. Также в каждом из 14 файлов добавьте или удалите строки, содержащие".",
, чтобы количество этих строк было равно новой высоте в пикселях. Сохраните отредактированные файлы. -
Откройте редактор настроек “Настройки” > “Диспетчер окон” и перейдите на вкладку “Стиль”. Тема
<theme_name>_modified
должна появиться в виджете списка настройки “Тема”. Выберите ее. Ваша измененная тема теперь должна стать активной, с высотой панели заголовка, измененной по сравнению с оригинальной темой.
Поместите следующее в скрипт и выполните его, указав желаемую высоту и путь к директории вашей темы (вам необходимо установить ImageMagick):
#!/bin/bash
if [ $# -ne 2 ]; then
echo "Использование: $0 высота_заголовка /путь/к/теме"
echo " (например: $0 40 /usr/share/themes/mytheme/xfwm4)"
exit 1
fi
height=$1
directory=$2
hscale=1.00
title_names=("title-1-active" "title-1-inactive" "title-2-active" "title-2-inactive" "title-3-active" "title-3-inactive" "title-4-active" "title-4-inactive" "title-5-active" "title-5-inactive" )
top_names=("top-left-active" "top-left-inactive" "top-right-active" "top-right-inactive")
menu_names=("menu-active" "menu-inactive" "menu-normal" "menu-pressed")
button_names=("close-active" "close-inactive" "close-pressed" "close-prelight" "hide-active" "hide-inactive" "hide-prelight" "hide-pressed" "maximize-active" "maximize-inactive" "maximize-prelight" "maximize-pressed" "maximize-toggled-active" "maximize-toggled-inactive" "maximize-toggled-prelight" "maximize-toggled-pressed")
top_menu_button_names=("${top_names[@]}" "${menu_names[@]}" "${button_names[@]}")
extensions=("xpm" "png")
for name in "${title_names[@]}"; do
for ext in "${extensions[@]}"; do
if [ -f "${directory}/${name}.${ext}" ]; then
width=$(identify -format "%[fx:w]" "${directory}/${name}.${ext}")
curheight=$(identify -format "%[fx:h]" "${directory}/${name}.${ext}")
if [[ $(bc <<< "$hscale == 1.00") -eq 1 ]]; then
hscale=$(echo "scale=2; ($height / $curheight)" | bc)
fi
echo "${name}.${ext}" $width"x"$curheight "==>" $width"x"$height
# Изменить размер файла
mogrify -resize ${width}X${height}\! "${directory}/${name}.${ext}"
fi
done
done
for name in "${top_menu_button_names[@]}"; do
for ext in "${extensions[@]}"; do
if [ -f "${name}.${ext}" ]; then
curwidth=$(identify -format "%[fx:w]" "${directory}/${name}.${ext}")
curheight=$(identify -format "%[fx:h]" "${directory}/${name}.${ext}")
width=$(echo "scale=2; ($hscale) * $curwidth / 1" | bc)
width=$(echo "scale=0; ($width + 0.5) / 1" | bc)
height=$(echo "scale=2; ($hscale) * $curheight / 1" | bc)
height=$(echo "scale=0; ($height + 0.5) / 1" | bc)
echo "${name}.${ext}" $curwidth"x"$curheight "==>" $width"x"$height
# Изменить размер файла
mogrify -resize ${width}X${height}\! "${directory}/${name}.${ext}"
fi
done
done
Ответ или решение
Управление высотой заголовка окна в XFCE: Полное руководство
XFCE — это легковесная и мощная среда рабочего стола для Linux, однако многие пользователи сталкиваются с необходимостью изменения высоты заголовков окон. Это может быть связано с предпочтениями в дизайне или необходимостью оптимизации пространства на экране. В этой статье мы рассмотрим, как можно изменить высоту заголовка окна в XFCE.
Понимание механизма
Прежде всего, стоит отметить, что высота заголовка окна не регулируется через простое изменение числового значения. На самом деле, высота заголовка окна определяется графическим элементом, который является частью темы оформления, и имеет фиксированное значение. Изменение высоты требует редактирования файлов, относящихся к теме.
Для достижения желаемых результатов можно воспользоваться двумя подходами:
- Изменение существующей темы.
- Создание новой темы с нужными параметрами.
Шаги по изменению высоты заголовка окна
1. Определение используемой темы
Посмотрите в "Настройки" -> "Менеджер окон" -> вкладка "Стиль", чтобы узнать, какая тема в данный момент активна.
2. Обнаружение директории темы
Темы могут храниться в разных местах, включая:
~/.themes/
~/.local/share/themes/
/usr/share/themes/
Откройте терминал и перейдите в соответствующую директорию с помощью команды cd
.
3. Копирование темы для редактирования
Рекомендуется создать модифицированную копию темы, чтобы избежать замены оригинальных файлов. В терминале выполните:
cp -a <имя_темы> <имя_темы>_modified
Если тема находится в /usr/share/themes/
, используйте:
cp -a <имя_темы> ~/.themes/<имя_темы>_modified
4. Редактирование файлов .xpm
В новой директории <имя_темы>_modified
найдите файлы с именами title-N-active.xpm
и title-N-inactive.xpm
(где N — цифра от 1 до 5) и откройте их для редактирования в текстовом редакторе (возможно, вам потребуется административный доступ). Каждому файлу соответствует структура, где третья строка указывает высоту заголовка (обычно, это число пикселей).
Примерная структура:
/* XPM */
static char *title_1_active[] = {
"1 26 1 1 ",
". c #2878C8 s active_color_1",
".",
".",
"[другие строки]",
"."};
Измените третью строку на желаемую высоту и добавьте или удалите строки с символами ".", чтобы количество строк соответствовало новой высоте.
5. Применение изменений
После внесения всех изменений, сохраните файлы. Затем вернитесь в "Настройки" -> "Менеджер окон" и выберите вашу обновленную тему <имя_темы>_modified
. Эти шаги активируют ваши изменения.
Скрипт для автоматизации процесса
Для удобства, разработан скрипт, позволяющий автоматически изменять высоту заголовков окон с помощью ImageMagick. Вот простой пример:
#!/bin/bash
if [ $# -ne 2 ]; then
echo "Usage: $0 height /path/to/theme"
exit 1
fi
height=$1
directory=$2
# Здесь должно быть больше кода для изменения высоты файлов
Сохраните данные в файле с расширением .sh
, предоставьте права на выполнение и запустите, указывая необходимые параметры.
Заключение
Изменение высоты заголовка окна в XFCE может показаться сложной задачей, но следуя вышеописанным шагам, вы сможете добиться желаемого результата. Если после обновлений система вернет вас к стандартным установкам, не забудьте повторить процесс редактирования. Этот процесс не только поможет вам настроить внешний вид вашей среды рабочего стола, но и обеспечит более комфортное использование интерфейса в соответствии с вашими предпочтениями.
Если у вас остались вопросы или возникли трудности, не стесняйтесь обратиться к сообществу XFCE для получения поддержки и дополнительных советов.