Làm cách nào tôi có thể tạo kịch bản cho các cài đặt được tạo bởi gnome-chỉnh-tool?


14

Tôi muốn có thể định cấu hình mọi thứ từ dòng lệnh, để khi tôi cài đặt lại hệ điều hành, tôi chỉ có thể chạy một tập lệnh và lấy lại cấu hình ưa thích của mình.

Kể từ khi "nâng cấp" lên Ubuntu 17.10, tôi thấy rằng tôi phải sử dụng công cụ gnome-chỉnh-công cụ để có được một số cài đặt theo cách tôi muốn.

Khi tôi tìm thấy một cài đặt trong GUI gnome-Tune-tool, làm cách nào tôi có thể tìm ra bản dịch có thể viết được của nó?

Ví dụ: các dòng gsinstall sau khớp với các mục có liên quan trong màn hình công cụ gnome-chỉnh-công cụ được chụp bên dưới ...

gsettings set org.gnome.desktop.wm.preferences titlebar-font "Tahoma Bold 8"
gsettings set org.gnome.desktop.interface font-name "Tahoma 8"
gsettings set org.gnome.desktop.interface document-font-name "Tahoma 8"
gsettings set org.gnome.desktop.interface monospace-font-name "FixedSC 10"

ảnh chụp màn hình từ gnome-chỉnh-tool ... nhưng làm thế nào có ai đoán được điều đó? Và làm thế nào tôi, ví dụ, tìm ra nơi để có được các cài đặt tương ứng cho gợi ý và khử răng cưa?


1
TBH Tôi đã luôn tìm cách gặt lấy không gian phím, ví dụ gsettings list-recursively | grep -e alias -e hint- rất muốn biết liệu có cách nào tốt hơn không
Steeldo

Ngoài việc duyệt mã nguồn hoặc trình soạn thảo dconf (hoặc gsinstall trực tiếp, như @steel ấn), không ai có thể làm được.
muru

Câu trả lời:


22

Dễ dàng tìm hiểu những gì đang được thiết lập

Thay vì tìm kiếm thông qua toàn bộ thư mục tùy chọn:

  1. Mở một cửa sổ đầu cuối
  2. Chạy lệnh:

    dconf watch /
  3. Thực hiện các thay đổi của bạn và xem những gì thiết bị đầu cuối hiển thị:

    nhập mô tả hình ảnh ở đây

    ... Và bạn đang ở đó.

Thông tin & cài đặt

Trong ví dụ này, bạn thấy đầu ra từ dconf. Gsinstall là ứng dụng đầu tiên cho dconf. Nhiều lần, bạn có thể sử dụng cả dconflệnh hoặc gsettingslệnh. Trong trường hợp này:

dconf write /org/gnome/desktop/background/show-desktop-icons false

hoặc là:

gsettings set org.gnome.desktop.background show-desktop-icons false

Tuy nhiên, nếu khóa gsinstall tồn tại, khóa sau được coi là thực hành tốt hơn, để bảo vệ tính toàn vẹn của dconfcơ sở dữ liệu của bạn .

Xem thêm ở đâyở đây .


Điều này thật tuyệt vời, cảm ơn bạn. Câu hỏi nhỏ: (1) làm thế nào để tôi biết "nếu khóa gsinstall tồn tại"? (2) Điểm của hai giao diện dòng lệnh dành cho tất cả ý định và mục đích giống hệt với người dùng là gì? (3) sự khác biệt giữa thứ nhất và thứ ba của "ở đây" của bạn là gì? Họ trông giống như cùng một trang với tôi.
st01

@ st01 Đối với (1) bạn có thể chạy sinply chạy lệnh gsinstall, xem nó có thực hiện công việc không, hoặc kiểm tra trình soạn thảo dconf (không được cài đặt theo mặc định, nhưng là một công cụ tuyệt vời) nếu khóa gsinstall (cũng) tồn tại. (2) gsinstall là cli frontend để chỉnh sửa cơ sở dữ liệu dconf. Gsinstall cũng kiểm tra tính toàn vẹn của cơ sở dữ liệu và do đó tốt hơn là nên chỉnh sửa trực tiếp cơ sở dữ liệu dconf. Vì gsinstall ở cấp độ cao hơn nên nó chậm hơn. (3), Ah, thật là ngớ ngẩn :), bạn đã đúng. Sẽ chỉnh sửa
Jacob Vlijm

@JacobVlijm cảm ơn rất nhiều! Bạn đã cứu mạng tôi!!
Marslo

8

Đối với hầu hết các cài đặt, bạn có thể sử dụng phương pháp này :

  • Xuất danh sách gsettingsthành một tệp tạm thời:

    gsettings list-recursively > /tmp/gsettings.before
  • Thực hiện các thay đổi của bạn bằng gnome-tweak-tool(hoặc unity-control-center);

  • Xuất danh sách gsettingsthành một tệp tạm thời khác:

    gsettings list-recursively > /tmp/gsettings.after
  • So sánh hai tệp ( .b Before.after ) và nhận được sự khác biệt:

    diff /tmp/gsettings.before /tmp/gsettings.after | grep '[>|<]'

    Hoặc so sánh và chỉ nhận các giá trị mới ( nguồn ):

    diff /tmp/gsettings.before /tmp/gsettings.after | grep -Po '> \K.*'

    Hoặc so sánh và chỉ nhận các giá trị mới, nhưng thay thế phần đầu của dòng bằng gsettings set để chuẩn bị một danh sách các lệnh, phần lạnh đó được lưu trữ trực tiếp trong tệp tập lệnh của bạn ( nguồn ):

    diff /tmp/gsettings.before /tmp/gsettings.after | sed 's/>/gsettings set/;tx;d;:x'

Bạn có thể chạy tất cả các lệnh này từ một dòng (hoặc bạn có thể tạo tập lệnh để tự động hóa quy trình):

gsettings list-recursively > /tmp/gsettings.before; gnome-tweak-tool; gsettings list-recursively > /tmp/gsettings.after; diff /tmp/gsettings.before /tmp/gsettings.after | grep '[>|<]'

Bản demo tiếp theo được tạo trong Ubuntu 16.04. Tôi nghĩ rằng cách tiếp cận cũng sẽ hoạt động trong vòng 17.10:

nhập mô tả hình ảnh ở đây


Cập nhật: Tôi vừa tìm thấy một cách dễ dàng trong Ubuntu 17.10:

nhập mô tả hình ảnh ở đây


1
Rất hữu ích, cảm ơn bạn, tôi không biết bạn có thể bỏ tất cả các cài đặt như thế này.
st01

1
Điều này là tuyệt vời, cảm ơn bạn rất nhiều! Bây giờ tôi có thể khôi phục cấu hình cũ của mình khi tôi gặp rắc rối trong cài đặt gs.
Nicholas Stommel
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.