저는 GNOME 3.14(및 관련 GTK+ 관련 항목)에 초점을 맞춘 Fedora 21로 업그레이드했습니다. 불행하게도, 이 특정 업데이트는 현재 노후화된 GNOME 3 버전을 위해 작성한 이전 테마 중 많은 부분을 깨뜨리는 것 같습니다. 이전에는 삐걱거렸을지 모르지만 지금은 조금 이상해 보입니다.
나는 바퀴를 재발명하고 싶지 않습니다. 기존 CSS 템플릿(예: 기본 Adwaita 3.14 사양)을 사용하여 여기저기 원하는 대로 조정할 수 있어서 기쁩니다. /usr/share/themes/Adwaita/gtk-3.0/gtk.css를 엿볼 때 내가 찢은 머리카락을 상상해보십시오.
/* Adwaita is the default theme of GTK+ 3, this file is not used */
이것은 나를 어려운 위치에 놓이게 한다. 나는 이것이 어디에 있는지에 대한 문서를 파헤칠 Google-fu가 부족하고(더 나쁜 것은 이것이 GNOME 사람들에게 명백할 것 같은 직감이 있는데 나는 그것을 놓쳤습니다) 어떤 이유로 GNOME 개발자 웹 사이트가 나의 연구 시도를 거부했습니다. 그들의 테마 사양.
간단히 말해서, 나는 GNOME 3.14에 대한 원래 테마 사양을 찾고 싶습니다(존재한다고 가정). 어떻게 해야 하나요? 아니면 접근 방식을 어떻게 수정할 수 있나요?
답변1
.css
기본 테마 Adwaita가 바이너리 형식으로 제공되므로 이 파일에는 한 줄만 있습니다 .
Adwaita는 복잡한 테마이므로 유지 관리가 가능하도록 SASS로 작성 및 처리한 다음 생성된 CSS를 gtk 빌드 중에 gresource 파일로 변환하여 읽을 수 없거나 편집할 수 없는 형식으로 실행하여 사용합니다.
모든gnome 4.*
읽어보기 파일:
테마를 조정하는 방법
기본값은 복잡한 주제이므로 유지 관리를 위해 SASS에서 작성하고 처리합니다. 생성된 CSS는 gtk 빌드 중에 gresource 파일로 변환되고 런타임 시 읽을 수 없거나 편집 가능한 형식으로 사용됩니다.
변경 사항은 _common.scss 파일에서 발생했을 가능성이 높습니다. 모든 위젯 선택기가 정의되는 곳입니다. 다음은 "지원되는" 스타일시트의 개요입니다. 이는 스타일시트 수정을 통해 구동할 수 있는 올바른 위치가 아닐 가능성이 높습니다.
_colors.scss - 전역 색상 정의. 우리는 정의된 색상의 수를 필요한 최소값으로 유지하며 대부분의 색상은 몇 가지 기본 사항에서 파생됩니다. 밝은 변형과 어두운 변형을 모두 다룹니다.
_colors-public.scss - 타사 응용 프로그램의 색상 혼합을 허용하기 위해 gtk를 통해 내보낸 SCSS 색상입니다.
_드로잉.scss - 특정 컨텍스트에서 위젯 그리기를 더 쉽게 정의할 수 있는 그리기 도우미 믹스인/함수입니다. 이것이 기본값이 15000 LOC가 아닌 이유입니다.
_common.scss - 각 위젯의 실제 스타일 정의입니다. 여기에서 변경사항을 추가/제거할 수 있습니다.
다음 사이트에서 SASS에 대해 읽을 수 있습니다.http://sass-lang.com/documentation/. _common.scss 파일을 변경하면 GTK는 CSS 파일을 다시 빌드합니다.
또한, 가이드를 확인하세요기본 light.scss그리고기본-dark.scss:
// 일반 지침:
// - 다른 콘텐츠를 편집하고 싶지 않을 것입니다_common.scss
. // - 정의된 색상 수를 최소한으로 유지합니다.
미묘한 음영이 필요한 경우 색상 혼합 기능을 사용합니다. - 색상을 반전해야 하는 경우 기능;
// @if 지시문을 사용하여 dark $variant와 일치시킵니다.
동일한 git 디렉토리( Default
)에서 다음 파일을 찾을 수 있습니다.
_common.scss
,_colors.scss
,_colors-public.scss
그리고_drawing.scss
For gnome 3.*
:
코드가 포함되어 있으므로 gtk+
소스 파일을 볼 수 있습니다.여기. 그들의 의견에 따르면 readme
:
_colors.scss - global color definitions. We keep the number of defined colors to a necessary minimum, most colors
are derived form a handful of basics. It covers both the light variant and the dark variant.
_colors-public.scss - SCSS colors exported through gtk to allow for 3rd party apps color mixing.
_drawing.scss - drawing helper mixings/functions to allow easier definition of widget drawing under specific context.
This is why Adwaita isn't 15000 LOC.
_common.scss - actual definitions of style for each widget. This is where you are likely to add/remove your changes.
동일한 git 디렉토리( )에서 위에서 언급한 파일과 참조 구성표를 Adwaita
찾을 수 있습니다 ._*.scss
답변2
창 상단 표시줄 색상에 대한 비슷한 질문에서 내 자신의 TLDR을 여기에 복사하고 있습니다.
~/.config/gtk-3.0/gtk.css
/* REMOVE "-dark" IF USING LIGHT THEME */
@import url("resource:///org/gtk/libgtk/theme/Adwaita/gtk-contained-dark.css");
/* THIS ONE CHANGES TITLEBAR COLOR */
headerbar.titlebar,
headerbar.titlebar:active {
background:#3F51B5;
}
/* THIS CHANGES NAUTILUS SEARCH BAR */
.horizontal.path-bar-box,
row:selected:backdrop {
background:#3F51B5;
border-color:#3F51B5;
}
디버깅하고 적절한 CSS 선택기를 찾으려면 환경 변수를 사용하여 GTK3 애플리케이션을 엽니다 GTK_DEBUG=interactive
. 예를 들어,
GTK_DEBUG=interactive nautilus
그러면 GTK 창에서 검사기가 열립니다. 없으면 Ctrl+ Shift+ 를 누르세요 I.