I found a way of applying the same Base16 Shell theme system wide (to all users). But I do believe there is a better way of doing that. Suggestions would be really appreciated.
- Download Base16 Shell to a folder accessible to all users (e.g.
/usr/share/base16-shell/
)
$ sudo git clone https://github.com/chriskempson/base16-shell.git /usr/share/base16-shell/
- The system wide equivalent to
~/.bashrc
is /etc/bash.bashrc.local
.
Create the file /etc/bash.bashrc.local
if necessary.
Append the following to it:
# Base16 Shell
BASE16_SHELL="/usr/share/base16-shell/"
[ -n "$PS1" ] && \
[ -s "$BASE16_SHELL/profile_helper.sh" ] && \
eval "$("$BASE16_SHELL/profile_helper.sh")"
- In
/etc/skel
(the skeleton for new users homes), create a symlink to the theme to be applied by default:
$ sudo ln -s /usr/share/base16-shell/scripts/base16-material-darker.sh /etc/skel/.base16_theme
Create a new user (on openSUSE, you do this using the YaST Control Center)
Log in to the new user and open GNOME Terminal. You should see that theme applied:

Tested using the openSUSE Leap 15.2 Beta GNOME live image.
Notes:
- Since we worked in
/etc/skel
, the theme is going to be applied to new users only (users created after that procedure). Existing users need to call Base16 Shell (just once) to get the theme applied. But, as I said, I believe there is a better way of doing that...
- AFAIK
/etc/bash.bashrc.local
applies to all users (both existing and new ones), so Base16 Shell actually gets setup for all users. Everyone can invoke Base16 Shell scripts to change their themes, if they want. For instance:
$ base16_material-lighter
- I used GNOME Terminal as example, but it works for virtual consoles too (e.g.
tty1
- Ctrl + Alt + F1). But on virtual consoles I observe a strange behavior:

Colors are applied only after logging in, and are not applied full screen.
Then I run:
$ clear
And everything looks fine:

(for this screenshot, the clear
command does not appear, and I ran ll
again)
With another theme to make the issue more visible:

Then clear
, then ll
again:
