textbringer 25 → 27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.ja.md +24 -0
- data/README.md +28 -0
- data/lib/textbringer/color.rb +46 -0
- data/lib/textbringer/commands/clipboard.rb +7 -4
- data/lib/textbringer/commands/misc.rb +68 -36
- data/lib/textbringer/face.rb +18 -0
- data/lib/textbringer/input_methods/skk_input_method.rb +1 -1
- data/lib/textbringer/keymap.rb +2 -0
- data/lib/textbringer/modes/dired_mode.rb +0 -1
- data/lib/textbringer/modes/ruby_mode.rb +49 -40
- data/lib/textbringer/themes/catppuccin.rb +53 -52
- data/lib/textbringer/themes/github.rb +17 -20
- data/lib/textbringer/themes/gruvbox.rb +34 -33
- data/lib/textbringer/themes/iceberg.rb +88 -0
- data/lib/textbringer/themes/kanagawa.rb +94 -0
- data/lib/textbringer/themes/molokai.rb +20 -22
- data/lib/textbringer/themes/sonokai.rb +22 -18
- data/lib/textbringer/themes/tokyonight.rb +3 -3
- data/lib/textbringer/utils.rb +16 -0
- data/lib/textbringer/version.rb +1 -1
- data/lib/textbringer/window.rb +4 -1
- data/screenshot.png +0 -0
- data/textbringer.gemspec +1 -2
- metadata +14 -26
|
@@ -2,70 +2,71 @@
|
|
|
2
2
|
# Based on https://github.com/catppuccin/nvim
|
|
3
3
|
#
|
|
4
4
|
# Dark variant: Mocha Light variant: Latte
|
|
5
|
+
# GUI hex values from the official palette definitions.
|
|
5
6
|
|
|
6
7
|
Textbringer::Theme.define "catppuccin" do |t|
|
|
7
8
|
t.palette :dark do |p|
|
|
8
9
|
# Catppuccin Mocha base tones
|
|
9
|
-
p.color :text, hex: "#
|
|
10
|
-
p.color :subtext1, hex: "#
|
|
11
|
-
p.color :subtext0, hex: "#
|
|
12
|
-
p.color :overlay2, hex: "#
|
|
13
|
-
p.color :overlay1, hex: "#
|
|
14
|
-
p.color :overlay0, hex: "#
|
|
15
|
-
p.color :surface2, hex: "#
|
|
16
|
-
p.color :surface1, hex: "#
|
|
17
|
-
p.color :surface0, hex: "#
|
|
18
|
-
p.color :base, hex: "#
|
|
19
|
-
p.color :mantle, hex: "#
|
|
20
|
-
p.color :crust, hex: "#
|
|
10
|
+
p.color :text, hex: "#cdd6f4", ansi: "white"
|
|
11
|
+
p.color :subtext1, hex: "#bac2de", ansi: "white"
|
|
12
|
+
p.color :subtext0, hex: "#a6adc8", ansi: "white"
|
|
13
|
+
p.color :overlay2, hex: "#9399b2", ansi: "white"
|
|
14
|
+
p.color :overlay1, hex: "#7f849c", ansi: "brightblack"
|
|
15
|
+
p.color :overlay0, hex: "#6c7086", ansi: "brightblack"
|
|
16
|
+
p.color :surface2, hex: "#585b70", ansi: "brightblack"
|
|
17
|
+
p.color :surface1, hex: "#45475a", ansi: "brightblack"
|
|
18
|
+
p.color :surface0, hex: "#313244", ansi: "brightblack"
|
|
19
|
+
p.color :base, hex: "#1e1e2e", ansi: "black"
|
|
20
|
+
p.color :mantle, hex: "#181825", ansi: "black"
|
|
21
|
+
p.color :crust, hex: "#11111b", ansi: "black"
|
|
21
22
|
|
|
22
23
|
# Catppuccin Mocha accent colors
|
|
23
|
-
p.color :red, hex: "#
|
|
24
|
-
p.color :maroon, hex: "#
|
|
25
|
-
p.color :peach, hex: "#
|
|
26
|
-
p.color :yellow, hex: "#
|
|
27
|
-
p.color :green, hex: "#
|
|
28
|
-
p.color :teal, hex: "#
|
|
29
|
-
p.color :sky, hex: "#
|
|
30
|
-
p.color :sapphire, hex: "#
|
|
31
|
-
p.color :blue, hex: "#
|
|
32
|
-
p.color :lavender, hex: "#
|
|
33
|
-
p.color :mauve, hex: "#
|
|
34
|
-
p.color :pink, hex: "#
|
|
35
|
-
p.color :flamingo, hex: "#
|
|
36
|
-
p.color :rosewater, hex: "#
|
|
24
|
+
p.color :red, hex: "#f38ba8", ansi: "red"
|
|
25
|
+
p.color :maroon, hex: "#eba0ac", ansi: "red"
|
|
26
|
+
p.color :peach, hex: "#fab387", ansi: "yellow"
|
|
27
|
+
p.color :yellow, hex: "#f9e2af", ansi: "yellow"
|
|
28
|
+
p.color :green, hex: "#a6e3a1", ansi: "green"
|
|
29
|
+
p.color :teal, hex: "#94e2d5", ansi: "cyan"
|
|
30
|
+
p.color :sky, hex: "#89dceb", ansi: "cyan"
|
|
31
|
+
p.color :sapphire, hex: "#74c7ec", ansi: "cyan"
|
|
32
|
+
p.color :blue, hex: "#89b4fa", ansi: "blue"
|
|
33
|
+
p.color :lavender, hex: "#b4befe", ansi: "blue"
|
|
34
|
+
p.color :mauve, hex: "#cba6f7", ansi: "magenta"
|
|
35
|
+
p.color :pink, hex: "#f5c2e7", ansi: "magenta"
|
|
36
|
+
p.color :flamingo, hex: "#f2cdcd", ansi: "red"
|
|
37
|
+
p.color :rosewater, hex: "#f5e0dc", ansi: "red"
|
|
37
38
|
end
|
|
38
39
|
|
|
39
40
|
t.palette :light do |p|
|
|
40
41
|
# Catppuccin Latte base tones
|
|
41
|
-
p.color :text, hex: "#
|
|
42
|
-
p.color :subtext1, hex: "#
|
|
43
|
-
p.color :subtext0, hex: "#
|
|
44
|
-
p.color :overlay2, hex: "#
|
|
45
|
-
p.color :overlay1, hex: "#
|
|
46
|
-
p.color :overlay0, hex: "#
|
|
47
|
-
p.color :surface2, hex: "#
|
|
48
|
-
p.color :surface1, hex: "#
|
|
49
|
-
p.color :surface0, hex: "#
|
|
50
|
-
p.color :base, hex: "#
|
|
51
|
-
p.color :mantle, hex: "#
|
|
52
|
-
p.color :crust, hex: "#
|
|
42
|
+
p.color :text, hex: "#4c4f69", ansi: "black"
|
|
43
|
+
p.color :subtext1, hex: "#5c5f77", ansi: "black"
|
|
44
|
+
p.color :subtext0, hex: "#6c6f85", ansi: "brightblack"
|
|
45
|
+
p.color :overlay2, hex: "#7c7f93", ansi: "brightblack"
|
|
46
|
+
p.color :overlay1, hex: "#8c8fa1", ansi: "white"
|
|
47
|
+
p.color :overlay0, hex: "#9ca0b0", ansi: "white"
|
|
48
|
+
p.color :surface2, hex: "#acb0be", ansi: "white"
|
|
49
|
+
p.color :surface1, hex: "#bcc0cc", ansi: "white"
|
|
50
|
+
p.color :surface0, hex: "#ccd0da", ansi: "white"
|
|
51
|
+
p.color :base, hex: "#eff1f5", ansi: "white"
|
|
52
|
+
p.color :mantle, hex: "#e6e9ef", ansi: "white"
|
|
53
|
+
p.color :crust, hex: "#dce0e8", ansi: "white"
|
|
53
54
|
|
|
54
55
|
# Catppuccin Latte accent colors
|
|
55
|
-
p.color :red, hex: "#
|
|
56
|
-
p.color :maroon, hex: "#
|
|
57
|
-
p.color :peach, hex: "#
|
|
58
|
-
p.color :yellow, hex: "#
|
|
59
|
-
p.color :green, hex: "#
|
|
60
|
-
p.color :teal, hex: "#
|
|
61
|
-
p.color :sky, hex: "#
|
|
62
|
-
p.color :sapphire, hex: "#
|
|
63
|
-
p.color :blue, hex: "#
|
|
64
|
-
p.color :lavender, hex: "#
|
|
65
|
-
p.color :mauve, hex: "#
|
|
66
|
-
p.color :pink, hex: "#
|
|
67
|
-
p.color :flamingo, hex: "#
|
|
68
|
-
p.color :rosewater, hex: "#
|
|
56
|
+
p.color :red, hex: "#d20f39", ansi: "red"
|
|
57
|
+
p.color :maroon, hex: "#e64553", ansi: "red"
|
|
58
|
+
p.color :peach, hex: "#fe640b", ansi: "red"
|
|
59
|
+
p.color :yellow, hex: "#df8e1d", ansi: "yellow"
|
|
60
|
+
p.color :green, hex: "#40a02b", ansi: "green"
|
|
61
|
+
p.color :teal, hex: "#179299", ansi: "cyan"
|
|
62
|
+
p.color :sky, hex: "#04a5e5", ansi: "cyan"
|
|
63
|
+
p.color :sapphire, hex: "#209fb5", ansi: "cyan"
|
|
64
|
+
p.color :blue, hex: "#1e66f5", ansi: "blue"
|
|
65
|
+
p.color :lavender, hex: "#7287fd", ansi: "blue"
|
|
66
|
+
p.color :mauve, hex: "#8839ef", ansi: "magenta"
|
|
67
|
+
p.color :pink, hex: "#ea76cb", ansi: "magenta"
|
|
68
|
+
p.color :flamingo, hex: "#dd7878", ansi: "red"
|
|
69
|
+
p.color :rosewater, hex: "#dc8a78", ansi: "red"
|
|
69
70
|
end
|
|
70
71
|
|
|
71
72
|
t.default_colors foreground: :text, background: :base
|
|
@@ -2,34 +2,31 @@
|
|
|
2
2
|
# Based on https://github.com/cormacrelf/vim-colors-github
|
|
3
3
|
# Inspired by GitHub's syntax highlighting as of 2018.
|
|
4
4
|
#
|
|
5
|
-
#
|
|
6
|
-
# Dark palette: GUI hex values — dark-mode cterm values in source are unreliable
|
|
7
|
-
# (e.g. dcolors.blue has cterm=167 which maps to red, overlay has cterm=123
|
|
8
|
-
# which maps to bright cyan).
|
|
5
|
+
# GUI hex values from the source's guifg/guibg definitions.
|
|
9
6
|
|
|
10
7
|
Textbringer::Theme.define "github" do |t|
|
|
11
8
|
t.palette :light do |p|
|
|
12
9
|
# Backgrounds / foreground
|
|
13
|
-
p.color :bg, hex: "#ffffff", ansi: "white" #
|
|
14
|
-
p.color :bg1, hex: "#
|
|
15
|
-
p.color :vis, hex: "#
|
|
16
|
-
p.color :search, hex: "#
|
|
17
|
-
p.color :fg, hex: "#
|
|
18
|
-
p.color :comment, hex: "#
|
|
19
|
-
p.color :line_nr, hex: "#
|
|
10
|
+
p.color :bg, hex: "#ffffff", ansi: "white" # Normal guibg
|
|
11
|
+
p.color :bg1, hex: "#f6f8fa", ansi: "white" # overlay/gutter (grey2)
|
|
12
|
+
p.color :vis, hex: "#e4effb", ansi: "blue" # Visual guibg (blue2)
|
|
13
|
+
p.color :search, hex: "#ffffc5", ansi: "yellow" # Search guibg
|
|
14
|
+
p.color :fg, hex: "#24292e", ansi: "black" # Normal guifg (base0)
|
|
15
|
+
p.color :comment, hex: "#6a737d", ansi: "brightblack" # Comment guifg (base2)
|
|
16
|
+
p.color :line_nr, hex: "#babbbc", ansi: "white" # LineNr guifg (base4)
|
|
20
17
|
|
|
21
18
|
# Syntax colors
|
|
22
|
-
p.color :red, hex: "#
|
|
23
|
-
p.color :darkred, hex: "#
|
|
24
|
-
p.color :purple, hex: "#
|
|
25
|
-
p.color :green, hex: "#
|
|
26
|
-
p.color :orange, hex: "#
|
|
27
|
-
p.color :blue, hex: "#
|
|
28
|
-
p.color :darkblue, hex: "#
|
|
19
|
+
p.color :red, hex: "#d73a49", ansi: "red" # Statement guifg
|
|
20
|
+
p.color :darkred, hex: "#b31d28", ansi: "red" # darkred
|
|
21
|
+
p.color :purple, hex: "#6f42c1", ansi: "magenta" # Function guifg
|
|
22
|
+
p.color :green, hex: "#22863a", ansi: "green" # html/xml tags
|
|
23
|
+
p.color :orange, hex: "#e36209", ansi: "yellow" # orange
|
|
24
|
+
p.color :blue, hex: "#005cc5", ansi: "blue" # Identifier guifg
|
|
25
|
+
p.color :darkblue, hex: "#032f62", ansi: "blue" # String guifg
|
|
29
26
|
end
|
|
30
27
|
|
|
31
28
|
t.palette :dark do |p|
|
|
32
|
-
# Backgrounds / foreground (GUI hex
|
|
29
|
+
# Backgrounds / foreground (GUI hex from dark mode definitions)
|
|
33
30
|
p.color :bg, hex: "#24292e", ansi: "black" # base0 (Normal bg)
|
|
34
31
|
p.color :bg1, hex: "#353a3f", ansi: "brightblack" # dcolors.overlay (panels/popups)
|
|
35
32
|
p.color :vis, hex: "#354a60", ansi: "blue" # dcolors.blue2 / blues[4]
|
|
@@ -58,7 +55,7 @@ Textbringer::Theme.define "github" do |t|
|
|
|
58
55
|
t.face :number, foreground: :blue # Number → Constant = blue
|
|
59
56
|
t.face :constant, foreground: :blue # Constant = blue
|
|
60
57
|
t.face :function_name, foreground: :purple # Function = purple
|
|
61
|
-
t.face :type, foreground: :orange # Type = orange
|
|
58
|
+
t.face :type, foreground: :orange # Type = orange (current GitHub style; vim source used red)
|
|
62
59
|
t.face :variable, foreground: :blue # Identifier = blue
|
|
63
60
|
t.face :operator # no explicit color in source
|
|
64
61
|
t.face :punctuation # Delimiter = fg (ghNormalNoBg)
|
|
@@ -1,50 +1,51 @@
|
|
|
1
1
|
# Gruvbox theme for Textbringer
|
|
2
2
|
# Based on https://github.com/morhetz/gruvbox
|
|
3
3
|
#
|
|
4
|
+
# GUI hex values from the source's guifg/guibg definitions.
|
|
4
5
|
# Dark: bright accent colors on warm dark background
|
|
5
|
-
# Light:
|
|
6
|
+
# Light: faded accent colors on warm light background
|
|
6
7
|
|
|
7
8
|
Textbringer::Theme.define "gruvbox" do |t|
|
|
8
9
|
t.palette :dark do |p|
|
|
9
10
|
# Base tones (dark background, light foreground)
|
|
10
|
-
p.color :bg0, hex: "#
|
|
11
|
-
p.color :bg1, hex: "#
|
|
12
|
-
p.color :bg2, hex: "#
|
|
13
|
-
p.color :bg3, hex: "#
|
|
14
|
-
p.color :bg4, hex: "#
|
|
15
|
-
p.color :fg1, hex: "#
|
|
16
|
-
p.color :fg4, hex: "#
|
|
17
|
-
p.color :gray, hex: "#
|
|
11
|
+
p.color :bg0, hex: "#282828", ansi: "black" # dark0
|
|
12
|
+
p.color :bg1, hex: "#3c3836", ansi: "brightblack" # dark1
|
|
13
|
+
p.color :bg2, hex: "#504945", ansi: "brightblack" # dark2
|
|
14
|
+
p.color :bg3, hex: "#665c54", ansi: "brightblack" # dark3
|
|
15
|
+
p.color :bg4, hex: "#7c6f64", ansi: "white" # dark4
|
|
16
|
+
p.color :fg1, hex: "#ebdbb2", ansi: "white" # light1 (Normal guifg)
|
|
17
|
+
p.color :fg4, hex: "#a89984", ansi: "white" # light4
|
|
18
|
+
p.color :gray, hex: "#928374", ansi: "white" # gray_245
|
|
18
19
|
|
|
19
20
|
# Bright accent colors
|
|
20
|
-
p.color :red, hex: "#
|
|
21
|
-
p.color :green, hex: "#
|
|
22
|
-
p.color :yellow, hex: "#
|
|
23
|
-
p.color :blue, hex: "#
|
|
24
|
-
p.color :purple, hex: "#
|
|
25
|
-
p.color :aqua, hex: "#
|
|
26
|
-
p.color :orange, hex: "#
|
|
21
|
+
p.color :red, hex: "#fb4934", ansi: "red" # bright_red
|
|
22
|
+
p.color :green, hex: "#b8bb26", ansi: "green" # bright_green
|
|
23
|
+
p.color :yellow, hex: "#fabd2f", ansi: "yellow" # bright_yellow
|
|
24
|
+
p.color :blue, hex: "#83a598", ansi: "blue" # bright_blue
|
|
25
|
+
p.color :purple, hex: "#d3869b", ansi: "magenta" # bright_purple
|
|
26
|
+
p.color :aqua, hex: "#8ec07c", ansi: "cyan" # bright_aqua
|
|
27
|
+
p.color :orange, hex: "#fe8019", ansi: "yellow" # bright_orange
|
|
27
28
|
end
|
|
28
29
|
|
|
29
30
|
t.palette :light do |p|
|
|
30
31
|
# Base tones (light background, dark foreground)
|
|
31
|
-
p.color :bg0, hex: "#
|
|
32
|
-
p.color :bg1, hex: "#
|
|
33
|
-
p.color :bg2, hex: "#
|
|
34
|
-
p.color :bg3, hex: "#
|
|
35
|
-
p.color :bg4, hex: "#
|
|
36
|
-
p.color :fg1, hex: "#
|
|
37
|
-
p.color :fg4, hex: "#
|
|
38
|
-
p.color :gray, hex: "#
|
|
32
|
+
p.color :bg0, hex: "#fbf1c7", ansi: "white" # light0
|
|
33
|
+
p.color :bg1, hex: "#ebdbb2", ansi: "white" # light1
|
|
34
|
+
p.color :bg2, hex: "#d5c4a1", ansi: "white" # light2
|
|
35
|
+
p.color :bg3, hex: "#bdae93", ansi: "white" # light3
|
|
36
|
+
p.color :bg4, hex: "#a89984", ansi: "brightblack" # light4
|
|
37
|
+
p.color :fg1, hex: "#3c3836", ansi: "black" # dark1 (Normal guifg)
|
|
38
|
+
p.color :fg4, hex: "#7c6f64", ansi: "brightblack" # dark4
|
|
39
|
+
p.color :gray, hex: "#928374", ansi: "brightblack" # gray_244
|
|
39
40
|
|
|
40
|
-
#
|
|
41
|
-
p.color :red, hex: "#
|
|
42
|
-
p.color :green, hex: "#
|
|
43
|
-
p.color :yellow, hex: "#
|
|
44
|
-
p.color :blue, hex: "#
|
|
45
|
-
p.color :purple, hex: "#
|
|
46
|
-
p.color :aqua, hex: "#
|
|
47
|
-
p.color :orange, hex: "#
|
|
41
|
+
# Faded accent colors
|
|
42
|
+
p.color :red, hex: "#9d0006", ansi: "red" # faded_red
|
|
43
|
+
p.color :green, hex: "#79740e", ansi: "green" # faded_green
|
|
44
|
+
p.color :yellow, hex: "#b57614", ansi: "yellow" # faded_yellow
|
|
45
|
+
p.color :blue, hex: "#076678", ansi: "blue" # faded_blue
|
|
46
|
+
p.color :purple, hex: "#8f3f71", ansi: "magenta" # faded_purple
|
|
47
|
+
p.color :aqua, hex: "#427b58", ansi: "cyan" # faded_aqua
|
|
48
|
+
p.color :orange, hex: "#af3a03", ansi: "red" # faded_orange
|
|
48
49
|
end
|
|
49
50
|
|
|
50
51
|
t.default_colors foreground: :fg1, background: :bg0
|
|
@@ -56,7 +57,7 @@ Textbringer::Theme.define "gruvbox" do |t|
|
|
|
56
57
|
t.face :string, foreground: :green
|
|
57
58
|
t.face :number, foreground: :purple
|
|
58
59
|
t.face :constant, foreground: :purple
|
|
59
|
-
t.face :function_name, foreground: :green
|
|
60
|
+
t.face :function_name, foreground: :green, bold: true
|
|
60
61
|
t.face :type, foreground: :yellow
|
|
61
62
|
t.face :variable, foreground: :blue
|
|
62
63
|
t.face :operator
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# Iceberg theme for Textbringer
|
|
2
|
+
# Based on https://github.com/cocopon/iceberg.vim
|
|
3
|
+
# A well-designed dark blue color scheme.
|
|
4
|
+
#
|
|
5
|
+
# GUI hex values from the source's guifg/guibg definitions.
|
|
6
|
+
|
|
7
|
+
Textbringer::Theme.define "iceberg" do |t|
|
|
8
|
+
t.palette :dark do |p|
|
|
9
|
+
# Background / foreground
|
|
10
|
+
p.color :bg, hex: "#161821", ansi: "black" # Normal guibg
|
|
11
|
+
p.color :bg1, hex: "#1e2132", ansi: "black" # terminal color0
|
|
12
|
+
p.color :bg_vis, hex: "#272c42", ansi: "brightblack" # Visual guibg
|
|
13
|
+
p.color :bg_popup, hex: "#3d425b", ansi: "brightblack" # Pmenu guibg
|
|
14
|
+
p.color :bg_sel, hex: "#5b6389", ansi: "brightblack" # PmenuSel guibg
|
|
15
|
+
p.color :fg, hex: "#c6c8d1", ansi: "white" # Normal guifg
|
|
16
|
+
p.color :fg_sel, hex: "#eff0f4", ansi: "white" # PmenuSel guifg
|
|
17
|
+
p.color :comment, hex: "#6b7089", ansi: "brightblack" # Comment guifg
|
|
18
|
+
p.color :status_bg, hex: "#818596", ansi: "white" # StatusLine (reverse)
|
|
19
|
+
p.color :status_fg, hex: "#17171b", ansi: "black" # StatusLine (reverse)
|
|
20
|
+
|
|
21
|
+
# Accent colors
|
|
22
|
+
p.color :blue, hex: "#84a0c6", ansi: "blue" # Statement/Keyword guifg
|
|
23
|
+
p.color :cyan, hex: "#89b8c2", ansi: "cyan" # String/Identifier guifg
|
|
24
|
+
p.color :green, hex: "#b4be82", ansi: "green" # PreProc/Special guifg
|
|
25
|
+
p.color :purple, hex: "#a093c7", ansi: "magenta" # Constant guifg
|
|
26
|
+
p.color :orange, hex: "#e4aa80", ansi: "yellow" # Search guibg
|
|
27
|
+
p.color :search_fg, hex: "#392313", ansi: "black" # Search guifg
|
|
28
|
+
p.color :red, hex: "#e27878", ansi: "red" # terminal color1
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
t.palette :light do |p|
|
|
32
|
+
# Background / foreground
|
|
33
|
+
p.color :bg, hex: "#e8e9ec", ansi: "white" # Normal guibg
|
|
34
|
+
p.color :bg1, hex: "#dcdfe7", ansi: "white" # terminal color0
|
|
35
|
+
p.color :bg_vis, hex: "#c9cdd7", ansi: "white" # Visual guibg
|
|
36
|
+
p.color :bg_popup, hex: "#cad0de", ansi: "white" # Pmenu guibg
|
|
37
|
+
p.color :bg_sel, hex: "#a7b2cd", ansi: "white" # PmenuSel guibg
|
|
38
|
+
p.color :fg, hex: "#33374c", ansi: "black" # Normal guifg
|
|
39
|
+
p.color :fg_sel, hex: "#33374c", ansi: "black" # PmenuSel guifg
|
|
40
|
+
p.color :comment, hex: "#8389a3", ansi: "brightblack" # Comment guifg
|
|
41
|
+
p.color :status_bg, hex: "#757ca3", ansi: "brightblack" # StatusLine (reverse)
|
|
42
|
+
p.color :status_fg, hex: "#e8e9ec", ansi: "white" # StatusLine (reverse)
|
|
43
|
+
|
|
44
|
+
# Accent colors
|
|
45
|
+
p.color :blue, hex: "#2d539e", ansi: "blue" # Statement/Keyword guifg
|
|
46
|
+
p.color :cyan, hex: "#3f83a6", ansi: "cyan" # String/Identifier guifg
|
|
47
|
+
p.color :green, hex: "#668e3d", ansi: "green" # PreProc/Special guifg
|
|
48
|
+
p.color :purple, hex: "#7759b4", ansi: "magenta" # Constant guifg
|
|
49
|
+
p.color :orange, hex: "#eac6ad", ansi: "yellow" # Search guibg
|
|
50
|
+
p.color :search_fg, hex: "#85512c", ansi: "black" # Search guifg
|
|
51
|
+
p.color :red, hex: "#cc517a", ansi: "red" # terminal color1
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
t.default_colors foreground: :fg, background: :bg
|
|
55
|
+
|
|
56
|
+
# Programming faces
|
|
57
|
+
t.face :comment, foreground: :comment
|
|
58
|
+
t.face :preprocessing_directive, foreground: :green # PreProc
|
|
59
|
+
t.face :keyword, foreground: :blue # Statement
|
|
60
|
+
t.face :string, foreground: :cyan # String
|
|
61
|
+
t.face :number, foreground: :purple # Constant
|
|
62
|
+
t.face :constant, foreground: :purple # Constant
|
|
63
|
+
t.face :function_name, foreground: :blue # Function
|
|
64
|
+
t.face :type, foreground: :blue # Type
|
|
65
|
+
t.face :variable, foreground: :cyan # Identifier
|
|
66
|
+
t.face :operator, foreground: :blue # Operator
|
|
67
|
+
t.face :punctuation # Delimiter = fg
|
|
68
|
+
t.face :builtin, foreground: :green # Special
|
|
69
|
+
t.face :property, foreground: :cyan # Identifier
|
|
70
|
+
|
|
71
|
+
# Basic faces
|
|
72
|
+
t.face :mode_line, foreground: :status_fg, background: :status_bg
|
|
73
|
+
t.face :link, foreground: :cyan, underline: true
|
|
74
|
+
t.face :control
|
|
75
|
+
t.face :region, background: :bg_vis
|
|
76
|
+
t.face :isearch, foreground: :search_fg, background: :orange
|
|
77
|
+
t.face :floating_window, foreground: :fg, background: :bg_popup
|
|
78
|
+
|
|
79
|
+
# Completion faces
|
|
80
|
+
t.face :completion_popup, foreground: :fg, background: :bg_popup
|
|
81
|
+
t.face :completion_popup_selected, foreground: :fg_sel, background: :bg_sel
|
|
82
|
+
|
|
83
|
+
# Dired faces
|
|
84
|
+
t.face :dired_directory, foreground: :cyan # Directory
|
|
85
|
+
t.face :dired_symlink, foreground: :green # Tag → Special
|
|
86
|
+
t.face :dired_executable, foreground: :green
|
|
87
|
+
t.face :dired_flagged, foreground: :red
|
|
88
|
+
end
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# Kanagawa theme for Textbringer
|
|
2
|
+
# Based on https://github.com/rebelot/kanagawa.nvim
|
|
3
|
+
# Wave (dark) and Lotus (light) variants.
|
|
4
|
+
#
|
|
5
|
+
# GUI hex values from the source palette and theme definitions.
|
|
6
|
+
|
|
7
|
+
Textbringer::Theme.define "kanagawa" do |t|
|
|
8
|
+
t.palette :dark do |p|
|
|
9
|
+
# Background / foreground (wave variant)
|
|
10
|
+
p.color :bg, hex: "#1f1f28", ansi: "black" # sumiInk3 – Normal bg
|
|
11
|
+
p.color :bg_dark, hex: "#181820", ansi: "black" # sumiInk1 – StatusLine bg
|
|
12
|
+
p.color :bg_popup, hex: "#223249", ansi: "brightblack" # waveBlue1 – Pmenu bg
|
|
13
|
+
p.color :bg_vis, hex: "#223249", ansi: "brightblack" # waveBlue1 – Visual bg
|
|
14
|
+
p.color :bg_sel, hex: "#2d4f67", ansi: "brightblack" # waveBlue2 – PmenuSel bg, Search bg
|
|
15
|
+
p.color :bg_float, hex: "#16161d", ansi: "black" # sumiInk0 – float bg
|
|
16
|
+
p.color :fg, hex: "#dcd7ba", ansi: "white" # fujiWhite – Normal fg
|
|
17
|
+
p.color :fg_dim, hex: "#c8c093", ansi: "white" # oldWhite – StatusLine fg, float fg
|
|
18
|
+
|
|
19
|
+
# Syntax colors
|
|
20
|
+
p.color :comment, hex: "#727169", ansi: "brightblack" # fujiGray – Comment
|
|
21
|
+
p.color :string, hex: "#98bb6c", ansi: "green" # springGreen – String
|
|
22
|
+
p.color :pink, hex: "#d27e99", ansi: "magenta" # sakuraPink – Number
|
|
23
|
+
p.color :orange, hex: "#ffa066", ansi: "yellow" # surimiOrange – Constant
|
|
24
|
+
p.color :yellow, hex: "#e6c384", ansi: "yellow" # carpYellow – Identifier
|
|
25
|
+
p.color :blue, hex: "#7e9cd8", ansi: "blue" # crystalBlue – Function
|
|
26
|
+
p.color :violet, hex: "#957fb8", ansi: "magenta" # oniViolet – Keyword/Statement
|
|
27
|
+
p.color :gold, hex: "#c0a36e", ansi: "yellow" # boatYellow2 – Operator
|
|
28
|
+
p.color :red, hex: "#e46876", ansi: "red" # waveRed – PreProc
|
|
29
|
+
p.color :aqua, hex: "#7aa89f", ansi: "cyan" # waveAqua2 – Type
|
|
30
|
+
p.color :light_blue, hex: "#9cabca", ansi: "cyan" # springViolet2 – Punctuation
|
|
31
|
+
p.color :spring_blue, hex: "#7fb4ca", ansi: "cyan" # springBlue – Special/Builtin
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
t.palette :light do |p|
|
|
35
|
+
# Background / foreground (lotus variant)
|
|
36
|
+
p.color :bg, hex: "#f2ecbc", ansi: "white" # lotusWhite3 – Normal bg
|
|
37
|
+
p.color :bg_dark, hex: "#dcd7ba", ansi: "white" # lotusGray – StatusLine bg
|
|
38
|
+
p.color :bg_popup, hex: "#c7d7e0", ansi: "white" # lotusBlue1 – Pmenu bg
|
|
39
|
+
p.color :bg_sel, hex: "#9fb5c9", ansi: "white" # lotusBlue3 – PmenuSel bg, Search bg
|
|
40
|
+
p.color :bg_float, hex: "#d5cea3", ansi: "white" # lotusWhite0 – float bg
|
|
41
|
+
p.color :bg_vis, hex: "#c9cbd1", ansi: "white" # lotusViolet3 – Visual bg
|
|
42
|
+
p.color :fg, hex: "#545464", ansi: "black" # lotusInk1 – Normal fg
|
|
43
|
+
p.color :fg_dim, hex: "#43436c", ansi: "black" # lotusInk2 – StatusLine fg
|
|
44
|
+
|
|
45
|
+
# Syntax colors
|
|
46
|
+
p.color :comment, hex: "#8a8980", ansi: "brightblack" # lotusGray3 – Comment
|
|
47
|
+
p.color :string, hex: "#6f894e", ansi: "green" # lotusGreen – String
|
|
48
|
+
p.color :pink, hex: "#b35b79", ansi: "magenta" # lotusPink – Number
|
|
49
|
+
p.color :orange, hex: "#cc6d00", ansi: "yellow" # lotusOrange – Constant
|
|
50
|
+
p.color :yellow, hex: "#77713f", ansi: "yellow" # lotusYellow – Identifier
|
|
51
|
+
p.color :blue, hex: "#4d699b", ansi: "blue" # lotusBlue4 – Function
|
|
52
|
+
p.color :violet, hex: "#624c83", ansi: "magenta" # lotusViolet4 – Keyword/Statement
|
|
53
|
+
p.color :gold, hex: "#836f4a", ansi: "yellow" # lotusYellow2 – Operator
|
|
54
|
+
p.color :red, hex: "#c84053", ansi: "red" # lotusRed – PreProc
|
|
55
|
+
p.color :aqua, hex: "#597b75", ansi: "cyan" # lotusAqua – Type
|
|
56
|
+
p.color :light_blue, hex: "#4e8ca2", ansi: "cyan" # lotusTeal1 – Punctuation
|
|
57
|
+
p.color :spring_blue, hex: "#6693bf", ansi: "cyan" # lotusTeal2 – Special/Builtin
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
t.default_colors foreground: :fg, background: :bg
|
|
61
|
+
|
|
62
|
+
# Programming faces
|
|
63
|
+
t.face :comment, foreground: :comment
|
|
64
|
+
t.face :string, foreground: :string # syn.string
|
|
65
|
+
t.face :number, foreground: :pink # syn.number
|
|
66
|
+
t.face :constant, foreground: :orange # syn.constant
|
|
67
|
+
t.face :keyword, foreground: :violet, bold: true # syn.keyword + statementStyle
|
|
68
|
+
t.face :preprocessing_directive, foreground: :red # syn.preproc
|
|
69
|
+
t.face :function_name, foreground: :blue # syn.fun
|
|
70
|
+
t.face :type, foreground: :aqua # syn.type
|
|
71
|
+
t.face :variable, foreground: :yellow # syn.identifier
|
|
72
|
+
t.face :operator, foreground: :gold # syn.operator
|
|
73
|
+
t.face :punctuation, foreground: :light_blue # syn.punct
|
|
74
|
+
t.face :builtin, foreground: :spring_blue # syn.special1
|
|
75
|
+
t.face :property, foreground: :yellow # syn.identifier (carpYellow)
|
|
76
|
+
|
|
77
|
+
# Basic faces
|
|
78
|
+
t.face :mode_line, foreground: :fg_dim, background: :bg_dark
|
|
79
|
+
t.face :link, foreground: :blue, underline: true
|
|
80
|
+
t.face :control
|
|
81
|
+
t.face :region, background: :bg_vis # Visual = waveBlue1 / lotusViolet3
|
|
82
|
+
t.face :isearch, foreground: :fg, background: :bg_sel # bg_search
|
|
83
|
+
t.face :floating_window, foreground: :fg_dim, background: :bg_float
|
|
84
|
+
|
|
85
|
+
# Completion faces
|
|
86
|
+
t.face :completion_popup, foreground: :fg, background: :bg_popup
|
|
87
|
+
t.face :completion_popup_selected, foreground: :fg, background: :bg_sel
|
|
88
|
+
|
|
89
|
+
# Dired faces
|
|
90
|
+
t.face :dired_directory, foreground: :blue, bold: true # Directory
|
|
91
|
+
t.face :dired_symlink, foreground: :spring_blue # special1
|
|
92
|
+
t.face :dired_executable, foreground: :string # springGreen / lotusGreen
|
|
93
|
+
t.face :dired_flagged, foreground: :red
|
|
94
|
+
end
|
|
@@ -2,29 +2,30 @@
|
|
|
2
2
|
# Based on https://github.com/tomasr/molokai
|
|
3
3
|
# Original Monokai theme by Wimer Hazenberg; darker variant by Hamish Stuart Macpherson
|
|
4
4
|
#
|
|
5
|
-
#
|
|
6
|
-
# Dark only.
|
|
5
|
+
# GUI hex values from the source's guifg/guibg definitions.
|
|
6
|
+
# Dark only (default darker variant, s:molokai_original = 0).
|
|
7
7
|
|
|
8
8
|
Textbringer::Theme.define "molokai" do |t|
|
|
9
9
|
t.palette :dark do |p|
|
|
10
|
-
# Background / foreground
|
|
11
|
-
p.color :bg, hex: "#
|
|
12
|
-
p.color :bg1, hex: "#
|
|
13
|
-
p.color :bg2, hex: "#
|
|
14
|
-
p.color :fg, hex: "#
|
|
15
|
-
p.color :comment, hex: "#
|
|
16
|
-
p.color :gray, hex: "#
|
|
17
|
-
p.color :silver, hex: "#
|
|
18
|
-
p.color :mid_gray, hex: "#
|
|
10
|
+
# Background / foreground
|
|
11
|
+
p.color :bg, hex: "#1b1d1e", ansi: "black" # Normal guibg
|
|
12
|
+
p.color :bg1, hex: "#403d3d", ansi: "brightblack" # Visual guibg
|
|
13
|
+
p.color :bg2, hex: "#1b1d1e", ansi: "black" # floating window bg (same as bg)
|
|
14
|
+
p.color :fg, hex: "#f8f8f2", ansi: "white" # Normal guifg
|
|
15
|
+
p.color :comment, hex: "#7e8e91", ansi: "brightblack" # Comment guifg
|
|
16
|
+
p.color :gray, hex: "#455354", ansi: "brightblack" # StatusLine guifg
|
|
17
|
+
p.color :silver, hex: "#f8f8f2", ansi: "white" # StatusLine guibg = fg
|
|
18
|
+
p.color :mid_gray, hex: "#808080", ansi: "brightblack" # PmenuSel guibg
|
|
19
|
+
p.color :delim, hex: "#8f8f8f", ansi: "white" # Delimiter guifg
|
|
19
20
|
|
|
20
21
|
# Accent colors
|
|
21
|
-
p.color :pink, hex: "#
|
|
22
|
-
p.color :green, hex: "#
|
|
23
|
-
p.color :yellow, hex: "#
|
|
24
|
-
p.color :purple, hex: "#
|
|
25
|
-
p.color :orange, hex: "#
|
|
26
|
-
p.color :cyan, hex: "#
|
|
27
|
-
p.color :search, hex: "#
|
|
22
|
+
p.color :pink, hex: "#f92672", ansi: "red" # Keyword guifg
|
|
23
|
+
p.color :green, hex: "#a6e22e", ansi: "green" # Function guifg
|
|
24
|
+
p.color :yellow, hex: "#e6db74", ansi: "yellow" # String guifg
|
|
25
|
+
p.color :purple, hex: "#ae81ff", ansi: "magenta" # Number guifg
|
|
26
|
+
p.color :orange, hex: "#fd971f", ansi: "yellow" # Identifier guifg
|
|
27
|
+
p.color :cyan, hex: "#66d9ef", ansi: "cyan" # Type guifg
|
|
28
|
+
p.color :search, hex: "#ffe792", ansi: "yellow" # Search guibg
|
|
28
29
|
end
|
|
29
30
|
|
|
30
31
|
t.default_colors foreground: :fg, background: :bg
|
|
@@ -40,22 +41,19 @@ Textbringer::Theme.define "molokai" do |t|
|
|
|
40
41
|
t.face :type, foreground: :cyan
|
|
41
42
|
t.face :variable, foreground: :orange
|
|
42
43
|
t.face :operator, foreground: :pink
|
|
43
|
-
t.face :punctuation
|
|
44
|
+
t.face :punctuation, foreground: :delim
|
|
44
45
|
t.face :builtin, foreground: :cyan
|
|
45
46
|
t.face :property, foreground: :orange
|
|
46
47
|
|
|
47
48
|
# Basic faces
|
|
48
|
-
# StatusLine: ctermfg=238 (#444444) on ctermbg=253 (#DADADA)
|
|
49
49
|
t.face :mode_line, foreground: :gray, background: :silver
|
|
50
50
|
t.face :link, foreground: :cyan, underline: true
|
|
51
51
|
t.face :control
|
|
52
52
|
t.face :region, background: :bg1
|
|
53
|
-
# Search: ctermfg=0 ctermbg=222
|
|
54
53
|
t.face :isearch, foreground: :bg, background: :search
|
|
55
54
|
t.face :floating_window, foreground: :fg, background: :bg2
|
|
56
55
|
|
|
57
56
|
# Completion faces
|
|
58
|
-
# Pmenu: ctermfg=81 ctermbg=16; PmenuSel: ctermfg=252 ctermbg=242
|
|
59
57
|
t.face :completion_popup, foreground: :cyan, background: :bg
|
|
60
58
|
t.face :completion_popup_selected, foreground: :fg, background: :mid_gray
|
|
61
59
|
|
|
@@ -1,29 +1,33 @@
|
|
|
1
1
|
# Sonokai theme for Textbringer (default style)
|
|
2
2
|
# Based on https://github.com/sainnhe/sonokai
|
|
3
3
|
#
|
|
4
|
+
# GUI hex values from the source's default style palette.
|
|
4
5
|
# A dark theme only. Falls back to dark palette on light terminals.
|
|
5
6
|
|
|
6
7
|
Textbringer::Theme.define "sonokai" do |t|
|
|
7
8
|
t.palette :dark do |p|
|
|
8
9
|
# Base tones
|
|
9
|
-
p.color :black, hex: "#
|
|
10
|
-
p.color :bg_dim, hex: "#
|
|
11
|
-
p.color :bg0, hex: "#
|
|
12
|
-
p.color :bg1, hex: "#
|
|
13
|
-
p.color :bg2, hex: "#
|
|
14
|
-
p.color :bg3, hex: "#
|
|
15
|
-
p.color :bg4, hex: "#
|
|
16
|
-
p.color :fg, hex: "#
|
|
17
|
-
p.color :grey, hex: "#
|
|
18
|
-
p.color :grey_dim, hex: "#
|
|
10
|
+
p.color :black, hex: "#181819", ansi: "black"
|
|
11
|
+
p.color :bg_dim, hex: "#222327", ansi: "black"
|
|
12
|
+
p.color :bg0, hex: "#2c2e34", ansi: "black"
|
|
13
|
+
p.color :bg1, hex: "#33353f", ansi: "brightblack"
|
|
14
|
+
p.color :bg2, hex: "#363944", ansi: "brightblack"
|
|
15
|
+
p.color :bg3, hex: "#3b3e48", ansi: "brightblack"
|
|
16
|
+
p.color :bg4, hex: "#414550", ansi: "brightblack"
|
|
17
|
+
p.color :fg, hex: "#e2e2e3", ansi: "white"
|
|
18
|
+
p.color :grey, hex: "#7f8490", ansi: "white"
|
|
19
|
+
p.color :grey_dim, hex: "#595f6f", ansi: "brightblack"
|
|
19
20
|
|
|
20
21
|
# Accent colors
|
|
21
|
-
p.color :red, hex: "#
|
|
22
|
-
p.color :orange, hex: "#
|
|
23
|
-
p.color :yellow, hex: "#
|
|
24
|
-
p.color :green, hex: "#
|
|
25
|
-
p.color :blue, hex: "#
|
|
26
|
-
p.color :purple, hex: "#
|
|
22
|
+
p.color :red, hex: "#fc5d7c", ansi: "red"
|
|
23
|
+
p.color :orange, hex: "#f39660", ansi: "yellow"
|
|
24
|
+
p.color :yellow, hex: "#e7c664", ansi: "yellow"
|
|
25
|
+
p.color :green, hex: "#9ed072", ansi: "green"
|
|
26
|
+
p.color :blue, hex: "#76cce0", ansi: "cyan"
|
|
27
|
+
p.color :purple, hex: "#b39df3", ansi: "magenta"
|
|
28
|
+
|
|
29
|
+
# Filled colors for UI
|
|
30
|
+
p.color :filled_blue, hex: "#85d3f2", ansi: "cyan"
|
|
27
31
|
end
|
|
28
32
|
|
|
29
33
|
t.default_colors foreground: :fg, background: :bg0
|
|
@@ -48,12 +52,12 @@ Textbringer::Theme.define "sonokai" do |t|
|
|
|
48
52
|
t.face :link, foreground: :blue, underline: true
|
|
49
53
|
t.face :control
|
|
50
54
|
t.face :region, background: :bg4
|
|
51
|
-
t.face :isearch, foreground: :
|
|
55
|
+
t.face :isearch, foreground: :green, background: :bg0, reverse: true
|
|
52
56
|
t.face :floating_window, foreground: :fg, background: :bg_dim
|
|
53
57
|
|
|
54
58
|
# Completion faces
|
|
55
59
|
t.face :completion_popup, foreground: :fg, background: :bg2
|
|
56
|
-
t.face :completion_popup_selected, foreground: :bg0, background: :
|
|
60
|
+
t.face :completion_popup_selected, foreground: :bg0, background: :filled_blue
|
|
57
61
|
|
|
58
62
|
# Dired faces
|
|
59
63
|
t.face :dired_directory, foreground: :green
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Tokyo Night theme for Textbringer
|
|
2
2
|
# Based on https://github.com/folke/tokyonight.nvim
|
|
3
|
-
# Night variant (dark only).
|
|
4
|
-
#
|
|
3
|
+
# Night variant (dark only).
|
|
4
|
+
# GUI hex values from the source palette definitions.
|
|
5
5
|
|
|
6
6
|
Textbringer::Theme.define "tokyonight" do |t|
|
|
7
7
|
t.palette :dark do |p|
|
|
@@ -9,7 +9,7 @@ Textbringer::Theme.define "tokyonight" do |t|
|
|
|
9
9
|
p.color :bg, hex: "#1a1b26", ansi: "black" # bg
|
|
10
10
|
p.color :bg_dark, hex: "#16161e", ansi: "black" # bg_dark → popups, statusline
|
|
11
11
|
p.color :bg_hl, hex: "#292e42", ansi: "brightblack" # bg_highlight → floating windows
|
|
12
|
-
p.color :bg_vis, hex: "#
|
|
12
|
+
p.color :bg_vis, hex: "#283357", ansi: "brightblack" # bg_visual = blend(blue0, 0.4, bg)
|
|
13
13
|
p.color :sel_bg, hex: "#343a55", ansi: "brightblack" # PmenuSel bg = blend(fg_gutter, 0.8, bg)
|
|
14
14
|
p.color :search, hex: "#3d59a1", ansi: "blue" # bg_search = blue0
|
|
15
15
|
p.color :fg, hex: "#c0caf5", ansi: "white" # fg
|