ฉันจะทำให้ข้อความเป็นแบบอ่านรวมได้ได้อย่างไร


16

ไม่กี่เดือนที่ผ่านมาmeldเริ่มมีพฤติกรรมแปลก ๆ บรรทัดทั่วไปเกือบจะอ่านไม่ได้และแสดงเป็นข้อความสีเทาเข้มบนพื้นหลังสีดำ

meld ล้มเหลว

ผิดปกติพอที่จะรันมันในขณะที่รูทนั้นใช้ได้ (ด้วยkdesudo meld) แม้ว่าชุดรูปแบบจะสวยน้อยกว่า

meld ทำงานได้ดี

ฉันจะระบุตัวเลือกสีของข้อความสำหรับ meld ได้อย่างไร

ฉันกำลังใช้:

  • Arch Linux
  • KDE 4.14.3 (เห็นใน 4.14.2 ด้วย)
  • หลอมรวม 3.12.2 (เห็นใน 3.12.1)
  • gtk3 3.14.6 (เห็นใน 3.14.5)

การแก้ไขปัญหา

การตั้งค่าระบบ KDE

meldใช้ GTK3 ดังนั้นฉันเล่นซอกับการตั้งค่าระบบ> ลักษณะทั่วไปและพฤติกรรม> ลักษณะแอปพลิเคชัน> GTK> เลือกธีม GTK3 การเปลี่ยนแปลงนี้มีผลในรูปแบบผสม แต่ไม่มีสามตัวเลือกที่ฉันเลือกเปลี่ยนข้อความ (ตัวเลือกที่ใช้ได้คือ Default, Emacs และ oxygen-gtk; ตัวหลังถูกใช้ในภาพหน้าจอด้านบน)

แก้ไขไฟล์ปรับแต่งด้วยตนเอง

ฉันค้นหา~ไฟล์ด้วยgtkชื่อของพวกเขา

~/.gtkrc-2.0
~/.gtkrc-2.0-kde4
~/.config/gtk-2.0
~/.config/gtk-3.0
~/.kde4/share/config/gtkrc
~/.kde4/share/config/gtkrc-2.0

ที่น่าสนใจมีอะไรที่มีชื่อในgtk /rootดังนั้นฉันพยายามลบ~ไฟล์บางไฟล์เพื่อดูว่าฉันจะได้รับผลกระทบเดียวกันสำหรับผู้ใช้ของฉันหรือไม่ ฉันคิดว่าgtkrc-2.0ไฟล์ทั้งหมดไม่เกี่ยวข้องกับการรวมเข้าด้วยกัน

ประการแรกฉันลบ~/.config/gtk-3.0แต่นี่ไม่มีผลและถูกสร้างขึ้นใหม่เมื่อฉันเปิด meld

ดูเหมือนว่าจะมีตัวเลือกอื่นเพียงตัว~/.kde4/share/config/gtkrcเดียวดังนั้นให้ลบและเริ่มรวมตัวกันซึ่งไม่ได้รับผลกระทบ อย่างไรก็ตามไฟล์ไม่ได้ถูกสร้างขึ้นใหม่และมีบางบรรทัดที่เกี่ยวข้อง (เช่นtext[ACTIVE] = { 1.000, 1.000, 1.000 }) ฉันไม่แน่ใจว่าไฟล์ (หายไป) ถูกโหลดเลย ฉันพยายามkbuildsycoca4 ; kquitapp plasma-desktop ; sleep 2 ; kstart plasma-desktopแต่นี่ไม่มีผล ฉันต้องโหลด gtkrc ใหม่ด้วยตนเองหรือไม่ และทำไมไฟล์นี้ไม่ได้รับผลกระทบ / เขียนใหม่โดยการตั้งค่าระบบ?

(เช่น FWIW ฉันลบ~/.gtkrc-2.0-kde4ซึ่งเป็น symlink จริง~/.gtkrc-2.0และฉันก็ลบเป้าหมายด้วยตัวเอง แต่นั่นก็ไม่ได้ช่วยอีกฉันไม่โหลด gtk อีกครั้ง (ฉันไม่แน่ใจว่าจำเป็นหรือไม่ เป็นไปได้) และไฟล์ไม่ได้ถูกสร้างขึ้นใหม่เมื่อฉันพยายามเรียกใช้ meld อีกครั้ง)

อาจเป็นตัวแปรสภาพแวดล้อมที่เกี่ยวข้อง

$ export | grep -i gtk
declare -x GTK2_RC_FILES="/etc/gtk-2.0/gtkrc:/home/sparhawk/.gtkrc-2.0:/home/sparhawk/.kde4/share/config/gtkrc-2.0"
declare -x GTK_IM_MODULE="xim"
declare -x GTK_MODULES="canberra-gtk-module"
declare -x GTK_RC_FILES="/etc/gtk/gtkrc:/home/sparhawk/.gtkrc:/home/sparhawk/.kde4/share/config/gtkrc"

