기본 테마와 다른 GTK3 테마를 개별 애플리케이션에 적용 할 수 있습니까?


46

예를 들어, 분위기를 기본 테마로 유지하면서 초등학교 테마를 초등학교 앱에 할당 할 수 있습니까?


8
Gtk2에 대한 현재 답변 아라, 나는 Gtk3에 대해 묻고있다.
neonboy 2016 년

나는 당신이 추구하는 것을 더 잘 반영하기 위해 질문을 편집했습니다. 미안하지만 내 연구에서 짧은 대답은하지 아니 하면 @Kush 설명으로 새로운 "하이브리드"테마를 만드는 어떤 노력을 지출하지 않고, 할 수없는 :( 그건하지 GTK2 더 이상 단순하게.

답변:


32

GTK 환경 변수 GTK_THEME=elementary를 사용하여 기본 테마로 앱을 시작할 수 있습니다. 예를 들어를 실행 GTK_THEME=elementary pantheon-files하면 기본 GTK 테마를 사용하여 기본 파일 앱이 시작됩니다.

특정 앱을 시작할 때마다이 기능을 적용하려면 가장 좋은 방법은 사용자 지정 .desktop 파일 (런처)을 만드는 것입니다.

사용자 정의 .desktop 파일 작성

  1. 파일 브라우저를 엽니 다
  2. 로 이동 /usr/share/applications/
  3. 기본 테마로 시작하려는 앱의 런처 (강조 표시 및 Ctrl + C)를 복사하십시오.
  4. ~/.local/share/applications/실행기로 이동하여 붙여 넣기 (Ctrl + V)
  5. 마우스 오른쪽 버튼을 클릭하고 텍스트 편집기로 실행기를 엽니 다.
  6. 줄의 기존 내용 Exec=을 포함하도록 시작으로 수정하십시오 Exec=env GTK_THEME=elementary. (그래서 Exec=pantheon-files이 될 것입니다 Exec=env GTK_THEME=elementary pantheon-files)
  7. 파일을 저장하고 닫습니다

다음에 Unity (또는 선택한 앱 실행기)에서 앱을 시작하면 기본 테마가 사용됩니다.

보너스 : 명령 줄을 사용할 때 작동하게하십시오.

명령 줄에서 앱을 시작할 때 기본 테마로 앱을 시작하도록 할 수도 있습니다. 그렇게하려면 :

  1. 터미널 앱을 엽니 다
  2. 유형 alias pantheon-files="GTK_THEME=elementary pantheon-files"( pantheon-files원하는 앱으로 교체 )
  3. 엔터 키를 치시오

주의 사항 :

  1. 이렇게하면 창 관리자 테마가 기본 테마로 변경되지 않습니다.
  2. 이것은 의도적으로 귀하의 계정에만 적용되며 루트 또는 기계의 다른 사람에게는 적용되지 않습니다.
  3. 테마 이름은 cAsE-sEnsItiVe이며 테마 폴더 이름과 일치해야합니다.

출처 :

  1. 나는 초등학교 기고자입니다.)
  2. GTK + 3 참조 매뉴얼 : GTK + 애플리케이션 실행
  3. .desktop 파일에서 변수 설정

좋은 답변이지만 어떤 주제에서도 효과가 없습니다. 터미널을 사용 find /usr/share/themes -type d -name 'gtk-3.0' | awk -F'/' '{print $5}'하고 gedit데모 목적으로 예제를 줄 수 있습니까 ? 예 GTK_THEME="HighContrast" gedit또는 env GTK_THEME="HighContrast" geditGTK_THEME=Adwaita:dark gedit... 아무것도.
Redsandro

방금 변경 /usr/share/applications/<appname>.desktop했으며 나를 위해 일했습니다.
Drew Chapin

앱 내부의 코드 에서이 작업을 수행 할 수있는 방법이 있습니까?
Anony-Mousse

1
테마 이름은 대소 문자를 구분한다는 점은 주목할 가치가 있습니다.
세드릭의 Reichenbach

일부 앱에서는 작동하지만 일부 앱에서는 작동하지 않습니다.

10

