GTK - เปิด / ปิดชุดรูปแบบมืดในแต่ละแอปพลิเคชัน


54

มีวิธีในการตั้งค่า gtk-application-prefer-dark-theme สำหรับแอปพลิเคชันหรือไม่?

โดยปกติแอปพลิเคชันนี้จะถูกตั้งค่าในรหัส แอพเช่น Eye of Gnome และ Totem เปิดใช้งาน ฉันต้องการให้ผู้ใช้เปิดใช้งานตามแอปพลิเคชันพื้นฐาน

สำหรับ gnome-terminal โดยปกติแล้วฉันจะใช้ข้อความสีขาวบนโทนสีพื้นหลังสีดำและการมีขอบหน้าต่างสีเข้มจะช่วยปรับปรุงรูปลักษณ์โดยรวม

ฉันต้องการเปิดใช้สำหรับ vlc ด้วย

คำตอบ:


61

ด้วยgtk+ ≥ 3.12คุณสามารถโหลดธีมและตัวแปร (เข้มแสง) ในโปรแกรมต่อ1GTK_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: น่าสังเกตว่า - ตามการตัดสินใจของ devs - ใหม่กว่า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 และลองใช้ gedit 3.14.0-3 ทำงานบนเดเบียน "
เจสซี่

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_VARIANTX ทรัพย์สินของประเภทการUTF8_STRING darkหากต้องการทำเช่นนี้xpropให้พิมพ์คำสั่งต่อไปนี้แล้วคลิกหน้าต่างภายหลัง:

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

xpropยังสามารถเลือก windows ตามWM_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

xlsclients -lที่จะได้รับรหัสและชื่อหน้าต่างการใช้งาน


ด้วยเหตุผลบางอย่างgnome-terminalตัดสินใจว่ามันเป็นความพยายามมากเกินไปที่จะเก็บรหัสสำหรับชุดรูปแบบมืดดังนั้นถ้า distro ของคุณได้ทำการติดตั้งโปรแกรมนี้กลับคืนมาในแบบที่ไม่เคยมีมาก่อนgnome-terminal
MattSturgeon

6

นี่คือสคริปต์ทุบตีที่ฉันเคยใช้ในการเปิดตัวแอพพลิเคชั่นที่มีธีมที่แตกต่างกัน ยังไม่เคยใช้มาหลายปีแล้วดังนั้นฉันไม่รู้ว่ามันจะทำงานกับ 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 "$@"

นี่คือข้อมูลบางส่วนที่ฉันได้รับจากคลังข้อมูล Ubuntu สี่ms ไม่แน่ใจว่ามันจะเป็นปัญหาหรือไม่ ( ที่นี่ ) นอกจากนี้ยังมีโพสต์บล็อกที่ให้รายละเอียดวิธีการนี้อีกเล็กน้อย ( ที่นี่ ) และ ( ที่นี่ ) นอกจากนี้ยังมีคำถามที่คล้ายกันในเว็บไซต์นี้ที่ได้รับคำตอบแล้ว ( ที่นี่ )

ภายใต้คำพังเพยแอปจะได้รับธีมจาก gnome-settings-daemon สิ่งนี้จะนำการเปลี่ยนแปลงรูปแบบใด ๆ ไปใช้กับแอปพลิเคชันที่ใช้งานอยู่ทั้งหมดโดยทันที


5
พิมพ์ผิดหรือผิด? ('gnome-settings-demon ") ... คำว่าdaemon (ไม่ใช่อสูร) .. มันมีความหมายที่แตกต่างกันมาก: …(in ancient Greek belief) Daemons are good or benevolent supernatural beings between mortals and gods... daemon = ดี / อสูร = เลว ... en.wikipedia.org/wiki / Daemon_% 28classical_mythology% 29 .. (ออกเสียงวันจันทร์ )
Peter.O

นั่นคือสิ่งที่เกิดขึ้นเมื่อคุณไม่ตรวจการสะกดทุกอย่าง: |
giodamelio

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.