GTK-애플리케이션별로 다크 테마를 활성화 / 설정


54

응용 프로그램에 gtk-application-prefer-dark-theme을 설정하는 방법이 있습니까?

이것은 일반적으로 응용 프로그램에 의해 코드에서 설정됩니다. 그놈의 눈과 토템과 같은 앱이 켜집니다. 사용자가 응용 프로그램 기반으로 켜고 싶습니다.

그놈 터미널의 경우 일반적으로 검정색 배경색 구성표에 흰색 텍스트를 사용하며 어두운 창 테두리가 있으면 전체 모양이 향상됩니다.

또한 vlc를 켜고 싶습니다.

답변:


61

함께 gtk+ ≥ 3.12사용하면 특정 테마 및 응용 프로그램 별에 미치는 변형 (어두운, 빛)로드 할 수 있습니다 (1 개) 환경 변수를 통해 기초를 GTK_THEME=theme:variant. 당으로서 gtk+참조 설명서 :

GTK_THEME.  If set, makes GTK+ use the named theme instead of the theme that is
specified by the gtk-theme-name setting [...] It is also possible to specify a
theme variant to load, by appending the variant name with a colon, like this:
GTK_THEME=Adwaita:dark.

그래서,로드 2를 어두운 실행할 것 변종 :

GTK_THEME=Adwaita:dark gedit

마찬가지로 (기본 테마가 어두울 때) 반대를 달성하려면 가벼운 변형 을로드하십시오 .

GTK_THEME=Adwaita:light gedit

사용자 정의 실행기 ( .desktop파일)를 통해 사용하려면 env다음 Exec행에 명령 앞에 추가 해야합니다 .

Exec=env GTK_THEME=Adwaita:dark eog %U

1 : 개발자의 결정에 따라 gnome-terminal메뉴> 환경 설정을 통해 자체 구성이 있으며 테마를 무시 한다는 점에 주목할 가치가 있습니다. 또한 이것은 다소 새로운 것이므로 일부 gtk + 3 응용 프로그램은 GTK_THEME환경 변수를 존중하지 않을 수도 있습니다 .
2 : 이미 해당 응용 프로그램의 실행중인 인스턴스가있는 경우 작동하지 않는 것 같습니다. 예를 들어 nautilus이미 어두운 모드에서 실행중인 경우 실행 GTK_THEME=Adwaita:light nautilus하면 새 nautilus창이 열리지 만 여전히 어두운 모드입니다. 이것이 기능인지 버그인지 모르겠습니다.


따라서 특정 테마의 이름을 지정할 수 있지만 "테마가 설정된 테마의 어두운 변형"이라고 말할 수 없습니까?
XTL

2
@XTL-정확합니다. 비록 GTK_THEME=:light eog... 너무 작동하는 것 같군
don_crissti

5
이것은 대부분의 응용 프로그램에서 작동하지 않는 것 같습니다.
Thayne

1
어두운 테마가있을 때 아직 작동하는 응용 프로그램을 찾을 수 없었습니다.
Thayne

2
위의 (. desktop파일의 경우) 시도했지만 env. 터미널에서 시작하면 정상적으로 작동합니다. gtk 3.14.5-1 + deb8u1을 사용하고 데비안 "jessie / stable"8에서 실행되는 gedit 3.14.0-3으로 시도했다.
aBarocio80

21

GTK + -3 응용 프로그램의 경우 GtkSettings의 settings.ini를 사용하여 어두운 테마 변형을 적용 할 수 있습니다.

$ mkdir -p $HOME/.config/gnome-terminal/gtk-3.0 # the path before gtk-3.0 is arbitrary
$ cat >> $HOME/.config/gnome-terminal/gtk-3.0/settings.ini << EOF
[Settings]
gtk-application-prefer-dark-theme=true
EOF
$ echo 'alias gnome-terminal="XDG_CONFIG_HOME=$HOME/.config/gnome-terminal gnome-terminal" >> $HOME/.bashrc

같은 비 GTK는 + 응용 프로그램의 경우 vnc, 여전히 설정하여 어두운 창 장식을 적용 할 수 있습니다 _GTK_THEME_VARIANT유형의 X 속성 UTF8_STRINGdark. 이 작업을 수행하려면 xprop다음 명령을 입력하고 나중에 창을 클릭하십시오.

$ xprop -f _GTK_THEME_VARIANT 8u -set _GTK_THEME_VARIANT "dark"

xpropWM_NAME속성 (제목 표시 줄 레이블) 또는 창 ID별로 창을 선택할 수도 있습니다 .

$ xprop -f _GTK_THEME_VARIANT 8u -set _GTK_THEME_VARIANT "dark" -name "Spotify Premium - Linux Preview"
$ xprop -f _GTK_THEME_VARIANT 8u -set _GTK_THEME_VARIANT "dark" -id 0x380002b

창 ID와 이름을 얻으려면을 사용하십시오 xlsclients -l.


어떤 이유 gnome-terminal는, 어둠의 테마에 대한 코드를 유지하기 위해 너무 많은 노력의 결정했다 당신의 배포판이 늘 일이 다시 패치하지 않는 그래서gnome-terminal
MattSturgeon을

6

다음은 다른 테마로 응용 프로그램을 시작하는 데 사용한 bash 스크립트입니다. 몇 년 동안 사용하지 않았으므로 현재 GTK와 함께 작동하는지 모르겠습니다.

#!/bin/bash
# lauch a gtk application with a different theme
# set GTKRCFILE variable to your favourite theme
GTKRCFILE=Clearlooks
GTK2_RC_FILES=/usr/share/themes/"$GTKRCFILE"/gtk-2.0/gtkrc "$@"

다음은 우분투 fourms 아카이브에서 얻은 정보입니다. 문제가 될지 확실하지 않습니다. ( 여기 )도 좀 더이 방법을 자세히 설명하는 블로그 게시물이 있습니다. ( 여기 )와 ( 여기 ). 이 사이트에는 이미 답변 된 비슷한 질문이 있습니다. ( 여기 )

gnome에서 앱은 gnome-settings-daemon에서 테마를 가져옵니다. 이렇게하면 테마 변경 내용이 모든 활성 응용 프로그램에 즉시 적용되므로 응용 프로그램 별 테마 변경이 불가능합니다.


5
오타 또는 실수? ( 'gnome-settings-demon ") ...이 단어는 데몬 ( 데몬이 아님)입니다. 이것은 매우 다른 루트 의미를 갖습니다. …(in ancient Greek belief) Daemons are good or benevolent supernatural beings between mortals and gods... daemon = good / demon = bad ... en.wikipedia.org/wiki / Daemon_ % 28classical_mythology % 29 .. ( day-mon 로 발음 )
Peter.O

오타, 그것은 당신이 모든 것을 철자 검사하지 않을 때 발생하는 일입니다 : |
giodamelio 2016 년

2
@ Peter.O : 오늘날 영어에서는 다른 의미이지만, 실제로 같은 기원. etymonline.com/index.php?term=demon
Joce

1
로 시도 GTK2_RC_FILES=/usr/share/themes/Adwaita/gtk-2.0/gtkrc /opt/ide/eclipse하고 작동하지 않습니다
Robbi Nespu

1

구체적으로 gnome-terminal다음을 사용하여 특정 응용 프로그램을 어둡게 만들 수 있습니다.

gsettings set org.gnome.Terminal.Legacy.Settings theme-variant 'dark'
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.