Guest User

Untitled

a guest
Mar 22nd, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.57 KB | None | 0 0
  1. #!/usr/bin/env bash
  2.  
  3. [[ -z "$PROFILE_NAME" ]] && PROFILE_NAME="mod8-ocean"
  4. [[ -z "$PROFILE_SLUG" ]] && PROFILE_SLUG="mod8-ocean"
  5. [[ -z "$DCONF" ]] && DCONF=dconf
  6. [[ -z "$UUIDGEN" ]] && UUIDGEN=uuidgen
  7.  
  8. dset() {
  9. local key="$1"
  10. shift
  11. local val="$1"
  12. shift
  13.  
  14. if [[ "$type" == "string" ]]; then
  15. val="'$val'"
  16. fi
  17.  
  18. "$DCONF" write "$PROFILE_KEY/$key" "$val"
  19. }
  20.  
  21. # because dconf still doesn't have "append"
  22. dlist_append() {
  23. local key="$1"
  24. shift
  25. local val="$1"
  26. shift
  27.  
  28. local entries="$(
  29. {
  30. "$DCONF" read "$key" | tr -d '[]' | tr , "\\n" | grep -Fv "$val"
  31. echo "'$val'"
  32. } | head -c-1 | tr "\\n" ,
  33. )"
  34.  
  35. "$DCONF" write "$key" "[$entries]"
  36. }
  37.  
  38. # Newest versions of gnome-terminal use dconf
  39. if which "$DCONF" >/dev/null 2>&1; then
  40. [[ -z "$BASE_KEY_NEW" ]] && BASE_KEY_NEW=/org/gnome/terminal/legacy/profiles:
  41.  
  42. if [[ -n "$($DCONF list $BASE_KEY_NEW/)" ]]; then
  43. if which "$UUIDGEN" >/dev/null 2>&1; then
  44. PROFILE_SLUG=$(uuidgen)
  45. fi
  46.  
  47. if [[ -n "$($DCONF read $BASE_KEY_NEW/default)" ]]; then
  48. DEFAULT_SLUG=$($DCONF read $BASE_KEY_NEW/default | tr -d \')
  49. else
  50. DEFAULT_SLUG=$($DCONF list $BASE_KEY_NEW/ | grep '^:' | head -n1 | tr -d :/)
  51. fi
  52.  
  53. DEFAULT_KEY="$BASE_KEY_NEW/:$DEFAULT_SLUG"
  54. PROFILE_KEY="$BASE_KEY_NEW/:$PROFILE_SLUG"
  55.  
  56. # copy existing settings from default profile
  57. $DCONF dump "$DEFAULT_KEY/" | $DCONF load "$PROFILE_KEY/"
  58.  
  59. # add new copy to list of profiles
  60. dlist_append $BASE_KEY_NEW/list "$PROFILE_SLUG"
  61.  
  62. # update profile values with theme options
  63. dset visible-name "'$PROFILE_NAME'"
  64. dset palette "['#343d46', '#bf616a', '#a3be8c', '#ebcb8b', '#8fa1b3', '#b48ead', '#96b5b4', '#65737e', '#4f5b66', '#d08770', '#a3be8c', '#ebcb8b', '#8fa1b3', '#ab7967', '#a7adba', '#c5c8c6']"
  65. dset background-color "'#2b303b'"
  66. dset foreground-color "'#c0c5ce'"
  67. dset bold-color "'#c0c5ce'"
  68. dset bold-color-same-as-fg "true"
  69. dset use-theme-colors "false"
  70. dset use-theme-background "false"
  71.  
  72. unset PROFILE_NAME
  73. unset PROFILE_SLUG
  74. unset DCONF
  75. unset UUIDGEN
  76. exit 0
  77. fi
  78. fi
  79.  
  80. # Fallback for Gnome 2 and early Gnome 3
  81. [[ -z "$GCONFTOOL" ]] && GCONFTOOL=gconftool
  82. [[ -z "$BASE_KEY" ]] && BASE_KEY=/apps/gnome-terminal/profiles
  83.  
  84. PROFILE_KEY="$BASE_KEY/$PROFILE_SLUG"
  85.  
  86. gset() {
  87. local type="$1"
  88. shift
  89. local key="$1"
  90. shift
  91. local val="$1"
  92. shift
  93.  
  94. "$GCONFTOOL" --set --type "$type" "$PROFILE_KEY/$key" -- "$val"
  95. }
  96.  
  97. # Because gconftool doesn't have "append"
  98. glist_append() {
  99. local type="$1"
  100. shift
  101. local key="$1"
  102. shift
  103. local val="$1"
  104. shift
  105.  
  106. local entries="$(
  107. {
  108. "$GCONFTOOL" --get "$key" | tr -d '[]' | tr , "\\n" | grep -Fv "$val"
  109. echo "$val"
  110. } | head -c-1 | tr "\\n" ,
  111. )"
  112.  
  113. "$GCONFTOOL" --set --type list --list-type "$type" "$key" "[$entries]"
  114. }
  115.  
  116. # Append the Base16 profile to the profile list
  117. glist_append string /apps/gnome-terminal/global/profile_list "$PROFILE_SLUG"
  118.  
  119. gset string visible_name "$PROFILE_NAME"
  120. gset string palette "#343d46:#bf616a:#a3be8c:#ebcb8b:#8fa1b3:#b48ead:#96b5b4:#65737e:#4f5b66:#d08770:#a3be8c:#ebcb8b:#8fa1b3:#ab7967:#a7adba:#c5c8c6"
  121. gset string background_color "#2b303b"
  122. gset string foreground_color "#c0c5ce"
  123. gset string bold_color "#c0c5ce"
  124. gset bool bold_color_same_as_fg "true"
  125. gset bool use_theme_colors "false"
  126. gset bool use_theme_background "false"
  127.  
  128. unset PROFILE_NAME
  129. unset PROFILE_SLUG
  130. unset DCONF
  131. unset UUIDGEN
Add Comment
Please, Sign In to add comment