질문은 여전히 ​​유효하며 방법을 찾았습니다.

  • 모든 폴더를 만듭니다 path/to/MY_FOLDER
  • /share/themes/그 안에 폴더를 만듭니다 (즉 path/to/MY_FOLDER/share/themes).
  • 후자 안에 GTK3 테마를 넣습니다.
  • 테마를 현재 활성 테마의 이름으로 바꾸 십시오.

    마지막으로이 명령은 앱이 현재 활성화 된 테마 대신 이름이 바뀐 테마를 사용하도록합니다.

GTK_DATA_PREFIX=path/to/MY_FOLDER YOUR_APPLICATON

(경로는 후 GTK_DATA_PREFIX=되어야 함 ( 및 해당 ) 폴더에 들어 있습니다 /share/themes/RENAMED_THEME . 그것의 이유의 하지 path/to/MY_FOLDER/share/themes/RENAMED_THEME ,하지만 단지를 path/to/MY_FOLDER.)

런처 안에 넣으려면 적절하게 교체하십시오.

Exec=sh -c 'GTK_DATA_PREFIX=path/to/MY_FOLDER YOUR_APPLICATION'

1
이제 이것은 시도한 다른 답변과 달리 실제로 Eclipse에서도 작동합니다.
Ruslan

2
정확히 어떤 파일 / 폴더 를 사용 GTK_DATA_PREFIX합니까?
runDOSrun

1
이것은 다소 혼란 스럽지만 답을 찾아서 편집했습니다.

또 다른 방법으로 응용 프로그램 고유의 이름이 테마를 넣어하는 것입니다 ~/.themes(있는 것으로 현재 활성이있다 /usr/share/themes) 다음 몇 가지 경로를 사용하는 GTK_DATA_PREFIX=path/to/nowhere 경우에만이 먼저 보이는 것, 현재의 앱 테마를 재설정하는 응용 프로그램을 실행 ~/.themes하고 포획 같은 이름을 가진 사람.

1
@runDOSrun - 후 경로 GTK_DATA_PREFIX=가 그 (일하기 만하는 폴더에) 포함 /share/themes/RENAMED_THEME . 그 이유입니다 NOT FOLDER/share/themes/RENAMED_THEME 하지만 그냥 FOLDER.

8

확실히 가능 합니다. 테마 경험이별로 없지만 /usr/share/themes/*Theme Name*/gtk-3.0/apps/디렉토리로 이동 .css하면 테마를 대상으로하는 앱으로 이름이 지정된 파일을 찾을 수 있으므로 응용 프로그램 별 테마를 만들 수 있습니다.

