Как получить радиус рамки окна в Unity/Compiz?

Есть ли способ получить радиус рамки окна в Unity (диспетчер окон Compiz)? Должен ли я сделать это путем анализа активной темы окна? Если да, то какие файлы мне нужно проанализировать? Любые другие способы тоже принимаются. Плюс, если вы знаете решение для любой другой WM, напишите, пожалуйста.

Я использую Qt, и, насколько я знаю, он не предоставляет такую ​​функциональность "из коробки". Но, если вы знаете какие-либо опции Qt, они предпочтительнее.

Под радиусом оконной рамы я подразумеваю следующую область (ограничена красным, красный не включен):

Например, на иллюстрации радиус рамки составляет 6 пикселей, потому что сторона квадрата внутри красной границы равна 6 пикселей.

2 ответа

Решение

Для Ubuntu 14.04.02 LTS/Unity радиус управляется CSS в /usr/share/themes/< имя темы>/gtk-3.0/apps/unity.css

Найдите строку "border-radius:", как указано в тексте ниже. Измените значения в соответствии со стандартными правилами радиуса CSS. Значения по умолчанию: 6px 6px 0 0;

Это изменяет ТОЛЬКО строку заголовка в верхней части и применяется к 4 углам строки заголовка.

Выйдите из системы, чтобы изменения вступили в силу.

Текст, показанный ниже, взят из темы "Radiance" в /usr/share/themes/Radiance/gtk-3.0/apps/unity.css после внесения изменений.

UnityDecoration.top {
    border: 1px solid rgba (85, 40, 0, 0.04); /* shade (@dark_bg_color) (shade (#edebe6, 1.06) */
    border-bottom-width: 0;
--> border-radius: 3px 3px 0 0;
    padding: 1px 6px 0 6px;

    box-shadow: inset 0 0 transparent, inset 0 0 transparent,
                inset 0 1px shade (#edebe6, 1.065), inset 0 0 transparent;

    background-color: transparent;
    background-clip: border-box;
    background-image: -gtk-gradient (linear, left top, left bottom,
                                     from (shade (#edebe6, 1.06)),
                                     to (@dark_bg_color));

    color: shade (@dark_bg_color, 0.4);
    text-shadow: 1px 0 shade (@dark_bg_color, 1.06), -1px 0 shade (@dark_bg_color, 1.06),
                 0 1px shade (@dark_bg_color, 1.06), 0 -1px shade (@dark_bg_color, 1.06);
}

Это определено в css-файле темы оболочки под

/usr/share/themes

То, что вы ищете, это

border-radius

свойство окон.

Другие вопросы по тегам