(การเปิดเผยข้อมูล: ก่อนหน้านี้ฉันเคยถามคำถามนี้ในฟอรัม KDEแต่ไม่ได้มาแก้ปัญหา)


@tombart คำตอบคือทันสมัยที่สุดควรเป็นคำตอบที่ได้รับการยอมรับ
Francesco

@ ฟรานเชสโก้ไม่คำถามเกี่ยวกับการถดถอยแนะนำเมื่อสามปีที่แล้ว คำตอบของ Tombart อธิบายปัญหาที่คล้ายกัน แต่แยกกัน อ่านคำถามและคำตอบอย่างละเอียดเพื่ออ่านรายละเอียดเพิ่มเติม
Sparhawk

ไม่เป็นไรมันเป็นประโยชน์กับฉันโดยวิธี :)
ฟรานเชส

ไม่ต้องห่วง. นั่นเป็นสาเหตุที่ฉันไม่ได้ลงคะแนนให้ปิดนี่ (ตามmetaนี้)
Sparhawk

คำตอบ:


16

อย่างน้อยจาก Meld 3.16.4 สนับสนุนชุดสีที่ต่างกัน

ดูMeld > Preferences:

ชอบมากกว่า

(อาจเป็นการเปลี่ยนแปลงที่เกิดขึ้นกับรุ่นก่อนหน้า)

หมายเหตุ :
นอกจากนี้ยังสามารถบังคับธีมเฉพาะสำหรับ Meld โดย CLI:GTK_THEME=Adwaita:dark meld


4

ดูเหมือนว่าจะมีการถดถอยเกิดขึ้นใน Meld 3.12.1 ฉันดาวน์โหลดรุ่นก่อนหน้านี้จากการผสมเว็บไซต์

หลอมรวม 3.12.0 ทำงานได้ดี 3.12.0

Meld 3.12.1 ไม่ได้ ป้อนคำอธิบายรูปภาพที่นี่

ฉันติดต่อ devs และพวกเขาบอกฉันว่ามันเป็นการถดถอยที่เกิดขึ้นจริงในพอร์ต gtk + 3 พวกเขาแนะนำให้ลอง 3.12.3 ที่เพิ่งเปิดตัวซึ่งตอนนี้ใช้งานได้ (อย่างไรก็ตามมันยังไม่ได้อธิบายอย่างสมบูรณ์ว่าทำไมการรวมกันในบัญชีใหม่จึงใช้งานได้)


Meld 3.12.1 ยังคงเหมือนเดิมหลังจากรัน 3.12.0 หรือไม่
แกรม

@ Graeme ใช่มันเป็น อาจไม่สำคัญ แต่ฉันเรียกใช้โดยตรงจากไฟล์ที่ไม่มีการบีบอัด
Sparhawk

มีการพึ่งพา Gnome ที่แตกต่างกันระหว่างสองรุ่นหรือไม่ คุณใช้ distro ตัวใดและติดตั้งอย่างไร?
แกรม

@ Graeme ฉันใช้ Arch ติดตั้งจาก repos อย่างเป็นทางการ การพึ่งพาทั้งหมดของทั้งสองเวอร์ชันเหมือนกัน
Sparhawk

1
@ Graeme ฉันได้อัพเดตคำตอบแล้ว
Sparhawk

3

ถ้าฉันทำlocate -b meld | grep homeฉันได้สามไดเรกทอรีที่คุณไม่ได้กล่าวถึง;

~/.gconf/apps/meld
~/.gconf/apps/gnome-settings/meld
~/.local/share/meld

หนึ่งใน~/.local/shareเพียงน่าจะเป็นประวัติศาสตร์ของการเปรียบเทียบในท้องถิ่น แต่อีกสองไดเรกทอรีมีxmlไฟล์ในพวกเขา ฉันจะลองลบมันออก

หากวิธีนี้ใช้ไม่ได้ผลคุณสามารถดูได้ว่าไฟล์ใดที่meldอ่านด้วย:

strace -e trace=file meld |& grep home

การดูผลลัพธ์จะหวังว่าจะให้สิ่งอื่นในการตรวจสอบ

ความล้มเหลวที่ฉันจะลองสร้างบัญชีผู้ใช้อื่นเข้าสู่ระบบและเรียกใช้ meld (แต่ไม่มีอะไรอื่น) ที่นั่น หากมันแสดงว่าโอเคคุณสามารถดูตัวแปร dot files / environment ที่นั่นและเปรียบเทียบกับบัญชีของคุณเอง โปรดทราบว่าคุณควรเข้าสู่ระบบผ่าน X และไม่เพียง แต่ใช้suหรือsudoเพื่อให้สภาพแวดล้อมเดสก์ท็อปของคุณได้รับโอกาสในการสร้างไฟล์จุดเริ่มต้นซึ่งอาจเป็นสาเหตุที่ทำให้ดูธรรมดาเมื่อทำงานเป็นรูท

หากไม่ได้ผลคุณสามารถละทิ้งและใช้Diffuseแทน ฉันยังไม่ได้ทดสอบอย่างถูกต้อง แต่ก็ทำบางสิ่งที่meldไม่สามารถทำได้ (ไม่มีการเปรียบเทียบไดเรกทอรี แต่ก็ไม่สามารถทดแทนได้) :)

ปรับปรุง

หากต้องการลองติดตามไฟล์ที่ละเมิดคุณสามารถเปรียบเทียบไฟล์ dot ในบัญชีใหม่กับบัญชีเก่า น่าเสียดายที่อาจเป็นไฟล์ dot เกือบทั้งหมดในบัญชีใหม่ซึ่งเป็นสาเหตุที่เป็นสิ่งสำคัญที่จะไม่เรียกใช้แอปพลิเคชันอื่น ๆ (โดยเฉพาะเว็บเบราว์เซอร์) เนื่องจากสิ่งนี้จะสร้าง / เปลี่ยนแปลงมากขึ้น ในการเปรียบเทียบไฟล์คุณสามารถลองใช้งานสิ่งนี้ในบัญชีใหม่:

find . -type f -exec cmp {} /home/your_account/{} \;

สำหรับคนที่แตกต่างคุณสามารถตรวจสอบเพิ่มเติมกับเอ่อ Meld หากไม่ได้ผลอะไรเลยมีไฟล์ที่คุณต้องการลบซึ่งหาได้ยาก คุณสามารถลองย้อนกลับไปstraceและเปรียบเทียบผลลัพธ์จากทั้งสองบัญชี


+1 สำหรับกลยุทธ์อย่างละเอียด ฉันยังไม่ได้ทำงาน แต่นี่คือผลลัพธ์ที่ได้ การลบทั้งสองไดเร็กทอรีที่แนะนำจากนั้นการรีสตาร์ท meld ไม่ทำงาน straceเผยผู้สมัครดังต่อไปนี้: ~/.config/gtk-3.0/settings.ini, ~/.config/oxygen-gtk, ,~/.kde4/share/config/kdeglobals /home/lee/.kde4/share/config/oxygenrcพยายามครั้งแรกแล้ว แต่การลบส่วนที่เหลือกลับไม่ได้ผล ฉันจะลองสร้างบัญชีใหม่ต่อไป
Sparhawk

ฉันสร้างบัญชีใหม่และใช่ข้อความนั้นดูดี เป็นต่อคำถามที่ฉันมองไปที่ตัวแปรสภาพแวดล้อม (กับexport | grep -i gtk) declare -x GTK_IM_MODULE="xim"แต่แตกต่างก็คือการปรากฏตัวของต่อไปนี้ในเดิมไม่ทำงานบัญชี: ฉันไม่แน่ใจว่าจะค้นหาไฟล์ใด ฉันค้นหาไฟล์ที่มีgtkหรือmeldในชื่อ แต่พบเฉพาะไฟล์ด้านบนซึ่งฉันได้ทำการทดสอบแล้ว
Sparhawk

@Sparhawk อัปเดตแล้ว ฉันสงสัยว่ามันจะสร้างความแตกต่าง แต่ไม่มีอันตรายใด ๆ ในการทำunset GTK_IM_MODULEจากบรรทัดคำสั่งแล้วเรียกใช้meldจากเชลล์เดียวกัน
แกรม

ฉันอัพเดตคำตอบแล้ว
Sparhawk

3

ปล่อยให้อัปเดตเท่านั้น ...

เวอร์ชั่น 3.18 จะไม่แสดงการตั้งค่าเพื่อเปลี่ยนธีมของคุณ

แต่โดย dconf-editor คุณสามารถเข้าถึงการกำหนดค่า meld และตั้ง style-chema เป็น 'meld-dark' ... และมีความสุข!

เกือบเป็นเช่นนั้น: https://linux.m2osw.com/no-meld-preferences-menu

ป้อนคำอธิบายรูปภาพที่นี่


1

เขียนทับ meld.css ด้วยอันที่นั่นและคุณจะสามารถใช้ Meld ด้วยธีมสีเข้มhttps://wiki.gnome.org/Apps/Meld/DarkThemes


ฉันไม่ต้องการใช้ชุดรูปแบบสีเข้ม คำถามนี้ไม่ได้เกี่ยวกับการเปลี่ยนธีมโดยรวม แต่เป็นเพียงแค่องค์ประกอบที่เฉพาะเจาะจงเช่นบรรทัดทั่วไป ตามคำตอบที่ยอมรับมันเป็นความถดถอยที่ได้รับการแก้ไข
Sparhawk

สำหรับสิ่งที่คุ้มค่า ... สำหรับจุดประสงค์ของฉันนี่เป็นคำตอบที่สมบูรณ์แบบ - การสลับ gtk เป็นธีมมืดนั้นเป็นงานที่ยอดเยี่ยมในการสร้างข้อความที่อ่านไม่ออก
Dmitri DB
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.