나는 사용한다쉘용 Base16쉘의 기본 ANSI 색상을 변경하는 스크립트입니다. 예를 들어:
$ wget https://github.com/chriskempson/base16-shell/raw/master/scripts/base16-nord.sh
$ sh base16-nord.sh
이 스크립트는 터미널 색상을 다음과 같이 변경합니다(저는 openSUSE Leap 15.1 및 GNOME 3.26.2를 사용하고 있습니다).
이와 관련하여:
GNOME 터미널뿐만 아니라 모든 가상 콘솔(예: )에서도 작동합니다 tty1
.
하지만 새 터미널 창/세션을 시작할 때마다 또는 ~/.bashrc
.
문제는 이 색상 테마 시스템을 어떻게 널리 사용할 수 있느냐는 것입니다. (모든 사용자가 동일한 색상 테마를 적용하도록)
대부분의 페이지에서는 또는 을 사용자 정의하는 방법을 설명 PS1
하지만 LS_COLORS
이는 제가 원하는 것이 아닙니다. 그래서 나는 새로운 질문을 시작했습니다.
답변1
동일한 Base16 Shell 테마를 시스템 전체(모든 사용자에게)에 적용하는 방법을 찾았습니다. 하지만 나는 이 일을 하는 더 좋은 방법이 있다고 믿습니다. 어떤 제안이라도 대단히 감사하겠습니다.
- 모든 사용자가 액세스할 수 있는 폴더(예:
/usr/share/base16-shell/
) 에 Base16 Shell을 다운로드합니다.
$ sudo git clone https://github.com/chriskempson/base16-shell.git /usr/share/base16-shell/
- 시스템 전체에
~/.bashrc
해당하는/etc/bash.bashrc.local
.
/etc/bash.bashrc.local
필요한 경우 이 파일을 만듭니다.
다음을 추가합니다.
# Base16 Shell
BASE16_SHELL="/usr/share/base16-shell/"
[ -n "$PS1" ] && \
[ -s "$BASE16_SHELL/profile_helper.sh" ] && \
eval "$("$BASE16_SHELL/profile_helper.sh")"
/etc/skel
(새 사용자의 홈 페이지 프레임) 에서 기본 적용 테마에 대한 심볼릭 링크를 만듭니다.
$ sudo ln -s /usr/share/base16-shell/scripts/base16-material-darker.sh /etc/skel/.base16_theme
새 사용자를 만듭니다(openSUSE에서는 다음을 사용할 수 있습니다).YaST 제어 센터)
새로운 사용자로 로그인하고 그놈 터미널을 엽니다. 테마가 적용된 것을 볼 수 있습니다:
테스트 사용openSUSE Leap 15.2 베타 그놈 라이브 미러.
노트:
- 에서 작업 중이므로
/etc/skel
테마는 신규 사용자(이 과정 이후에 생성된 사용자)에게만 적용됩니다. 기존 사용자는 테마를 적용하려면 Base16 Shell을 한 번만 호출해야 합니다. 하지만 앞서 말했듯이 더 좋은 방법이 있다고 믿습니다. - AFAIK
/etc/bash.bashrc.local
는 모든 사용자(기존 사용자와 신규 사용자 모두)에게 작동하므로 Base16 Shell은 실제로 모든 사용자에 대해 설정합니다. 원하는 경우 누구나 Base16 Shell 스크립트를 호출하여 테마를 변경할 수 있습니다. 예를 들어:
$ base16_material-lighter
- 저는 예를 들어 GNOME 터미널을 사용하고 있지만 가상 콘솔에서도 작동합니다(예
tty1
: Ctrl + Alt + F1). 그런데 가상 콘솔에서 이상한 동작이 관찰되었습니다.
색상은 로그인 후에만 적용되며, 전체 화면에는 적용되지 않습니다.
그런 다음 다음을 실행합니다.
$ clear
모든 것이 괜찮아 보입니다.
(이 스크린샷에서는 clear
명령이 나타나지 않아서 ll
다시 실행했습니다.)
다른 테마를 사용하면 문제가 더욱 분명해집니다.
그런 다음 clear
다시 ll
다음을 수행합니다.