모든 테마 앱의 특정 스타일이 완료되는의 상단에 기본 파일을 가지고 있기 때문에 당신의 애플 리케이션이 몇 가지 작업을해야 할 수 있습니다 당신이 테마에 언급 된 방법은 (, 동시에 분위기와 초등학교 작업을 할 수 데 (같은 파일을 수행하는 것을 주 gtkrc은 Gtk 2.0 Gtk3.0의gtk.css 경우 파일 ).

이 기본 테마 파일에는 지정된 테마를 구체적으로 대상으로하는 스타일 규칙이 포함되어 있으므로 약간의 변경없이 Ambiance의 기본 테마 파일에서 모양과 느낌과 같은 초등학교를 만들 수 없으며, 그렇게해도 Ambiance 자체가 느슨해집니다.

또한, GNOME, 경우에 당신이 사용하고, 단 하나의 테마 드롭 다운에서 단일 테마를 선택할 수 있습니다 우분투 12.04에 외관 창을 사용하는 경우, 당신이 알고있는, 예를 들어, 한 번에 수 적용이 가능합니다 gnome-tweak-tool보다, Gtk, Window 프레임 및 아이콘에 대해 다른 테마를 설정할 수 있지만 여전히 특정 응용 프로그램을 테마로 타겟팅 할 수는 없으므로 이전에 언급했듯이 똑똑하게 작업하면 다른 응용 프로그램에 대해 완전히 다른 테마를 설정할 수 있습니다 기본 테마 파일은 현재 타사 응용 프로그램 자체로는 할 수 없습니다.

직접 수행 할 수있는 한 가지 방법은 기본 테마 파일 ( gtk.css)이 모든 테마에 중립적이며 어둡거나 밝은 필수 규칙 만 갖도록하는 것입니다. 그리고 위에서 언급 한 디렉토리에있는 앱별 파일로 작성된 실제 테마 디자인 (예 : 노틸러스 스타일링)을 nautilus.css파일에 필요한 모든 속성을 쓸 수 있습니다 . 타겟팅하려는 모든 앱과 동일합니다. 분명히, 그렇게하려면 적절한 Gtk 테마 경험이 필요합니다.

템플릿을 사용하여 자신만의 테마를 만드는 데 이것을 참조 할 수도 있습니다 . 또한 Gtk + 테마에 대한 적절한 문서 가 있습니다.


7
새 테마를 만들고 싶지 않고 기존 테마를 할당하고 싶습니다.
neonboy 2016 년

@neonboy : GTK3에서는 테마가 여러 파일에 분산되어 있지 않으며 의존성이 충족되지 않으면 깨진 테마 만 있으면됩니다. 그렇기 때문에 GTK2가 아닌 GTK3으로 가능한 솔루션을 보여주는 답변을 게시했습니다 (이 작업은 훨씬 쉽습니다).
Kushal

5

예, 간단한 방법은 응용 프로그램을 실행하는 명령에서 응용 프로그램이 rc 파일이있는 필수 경로를 가리 키도록하는 것입니다.

GTK2_RC_FILES=/usr/share/themes/Redmond/gtk-2.0/gtkrc inkscape

inkscape (여전히 Gnome2 btw)에 대한 12.04의 결과는 다음과 같습니다.

Windows 테마 inkscape 창

여기서 실행되는 Gtk2 테마에 대한 자세한 정보를 참조 하십시오 .


7
질문은 Gtk2가 아닌 Gtk3에 관한 것입니다. 감사합니다.
neonboy 2016 년

당신은 원래 질문에 그것을 지정하지 않았습니다. 질문자를 적대시하지 마십시오.
Martin Owens -doctormo-

5
원래는 "개별 앱에 다른 GTK3 테마를 사용할 수 있습니까?"였습니다. 여전히 질문에 Gtk3 주제가 있었지만, foss freedom은 유효하지 않은 답변에 대해 의견을 말하고 필요한 경우 질문을 편집하도록 요청합니다.
neonboy 2016 년

1

예, 실제로 Google을 검색하여 몇 가지 답변을 얻을 수 있습니다.

  1. 테마를 변경하려는 프로그램의 정확한 실행 파일을 찾으십시오. 예를 들어, ooffice에 원하는 경우 which ooffice터미널 을 입력 하십시오.
  2. 모든 응용 프로그램이 이진 실행 파일을 넣은 bin 폴더를 찾으십시오. echo $PATH터미널을 입력 하면 경로를 찾을 수 있습니다. 다음을 입력하여 홈 디렉토리에 bin 폴더를 작성하는 것이 좋습니다.mkdir ~/bin
  3. gedit ~/.bashrcbash rc 파일을 열려면 입력 하십시오.
  4. 이 파일의 맨 아래로 이동하여이 줄을 추가하십시오 export PATH=~/bin:${PATH}

이제 우리는 사용자 정의 테마로 프로그램을 실행할 스크립트를 만듭니다.

  1. 다음을 입력하여 애플리케이션의 스크립트 파일을 작성하십시오. gedit ~/bin/ooffice
  2. 열린 파일에 다음 줄을 입력하십시오.

    #!/bin/bash
    env GTK2_RC_FILES=/usr/share/themes/SlicknessX/gtk-2.0/gtkrc /usr/bin/ooffice "$@"
    
  3. 다음을 입력하여 파일 모드를 실행 가능으로 변경하십시오 chmod +x ~/bin/ooffice..

이것이 도움이되기를 바랍니다. 아래 표시된 것처럼 스크립트의 형식을 한 가지만 기억해야합니다.

#!/bin/bash
env GTK2_RC_FILES=PATH_TO_GTKRC PATH_TO_EXECUTABLE "$@"

GTK2_RC_FILES env를 사용하는 GTK2 앱에서 확실히 가능합니다. 변하기 쉬운. 또한 컴파일에 대해 어떤 주제에 대해 이야기하고 있습니까? 문제는 우분투에서 사용할 수있는 시스템 전체 GTK 테마에 관한 것입니다.
ish

1
언급 한 방법이 Gtk2.0을 대상으로한다고 생각하지만 Ubuntu 12.04는 테마로 Gtk3.0을 사용하므로 작동하지 않을 수 있습니다.
Kushal

6
죄송합니다. Gtk2에 대한 해결책입니다. 질문은 Gtk3에 관한 것입니다.
neonboy 2016 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.