92 lines
2.9 KiB
Bash
Executable File
92 lines
2.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Base16 Outrun Dark - Gnome Terminal color scheme install script
|
|
# Hugo Delahousse (http://github.com/hugodelahousse/)
|
|
set -x
|
|
[[ -f "$HOME/.config/.gnome-terminal-profile-created" ]] && exit 0
|
|
[[ -z "$PROFILE_NAME" ]] && PROFILE_NAME="Base 16 Outrun Dark 256"
|
|
[[ -z "$PROFILE_SLUG" ]] && PROFILE_SLUG="base-16-outrun-dark-256"
|
|
[[ -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'"
|
|
} | perl -pe 'chomp if eof' | tr "\n" ,
|
|
)"
|
|
|
|
"$DCONF" write "$key" "[$entries]"
|
|
}
|
|
|
|
# Newest versions of gnome-terminal use dconf
|
|
if which "$DCONF" > /dev/null 2>&1; then
|
|
# Check that uuidgen is available
|
|
type $UUIDGEN >/dev/null 2>&1 || { echo >&2 "Requires uuidgen but it's not installed. Aborting!"; exit 1; }
|
|
|
|
[[ -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 "['#00002a', '#ff4242', '#59f176', '#f3e877', '#66b0ff', '#f10596', '#0ef0f0', '#d0d0fa', '#50507a', '#ff4242', '#59f176', '#f3e877', '#66b0ff', '#f10596', '#0ef0f0', '#f5f5ff']"
|
|
dset background-color "'#00002a'"
|
|
dset foreground-color "'#d0d0fa'"
|
|
dset bold-color "'#d0d0fa'"
|
|
dset bold-color-same-as-fg "true"
|
|
dset cursor-colors-set "true"
|
|
dset cursor-background-color "'#d0d0fa'"
|
|
dset cursor-foreground-color "'#00002a'"
|
|
dset use-theme-colors "false"
|
|
dset use-theme-background "false"
|
|
|
|
unset PROFILE_NAME
|
|
unset PROFILE_SLUG
|
|
unset PROFILE_KEY
|
|
unset DCONF
|
|
unset UUIDGEN
|
|
unset DEFAULT_KEY
|
|
unset DEFAULT_SLUG
|
|
unset BASE_NEW_KEY
|
|
touch "$HOME/.config/.gnome-terminal-profile-created"
|
|
exit 0
|
|
fi
|
|
fi
|
|
|
|
echo "dconf not found"
|
|
exit 1
|