Làm thế nào để đọc giá trị khóa mặc định với dconf hoặc gsinstall?


13

Tôi muốn biết giá trị mặc định của khóa dconf / gsinstall.

Câu hỏi của tôi là phần tiếp theo của câu hỏi dưới đây: Tôi có thể lấy danh sách SCHema / PATH / KEY ở đâu để sử dụng với gsinstall?

Những gì tôi đang cố gắng thực hiện, vì vậy hãy tạo một tập lệnh đọc tất cả các sở thích cá nhân của tôi để tôi có thể sao lưu chúng và khôi phục chúng. Tôi dự định lặp lại mặc dù tất cả các khóa, như tập lệnh ở trên, xem những khóa nào đã được thay đổi từ giá trị mặc định của chúng và ghi chú những điều này, có thể được khôi phục sau.

Tôi thấy rằng trình soạn thảo drc hiển thị giá trị mặc định của các phím, nhưng tôi rất muốn kịch bản này. Ngoài ra, tôi không thấy cách phân tích cú pháp /usr/share/glib-2.0/schemas/ có thể được tự động hóa. Có lẽ ai đó có thể giúp đỡ?

gsinstall get-default | list-defaults sẽ rất hay =)

(Geesh, ngày xưa dễ dàng hơn nhiều khi bạn chỉ giữ ~ / .s Somethingrc của mình trong lật đổ ... = \


Dựa trên câu trả lời được đưa ra dưới đây, tôi đã cập nhật tập lệnh để in lược đồ, khóa, loại dữ liệu của khóa, giá trị mặc định và giá trị thực tế:

#!/bin/bash

for schema in $(gsettings list-schemas | sort); do
    for key in $(gsettings list-keys $schema | sort); do
        type="$(gsettings range $schema $key | tr "\n" " ")"
        default="$(XDG_CONFIG_HOME=/tmp/ gsettings get $schema $key | tr "\n" " ")"
        value="$(gsettings get $schema $key | tr "\n" " ")"
        echo "$schema :: $key :: $type :: $default :: $value"
    done
done

Cách giải quyết này về cơ bản bao gồm những gì tôi cần. Tôi sẽ tiếp tục làm việc với bản sao lưu dự phòng từ đây.


Nếu bất cứ ai khác cũng đến đây để tìm cách thiết lập lại khóa thành giá trị mặc định của nó, thì đó gsettings reset KEYlà cách để đi.
Andreas Storvik Strauman

Câu trả lời:


11

Dường như không có cách nào tốt để lấy trực tiếp các giá trị mặc định, nhưng vì máy khách kiểm tra XDG_CONFIG_HOME trong môi trường một cách giải quyết hợp lý để nhận các giá trị từ cấu hình mới có thể là:

XDG_CONFIG_HOME=/nonexistent gsettings get SCHEMA KEY

1

Nếu bạn quan tâm đến việc sao lưu và khôi phục cài đặt của mình (trong trường hợp này, bạn nên thay đổi tiêu đề câu hỏi của mình).

Sao lưu

Bạn có thể sao lưu cài đặt của mình với

gsettings list-recursively > backup

Điều này ghi tất cả các khóa để sao lưu tập tin trong Thư mục chính của bạn.

Khôi phục

Theo như tôi biết thì không có bất kỳ tùy chọn trực tiếp nào để nhập tệp trở lại dconf. Có lẽ bạn có thể viết một thói quen đọc từng dòng tệp sao lưu và thực thi gsettings set <input line from backup>để khôi phục cài đặt của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.