Browse code

Add dotfiles

Robert Cranston authored on 01/07/2022 22:22:26
Showing 1 changed files

1 1
new file mode 100644
... ...
@@ -0,0 +1,250 @@
1
+# Following Vim's dark/light naming convention.
2
+COLOR_DARKBLACK=0
3
+COLOR_DARKRED=1
4
+COLOR_DARKGREEN=2
5
+COLOR_DARKYELLOW=3
6
+COLOR_DARKBLUE=4
7
+COLOR_DARKMAGENTA=5
8
+COLOR_DARKCYAN=6
9
+COLOR_DARKWHITE=7
10
+COLOR_LIGHTBLACK=8
11
+COLOR_LIGHTRED=9
12
+COLOR_LIGHTGREEN=10
13
+COLOR_LIGHTYELLOW=11
14
+COLOR_LIGHTBLUE=12
15
+COLOR_LIGHTMAGENTA=13
16
+COLOR_LIGHTCYAN=14
17
+COLOR_LIGHTWHITE=15
18
+# Default to light.
19
+COLOR_BLACK="$COLORS_LIGHTBLACK"
20
+COLOR_RED="$COLORS_LIGHTRED"
21
+COLOR_GREEN="$COLORS_LIGHTGREEN"
22
+COLOR_YELLOW="$COLORS_LIGHTYELLOW"
23
+COLOR_BLUE="$COLORS_LIGHTBLUE"
24
+COLOR_MAGENTA="$COLORS_LIGHTMAGENTA"
25
+COLOR_CYAN="$COLORS_LIGHTCYAN"
26
+COLOR_WHITE="$COLORS_LIGHTWHITE"
27
+
28
+__color_enabled="$(command -v tput)"
29
+__color_count="$([ "$__color_enabled" ] && tput colors || echo 0)"
30
+
31
+__color_test_put()
32
+{
33
+  [ "$__color_enabled" ] || return 0
34
+  for __color
35
+  do
36
+    if [ $__color_count -lt 16 ] && [ $__color -ge 8 ]
37
+    then
38
+      __color=$((__color - 8))
39
+      tput bold
40
+    fi
41
+    tput setaf "$__color"
42
+    printf '%s' '██'
43
+    tput sgr0
44
+  done
45
+}
46
+
47
+__color_test()
48
+{
49
+  __color_test_put 0
50
+  __color_test_put $(seq 1 6)
51
+  __color_test_put 7
52
+  printf '\n'
53
+  __color_test_put 8
54
+  __color_test_put $(seq 9 14)
55
+  __color_test_put 15
56
+  printf '\n'
57
+}
58
+
59
+__color_test1()
60
+{
61
+  __color_test_put 0
62
+  printf '\n'
63
+  __color_test_put 8
64
+  printf '\n'
65
+  __color_test_put 7
66
+  __color_test_put $(seq 1 6)
67
+  printf '\n'
68
+  __color_test_put 15
69
+  __color_test_put $(seq 9 14)
70
+  printf '\n'
71
+}
72
+
73
+__color_test2()
74
+{
75
+  __color_test_put 0
76
+  printf '\n'
77
+  __color_test_put 8
78
+  __color_test_put $(seq 1 6)
79
+  printf '\n'
80
+  __color_test_put 7
81
+  printf '\n'
82
+  __color_test_put 15
83
+  __color_test_put $(seq 9 14)
84
+  printf '\n'
85
+}
86
+
87
+__color_format()
88
+{
89
+  for __color
90
+  do
91
+    # Same as `ceil(__color/0xff*1000)`.
92
+    printf '%s\n' "$(((__color * 1000 + 0xfe) / 0xff))"
93
+  done
94
+}
95
+
96
+# `terminfo` does not define capabilities for setting the default foreground
97
+# and background colors, so if the terminal supports at least 16 colors we use
98
+# OSC 10/11 directly and hope for the best. This causes `tmux` to explicitly
99
+# render the background color, which causes issues with transparency. This also
100
+# causes Vim's `:terminal` to interpret the escape character as an escape key
101
+# press which puts readline in vi command mode. Therefore we only do this if
102
+# we're a login shell.
103
+__color_set_fg()
104
+{
105
+  [ -z "$TMUX" ] || return 0
106
+  [ -z "$VIM"  ] || return 0
107
+  # [ "$__color_count" -ge 16 ] || return 0
108
+  # case "$0" in
109
+  #   -*) break ;;
110
+  #   *) return 0 ;;
111
+  # esac
112
+  printf '\33]10;rgb:%02x/%02x/%02x\33\\' "$@"
113
+}
114
+__color_set_bg()
115
+{
116
+  [ -z "$TMUX" ] || return 0
117
+  [ -z "$VIM"  ] || return 0
118
+  # [ "$__color_count" -ge 16 ] || return 0
119
+  # case "$0" in
120
+  #   -*) break ;;
121
+  #   *) return 0 ;;
122
+  # esac
123
+  printf '\33]11;rgb:%02x/%02x/%02x\33\\' "$@"
124
+}
125
+
126
+__color_set()
127
+{
128
+  [ "$__color_enabled" ] || return 0
129
+  __color=$((0))
130
+  while read -r __color_r __color_g __color_b __color_comment
131
+  do
132
+    [ "$__color_r" ] || continue
133
+    # Palette.
134
+    tput initc "$((__color))" $(__color_format \
135
+      "$__color_r" \
136
+      "$__color_g" \
137
+      "$__color_b"
138
+    )
139
+    # Background (color 0, to match the Linux console).
140
+    if [ "$__color" -eq 0 ]
141
+    then
142
+      __color_set_bg \
143
+        "$__color_r" \
144
+        "$__color_g" \
145
+        "$__color_b"
146
+    fi
147
+    # Foreground (color 7, to match the Linux console).
148
+    if [ "$__color" -eq 7 ]
149
+    then
150
+      __color_set_fg \
151
+        "$__color_r" \
152
+        "$__color_g" \
153
+        "$__color_b"
154
+    fi
155
+    __color=$((__color + 1))
156
+  done
157
+}
158
+
159
+__color_set_uniform_hard_linear()
160
+{
161
+  # https://notes.rcrnstn.net/colors.md
162
+  # hard-linear
163
+  echo '
164
+    0x00 0x00 0x00 Black
165
+    0xa4 0x6a 0x6a Red
166
+    0x4e 0x86 0x56 Green
167
+    0x87 0x79 0x40 Yellow
168
+    0x64 0x7a 0xa4 Blue
169
+    0x9c 0x68 0x98 Magenta
170
+    0x07 0x87 0x88 Cyan
171
+    0x79 0x79 0x79 White
172
+    0x3e 0x3e 0x3e Bright Black
173
+    0xff 0xa6 0xa7 Bright Red
174
+    0x7b 0xd1 0x88 Bright Green
175
+    0xd3 0xbe 0x67 Bright Yellow
176
+    0x9d 0xbf 0xff Bright Blue
177
+    0xf3 0xa3 0xec Bright Magenta
178
+    0x00 0xd3 0xd4 Bright Cyan
179
+    0xbe 0xbe 0xbe Bright White
180
+  ' | __color_set
181
+}
182
+
183
+__color_set_twisted1()
184
+{
185
+  echo '
186
+    0x00 0x00 0x00 Black
187
+    0x9a 0x6a 0x4b Red
188
+    0x08 0x84 0x65 Green
189
+    0x6d 0x7b 0x32 Yellow
190
+    0x7d 0x6b 0xa4 Blue
191
+    0xa4 0x5e 0x83 Magenta
192
+    0x08 0x80 0x95 Cyan
193
+    0x75 0x75 0x75 White
194
+    0x3b 0x3b 0x3b BrightBlack
195
+    0xee 0xa6 0x77 BrightRed
196
+    0x09 0xce 0x9e BrightGreen
197
+    0xab 0xbf 0x51 BrightYellow
198
+    0xc3 0xa8 0xfd BrightBlue
199
+    0xfe 0x94 0xcd BrightMagenta
200
+    0x07 0xc7 0xe8 BrightCyan
201
+    0xb6 0xb6 0xb6 BrightWhite
202
+  ' | __color_set
203
+}
204
+
205
+__color_set_twisted2()
206
+{
207
+  echo '
208
+    0x00 0x00 0x00 Black
209
+    0xa4 0x5e 0x83 Red
210
+    0x6d 0x7b 0x32 Green
211
+    0x9a 0x6a 0x4b Yellow
212
+    0x08 0x80 0x95 Blue
213
+    0x7d 0x6b 0xa4 Magenta
214
+    0x08 0x84 0x65 Cyan
215
+    0x75 0x75 0x75 White
216
+    0x3b 0x3b 0x3b BrightBlack
217
+    0xfe 0x94 0xcd BrightRed
218
+    0xab 0xbf 0x51 BrightGreen
219
+    0xee 0xa6 0x77 BrightYellow
220
+    0x07 0xc7 0xe8 BrightBlue
221
+    0xc3 0xa8 0xfd BrightMagenta
222
+    0x09 0xce 0x9e BrightCyan
223
+    0xb6 0xb6 0xb6 BrightWhite
224
+  ' | __color_set
225
+}
226
+
227
+__color_set_alacritty()
228
+{
229
+  # https://github.com/alacritty/alacritty/blob/master/extra/man/alacritty.5.scd#colors
230
+  echo '
231
+    0x0f 0x0f 0x0f Black
232
+    0x71 0x2b 0x2b Red
233
+    0x5f 0x6f 0x3a Green
234
+    0xa1 0x7e 0x4d Yellow
235
+    0x45 0x68 0x77 Blue
236
+    0x70 0x4d 0x68 Magenta
237
+    0x4d 0x77 0x70 Cyan
238
+    0x8e 0x8e 0x8e White
239
+    0x6b 0x6b 0x6b Bright Black
240
+    0xc5 0x55 0x55 Bright Red
241
+    0xaa 0xc4 0x74 Bright Green
242
+    0xfe 0xca 0x88 Bright Yellow
243
+    0x82 0xb8 0xc8 Bright Blue
244
+    0xc2 0x8c 0xb8 Bright Magenta
245
+    0x93 0xd3 0xc3 Bright Cyan
246
+    0xf8 0xf8 0xf8 Bright White
247
+  ' | __color_set
248
+}
249
+
250
+__color_set_uniform_hard_linear