2013-05-25 22 views
2

有沒有辦法在Unity(Compiz窗口管理器)中獲取窗口框架半徑?我應該通過解析活動窗口主題來做到這一點嗎?如果是這樣,我應該解析哪些文件?任何其他方式也被接受。另外,如果你知道任何其他WM的解決方案,請寫下它。如何在Unity/Compiz中獲取窗口框架半徑?

我使用Qt,並且,據我所知,它並不提供這種「盒子」功能。但是,如果你知道任何Qt選項,他們是首選。

窗框半徑我指的是以下的區域(由紅色邊界,不包括紅色):

例如,在該圖中,幀邊界半徑爲6像素,因爲紅色邊框內的正方形是6px。

+0

你的意思是窗框部分? http://qt-project.org/doc/qt-4.8/qt.html#WindowFrameSection-enum –

+0

@RachelGallen不,我已更新問題,請再看一遍。 –

+1

你要改變的是窗口管理器裝飾(即標題欄)的一部分。 GTK +無法控制這一點(你在Qt中也指出過這種情況)。因此,您的解決方案很可能取決於正在運行會話中使用的窗口管理器。如果你在Gnome上,很可能你可能正在運行metacity或compiz。如果你運行的是metacity,你可能需要在'/ usr/share/themes/*'下的'metacity-theme - *。xml'命令中檢查主題文件(可能有多個窗口管理器主題)... –

回答

1

對於Ubuntu的LTS 02年4月14日/團結,半徑由CSS在/ usr /共享/主題/ < 主題名稱 > /gtk-3.0/apps/unity.css

找到行「控制border-radius:「,如下文所示。 根據標準CSS半徑規則更改值。默認值是:6px 6px 0 0;

這隻改變頂部的標題欄並應用於標題欄的四個角落。

註銷/登錄以使更改生效。

下面顯示的文本來自修改後的/usr/share/themes/Radiance/gtk-3.0/apps/unity.css中的「Radiance」主題。

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); 
} 
0

它在外殼主題的CSS文件中定義

/usr/share/themes 

下你所尋找的是窗戶的

border-radius 

財產。

+0

主題的css文件中有很多'border-radius'值,但我找不到任何與窗口裝飾相關的人。舉個例子,你可以在[Adwaita主題](http://gnome-look.org/content/show.php/?content=144237)中找到相應的行嗎? –