Last active
November 24, 2016 01:19
-
-
Save dmcbane/e62bc71da29f454a1893d4a58920b8da to your computer and use it in GitHub Desktop.
Gnome terminal color scheme based on the ITerm2 Mona List color scheme
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="terminal.sexy" | |
[[ -z "$PROFILE_SLUG" ]] && PROFILE_SLUG="terminal-dot-sexy" | |
[[ -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 "['#351b0e', '#9c291c', '#326263', '#c36e28', '#515c5d', '#9b1d29', '#588056', '#f7d75c', '#874228', '#ff4331', '#b4b264', '#ff9666', '#9eb2b4', '#ff5b6a', '#8acd8f', '#ffe598']" | |
dset background-color "'#120b0d'" | |
dset foreground-color "'#f7d66a'" | |
dset bold-color "'#fee4a0'" | |
dset bold-color-same-as-fg "false" | |
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 "#351b0e:#9c291c:#326263:#c36e28:#515c5d:#9b1d29:#588056:#f7d75c:#874228:#ff4331:#b4b264:#ff9666:#9eb2b4:#ff5b6a:#8acd8f:#ffe598" | |
gset string background_color "#120b0d" | |
gset string foreground_color "#f7d66a" | |
gset string bold_color "#f7d66a" | |
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