gnome-tweak-tool의 설정을 어떻게 스크립팅 할 수 있습니까?


15

OS를 다시 설치할 때 스크립트를 실행하고 원하는 구성을 다시 얻을 수 있도록 명령 줄에서 구성 할 수 있기를 원합니다.

Ubuntu 17.10으로 "업그레이드"한 후 gnome-tweak-tool을 사용하여 원하는 방식으로 설정을 가져와야한다는 것을 알았습니다.

gnome-tweak-tool GUI에서 설정을 찾으면 스크립트 가능한 번역을 어떻게 알 수 있습니까?

예를 들어 다음 gsettings 라인은 아래의 gnome-tweak-tool 스크린 샷의 관련 항목과 일치합니다.

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"

gnome-tweak-tool의 스크린 샷 ... 어떻게 추측 할 수 있습니까? 예를 들어, 힌트 및 앤티 앨리어싱에 대한 해당 설정을 얻을 수있는 위치를 어떻게 알 수 있습니까?


1
TBH 난 항상 키 스페이스 예를 들어 grepping에 의지 한 gsettings list-recursively | grep -e alias -e hint- 더 나은 방법이 있는지 알고 싶어요
steeldriver

소스 코드 또는 dconf-editor (또는 @steeldriver와 같은 직접 설정)를 탐색하는 것 외에는 아무도 할 수 없습니다.
muru

답변:


23

설정중인 내용을 쉽게 찾을 수 있습니다.

전체 옵션 디렉토리를 검색하는 대신 :

  1. 터미널 창을 엽니 다
  2. 다음 명령을 실행하십시오 :

    dconf watch /
  3. 변경 한 후 터미널에 표시되는 내용을 확인하십시오.

    여기에 이미지 설명을 입력하십시오

    ... 그리고 거기 있습니다.

Dconf 및 gsettings

이 예에서는의 출력이 표시됩니다 dconf. Gsettings는 dconf의 기준입니다. 여러 번 dconf명령 또는 명령을 모두 사용할 수 있습니다 gsettings. 이 경우 :

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

또는:

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

그러나 gsettings 키가 존재하면 dconf데이터베이스 의 무결성을 보호하기 위해 후자가 더 나은 방법으로 간주 됩니다.

여기여기도 참조 하십시오 .


훌륭합니다. 감사합니다. 작은 질문 : (1) "셋팅 키가 존재하는 경우"를 어떻게 알 수 있습니까? (2) 모든 의도와 목적을 위해 사용자와 동일한 두 가지 명령 행 인터페이스의 요점은 무엇입니까? (3) "여기"의 첫 번째와 세 번째의 차이점은 무엇입니까? 그들은 같은 페이지처럼 보입니다.
st01

@ st01 (1)의 경우 gsettings 명령을 sinply 실행하거나, 작업이 수행되는지 확인하거나, gsettings 키가있는 경우 dconf 편집기 (기본적으로 설치되어 있지 않지만 훌륭한 도구)를 확인할 수 있습니다. (2) gsettings는 dconf 데이터베이스를 편집하는 cli frontend입니다. 또한 Gsettings는 데이터베이스의 무결성을 검사하므로 dconf 데이터베이스를 직접 편집하는 것이 좋습니다. gsettings는 높은 수준이므로 느립니다. (3) 아, 그건 멍청 해 :), 당신 말이 맞아. 편집
Jacob Vlijm

@JacobVlijm 감사합니다! 당신은 내 생명을 구했습니다 !!
Marslo

8

대부분의 설정 에서이 방법을 사용할 수 있습니다 .

  • 목록을 gsettings임시 파일로 내 보냅니다.

    gsettings list-recursively > /tmp/gsettings.before
  • gnome-tweak-tool(또는 unity-control-center)로 변경하십시오 .

  • 목록을 gsettings다른 임시 파일로 내 보냅니다.

    gsettings list-recursively > /tmp/gsettings.after
  • 두 파일 ( .before.after )을 비교하여 차이점을 찾으십시오 .

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

    또는 새로운 값 ( source ) 만 비교하고 가져옵니다 .

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

    또는 새 값만 비교하고 가져 오지만 줄의 시작 부분 gsettings set을 명령 목록을 준비하여 스크립트 파일 ( source ) 에 직접 저장하십시오 .

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

이 모든 명령을 한 줄에서 실행하거나 프로세스를 자동화하는 스크립트를 만들 수 있습니다.

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

다음 데모는 Ubuntu 16.04에서 생성됩니다. 나는 그 접근법이 17.10 내에서도 작동 할 것이라고 생각한다.

여기에 이미지 설명을 입력하십시오


업데이트 : 방금 우분투 17.10에서 쉬운 방법을 찾았습니다.

여기에 이미지 설명을 입력하십시오


1
매우 유용합니다. 감사합니다.이 모든 설정을 덤프 할 수 있다는 것을 몰랐습니다.
st01

1
정말 훌륭합니다. 정말 감사합니다! 이제 gsettings에서 혼란 스러울 때 이전 구성을 복원 할 수 있습니다.
니콜라스 스톰 멜
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.