Created
April 9, 2018 13:40
-
-
Save hjst/7c9ae35ccd5869abd7e00e88a2949d36 to your computer and use it in GitHub Desktop.
Modified Tango palette for GNOME Terminal (off-black background)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
# Base16 - Gnome Terminal color scheme install script | |
[[ -z "$PROFILE_NAME" ]] && PROFILE_NAME="Tango Modified" | |
[[ -z "$PROFILE_SLUG" ]] && PROFILE_SLUG="tango-modified" | |
[[ -z "$DCONF" ]] && DCONF=dconf | |
[[ -z "$UUIDGEN" ]] && UUIDGEN=uuidgen | |
dset() { | |
local key="$1"; shift | |
local val="$1"; shift | |
if [[ "$type" == "string" ]]; then | |
val="'$val'" | |
fi | |
"$DCONF" write "$PROFILE_KEY/$key" "$val" | |
} | |
# because dconf still doesn't have "append" | |
dlist_append() { | |
local key="$1"; shift | |
local val="$1"; shift | |
local entries="$( | |
{ | |
"$DCONF" read "$key" | tr -d '[]' | tr , "\n" | fgrep -v "$val" | |
echo "'$val'" | |
} | head -c-1 | tr "\n" , | |
)" | |
"$DCONF" write "$key" "[$entries]" | |
} | |
# Newest versions of gnome-terminal use dconf | |
if which "$DCONF" > /dev/null 2>&1; then | |
[[ -z "$BASE_KEY_NEW" ]] && BASE_KEY_NEW=/org/gnome/terminal/legacy/profiles: | |
if [[ -n "`$DCONF list $BASE_KEY_NEW/`" ]]; then | |
if which "$UUIDGEN" > /dev/null 2>&1; then | |
PROFILE_SLUG=`uuidgen` | |
fi | |
if [[ -n "`$DCONF read $BASE_KEY_NEW/default`" ]]; then | |
DEFAULT_SLUG=`$DCONF read $BASE_KEY_NEW/default | tr -d \'` | |
else | |
DEFAULT_SLUG=`$DCONF list $BASE_KEY_NEW/ | grep '^:' | head -n1 | tr -d :/` | |
fi | |
DEFAULT_KEY="$BASE_KEY_NEW/:$DEFAULT_SLUG" | |
PROFILE_KEY="$BASE_KEY_NEW/:$PROFILE_SLUG" | |
# copy existing settings from default profile | |
$DCONF dump "$DEFAULT_KEY/" | $DCONF load "$PROFILE_KEY/" | |
# add new copy to list of profiles | |
dlist_append $BASE_KEY_NEW/list "$PROFILE_SLUG" | |
# update profile values with theme options | |
dset visible-name "'$PROFILE_NAME'" | |
dset palette "['#2e3436', '#cc0000', '#4e9a06', '#c4a000', '#3465a4', '#75507b', '#06989a', '#d3d7cf', '#555753', '#ef2929', '#8ae234', '#fce94f', '#729fcf', '#ad7fa8', '#34e2e2', '#eeeeec']" | |
dset background-color "'#151819'" | |
dset foreground-color "'#babdb6'" | |
dset bold-color "'#babdb6'" | |
dset bold-color-same-as-fg "true" | |
dset use-theme-colors "false" | |
dset use-theme-background "false" | |
unset PROFILE_NAME | |
unset PROFILE_SLUG | |
unset DCONF | |
unset UUIDGEN | |
exit 0 | |
fi | |
fi | |
# Fallback for Gnome 2 and early Gnome 3 | |
[[ -z "$GCONFTOOL" ]] && GCONFTOOL=gconftool | |
[[ -z "$BASE_KEY" ]] && BASE_KEY=/apps/gnome-terminal/profiles | |
PROFILE_KEY="$BASE_KEY/$PROFILE_SLUG" | |
gset() { | |
local type="$1"; shift | |
local key="$1"; shift | |
local val="$1"; shift | |
"$GCONFTOOL" --set --type "$type" "$PROFILE_KEY/$key" -- "$val" | |
} | |
# Because gconftool doesn't have "append" | |
glist_append() { | |
local type="$1"; shift | |
local key="$1"; shift | |
local val="$1"; shift | |
local entries="$( | |
{ | |
"$GCONFTOOL" --get "$key" | tr -d '[]' | tr , "\n" | fgrep -v "$val" | |
echo "$val" | |
} | head -c-1 | tr "\n" , | |
)" | |
"$GCONFTOOL" --set --type list --list-type $type "$key" "[$entries]" | |
} | |
# Append the Base16 profile to the profile list | |
glist_append string /apps/gnome-terminal/global/profile_list "$PROFILE_SLUG" | |
gset string visible_name "$PROFILE_NAME" | |
gset string palette "#2e3436:#cc0000:#4e9a06:#c4a000:#3465a4:#75507b:#06989a:#d3d7cf:#555753:#ef2929:#8ae234:#fce94f:#729fcf:#ad7fa8:#34e2e2:#eeeeec" | |
gset string background_color "#151819" | |
gset string foreground_color "#babdb6" | |
gset string bold_color "#babdb6" | |
gset bool bold_color_same_as_fg "true" | |
gset bool use_theme_colors "false" | |
gset bool use_theme_background "false" | |
unset PROFILE_NAME | |
unset PROFILE_SLUG | |
unset DCONF | |
unset UUIDGEN |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment