กำหนดค่า gnome-shell extension จากบรรทัดคำสั่ง


9

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

ฉันมักจะกำหนดค่าส่วนขยายโดยใช้ gnome-shell-extension-prefs หรือ dconf-editor และฉันรู้วิธีแก้ไขสกีมาอื่น ๆ จากบรรทัดคำสั่ง ตัวอย่าง:

gsettings set org.gnome.desktop.background picture-options stretched

แต่ถึงแม้ว่าฉันสามารถค้นหาและแก้ไขส่วนขยายที่ติดตั้งภายใต้ org.gnome.shell.extensions โดยใช้ dconf-editor ฉันไม่สามารถเข้าถึงได้โดยใช้ gsettings เนื่องจากดูเหมือนว่าจะไม่มี schema ที่กำหนด:

No such schema 'org.gnome.shell.extensions.extname'

ส่วนขยายเท่านั้นที่เข้าถึงได้ด้วย gsettings ดูเหมือนจะเป็นส่วนขยายที่ติดตั้งมาล่วงหน้า

ดังนั้นคำถามคือฉันจะกำหนดค่าส่วนขยายที่ติดตั้งจากบรรทัดคำสั่งได้อย่างไร มีวิธีใดบ้างที่จะมอบหมายให้ gsettings สกีมาที่คอมไพล์แล้ว~/.local/share/gnome-shell/extensions/? บางทีฉันกำลังมองไปในทิศทางที่ผิด

สภาพแวดล้อม: Ubuntu Gnome 14.04 (Gnome Shell 3.10.4)

ขอบคุณล่วงหน้า.

คำตอบ:


11

พบคำตอบด้วยตัวเองในที่สุด

sudo cp ~/.local/share/gnome-shell/extensions/extname/schemas/org.gnome.shell.extensions.extname.gschema.xml \
    /usr/share/glib-2.0/schemas/ &&
sudo glib-compile-schemas /usr/share/glib-2.0/schemas/

คัดลอกและคอมไพล์สกีมาใน~/.local/share/gnome-shell/extensionsและ gsettings จะสามารถทำงานกับพวกเขา


ขุดนิดหน่อย!
Pancho

เพิ่งพบข้อผิดพลาดเดียวกัน ต้องมีวิธีแก้ปัญหาที่ดีกว่าการคัดลอกสกีมาของส่วนขยายที่ติดตั้งไว้ในไดเรกทอรีส่วนกลาง มีการปรับปรุงใด ๆ กับปัญหานี้หรือไม่?
วิศวกร

4

ใน CentOS 7 - และฉันจะคิดใน Ubuntu ด้วย - ฉันได้ระบุสิ่งที่ฉันคิดว่าเป็นการปรับปรุงเล็กน้อยสำหรับคำตอบที่ยอมรับโดยการแนะนำสวิตช์ --schemadir ดังนี้:

# gsettings --schemadir ${schemaDir} set ${schema} ${key} "${value}"

ใน gsettings คำสั่งดังกล่าวกำหนดโดยตรง${key}ไป${value}ใน${schema}สถานที่ที่${schema}ไม่ได้อยู่ในการเริ่มต้น/usr/share/glib-2.0/schemasไดเรกทอรี (และไม่มีข้อกำหนดในการย้ายสคีมาไปยังไดเรกทอรีเริ่มต้น)

ตัวอย่างบางส่วน:

gsettings --schemadir ~/.local/share/gnome-shell/extensions/putWindow@clemens.lab21.org/schemas/ list-recursively org.gnome.shell.extensions.org-lab21-putwindow
gsettings --schemadir ~/.local/share/gnome-shell/extensions/unitylike-hotkey@webgyerek.net/schemas/  list-recursively org.gnome.shell.extensions.app-keys
gsettings --schemadir ~/.local/share/gnome-shell/extensions/emoji-selector@maestroschan.fr/schemas/  list-recursively org.gnome.shell.extensions.emoji-selector

1
onfirmed ทำงานกับ Ubuntu 18.04, GS 3.28 ตัวอย่างเช่น:gsettings --schemadir ~/.local/share/gnome-shell/extensions/putWindow@clemens.lab21.org/schemas/ list-recursively org.gnome.shell.extensions.org-lab21-putwindow
eddygeek

1

ผมเคยเขียนสคริปต์นี้: ทุบตีสคริปต์เพื่อเปิด / ปิด gnome-เปลือกส่วนขยายและอื่น ๆ อีกมากมาย

เพียงแค่ CP ใน/usr/binหรือ/usr/local/binทำให้มันปฏิบัติการ:

sudo chmod +x /usr/bin/gnome-shell-extension-cl

ตรวจสอบความช่วยเหลือ

เปิดใช้งานส่วนขยาย:

gnome-shell-extension-cl -e extension-name

ปิดใช้งานส่วนขยาย:

gnome-shell-extension-cl -d extension-name

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