diff --git a/config/Kvantum/matugen/matugen.kvconfig b/config/Kvantum/matugen/matugen.kvconfig
index 324618f..86ddbca 100644
--- a/config/Kvantum/matugen/matugen.kvconfig
+++ b/config/Kvantum/matugen/matugen.kvconfig
@@ -76,24 +76,24 @@ menu_blur_radius=10
tooltip_blur_radius=10
[GeneralColors]
-window.color=#18130b
+window.color=#18120b
base.color=#403930
-alt.base.color=#211c14
+alt.base.color=#221c14
button.color=#463f36
light.color=#463f36
mid.light.color=#4f4539
-dark.color=#18130b
-mid.color=#211c14
-highlight.color=#f2be6e
-inactive.highlight.color=#f2be6e
+dark.color=#18120b
+mid.color=#221c14
+highlight.color=#f3bd6e
+inactive.highlight.color=#f3bd6e
text.color=#fff3e6
window.text.color=#fff3e6
button.text.color=#fff3e6
disabled.text.color=#362f27
tooltip.text.color=#fff3e6
highlight.text.color=#fff3e6
-link.color=#f2be6e
-link.visited.color=#b6cea3
+link.color=#f3bd6e
+link.visited.color=#b7cea2
progress.indicator.text.color=#fff3e6
[Hacks]
diff --git a/config/Kvantum/matugen/matugen.svg b/config/Kvantum/matugen/matugen.svg
index 68599e2..0c6bbad 100644
--- a/config/Kvantum/matugen/matugen.svg
+++ b/config/Kvantum/matugen/matugen.svg
@@ -189,7 +189,7 @@
cx="98"
cy="783.99"
r="5"
- fill="#f2be6e" />
+ fill="#f3bd6e" />
@@ -211,7 +211,7 @@
+ fill="#f3bd6e" />
+ fill="#f3bd6e" />
+ fill="#f3bd6e" />
+ fill="#f3bd6e" />
+ fill="#f3bd6e" />
+ fill="#f3bd6e" />
+ fill="#f3bd6e" />
+ fill="#f3bd6e" />
+ fill="#f3bd6e" />
+ fill="#f3bd6e" />
+ fill="#f3bd6e" />
+ fill="#f3bd6e" />
+ fill="#f3bd6e" />
+ fill="#f3bd6e" />
+ fill="#f3bd6e" />
+ fill="#f3bd6e" />
+ fill="#f3bd6e" />
+ fill="#f3bd6e" />
+ fill="#f3bd6e" />
+ fill="#f3bd6e" />
+ fill="#f3bd6e" />
+ fill="#f3bd6e" />
+ fill="#f3bd6e" />
+ fill="#f3bd6e" />
+ style="fill:#18120b;fill-opacity:1" />
+ fill="#f3bd6e" />
+ fill="#f3bd6e" />
+ fill="#f3bd6e" />
+ fill="#f3bd6e" />
+ fill="#f3bd6e" />
+ fill="#f3bd6e" />
+ fill="#18120b" />
+ fill="#18120b" />
+ fill="#18120b" />
+ fill="#18120b" />
+ fill="#18120b" />
+ fill="#18120b" />
+ fill="#18120b" />
+ fill="#18120b" />
+ style="fill:#18120b" />
+ style="fill:#18120b" />
+ style="fill:#18120b" />
+ style="fill:#18120b" />
+ style="fill:#18120b" />
+ style="fill:#18120b" />
+ style="fill:#18120b" />
+ style="stroke-width:0.755923;fill:#18120b;fill-opacity:1" />
+ style="fill:#18120b;fill-opacity:1" />
+ style="fill:#18120b;fill-opacity:1" />
+ style="fill-rule:nonzero;shape-rendering:auto;fill:#18120b;fill-opacity:1" />
+ style="fill-rule:nonzero;shape-rendering:auto;fill:#18120b;fill-opacity:1" />
+ style="fill:#18120b;fill-opacity:1" />
+ style="fill:#18120b;fill-opacity:1" />
+ style="fill:#18120b;fill-opacity:1" />
+ style="fill:#18120b;fill-opacity:1" />
+ style="fill:#18120b;fill-opacity:1" />
+ style="fill:#18120b;fill-opacity:1" />
+ style="fill:#18120b;fill-opacity:1" />
+ style="fill:#18120b;fill-opacity:1" />
@@ -4638,7 +4638,7 @@
id="lineedit-focused"
class="ColorScheme-Highlight"
d="m367.5 22.5v36h48v-36z"
- color="#f2be6e"
+ color="#f3bd6e"
fill="#fff3e6"
opacity=".15"
stroke-width=".86602" />
@@ -4647,7 +4647,7 @@
transform="translate(176.36 -808.36)">
@@ -4673,22 +4673,22 @@
@@ -4697,7 +4697,7 @@
transform="matrix(-1 0 0 1 606.64 -808.36)">
@@ -4723,22 +4723,22 @@
@@ -4748,22 +4748,22 @@
@@ -4773,22 +4773,22 @@
@@ -4797,7 +4797,7 @@
transform="matrix(1 0 0 -1 176.36 889.36)">
@@ -4822,7 +4822,7 @@
transform="rotate(180 303.32 444.68)">
@@ -4846,7 +4846,7 @@
id="lineedit-normal"
class="ColorScheme-Highlight"
d="m291.5 22.5v36h48v-36z"
- color="#f2be6e"
+ color="#f3bd6e"
fill="#fff3e6"
opacity=".1"
stroke-width=".86602" />
@@ -4855,7 +4855,7 @@
transform="translate(100.36 -808.36)">
@@ -4881,7 +4881,7 @@
@@ -4906,7 +4906,7 @@
transform="matrix(-1 0 0 1 530.64 -808.36)">
@@ -4932,7 +4932,7 @@
@@ -4958,7 +4958,7 @@
@@ -4984,7 +4984,7 @@
@@ -5009,7 +5009,7 @@
transform="matrix(1 0 0 -1 100.36 889.36)">
@@ -5034,7 +5034,7 @@
transform="rotate(180 265.32 444.68)">
@@ -5058,7 +5058,7 @@
id="combo-focused"
class="ColorScheme-Highlight"
d="m369.05 94.755v36h48v-36z"
- color="#f2be6e"
+ color="#f3bd6e"
fill="#fff3e6"
opacity=".1"
stroke-width=".86603" />
@@ -5067,7 +5067,7 @@
transform="translate(177.91 -736.1)">
@@ -5287,7 +5287,7 @@
transform="translate(100.91 -736.1)">
@@ -5313,7 +5313,7 @@
@@ -5338,7 +5338,7 @@
transform="matrix(-1 0 0 1 531.19 -736.1)">
@@ -5364,7 +5364,7 @@
@@ -5390,7 +5390,7 @@
@@ -5416,7 +5416,7 @@
@@ -5441,7 +5441,7 @@
transform="matrix(1 0 0 -1 100.91 961.62)">
@@ -5466,7 +5466,7 @@
transform="rotate(180 265.59 480.81)">
@@ -5739,7 +5739,7 @@
id="rect379" />
@@ -5751,7 +5751,7 @@
y="-80"
width="26"
height="6"
- fill="#f2be6e"
+ fill="#f3bd6e"
style="paint-order:markers stroke fill"
id="rect380" />
@@ -5763,7 +5763,7 @@
y="-74"
width="26"
height="26"
- fill="#f2be6e"
+ fill="#f3bd6e"
style="paint-order:markers stroke fill"
id="rect381" />
@@ -6184,7 +6184,7 @@
id="path393" />
@@ -6238,7 +6238,7 @@
y="-74"
width="26"
height="26"
- fill="#18130b"
+ fill="#18120b"
opacity=".8"
id="rect398" />
@@ -6256,7 +6256,7 @@
y="-80"
width="26"
height="6"
- fill="#18130b"
+ fill="#18120b"
opacity=".8"
id="rect399" />
@@ -6483,7 +6483,7 @@
id="path418" />
diff --git a/config/btop/themes/matugen.theme b/config/btop/themes/matugen.theme
index 1fb92e5..20d838a 100644
--- a/config/btop/themes/matugen.theme
+++ b/config/btop/themes/matugen.theme
@@ -16,62 +16,62 @@ theme[main_bg]=""
theme[main_fg]="#fff3e6"
# Title color for boxes
-theme[title]="#f2be6e"
+theme[title]="#f3bd6e"
# Highlight color for keyboard shortcuts
-theme[hi_fg]="#dcc3a1"
+theme[hi_fg]="#ddc2a1"
# Background color of selected item in processes box
-theme[selected_bg]="#f2be6e"
+theme[selected_bg]="#f3bd6e"
# Foreground color of selected item in processes box
-theme[selected_fg]="#2f1d00"
+theme[selected_fg]="#301d00"
# Color of inactive/disabled text
-theme[inactive_fg]="#d2c4b4"
+theme[inactive_fg]="#d3c4b4"
# Misc colors for processes box including mini cpu graphs, details memory graph and details status text
-theme[proc_misc]="#b6cea3"
+theme[proc_misc]="#b7cea2"
# Cpu box outline color
-theme[cpu_box]="#aa9e8e"
+theme[cpu_box]="#ab9e8e"
# Memory/disks box outline color
-theme[mem_box]="#aa9e8e"
+theme[mem_box]="#ab9e8e"
# Net up/down box outline color
-theme[net_box]="#aa9e8e"
+theme[net_box]="#ab9e8e"
# Processes box outline color
-theme[proc_box]="#aa9e8e"
+theme[proc_box]="#ab9e8e"
# Box divider line and small boxes line color
theme[div_line]="#7e7365"
# Temperature graph colors
-theme[temp_start]="#dcc3a1"
-theme[temp_mid]="#f2be6e"
+theme[temp_start]="#ddc2a1"
+theme[temp_mid]="#f3bd6e"
theme[temp_end]="#ffb4ab"
# CPU graph colors
-theme[cpu_start]="#dcc3a1"
-theme[cpu_mid]="#f2be6e"
+theme[cpu_start]="#ddc2a1"
+theme[cpu_mid]="#f3bd6e"
theme[cpu_end]="#ffb4ab"
# Mem/Disk free meter
-theme[free_start]="#dcc3a1"
+theme[free_start]="#ddc2a1"
theme[free_mid]=""
theme[free_end]="#867154"
# Mem/Disk cached meter
-theme[cached_start]="#b6cea3"
+theme[cached_start]="#b7cea2"
theme[cached_mid]=""
-theme[cached_end]="#657b55"
+theme[cached_end]="#667b55"
# Mem/Disk available meter
-theme[available_start]="#f2be6e"
+theme[available_start]="#f3bd6e"
theme[available_mid]=""
-theme[available_end]="#976c25"
+theme[available_end]="#986c25"
# Mem/Disk used meter
theme[used_start]="#ffb4ab"
@@ -79,11 +79,11 @@ theme[used_mid]=""
theme[used_end]="#da342e"
# Download graph colors
-theme[download_start]="#dcc3a1"
-theme[download_mid]="#f2be6e"
-theme[download_end]="#b6cea3"
+theme[download_start]="#ddc2a1"
+theme[download_mid]="#f3bd6e"
+theme[download_end]="#b7cea2"
# Upload graph colors
-theme[upload_start]="#dcc3a1"
-theme[upload_mid]="#f2be6e"
-theme[upload_end]="#b6cea3"
\ No newline at end of file
+theme[upload_start]="#ddc2a1"
+theme[upload_mid]="#f3bd6e"
+theme[upload_end]="#b7cea2"
\ No newline at end of file
diff --git a/config/cava/themes/matugen b/config/cava/themes/matugen
index ba4a929..e9df3d8 100644
--- a/config/cava/themes/matugen
+++ b/config/cava/themes/matugen
@@ -1,19 +1,19 @@
[color]
background = 'default'
-foreground = '#f2be6e'
+foreground = '#f3bd6e'
; gradient = 0
gradient = 1
-gradient_color_1 = '#976c25'
-gradient_color_2 = '#f2be6e'
+gradient_color_1 = '#986c25'
+gradient_color_2 = '#f3bd6e'
gradient_color_3 = '#ffffff'
horizontal_gradient = 0
; horizontal_gradient = 1
-horizontal_gradient_color_1 = '#976c25'
-horizontal_gradient_color_2 = '#f2be6e'
+horizontal_gradient_color_1 = '#986c25'
+horizontal_gradient_color_2 = '#f3bd6e'
horizontal_gradient_color_3 = '#ffffff'
-horizontal_gradient_color_4 = '#f2be6e'
-horizontal_gradient_color_5 = '#976c25'
+horizontal_gradient_color_4 = '#f3bd6e'
+horizontal_gradient_color_5 = '#986c25'
diff --git a/config/clipse/matugen.json b/config/clipse/matugen.json
index ef1ae6c..70e71a8 100644
--- a/config/clipse/matugen.json
+++ b/config/clipse/matugen.json
@@ -1,28 +1,28 @@
{
"useCustom": true,
- "TitleFore": "#2f1d00",
- "TitleBack": "#f2be6e",
- "TitleInfo": "#b6cea3",
+ "TitleFore": "#301d00",
+ "TitleBack": "#f3bd6e",
+ "TitleInfo": "#b7cea2",
"NormalTitle": "#fff3e6",
- "DimmedTitle": "#d2c4b4",
- "SelectedTitle": "#b6cea3",
- "NormalDesc": "#d2c4b4",
- "DimmedDesc": "#d2c4b4",
- "SelectedDesc": "#b6cea3",
- "StatusMsg": "#dcc3a1",
- "PinIndicatorColor": "#b6cea3",
- "SelectedBorder": "#b6cea3",
- "SelectedDescBorder": "#b6cea3",
+ "DimmedTitle": "#d3c4b4",
+ "SelectedTitle": "#b7cea2",
+ "NormalDesc": "#d3c4b4",
+ "DimmedDesc": "#d3c4b4",
+ "SelectedDesc": "#b7cea2",
+ "StatusMsg": "#ddc2a1",
+ "PinIndicatorColor": "#b7cea2",
+ "SelectedBorder": "#b7cea2",
+ "SelectedDescBorder": "#b7cea2",
"FilteredMatch": "#fff3e6",
- "FilterPrompt": "#dcc3a1",
- "FilterInfo": "#b6cea3",
+ "FilterPrompt": "#ddc2a1",
+ "FilterInfo": "#b7cea2",
"FilterText": "#fff3e6",
- "FilterCursor": "#b6cea3",
- "HelpKey": "#aa9e8e",
- "HelpDesc": "#d2c4b4",
- "PageActiveDot": "#b6cea3",
- "PageInactiveDot": "#d2c4b4",
- "DividerDot": "#b6cea3",
+ "FilterCursor": "#b7cea2",
+ "HelpKey": "#ab9e8e",
+ "HelpDesc": "#d3c4b4",
+ "PageActiveDot": "#b7cea2",
+ "PageInactiveDot": "#d3c4b4",
+ "DividerDot": "#b7cea2",
"PreviewedText": "#fff3e6",
- "PreviewBorder": "#b6cea3"
+ "PreviewBorder": "#b7cea2"
}
diff --git a/config/fish/functions/up-or-search.fish b/config/fish/functions/up-or-search.fish
new file mode 100644
index 0000000..9ad2361
--- /dev/null
+++ b/config/fish/functions/up-or-search.fish
@@ -0,0 +1,26 @@
+function up-or-search --description 'Search back or move cursor up 1 line'
+ # If we are already in search mode, continue
+ if commandline --search-mode
+ commandline -f history-search-backward
+ return
+ end
+
+ # If we are navigating the pager, then up always navigates
+ if commandline --paging-mode
+ commandline -f up-line
+ return
+ end
+
+ # We are not already in search mode.
+ # If we are on the top line, start search mode,
+ # otherwise move up
+ set -l lineno (commandline -L)
+
+ switch $lineno
+ case 1
+ commandline -f history-search-backward
+
+ case '*'
+ commandline -f up-line
+ end
+end
diff --git a/config/foot/themes/matugen-theme.ini b/config/foot/themes/matugen-theme.ini
index f582d34..e44d788 100644
--- a/config/foot/themes/matugen-theme.ini
+++ b/config/foot/themes/matugen-theme.ini
@@ -1,28 +1,28 @@
[colors-dark]
-background=18130b
+background=18120b
foreground=fff3e6
-selection-background=976c25
+selection-background=986c25
selection-foreground=ffffff
-regular0=0e0a04
+regular0=0e0904
regular1=ffb4ab
-regular2=b6cea3
-regular3=dcc3a1
-regular4=f2be6e
+regular2=b7cea2
+regular3=ddc2a1
+regular4=f3bd6e
regular5=867154
-regular6=657b55
-regular7=d2c4b4
+regular6=667b55
+regular7=d3c4b4
bright0=352e26
bright1=ffffff
-bright2=0e2004
-bright3=261904
-bright4=976c25
-bright5=6f4a00
+bright2=0f2004
+bright3=271904
+bright4=986c25
+bright5=704a01
bright6=142508
bright7=362f27
-cursor=18130b f2be6e
-16=b6cea3
+cursor=18120b f3bd6e
+16=b7cea2
17=da342e
search-box-no-match=2a241c ffb4ab
-search-box-match=352e26 f2be6e
-jump-labels=2a241c dcc3a1
-urls=f2be6e
+search-box-match=352e26 f3bd6e
+jump-labels=2a241c ddc2a1
+urls=f3bd6e
diff --git a/config/gtk-3.0/colors.css b/config/gtk-3.0/colors.css
index d72f9df..e41f185 100644
--- a/config/gtk-3.0/colors.css
+++ b/config/gtk-3.0/colors.css
@@ -3,18 +3,18 @@
* Generated with Matugen
*/
-@define-color accent_color #f2be6e;
-@define-color accent_fg_color #281800;
-@define-color accent_bg_color #f2be6e;
-@define-color window_bg_color #18130b;
+@define-color accent_color #f3bd6e;
+@define-color accent_fg_color #291800;
+@define-color accent_bg_color #f3bd6e;
+@define-color window_bg_color #18120b;
@define-color window_fg_color #fff3e6;
-@define-color headerbar_bg_color #18130b;
+@define-color headerbar_bg_color #18120b;
@define-color headerbar_fg_color #fff3e6;
-@define-color popover_bg_color #18130b;
+@define-color popover_bg_color #18120b;
@define-color popover_fg_color #fff3e6;
-@define-color view_bg_color #18130b;
+@define-color view_bg_color #18120b;
@define-color view_fg_color #fff3e6;
-@define-color card_bg_color #18130b;
+@define-color card_bg_color #18120b;
@define-color card_fg_color #fff3e6;
@define-color sidebar_bg_color @window_bg_color;
@define-color sidebar_fg_color @window_fg_color;
diff --git a/config/gtk-3.0/colors.css.bak b/config/gtk-3.0/colors.css.bak
index d72f9df..e41f185 100644
--- a/config/gtk-3.0/colors.css.bak
+++ b/config/gtk-3.0/colors.css.bak
@@ -3,18 +3,18 @@
* Generated with Matugen
*/
-@define-color accent_color #f2be6e;
-@define-color accent_fg_color #281800;
-@define-color accent_bg_color #f2be6e;
-@define-color window_bg_color #18130b;
+@define-color accent_color #f3bd6e;
+@define-color accent_fg_color #291800;
+@define-color accent_bg_color #f3bd6e;
+@define-color window_bg_color #18120b;
@define-color window_fg_color #fff3e6;
-@define-color headerbar_bg_color #18130b;
+@define-color headerbar_bg_color #18120b;
@define-color headerbar_fg_color #fff3e6;
-@define-color popover_bg_color #18130b;
+@define-color popover_bg_color #18120b;
@define-color popover_fg_color #fff3e6;
-@define-color view_bg_color #18130b;
+@define-color view_bg_color #18120b;
@define-color view_fg_color #fff3e6;
-@define-color card_bg_color #18130b;
+@define-color card_bg_color #18120b;
@define-color card_fg_color #fff3e6;
@define-color sidebar_bg_color @window_bg_color;
@define-color sidebar_fg_color @window_fg_color;
diff --git a/config/gtk-3.0/colors.css.nak b/config/gtk-3.0/colors.css.nak
index d72f9df..e41f185 100644
--- a/config/gtk-3.0/colors.css.nak
+++ b/config/gtk-3.0/colors.css.nak
@@ -3,18 +3,18 @@
* Generated with Matugen
*/
-@define-color accent_color #f2be6e;
-@define-color accent_fg_color #281800;
-@define-color accent_bg_color #f2be6e;
-@define-color window_bg_color #18130b;
+@define-color accent_color #f3bd6e;
+@define-color accent_fg_color #291800;
+@define-color accent_bg_color #f3bd6e;
+@define-color window_bg_color #18120b;
@define-color window_fg_color #fff3e6;
-@define-color headerbar_bg_color #18130b;
+@define-color headerbar_bg_color #18120b;
@define-color headerbar_fg_color #fff3e6;
-@define-color popover_bg_color #18130b;
+@define-color popover_bg_color #18120b;
@define-color popover_fg_color #fff3e6;
-@define-color view_bg_color #18130b;
+@define-color view_bg_color #18120b;
@define-color view_fg_color #fff3e6;
-@define-color card_bg_color #18130b;
+@define-color card_bg_color #18120b;
@define-color card_fg_color #fff3e6;
@define-color sidebar_bg_color @window_bg_color;
@define-color sidebar_fg_color @window_fg_color;
diff --git a/config/gtk-4.0/colors.css b/config/gtk-4.0/colors.css
index d72f9df..e41f185 100644
--- a/config/gtk-4.0/colors.css
+++ b/config/gtk-4.0/colors.css
@@ -3,18 +3,18 @@
* Generated with Matugen
*/
-@define-color accent_color #f2be6e;
-@define-color accent_fg_color #281800;
-@define-color accent_bg_color #f2be6e;
-@define-color window_bg_color #18130b;
+@define-color accent_color #f3bd6e;
+@define-color accent_fg_color #291800;
+@define-color accent_bg_color #f3bd6e;
+@define-color window_bg_color #18120b;
@define-color window_fg_color #fff3e6;
-@define-color headerbar_bg_color #18130b;
+@define-color headerbar_bg_color #18120b;
@define-color headerbar_fg_color #fff3e6;
-@define-color popover_bg_color #18130b;
+@define-color popover_bg_color #18120b;
@define-color popover_fg_color #fff3e6;
-@define-color view_bg_color #18130b;
+@define-color view_bg_color #18120b;
@define-color view_fg_color #fff3e6;
-@define-color card_bg_color #18130b;
+@define-color card_bg_color #18120b;
@define-color card_fg_color #fff3e6;
@define-color sidebar_bg_color @window_bg_color;
@define-color sidebar_fg_color @window_fg_color;
diff --git a/config/gtk-4.0/colors.css.bak b/config/gtk-4.0/colors.css.bak
index d72f9df..e41f185 100644
--- a/config/gtk-4.0/colors.css.bak
+++ b/config/gtk-4.0/colors.css.bak
@@ -3,18 +3,18 @@
* Generated with Matugen
*/
-@define-color accent_color #f2be6e;
-@define-color accent_fg_color #281800;
-@define-color accent_bg_color #f2be6e;
-@define-color window_bg_color #18130b;
+@define-color accent_color #f3bd6e;
+@define-color accent_fg_color #291800;
+@define-color accent_bg_color #f3bd6e;
+@define-color window_bg_color #18120b;
@define-color window_fg_color #fff3e6;
-@define-color headerbar_bg_color #18130b;
+@define-color headerbar_bg_color #18120b;
@define-color headerbar_fg_color #fff3e6;
-@define-color popover_bg_color #18130b;
+@define-color popover_bg_color #18120b;
@define-color popover_fg_color #fff3e6;
-@define-color view_bg_color #18130b;
+@define-color view_bg_color #18120b;
@define-color view_fg_color #fff3e6;
-@define-color card_bg_color #18130b;
+@define-color card_bg_color #18120b;
@define-color card_fg_color #fff3e6;
@define-color sidebar_bg_color @window_bg_color;
@define-color sidebar_fg_color @window_fg_color;
diff --git a/config/hypr/colors-hyprlock.conf b/config/hypr/colors-hyprlock.conf
index e8bd391..8774939 100644
--- a/config/hypr/colors-hyprlock.conf
+++ b/config/hypr/colors-hyprlock.conf
@@ -7,14 +7,14 @@
# Image Path
-$image = /home/unconfer/.walls/retro/a_logo_with_black_text_and_orange_circles_and_flowers.png
+$image = /home/unconfer/.walls/abstract/a_drawing_of_a_sun_and_a_ball.png
# An alpha background
-$surface_alpha = rgba(18130b4d)
+$surface_alpha = rgba(18120b4d)
# All Colors
-$background = rgba(18130bff)
+$background = rgba(18120bff)
$error = rgba(ffb4abff)
@@ -22,7 +22,7 @@ $error_container = rgba(da342eff)
$inverse_on_surface = rgba(362f27ff)
-$inverse_primary = rgba(6f4a00ff)
+$inverse_primary = rgba(704a01ff)
$inverse_surface = rgba(ede1d4ff)
@@ -32,61 +32,61 @@ $on_error = rgba(4b0002ff)
$on_error_container = rgba(ffffffff)
-$on_primary = rgba(2f1d00ff)
+$on_primary = rgba(301d00ff)
$on_primary_container = rgba(ffffffff)
-$on_primary_fixed = rgba(281800ff)
+$on_primary_fixed = rgba(291800ff)
-$on_primary_fixed_variant = rgba(583a00ff)
+$on_primary_fixed_variant = rgba(593a00ff)
$on_secondary = rgba(2c1e08ff)
$on_secondary_container = rgba(ffffffff)
-$on_secondary_fixed = rgba(261904ff)
+$on_secondary_fixed = rgba(271904ff)
-$on_secondary_fixed_variant = rgba(4e3d24ff)
+$on_secondary_fixed_variant = rgba(4f3d24ff)
$on_surface = rgba(fff3e6ff)
-$on_surface_variant = rgba(d2c4b4ff)
+$on_surface_variant = rgba(d3c4b4ff)
$on_tertiary = rgba(142508ff)
$on_tertiary_container = rgba(ffffffff)
-$on_tertiary_fixed = rgba(0e2004ff)
+$on_tertiary_fixed = rgba(0f2004ff)
-$on_tertiary_fixed_variant = rgba(324625ff)
+$on_tertiary_fixed_variant = rgba(334525ff)
-$outline = rgba(aa9e8eff)
+$outline = rgba(ab9e8eff)
$outline_variant = rgba(7e7365ff)
-$primary = rgba(f2be6eff)
+$primary = rgba(f3bd6eff)
-$primary_container = rgba(976c25ff)
+$primary_container = rgba(986c25ff)
-$primary_fixed = rgba(ffddb0ff)
+$primary_fixed = rgba(ffddb1ff)
-$primary_fixed_dim = rgba(f2be6eff)
+$primary_fixed_dim = rgba(f3bd6eff)
$scrim = rgba(000000ff)
-$secondary = rgba(dcc3a1ff)
+$secondary = rgba(ddc2a1ff)
$secondary_container = rgba(867154ff)
-$secondary_fixed = rgba(f9debbff)
+$secondary_fixed = rgba(fadebcff)
-$secondary_fixed_dim = rgba(dcc3a1ff)
+$secondary_fixed_dim = rgba(ddc2a1ff)
$shadow = rgba(000000ff)
-$source_color = rgba(ac9e8dff)
+$source_color = rgba(89765dff)
-$surface = rgba(18130bff)
+$surface = rgba(18120bff)
$surface_bright = rgba(463f36ff)
@@ -96,21 +96,21 @@ $surface_container_high = rgba(352e26ff)
$surface_container_highest = rgba(403930ff)
-$surface_container_low = rgba(211c14ff)
+$surface_container_low = rgba(221c14ff)
-$surface_container_lowest = rgba(0e0a04ff)
+$surface_container_lowest = rgba(0e0904ff)
-$surface_dim = rgba(18130bff)
+$surface_dim = rgba(18120bff)
-$surface_tint = rgba(f2be6eff)
+$surface_tint = rgba(f3bd6eff)
$surface_variant = rgba(4f4539ff)
-$tertiary = rgba(b6cea3ff)
+$tertiary = rgba(b7cea2ff)
-$tertiary_container = rgba(657b55ff)
+$tertiary_container = rgba(667b55ff)
-$tertiary_fixed = rgba(d2eabdff)
+$tertiary_fixed = rgba(d3eabcff)
-$tertiary_fixed_dim = rgba(b6cea3ff)
+$tertiary_fixed_dim = rgba(b7cea2ff)
diff --git a/config/hypr/colors.conf b/config/hypr/colors.conf
index b5e4cca..9062f60 100644
--- a/config/hypr/colors.conf
+++ b/config/hypr/colors.conf
@@ -1,6 +1,6 @@
-$image = /home/unconfer/.walls/retro/a_logo_with_black_text_and_orange_circles_and_flowers.png
+$image = /home/unconfer/.walls/abstract/a_drawing_of_a_sun_and_a_ball.png
-$background = rgba(18130bff)
+$background = rgba(18120bff)
$error = rgba(ffb4abff)
@@ -8,7 +8,7 @@ $error_container = rgba(da342eff)
$inverse_on_surface = rgba(362f27ff)
-$inverse_primary = rgba(6f4a00ff)
+$inverse_primary = rgba(704a01ff)
$inverse_surface = rgba(ede1d4ff)
@@ -18,61 +18,61 @@ $on_error = rgba(4b0002ff)
$on_error_container = rgba(ffffffff)
-$on_primary = rgba(2f1d00ff)
+$on_primary = rgba(301d00ff)
$on_primary_container = rgba(ffffffff)
-$on_primary_fixed = rgba(281800ff)
+$on_primary_fixed = rgba(291800ff)
-$on_primary_fixed_variant = rgba(583a00ff)
+$on_primary_fixed_variant = rgba(593a00ff)
$on_secondary = rgba(2c1e08ff)
$on_secondary_container = rgba(ffffffff)
-$on_secondary_fixed = rgba(261904ff)
+$on_secondary_fixed = rgba(271904ff)
-$on_secondary_fixed_variant = rgba(4e3d24ff)
+$on_secondary_fixed_variant = rgba(4f3d24ff)
$on_surface = rgba(fff3e6ff)
-$on_surface_variant = rgba(d2c4b4ff)
+$on_surface_variant = rgba(d3c4b4ff)
$on_tertiary = rgba(142508ff)
$on_tertiary_container = rgba(ffffffff)
-$on_tertiary_fixed = rgba(0e2004ff)
+$on_tertiary_fixed = rgba(0f2004ff)
-$on_tertiary_fixed_variant = rgba(324625ff)
+$on_tertiary_fixed_variant = rgba(334525ff)
-$outline = rgba(aa9e8eff)
+$outline = rgba(ab9e8eff)
$outline_variant = rgba(7e7365ff)
-$primary = rgba(f2be6eff)
+$primary = rgba(f3bd6eff)
-$primary_container = rgba(976c25ff)
+$primary_container = rgba(986c25ff)
-$primary_fixed = rgba(ffddb0ff)
+$primary_fixed = rgba(ffddb1ff)
-$primary_fixed_dim = rgba(f2be6eff)
+$primary_fixed_dim = rgba(f3bd6eff)
$scrim = rgba(000000ff)
-$secondary = rgba(dcc3a1ff)
+$secondary = rgba(ddc2a1ff)
$secondary_container = rgba(867154ff)
-$secondary_fixed = rgba(f9debbff)
+$secondary_fixed = rgba(fadebcff)
-$secondary_fixed_dim = rgba(dcc3a1ff)
+$secondary_fixed_dim = rgba(ddc2a1ff)
$shadow = rgba(000000ff)
-$source_color = rgba(ac9e8dff)
+$source_color = rgba(89765dff)
-$surface = rgba(18130bff)
+$surface = rgba(18120bff)
$surface_bright = rgba(463f36ff)
@@ -82,21 +82,21 @@ $surface_container_high = rgba(352e26ff)
$surface_container_highest = rgba(403930ff)
-$surface_container_low = rgba(211c14ff)
+$surface_container_low = rgba(221c14ff)
-$surface_container_lowest = rgba(0e0a04ff)
+$surface_container_lowest = rgba(0e0904ff)
-$surface_dim = rgba(18130bff)
+$surface_dim = rgba(18120bff)
-$surface_tint = rgba(f2be6eff)
+$surface_tint = rgba(f3bd6eff)
$surface_variant = rgba(4f4539ff)
-$tertiary = rgba(b6cea3ff)
+$tertiary = rgba(b7cea2ff)
-$tertiary_container = rgba(657b55ff)
+$tertiary_container = rgba(667b55ff)
-$tertiary_fixed = rgba(d2eabdff)
+$tertiary_fixed = rgba(d3eabcff)
-$tertiary_fixed_dim = rgba(b6cea3ff)
+$tertiary_fixed_dim = rgba(b7cea2ff)
diff --git a/config/hypr/hyprtoolkit.conf b/config/hypr/hyprtoolkit.conf
index 225d38b..a08fd59 100644
--- a/config/hypr/hyprtoolkit.conf
+++ b/config/hypr/hyprtoolkit.conf
@@ -1,7 +1,7 @@
-background = 0xff18130b
+background = 0xff18120b
base = 0xff2a241c
text = 0xfffff3e6
alternate_base = 0xff352e26
-bright_text = 0xffd2c4b4
-accent = 0xfff2be6e
-accent_secondary = 0xffdcc3a1
+bright_text = 0xffd3c4b4
+accent = 0xfff3bd6e
+accent_secondary = 0xffddc2a1
diff --git a/config/hyprwhspr/mic_osd.pid b/config/hyprwhspr/mic_osd.pid
index 426992e..0bc965d 100644
--- a/config/hyprwhspr/mic_osd.pid
+++ b/config/hyprwhspr/mic_osd.pid
@@ -1 +1 @@
-1941
\ No newline at end of file
+1877
\ No newline at end of file
diff --git a/config/ironbar/1 b/config/ironbar/1
new file mode 100644
index 0000000..cf0ef02
--- /dev/null
+++ b/config/ironbar/1
@@ -0,0 +1,102 @@
+:root {
+ --color-dark-primary: #07090b;
+ --color-dark-secondary: #1f2830;
+ --color-white: #eef7fd;
+ --color-active: #00fed4;
+ --color-urgent: #ff0100;
+
+ --margin-lg: 1em;
+ --margin-sm: 0.5em;
+}
+
+* {
+ border-radius: 0;
+ border: none;
+ box-shadow: none;
+ background-image: none;
+ font-family: IosevkaTerm NF;
+}
+
+scale>trough {
+ background-color: var(--color-dark-secondary);
+}
+
+scale>trough>highlight {
+ background-color: var(--color-active);
+ border-style: solid;
+ border-color: var(--color-active);
+ border-width: 0.2em;
+}
+
+scale>trough>slider {
+ background-color: var(--color-white);
+}
+
+switch>slider {
+ background-color: var(--color-white);
+}
+
+switch:checked {
+ background-color: var(--color-active);
+}
+
+switch:not(:checked) {
+ background-color: var(--color-dark-secondary);
+}
+
+#bar,
+popover,
+popover contents,
+calendar {
+ background-color: var(--color-dark-primary);
+}
+
+box,
+button,
+label {
+ background-color: #0000;
+ color: var(--color-white);
+}
+
+button {
+ padding-left: var(--margin-sm);
+ padding-right: var(--margin-sm);
+}
+
+button:hover,
+button:active {
+ background-color: var(--color-dark-secondary);
+}
+
+#end>*+* {
+ margin-left: var(--margin-lg);
+}
+
+.sysinfo>*+* {
+ margin-left: var(--margin-sm);
+}
+
+.clock {
+ font-weight: bold;
+}
+
+.popup-clock .calendar-clock {
+ font-size: 2.0em;
+}
+
+.popup-clock .calendar .today {
+ background-color: var(--color-active);
+}
+
+.workspaces .item.visible {
+ box-shadow: inset 0 -1px var(--color-white);
+}
+
+.workspaces .item.focused {
+ box-shadow: inset 0 -1px var(--color-active);
+ background-color: var(--color-dark-secondary);
+}
+
+.workspaces .item.urgent {
+ background-color: var(--color-urgent);
+}
diff --git a/config/ironbar/colors.css b/config/ironbar/colors.css
index 808102b..d1ed4a3 100644
--- a/config/ironbar/colors.css
+++ b/config/ironbar/colors.css
@@ -1,8 +1,8 @@
:root {
- --color-dark-primary: #18130b;
+ --color-dark-primary: #18120b;
--color-dark-secondary: #2a241c;
--color-white: #fff3e6;
- --color-active: #f2be6e;
+ --color-active: #f3bd6e;
--color-urgent: #da342e;
--margin-lg: 1em;
--margin-sm: 1em;
diff --git a/config/ironbar/config.json b/config/ironbar/config.json
index 4f0a2f1..e74d62d 100644
--- a/config/ironbar/config.json
+++ b/config/ironbar/config.json
@@ -66,42 +66,7 @@
]
},
-{
- "type": "custom",
- "bar": [
- {
- "type": "button",
- "name": "clipboard-custom",
- "class": "clipboard-custom-class",
- "on_click": "!~/.config/ironbar/scripts/clipse.sh",
- "widgets": [
- {
- "type": "label",
- "label": " ",
- "size": 16
- }
- ]
- }
- ]
- },
- {
- "type": "custom",
- "bar": [
- {
- "type": "button",
- "name": "matugen",
- "class": "matugen-class",
- "on_click": "! bash ~/.config/ironbar/scripts/matugen.sh",
- "widgets": [
- {
- "type": "label",
- "label": " ",
- "size": 16
- }
- ]
- }
- ]
- },
+
{
"type": "notifications",
"show_count": true,
diff --git a/config/ironbar/config.json.matugen b/config/ironbar/config.json.matugen
new file mode 100644
index 0000000..21cfbb3
--- /dev/null
+++ b/config/ironbar/config.json.matugen
@@ -0,0 +1,37 @@
+ {
+ "type": "custom",
+ "bar": [
+ {
+ "type": "button",
+ "name": "matugen",
+ "class": "matugen-class",
+ " on_click": "! bash ~/.config/ironbar/scripts/matugen.sh",
+ "widgets": [
+ {
+ "type": "label",
+ "label": " ",
+ "size": 16
+ }
+ ]
+ }
+ ]
+ },
+
+{
+ "type": "custom",
+ "bar": [
+ {
+ "type": "button",
+ "name": "clipboard-custom",
+ "class": "clipboard-custom-class",
+ "on_click": "!~/.config/ironbar/scripts/clipse.sh",
+ "widgets": [
+ {
+ "type": "label",
+ "label": " ",
+ "size": 16
+ }
+ ]
+ }
+ ]
+ },
diff --git a/config/ironbar/schema-v0.18.0.json b/config/ironbar/schema-v0.18.0.json
new file mode 100644
index 0000000..515e14e
--- /dev/null
+++ b/config/ironbar/schema-v0.18.0.json
@@ -0,0 +1,6374 @@
+{
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "title": "Config",
+ "description": "The following is a list of all top-level bar config options.\n\nThese options can either be written at the very top object of your config,\nor within an object in the [monitors](#monitors) config,\ndepending on your [use-case](#2-pick-your-use-case).",
+ "type": "object",
+ "properties": {
+ "anchor_to_edges": {
+ "description": "Whether to anchor the bar to the edges of the screen.\nSetting to false centers the bar.\n\n**Default**: `true`",
+ "type": "boolean",
+ "default": true
+ },
+ "autohide": {
+ "description": "The duration in milliseconds before the bar is hidden after the cursor leaves.\nLeave unset to disable auto-hide behaviour.\n\n**Default**: `null`",
+ "type": [
+ "integer",
+ "null"
+ ],
+ "format": "uint64",
+ "default": null,
+ "minimum": 0
+ },
+ "center": {
+ "description": "An array of modules to append to the center of the bar.\n\n**Default**: `[]`",
+ "type": [
+ "array",
+ "null"
+ ],
+ "items": {
+ "$ref": "#/$defs/ModuleConfig"
+ }
+ },
+ "double_click_time": {
+ "description": "The time in milliseconds to wait for a double-click.\nCan be set to a number (e.g., `250`) or `\"gtk\"` to use GTK's setting.\n\n**Default**: `250`",
+ "$ref": "#/$defs/DoubleClickTime"
+ },
+ "end": {
+ "description": "An array of modules to append to the end of the bar.\nDepending on the orientation, this is either the bottom or right edge.\n\n**Default**: `[]`",
+ "type": [
+ "array",
+ "null"
+ ],
+ "items": {
+ "$ref": "#/$defs/ModuleConfig"
+ }
+ },
+ "exclusive_zone": {
+ "description": "Whether the bar should reserve an exclusive zone around it.\n\nWhen true, this prevents windows from rendering in the same space\nas the bar, causing them to shift.\n\n**Default**: `true` unless `start_hidden` is set.",
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "default": null
+ },
+ "height": {
+ "description": "The bar's height in pixels.\n\nNote that GTK treats this as a target minimum,\nand if content inside the bar is over this,\nit will automatically expand to fit.\n\n**Default**: `42`",
+ "type": "integer",
+ "format": "int32",
+ "default": 42
+ },
+ "icon_overrides": {
+ "description": "Map of app IDs (or classes) to icon names,\noverriding the app's default icon.\n\n**Default**: `{}`",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "default": {}
+ },
+ "icon_theme": {
+ "description": "The name of the GTK icon theme to use.\nLeave unset to use the default system theme.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ],
+ "default": null
+ },
+ "ironvar_defaults": {
+ "description": "A map of [ironvar](ironvar) keys and values\nto initialize Ironbar with on startup.\n\n**Default**: `{}`\n\n# Example\n\nThe following initializes an ironvar called `foo` set to `bar` on startup:\n\n```corn\n{ ironvar_defaults.foo = \"bar\" }\n```\n\nThe variable can then be immediately fetched without needing to be manually set:\n\n```sh\n$ ironbar get foo\nok\nbar\n```",
+ "type": [
+ "object",
+ "null"
+ ],
+ "additionalProperties": {
+ "type": "string"
+ },
+ "default": null
+ },
+ "layer": {
+ "description": "The layer-shell layer to place the bar on.\n\nTaken from the\n[wlr_layer_shell](https://wayland.app/protocols/wlr-layer-shell-unstable-v1#zwlr_layer_shell_v1:enum:layer) definition:\n\n> These values indicate which layers a surface can be rendered in.\n> They are ordered by z depth, bottom-most first.\n> Traditional shell surfaces will typically be rendered between the bottom and top layers.\n> Fullscreen shell surfaces are typically rendered at the top layer.\n> Multiple surfaces can share a single layer, and ordering within a single layer is undefined.\n\n**Valid options**: `background`, `bottom`, `top`, `overlay`\n
\n**Default**: `top`",
+ "type": "string",
+ "enum": [
+ "background",
+ "bottom",
+ "top",
+ "overlay"
+ ]
+ },
+ "margin": {
+ "description": "The margin to use on each side of the bar, in pixels.\nObject which takes `top`, `bottom`, `left` and `right` keys.\n\n**Default**: `0` on all sides.\n\n# Example\n\nThe following would set a 10px margin around each edge.\n\n```corn\n{\n margin.top = 10\n margin.bottom = 10\n margin.left = 10\n margin.right = 10\n}\n```",
+ "$ref": "#/$defs/MarginConfig"
+ },
+ "monitors": {
+ "description": "A map of monitor names to configs.\nMonitor names can be supplied in two formats:\n\n- Connector names (`DP-1`, `HDMI-2`)\n- Descriptions (`ASUSTek COMPUTER INC PA278QV M4LMQS060475`).\n A `starts_with` is applied allowing you to omit part of the description if convenient.\n\nThe config values can be either:\n\n- a single object, which denotes a single bar for that monitor,\n- an array of multiple objects, which denotes multiple for that monitor.\n\nProviding this option overrides the single, global `bar` option.",
+ "type": [
+ "object",
+ "null"
+ ],
+ "additionalProperties": {
+ "$ref": "#/$defs/MonitorConfig"
+ }
+ },
+ "name": {
+ "description": "A unique identifier for the bar, used for controlling it over IPC.\nIf not set, uses a generated integer suffix.\n\n**Default**: `bar-n`",
+ "type": [
+ "string",
+ "null"
+ ],
+ "default": null
+ },
+ "popup_autohide": {
+ "description": "Whether to enable autohide behaviour on the popup.\n\nWhen enabled, clicking outside the popup will close it.\nOn some compositors, this may also aggressively steal mouse/keyboard focus.\n\n**Default**: `false`",
+ "type": "boolean",
+ "default": false
+ },
+ "popup_gap": {
+ "description": "The size of the gap in pixels\nbetween the bar and the popup window.\n\n**Default**: `5`",
+ "type": "integer",
+ "format": "int32",
+ "default": 5
+ },
+ "position": {
+ "description": "The bar's position on screen.\n\n**Valid options**: `top`, `bottom`, `left`, `right`\n
\n**Default**: `bottom`",
+ "$ref": "#/$defs/BarPosition"
+ },
+ "start": {
+ "description": "An array of modules to append to the start of the bar.\nDepending on the orientation, this is either the top of the left edge.\n\n**Default**: `[]`",
+ "type": [
+ "array",
+ "null"
+ ],
+ "items": {
+ "$ref": "#/$defs/ModuleConfig"
+ }
+ },
+ "start_hidden": {
+ "description": "Whether the bar should be hidden when Ironbar starts.\n\n**Default**: `false`, unless `autohide` is set.",
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "default": null
+ }
+ },
+ "$defs": {
+ "AdapterStatus": {
+ "type": "object",
+ "properties": {
+ "disabled": {
+ "description": "The value of `{adapter_status}` formatting token when adapter is disabled.\n\n**Default**: `\"Bluetooth disabled\"`",
+ "type": "string",
+ "default": "Bluetooth disabled"
+ },
+ "disabling": {
+ "description": "The value of `{adapter_status}` formatting token when adapter is disabling.\n\n**Default**: `\"Disabling Bluetooth...\"`",
+ "type": "string",
+ "default": "Disabling Bluetooth..."
+ },
+ "enabled": {
+ "description": "The value of `{adapter_status}` formatting token when adapter is enabled.\n\n**Default**: `\"Bluetooth enabled\"`",
+ "type": "string",
+ "default": "Bluetooth enabled"
+ },
+ "enabling": {
+ "description": "The value of `{adapter_status}` formatting token when adapter is enabling.\n\n**Default**: `\"Enabling Bluetooth...\"`",
+ "type": "string",
+ "default": "Enabling Bluetooth..."
+ },
+ "not_found": {
+ "description": "The value of `{adapter_status}` formatting token when adapter not found.\n\n**Default**: `\"No Bluetooth adapters found\"`",
+ "type": "string",
+ "default": "No Bluetooth adapters found"
+ }
+ }
+ },
+ "BarConfig": {
+ "description": "The following is a list of all top-level bar config options.\n\nThese options can either be written at the very top object of your config,\nor within an object in the [monitors](#monitors) config,\ndepending on your [use-case](#2-pick-your-use-case).",
+ "type": "object",
+ "properties": {
+ "anchor_to_edges": {
+ "description": "Whether to anchor the bar to the edges of the screen.\nSetting to false centers the bar.\n\n**Default**: `true`",
+ "type": "boolean",
+ "default": true
+ },
+ "autohide": {
+ "description": "The duration in milliseconds before the bar is hidden after the cursor leaves.\nLeave unset to disable auto-hide behaviour.\n\n**Default**: `null`",
+ "type": [
+ "integer",
+ "null"
+ ],
+ "format": "uint64",
+ "default": null,
+ "minimum": 0
+ },
+ "center": {
+ "description": "An array of modules to append to the center of the bar.\n\n**Default**: `[]`",
+ "type": [
+ "array",
+ "null"
+ ],
+ "items": {
+ "$ref": "#/$defs/ModuleConfig"
+ }
+ },
+ "end": {
+ "description": "An array of modules to append to the end of the bar.\nDepending on the orientation, this is either the bottom or right edge.\n\n**Default**: `[]`",
+ "type": [
+ "array",
+ "null"
+ ],
+ "items": {
+ "$ref": "#/$defs/ModuleConfig"
+ }
+ },
+ "exclusive_zone": {
+ "description": "Whether the bar should reserve an exclusive zone around it.\n\nWhen true, this prevents windows from rendering in the same space\nas the bar, causing them to shift.\n\n**Default**: `true` unless `start_hidden` is set.",
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "default": null
+ },
+ "height": {
+ "description": "The bar's height in pixels.\n\nNote that GTK treats this as a target minimum,\nand if content inside the bar is over this,\nit will automatically expand to fit.\n\n**Default**: `42`",
+ "type": "integer",
+ "format": "int32",
+ "default": 42
+ },
+ "layer": {
+ "description": "The layer-shell layer to place the bar on.\n\nTaken from the\n[wlr_layer_shell](https://wayland.app/protocols/wlr-layer-shell-unstable-v1#zwlr_layer_shell_v1:enum:layer) definition:\n\n> These values indicate which layers a surface can be rendered in.\n> They are ordered by z depth, bottom-most first.\n> Traditional shell surfaces will typically be rendered between the bottom and top layers.\n> Fullscreen shell surfaces are typically rendered at the top layer.\n> Multiple surfaces can share a single layer, and ordering within a single layer is undefined.\n\n**Valid options**: `background`, `bottom`, `top`, `overlay`\n
\n**Default**: `top`",
+ "type": "string",
+ "enum": [
+ "background",
+ "bottom",
+ "top",
+ "overlay"
+ ]
+ },
+ "margin": {
+ "description": "The margin to use on each side of the bar, in pixels.\nObject which takes `top`, `bottom`, `left` and `right` keys.\n\n**Default**: `0` on all sides.\n\n# Example\n\nThe following would set a 10px margin around each edge.\n\n```corn\n{\n margin.top = 10\n margin.bottom = 10\n margin.left = 10\n margin.right = 10\n}\n```",
+ "$ref": "#/$defs/MarginConfig"
+ },
+ "name": {
+ "description": "A unique identifier for the bar, used for controlling it over IPC.\nIf not set, uses a generated integer suffix.\n\n**Default**: `bar-n`",
+ "type": [
+ "string",
+ "null"
+ ],
+ "default": null
+ },
+ "popup_autohide": {
+ "description": "Whether to enable autohide behaviour on the popup.\n\nWhen enabled, clicking outside the popup will close it.\nOn some compositors, this may also aggressively steal mouse/keyboard focus.\n\n**Default**: `false`",
+ "type": "boolean",
+ "default": false
+ },
+ "popup_gap": {
+ "description": "The size of the gap in pixels\nbetween the bar and the popup window.\n\n**Default**: `5`",
+ "type": "integer",
+ "format": "int32",
+ "default": 5
+ },
+ "position": {
+ "description": "The bar's position on screen.\n\n**Valid options**: `top`, `bottom`, `left`, `right`\n
\n**Default**: `bottom`",
+ "$ref": "#/$defs/BarPosition"
+ },
+ "start": {
+ "description": "An array of modules to append to the start of the bar.\nDepending on the orientation, this is either the top of the left edge.\n\n**Default**: `[]`",
+ "type": [
+ "array",
+ "null"
+ ],
+ "items": {
+ "$ref": "#/$defs/ModuleConfig"
+ }
+ },
+ "start_hidden": {
+ "description": "Whether the bar should be hidden when Ironbar starts.\n\n**Default**: `false`, unless `autohide` is set.",
+ "type": [
+ "boolean",
+ "null"
+ ],
+ "default": null
+ }
+ }
+ },
+ "BarPosition": {
+ "type": "string",
+ "enum": [
+ "top",
+ "bottom",
+ "left",
+ "right"
+ ]
+ },
+ "BatteryModule": {
+ "description": "The following are module-level options which are present on **all** modules.\n\nEach module also provides options specific to its type.\nFor details on those, check the relevant module documentation.\n\nFor information on the Script type, and embedding scripts in strings,\nsee [here](script).\nFor information on styling, please see the [styling guide](styling-guide).",
+ "type": "object",
+ "properties": {
+ "class": {
+ "description": "Sets one or more CSS classes,\nallowing you to target it in CSS using `.class`.\n\nUnlike [name](#name), the `class` property is not expected to be unique.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "disable_popup": {
+ "description": "Prevents the popup from opening on-click for this widget.",
+ "type": "boolean",
+ "default": false
+ },
+ "format": {
+ "description": "The format string to use for the widget button label.\nFor available tokens, see [below](#formatting-tokens).\n\n**Default**: `{percentage}%`",
+ "type": "string",
+ "default": "{percentage}%"
+ },
+ "icon_size": {
+ "description": "The size to render the icon at, in pixels.\n\n**Default**: `24`",
+ "type": "integer",
+ "format": "int32",
+ "default": 24
+ },
+ "justify": {
+ "description": "The justification (alignment) of the widget text shown on the bar.\n\n**Valid options**: `left`, `right`, `center`, `fill`\n
\n**Default**: `left`",
+ "$ref": "#/$defs/ModuleJustification"
+ },
+ "name": {
+ "description": "Sets the unique widget name,\nallowing you to target it in CSS using `#name`.\n\nIt is best practise (although not required) to ensure that the value is\nglobally unique throughout the Ironbar instance\nto avoid clashes.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "on_click_left": {
+ "description": "A [script](scripts) to run when the module is left-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_left = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_left_double": {
+ "description": "A [script](scripts) to run when the module is double-left-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_left_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_middle": {
+ "description": "A [script](scripts) to run when the module is middle-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_click_middle = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_middle_double": {
+ "description": "A [script](scripts) to run when the module is double-middle-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_middle_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_right": {
+ "description": "A [script](scripts) to run when the module is right-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n/// # Example\n\n```corn\n{ on_click_right = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_right_double": {
+ "description": "A [script](scripts) to run when the module is double-right-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_right_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_mouse_enter": {
+ "description": "A [script](scripts) to run when the cursor begins hovering over the module.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_mouse_enter = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_mouse_exit": {
+ "description": "A [script](scripts) to run when the cursor stops hovering over the module.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_mouse_exit = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_scroll_down": {
+ "description": "A [script](scripts) to run when the module is scrolled down on.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_scroll_down = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_scroll_up": {
+ "description": "A [script](scripts) to run when the module is scrolled up on.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_scroll_up = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "orientation": {
+ "description": "The orientation to display the widget contents.\nSetting to vertical will rotate text 90 degrees.\n\n**Valid options**: `horizontal`, `vertical`\n
\n**Default**: `horizontal`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ModuleOrientation"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "show_if": {
+ "description": "Shows the module only if the dynamic boolean evaluates to true.\n\nThis allows for modules to be dynamically shown or hidden\nbased on custom events.\n\n**Default**: `null`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/DynamicBool"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "smooth_scroll_speed": {
+ "description": "A multiplier from `0.0` - `10.0` to control the speed\nof smooth scrolling on trackpad.\n\n**Default**: `1.0`",
+ "type": [
+ "number",
+ "null"
+ ],
+ "format": "double"
+ },
+ "thresholds": {
+ "description": "A map of threshold names to apply as classes,\nagainst the battery percentage at which to apply them.\n\nThresholds work by applying the nearest value\nabove the current percentage, if present.\n\nFor example, using the below config:\n```corn\n{\n end = [\n {\n type = \"battery\"\n format = \"{percentage}%\"\n thresholds.warning = 20\n thresholds.critical = 5\n }\n ]\n}\n```\nAt battery levels below 20%,\nthe `.warning` class will be applied to the top-level widget.\nBelow 5%, `.critical` will be applied instead.\nAbove 20%, no class applies.\n\n**Default**: `{}`",
+ "type": "object",
+ "additionalProperties": {
+ "type": "number",
+ "format": "double"
+ },
+ "default": {}
+ },
+ "tooltip": {
+ "description": "Shows this text on hover.\nSupports embedding scripts between `{{double braces}}`.\n\nNote that full dynamic string support is not currently supported.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transition_duration": {
+ "description": "The length in milliseconds\nof the transition animation to use when showing/hiding the widget.\n\nNote this has no effect if `show_if` is not configured.\n\n**Default**: `250`",
+ "type": [
+ "integer",
+ "null"
+ ],
+ "format": "uint32",
+ "minimum": 0
+ },
+ "transition_type": {
+ "description": "The transition animation to use when showing/hiding the widget.\n\nNote this has no effect if `show_if` is not configured.\n\n**Valid options**: `slide_start`, `slide_end`, `crossfade`, `none`\n
\n**Default**: `slide_start`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/TransitionType"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ }
+ },
+ "Bindmode": {
+ "description": "The following are module-level options which are present on **all** modules.\n\nEach module also provides options specific to its type.\nFor details on those, check the relevant module documentation.\n\nFor information on the Script type, and embedding scripts in strings,\nsee [here](script).\nFor information on styling, please see the [styling guide](styling-guide).",
+ "type": "object",
+ "properties": {
+ "class": {
+ "description": "Sets one or more CSS classes,\nallowing you to target it in CSS using `.class`.\n\nUnlike [name](#name), the `class` property is not expected to be unique.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "disable_popup": {
+ "description": "Prevents the popup from opening on-click for this widget.",
+ "type": "boolean",
+ "default": false
+ },
+ "justify": {
+ "description": "The justification (alignment) of the widget text shown on the bar.\n\n**Valid options**: `left`, `right`, `center`, `fill`\n
\n**Default**: `left`",
+ "$ref": "#/$defs/ModuleJustification"
+ },
+ "name": {
+ "description": "Sets the unique widget name,\nallowing you to target it in CSS using `#name`.\n\nIt is best practise (although not required) to ensure that the value is\nglobally unique throughout the Ironbar instance\nto avoid clashes.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "on_click_left": {
+ "description": "A [script](scripts) to run when the module is left-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_left = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_left_double": {
+ "description": "A [script](scripts) to run when the module is double-left-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_left_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_middle": {
+ "description": "A [script](scripts) to run when the module is middle-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_click_middle = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_middle_double": {
+ "description": "A [script](scripts) to run when the module is double-middle-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_middle_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_right": {
+ "description": "A [script](scripts) to run when the module is right-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n/// # Example\n\n```corn\n{ on_click_right = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_right_double": {
+ "description": "A [script](scripts) to run when the module is double-right-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_right_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_mouse_enter": {
+ "description": "A [script](scripts) to run when the cursor begins hovering over the module.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_mouse_enter = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_mouse_exit": {
+ "description": "A [script](scripts) to run when the cursor stops hovering over the module.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_mouse_exit = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_scroll_down": {
+ "description": "A [script](scripts) to run when the module is scrolled down on.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_scroll_down = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_scroll_up": {
+ "description": "A [script](scripts) to run when the module is scrolled up on.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_scroll_up = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "orientation": {
+ "description": "The orientation to display the widget contents.\nSetting to vertical will rotate text 90 degrees.\n\n**Valid options**: `horizontal`, `vertical`\n
\n**Default**: `horizontal`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ModuleOrientation"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "show_if": {
+ "description": "Shows the module only if the dynamic boolean evaluates to true.\n\nThis allows for modules to be dynamically shown or hidden\nbased on custom events.\n\n**Default**: `null`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/DynamicBool"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "smooth_scroll_speed": {
+ "description": "A multiplier from `0.0` - `10.0` to control the speed\nof smooth scrolling on trackpad.\n\n**Default**: `1.0`",
+ "type": [
+ "number",
+ "null"
+ ],
+ "format": "double"
+ },
+ "tooltip": {
+ "description": "Shows this text on hover.\nSupports embedding scripts between `{{double braces}}`.\n\nNote that full dynamic string support is not currently supported.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transition_duration": {
+ "description": "The length in milliseconds\nof the transition animation to use when showing/hiding the widget.\n\nNote this has no effect if `show_if` is not configured.\n\n**Default**: `250`",
+ "type": [
+ "integer",
+ "null"
+ ],
+ "format": "uint32",
+ "minimum": 0
+ },
+ "transition_type": {
+ "description": "The transition animation to use when showing/hiding the widget.\n\nNote this has no effect if `show_if` is not configured.\n\n**Valid options**: `slide_start`, `slide_end`, `crossfade`, `none`\n
\n**Default**: `slide_start`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/TransitionType"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "truncate": {
+ "description": "See [truncate options](module-level-options#truncate-mode).\n\n**Default**: `null`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/TruncateMode"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ }
+ },
+ "BluetoothModule": {
+ "description": "The following are module-level options which are present on **all** modules.\n\nEach module also provides options specific to its type.\nFor details on those, check the relevant module documentation.\n\nFor information on the Script type, and embedding scripts in strings,\nsee [here](script).\nFor information on styling, please see the [styling guide](styling-guide).",
+ "type": "object",
+ "properties": {
+ "adapter_status": {
+ "description": "Values of `{adapter_status}` formatting token.",
+ "$ref": "#/$defs/AdapterStatus"
+ },
+ "class": {
+ "description": "Sets one or more CSS classes,\nallowing you to target it in CSS using `.class`.\n\nUnlike [name](#name), the `class` property is not expected to be unique.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "device_status": {
+ "description": "Values of `{device_status}` formatting token.",
+ "$ref": "#/$defs/DeviceStatus"
+ },
+ "disable_popup": {
+ "description": "Prevents the popup from opening on-click for this widget.",
+ "type": "boolean",
+ "default": false
+ },
+ "format": {
+ "description": "Format strings for on-bar button.",
+ "$ref": "#/$defs/FormatConfig"
+ },
+ "icon_size": {
+ "description": "Size to render the icons at, in pixels (image icons only).\n\n**Default** `32`",
+ "type": "integer",
+ "format": "int32",
+ "default": 32
+ },
+ "name": {
+ "description": "Sets the unique widget name,\nallowing you to target it in CSS using `#name`.\n\nIt is best practise (although not required) to ensure that the value is\nglobally unique throughout the Ironbar instance\nto avoid clashes.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "on_click_left": {
+ "description": "A [script](scripts) to run when the module is left-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_left = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_left_double": {
+ "description": "A [script](scripts) to run when the module is double-left-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_left_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_middle": {
+ "description": "A [script](scripts) to run when the module is middle-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_click_middle = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_middle_double": {
+ "description": "A [script](scripts) to run when the module is double-middle-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_middle_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_right": {
+ "description": "A [script](scripts) to run when the module is right-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n/// # Example\n\n```corn\n{ on_click_right = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_right_double": {
+ "description": "A [script](scripts) to run when the module is double-right-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_right_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_mouse_enter": {
+ "description": "A [script](scripts) to run when the cursor begins hovering over the module.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_mouse_enter = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_mouse_exit": {
+ "description": "A [script](scripts) to run when the cursor stops hovering over the module.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_mouse_exit = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_scroll_down": {
+ "description": "A [script](scripts) to run when the module is scrolled down on.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_scroll_down = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_scroll_up": {
+ "description": "A [script](scripts) to run when the module is scrolled up on.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_scroll_up = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "popup": {
+ "description": "Popup related configuration.",
+ "$ref": "#/$defs/PopupConfig"
+ },
+ "show_if": {
+ "description": "Shows the module only if the dynamic boolean evaluates to true.\n\nThis allows for modules to be dynamically shown or hidden\nbased on custom events.\n\n**Default**: `null`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/DynamicBool"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "smooth_scroll_speed": {
+ "description": "A multiplier from `0.0` - `10.0` to control the speed\nof smooth scrolling on trackpad.\n\n**Default**: `1.0`",
+ "type": [
+ "number",
+ "null"
+ ],
+ "format": "double"
+ },
+ "tooltip": {
+ "description": "Shows this text on hover.\nSupports embedding scripts between `{{double braces}}`.\n\nNote that full dynamic string support is not currently supported.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transition_duration": {
+ "description": "The length in milliseconds\nof the transition animation to use when showing/hiding the widget.\n\nNote this has no effect if `show_if` is not configured.\n\n**Default**: `250`",
+ "type": [
+ "integer",
+ "null"
+ ],
+ "format": "uint32",
+ "minimum": 0
+ },
+ "transition_type": {
+ "description": "The transition animation to use when showing/hiding the widget.\n\nNote this has no effect if `show_if` is not configured.\n\n**Valid options**: `slide_start`, `slide_end`, `crossfade`, `none`\n
\n**Default**: `slide_start`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/TransitionType"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ }
+ },
+ "BoxWidget": {
+ "type": "object",
+ "properties": {
+ "class": {
+ "description": "Widget class name.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "halign": {
+ "description": "Horizontal alignment of the box relative to its parent.\n\n**Valid options**: `start`, `center`, `end`, `fill`\n**Default**: `fill`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ModuleAlignment"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "name": {
+ "description": "Widget name.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "orientation": {
+ "description": "Whether child widgets should be horizontally or vertically added.\n\n**Valid options**: `horizontal`, `vertical`, `h`, `v`\n**Default**: `horizontal`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ModuleOrientation"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "valign": {
+ "description": "Vertical alignment of the box relative to its parent.\n\n**Valid options**: `start`, `center`, `end`, `fill`\n**Default**: `fill`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ModuleAlignment"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "widgets": {
+ "description": "Modules and widgets to add to this box.\n\n**Default**: `null`",
+ "type": [
+ "array",
+ "null"
+ ],
+ "items": {
+ "$ref": "#/$defs/WidgetConfig"
+ }
+ }
+ }
+ },
+ "ButtonWidget": {
+ "type": "object",
+ "properties": {
+ "class": {
+ "description": "Widget class name.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "justify": {
+ "description": "The justification (alignment) of the widget text shown on the bar.\n\n**Valid options**: `left`, `right`, `center`, `fill`\n
\n**Default**: `left`",
+ "$ref": "#/$defs/ModuleJustification"
+ },
+ "label": {
+ "description": "Widget text label. Pango markup and embedded scripts are supported.\n\nThis is a shorthand for adding a label widget to the button.\nIgnored if `widgets` is set.\n\nThis is a [Dynamic String](dynamic-values#dynamic-string).\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "name": {
+ "description": "Widget name.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "on_click": {
+ "description": "Command to execute. More on this [below](#commands).\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "orientation": {
+ "description": "The orientation to display the widget contents.\nSetting to vertical will rotate text 90 degrees.\n\n**Valid options**: `horizontal`, `vertical`\n
\n**Default**: `horizontal`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ModuleOrientation"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "widgets": {
+ "description": "Modules and widgets to add to this box.\n\n**Default**: `null`",
+ "type": [
+ "array",
+ "null"
+ ],
+ "items": {
+ "$ref": "#/$defs/WidgetConfig"
+ }
+ }
+ }
+ },
+ "CairoModule": {
+ "type": "object",
+ "properties": {
+ "common": {
+ "description": "See [common options](module-level-options#common-options).",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/CommonConfig"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "frequency": {
+ "description": "The number of milliseconds between each draw call.\n\n**Default**: `200`",
+ "type": "integer",
+ "format": "uint64",
+ "default": 200,
+ "minimum": 0
+ },
+ "height": {
+ "description": "The canvas height in pixels.\n\n**Default**: `42`",
+ "type": "integer",
+ "format": "uint32",
+ "default": 42,
+ "minimum": 0
+ },
+ "path": {
+ "description": "The path to the Lua script to load.\nThis can be absolute, or relative to the working directory.\n\nThe script must contain the entry `draw` function.\n\n**Required**",
+ "type": "string",
+ "default": ""
+ },
+ "width": {
+ "description": "The canvas width in pixels.\n\n**Default**: `42`",
+ "type": "integer",
+ "format": "uint32",
+ "default": 42,
+ "minimum": 0
+ }
+ }
+ },
+ "ClipboardModule": {
+ "description": "The following are module-level options which are present on **all** modules.\n\nEach module also provides options specific to its type.\nFor details on those, check the relevant module documentation.\n\nFor information on the Script type, and embedding scripts in strings,\nsee [here](script).\nFor information on styling, please see the [styling guide](styling-guide).",
+ "type": "object",
+ "properties": {
+ "class": {
+ "description": "Sets one or more CSS classes,\nallowing you to target it in CSS using `.class`.\n\nUnlike [name](#name), the `class` property is not expected to be unique.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "disable_popup": {
+ "description": "Prevents the popup from opening on-click for this widget.",
+ "type": "boolean",
+ "default": false
+ },
+ "icon": {
+ "description": "The icon to show on the bar widget button.\nSupports [image](images) icons.\n\n**Default**: ``",
+ "type": "string",
+ "default": ""
+ },
+ "icon_size": {
+ "description": "The size to render the icon at.\nNote this only applies to image-type icons.\n\n**Default**: `32`",
+ "type": "integer",
+ "format": "int32",
+ "default": 32
+ },
+ "image_max_height": {
+ "description": "The maximum height to render copied images at.\n\n**Default**: `64.0`",
+ "type": "number",
+ "format": "double",
+ "default": 64.0
+ },
+ "image_max_width": {
+ "description": "The maximum width to render copied images at.\n\n**Default**: `256.0`",
+ "type": "number",
+ "format": "double",
+ "default": 256.0
+ },
+ "justify": {
+ "description": "The justification (alignment) of the widget text shown on the bar.\n\n**Valid options**: `left`, `right`, `center`, `fill`\n
\n**Default**: `left`",
+ "$ref": "#/$defs/ModuleJustification"
+ },
+ "max_items": {
+ "description": "The maximum number of items to keep in the history,\nand to show in the popup.\n\n**Default**: `10`",
+ "type": "integer",
+ "format": "uint",
+ "default": 10,
+ "minimum": 0
+ },
+ "name": {
+ "description": "Sets the unique widget name,\nallowing you to target it in CSS using `#name`.\n\nIt is best practise (although not required) to ensure that the value is\nglobally unique throughout the Ironbar instance\nto avoid clashes.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "on_click_left": {
+ "description": "A [script](scripts) to run when the module is left-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_left = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_left_double": {
+ "description": "A [script](scripts) to run when the module is double-left-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_left_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_middle": {
+ "description": "A [script](scripts) to run when the module is middle-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_click_middle = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_middle_double": {
+ "description": "A [script](scripts) to run when the module is double-middle-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_middle_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_right": {
+ "description": "A [script](scripts) to run when the module is right-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n/// # Example\n\n```corn\n{ on_click_right = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_right_double": {
+ "description": "A [script](scripts) to run when the module is double-right-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_right_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_mouse_enter": {
+ "description": "A [script](scripts) to run when the cursor begins hovering over the module.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_mouse_enter = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_mouse_exit": {
+ "description": "A [script](scripts) to run when the cursor stops hovering over the module.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_mouse_exit = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_scroll_down": {
+ "description": "A [script](scripts) to run when the module is scrolled down on.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_scroll_down = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_scroll_up": {
+ "description": "A [script](scripts) to run when the module is scrolled up on.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_scroll_up = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "orientation": {
+ "description": "The orientation to display the widget contents.\nSetting to vertical will rotate text 90 degrees.\n\n**Valid options**: `horizontal`, `vertical`\n
\n**Default**: `horizontal`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ModuleOrientation"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "show_if": {
+ "description": "Shows the module only if the dynamic boolean evaluates to true.\n\nThis allows for modules to be dynamically shown or hidden\nbased on custom events.\n\n**Default**: `null`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/DynamicBool"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "smooth_scroll_speed": {
+ "description": "A multiplier from `0.0` - `10.0` to control the speed\nof smooth scrolling on trackpad.\n\n**Default**: `1.0`",
+ "type": [
+ "number",
+ "null"
+ ],
+ "format": "double"
+ },
+ "tooltip": {
+ "description": "Shows this text on hover.\nSupports embedding scripts between `{{double braces}}`.\n\nNote that full dynamic string support is not currently supported.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transition_duration": {
+ "description": "The length in milliseconds\nof the transition animation to use when showing/hiding the widget.\n\nNote this has no effect if `show_if` is not configured.\n\n**Default**: `250`",
+ "type": [
+ "integer",
+ "null"
+ ],
+ "format": "uint32",
+ "minimum": 0
+ },
+ "transition_type": {
+ "description": "The transition animation to use when showing/hiding the widget.\n\nNote this has no effect if `show_if` is not configured.\n\n**Valid options**: `slide_start`, `slide_end`, `crossfade`, `none`\n
\n**Default**: `slide_start`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/TransitionType"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "truncate": {
+ "description": "See [truncate options](module-level-options#truncate-mode).\n\n**Default**: `null`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/TruncateMode"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ }
+ },
+ "ClockModule": {
+ "description": "The following are module-level options which are present on **all** modules.\n\nEach module also provides options specific to its type.\nFor details on those, check the relevant module documentation.\n\nFor information on the Script type, and embedding scripts in strings,\nsee [here](script).\nFor information on styling, please see the [styling guide](styling-guide).",
+ "type": "object",
+ "properties": {
+ "class": {
+ "description": "Sets one or more CSS classes,\nallowing you to target it in CSS using `.class`.\n\nUnlike [name](#name), the `class` property is not expected to be unique.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "disable_popup": {
+ "description": "Prevents the popup from opening on-click for this widget.",
+ "type": "boolean",
+ "default": false
+ },
+ "format": {
+ "description": "The format string to use for the date/time shown on the bar.\nPango markup is supported.\n\nDetail on available tokens can be found here:\n\n\n**Default**: `%d/%m/%Y %H:%M`",
+ "type": "string",
+ "default": "%d/%m/%Y %H:%M"
+ },
+ "format_popup": {
+ "description": "The format string to use for the date/time shown in the popup header.\nPango markup is supported.\n\nDetail on available tokens can be found here:\n\n\n**Default**: `%H:%M:%S`",
+ "type": "string",
+ "default": "%H:%M:%S"
+ },
+ "justify": {
+ "description": "The justification (alignment) of the widget text shown on the bar.\n\n**Valid options**: `left`, `right`, `center`, `fill`\n
\n**Default**: `left`",
+ "$ref": "#/$defs/ModuleJustification"
+ },
+ "locale": {
+ "description": "The locale to use when formatting dates.\n\nNote this will not control the calendar -\nfor that you must set `LC_TIME`.\n\n**Valid options**: See [here](https://docs.rs/pure-rust-locales/0.8.1/pure_rust_locales/enum.Locale.html#variants)\n
\n**Default**: `$LC_TIME` or `$LANG` or `'POSIX'`",
+ "type": "string",
+ "default": "en_GB"
+ },
+ "name": {
+ "description": "Sets the unique widget name,\nallowing you to target it in CSS using `#name`.\n\nIt is best practise (although not required) to ensure that the value is\nglobally unique throughout the Ironbar instance\nto avoid clashes.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "on_click_left": {
+ "description": "A [script](scripts) to run when the module is left-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_left = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_left_double": {
+ "description": "A [script](scripts) to run when the module is double-left-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_left_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_middle": {
+ "description": "A [script](scripts) to run when the module is middle-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_click_middle = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_middle_double": {
+ "description": "A [script](scripts) to run when the module is double-middle-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_middle_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_right": {
+ "description": "A [script](scripts) to run when the module is right-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n/// # Example\n\n```corn\n{ on_click_right = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_right_double": {
+ "description": "A [script](scripts) to run when the module is double-right-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_right_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_mouse_enter": {
+ "description": "A [script](scripts) to run when the cursor begins hovering over the module.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_mouse_enter = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_mouse_exit": {
+ "description": "A [script](scripts) to run when the cursor stops hovering over the module.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_mouse_exit = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_scroll_down": {
+ "description": "A [script](scripts) to run when the module is scrolled down on.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_scroll_down = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_scroll_up": {
+ "description": "A [script](scripts) to run when the module is scrolled up on.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_scroll_up = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "orientation": {
+ "description": "The orientation to display the widget contents.\nSetting to vertical will rotate text 90 degrees.\n\n**Valid options**: `horizontal`, `vertical`\n
\n**Default**: `horizontal`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ModuleOrientation"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "show_if": {
+ "description": "Shows the module only if the dynamic boolean evaluates to true.\n\nThis allows for modules to be dynamically shown or hidden\nbased on custom events.\n\n**Default**: `null`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/DynamicBool"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "smooth_scroll_speed": {
+ "description": "A multiplier from `0.0` - `10.0` to control the speed\nof smooth scrolling on trackpad.\n\n**Default**: `1.0`",
+ "type": [
+ "number",
+ "null"
+ ],
+ "format": "double"
+ },
+ "tooltip": {
+ "description": "Shows this text on hover.\nSupports embedding scripts between `{{double braces}}`.\n\nNote that full dynamic string support is not currently supported.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transition_duration": {
+ "description": "The length in milliseconds\nof the transition animation to use when showing/hiding the widget.\n\nNote this has no effect if `show_if` is not configured.\n\n**Default**: `250`",
+ "type": [
+ "integer",
+ "null"
+ ],
+ "format": "uint32",
+ "minimum": 0
+ },
+ "transition_type": {
+ "description": "The transition animation to use when showing/hiding the widget.\n\nNote this has no effect if `show_if` is not configured.\n\n**Valid options**: `slide_start`, `slide_end`, `crossfade`, `none`\n
\n**Default**: `slide_start`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/TransitionType"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ }
+ },
+ "CommonConfig": {
+ "description": "The following are module-level options which are present on **all** modules.\n\nEach module also provides options specific to its type.\nFor details on those, check the relevant module documentation.\n\nFor information on the Script type, and embedding scripts in strings,\nsee [here](script).\nFor information on styling, please see the [styling guide](styling-guide).",
+ "type": "object",
+ "properties": {
+ "class": {
+ "description": "Sets one or more CSS classes,\nallowing you to target it in CSS using `.class`.\n\nUnlike [name](#name), the `class` property is not expected to be unique.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "disable_popup": {
+ "description": "Prevents the popup from opening on-click for this widget.",
+ "type": "boolean",
+ "default": false
+ },
+ "name": {
+ "description": "Sets the unique widget name,\nallowing you to target it in CSS using `#name`.\n\nIt is best practise (although not required) to ensure that the value is\nglobally unique throughout the Ironbar instance\nto avoid clashes.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "on_click_left": {
+ "description": "A [script](scripts) to run when the module is left-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_left = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_left_double": {
+ "description": "A [script](scripts) to run when the module is double-left-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_left_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_middle": {
+ "description": "A [script](scripts) to run when the module is middle-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_click_middle = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_middle_double": {
+ "description": "A [script](scripts) to run when the module is double-middle-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_middle_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_right": {
+ "description": "A [script](scripts) to run when the module is right-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n/// # Example\n\n```corn\n{ on_click_right = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_right_double": {
+ "description": "A [script](scripts) to run when the module is double-right-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_right_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_mouse_enter": {
+ "description": "A [script](scripts) to run when the cursor begins hovering over the module.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_mouse_enter = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_mouse_exit": {
+ "description": "A [script](scripts) to run when the cursor stops hovering over the module.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_mouse_exit = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_scroll_down": {
+ "description": "A [script](scripts) to run when the module is scrolled down on.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_scroll_down = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_scroll_up": {
+ "description": "A [script](scripts) to run when the module is scrolled up on.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_scroll_up = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "show_if": {
+ "description": "Shows the module only if the dynamic boolean evaluates to true.\n\nThis allows for modules to be dynamically shown or hidden\nbased on custom events.\n\n**Default**: `null`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/DynamicBool"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "smooth_scroll_speed": {
+ "description": "A multiplier from `0.0` - `10.0` to control the speed\nof smooth scrolling on trackpad.\n\n**Default**: `1.0`",
+ "type": [
+ "number",
+ "null"
+ ],
+ "format": "double"
+ },
+ "tooltip": {
+ "description": "Shows this text on hover.\nSupports embedding scripts between `{{double braces}}`.\n\nNote that full dynamic string support is not currently supported.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transition_duration": {
+ "description": "The length in milliseconds\nof the transition animation to use when showing/hiding the widget.\n\nNote this has no effect if `show_if` is not configured.\n\n**Default**: `250`",
+ "type": [
+ "integer",
+ "null"
+ ],
+ "format": "uint32",
+ "minimum": 0
+ },
+ "transition_type": {
+ "description": "The transition animation to use when showing/hiding the widget.\n\nNote this has no effect if `show_if` is not configured.\n\n**Valid options**: `slide_start`, `slide_end`, `crossfade`, `none`\n
\n**Default**: `slide_start`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/TransitionType"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ }
+ },
+ "CustomEntry": {
+ "description": "Individual shell command entry.",
+ "type": "object",
+ "properties": {
+ "icon": {
+ "description": "Name of the image icon to show next to the label.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "label": {
+ "description": "Text to display on the button.",
+ "type": "string",
+ "default": ""
+ },
+ "on_click": {
+ "description": "Shell command to execute when the button is clicked.\nThis is run using `sh -c`.",
+ "type": "string",
+ "default": ""
+ }
+ }
+ },
+ "CustomModule": {
+ "description": "The following are module-level options which are present on **all** modules.\n\nEach module also provides options specific to its type.\nFor details on those, check the relevant module documentation.\n\nFor information on the Script type, and embedding scripts in strings,\nsee [here](script).\nFor information on styling, please see the [styling guide](styling-guide).",
+ "type": "object",
+ "properties": {
+ "bar": {
+ "description": "Modules and widgets to add to the bar container.\n\n**Default**: `[]`",
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/WidgetConfig"
+ }
+ },
+ "class": {
+ "description": "Sets one or more CSS classes,\nallowing you to target it in CSS using `.class`.\n\nUnlike [name](#name), the `class` property is not expected to be unique.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "disable_popup": {
+ "description": "Prevents the popup from opening on-click for this widget.",
+ "type": "boolean",
+ "default": false
+ },
+ "name": {
+ "description": "Sets the unique widget name,\nallowing you to target it in CSS using `#name`.\n\nIt is best practise (although not required) to ensure that the value is\nglobally unique throughout the Ironbar instance\nto avoid clashes.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "on_click_left": {
+ "description": "A [script](scripts) to run when the module is left-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_left = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_left_double": {
+ "description": "A [script](scripts) to run when the module is double-left-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_left_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_middle": {
+ "description": "A [script](scripts) to run when the module is middle-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_click_middle = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_middle_double": {
+ "description": "A [script](scripts) to run when the module is double-middle-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_middle_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_right": {
+ "description": "A [script](scripts) to run when the module is right-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n/// # Example\n\n```corn\n{ on_click_right = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_right_double": {
+ "description": "A [script](scripts) to run when the module is double-right-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_right_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_mouse_enter": {
+ "description": "A [script](scripts) to run when the cursor begins hovering over the module.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_mouse_enter = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_mouse_exit": {
+ "description": "A [script](scripts) to run when the cursor stops hovering over the module.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_mouse_exit = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_scroll_down": {
+ "description": "A [script](scripts) to run when the module is scrolled down on.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_scroll_down = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_scroll_up": {
+ "description": "A [script](scripts) to run when the module is scrolled up on.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_scroll_up = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "popup": {
+ "description": "Modules and widgets to add to the popup container.\n\n**Default**: `null`",
+ "type": [
+ "array",
+ "null"
+ ],
+ "items": {
+ "$ref": "#/$defs/WidgetConfig"
+ }
+ },
+ "show_if": {
+ "description": "Shows the module only if the dynamic boolean evaluates to true.\n\nThis allows for modules to be dynamically shown or hidden\nbased on custom events.\n\n**Default**: `null`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/DynamicBool"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "smooth_scroll_speed": {
+ "description": "A multiplier from `0.0` - `10.0` to control the speed\nof smooth scrolling on trackpad.\n\n**Default**: `1.0`",
+ "type": [
+ "number",
+ "null"
+ ],
+ "format": "double"
+ },
+ "tooltip": {
+ "description": "Shows this text on hover.\nSupports embedding scripts between `{{double braces}}`.\n\nNote that full dynamic string support is not currently supported.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transition_duration": {
+ "description": "The length in milliseconds\nof the transition animation to use when showing/hiding the widget.\n\nNote this has no effect if `show_if` is not configured.\n\n**Default**: `250`",
+ "type": [
+ "integer",
+ "null"
+ ],
+ "format": "uint32",
+ "minimum": 0
+ },
+ "transition_type": {
+ "description": "The transition animation to use when showing/hiding the widget.\n\nNote this has no effect if `show_if` is not configured.\n\n**Valid options**: `slide_start`, `slide_end`, `crossfade`, `none`\n
\n**Default**: `slide_start`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/TransitionType"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "bar"
+ ]
+ },
+ "DeviceStatus": {
+ "type": "object",
+ "properties": {
+ "connected": {
+ "description": "The value of `{device_status}` formatting token when device is connected.\n\n**Default**: `\"Connected\"`",
+ "type": "string",
+ "default": "Connected"
+ },
+ "connecting": {
+ "description": "The value of `{device_status}` formatting token when device is connecting.\n\n**Default**: `\"Connecting...\"`",
+ "type": "string",
+ "default": "Connecting..."
+ },
+ "disconnected": {
+ "description": "The value of `{device_status}` formatting token when device is disconnected.\n\n**Default**: `\"Disconnect\"`",
+ "type": "string",
+ "default": "Disconnected"
+ },
+ "disconnecting": {
+ "description": "The value of `{device_status}` formatting token when device is disconnecting.\n\n**Default**: `\"Disconnecting...\"`",
+ "type": "string",
+ "default": "Disconnecting..."
+ }
+ }
+ },
+ "DoubleClickTime": {
+ "description": "Double-click time configuration",
+ "anyOf": [
+ {
+ "description": "Use GTK's gtk-double-click-time setting",
+ "type": "string",
+ "const": "gtk"
+ },
+ {
+ "description": "Milliseconds",
+ "type": "integer",
+ "format": "uint64",
+ "minimum": 0
+ }
+ ]
+ },
+ "DynamicBool": {
+ "anyOf": [
+ {
+ "description": "Either a script or variable, to be determined.",
+ "type": "string"
+ },
+ {
+ "$ref": "#/$defs/Script"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "EllipsizeMode": {
+ "type": "string",
+ "enum": [
+ "none",
+ "start",
+ "middle",
+ "end"
+ ]
+ },
+ "Favorites": {
+ "anyOf": [
+ {
+ "type": "object",
+ "additionalProperties": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ }
+ ]
+ },
+ "FocusedModule": {
+ "description": "The following are module-level options which are present on **all** modules.\n\nEach module also provides options specific to its type.\nFor details on those, check the relevant module documentation.\n\nFor information on the Script type, and embedding scripts in strings,\nsee [here](script).\nFor information on styling, please see the [styling guide](styling-guide).",
+ "type": "object",
+ "properties": {
+ "class": {
+ "description": "Sets one or more CSS classes,\nallowing you to target it in CSS using `.class`.\n\nUnlike [name](#name), the `class` property is not expected to be unique.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "disable_popup": {
+ "description": "Prevents the popup from opening on-click for this widget.",
+ "type": "boolean",
+ "default": false
+ },
+ "icon_size": {
+ "description": "Icon size in pixels.\n\n**Default**: `32`",
+ "type": "integer",
+ "format": "int32",
+ "default": 32
+ },
+ "justify": {
+ "description": "The justification (alignment) of the widget text shown on the bar.\n\n**Valid options**: `left`, `right`, `center`, `fill`\n
\n**Default**: `left`",
+ "$ref": "#/$defs/ModuleJustification"
+ },
+ "name": {
+ "description": "Sets the unique widget name,\nallowing you to target it in CSS using `#name`.\n\nIt is best practise (although not required) to ensure that the value is\nglobally unique throughout the Ironbar instance\nto avoid clashes.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "on_click_left": {
+ "description": "A [script](scripts) to run when the module is left-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_left = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_left_double": {
+ "description": "A [script](scripts) to run when the module is double-left-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_left_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_middle": {
+ "description": "A [script](scripts) to run when the module is middle-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_click_middle = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_middle_double": {
+ "description": "A [script](scripts) to run when the module is double-middle-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_middle_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_right": {
+ "description": "A [script](scripts) to run when the module is right-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n/// # Example\n\n```corn\n{ on_click_right = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_right_double": {
+ "description": "A [script](scripts) to run when the module is double-right-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_right_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_mouse_enter": {
+ "description": "A [script](scripts) to run when the cursor begins hovering over the module.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_mouse_enter = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_mouse_exit": {
+ "description": "A [script](scripts) to run when the cursor stops hovering over the module.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_mouse_exit = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_scroll_down": {
+ "description": "A [script](scripts) to run when the module is scrolled down on.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_scroll_down = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_scroll_up": {
+ "description": "A [script](scripts) to run when the module is scrolled up on.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_scroll_up = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "orientation": {
+ "description": "The orientation to display the widget contents.\nSetting to vertical will rotate text 90 degrees.\n\n**Valid options**: `horizontal`, `vertical`\n
\n**Default**: `horizontal`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ModuleOrientation"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "show_icon": {
+ "description": "Whether to show icon on the bar.\n\n**Default**: `true`",
+ "type": "boolean",
+ "default": true
+ },
+ "show_if": {
+ "description": "Shows the module only if the dynamic boolean evaluates to true.\n\nThis allows for modules to be dynamically shown or hidden\nbased on custom events.\n\n**Default**: `null`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/DynamicBool"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "show_title": {
+ "description": "Whether to show app name on the bar.\n\n**Default**: `true`",
+ "type": "boolean",
+ "default": true
+ },
+ "smooth_scroll_speed": {
+ "description": "A multiplier from `0.0` - `10.0` to control the speed\nof smooth scrolling on trackpad.\n\n**Default**: `1.0`",
+ "type": [
+ "number",
+ "null"
+ ],
+ "format": "double"
+ },
+ "tooltip": {
+ "description": "Shows this text on hover.\nSupports embedding scripts between `{{double braces}}`.\n\nNote that full dynamic string support is not currently supported.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transition_duration": {
+ "description": "The length in milliseconds\nof the transition animation to use when showing/hiding the widget.\n\nNote this has no effect if `show_if` is not configured.\n\n**Default**: `250`",
+ "type": [
+ "integer",
+ "null"
+ ],
+ "format": "uint32",
+ "minimum": 0
+ },
+ "transition_type": {
+ "description": "The transition animation to use when showing/hiding the widget.\n\nNote this has no effect if `show_if` is not configured.\n\n**Valid options**: `slide_start`, `slide_end`, `crossfade`, `none`\n
\n**Default**: `slide_start`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/TransitionType"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "truncate": {
+ "description": "See [truncate options](module-level-options#truncate-mode).\n\n**Default**: `null`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/TruncateMode"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ }
+ },
+ "FormatConfig": {
+ "type": "object",
+ "properties": {
+ "connected": {
+ "description": "Format string to use for the widget button when bluetooth adapter is enabled and a device is connected.\n\n**Default**: `\" {device_alias}\"`",
+ "type": "string",
+ "default": " {device_alias}"
+ },
+ "connected_battery": {
+ "description": "Format string to use for the widget button when bluetooth adapter is enabled, a device is connected and `{device_battery_percent}` is available.\n\n**Default**: `\" {device_alias} • {device_battery_percent}%\"`",
+ "type": "string",
+ "default": " {device_alias} • {device_battery_percent}%"
+ },
+ "disabled": {
+ "description": "Format string to use for the widget button when bluetooth adapter is disabled.\n\n**Default**: `\" Off\"`",
+ "type": "string",
+ "default": " Off"
+ },
+ "enabled": {
+ "description": "Format string to use for the widget button when bluetooth adapter is enabled but no devices are connected.\n\n**Default**: `\" On\"`",
+ "type": "string",
+ "default": " On"
+ },
+ "not_found": {
+ "description": "Format string to use for the widget button when bluetooth adapter not found.\n\n**Default**: `\"\"`",
+ "type": "string",
+ "default": ""
+ }
+ }
+ },
+ "Icons": {
+ "type": "object",
+ "properties": {
+ "caps_off": {
+ "description": "Icon to show when capslock is disabled.\n\n**Default**: `\"\"`",
+ "type": "string",
+ "default": ""
+ },
+ "caps_on": {
+ "description": "Icon to show when capslock is enabled.\n\n**Default**: ``",
+ "type": "string",
+ "default": ""
+ },
+ "layout_map": {
+ "description": "Map of icons or labels to show for a particular keyboard layout.\n\nIf a layout is not present in the map,\nit will fall back to using its actual name.\n\n**Default**: `{}`\n\n# Example\n\n```corn\n{\n type = \"keyboard\"\n show_layout = true\n icons.layout_map.'English (US)' = \"EN\"\n icons.layout_map.Ukrainian = \"UA\"\n}\n```",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "default": {}
+ },
+ "num_off": {
+ "description": "Icon to show when num lock is disabled.\n\n**Default**: `\"\"`",
+ "type": "string",
+ "default": ""
+ },
+ "num_on": {
+ "description": "Icon to show when num lock is enabled.\n\n**Default**: ``",
+ "type": "string",
+ "default": ""
+ },
+ "scroll_off": {
+ "description": "Icon to show when scroll lock is disabled.\n\n**Default**: `\"\"`",
+ "type": "string",
+ "default": ""
+ },
+ "scroll_on": {
+ "description": "Icon to show when scroll lock is enabled.\n\n**Default**: ``",
+ "type": "string",
+ "default": ""
+ }
+ }
+ },
+ "Icons2": {
+ "type": "object",
+ "properties": {
+ "page_back": {
+ "description": "Icon to show for page back button.\n\n**Default**: ``",
+ "type": "string",
+ "default": ""
+ },
+ "page_forward": {
+ "description": "Icon to show for page back button.\n\n**Default**: `>`",
+ "type": "string",
+ "default": ""
+ }
+ }
+ },
+ "Icons3": {
+ "type": "object",
+ "properties": {
+ "album": {
+ "description": "Icon to display nex to album name.\n\n**Default**: ``",
+ "type": "string",
+ "default": ""
+ },
+ "artist": {
+ "description": "Icon to display nex to artist name.\n\n**Default**: ``",
+ "type": "string",
+ "default": ""
+ },
+ "next": {
+ "description": "Icon to display for next button.\n\n**Default**: ``",
+ "type": "string",
+ "default": ""
+ },
+ "pause": {
+ "description": "Icon to display when paused.\n\n**Default**: ``",
+ "type": "string",
+ "default": ""
+ },
+ "play": {
+ "description": "Icon to display when playing.\n\n**Default**: ``",
+ "type": "string",
+ "default": ""
+ },
+ "prev": {
+ "description": "Icon to display for previous button.\n\n**Default**: ``",
+ "type": "string",
+ "default": ""
+ },
+ "track": {
+ "description": "Icon to display nex to track title.\n\n**Default**: ``",
+ "type": "string",
+ "default": ""
+ },
+ "volume": {
+ "description": "Icon to display under volume slider.\n\n**Default**: ``",
+ "type": "string",
+ "default": ""
+ }
+ }
+ },
+ "Icons4": {
+ "type": "object",
+ "properties": {
+ "closed_dnd": {
+ "description": "Icon to show when the panel is closed, with DnD enabled.\nTakes higher priority than count-based icons.\n\n**Default**: ``",
+ "type": "string",
+ "default": ""
+ },
+ "closed_none": {
+ "description": "Icon to show when the panel is closed, with no notifications.\n\n**Default**: ``",
+ "type": "string",
+ "default": ""
+ },
+ "closed_some": {
+ "description": "Icon to show when the panel is closed, with notifications.\n\n**Default**: ``",
+ "type": "string",
+ "default": ""
+ },
+ "open_dnd": {
+ "description": "Icon to show when the panel is open, with DnD enabled.\nTakes higher priority than count-based icons.\n\n**Default**: ``",
+ "type": "string",
+ "default": ""
+ },
+ "open_none": {
+ "description": "Icon to show when the panel is open, with no notifications.\n\n**Default**: ``",
+ "type": "string",
+ "default": ""
+ },
+ "open_some": {
+ "description": "Icon to show when the panel is open, with notifications.\n\n**Default**: ``",
+ "type": "string",
+ "default": ""
+ }
+ }
+ },
+ "Icons5": {
+ "type": "object",
+ "properties": {
+ "muted": {
+ "description": "Icon to show for muted outputs.\n\n**Default**: ``",
+ "type": "string",
+ "default": ""
+ },
+ "volume_high": {
+ "description": "Icon to show for high volume levels.\n\n**Default**: ``",
+ "type": "string",
+ "default": ""
+ },
+ "volume_low": {
+ "description": "Icon to show for low volume levels.\n\n**Default**: ``",
+ "type": "string",
+ "default": ""
+ },
+ "volume_medium": {
+ "description": "Icon to show for medium volume levels.\n\n**Default**: ``",
+ "type": "string",
+ "default": ""
+ }
+ }
+ },
+ "ImageWidget": {
+ "type": "object",
+ "properties": {
+ "class": {
+ "description": "Widget class name.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ],
+ "default": null
+ },
+ "name": {
+ "description": "Widget name.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ],
+ "default": null
+ },
+ "size": {
+ "description": "The width/height of the image.\nAspect ratio is preserved.\n\n**Default**: `32`",
+ "type": "integer",
+ "format": "int32",
+ "default": 32
+ },
+ "src": {
+ "description": "Image source.\n\nThis is an [image](image) via [Dynamic String](dynamic-values#dynamic-string).\n\n**Required**",
+ "type": "string",
+ "default": ""
+ }
+ }
+ },
+ "Interval": {
+ "anyOf": [
+ {
+ "type": "integer",
+ "format": "uint64",
+ "minimum": 0
+ },
+ {
+ "$ref": "#/$defs/Intervals"
+ }
+ ]
+ },
+ "Intervals": {
+ "type": "object",
+ "properties": {
+ "cpu": {
+ "description": "The number of seconds between refreshing CPU data.\n\n**Default**: `5`",
+ "type": "integer",
+ "format": "uint64",
+ "default": 5,
+ "minimum": 0
+ },
+ "disks": {
+ "description": "The number of seconds between refreshing disk data.\n\n**Default**: `5`",
+ "type": "integer",
+ "format": "uint64",
+ "default": 5,
+ "minimum": 0
+ },
+ "memory": {
+ "description": "The number of seconds between refreshing memory data.\n\n**Default**: `5`",
+ "type": "integer",
+ "format": "uint64",
+ "default": 5,
+ "minimum": 0
+ },
+ "networks": {
+ "description": "The number of seconds between refreshing network data.\n\n**Default**: `5`",
+ "type": "integer",
+ "format": "uint64",
+ "default": 5,
+ "minimum": 0
+ },
+ "system": {
+ "description": "The number of seconds between refreshing system data.\n\n**Default**: `5`",
+ "type": "integer",
+ "format": "uint64",
+ "default": 5,
+ "minimum": 0
+ },
+ "temps": {
+ "description": "The number of seconds between refreshing temperature data.\n\n**Default**: `5`",
+ "type": "integer",
+ "format": "uint64",
+ "default": 5,
+ "minimum": 0
+ }
+ }
+ },
+ "KeyboardModule": {
+ "description": "The following are module-level options which are present on **all** modules.\n\nEach module also provides options specific to its type.\nFor details on those, check the relevant module documentation.\n\nFor information on the Script type, and embedding scripts in strings,\nsee [here](script).\nFor information on styling, please see the [styling guide](styling-guide).",
+ "type": "object",
+ "properties": {
+ "class": {
+ "description": "Sets one or more CSS classes,\nallowing you to target it in CSS using `.class`.\n\nUnlike [name](#name), the `class` property is not expected to be unique.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "disable_popup": {
+ "description": "Prevents the popup from opening on-click for this widget.",
+ "type": "boolean",
+ "default": false
+ },
+ "icon_size": {
+ "description": "Size to render the icons at, in pixels (image icons only).\n\n**Default** `32`",
+ "type": "integer",
+ "format": "int32",
+ "default": 32
+ },
+ "icons": {
+ "description": "Player state icons.\n\nSee [icons](#icons).",
+ "$ref": "#/$defs/Icons"
+ },
+ "justify": {
+ "description": "The justification (alignment) of the widget text shown on the bar.\n\n**Valid options**: `left`, `right`, `center`, `fill`\n
\n**Default**: `left`",
+ "$ref": "#/$defs/ModuleJustification"
+ },
+ "name": {
+ "description": "Sets the unique widget name,\nallowing you to target it in CSS using `#name`.\n\nIt is best practise (although not required) to ensure that the value is\nglobally unique throughout the Ironbar instance\nto avoid clashes.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "on_click_left": {
+ "description": "A [script](scripts) to run when the module is left-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_left = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_left_double": {
+ "description": "A [script](scripts) to run when the module is double-left-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_left_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_middle": {
+ "description": "A [script](scripts) to run when the module is middle-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_click_middle = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_middle_double": {
+ "description": "A [script](scripts) to run when the module is double-middle-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_middle_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_right": {
+ "description": "A [script](scripts) to run when the module is right-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n/// # Example\n\n```corn\n{ on_click_right = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_right_double": {
+ "description": "A [script](scripts) to run when the module is double-right-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_right_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_mouse_enter": {
+ "description": "A [script](scripts) to run when the cursor begins hovering over the module.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_mouse_enter = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_mouse_exit": {
+ "description": "A [script](scripts) to run when the cursor stops hovering over the module.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_mouse_exit = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_scroll_down": {
+ "description": "A [script](scripts) to run when the module is scrolled down on.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_scroll_down = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_scroll_up": {
+ "description": "A [script](scripts) to run when the module is scrolled up on.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_scroll_up = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "orientation": {
+ "description": "The orientation to display the widget contents.\nSetting to vertical will rotate text 90 degrees.\n\n**Valid options**: `horizontal`, `vertical`\n
\n**Default**: `horizontal`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ModuleOrientation"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "seat": {
+ "description": "The Wayland seat to attach to.\nYou almost certainly do not need to change this.\n\n**Default**: `seat0`",
+ "type": "string",
+ "default": "seat0"
+ },
+ "show_caps": {
+ "description": "Whether to show capslock indicator.\n\n**Default**: `true`",
+ "type": "boolean",
+ "default": true
+ },
+ "show_if": {
+ "description": "Shows the module only if the dynamic boolean evaluates to true.\n\nThis allows for modules to be dynamically shown or hidden\nbased on custom events.\n\n**Default**: `null`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/DynamicBool"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "show_layout": {
+ "description": "Whether to show the current keyboard layout.\n\n **Default**: `true`",
+ "type": "boolean",
+ "default": true
+ },
+ "show_num": {
+ "description": "Whether to show num lock indicator.\n\n **Default**: `true`",
+ "type": "boolean",
+ "default": true
+ },
+ "show_scroll": {
+ "description": "Whether to show scroll lock indicator.\n\n **Default**: `true`",
+ "type": "boolean",
+ "default": true
+ },
+ "smooth_scroll_speed": {
+ "description": "A multiplier from `0.0` - `10.0` to control the speed\nof smooth scrolling on trackpad.\n\n**Default**: `1.0`",
+ "type": [
+ "number",
+ "null"
+ ],
+ "format": "double"
+ },
+ "tooltip": {
+ "description": "Shows this text on hover.\nSupports embedding scripts between `{{double braces}}`.\n\nNote that full dynamic string support is not currently supported.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transition_duration": {
+ "description": "The length in milliseconds\nof the transition animation to use when showing/hiding the widget.\n\nNote this has no effect if `show_if` is not configured.\n\n**Default**: `250`",
+ "type": [
+ "integer",
+ "null"
+ ],
+ "format": "uint32",
+ "minimum": 0
+ },
+ "transition_type": {
+ "description": "The transition animation to use when showing/hiding the widget.\n\nNote this has no effect if `show_if` is not configured.\n\n**Valid options**: `slide_start`, `slide_end`, `crossfade`, `none`\n
\n**Default**: `slide_start`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/TransitionType"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ }
+ },
+ "LabelModule": {
+ "description": "The following are module-level options which are present on **all** modules.\n\nEach module also provides options specific to its type.\nFor details on those, check the relevant module documentation.\n\nFor information on the Script type, and embedding scripts in strings,\nsee [here](script).\nFor information on styling, please see the [styling guide](styling-guide).",
+ "type": "object",
+ "properties": {
+ "class": {
+ "description": "Sets one or more CSS classes,\nallowing you to target it in CSS using `.class`.\n\nUnlike [name](#name), the `class` property is not expected to be unique.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "disable_popup": {
+ "description": "Prevents the popup from opening on-click for this widget.",
+ "type": "boolean",
+ "default": false
+ },
+ "justify": {
+ "description": "The justification (alignment) of the widget text shown on the bar.\n\n**Valid options**: `left`, `right`, `center`, `fill`\n
\n**Default**: `left`",
+ "$ref": "#/$defs/ModuleJustification"
+ },
+ "label": {
+ "description": "The text to show on the label.\nThis is a [Dynamic String](dynamic-values#dynamic-string).\n\n**Required**",
+ "type": "string"
+ },
+ "name": {
+ "description": "Sets the unique widget name,\nallowing you to target it in CSS using `#name`.\n\nIt is best practise (although not required) to ensure that the value is\nglobally unique throughout the Ironbar instance\nto avoid clashes.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "on_click_left": {
+ "description": "A [script](scripts) to run when the module is left-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_left = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_left_double": {
+ "description": "A [script](scripts) to run when the module is double-left-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_left_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_middle": {
+ "description": "A [script](scripts) to run when the module is middle-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_click_middle = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_middle_double": {
+ "description": "A [script](scripts) to run when the module is double-middle-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_middle_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_right": {
+ "description": "A [script](scripts) to run when the module is right-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n/// # Example\n\n```corn\n{ on_click_right = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_right_double": {
+ "description": "A [script](scripts) to run when the module is double-right-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_right_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_mouse_enter": {
+ "description": "A [script](scripts) to run when the cursor begins hovering over the module.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_mouse_enter = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_mouse_exit": {
+ "description": "A [script](scripts) to run when the cursor stops hovering over the module.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_mouse_exit = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_scroll_down": {
+ "description": "A [script](scripts) to run when the module is scrolled down on.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_scroll_down = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_scroll_up": {
+ "description": "A [script](scripts) to run when the module is scrolled up on.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_scroll_up = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "orientation": {
+ "description": "The orientation to display the widget contents.\nSetting to vertical will rotate text 90 degrees.\n\n**Valid options**: `horizontal`, `vertical`\n
\n**Default**: `horizontal`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ModuleOrientation"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "show_if": {
+ "description": "Shows the module only if the dynamic boolean evaluates to true.\n\nThis allows for modules to be dynamically shown or hidden\nbased on custom events.\n\n**Default**: `null`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/DynamicBool"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "smooth_scroll_speed": {
+ "description": "A multiplier from `0.0` - `10.0` to control the speed\nof smooth scrolling on trackpad.\n\n**Default**: `1.0`",
+ "type": [
+ "number",
+ "null"
+ ],
+ "format": "double"
+ },
+ "tooltip": {
+ "description": "Shows this text on hover.\nSupports embedding scripts between `{{double braces}}`.\n\nNote that full dynamic string support is not currently supported.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transition_duration": {
+ "description": "The length in milliseconds\nof the transition animation to use when showing/hiding the widget.\n\nNote this has no effect if `show_if` is not configured.\n\n**Default**: `250`",
+ "type": [
+ "integer",
+ "null"
+ ],
+ "format": "uint32",
+ "minimum": 0
+ },
+ "transition_type": {
+ "description": "The transition animation to use when showing/hiding the widget.\n\nNote this has no effect if `show_if` is not configured.\n\n**Valid options**: `slide_start`, `slide_end`, `crossfade`, `none`\n
\n**Default**: `slide_start`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/TransitionType"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "truncate": {
+ "description": "See [truncate options](module-level-options#truncate-mode).\n\n**Default**: `null`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/TruncateMode"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "label"
+ ]
+ },
+ "LabelWidget": {
+ "type": "object",
+ "properties": {
+ "class": {
+ "description": "Widget class name.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "justify": {
+ "description": "The justification (alignment) of the widget text shown on the bar.\n\n**Valid options**: `left`, `right`, `center`, `fill`\n
\n**Default**: `left`",
+ "$ref": "#/$defs/ModuleJustification"
+ },
+ "label": {
+ "description": "Widget text label. Pango markup and embedded scripts are supported.\n\nThis is a [Dynamic String](dynamic-values#dynamic-string).\n\n**Required**",
+ "type": "string"
+ },
+ "name": {
+ "description": "Widget name.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "orientation": {
+ "description": "The orientation to display the widget contents.\nSetting to vertical will rotate text 90 degrees.\n\n**Valid options**: `horizontal`, `vertical`\n
\n**Default**: `horizontal`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ModuleOrientation"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "truncate": {
+ "description": "See [truncate options](module-level-options#truncate-mode).\n\n**Default**: `null`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/TruncateMode"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "label"
+ ]
+ },
+ "LauncherModule": {
+ "description": "The following are module-level options which are present on **all** modules.\n\nEach module also provides options specific to its type.\nFor details on those, check the relevant module documentation.\n\nFor information on the Script type, and embedding scripts in strings,\nsee [here](script).\nFor information on styling, please see the [styling guide](styling-guide).",
+ "type": "object",
+ "properties": {
+ "class": {
+ "description": "Sets one or more CSS classes,\nallowing you to target it in CSS using `.class`.\n\nUnlike [name](#name), the `class` property is not expected to be unique.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "disable_popup": {
+ "description": "Prevents the popup from opening on-click for this widget.",
+ "type": "boolean",
+ "default": false
+ },
+ "favorites": {
+ "description": "List of app IDs (or classes) to always show regardless of open state,\nin the order specified.\n\n**Default**: `null`",
+ "type": [
+ "array",
+ "null"
+ ],
+ "default": null,
+ "items": {
+ "type": "string"
+ }
+ },
+ "icon_size": {
+ "description": "Size in pixels to render icon at (image icons only).\n\n**Default**: `32`",
+ "type": "integer",
+ "format": "int32",
+ "default": 32
+ },
+ "icons": {
+ "description": "Module UI icons (separate from app icons shown for items).\n\nSee [icons](#icons).",
+ "$ref": "#/$defs/Icons2"
+ },
+ "justify": {
+ "description": "The justification (alignment) of the widget text shown on the bar.\n\n**Valid options**: `left`, `right`, `center`, `fill`\n
\n**Default**: `left`",
+ "$ref": "#/$defs/ModuleJustification"
+ },
+ "launch_command": {
+ "description": "Command used to launch applications.\n\n**Default**: `gtk-launch`",
+ "type": "string",
+ "default": "gtk-launch {app_name}"
+ },
+ "minimize_focused": {
+ "description": "Whether to minimize a window if it is focused when clicked.\n\n**Default**: `true`",
+ "type": "boolean",
+ "default": true
+ },
+ "name": {
+ "description": "Sets the unique widget name,\nallowing you to target it in CSS using `#name`.\n\nIt is best practise (although not required) to ensure that the value is\nglobally unique throughout the Ironbar instance\nto avoid clashes.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "on_click_left": {
+ "description": "A [script](scripts) to run when the module is left-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_left = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_left_double": {
+ "description": "A [script](scripts) to run when the module is double-left-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_left_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_middle": {
+ "description": "A [script](scripts) to run when the module is middle-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_click_middle = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_middle_double": {
+ "description": "A [script](scripts) to run when the module is double-middle-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_middle_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_right": {
+ "description": "A [script](scripts) to run when the module is right-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n/// # Example\n\n```corn\n{ on_click_right = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_right_double": {
+ "description": "A [script](scripts) to run when the module is double-right-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_right_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_mouse_enter": {
+ "description": "A [script](scripts) to run when the cursor begins hovering over the module.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_mouse_enter = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_mouse_exit": {
+ "description": "A [script](scripts) to run when the cursor stops hovering over the module.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_mouse_exit = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_scroll_down": {
+ "description": "A [script](scripts) to run when the module is scrolled down on.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_scroll_down = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_scroll_up": {
+ "description": "A [script](scripts) to run when the module is scrolled up on.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_scroll_up = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "orientation": {
+ "description": "The orientation to display the widget contents.\nSetting to vertical will rotate text 90 degrees.\n\n**Valid options**: `horizontal`, `vertical`\n
\n**Default**: `horizontal`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ModuleOrientation"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "page_size": {
+ "description": "The number of items to show on a page.\n\nWhen the number of items reaches the page size,\npagination controls appear at the start of the widget\nwhich can be used to move forward/back through the list of items.\n\nIf there are too many to fit, the overflow will be truncated\nby the next widget.\n\n**Default**: `1000`.",
+ "type": "integer",
+ "format": "uint",
+ "default": 1000,
+ "minimum": 0
+ },
+ "pagination_icon_size": {
+ "description": "Size in pixels to render pagination icons at (image icons only).\n\n**Default**: `16`",
+ "type": "integer",
+ "format": "int32",
+ "default": 16
+ },
+ "reversed": {
+ "description": "Whether items should be added from right-to-left\ninstead of left-to-right.\n\nThis includes favourites.\n\n**Default**: `false`",
+ "type": "boolean",
+ "default": false
+ },
+ "show_icons": {
+ "description": "Whether to show application icons on the bar.\n\n**Default**: `true`",
+ "type": "boolean",
+ "default": true
+ },
+ "show_if": {
+ "description": "Shows the module only if the dynamic boolean evaluates to true.\n\nThis allows for modules to be dynamically shown or hidden\nbased on custom events.\n\n**Default**: `null`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/DynamicBool"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "show_names": {
+ "description": "Whether to show application names on the bar.\n\n**Default**: `false`",
+ "type": "boolean",
+ "default": false
+ },
+ "smooth_scroll_speed": {
+ "description": "A multiplier from `0.0` - `10.0` to control the speed\nof smooth scrolling on trackpad.\n\n**Default**: `1.0`",
+ "type": [
+ "number",
+ "null"
+ ],
+ "format": "double"
+ },
+ "tooltip": {
+ "description": "Shows this text on hover.\nSupports embedding scripts between `{{double braces}}`.\n\nNote that full dynamic string support is not currently supported.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transition_duration": {
+ "description": "The length in milliseconds\nof the transition animation to use when showing/hiding the widget.\n\nNote this has no effect if `show_if` is not configured.\n\n**Default**: `250`",
+ "type": [
+ "integer",
+ "null"
+ ],
+ "format": "uint32",
+ "minimum": 0
+ },
+ "transition_type": {
+ "description": "The transition animation to use when showing/hiding the widget.\n\nNote this has no effect if `show_if` is not configured.\n\n**Valid options**: `slide_start`, `slide_end`, `crossfade`, `none`\n
\n**Default**: `slide_start`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/TransitionType"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "truncate": {
+ "description": "Truncate application names on the bar if they get too long.\nSee [truncate options](module-level-options#truncate-mode).\n\n**Default**: `Auto (end)`",
+ "$ref": "#/$defs/TruncateMode"
+ },
+ "truncate_popup": {
+ "description": "Truncate application names in popups if they get too long.\nSee [truncate options](module-level-options#truncate-mode).\n\n**Default**: `{ mode = \"middle\" max_length = 25 }`",
+ "$ref": "#/$defs/TruncateMode"
+ }
+ }
+ },
+ "MarginConfig": {
+ "type": "object",
+ "properties": {
+ "bottom": {
+ "type": "integer",
+ "format": "int32",
+ "default": 0
+ },
+ "left": {
+ "type": "integer",
+ "format": "int32",
+ "default": 0
+ },
+ "right": {
+ "type": "integer",
+ "format": "int32",
+ "default": 0
+ },
+ "top": {
+ "type": "integer",
+ "format": "int32",
+ "default": 0
+ }
+ }
+ },
+ "MenuConfig": {
+ "description": "An individual entry in the main menu section.",
+ "oneOf": [
+ {
+ "description": "Contains all applications matching the configured `categories`.",
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "xdg_entry"
+ }
+ },
+ "$ref": "#/$defs/XdgEntry",
+ "required": [
+ "type"
+ ]
+ },
+ {
+ "description": "Contains all applications not covered by `xdg_entry` categories.",
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "xdg_other"
+ }
+ },
+ "required": [
+ "type"
+ ]
+ },
+ {
+ "description": "Individual shell command entry.",
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "custom"
+ }
+ },
+ "$ref": "#/$defs/CustomEntry",
+ "required": [
+ "type"
+ ]
+ }
+ ]
+ },
+ "MenuModule": {
+ "description": "The following are module-level options which are present on **all** modules.\n\nEach module also provides options specific to its type.\nFor details on those, check the relevant module documentation.\n\nFor information on the Script type, and embedding scripts in strings,\nsee [here](script).\nFor information on styling, please see the [styling guide](styling-guide).",
+ "type": "object",
+ "properties": {
+ "center": {
+ "description": "Items to add to the start of the main menu.\n\nBy default, this shows a number of XDG entries\nthat should cover all common applications.\n\n**Default**: See `examples/menu/default`",
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/MenuConfig"
+ }
+ },
+ "class": {
+ "description": "Sets one or more CSS classes,\nallowing you to target it in CSS using `.class`.\n\nUnlike [name](#name), the `class` property is not expected to be unique.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "disable_popup": {
+ "description": "Prevents the popup from opening on-click for this widget.",
+ "type": "boolean",
+ "default": false
+ },
+ "end": {
+ "description": "Items to add to the end of the main menu.\n\n**Default**: `[]`",
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/MenuConfig"
+ }
+ },
+ "height": {
+ "description": "Fixed height of the menu.\n\nWhen set, if the number of (sub)menu entries exceeds this value,\na scrollbar will be shown.\n\nLeave null to resize dynamically.\n\n**Default**: `null`",
+ "type": [
+ "integer",
+ "null"
+ ],
+ "format": "int32",
+ "default": null
+ },
+ "label": {
+ "description": "Label to show on the menu button on the bar.\n\n**Default**: `≡`",
+ "type": [
+ "string",
+ "null"
+ ],
+ "default": "≡"
+ },
+ "label_icon": {
+ "description": "Icon to show on the menu button on the bar.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ],
+ "default": null
+ },
+ "label_icon_size": {
+ "description": "Size of the `label_icon` image.",
+ "type": "integer",
+ "format": "int32",
+ "default": 16
+ },
+ "launch_command": {
+ "description": "Command used to launch applications.\n\n**Default**: `gtk-launch`",
+ "type": "string",
+ "default": "gtk-launch {app_name}"
+ },
+ "name": {
+ "description": "Sets the unique widget name,\nallowing you to target it in CSS using `#name`.\n\nIt is best practise (although not required) to ensure that the value is\nglobally unique throughout the Ironbar instance\nto avoid clashes.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "on_click_left": {
+ "description": "A [script](scripts) to run when the module is left-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_left = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_left_double": {
+ "description": "A [script](scripts) to run when the module is double-left-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_left_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_middle": {
+ "description": "A [script](scripts) to run when the module is middle-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_click_middle = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_middle_double": {
+ "description": "A [script](scripts) to run when the module is double-middle-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_middle_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_right": {
+ "description": "A [script](scripts) to run when the module is right-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n/// # Example\n\n```corn\n{ on_click_right = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_right_double": {
+ "description": "A [script](scripts) to run when the module is double-right-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_right_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_mouse_enter": {
+ "description": "A [script](scripts) to run when the cursor begins hovering over the module.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_mouse_enter = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_mouse_exit": {
+ "description": "A [script](scripts) to run when the cursor stops hovering over the module.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_mouse_exit = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_scroll_down": {
+ "description": "A [script](scripts) to run when the module is scrolled down on.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_scroll_down = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_scroll_up": {
+ "description": "A [script](scripts) to run when the module is scrolled up on.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_scroll_up = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "show_if": {
+ "description": "Shows the module only if the dynamic boolean evaluates to true.\n\nThis allows for modules to be dynamically shown or hidden\nbased on custom events.\n\n**Default**: `null`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/DynamicBool"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "smooth_scroll_speed": {
+ "description": "A multiplier from `0.0` - `10.0` to control the speed\nof smooth scrolling on trackpad.\n\n**Default**: `1.0`",
+ "type": [
+ "number",
+ "null"
+ ],
+ "format": "double"
+ },
+ "start": {
+ "description": "Items to add to the start of the main menu.\n\n**Default**: `[]`",
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/MenuConfig"
+ }
+ },
+ "tooltip": {
+ "description": "Shows this text on hover.\nSupports embedding scripts between `{{double braces}}`.\n\nNote that full dynamic string support is not currently supported.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transition_duration": {
+ "description": "The length in milliseconds\nof the transition animation to use when showing/hiding the widget.\n\nNote this has no effect if `show_if` is not configured.\n\n**Default**: `250`",
+ "type": [
+ "integer",
+ "null"
+ ],
+ "format": "uint32",
+ "minimum": 0
+ },
+ "transition_type": {
+ "description": "The transition animation to use when showing/hiding the widget.\n\nNote this has no effect if `show_if` is not configured.\n\n**Valid options**: `slide_start`, `slide_end`, `crossfade`, `none`\n
\n**Default**: `slide_start`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/TransitionType"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "truncate": {
+ "description": "Truncate options to apply to (sub)menu item labels.\n\nSee [truncate options](module-level-options#truncate-mode).\n\n**Default**: `Auto (end)`",
+ "$ref": "#/$defs/TruncateMode"
+ },
+ "width": {
+ "description": "Fixed width of the menu.\n\nCan be used with `truncate` options\nto customise how item labels are truncated.\n\n**Default**: `null`",
+ "type": [
+ "integer",
+ "null"
+ ],
+ "format": "int32",
+ "default": null
+ }
+ }
+ },
+ "ModuleAlignment": {
+ "oneOf": [
+ {
+ "description": "Align widget to the start (left for horizontal, top for vertical).",
+ "type": "string",
+ "const": "start"
+ },
+ {
+ "description": "Align widget to the center.",
+ "type": "string",
+ "const": "center"
+ },
+ {
+ "description": "Align widget to the end (right for horizontal, bottom for vertical).",
+ "type": "string",
+ "const": "end"
+ },
+ {
+ "description": "Stretch widget to fill available space.",
+ "type": "string",
+ "const": "fill"
+ }
+ ]
+ },
+ "ModuleConfig": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "battery"
+ }
+ },
+ "$ref": "#/$defs/BatteryModule",
+ "required": [
+ "type"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "bindmode"
+ }
+ },
+ "$ref": "#/$defs/Bindmode",
+ "required": [
+ "type"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "bluetooth"
+ }
+ },
+ "$ref": "#/$defs/BluetoothModule",
+ "required": [
+ "type"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "cairo"
+ }
+ },
+ "$ref": "#/$defs/CairoModule",
+ "required": [
+ "type"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "clipboard"
+ }
+ },
+ "$ref": "#/$defs/ClipboardModule",
+ "required": [
+ "type"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "clock"
+ }
+ },
+ "$ref": "#/$defs/ClockModule",
+ "required": [
+ "type"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "custom"
+ }
+ },
+ "$ref": "#/$defs/CustomModule",
+ "required": [
+ "type"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "focused"
+ }
+ },
+ "$ref": "#/$defs/FocusedModule",
+ "required": [
+ "type"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "keyboard"
+ }
+ },
+ "$ref": "#/$defs/KeyboardModule",
+ "required": [
+ "type"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "label"
+ }
+ },
+ "$ref": "#/$defs/LabelModule",
+ "required": [
+ "type"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "launcher"
+ }
+ },
+ "$ref": "#/$defs/LauncherModule",
+ "required": [
+ "type"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "menu"
+ }
+ },
+ "$ref": "#/$defs/MenuModule",
+ "required": [
+ "type"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "music"
+ }
+ },
+ "$ref": "#/$defs/MusicModule",
+ "required": [
+ "type"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "network_manager"
+ }
+ },
+ "$ref": "#/$defs/NetworkManagerModule",
+ "required": [
+ "type"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "notifications"
+ }
+ },
+ "$ref": "#/$defs/NotificationsModule",
+ "required": [
+ "type"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "script"
+ }
+ },
+ "$ref": "#/$defs/ScriptModule",
+ "required": [
+ "type"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "sys_info"
+ }
+ },
+ "$ref": "#/$defs/SysInfoModule",
+ "required": [
+ "type"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "tray"
+ }
+ },
+ "$ref": "#/$defs/TrayModule",
+ "required": [
+ "type"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "volume"
+ }
+ },
+ "$ref": "#/$defs/VolumeModule",
+ "required": [
+ "type"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "workspaces"
+ }
+ },
+ "$ref": "#/$defs/WorkspacesModule",
+ "required": [
+ "type"
+ ]
+ }
+ ]
+ },
+ "ModuleJustification": {
+ "type": "string",
+ "enum": [
+ "left",
+ "right",
+ "center",
+ "fill"
+ ]
+ },
+ "ModuleOrientation": {
+ "type": "string",
+ "enum": [
+ "horizontal",
+ "vertical"
+ ]
+ },
+ "MonitorConfig": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "Single": {
+ "$ref": "#/$defs/BarConfig"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Single"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "Multiple": {
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/BarConfig"
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "Multiple"
+ ]
+ }
+ ]
+ },
+ "MusicModule": {
+ "description": "The following are module-level options which are present on **all** modules.\n\nEach module also provides options specific to its type.\nFor details on those, check the relevant module documentation.\n\nFor information on the Script type, and embedding scripts in strings,\nsee [here](script).\nFor information on styling, please see the [styling guide](styling-guide).",
+ "type": "object",
+ "properties": {
+ "class": {
+ "description": "Sets one or more CSS classes,\nallowing you to target it in CSS using `.class`.\n\nUnlike [name](#name), the `class` property is not expected to be unique.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "cover_image_size": {
+ "description": "Size to render the album art image at inside the popup, in pixels.\n\n**Default**: `128`",
+ "type": "integer",
+ "format": "int32",
+ "default": 128
+ },
+ "disable_popup": {
+ "description": "Prevents the popup from opening on-click for this widget.",
+ "type": "boolean",
+ "default": false
+ },
+ "format": {
+ "description": "Format of current song info to display on the bar.\n\nInfo on formatting tokens [below](#formatting-tokens).\n\n**Default**: `{title} / {artist}`",
+ "type": "string",
+ "default": "{title} / {artist}"
+ },
+ "host": {
+ "description": "*[MPD Only]*\nTCP or Unix socket address of the MPD server.\nFor TCP, this should include the port number.\n\n**Default**: `localhost:6600`",
+ "type": "string",
+ "default": "localhost:6600"
+ },
+ "icon_size": {
+ "description": "Size to render the icons at, in pixels (image icons only).\n\n**Default** `32`",
+ "type": "integer",
+ "format": "int32",
+ "default": 32
+ },
+ "icons": {
+ "description": "Player state icons.\n\nSee [icons](#icons).",
+ "$ref": "#/$defs/Icons3"
+ },
+ "justify": {
+ "description": "The justification (alignment) of the widget text shown on the bar.\n\n**Valid options**: `left`, `right`, `center`, `fill`\n
\n**Default**: `left`",
+ "$ref": "#/$defs/ModuleJustification"
+ },
+ "music_dir": {
+ "description": "*[MPD Only]*\nPath to root of the MPD server's music directory.\nThis is required for displaying album art.\n\n**Default**: `$HOME/Music`",
+ "type": "string",
+ "default": "/home/jake/Music"
+ },
+ "name": {
+ "description": "Sets the unique widget name,\nallowing you to target it in CSS using `#name`.\n\nIt is best practise (although not required) to ensure that the value is\nglobally unique throughout the Ironbar instance\nto avoid clashes.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "on_click_left": {
+ "description": "A [script](scripts) to run when the module is left-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_left = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_left_double": {
+ "description": "A [script](scripts) to run when the module is double-left-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_left_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_middle": {
+ "description": "A [script](scripts) to run when the module is middle-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_click_middle = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_middle_double": {
+ "description": "A [script](scripts) to run when the module is double-middle-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_middle_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_right": {
+ "description": "A [script](scripts) to run when the module is right-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n/// # Example\n\n```corn\n{ on_click_right = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_right_double": {
+ "description": "A [script](scripts) to run when the module is double-right-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_right_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_mouse_enter": {
+ "description": "A [script](scripts) to run when the cursor begins hovering over the module.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_mouse_enter = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_mouse_exit": {
+ "description": "A [script](scripts) to run when the cursor stops hovering over the module.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_mouse_exit = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_scroll_down": {
+ "description": "A [script](scripts) to run when the module is scrolled down on.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_scroll_down = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_scroll_up": {
+ "description": "A [script](scripts) to run when the module is scrolled up on.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_scroll_up = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "orientation": {
+ "description": "The orientation to display the widget contents.\nSetting to vertical will rotate text 90 degrees.\n\n**Valid options**: `horizontal`, `vertical`\n
\n**Default**: `horizontal`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ModuleOrientation"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "player_type": {
+ "description": "Type of player to connect to",
+ "$ref": "#/$defs/PlayerType"
+ },
+ "show_if": {
+ "description": "Shows the module only if the dynamic boolean evaluates to true.\n\nThis allows for modules to be dynamically shown or hidden\nbased on custom events.\n\n**Default**: `null`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/DynamicBool"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "show_status_icon": {
+ "description": "Whether to show the play/pause status icon\non the bar.\n\n**Default**: `true`",
+ "type": "boolean",
+ "default": true
+ },
+ "smooth_scroll_speed": {
+ "description": "A multiplier from `0.0` - `10.0` to control the speed\nof smooth scrolling on trackpad.\n\n**Default**: `1.0`",
+ "type": [
+ "number",
+ "null"
+ ],
+ "format": "double"
+ },
+ "tooltip": {
+ "description": "Shows this text on hover.\nSupports embedding scripts between `{{double braces}}`.\n\nNote that full dynamic string support is not currently supported.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transition_duration": {
+ "description": "The length in milliseconds\nof the transition animation to use when showing/hiding the widget.\n\nNote this has no effect if `show_if` is not configured.\n\n**Default**: `250`",
+ "type": [
+ "integer",
+ "null"
+ ],
+ "format": "uint32",
+ "minimum": 0
+ },
+ "transition_type": {
+ "description": "The transition animation to use when showing/hiding the widget.\n\nNote this has no effect if `show_if` is not configured.\n\n**Valid options**: `slide_start`, `slide_end`, `crossfade`, `none`\n
\n**Default**: `slide_start`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/TransitionType"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "truncate": {
+ "description": "See [truncate options](module-level-options#truncate-mode).\n\n**Default**: `null`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/TruncateMode"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "truncate_popup_album": {
+ "description": "See [truncate options](module-level-options#truncate-mode).\n\n**Default**: `null`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/TruncateMode"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "truncate_popup_artist": {
+ "description": "See [truncate options](module-level-options#truncate-mode).\n\n**Default**: `null`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/TruncateMode"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "truncate_popup_title": {
+ "description": "See [truncate options](module-level-options#truncate-mode).\n\n**Default**: `null`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/TruncateMode"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ }
+ },
+ "NetworkManagerModule": {
+ "description": "The following are module-level options which are present on **all** modules.\n\nEach module also provides options specific to its type.\nFor details on those, check the relevant module documentation.\n\nFor information on the Script type, and embedding scripts in strings,\nsee [here](script).\nFor information on styling, please see the [styling guide](styling-guide).",
+ "type": "object",
+ "properties": {
+ "class": {
+ "description": "Sets one or more CSS classes,\nallowing you to target it in CSS using `.class`.\n\nUnlike [name](#name), the `class` property is not expected to be unique.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "disable_popup": {
+ "description": "Prevents the popup from opening on-click for this widget.",
+ "type": "boolean",
+ "default": false
+ },
+ "icon_size": {
+ "type": "integer",
+ "format": "int32",
+ "default": 24
+ },
+ "name": {
+ "description": "Sets the unique widget name,\nallowing you to target it in CSS using `#name`.\n\nIt is best practise (although not required) to ensure that the value is\nglobally unique throughout the Ironbar instance\nto avoid clashes.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "on_click_left": {
+ "description": "A [script](scripts) to run when the module is left-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_left = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_left_double": {
+ "description": "A [script](scripts) to run when the module is double-left-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_left_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_middle": {
+ "description": "A [script](scripts) to run when the module is middle-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_click_middle = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_middle_double": {
+ "description": "A [script](scripts) to run when the module is double-middle-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_middle_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_right": {
+ "description": "A [script](scripts) to run when the module is right-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n/// # Example\n\n```corn\n{ on_click_right = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_right_double": {
+ "description": "A [script](scripts) to run when the module is double-right-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_right_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_mouse_enter": {
+ "description": "A [script](scripts) to run when the cursor begins hovering over the module.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_mouse_enter = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_mouse_exit": {
+ "description": "A [script](scripts) to run when the cursor stops hovering over the module.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_mouse_exit = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_scroll_down": {
+ "description": "A [script](scripts) to run when the module is scrolled down on.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_scroll_down = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_scroll_up": {
+ "description": "A [script](scripts) to run when the module is scrolled up on.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_scroll_up = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "show_if": {
+ "description": "Shows the module only if the dynamic boolean evaluates to true.\n\nThis allows for modules to be dynamically shown or hidden\nbased on custom events.\n\n**Default**: `null`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/DynamicBool"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "smooth_scroll_speed": {
+ "description": "A multiplier from `0.0` - `10.0` to control the speed\nof smooth scrolling on trackpad.\n\n**Default**: `1.0`",
+ "type": [
+ "number",
+ "null"
+ ],
+ "format": "double"
+ },
+ "tooltip": {
+ "description": "Shows this text on hover.\nSupports embedding scripts between `{{double braces}}`.\n\nNote that full dynamic string support is not currently supported.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transition_duration": {
+ "description": "The length in milliseconds\nof the transition animation to use when showing/hiding the widget.\n\nNote this has no effect if `show_if` is not configured.\n\n**Default**: `250`",
+ "type": [
+ "integer",
+ "null"
+ ],
+ "format": "uint32",
+ "minimum": 0
+ },
+ "transition_type": {
+ "description": "The transition animation to use when showing/hiding the widget.\n\nNote this has no effect if `show_if` is not configured.\n\n**Valid options**: `slide_start`, `slide_end`, `crossfade`, `none`\n
\n**Default**: `slide_start`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/TransitionType"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ }
+ },
+ "NotificationsModule": {
+ "description": "The following are module-level options which are present on **all** modules.\n\nEach module also provides options specific to its type.\nFor details on those, check the relevant module documentation.\n\nFor information on the Script type, and embedding scripts in strings,\nsee [here](script).\nFor information on styling, please see the [styling guide](styling-guide).",
+ "type": "object",
+ "properties": {
+ "class": {
+ "description": "Sets one or more CSS classes,\nallowing you to target it in CSS using `.class`.\n\nUnlike [name](#name), the `class` property is not expected to be unique.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "disable_popup": {
+ "description": "Prevents the popup from opening on-click for this widget.",
+ "type": "boolean",
+ "default": false
+ },
+ "icons": {
+ "description": "SwayNC state icons.\n\nSee [icons](#icons).",
+ "$ref": "#/$defs/Icons4"
+ },
+ "name": {
+ "description": "Sets the unique widget name,\nallowing you to target it in CSS using `#name`.\n\nIt is best practise (although not required) to ensure that the value is\nglobally unique throughout the Ironbar instance\nto avoid clashes.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "on_click_left": {
+ "description": "A [script](scripts) to run when the module is left-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_left = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_left_double": {
+ "description": "A [script](scripts) to run when the module is double-left-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_left_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_middle": {
+ "description": "A [script](scripts) to run when the module is middle-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_click_middle = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_middle_double": {
+ "description": "A [script](scripts) to run when the module is double-middle-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_middle_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_right": {
+ "description": "A [script](scripts) to run when the module is right-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n/// # Example\n\n```corn\n{ on_click_right = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_right_double": {
+ "description": "A [script](scripts) to run when the module is double-right-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_right_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_mouse_enter": {
+ "description": "A [script](scripts) to run when the cursor begins hovering over the module.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_mouse_enter = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_mouse_exit": {
+ "description": "A [script](scripts) to run when the cursor stops hovering over the module.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_mouse_exit = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_scroll_down": {
+ "description": "A [script](scripts) to run when the module is scrolled down on.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_scroll_down = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_scroll_up": {
+ "description": "A [script](scripts) to run when the module is scrolled up on.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_scroll_up = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "show_count": {
+ "description": "Whether to show the current notification count.\n\n**Default**: `true`",
+ "type": "boolean",
+ "default": true
+ },
+ "show_if": {
+ "description": "Shows the module only if the dynamic boolean evaluates to true.\n\nThis allows for modules to be dynamically shown or hidden\nbased on custom events.\n\n**Default**: `null`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/DynamicBool"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "smooth_scroll_speed": {
+ "description": "A multiplier from `0.0` - `10.0` to control the speed\nof smooth scrolling on trackpad.\n\n**Default**: `1.0`",
+ "type": [
+ "number",
+ "null"
+ ],
+ "format": "double"
+ },
+ "tooltip": {
+ "description": "Shows this text on hover.\nSupports embedding scripts between `{{double braces}}`.\n\nNote that full dynamic string support is not currently supported.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transition_duration": {
+ "description": "The length in milliseconds\nof the transition animation to use when showing/hiding the widget.\n\nNote this has no effect if `show_if` is not configured.\n\n**Default**: `250`",
+ "type": [
+ "integer",
+ "null"
+ ],
+ "format": "uint32",
+ "minimum": 0
+ },
+ "transition_type": {
+ "description": "The transition animation to use when showing/hiding the widget.\n\nNote this has no effect if `show_if` is not configured.\n\n**Valid options**: `slide_start`, `slide_end`, `crossfade`, `none`\n
\n**Default**: `slide_start`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/TransitionType"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ }
+ },
+ "PlayerType": {
+ "type": "string",
+ "enum": [
+ "mpd",
+ "mpris"
+ ]
+ },
+ "PopupConfig": {
+ "type": "object",
+ "properties": {
+ "device": {
+ "description": "Device box related configuration",
+ "$ref": "#/$defs/PopupDeviceConfig"
+ },
+ "disabled": {
+ "description": "Format string to use for the message that is displayed when the adapter is not found or disabled.\n\n**Default**: `\"{adapter_status}\"`",
+ "type": "string",
+ "default": "{adapter_status}"
+ },
+ "header": {
+ "description": "Format string to use for the header of popup window.\n\n**Default**: `\" Enable Bluetooth\"`",
+ "type": "string",
+ "default": " Enable Bluetooth"
+ },
+ "max_height": {
+ "description": "The maximum height the window can reach before scrolling.\nSpecify either as `pixels` or `devices`.\nLeave blank to allow the popup to grow indefinitely.\n\n**Default**: `Some(SizeLimit::Pixel(330))`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/SizeLimit"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ }
+ },
+ "PopupDeviceConfig": {
+ "type": "object",
+ "properties": {
+ "footer": {
+ "description": "Format string to use for the footer of device box.\n\n**Default**: `\"{device_status}\"`",
+ "type": "string",
+ "default": "{device_status}"
+ },
+ "footer_battery": {
+ "description": "Format string to use for the footer of device box when `{device_battery_percent}` is available.\n\n**Default**: `\"{device_status} • Battery {device_battery_percent}%\"`",
+ "type": "string",
+ "default": "{device_status} • Battery {device_battery_percent}%"
+ },
+ "header": {
+ "description": "Format string to use for the header of device box.\n\n**Default**: `\"{device_alias}\"`",
+ "type": "string",
+ "default": "{device_alias}"
+ },
+ "header_battery": {
+ "description": "Format string to use for the header of device box when `{device_battery_percent}` is available.\n\n**Default**: `\"{device_alias}\"`",
+ "type": "string",
+ "default": "{device_alias}"
+ }
+ }
+ },
+ "ProgressWidget": {
+ "type": "object",
+ "properties": {
+ "class": {
+ "description": "Widget class name.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ],
+ "default": null
+ },
+ "label": {
+ "description": "Text label to show for the progress bar.\n\nThis is a [Dynamic String](dynamic-values#dynamic-string).\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ],
+ "default": null
+ },
+ "length": {
+ "description": "The progress bar length, in pixels.\nGTK will automatically determine the size if left blank.\n\n**Default**: `null`",
+ "type": [
+ "integer",
+ "null"
+ ],
+ "format": "int32",
+ "default": null
+ },
+ "max": {
+ "description": "The maximum progress bar value.\n\n**Default**: `100`",
+ "type": "number",
+ "format": "double",
+ "default": 100.0
+ },
+ "name": {
+ "description": "Widget name.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ],
+ "default": null
+ },
+ "orientation": {
+ "description": "Orientation of the progress bar.\n\n**Valid options**: `horizontal`, `vertical`, `h`, `v`\n
\n**Default**: `horizontal`",
+ "$ref": "#/$defs/ModuleOrientation"
+ },
+ "value": {
+ "description": "Script to run to get the progress bar value.\nOutput must be a valid percentage.\n\nNote that this expects a numeric value between `0`-`max` as output.\n\n**Default**: `null`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ }
+ },
+ "ReservedTrayAction": {
+ "description": "Reserved tray click actions",
+ "oneOf": [
+ {
+ "description": "Open the tray icon's popup menu",
+ "type": "string",
+ "const": "menu"
+ },
+ {
+ "description": "Trigger the tray icon's default (primary) action",
+ "type": "string",
+ "const": "default"
+ },
+ {
+ "description": "Trigger the tray icon's secondary action",
+ "type": "string",
+ "const": "secondary"
+ },
+ {
+ "description": "Do nothing",
+ "type": "string",
+ "const": "none"
+ }
+ ]
+ },
+ "Script": {
+ "type": "object",
+ "properties": {
+ "cmd": {
+ "type": "string",
+ "default": ""
+ },
+ "interval": {
+ "type": "integer",
+ "format": "uint64",
+ "default": 5000,
+ "minimum": 0
+ },
+ "mode": {
+ "$ref": "#/$defs/ScriptMode"
+ }
+ }
+ },
+ "ScriptInput": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "$ref": "#/$defs/Script"
+ }
+ ]
+ },
+ "ScriptMode": {
+ "type": "string",
+ "enum": [
+ "poll",
+ "watch"
+ ]
+ },
+ "ScriptModule": {
+ "description": "The following are module-level options which are present on **all** modules.\n\nEach module also provides options specific to its type.\nFor details on those, check the relevant module documentation.\n\nFor information on the Script type, and embedding scripts in strings,\nsee [here](script).\nFor information on styling, please see the [styling guide](styling-guide).",
+ "type": "object",
+ "properties": {
+ "class": {
+ "description": "Sets one or more CSS classes,\nallowing you to target it in CSS using `.class`.\n\nUnlike [name](#name), the `class` property is not expected to be unique.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "cmd": {
+ "description": "Path to script to execute.\n\nThis can be an absolute path,\nor relative to the working directory.\n\n**Required**",
+ "type": "string",
+ "default": ""
+ },
+ "disable_popup": {
+ "description": "Prevents the popup from opening on-click for this widget.",
+ "type": "boolean",
+ "default": false
+ },
+ "interval": {
+ "description": "Time in milliseconds between executions.\n\n**Default**: `5000`",
+ "type": "integer",
+ "format": "uint64",
+ "default": 5000,
+ "minimum": 0
+ },
+ "justify": {
+ "description": "The justification (alignment) of the widget text shown on the bar.\n\n**Valid options**: `left`, `right`, `center`, `fill`\n
\n**Default**: `left`",
+ "$ref": "#/$defs/ModuleJustification"
+ },
+ "mode": {
+ "description": "Script execution mode.\nSee [modes](#modes) for more info.\n\n**Valid options**: `poll`, `watch`\n
\n**Default**: `poll`",
+ "$ref": "#/$defs/ScriptMode"
+ },
+ "name": {
+ "description": "Sets the unique widget name,\nallowing you to target it in CSS using `#name`.\n\nIt is best practise (although not required) to ensure that the value is\nglobally unique throughout the Ironbar instance\nto avoid clashes.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "on_click_left": {
+ "description": "A [script](scripts) to run when the module is left-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_left = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_left_double": {
+ "description": "A [script](scripts) to run when the module is double-left-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_left_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_middle": {
+ "description": "A [script](scripts) to run when the module is middle-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_click_middle = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_middle_double": {
+ "description": "A [script](scripts) to run when the module is double-middle-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_middle_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_right": {
+ "description": "A [script](scripts) to run when the module is right-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n/// # Example\n\n```corn\n{ on_click_right = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_right_double": {
+ "description": "A [script](scripts) to run when the module is double-right-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_right_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_mouse_enter": {
+ "description": "A [script](scripts) to run when the cursor begins hovering over the module.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_mouse_enter = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_mouse_exit": {
+ "description": "A [script](scripts) to run when the cursor stops hovering over the module.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_mouse_exit = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_scroll_down": {
+ "description": "A [script](scripts) to run when the module is scrolled down on.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_scroll_down = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_scroll_up": {
+ "description": "A [script](scripts) to run when the module is scrolled up on.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_scroll_up = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "orientation": {
+ "description": "The orientation to display the widget contents.\nSetting to vertical will rotate text 90 degrees.\n\n**Valid options**: `horizontal`, `vertical`\n
\n**Default**: `horizontal`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ModuleOrientation"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "show_if": {
+ "description": "Shows the module only if the dynamic boolean evaluates to true.\n\nThis allows for modules to be dynamically shown or hidden\nbased on custom events.\n\n**Default**: `null`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/DynamicBool"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "smooth_scroll_speed": {
+ "description": "A multiplier from `0.0` - `10.0` to control the speed\nof smooth scrolling on trackpad.\n\n**Default**: `1.0`",
+ "type": [
+ "number",
+ "null"
+ ],
+ "format": "double"
+ },
+ "tooltip": {
+ "description": "Shows this text on hover.\nSupports embedding scripts between `{{double braces}}`.\n\nNote that full dynamic string support is not currently supported.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transition_duration": {
+ "description": "The length in milliseconds\nof the transition animation to use when showing/hiding the widget.\n\nNote this has no effect if `show_if` is not configured.\n\n**Default**: `250`",
+ "type": [
+ "integer",
+ "null"
+ ],
+ "format": "uint32",
+ "minimum": 0
+ },
+ "transition_type": {
+ "description": "The transition animation to use when showing/hiding the widget.\n\nNote this has no effect if `show_if` is not configured.\n\n**Valid options**: `slide_start`, `slide_end`, `crossfade`, `none`\n
\n**Default**: `slide_start`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/TransitionType"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ }
+ },
+ "SizeLimit": {
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "devices": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "devices"
+ ]
+ },
+ {
+ "type": "object",
+ "properties": {
+ "pixels": {
+ "type": "integer",
+ "format": "int32"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "pixels"
+ ]
+ }
+ ]
+ },
+ "SliderWidget": {
+ "type": "object",
+ "properties": {
+ "class": {
+ "description": "Widget class name.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ],
+ "default": null
+ },
+ "length": {
+ "description": "The slider length.\nGTK will automatically determine the size if left blank.\n\n**Default**: `null`",
+ "type": [
+ "integer",
+ "null"
+ ],
+ "format": "int32",
+ "default": null
+ },
+ "max": {
+ "description": "Maximum slider value.\n\n**Default**: `100`",
+ "type": "number",
+ "format": "double",
+ "default": 100.0
+ },
+ "min": {
+ "description": "Minimum slider value.\n\n**Default**: `0`",
+ "type": "number",
+ "format": "double",
+ "default": 0.0
+ },
+ "name": {
+ "description": "Widget name.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ],
+ "default": null
+ },
+ "on_change": {
+ "description": "Command to execute when the slider changes.\nMore on this [below](#slider).\n\nNote that this will provide the floating point value as an argument.\nIf your input program requires an integer, you will need to round it.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ],
+ "default": null
+ },
+ "orientation": {
+ "description": "Orientation of the slider.\n\n**Valid options**: `horizontal`, `vertical`, `h`, `v`\n
\n**Default**: `horizontal`",
+ "$ref": "#/$defs/ModuleOrientation"
+ },
+ "show_label": {
+ "description": "Whether to show the value label above the slider.\n\n**Default**: `true`",
+ "type": "boolean",
+ "default": true
+ },
+ "step": {
+ "description": "If the increment to change when scrolling with the mousewheel.\nIf left blank, GTK will use the default value,\ndetermined by the current environment.\n\n**Default**: `null`",
+ "type": [
+ "number",
+ "null"
+ ],
+ "format": "double",
+ "default": null
+ },
+ "value": {
+ "description": "Script to run to get the slider value.\nOutput must be a valid number.\n\n**Default**: `null`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ }
+ },
+ "SortOrder": {
+ "oneOf": [
+ {
+ "description": "Shows workspaces in the order they're added",
+ "type": "string",
+ "const": "added"
+ },
+ {
+ "description": "Shows workspaces in the order of their displayed labels,\naccounting for any mappings supplied in `name_map`.\nIn most cases, this is likely their number.\n\nWorkspaces are sorted numerically first,\nand named workspaces are added to the end in alphabetical order.",
+ "type": "string",
+ "const": "label"
+ },
+ {
+ "description": "Shows workspaces in the order of their real names,\nas supplied by the compositor.\nIn most cases, this is likely their number.\n\nWorkspaces are sorted numerically first,\nand named workspaces are added to the end in alphabetical order.",
+ "type": "string",
+ "const": "name"
+ }
+ ]
+ },
+ "SysInfoModule": {
+ "description": "The following are module-level options which are present on **all** modules.\n\nEach module also provides options specific to its type.\nFor details on those, check the relevant module documentation.\n\nFor information on the Script type, and embedding scripts in strings,\nsee [here](script).\nFor information on styling, please see the [styling guide](styling-guide).",
+ "type": "object",
+ "properties": {
+ "class": {
+ "description": "Sets one or more CSS classes,\nallowing you to target it in CSS using `.class`.\n\nUnlike [name](#name), the `class` property is not expected to be unique.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "direction": {
+ "description": "The orientation by which the labels are laid out.\n\n**Valid options**: `horizontal`, `vertical`, `h`, `v`\n
\n**Default** : `horizontal`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ModuleOrientation"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "disable_popup": {
+ "description": "Prevents the popup from opening on-click for this widget.",
+ "type": "boolean",
+ "default": false
+ },
+ "format": {
+ "description": "List of strings including formatting tokens.\nFor available tokens, see [below](#formatting-tokens).\n\n**Required**",
+ "type": "array",
+ "default": [],
+ "items": {
+ "type": "string"
+ }
+ },
+ "interval": {
+ "description": "Number of seconds between refresh.\n\nThis can be set as a global interval,\nor passed as an object to customize the interval per-system.\n\n**Default**: `5`",
+ "$ref": "#/$defs/Interval"
+ },
+ "justify": {
+ "description": "The justification (alignment) of the widget text shown on the bar.\n\n**Valid options**: `left`, `right`, `center`, `fill`\n
\n**Default**: `left`",
+ "$ref": "#/$defs/ModuleJustification"
+ },
+ "name": {
+ "description": "Sets the unique widget name,\nallowing you to target it in CSS using `#name`.\n\nIt is best practise (although not required) to ensure that the value is\nglobally unique throughout the Ironbar instance\nto avoid clashes.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "on_click_left": {
+ "description": "A [script](scripts) to run when the module is left-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_left = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_left_double": {
+ "description": "A [script](scripts) to run when the module is double-left-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_left_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_middle": {
+ "description": "A [script](scripts) to run when the module is middle-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_click_middle = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_middle_double": {
+ "description": "A [script](scripts) to run when the module is double-middle-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_middle_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_right": {
+ "description": "A [script](scripts) to run when the module is right-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n/// # Example\n\n```corn\n{ on_click_right = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_right_double": {
+ "description": "A [script](scripts) to run when the module is double-right-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_right_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_mouse_enter": {
+ "description": "A [script](scripts) to run when the cursor begins hovering over the module.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_mouse_enter = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_mouse_exit": {
+ "description": "A [script](scripts) to run when the cursor stops hovering over the module.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_mouse_exit = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_scroll_down": {
+ "description": "A [script](scripts) to run when the module is scrolled down on.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_scroll_down = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_scroll_up": {
+ "description": "A [script](scripts) to run when the module is scrolled up on.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_scroll_up = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "orientation": {
+ "description": "The orientation to display the widget contents.\nSetting to vertical will rotate text 90 degrees.\n\n**Valid options**: `horizontal`, `vertical`\n
\n**Default**: `horizontal`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ModuleOrientation"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "show_if": {
+ "description": "Shows the module only if the dynamic boolean evaluates to true.\n\nThis allows for modules to be dynamically shown or hidden\nbased on custom events.\n\n**Default**: `null`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/DynamicBool"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "smooth_scroll_speed": {
+ "description": "A multiplier from `0.0` - `10.0` to control the speed\nof smooth scrolling on trackpad.\n\n**Default**: `1.0`",
+ "type": [
+ "number",
+ "null"
+ ],
+ "format": "double"
+ },
+ "tooltip": {
+ "description": "Shows this text on hover.\nSupports embedding scripts between `{{double braces}}`.\n\nNote that full dynamic string support is not currently supported.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transition_duration": {
+ "description": "The length in milliseconds\nof the transition animation to use when showing/hiding the widget.\n\nNote this has no effect if `show_if` is not configured.\n\n**Default**: `250`",
+ "type": [
+ "integer",
+ "null"
+ ],
+ "format": "uint32",
+ "minimum": 0
+ },
+ "transition_type": {
+ "description": "The transition animation to use when showing/hiding the widget.\n\nNote this has no effect if `show_if` is not configured.\n\n**Valid options**: `slide_start`, `slide_end`, `crossfade`, `none`\n
\n**Default**: `slide_start`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/TransitionType"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ }
+ },
+ "TransitionType": {
+ "type": "string",
+ "enum": [
+ "none",
+ "crossfade",
+ "slide_start",
+ "slide_end"
+ ]
+ },
+ "TrayClickAction": {
+ "description": "Action to perform when clicking on a tray icon",
+ "anyOf": [
+ {
+ "description": "Reserved action",
+ "$ref": "#/$defs/ReservedTrayAction"
+ },
+ {
+ "description": "Run a custom shell command",
+ "type": "string"
+ }
+ ]
+ },
+ "TrayModule": {
+ "description": "Click action handlers for tray icons",
+ "type": "object",
+ "properties": {
+ "class": {
+ "description": "Sets one or more CSS classes,\nallowing you to target it in CSS using `.class`.\n\nUnlike [name](#name), the `class` property is not expected to be unique.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "direction": {
+ "description": "The direction in which to pack tray icons.\n\n**Valid options**: `horizontal`, `vertical`\n
\n**Default**: `horizontal` for horizontal bars, `vertical` for vertical bars",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ModuleOrientation"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "disable_popup": {
+ "description": "Prevents the popup from opening on-click for this widget.",
+ "type": "boolean",
+ "default": false
+ },
+ "icon_size": {
+ "description": "Size in pixels to display the tray icons as.\n\n**Default**: `16`",
+ "type": "integer",
+ "format": "uint32",
+ "default": 16,
+ "minimum": 0
+ },
+ "name": {
+ "description": "Sets the unique widget name,\nallowing you to target it in CSS using `#name`.\n\nIt is best practise (although not required) to ensure that the value is\nglobally unique throughout the Ironbar instance\nto avoid clashes.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "on_click_left": {
+ "description": "A [script](scripts) to run when the module is left-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_left = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_left_double": {
+ "description": "A [script](scripts) to run when the module is double-left-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_left_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_middle": {
+ "description": "A [script](scripts) to run when the module is middle-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_click_middle = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_middle_double": {
+ "description": "A [script](scripts) to run when the module is double-middle-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_middle_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_right": {
+ "description": "A [script](scripts) to run when the module is right-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n/// # Example\n\n```corn\n{ on_click_right = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_right_double": {
+ "description": "A [script](scripts) to run when the module is double-right-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_right_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_mouse_enter": {
+ "description": "A [script](scripts) to run when the cursor begins hovering over the module.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_mouse_enter = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_mouse_exit": {
+ "description": "A [script](scripts) to run when the cursor stops hovering over the module.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_mouse_exit = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_scroll_down": {
+ "description": "A [script](scripts) to run when the module is scrolled down on.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_scroll_down = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_scroll_up": {
+ "description": "A [script](scripts) to run when the module is scrolled up on.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_scroll_up = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "prefer_theme_icons": {
+ "description": "Requests that icons from the theme be used over the item-provided item.\nMost items only provide one or the other so this will have no effect in most circumstances.\n\n**Default**: `true`",
+ "type": "boolean",
+ "default": true
+ },
+ "show_if": {
+ "description": "Shows the module only if the dynamic boolean evaluates to true.\n\nThis allows for modules to be dynamically shown or hidden\nbased on custom events.\n\n**Default**: `null`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/DynamicBool"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "smooth_scroll_speed": {
+ "description": "A multiplier from `0.0` - `10.0` to control the speed\nof smooth scrolling on trackpad.\n\n**Default**: `1.0`",
+ "type": [
+ "number",
+ "null"
+ ],
+ "format": "double"
+ },
+ "tooltip": {
+ "description": "Shows this text on hover.\nSupports embedding scripts between `{{double braces}}`.\n\nNote that full dynamic string support is not currently supported.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transition_duration": {
+ "description": "The length in milliseconds\nof the transition animation to use when showing/hiding the widget.\n\nNote this has no effect if `show_if` is not configured.\n\n**Default**: `250`",
+ "type": [
+ "integer",
+ "null"
+ ],
+ "format": "uint32",
+ "minimum": 0
+ },
+ "transition_type": {
+ "description": "The transition animation to use when showing/hiding the widget.\n\nNote this has no effect if `show_if` is not configured.\n\n**Valid options**: `slide_start`, `slide_end`, `crossfade`, `none`\n
\n**Default**: `slide_start`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/TransitionType"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ }
+ },
+ "TruncateMode": {
+ "description": "Some modules provide options for truncating text.\nThis is controlled using a common `TruncateMode` type,\nwhich is defined below.\n\nThe option can be configured in one of two modes.\n\n**Default**: `Auto (end)`",
+ "anyOf": [
+ {
+ "description": "Do not truncate content.\n\nSetting this option may cause excessively long content to overflow other widgets,\nshifting them off-screen.\n\n# Example\n\n```corn\n{ truncate = \"off\" }",
+ "type": "null"
+ },
+ {
+ "description": "Auto mode lets GTK decide when to ellipsize.\n\nTo use this mode, set the truncate option to a string\ndeclaring the location to truncate text from and place the ellipsis.\n\n# Example\n\n```corn\n{ truncate = \"start\" }\n```\n\n**Valid options**: `start`, `middle`, `end`\n
\n**Default**: `end`",
+ "$ref": "#/$defs/EllipsizeMode"
+ },
+ {
+ "description": "Length mode defines a fixed point at which to ellipsize.\n\nGenerally you will want to set only one of `length` or `max_length`,\nbut you can set both if required.\n\n# Example\n\n```corn\n{\n truncate.mode = \"start\"\n truncate.length = 50\n truncate.max_length = 70\n}\n```",
+ "type": "object",
+ "properties": {
+ "length": {
+ "description": "The fixed width (in characters) of the widget.\n\nThe widget will be expanded to this width\nif it would have otherwise been smaller.\n\nLeave unset to let GTK automatically handle.\n\n**Default**: `null`",
+ "type": [
+ "integer",
+ "null"
+ ],
+ "format": "int32"
+ },
+ "max_length": {
+ "description": "The maximum number of characters to show\nbefore truncating.\n\nLeave unset to let GTK automatically handle.\n\n**Default**: `null`",
+ "type": [
+ "integer",
+ "null"
+ ],
+ "format": "int32"
+ },
+ "mode": {
+ "description": "The location to truncate text from and place the ellipsis.\n**Valid options**: `start`, `middle`, `end`\n
\n**Default**: `null`",
+ "$ref": "#/$defs/EllipsizeMode"
+ }
+ },
+ "required": [
+ "mode"
+ ]
+ }
+ ]
+ },
+ "VolumeModule": {
+ "description": "The following are module-level options which are present on **all** modules.\n\nEach module also provides options specific to its type.\nFor details on those, check the relevant module documentation.\n\nFor information on the Script type, and embedding scripts in strings,\nsee [here](script).\nFor information on styling, please see the [styling guide](styling-guide).",
+ "type": "object",
+ "properties": {
+ "class": {
+ "description": "Sets one or more CSS classes,\nallowing you to target it in CSS using `.class`.\n\nUnlike [name](#name), the `class` property is not expected to be unique.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "disable_popup": {
+ "description": "Prevents the popup from opening on-click for this widget.",
+ "type": "boolean",
+ "default": false
+ },
+ "format": {
+ "description": "The format string to use for the widget button label.\nFor available tokens, see [below](#formatting-tokens).\n\n**Default**: `{icon} {percentage}%`",
+ "type": "string",
+ "default": "{icon} {percentage}%"
+ },
+ "icons": {
+ "description": "Volume state icons.\n\nSee [icons](#icons).",
+ "$ref": "#/$defs/Icons5"
+ },
+ "justify": {
+ "description": "The justification (alignment) of the widget text shown on the bar.\n\n**Valid options**: `left`, `right`, `center`, `fill`\n
\n**Default**: `left`",
+ "$ref": "#/$defs/ModuleJustification"
+ },
+ "max_volume": {
+ "description": "Maximum value to allow volume sliders to reach.\nPulse supports values > 100 but this may result in distortion.\n\n**Default**: `100`",
+ "type": "number",
+ "format": "double",
+ "default": 100.0
+ },
+ "name": {
+ "description": "Sets the unique widget name,\nallowing you to target it in CSS using `#name`.\n\nIt is best practise (although not required) to ensure that the value is\nglobally unique throughout the Ironbar instance\nto avoid clashes.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "on_click_left": {
+ "description": "A [script](scripts) to run when the module is left-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_left = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_left_double": {
+ "description": "A [script](scripts) to run when the module is double-left-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_left_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_middle": {
+ "description": "A [script](scripts) to run when the module is middle-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_click_middle = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_middle_double": {
+ "description": "A [script](scripts) to run when the module is double-middle-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_middle_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_right": {
+ "description": "A [script](scripts) to run when the module is right-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n/// # Example\n\n```corn\n{ on_click_right = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_right_double": {
+ "description": "A [script](scripts) to run when the module is double-right-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_right_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_mouse_enter": {
+ "description": "A [script](scripts) to run when the cursor begins hovering over the module.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_mouse_enter = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_mouse_exit": {
+ "description": "A [script](scripts) to run when the cursor stops hovering over the module.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_mouse_exit = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_scroll_down": {
+ "description": "A [script](scripts) to run when the module is scrolled down on.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_scroll_down = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_scroll_up": {
+ "description": "A [script](scripts) to run when the module is scrolled up on.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_scroll_up = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "orientation": {
+ "description": "The orientation to display the widget contents.\nSetting to vertical will rotate text 90 degrees.\n\n**Valid options**: `horizontal`, `vertical`\n
\n**Default**: `horizontal`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ModuleOrientation"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "show_if": {
+ "description": "Shows the module only if the dynamic boolean evaluates to true.\n\nThis allows for modules to be dynamically shown or hidden\nbased on custom events.\n\n**Default**: `null`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/DynamicBool"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "smooth_scroll_speed": {
+ "description": "A multiplier from `0.0` - `10.0` to control the speed\nof smooth scrolling on trackpad.\n\n**Default**: `1.0`",
+ "type": [
+ "number",
+ "null"
+ ],
+ "format": "double"
+ },
+ "tooltip": {
+ "description": "Shows this text on hover.\nSupports embedding scripts between `{{double braces}}`.\n\nNote that full dynamic string support is not currently supported.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transition_duration": {
+ "description": "The length in milliseconds\nof the transition animation to use when showing/hiding the widget.\n\nNote this has no effect if `show_if` is not configured.\n\n**Default**: `250`",
+ "type": [
+ "integer",
+ "null"
+ ],
+ "format": "uint32",
+ "minimum": 0
+ },
+ "transition_type": {
+ "description": "The transition animation to use when showing/hiding the widget.\n\nNote this has no effect if `show_if` is not configured.\n\n**Valid options**: `slide_start`, `slide_end`, `crossfade`, `none`\n
\n**Default**: `slide_start`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/TransitionType"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "truncate": {
+ "description": "See [truncate options](module-level-options#truncate-mode).\n\n**Default**: `null`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/TruncateMode"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ }
+ },
+ "Widget": {
+ "oneOf": [
+ {
+ "description": "A container to place nested widgets inside.",
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "box"
+ }
+ },
+ "$ref": "#/$defs/BoxWidget",
+ "required": [
+ "type"
+ ]
+ },
+ {
+ "description": "A text label. Pango markup is supported.",
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "label"
+ }
+ },
+ "$ref": "#/$defs/LabelWidget",
+ "required": [
+ "type"
+ ]
+ },
+ {
+ "description": "A clickable button, which can run a command when clicked.",
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "button"
+ }
+ },
+ "$ref": "#/$defs/ButtonWidget",
+ "required": [
+ "type"
+ ]
+ },
+ {
+ "description": "An image or icon from disk or http.",
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "image"
+ }
+ },
+ "$ref": "#/$defs/ImageWidget",
+ "required": [
+ "type"
+ ]
+ },
+ {
+ "description": "A draggable slider.",
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "slider"
+ }
+ },
+ "$ref": "#/$defs/SliderWidget",
+ "required": [
+ "type"
+ ]
+ },
+ {
+ "description": "A progress bar.",
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "const": "progress"
+ }
+ },
+ "$ref": "#/$defs/ProgressWidget",
+ "required": [
+ "type"
+ ]
+ }
+ ]
+ },
+ "WidgetConfig": {
+ "description": "The following are module-level options which are present on **all** modules.\n\nEach module also provides options specific to its type.\nFor details on those, check the relevant module documentation.\n\nFor information on the Script type, and embedding scripts in strings,\nsee [here](script).\nFor information on styling, please see the [styling guide](styling-guide).",
+ "type": "object",
+ "properties": {
+ "class": {
+ "description": "Sets one or more CSS classes,\nallowing you to target it in CSS using `.class`.\n\nUnlike [name](#name), the `class` property is not expected to be unique.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "disable_popup": {
+ "description": "Prevents the popup from opening on-click for this widget.",
+ "type": "boolean",
+ "default": false
+ },
+ "name": {
+ "description": "Sets the unique widget name,\nallowing you to target it in CSS using `#name`.\n\nIt is best practise (although not required) to ensure that the value is\nglobally unique throughout the Ironbar instance\nto avoid clashes.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "on_click_left": {
+ "description": "A [script](scripts) to run when the module is left-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_left = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_left_double": {
+ "description": "A [script](scripts) to run when the module is double-left-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_left_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_middle": {
+ "description": "A [script](scripts) to run when the module is middle-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_click_middle = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_middle_double": {
+ "description": "A [script](scripts) to run when the module is double-middle-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_middle_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_right": {
+ "description": "A [script](scripts) to run when the module is right-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n/// # Example\n\n```corn\n{ on_click_right = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_right_double": {
+ "description": "A [script](scripts) to run when the module is double-right-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_right_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_mouse_enter": {
+ "description": "A [script](scripts) to run when the cursor begins hovering over the module.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_mouse_enter = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_mouse_exit": {
+ "description": "A [script](scripts) to run when the cursor stops hovering over the module.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_mouse_exit = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_scroll_down": {
+ "description": "A [script](scripts) to run when the module is scrolled down on.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_scroll_down = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_scroll_up": {
+ "description": "A [script](scripts) to run when the module is scrolled up on.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_scroll_up = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "show_if": {
+ "description": "Shows the module only if the dynamic boolean evaluates to true.\n\nThis allows for modules to be dynamically shown or hidden\nbased on custom events.\n\n**Default**: `null`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/DynamicBool"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "smooth_scroll_speed": {
+ "description": "A multiplier from `0.0` - `10.0` to control the speed\nof smooth scrolling on trackpad.\n\n**Default**: `1.0`",
+ "type": [
+ "number",
+ "null"
+ ],
+ "format": "double"
+ },
+ "tooltip": {
+ "description": "Shows this text on hover.\nSupports embedding scripts between `{{double braces}}`.\n\nNote that full dynamic string support is not currently supported.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transition_duration": {
+ "description": "The length in milliseconds\nof the transition animation to use when showing/hiding the widget.\n\nNote this has no effect if `show_if` is not configured.\n\n**Default**: `250`",
+ "type": [
+ "integer",
+ "null"
+ ],
+ "format": "uint32",
+ "minimum": 0
+ },
+ "transition_type": {
+ "description": "The transition animation to use when showing/hiding the widget.\n\nNote this has no effect if `show_if` is not configured.\n\n**Valid options**: `slide_start`, `slide_end`, `crossfade`, `none`\n
\n**Default**: `slide_start`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/TransitionType"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "anyOf": [
+ {
+ "description": "A custom-module specific basic widget",
+ "$ref": "#/$defs/Widget"
+ },
+ {
+ "description": "A native Ironbar module, such as `clock` or `focused`.\nAll widgets are supported, including their popups.",
+ "$ref": "#/$defs/ModuleConfig"
+ }
+ ]
+ },
+ "WorkspacesModule": {
+ "description": "The following are module-level options which are present on **all** modules.\n\nEach module also provides options specific to its type.\nFor details on those, check the relevant module documentation.\n\nFor information on the Script type, and embedding scripts in strings,\nsee [here](script).\nFor information on styling, please see the [styling guide](styling-guide).",
+ "type": "object",
+ "properties": {
+ "all_monitors": {
+ "description": "Whether to display workspaces from all monitors.\nWhen false, only shows workspaces on the current monitor.\n\n**Default**: `false`",
+ "type": "boolean",
+ "default": false
+ },
+ "class": {
+ "description": "Sets one or more CSS classes,\nallowing you to target it in CSS using `.class`.\n\nUnlike [name](#name), the `class` property is not expected to be unique.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "disable_popup": {
+ "description": "Prevents the popup from opening on-click for this widget.",
+ "type": "boolean",
+ "default": false
+ },
+ "favorites": {
+ "description": "Workspaces which should always be shown.\nThis can either be an array of workspace names,\nor a map of monitor names to arrays of workspace names.\n\n**Default**: `{}`\n\n# Example\n\n```corn\n// array format\n{\n type = \"workspaces\"\n favorites = [\"1\", \"2\", \"3\"]\n}\n\n// map format\n{\n type = \"workspaces\"\n favorites.DP-1 = [\"1\", \"2\", \"3\"]\n favorites.DP-2 = [\"4\", \"5\", \"6\"]\n}\n```",
+ "$ref": "#/$defs/Favorites"
+ },
+ "hidden": {
+ "description": "A list of workspace names to never show.\n\nThis may be useful for scratchpad/special workspaces, for example.\n\n**Default**: `[]`",
+ "type": "array",
+ "default": [],
+ "items": {
+ "type": "string"
+ }
+ },
+ "icon_size": {
+ "description": "The size to render icons at (image icons only).\n\n**Default**: `32`",
+ "type": "integer",
+ "format": "int32",
+ "default": 32
+ },
+ "justify": {
+ "description": "The justification (alignment) of the widget text shown on the bar.\n\n**Valid options**: `left`, `right`, `center`, `fill`\n
\n**Default**: `left`",
+ "$ref": "#/$defs/ModuleJustification"
+ },
+ "name": {
+ "description": "Sets the unique widget name,\nallowing you to target it in CSS using `#name`.\n\nIt is best practise (although not required) to ensure that the value is\nglobally unique throughout the Ironbar instance\nto avoid clashes.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "name_map": {
+ "description": "Map of actual workspace names to custom names.\n\nCustom names can be [images](images).\n\nIf a workspace is not present in the map,\nit will fall back to using its actual name.",
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "default": {}
+ },
+ "on_click_left": {
+ "description": "A [script](scripts) to run when the module is left-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_left = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_left_double": {
+ "description": "A [script](scripts) to run when the module is double-left-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_left_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_middle": {
+ "description": "A [script](scripts) to run when the module is middle-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_click_middle = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_middle_double": {
+ "description": "A [script](scripts) to run when the module is double-middle-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_middle_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_right": {
+ "description": "A [script](scripts) to run when the module is right-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n/// # Example\n\n```corn\n{ on_click_right = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_click_right_double": {
+ "description": "A [script](scripts) to run when the module is double-right-clicked.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n\n# Example\n\n```corn\n{ on_click_right_double = \"echo 'double click' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_mouse_enter": {
+ "description": "A [script](scripts) to run when the cursor begins hovering over the module.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_mouse_enter = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_mouse_exit": {
+ "description": "A [script](scripts) to run when the cursor stops hovering over the module.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_mouse_exit = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_scroll_down": {
+ "description": "A [script](scripts) to run when the module is scrolled down on.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_scroll_down = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "on_scroll_up": {
+ "description": "A [script](scripts) to run when the module is scrolled up on.\n\n**Supported script types**: `oneshot`.\n
\n**Default**: `null`\n# Example\n\n```corn\n{ on_scroll_up = \"echo 'event' >> log.txt\" }\n```",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ScriptInput"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "orientation": {
+ "description": "The orientation to display the widget contents.\nSetting to vertical will rotate text 90 degrees.\n\n**Valid options**: `horizontal`, `vertical`\n
\n**Default**: `horizontal`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ModuleOrientation"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "show_if": {
+ "description": "Shows the module only if the dynamic boolean evaluates to true.\n\nThis allows for modules to be dynamically shown or hidden\nbased on custom events.\n\n**Default**: `null`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/DynamicBool"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "smooth_scroll_speed": {
+ "description": "A multiplier from `0.0` - `10.0` to control the speed\nof smooth scrolling on trackpad.\n\n**Default**: `1.0`",
+ "type": [
+ "number",
+ "null"
+ ],
+ "format": "double"
+ },
+ "sort": {
+ "description": "The method used for sorting workspaces.\n\n- `added` always appends to the end.\n- `label` sorts by displayed value.\n- `name` sorts by workspace name.\n\n**Valid options**: `added`, `label`, `name`.\n
\n**Default**: `label`",
+ "$ref": "#/$defs/SortOrder"
+ },
+ "tooltip": {
+ "description": "Shows this text on hover.\nSupports embedding scripts between `{{double braces}}`.\n\nNote that full dynamic string support is not currently supported.\n\n**Default**: `null`",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "transition_duration": {
+ "description": "The length in milliseconds\nof the transition animation to use when showing/hiding the widget.\n\nNote this has no effect if `show_if` is not configured.\n\n**Default**: `250`",
+ "type": [
+ "integer",
+ "null"
+ ],
+ "format": "uint32",
+ "minimum": 0
+ },
+ "transition_type": {
+ "description": "The transition animation to use when showing/hiding the widget.\n\nNote this has no effect if `show_if` is not configured.\n\n**Valid options**: `slide_start`, `slide_end`, `crossfade`, `none`\n
\n**Default**: `slide_start`",
+ "anyOf": [
+ {
+ "$ref": "#/$defs/TransitionType"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ }
+ },
+ "XdgEntry": {
+ "type": "object",
+ "properties": {
+ "categories": {
+ "description": "XDG categories the associated submenu should contain.",
+ "type": "array",
+ "default": [],
+ "items": {
+ "type": "string"
+ }
+ },
+ "icon": {
+ "description": "Name of the image icon to show next to the label.",
+ "type": [
+ "string",
+ "null"
+ ],
+ "default": null
+ },
+ "label": {
+ "description": "Text to display on the button.",
+ "type": "string",
+ "default": ""
+ }
+ }
+ }
+ }
+}
diff --git a/config/kitty/current-theme.conf b/config/kitty/current-theme.conf
index 652394c..f514799 100644
--- a/config/kitty/current-theme.conf
+++ b/config/kitty/current-theme.conf
@@ -1,49 +1,49 @@
-cursor #f2be6e
-cursor_text_color #2f1d00
+cursor #f3bd6e
+cursor_text_color #301d00
foreground #fff3e6
-background #0e0a04
+background #0e0904
selection_foreground #2c1e08
-selection_background #dcc3a1
-url_color #dcc3a1
+selection_background #ddc2a1
+url_color #ddc2a1
#: black 000000 767676
-color0 #18130b
+color0 #18120b
color8 #403930
#: red cc0403 f2201f
-color1 #1e0b06
-color9 #9c3b21
+color1 #2b261e
+color9 #86745c
#: green 19cb00 23fd00
-color2 #dcc3a1
-color10 #f9debb
+color2 #ddc2a1
+color10 #fadebc
#: yellow cecb00 fffd00
-color3 #b6cea3
-color11 #d2eabd
+color3 #b7cea2
+color11 #d3eabc
#: blue 0d73cc 1a8fff
-color4 #583a00
-color12 #f2be6e
+color4 #593a00
+color12 #f3bd6e
#: magenta cb1ed1 fd28ff
-color5 #4e3d24
-color13 #dcc3a1
+color5 #4f3d24
+color13 #ddc2a1
#: cyan 0dcdcd 14ffff
-color6 #324625
-color14 #b6cea3
+color6 #334525
+color14 #b7cea2
#: white dddddd ffffff
-color7 #d2c4b4
+color7 #d3c4b4
color15 #fff3e6
-mark1_foreground #281800
-mark1_background #ffddb0
-mark2_foreground #261904
-mark2_background #f9debb
-mark3_foreground #0e2004
-mark3_background #d2eabd
+mark1_foreground #291800
+mark1_background #ffddb1
+mark2_foreground #271904
+mark2_background #fadebc
+mark3_foreground #0f2004
+mark3_background #d3eabc
-active_tab_foreground #2f1d00
-active_tab_background #f2be6e
+active_tab_foreground #301d00
+active_tab_background #f3bd6e
inactive_tab_foreground #ffffff
-inactive_tab_background #976c25
+inactive_tab_background #986c25
-active_border_color #f2be6e
-inactive_border_color #2f1d00
+active_border_color #f3bd6e
+inactive_border_color #301d00
# bell_border_color #ff5a00
diff --git a/config/kitty/current-theme1.conf b/config/kitty/current-theme1.conf
new file mode 100644
index 0000000..f2d9728
--- /dev/null
+++ b/config/kitty/current-theme1.conf
@@ -0,0 +1,50 @@
+# vim:ft=kitty
+
+## name: Tokyo Night
+## license: MIT
+## author: Folke Lemaitre
+## upstream: https://github.com/folke/tokyonight.nvim/raw/main/extras/kitty/tokyonight_night.conf
+
+
+background #1a1b26
+foreground #c0caf5
+selection_background #283457
+selection_foreground #c0caf5
+url_color #73daca
+cursor #c0caf5
+cursor_text_color #1a1b26
+
+# Tabs
+active_tab_background #7aa2f7
+active_tab_foreground #16161e
+inactive_tab_background #292e42
+inactive_tab_foreground #545c7e
+#tab_bar_background #15161e
+
+# Windows
+active_border_color #7aa2f7
+inactive_border_color #292e42
+
+# normal
+color0 #15161e
+color1 #f7768e
+color2 #9ece6a
+color3 #e0af68
+color4 #7aa2f7
+color5 #bb9af7
+color6 #7dcfff
+color7 #a9b1d6
+
+# bright
+color8 #414868
+color9 #f7768e
+color10 #9ece6a
+color11 #e0af68
+color12 #7aa2f7
+color13 #bb9af7
+color14 #7dcfff
+color15 #c0caf5
+
+# extended colors
+color16 #ff9e64
+color17 #db4b4b
diff --git a/config/kitty/dank-tabs.conf b/config/kitty/dank-tabs.conf
new file mode 100644
index 0000000..0922283
--- /dev/null
+++ b/config/kitty/dank-tabs.conf
@@ -0,0 +1,23 @@
+tab_bar_edge top
+tab_bar_style powerline
+tab_powerline_style slanted
+tab_bar_align left
+tab_bar_min_tabs 2
+tab_bar_margin_width 0.0
+tab_bar_margin_height 2.5 1.5
+tab_bar_margin_color #09070d
+
+tab_bar_background #09070d
+
+active_tab_foreground #1e1e00
+active_tab_background #b8a8f0
+active_tab_font_style bold
+
+inactive_tab_foreground #c9b8d9
+inactive_tab_background #09070d
+inactive_tab_font_style normal
+
+tab_activity_symbol " ● "
+
+tab_title_template "{fmt.fg.red}{bell_symbol}{activity_symbol}{fmt.fg.tab}{title[:30]}{title[30:] and '…'} [{index}]"
+active_tab_title_template "{fmt.fg.red}{bell_symbol}{activity_symbol}{fmt.fg.tab}{title[:30]}{title[30:] and '…'} [{index}]"
diff --git a/config/kitty/themes/Matugen.conf b/config/kitty/themes/Matugen.conf
index 652394c..f514799 100644
--- a/config/kitty/themes/Matugen.conf
+++ b/config/kitty/themes/Matugen.conf
@@ -1,49 +1,49 @@
-cursor #f2be6e
-cursor_text_color #2f1d00
+cursor #f3bd6e
+cursor_text_color #301d00
foreground #fff3e6
-background #0e0a04
+background #0e0904
selection_foreground #2c1e08
-selection_background #dcc3a1
-url_color #dcc3a1
+selection_background #ddc2a1
+url_color #ddc2a1
#: black 000000 767676
-color0 #18130b
+color0 #18120b
color8 #403930
#: red cc0403 f2201f
-color1 #1e0b06
-color9 #9c3b21
+color1 #2b261e
+color9 #86745c
#: green 19cb00 23fd00
-color2 #dcc3a1
-color10 #f9debb
+color2 #ddc2a1
+color10 #fadebc
#: yellow cecb00 fffd00
-color3 #b6cea3
-color11 #d2eabd
+color3 #b7cea2
+color11 #d3eabc
#: blue 0d73cc 1a8fff
-color4 #583a00
-color12 #f2be6e
+color4 #593a00
+color12 #f3bd6e
#: magenta cb1ed1 fd28ff
-color5 #4e3d24
-color13 #dcc3a1
+color5 #4f3d24
+color13 #ddc2a1
#: cyan 0dcdcd 14ffff
-color6 #324625
-color14 #b6cea3
+color6 #334525
+color14 #b7cea2
#: white dddddd ffffff
-color7 #d2c4b4
+color7 #d3c4b4
color15 #fff3e6
-mark1_foreground #281800
-mark1_background #ffddb0
-mark2_foreground #261904
-mark2_background #f9debb
-mark3_foreground #0e2004
-mark3_background #d2eabd
+mark1_foreground #291800
+mark1_background #ffddb1
+mark2_foreground #271904
+mark2_background #fadebc
+mark3_foreground #0f2004
+mark3_background #d3eabc
-active_tab_foreground #2f1d00
-active_tab_background #f2be6e
+active_tab_foreground #301d00
+active_tab_background #f3bd6e
inactive_tab_foreground #ffffff
-inactive_tab_background #976c25
+inactive_tab_background #986c25
-active_border_color #f2be6e
-inactive_border_color #2f1d00
+active_border_color #f3bd6e
+inactive_border_color #301d00
# bell_border_color #ff5a00
diff --git a/config/matugen/config.toml b/config/matugen/config.toml
index e3fa65e..21ff821 100644
--- a/config/matugen/config.toml
+++ b/config/matugen/config.toml
@@ -186,6 +186,7 @@ post_hook = "swaync-client -rs"
[templates.obsidian]
input_path = '~/.config/matugen/templates/obsidian.css'
output_path = '~/.obsidian/unconfer/.obsidian/themes/Matugen/theme.css'
+post_hook = 'cp ~/.obsidian/unconfer/.obsidian/themes/Matugen/theme.css ~/.obsidian/ege/.obsidian/themes/Matugen/theme.css'
[templates.btop]
input_path = '~/.config/matugen/templates/btop.theme'
diff --git a/config/matugen/config1.toml b/config/matugen/config1.toml
new file mode 100644
index 0000000..a6a2d14
--- /dev/null
+++ b/config/matugen/config1.toml
@@ -0,0 +1,59 @@
+[config]
+# If set to enabled, it will check for updates when you run the matugen command, notifying you that an update is avaiable.
+# WARNING: Matugen needs to be compiled with the `update-informer` feature for this to work.
+
+# The color which should be used as the source_color if no good color was found from an image.
+# Can be defined in any css format.
+# The cli flag will override this if used.
+#fallback_color = "#ffbf9b"
+
+# Which color to choose if multiple good colors were found from an image.
+# choices: [darkness, lightness, saturation, less-saturation, value, closest-to-fallback]
+# The cli flag will override this if used.
+#prefer = "closest-to-fallback"
+
+# Enables caching which will cache the colorscheme, custom colors, etc. into a cache folder located in
+# Windows: C:\Users\user\AppData\Roaming\InioX\matugen\cache\images\
+# Linux: $XDG_CACHE_HOME/matugen/ or $HOME/.cache/matugen/images/
+# MacOS: $HOME/Library/Caches/matugen/images/
+# The file follows this naming: ...json
+# For example: testimage.png.0cfd2d624b3d09bf6246b7be9ca79e207e7aa1189d961d44949628b99811bb9d.json
+# You can modify the cache and it will then be loaded when using the same image.
+# The colors are defined using the #RRGGBBAA format.
+caching = false
+
+# Changing the syntax
+# Expr is for keywords like {{ }}
+#expr_prefix = "{{"
+#expr_postfix = "}}"
+
+# Block is for stuff like for loops etc.
+#block_prefix = "<*"
+#block_postfix = "*>"
+
+# Imports json files just like `--import-json` does.
+# Relative paths will be resolved from the path `config.toml` is in.
+#import_json_files = ["./custom3.json"]
+
+# Defaults to the contrast from CLI if unspecified.
+# Value from -1 to 1.
+# -1 represents minimum contrast, 0 represents standard (i.e. the design as spec'd),
+# and 1 represents maximum contrast.
+contrast = 0
+
+[config.wallpaper]
+# Whether to set the wallpaper or not
+set = true
+
+# The base command to run for applying the wallpaper.
+# Keywords like {{ image }} or anything that works inside of hooks works here.
+# You could also set a static color if you use the color keywords and the wallpaper setter supports it.
+command = "swaybg -i{{ image }}"
+
+# For example, killing the wallpaper daemon. Usage is like a normal hook.
+# pre_hook = ""
+#[templates]
+[templates.foot]
+input_path = '~/.config/foot/themes/input-matugen-theme.ini'
+output_path = "~/.config/foot/themes/matugen-theme.ini"
+post_hook = "killall -USR1 foot" # export the sequences to every running terminal
diff --git a/config/matugen/custom3.json b/config/matugen/custom3.json
new file mode 100644
index 0000000..0967ef4
--- /dev/null
+++ b/config/matugen/custom3.json
@@ -0,0 +1 @@
+{}
diff --git a/config/matugen/scripts/foot-apply-colors.sh b/config/matugen/scripts/foot-apply-colors.sh
index 7a09d4a..312ecff 100644
--- a/config/matugen/scripts/foot-apply-colors.sh
+++ b/config/matugen/scripts/foot-apply-colors.sh
@@ -7,36 +7,36 @@ for pts in /dev/pts/[0-9]*; do
printf '\e]10;#fff3e6\007' >>"$pts" 2>/dev/null
# OSC 11: default background (background)
- printf '\e]11;#18130b\007' >>"$pts" 2>/dev/null
+ printf '\e]11;#18120b\007' >>"$pts" 2>/dev/null
# OSC 12: cursor color (первое значение из cursor в foot.ini)
- printf '\e]12;#f2be6e\007' >>"$pts" 2>/dev/null
+ printf '\e]12;#f3bd6e\007' >>"$pts" 2>/dev/null
# OSC 17: selection background
- printf '\e]17;#976c25\007' >>"$pts" 2>/dev/null
+ printf '\e]17;#986c25\007' >>"$pts" 2>/dev/null
# OSC 19: selection foreground
printf '\e]19;#ffffff\007' >>"$pts" 2>/dev/null
# OSC 4: palette colors 0-15 (regular0-7, bright0-7)
- printf '\e]4;0;#0e0a04\007' >>"$pts" 2>/dev/null
+ printf '\e]4;0;#0e0904\007' >>"$pts" 2>/dev/null
printf '\e]4;1;#ffb4ab\007' >>"$pts" 2>/dev/null
- printf '\e]4;2;#b6cea3\007' >>"$pts" 2>/dev/null
- printf '\e]4;3;#dcc3a1\007' >>"$pts" 2>/dev/null
- printf '\e]4;4;#f2be6e\007' >>"$pts" 2>/dev/null
+ printf '\e]4;2;#b7cea2\007' >>"$pts" 2>/dev/null
+ printf '\e]4;3;#ddc2a1\007' >>"$pts" 2>/dev/null
+ printf '\e]4;4;#f3bd6e\007' >>"$pts" 2>/dev/null
printf '\e]4;5;#867154\007' >>"$pts" 2>/dev/null
- printf '\e]4;6;#657b55\007' >>"$pts" 2>/dev/null
- printf '\e]4;7;#d2c4b4\007' >>"$pts" 2>/dev/null
+ printf '\e]4;6;#667b55\007' >>"$pts" 2>/dev/null
+ printf '\e]4;7;#d3c4b4\007' >>"$pts" 2>/dev/null
printf '\e]4;8;#352e26\007' >>"$pts" 2>/dev/null
printf '\e]4;9;#ffffff\007' >>"$pts" 2>/dev/null
- printf '\e]4;10;#0e2004\007' >>"$pts" 2>/dev/null
- printf '\e]4;11;#261904\007' >>"$pts" 2>/dev/null
- printf '\e]4;12;#976c25\007' >>"$pts" 2>/dev/null
- printf '\e]4;13;#6f4a00\007' >>"$pts" 2>/dev/null
+ printf '\e]4;10;#0f2004\007' >>"$pts" 2>/dev/null
+ printf '\e]4;11;#271904\007' >>"$pts" 2>/dev/null
+ printf '\e]4;12;#986c25\007' >>"$pts" 2>/dev/null
+ printf '\e]4;13;#704a01\007' >>"$pts" 2>/dev/null
printf '\e]4;14;#142508\007' >>"$pts" 2>/dev/null
printf '\e]4;15;#362f27\007' >>"$pts" 2>/dev/null
# Дополнительные индексы палитры (16, 17), если используются
- printf '\e]4;16;#b6cea3\007' >>"$pts" 2>/dev/null
+ printf '\e]4;16;#b7cea2\007' >>"$pts" 2>/dev/null
printf '\e]4;17;#da342e\007' >>"$pts" 2>/dev/null
done
diff --git a/config/mimeapps.list b/config/mimeapps.list
index 563711b..e39c0ac 100644
--- a/config/mimeapps.list
+++ b/config/mimeapps.list
@@ -72,7 +72,7 @@ video/mp4=mpv.desktop
video/webm=mpv.desktop
x-scheme-handler/anytype=anytype.desktop
x-scheme-handler/chrome=zen.desktop
-x-scheme-handler/discord=equibop.desktop
+x-scheme-handler/discord=vesktop.desktop
x-scheme-handler/http=zen.desktop
x-scheme-handler/https=zen.desktop
x-scheme-handler/mailto=zen.desktop;
diff --git a/config/niri/binds.kdl b/config/niri/binds.kdl
index b83f9a4..7cc44af 100644
--- a/config/niri/binds.kdl
+++ b/config/niri/binds.kdl
@@ -19,7 +19,7 @@ binds {
Mod+D repeat=false { spawn "walker"; }
Mod+Alt+N repeat=false { spawn-sh "bash ~/.config/niri/noctalia-toggle.sh";}
- Mod+Alt+I repeat=false { spawn-sh "bash ~/.config/niri/ironbar-toggle.sh";}
+ Mod+Alt+I repeat=false { spawn-sh "bash ~/.config/niri/scripts/ironbar-toggle.sh";}
// Mod+D repeat=false { spawn-sh "qs -c noctalia-shell ipc call launcher toggle"; }
Mod+Grave repeat=false { toggle-overview; }
Super+W { spawn-sh "footclient -T clipse clipse"; }
@@ -31,7 +31,7 @@ binds {
Mod+Ctrl+Return { spawn "reboot"; }
Mod+Shift+P{spawn "shutdown" "-c";}
Alt+I repeat=false {spawn "hyprpicker" "-a";}
- Mod+Alt+S allow-when-locked=true hotkey-overlay-title=null { spawn-sh "pkill orca || exec orca"; } // такое себе
+ // Mod+Alt+S allow-when-locked=true hotkey-overlay-title=null { spawn-sh "pkill orca || exec orca"; } // такое себе
Mod+E repeat=false {spawn-sh "bash ~/.config/niri/scripts/ocr.sh";}
// Mod+Shift+G {}
@@ -297,6 +297,7 @@ binds {
Mod+S { screenshot; }
Super+Shift+S { screenshot-screen; }
+ Mod+Alt+S {spawn-sh "bash ~/.config/niri/scripts/satty.sh";}
//Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; }
Mod+Shift+Escape { quit; }
Ctrl+Alt+Delete { quit; }
diff --git a/config/niri/colors.kdl b/config/niri/colors.kdl
index a3d2626..88585e9 100644
--- a/config/niri/colors.kdl
+++ b/config/niri/colors.kdl
@@ -1,13 +1,13 @@
layout {
focus-ring {
- active-color "#f2be6e"
- inactive-color "#aa9e8e"
+ active-color "#f3bd6e"
+ inactive-color "#ab9e8e"
urgent-color "#ffb4ab"
}
border {
- active-color "#f2be6e"
- inactive-color "#aa9e8e"
+ active-color "#f3bd6e"
+ inactive-color "#ab9e8e"
urgent-color "#ffb4ab"
}
@@ -17,13 +17,13 @@ layout {
}
tab-indicator {
- active-color "#f2be6e"
- inactive-color "#aa9e8e"
+ active-color "#f3bd6e"
+ inactive-color "#ab9e8e"
urgent-color "#ffb4ab"
}
insert-hint {
- color "#f2be6e80"
+ color "#f3bd6e80"
}
}
diff --git a/config/niri/config.kdl b/config/niri/config.kdl
index ef64efb..529b93f 100644
--- a/config/niri/config.kdl
+++ b/config/niri/config.kdl
@@ -26,7 +26,7 @@ hotkey-overlay {
skip-at-startup
}
prefer-no-csd
-screenshot-path "~/imgs/screenshots/screenshot-from-%Y-%m-%d %H-%M-%S.png"
+screenshot-path "~/imgs/screenshots/screenshot-from-%Y-%m-%d_%H-%M-%S.png"
// You can also set this to null to disable saving screenshots to disk.
// screenshot-path null
recent-windows {
diff --git a/config/niri/dms/alttab.kdl b/config/niri/dms/alttab.kdl
new file mode 100644
index 0000000..3f291e7
--- /dev/null
+++ b/config/niri/dms/alttab.kdl
@@ -0,0 +1,10 @@
+// ! DO NOT EDIT !
+ // ! AUTO-GENERATED BY DMS !
+ // ! CHANGES WILL BE OVERWRITTEN !
+ // ! PLACE YOUR CUSTOM CONFIGURATION ELSEWHERE !
+
+ recent-windows {
+ highlight {
+ corner-radius 10
+ }
+ }
diff --git a/config/niri/dms/binds.kdl b/config/niri/dms/binds.kdl
new file mode 100644
index 0000000..dc1d7cc
--- /dev/null
+++ b/config/niri/dms/binds.kdl
@@ -0,0 +1,221 @@
+binds {
+ // === System & Overview ===
+ Mod+D repeat=false { toggle-overview; }
+ Mod+Tab repeat=false { toggle-overview; }
+ Mod+Shift+Slash { show-hotkey-overlay; }
+
+ // === Application Launchers ===
+ Mod+T hotkey-overlay-title="Open Terminal" { spawn "ghostty"; }
+ Mod+Space hotkey-overlay-title="Application Launcher" {
+ spawn "dms" "ipc" "call" "spotlight" "toggle";
+ }
+ Mod+V hotkey-overlay-title="Clipboard Manager" {
+ spawn "dms" "ipc" "call" "clipboard" "toggle";
+ }
+ Mod+M hotkey-overlay-title="Task Manager" {
+ spawn "dms" "ipc" "call" "processlist" "focusOrToggle";
+ }
+
+ Super+X hotkey-overlay-title="Power Menu: Toggle" { spawn "dms" "ipc" "call" "powermenu" "toggle"; }
+ Mod+Comma hotkey-overlay-title="Settings" {
+ spawn "dms" "ipc" "call" "settings" "focusOrToggle";
+ }
+ Mod+Y hotkey-overlay-title="Browse Wallpapers" {
+ spawn "dms" "ipc" "call" "dankdash" "wallpaper";
+ }
+ Mod+N hotkey-overlay-title="Notification Center" { spawn "dms" "ipc" "call" "notifications" "toggle"; }
+ Mod+Shift+N hotkey-overlay-title="Notepad" { spawn "dms" "ipc" "call" "notepad" "toggle"; }
+
+ // === Security ===
+ Mod+Alt+L hotkey-overlay-title="Lock Screen" {
+ spawn "dms" "ipc" "call" "lock" "lock";
+ }
+ Mod+Shift+E { quit; }
+ Ctrl+Alt+Delete hotkey-overlay-title="Task Manager" {
+ spawn "dms" "ipc" "call" "processlist" "focusOrToggle";
+ }
+
+ // === Audio Controls ===
+ XF86AudioRaiseVolume allow-when-locked=true {
+ spawn "dms" "ipc" "call" "audio" "increment" "3";
+ }
+ XF86AudioLowerVolume allow-when-locked=true {
+ spawn "dms" "ipc" "call" "audio" "decrement" "3";
+ }
+ XF86AudioMute allow-when-locked=true {
+ spawn "dms" "ipc" "call" "audio" "mute";
+ }
+ XF86AudioMicMute allow-when-locked=true {
+ spawn "dms" "ipc" "call" "audio" "micmute";
+ }
+ XF86AudioPause allow-when-locked=true {
+ spawn "dms" "ipc" "call" "mpris" "playPause";
+ }
+ XF86AudioPlay allow-when-locked=true {
+ spawn "dms" "ipc" "call" "mpris" "playPause";
+ }
+ XF86AudioPrev allow-when-locked=true {
+ spawn "dms" "ipc" "call" "mpris" "previous";
+ }
+ XF86AudioNext allow-when-locked=true {
+ spawn "dms" "ipc" "call" "mpris" "next";
+ }
+ Ctrl+XF86AudioRaiseVolume allow-when-locked=true {
+ spawn "dms" "ipc" "call" "mpris" "increment" "3";
+ }
+ Ctrl+XF86AudioLowerVolume allow-when-locked=true {
+ spawn "dms" "ipc" "call" "mpris" "decrement" "3";
+ }
+
+ // === Brightness Controls ===
+ XF86MonBrightnessUp allow-when-locked=true {
+ spawn "dms" "ipc" "call" "brightness" "increment" "5" "";
+ }
+ XF86MonBrightnessDown allow-when-locked=true {
+ spawn "dms" "ipc" "call" "brightness" "decrement" "5" "";
+ }
+
+ // === Window Management ===
+ Mod+Q repeat=false { close-window; }
+ Mod+F { maximize-column; }
+ Mod+Shift+F { fullscreen-window; }
+ Mod+Shift+T { toggle-window-floating; }
+ Mod+Shift+V { switch-focus-between-floating-and-tiling; }
+ Mod+W { toggle-column-tabbed-display; }
+ Mod+Shift+W hotkey-overlay-title="Create window rule" { spawn "dms" "ipc" "call" "window-rules" "toggle"; }
+
+ // === Focus Navigation ===
+ Mod+Left { focus-column-left; }
+ Mod+Down { focus-window-down; }
+ Mod+Up { focus-window-up; }
+ Mod+Right { focus-column-right; }
+ Mod+H { focus-column-left; }
+ Mod+J { focus-window-down; }
+ Mod+K { focus-window-up; }
+ Mod+L { focus-column-right; }
+
+ // === Window Movement ===
+ Mod+Shift+Left { move-column-left; }
+ Mod+Shift+Down { move-window-down; }
+ Mod+Shift+Up { move-window-up; }
+ Mod+Shift+Right { move-column-right; }
+ Mod+Shift+H { move-column-left; }
+ Mod+Shift+J { move-window-down; }
+ Mod+Shift+K { move-window-up; }
+ Mod+Shift+L { move-column-right; }
+
+ // === Column Navigation ===
+ Mod+Home { focus-column-first; }
+ Mod+End { focus-column-last; }
+ Mod+Ctrl+Home { move-column-to-first; }
+ Mod+Ctrl+End { move-column-to-last; }
+
+ // === Monitor Navigation ===
+ Mod+Ctrl+Left { focus-monitor-left; }
+ //Mod+Ctrl+Down { focus-monitor-down; }
+ //Mod+Ctrl+Up { focus-monitor-up; }
+ Mod+Ctrl+Right { focus-monitor-right; }
+ Mod+Ctrl+H { focus-monitor-left; }
+ Mod+Ctrl+J { focus-monitor-down; }
+ Mod+Ctrl+K { focus-monitor-up; }
+ Mod+Ctrl+L { focus-monitor-right; }
+
+ // === Move to Monitor ===
+ Mod+Shift+Ctrl+Left { move-column-to-monitor-left; }
+ Mod+Shift+Ctrl+Down { move-column-to-monitor-down; }
+ Mod+Shift+Ctrl+Up { move-column-to-monitor-up; }
+ Mod+Shift+Ctrl+Right { move-column-to-monitor-right; }
+ Mod+Shift+Ctrl+H { move-column-to-monitor-left; }
+ Mod+Shift+Ctrl+J { move-column-to-monitor-down; }
+ Mod+Shift+Ctrl+K { move-column-to-monitor-up; }
+ Mod+Shift+Ctrl+L { move-column-to-monitor-right; }
+
+ // === Workspace Navigation ===
+ Mod+Page_Down { focus-workspace-down; }
+ Mod+Page_Up { focus-workspace-up; }
+ Mod+U { focus-workspace-down; }
+ Mod+I { focus-workspace-up; }
+ Mod+Ctrl+Down { move-column-to-workspace-down; }
+ Mod+Ctrl+Up { move-column-to-workspace-up; }
+ Mod+Ctrl+U { move-column-to-workspace-down; }
+ Mod+Ctrl+I { move-column-to-workspace-up; }
+
+ // === Workspace Management ===
+ Ctrl+Shift+R hotkey-overlay-title="Rename Workspace" {
+ spawn "dms" "ipc" "call" "workspace-rename" "open";
+ }
+
+ // === Move Workspaces ===
+ Mod+Shift+Page_Down { move-workspace-down; }
+ Mod+Shift+Page_Up { move-workspace-up; }
+ Mod+Shift+U { move-workspace-down; }
+ Mod+Shift+I { move-workspace-up; }
+
+ // === Mouse Wheel Navigation ===
+ Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; }
+ Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; }
+ Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; }
+ Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; }
+
+ Mod+WheelScrollRight { focus-column-right; }
+ Mod+WheelScrollLeft { focus-column-left; }
+ Mod+Ctrl+WheelScrollRight { move-column-right; }
+ Mod+Ctrl+WheelScrollLeft { move-column-left; }
+
+ Mod+Shift+WheelScrollDown { focus-column-right; }
+ Mod+Shift+WheelScrollUp { focus-column-left; }
+ Mod+Ctrl+Shift+WheelScrollDown { move-column-right; }
+ Mod+Ctrl+Shift+WheelScrollUp { move-column-left; }
+
+ // === Numbered Workspaces ===
+ Mod+1 { focus-workspace 1; }
+ Mod+2 { focus-workspace 2; }
+ Mod+3 { focus-workspace 3; }
+ Mod+4 { focus-workspace 4; }
+ Mod+5 { focus-workspace 5; }
+ Mod+6 { focus-workspace 6; }
+ Mod+7 { focus-workspace 7; }
+ Mod+8 { focus-workspace 8; }
+ Mod+9 { focus-workspace 9; }
+
+ // === Move to Numbered Workspaces ===
+ Mod+Shift+1 { move-column-to-workspace 1; }
+ Mod+Shift+2 { move-column-to-workspace 2; }
+ Mod+Shift+3 { move-column-to-workspace 3; }
+ Mod+Shift+4 { move-column-to-workspace 4; }
+ Mod+Shift+5 { move-column-to-workspace 5; }
+ Mod+Shift+6 { move-column-to-workspace 6; }
+ Mod+Shift+7 { move-column-to-workspace 7; }
+ Mod+Shift+8 { move-column-to-workspace 8; }
+ Mod+Shift+9 { move-column-to-workspace 9; }
+
+ // === Column Management ===
+ Mod+BracketLeft { consume-or-expel-window-left; }
+ Mod+BracketRight { consume-or-expel-window-right; }
+ Mod+Period { expel-window-from-column; }
+
+ // === Sizing & Layout ===
+ Mod+R { switch-preset-column-width; }
+ Mod+Shift+R { switch-preset-window-height; }
+ Mod+Ctrl+R { reset-window-height; }
+ Mod+Ctrl+F { expand-column-to-available-width; }
+ Mod+C { center-column; }
+ Mod+Ctrl+C { center-visible-columns; }
+
+ // === Manual Sizing ===
+ Mod+Minus { set-column-width "-10%"; }
+ Mod+Equal { set-column-width "+10%"; }
+ Mod+Shift+Minus { set-window-height "-10%"; }
+ Mod+Shift+Equal { set-window-height "+10%"; }
+
+ // === Screenshots ===
+ XF86Launch1 { screenshot; }
+ Ctrl+XF86Launch1 { screenshot-screen; }
+ Alt+XF86Launch1 { screenshot-window; }
+ Print { screenshot; }
+ Ctrl+Print { screenshot-screen; }
+ Alt+Print { screenshot-window; }
+ // === System Controls ===
+ Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; }
+ Mod+Shift+P { power-off-monitors; }
+}
diff --git a/config/niri/dms/colors.kdl b/config/niri/dms/colors.kdl
new file mode 100644
index 0000000..37650a6
--- /dev/null
+++ b/config/niri/dms/colors.kdl
@@ -0,0 +1,39 @@
+// ! Auto-generated file. Do not edit directly.
+// Remove `include "dms/colors.kdl"` from your config to override.
+
+layout {
+ background-color "transparent"
+
+ focus-ring {
+ active-color "#b8a8f0"
+ inactive-color "#c9b8d9"
+ urgent-color "#f38ba8"
+ }
+
+ border {
+ active-color "#b8a8f0"
+ inactive-color "#c9b8d9"
+ urgent-color "#f38ba8"
+ }
+
+ shadow {
+ color "#00000070"
+ }
+
+ tab-indicator {
+ active-color "#b8a8f0"
+ inactive-color "#c9b8d9"
+ urgent-color "#f38ba8"
+ }
+
+ insert-hint {
+ color "#b8a8f080"
+ }
+}
+
+recent-windows {
+ highlight {
+ active-color "#745b8c"
+ urgent-color "#f38ba8"
+ }
+}
diff --git a/config/niri/dms/cursor.kdl b/config/niri/dms/cursor.kdl
new file mode 100644
index 0000000..66f77fc
--- /dev/null
+++ b/config/niri/dms/cursor.kdl
@@ -0,0 +1,10 @@
+// ! DO NOT EDIT !
+// ! AUTO-GENERATED BY DMS !
+// ! CHANGES WILL BE OVERWRITTEN !
+// ! PLACE YOUR CUSTOM CONFIGURATION ELSEWHERE !
+
+cursor {
+ xcursor-theme "Bibata-Modern-Ice"
+ xcursor-size 21
+ hide-when-typing
+}
\ No newline at end of file
diff --git a/config/niri/dms/layout.kdl b/config/niri/dms/layout.kdl
new file mode 100644
index 0000000..72566f6
--- /dev/null
+++ b/config/niri/dms/layout.kdl
@@ -0,0 +1,22 @@
+// ! DO NOT EDIT !
+ // ! AUTO-GENERATED BY DMS !
+ // ! CHANGES WILL BE OVERWRITTEN !
+ // ! PLACE YOUR CUSTOM CONFIGURATION ELSEWHERE !
+
+ layout {
+ gaps 10
+
+ border {
+ width 2
+ }
+
+ focus-ring {
+ width 2
+ }
+ }
+ window-rule {
+ geometry-corner-radius 10
+ clip-to-geometry true
+ tiled-state true
+ draw-border-with-background false
+ }
diff --git a/config/niri/dms/outputs.kdl b/config/niri/dms/outputs.kdl
new file mode 120000
index 0000000..21614dd
--- /dev/null
+++ b/config/niri/dms/outputs.kdl
@@ -0,0 +1 @@
+/home/unconfer/.config/niri/dms/profiles/profile_1776211496314_g03e3q.kdl
\ No newline at end of file
diff --git a/config/niri/dms/profiles/profile_1776211496314_g03e3q.kdl b/config/niri/dms/profiles/profile_1776211496314_g03e3q.kdl
new file mode 100644
index 0000000..334b0ca
--- /dev/null
+++ b/config/niri/dms/profiles/profile_1776211496314_g03e3q.kdl
@@ -0,0 +1,12 @@
+// Auto-generated by DMS - do not edit manually
+
+output "DP-1" {
+ mode "1920x1080@165.000"
+ scale 1
+ position x=0 y=0
+ variable-refresh-rate on-demand=true
+ hot-corners {
+ top-left
+ }
+}
+
diff --git a/config/niri/dms/windowrules.kdl b/config/niri/dms/windowrules.kdl
new file mode 100644
index 0000000..e69de29
diff --git a/config/niri/dms/wpblur.kdl b/config/niri/dms/wpblur.kdl
new file mode 100644
index 0000000..3d58802
--- /dev/null
+++ b/config/niri/dms/wpblur.kdl
@@ -0,0 +1,9 @@
+// ! DO NOT EDIT !
+// ! AUTO-GENERATED BY DMS !
+// ! CHANGES WILL BE OVERWRITTEN !
+// ! PLACE YOUR CUSTOM CONFIGURATION ELSEWHERE !
+
+layer-rule {
+ match namespace="dms:blurwallpaper"
+ place-within-backdrop true
+}
diff --git a/config/niri/scripts/caps b/config/niri/scripts/caps
new file mode 100755
index 0000000..7aff6bf
--- /dev/null
+++ b/config/niri/scripts/caps
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+NOTIFY_ID=""
+LAST_LAYOUT=""
+
+while IFS= read -r line; do
+ if [[ "$line" == *"Keyboard layout switched"* ]]; then
+ # Извлекаем индекс раскладки встроенным регулярным выражением
+ if [[ "$line" =~ ([0-9]+) ]]; then
+ layout="${BASH_REMATCH[1]}"
+ else
+ continue
+ fi
+
+ # Пропускаем дубликаты событий (снижает нагрузку и мигание индикаторов)
+ if [[ "$layout" == "$LAST_LAYOUT" ]]; then
+ continue
+ fi
+ LAST_LAYOUT="$layout"
+
+ if [[ "$layout" == "1" ]]; then
+ brightnessctl -d 'input12::capslock' s 1
+ msg="RU"
+ else
+ brightnessctl -d 'input12::capslock' s 0
+ msg="EN"
+ fi
+
+ if [[ -z "$NOTIFY_ID" ]]; then
+ NOTIFY_ID=$(notify-send --print-id "keymap" "$msg")
+ else
+ notify-send -r "$NOTIFY_ID" "keymap" "$msg"
+ fi
+ fi
+done < <(niri msg event-stream)
diff --git a/config/niri/scripts/clipse.sh b/config/niri/scripts/clipse.sh
new file mode 100644
index 0000000..13187da
--- /dev/null
+++ b/config/niri/scripts/clipse.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+bash ~/.config/matugen/scripts/foot-apply-colors.sh
+footclient -T clipse clipse
diff --git a/config/niri/scripts/ironbar-toggle.sh b/config/niri/scripts/ironbar-toggle.sh
new file mode 100755
index 0000000..ac00fd0
--- /dev/null
+++ b/config/niri/scripts/ironbar-toggle.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+COMMAND="ironbar"
+
+# Проверяем, существует ли процесс с указанной командной строкой
+if pgrep -x "$COMMAND" >/dev/null 2>&1; then
+ notify-send "[INFO]" "ironbar уже работает, запускаю остановку... " -t 700
+ pkill -x ironbar
+else
+ notify-send "[INFO]" "ironbar не активен, запускаю..." -t 700
+ exec $COMMAND &>/dev/null &
+fi
diff --git a/config/niri/scripts/satty.sh b/config/niri/scripts/satty.sh
new file mode 100644
index 0000000..f1fe3d6
--- /dev/null
+++ b/config/niri/scripts/satty.sh
@@ -0,0 +1,27 @@
+#!/bin/bash
+set -e
+
+TIMESTAMP=$(date '+%Y%m%d-%H%M%S')
+TMPFILE="/tmp/satty-${TIMESTAMP}.png"
+OUTPUT_DIR="$HOME/imgs/screenshots"
+mkdir -p "$OUTPUT_DIR"
+
+# Запускаем скриншот niri в указанный путь
+niri msg action screenshot-screen --path "$TMPFILE"
+
+# Ждём появления файла (с таймаутом)
+for i in $(seq 1 60); do
+ [ -f "$TMPFILE" ] && break
+ sleep 0.1
+done
+
+# Если файл создан — открываем в Satty
+if [ -f "$TMPFILE" ]; then
+ satty --filename "$TMPFILE" \
+ --output-filename "${OUTPUT_DIR}/screenshot-from-${TIMESTAMP}.png" \
+ --copy-command wl-copy \
+ --early-exit
+ rm -f "$TMPFILE"
+ # niri msg action focus-window-previous
+
+fi
diff --git a/config/niri/spawn-at-startup.kdl b/config/niri/spawn-at-startup.kdl
index fb180e3..2243e67 100644
--- a/config/niri/spawn-at-startup.kdl
+++ b/config/niri/spawn-at-startup.kdl
@@ -1,7 +1,7 @@
spawn-at-startup "niri-screen-time" "-daemon"
spawn-sh-at-startup "foot --server"
-spawn-sh-at-startup "bash ~/.config/niri/caps"
+spawn-sh-at-startup "bash ~/.config/niri/scripts/caps"
spawn-at-startup "mpDris2"
spawn-at-startup "swayosd-server"
spawn-sh-at-startup "hyprwave && hyprwave-toggle visibility"
diff --git a/config/niri/window-rule.kdl b/config/niri/window-rule.kdl
index ecbea94..43a3383 100644
--- a/config/niri/window-rule.kdl
+++ b/config/niri/window-rule.kdl
@@ -29,10 +29,12 @@ match is-floating=true
border {
off
}
+}
-
-
-
+window-rule {
+ match app-id="com.gabm.satty"
+ open-fullscreen true
+ open-floating false
}
diff --git a/config/nvim/lua/matugen.lua b/config/nvim/lua/matugen.lua
index 40db7bc..aec9626 100644
--- a/config/nvim/lua/matugen.lua
+++ b/config/nvim/lua/matugen.lua
@@ -3,23 +3,23 @@ local M = {}
function M.setup()
require("base16-colorscheme").setup({
-- Background tones
- base00 = "#18130b", -- Default Background
+ base00 = "#18120b", -- Default Background
base01 = "#2a241c", -- Lighter Background (status bars)
base02 = "#352e26", -- Selection Background
- base03 = "#aa9e8e", -- Comments, Invisibles
+ base03 = "#ab9e8e", -- Comments, Invisibles
-- Foreground tones
- base04 = "#d2c4b4", -- Dark Foreground (status bars)
+ base04 = "#d3c4b4", -- Dark Foreground (status bars)
base05 = "#fff3e6", -- Default Foreground
base06 = "#fff3e6", -- Light Foreground
base07 = "#ede1d4", -- Lightest Foreground
-- Accent colors
base08 = "#ffb4ab", -- Variables, XML Tags, Errors
- base09 = "#b6cea3", -- Integers, Constants
- base0A = "#dcc3a1", -- Classes, Search Background
- base0B = "#f2be6e", -- Strings, Diff Inserted
- base0C = "#b6cea3", -- Regex, Escape Chars
- base0D = "#f2be6e", -- Functions, Methods
- base0E = "#dcc3a1", -- Keywords, Storage
+ base09 = "#b7cea2", -- Integers, Constants
+ base0A = "#ddc2a1", -- Classes, Search Background
+ base0B = "#f3bd6e", -- Strings, Diff Inserted
+ base0C = "#b7cea2", -- Regex, Escape Chars
+ base0D = "#f3bd6e", -- Functions, Methods
+ base0E = "#ddc2a1", -- Keywords, Storage
base0F = "#da342e", -- Deprecated, Embedded Tags
})
end
diff --git a/config/rmpc/themes/matugen.ron b/config/rmpc/themes/matugen.ron
index 3dfbc6a..5666caa 100644
--- a/config/rmpc/themes/matugen.ron
+++ b/config/rmpc/themes/matugen.ron
@@ -8,20 +8,20 @@
format_tag_separator: " | ",
browser_column_widths: [20, 38, 42],
background_color: None,
- text_color: Some("#dcc3a1"),
+ text_color: Some("#ddc2a1"),
header_background_color: None,
modal_background_color: None,
modal_backdrop: false,
- preview_label_style: (fg: "#f2be6e"),
- preview_metadata_group_style: (fg: "#b6cea3", modifiers: "Bold"),
+ preview_label_style: (fg: "#f3bd6e"),
+ preview_metadata_group_style: (fg: "#b7cea2", modifiers: "Bold"),
tab_bar: (
- active_style: (fg: "#2c1e08", bg: "#dcc3a1", modifiers: "Bold"),
- inactive_style: (fg: "#dcc3a1", modifiers: "Bold"),
+ active_style: (fg: "#2c1e08", bg: "#ddc2a1", modifiers: "Bold"),
+ inactive_style: (fg: "#ddc2a1", modifiers: "Bold"),
),
- highlighted_item_style: (fg: "#dcc3a1", modifiers: "Bold"),
- current_item_style: (fg: "#dcc3a1", bg: "#6f4a00", modifiers: "Bold"),
- borders_style: (fg: "#dcc3a1"),
- highlight_border_style: (fg: "#dcc3a1"),
+ highlighted_item_style: (fg: "#ddc2a1", modifiers: "Bold"),
+ current_item_style: (fg: "#ddc2a1", bg: "#704a01", modifiers: "Bold"),
+ borders_style: (fg: "#ddc2a1"),
+ highlight_border_style: (fg: "#ddc2a1"),
symbols: (
song: "S",
dir: "D",
@@ -45,45 +45,45 @@
fg: "#2c1e08",
),
elapsed_style: (
- fg: "#dcc3a1",
+ fg: "#ddc2a1",
),
thumb_style: (
- fg: "#dcc3a1",
+ fg: "#ddc2a1",
),
use_track_when_empty: false,
),
scrollbar: (
symbols: ["│", "█", "▲", "▼"],
- track_style: (fg: "#dcc3a1"),
- ends_style: (fg: "#f9debb"),
- thumb_style: (fg: "#f2be6e"),
+ track_style: (fg: "#ddc2a1"),
+ ends_style: (fg: "#fadebc"),
+ thumb_style: (fg: "#f3bd6e"),
),
song_table_format: [
(
prop: (
kind: Property(Artist),
- style: (fg: "#ffddb0"),
- default: (kind: Text("Unknown"), style: (fg: "#ffddb0"))
+ style: (fg: "#ffddb1"),
+ default: (kind: Text("Unknown"), style: (fg: "#ffddb1"))
),
width: "20%",
),
(
prop: (
kind: Property(Title),
- style: (fg: "#f2be6e"),
- default: (kind: Text("Unknown"), style: (fg: "#ffddb0"))
+ style: (fg: "#f3bd6e"),
+ default: (kind: Text("Unknown"), style: (fg: "#ffddb1"))
),
width: "35%",
),
(
- prop: (kind: Property(Album), style: (fg: "#ffddb0"),
- default: (kind: Text("Unknown Album"), style: (fg: "#ffddb0"))
+ prop: (kind: Property(Album), style: (fg: "#ffddb1"),
+ default: (kind: Text("Unknown Album"), style: (fg: "#ffddb1"))
),
width: "30%",
),
(
- prop: (kind: Property(Duration), style: (fg: "#f2be6e"),
- default: (kind: Text("-"), style: (fg: "#ffddb0"))
+ prop: (kind: Property(Duration), style: (fg: "#f3bd6e"),
+ default: (kind: Text("-"), style: (fg: "#ffddb1"))
),
width: "15%",
alignment: Right,
@@ -115,12 +115,12 @@
rows: [
(
left: [
- (kind: Text("["), style: (fg: "#b6cea3", modifiers: "Bold")),
+ (kind: Text("["), style: (fg: "#b7cea2", modifiers: "Bold")),
(
kind: Property(Status(StateV2(playing_label: "Playing", paused_label: "Paused", stopped_label: "Stopped"))),
- style: (fg: "#b6cea3", modifiers: "Bold")
+ style: (fg: "#b7cea2", modifiers: "Bold")
),
- (kind: Text("]"), style: (fg: "#b6cea3", modifiers: "Bold"))
+ (kind: Text("]"), style: (fg: "#b7cea2", modifiers: "Bold"))
],
center: [
(kind: Property(Song(Title)), style: (modifiers: "Bold"),
@@ -128,8 +128,8 @@
)
],
right: [
- (kind: Property(Widget(ScanStatus)), style: (fg: "#f2be6e")),
- (kind: Property(Widget(Volume)), style: (fg: "#f2be6e"))
+ (kind: Property(Widget(ScanStatus)), style: (fg: "#f3bd6e")),
+ (kind: Property(Widget(Volume)), style: (fg: "#f3bd6e"))
]
),
(
@@ -142,22 +142,22 @@
(kind: Text(" kbps)"))
],
center: [
- (kind: Property(Song(Artist)), style: (fg: "#b6cea3", modifiers: "Bold"),
- default: (kind: Text("Unknown"), style: (fg: "#b6cea3", modifiers: "Bold"))
+ (kind: Property(Song(Artist)), style: (fg: "#b7cea2", modifiers: "Bold"),
+ default: (kind: Text("Unknown"), style: (fg: "#b7cea2", modifiers: "Bold"))
),
(kind: Text(" - ")),
(kind: Property(Song(Album)),
- style: (fg: "#f2be6e"),
+ style: (fg: "#f3bd6e"),
default: (kind: Text("Unknown Album"))
)
],
right: [
(
kind: Property(Widget(States(
- active_style: (fg: "#f2be6e", modifiers: "Bold"),
- separator_style: (fg: "#f2be6e")))
+ active_style: (fg: "#f3bd6e", modifiers: "Bold"),
+ separator_style: (fg: "#f3bd6e")))
),
- style: (fg: "#dcc3a1")
+ style: (fg: "#ddc2a1")
),
]
),
@@ -166,17 +166,17 @@
browser_song_format: [
(
kind: Group([
- (kind: Property(Track), style: (fg: "#f2be6e")),
+ (kind: Property(Track), style: (fg: "#f3bd6e")),
(kind: Text(" ")),
])
),
(
kind: Group([
- (kind: Property(Artist), style: (fg: "#f2be6e")),
+ (kind: Property(Artist), style: (fg: "#f3bd6e")),
(kind: Text(" - ")),
- (kind: Property(Title), style: (fg: "#f2be6e")),
+ (kind: Property(Title), style: (fg: "#f3bd6e")),
]),
- default: (kind: Property(Filename), style: (fg: "#f2be6e"))
+ default: (kind: Property(Filename), style: (fg: "#f3bd6e"))
),
],
lyrics: (
@@ -199,8 +199,8 @@
// support them as well!
// rmpc does not support `horizontal_gradient` (yet?)
bar_color: Gradient({
- 0: "#976c25",
- 50: "#f2be6e",
+ 0: "#986c25",
+ 50: "#f3bd6e",
100: "#ffffff"
})
),
diff --git a/config/starship.toml b/config/starship.toml
index 67041d0..66ce810 100644
--- a/config/starship.toml
+++ b/config/starship.toml
@@ -5,15 +5,15 @@ $character'''
palette = 'colors'
[palettes.colors]
-color1 = '#f2be6e'
-color2 = '#2f1d00'
-color3 = '#d2c4b4'
+color1 = '#f3bd6e'
+color2 = '#301d00'
+color3 = '#d3c4b4'
color4 = '#2a241c'
-color5 = '#2f1d00'
-color6 = '#18130b'
-color7 = '#18130b'
-color8 = '#f2be6e'
-color9 = '#b6cea3'
+color5 = '#301d00'
+color6 = '#18120b'
+color7 = '#18120b'
+color8 = '#f3bd6e'
+color9 = '#b7cea2'
# Prompt symbols
[character]
diff --git a/config/swaync/colors.css b/config/swaync/colors.css
index 865173d..3cc77fe 100644
--- a/config/swaync/colors.css
+++ b/config/swaync/colors.css
@@ -1,16 +1,16 @@
:root {
- --cc-bg: #18130b;
- --noti-border-color: #f2be6e;
- --noti-bg: #18130b;
+ --cc-bg: #18120b;
+ --noti-border-color: #f3bd6e;
+ --noti-bg: #18120b;
--noti-bg-alpha: ;
- --noti-bg-darker: #18130b;
- --noti-bg-hover: #261904;
- --noti-bg-focus: 976c25;
- --noti-close-bg: #976c25
- --noti-close-bg-hover: #6f4a00;
+ --noti-bg-darker: #18120b;
+ --noti-bg-hover: #271904;
+ --noti-bg-focus: 986c25;
+ --noti-close-bg: #986c25
+ --noti-close-bg-hover: #704a01;
--text-color: #fff3e6;
--text-color-disabled: rgb(150, 150, 150);
- --bg-selected: #976c25;
+ --bg-selected: #986c25;
--notification-icon-size: 64px;
--notification-app-icon-size: calc(var(--notification-icon-size) / 3);
--notification-group-icon-size: 32px;
diff --git a/config/swaync/config_1.json b/config/swaync/config_1.json
new file mode 100644
index 0000000..859a341
--- /dev/null
+++ b/config/swaync/config_1.json
@@ -0,0 +1,97 @@
+{
+ "$schema": "/etc/xdg/swaync/configschema.json",
+ "positionX": "right",
+ "positionY": "top",
+ "cssPriority": "user",
+ "control-center-width": 450,
+ "fit-to-screen": true,
+
+ "notification-window-width": 400,
+ "notification-icon-size": 40,
+ "notification-body-image-height": 500,
+ "notification-body-image-width": 500,
+ "notification-inline-replies": true,
+ "notification-2fa-action": false,
+
+ "timeout": 4,
+ "timeout-low": 4,
+ "timeout-critical": 6,
+
+ "keyboard-shortcuts": true,
+ "image-visibility": "when-available",
+ "transition-time": 200,
+ "hide-on-clear": false,
+ "hide-on-action": false,
+ "script-fail-notify": true,
+
+ "widgets": [
+ "mpris",
+ "dnd",
+ "notifications",
+ "buttons-grid"
+ ],
+
+ "widget-config": {
+ "backlight": {
+ "device": "amdgpu_bl1",
+ "label": "",
+ "slider": true,
+ "min": 10
+ },
+ "volume": {
+ "device": "default",
+ "label": "",
+ "slider": true
+ },
+
+ "dnd": {
+ "text": "Do not disturb"
+ },
+
+ "mpris": {
+ "image-size": 110,
+ "image-radius": 12,
+ "autohide": false,
+ "blacklist": [ "org.mpris.MediaPlayer2.playerctld"]
+ },
+
+ "buttons-grid": {
+ "actions": [
+ {
+ "label": "",
+ "type": "toggle",
+ "command": "bash -c $HOME/.config/swaync/scripts/quiet.sh",
+ "update-command": "bash -c '[[ $SWAYNC_TOGGLE_STATE == true ]] && $HOME/.config/swaync/scripts/update_quiet.sh'"
+ },
+ {
+ "label": "",
+ "type": "toggle",
+ "command": "bash -c $HOME/.config/swaync/scripts/inhibit.sh",
+ "update-command": "bash -c '[[ $SWAYNC_TOGGLE_STATE == true ]] && $HOME/.config/swaync/scripts/update_inhibit.sh'"
+ },
+ {
+ "label": "",
+ "type": "toggle",
+ "command": "pactl set-source-mute @DEFAULT_SOURCE@ toggle",
+ "update-command": "bash -c '[[ $SWAYNC_TOGGLE_STATE == true ]] && $HOME/.config/swaync/scripts/update_mic.sh'"
+ },
+ {
+ "label": "",
+ "command": "hyprctl dispatch exec alacritty -- -e htop ; swaync-client -cp"
+ },
+ {
+ "label": "",
+ "command": "hyprctl dispatch exec alacritty -- -e nvtop ; swaync-client -cp"
+ },
+ {
+ "label": "",
+ "command": "hyprctl dispatch exec nwg-look ; swaync-client -cp"
+ },
+ {
+ "label": "",
+ "command": "swaync-client -cp ; bash -c $HOME/.config/rofi/bin/logout"
+ }
+ ]
+ }
+ }
+ }
diff --git a/config/swaync/style_1.css b/config/swaync/style_1.css
new file mode 100644
index 0000000..a309731
--- /dev/null
+++ b/config/swaync/style_1.css
@@ -0,0 +1,323 @@
+@define-color background #08080b;
+@define-color text #acb0d0;
+@define-color text-alt #787c99;
+@define-color background-alt #0e0e14;
+@define-color selected alpha(@text-alt, .4);
+@define-color hover alpha(@selected, .4);
+@define-color urgent @text-alt;
+
+* {
+ color: @text;
+ all: unset;
+ font-size: 0.95rem;
+ font-family: "CaskaydiaCove Nerd Font Propo";
+ transition: 200ms;
+ font-weight: 700;
+}
+
+.notification {
+ padding: 0 5px;
+ border-radius: 15px;
+ border: 2px solid @background;
+ color: @text;
+}
+
+.notification-background {
+ background: @background;
+ box-shadow: none;
+ border-radius: 15px;
+ margin: 8px;
+}
+
+.notification-row .inline-reply-entry {
+ padding: 5px 10px;
+ background: @background-alt;
+ border-radius: 15px;
+}
+
+.notification-row .inline-reply-button {
+ padding: 5px 10px;
+ border-radius: 15px;
+ background: @hover;
+}
+
+.notification-row .inline-reply .inline-reply-button:hover {
+ background: @selected;
+}
+
+.notification .notification-content {
+ margin: 10px;
+}
+
+.notification-content .text-box {
+ margin: 0 0 0 15px;
+}
+
+.notification-content .time {
+ font-size: 0.95rem;
+ padding: 2px 0;
+ font-weight: 800;
+}
+
+.notification .summary {
+ font-weight: 800;
+ margin-bottom: 2px;
+ padding: 2px 0;
+ font-size: 1rem;
+}
+
+.notification .body {
+ color: @text-alt;
+ font-size: 0.8rem;
+}
+
+.notification.critical {
+ border-color: @urgent;
+}
+
+.notification.low progress,
+.notification.normal progress,
+.notification.critical progress {
+ background: @selected;
+}
+
+.notification-background .close-button {
+ margin: 6px;
+ padding: 2px;
+ border-radius: 6px;
+ background: transparent;
+}
+
+.notification-background .close-button:hover {
+ background: @hover;
+}
+
+.notification > *:last-child > * {
+ min-height: 3.2em;
+}
+
+.notification > *:last-child > * .notification-action {
+ background: @hover;
+ margin: 0 6px 9px 6px;
+ border-radius: 8px;
+}
+
+.notification > *:last-child > * .notification-action:hover {
+ background: @selected;
+}
+
+.notification > *:last-child > * .notification-action:active {
+ background: @selected;
+}
+
+.control-center {
+ background: @background;
+ border-radius: 15px;
+ margin: 5px;
+ padding: 12px;
+}
+
+.control-center .notification-background {
+ background: @background-alt;
+ margin: 7px 0;
+}
+
+/* I dont want to see close buttons in notification center */
+.control-center .notification-background .close-button,
+.notification-group-close-button{
+ opacity: 0;
+}
+
+/* Notifications expanded-group */
+.notification-group {
+ margin: 0px 8px;
+}
+
+.notification-group-headers {
+ font-weight: bold;
+ color: @text;
+}
+
+.notification-group-headers > label {
+ margin: 0 3px;
+ font-size: 1rem;
+}
+
+.notification-group-icon {
+ color: @text;
+}
+
+.notification-group-collapse-button,
+.notification-group-close-all-button {
+ background: transparent;
+ color: @text;
+ margin: 4px;
+ border-radius: 6px;
+ padding: 4px;
+}
+
+/* Do not disturb */
+.widget-dnd {
+ padding: 8px 14px;
+ border-radius: 12px;
+ margin: 5px 0;
+ color: @text;
+ background: @background-alt;
+}
+
+.widget-dnd > label {
+ font-size: 1rem;
+}
+
+.widget-dnd switch {
+ background: @hover;
+ border-radius: 8px;
+ box-shadow: none;
+ padding: 2px;
+}
+
+.widget-dnd switch slider {
+ background: @text;
+ border-radius: 8px;
+}
+
+.widget-volume,
+.widget-backlight {
+ padding: 8px 14px;
+ margin: 5px 0;
+ border-radius: 12px;
+ color: @text;
+ font-weight: 800;
+ background: @background-alt;
+}
+
+.widget-volume label,
+.widget-backlight label {
+ font-size: 1.1rem;
+}
+
+.widget-volume slider,
+.widget-backlight slider {
+ border-radius: 24px;
+ margin: -8px;
+ background: @text;
+ box-shadow: inset 0 1px 2px rgba(255, 255, 255, 0.15), 0 4px 4px rgba(0, 0, 0, 0.4);
+ opacity: 1;
+}
+
+.widget-volume trough,
+.widget-backlight trough {
+ background: @hover;
+ margin-left: 8px;
+ border-radius: 12px;
+}
+
+.widget-volume highlight,
+.widget-backlight highlight {
+ padding: 3.5px;
+ border-radius: 12px;
+ background: @text;
+}
+
+.widget-dnd switch:hover,
+.widget-buttons-grid button:hover,
+.control-center .notification-group-collapse-button:hover,
+.control-center .notification-group-close-all-button:hover
+{
+ background: @hover;
+}
+
+.widget-mpris {
+ background: @background-alt;
+ border-radius: 15px;
+ margin: 5px 0;
+ padding: 0 10px;
+}
+
+.mpris-overlay {
+ background: @background-alt;
+}
+
+.widget-mpris-player {
+ background: @background-alt;
+ color: @text;
+ margin: 0 5px;
+ padding: 10px 0 15px;
+}
+
+/* Control buttons for mpris widget */
+.widget-mpris-player .image-button:hover {
+ border-radius: 8px;
+ background: @hover;
+}
+
+.widget-mpris-player button {
+ padding: 5px;
+ margin: 0 2.5px;
+}
+
+.widget-mpris-player .mpris-overlay > box:last-child {
+ border-radius: 16px;
+ padding: 0 5px;
+ background: alpha(@hover, .3);
+}
+
+.widget-mpris-album-art {
+ border-radius: 16px;
+ margin: 6px 4px;
+}
+
+.widget-mpris-title,
+.widget-mpris-subtitle {
+ font-weight: 700;
+ margin: 0 3px;
+}
+
+.widget-mpris-title {
+ font-size: 1.2rem;
+}
+
+.widget-mpris-subtitle {
+ font-size: 0.9rem;
+ color: @text-alt;
+}
+
+.widget-buttons-grid {
+ border-radius: 12px;
+ padding: 6px 15px;
+ background: @background-alt;
+}
+
+.widget-buttons-grid button {
+ padding: 10px 10px;
+ margin: 3px;
+ background: @hover;
+ border-radius: 15px;
+}
+
+.widget-buttons-grid button > label {
+ font-size: 16px;
+ color: @text;
+}
+
+.widget-buttons-grid button:hover {
+ background: @selected;
+}
+
+.widget-buttons-grid button:checked {
+ background-color: @text;
+}
+
+.widget-buttons-grid button:checked > label {
+ color: @background;
+}
+
+/* Change color for plaseholder when no notifications */
+.control-center-list-placeholder {
+ color: @text;
+}
+
+/* Avoid 'annoying' backgroud */
+.blank-window {
+ background: transparent;
+}
diff --git a/config/swayosd/colors.css b/config/swayosd/colors.css
index d065d43..4f1e82b 100644
--- a/config/swayosd/colors.css
+++ b/config/swayosd/colors.css
@@ -1,7 +1,7 @@
:root {
- --border: #f2be6e;
- --background: #18130b;
- --background-progress: #261904;
+ --border: #f3bd6e;
+ --background: #18120b;
+ --background-progress: #271904;
diff --git a/config/telegram/matugen.tdesktop-theme b/config/telegram/matugen.tdesktop-theme
index 1c4cd10..ab3e209 100644
Binary files a/config/telegram/matugen.tdesktop-theme and b/config/telegram/matugen.tdesktop-theme differ
diff --git a/config/telegram/matugen/background.jpg b/config/telegram/matugen/background.jpg
index 8a4165a..43c35db 100644
Binary files a/config/telegram/matugen/background.jpg and b/config/telegram/matugen/background.jpg differ
diff --git a/config/telegram/matugen/background.svg b/config/telegram/matugen/background.svg
index ef5d674..15fab9b 100644
--- a/config/telegram/matugen/background.svg
+++ b/config/telegram/matugen/background.svg
@@ -1 +1 @@
-
+
diff --git a/config/telegram/matugen/colors.tdesktop-theme b/config/telegram/matugen/colors.tdesktop-theme
index daa34b9..04cee17 100644
--- a/config/telegram/matugen/colors.tdesktop-theme
+++ b/config/telegram/matugen/colors.tdesktop-theme
@@ -5,13 +5,13 @@ windowFg: #fff3e6 /* #f5f5f5 */; // black: fallback for text
windowBgOver: #352e26 /* #313b43 */; // light gray: fallback for background with mouse over
windowBgRipple: #403930 /* #3f4850 */; // darker gray: fallback for ripple effect
windowFgOver: #ffe7cd /* #e9ecf0 */; // black: fallback for text with mouse over
-windowSubTextFg: #d2c4b4 /* #82868a */; // gray: fallback for additional text
-windowSubTextFgOver: #c8b7a4 /* #797b7f */; // darker gray: fallback for additional text with mouse over
+windowSubTextFg: #d3c4b4 /* #82868a */; // gray: fallback for additional text
+windowSubTextFgOver: #cab7a4 /* #797b7f */; // darker gray: fallback for additional text with mouse over
windowBoldFg: windowFg /* #e9e8e8 */; // dark gray: fallback for bold text
windowBoldFgOver: windowBoldFg /* #e9e9e9 */; // dark gray: fallback for bold text with mouse over
-windowBgActive: #f2be6e /* #3fc1b0 */; // bright blue: fallback for blue filled active areas
-windowFgActive: #2f1d00 /* #ffffff */; // white: fallback for text on active areas (NOTE(eqrfns): this unfortunately can be used in radically different (and unexpected) places)
-windowActiveTextFg: #f2be6e /* #4be1c3 */; // online blue: fallback for active text like online status
+windowBgActive: #f3bd6e /* #3fc1b0 */; // bright blue: fallback for blue filled active areas
+windowFgActive: #301d00 /* #ffffff */; // white: fallback for text on active areas (NOTE(eqrfns): this unfortunately can be used in radically different (and unexpected) places)
+windowActiveTextFg: #f3bd6e /* #4be1c3 */; // online blue: fallback for active text like online status
windowShadowFg: #000000; // black: fallback for shadow
windowShadowFgFallback: windowBg; // gray: fallback for shadow without opacity
shadowFg: #00000018; // most shadows (including opacity)
@@ -19,19 +19,19 @@ slideFadeOutBg: #0000003c; // slide animation (chat to profile) fade out filling
slideFadeOutShadowFg: windowShadowFg; // slide animation (chat to profile) fade out right section shadow
imageBg: #000000; // image background fallback (when photo size is less than minimum allowed)
imageBgTransparent: #fff3e6 /* #ffffff */; // image background when displaying an image with opacity where no opacity is needed
-activeButtonBg: #976c25 /* #2da192 */; // default active button background (NOTE(eqrfns): this is also used for folder icons in "My folders" list)
-activeButtonBgOver: #ab7b2a /* #32a896 */; // default active button background with mouse over
-activeButtonBgRipple: #6f4a00 /* #42b8a6 */; // default active button ripple effect
+activeButtonBg: #986c25 /* #2da192 */; // default active button background (NOTE(eqrfns): this is also used for folder icons in "My folders" list)
+activeButtonBgOver: #ad7b2a /* #32a896 */; // default active button background with mouse over
+activeButtonBgRipple: #704a01 /* #42b8a6 */; // default active button ripple effect
activeButtonFg: #ffffff /* #ffffff */; // default active button text
activeButtonFgOver: #ffffff /* #ffffff */; // default active button text with mouse over
activeButtonSecondaryFg: #ffffff /* #8ee4d9 */; // default active button additional text (selected messages counter in forward / delete buttons)
activeButtonSecondaryFgOver: activeButtonSecondaryFg; // default active button additional text with mouse over
-activeLineFg: #f2be6e /* #3ee2c9 */; // default active line (like code input field bottom border when you log in and field is focused)
+activeLineFg: #f3bd6e /* #3ee2c9 */; // default active line (like code input field bottom border when you log in and field is focused)
activeLineFgError: #ffb4ab /* #f57878 */; // default active line for error state (like code input field bottom border when you log in and you've entered incorrect code)
lightButtonBg: #2a241c /* #282e33 */; // default light button background (like buttons in boxes)
lightButtonBgOver: #352e26 /* #313b43 */; // default light button background with mouse over
lightButtonBgRipple: #403930 /* #3c474f */; // default light button ripple effect
-lightButtonFg: #f2be6e /* #79e8d9 */; // default light button text
+lightButtonFg: #f3bd6e /* #79e8d9 */; // default light button text
lightButtonFgOver: lightButtonFg; // default light button text with mouse over
attentionButtonFg: #ffb4ab /* #f57474 */; // default attention button text (like confirm button on log out)
attentionButtonFgOver: #ff9d92 /* #e76060 */; // default attention button text with mouse over
@@ -39,40 +39,40 @@ attentionButtonBgOver: #4b000264 /* #613a3a64 */; // default attention button ba
attentionButtonBgRipple: #ffffff /* #f4c3c2 */; // default attention button ripple effect
outlineButtonBg: windowBg; // default left outlined button background (like shared media links in profiles)
outlineButtonBgOver: #352e26 /* #313b43 */; // default left outlined button background with mouse over
-outlineButtonOutlineFg: #f2be6e /* #29baa7 */; // default left outlined button left outline border (NOTE(eqrfns): outlineButton* colors seem unused?)
+outlineButtonOutlineFg: #f3bd6e /* #29baa7 */; // default left outlined button left outline border (NOTE(eqrfns): outlineButton* colors seem unused?)
outlineButtonBgRipple: #403930 /* #3c474f */; // default left outlined button ripple effect
menuBg: #2a241c /* #282e33 */; // default popup menu background
menuBgOver: #fff3e6 /* #ffffff */; // default popup menu item background with mouse over
menuBgRipple: #352e26 /* #26292d */; // default popup menu item ripple effect
-menuIconFg: #aa9e8e /* #808080 */; // default popup menu item icon (like main menu)
-menuIconFgOver: #d2c4b4 /* #dcdcdc */; // default popup menu item icon with mouse over
+menuIconFg: #ab9e8e /* #808080 */; // default popup menu item icon (like main menu)
+menuIconFgOver: #d3c4b4 /* #dcdcdc */; // default popup menu item icon with mouse over
menuSubmenuArrowFg: #ff00ff /*#757575 */ ; // default popup menu submenu arrow icon (like in message field context menu in case of RTL system language) (NOTE(eqrfns): seems unused?)
-menuFgDisabled: #d2c4b4 /* #737373 */; // default popup menu item disabled text (like unavailable items in message field context menu) (NOTE(eqrfns): this shows up for a split second in context menus sometimes)
+menuFgDisabled: #d3c4b4 /* #737373 */; // default popup menu item disabled text (like unavailable items in message field context menu) (NOTE(eqrfns): this shows up for a split second in context menus sometimes)
menuSeparatorFg: #403930 /* #42484d */; // default popup menu separator (like in message field context menu)
scrollBarBg: #fff3e653 /* #ffffff53 */; // default scroll bar current rectangle, the bar itself (like in chats list)
scrollBarBgOver: #fff3e67a /* #ffffff7a */; // default scroll bar current rectangle with mouse over it
scrollBg: #fff3e61a /* #ffffff1a */; // default scroll bar background
scrollBgOver: #fff3e62c /* #ffffff2c */; // default scroll bar background with mouse over the scroll bar
-smallCloseIconFg: #aa9e8e /* #6d6d6d */; // small X icon (like in Show all sessions box to the right for sessions termination)
-smallCloseIconFgOver: #d2c4b4 /* #a3a3a3 */; // small X icon with mouse over
+smallCloseIconFg: #ab9e8e /* #6d6d6d */; // small X icon (like in Show all sessions box to the right for sessions termination)
+smallCloseIconFgOver: #d3c4b4 /* #a3a3a3 */; // small X icon with mouse over
radialFg: #ffffff /* windowFgActive */; // default radial loader line (like in Media Viewer when loading a photo)
radialBg: #00000056; // default radial loader background (like in Media Viewer when loading a photo)
-placeholderFg: #d2c4b4 /* #818991 */; // default input field placeholder when field is not focused (like in phone input field when you log in)
-placeholderFgActive: #aa9e8e /* #5d6165 */; // default input field placeholder when field is focused
-inputBorderFg: #aa9e8e /* #6f6f6f */; // default input field bottom border (like in code input field when you log in and field is not focused)
+placeholderFg: #d3c4b4 /* #818991 */; // default input field placeholder when field is not focused (like in phone input field when you log in)
+placeholderFgActive: #ab9e8e /* #5d6165 */; // default input field placeholder when field is focused
+inputBorderFg: #ab9e8e /* #6f6f6f */; // default input field bottom border (like in code input field when you log in and field is not focused)
filterInputBorderFg: #403930 /* #3d444b */; // default rounded input field border (like in chats list search field when field is focused)
filterInputInactiveBg: #403930 /* #3d444b */; // default rounded input field background (like in chats list search field when field is inactive)
-checkboxFg: #aa9e8e /* #6c6c6c */; // default unchecked checkbox rounded rectangle (and also emoji category icons)
-sliderBgInactive: #aa9e8e /* #545454 */; // default slider not active bar (like in Settings when you choose interface scale or custom notifications count)
+checkboxFg: #ab9e8e /* #6c6c6c */; // default unchecked checkbox rounded rectangle (and also emoji category icons)
+sliderBgInactive: #ab9e8e /* #545454 */; // default slider not active bar (like in Settings when you choose interface scale or custom notifications count)
sliderBgActive: windowBgActive; // default slider active bar (like in Settings when you choose interface scale or custom notifications count) (NOTE(eqrfns): this is actualy a highlight bar under the emoji/sticker/gif tabs?)
tooltipBg: #2a241c /* #282e33 */; // tooltip background (like when you put mouse over the message timestamp and wait)
-tooltipFg: #d2c4b4 /* #9a9e9c */; // tooltip text
+tooltipFg: #d3c4b4 /* #9a9e9c */; // tooltip text
tooltipBorderFg: #352e26 /* #313b43 */; // tooltip border
titleShadow: #00000003; // one pixel line shadow at the bottom of custom window title
titleBg: #403930 /* #3a4047 */; // custom window title background when window is inactive
titleBgActive: titleBg; // custom window title background when window is active
titleButtonBg: titleBg; // custom window title minimize/maximize/restore button background when window is inactive (Windows only)
-titleButtonFg: #d2c4b4 /* #8b9096 */; // custom window title minimize/maximize/restore button icon when window is inactive (Windows only)
+titleButtonFg: #d3c4b4 /* #8b9096 */; // custom window title minimize/maximize/restore button icon when window is inactive (Windows only)
titleButtonBgOver: #4c535b; // custom window title minimize/maximize/restore button background with mouse over when window is inactive (Windows only)
titleButtonFgOver: #e0e0e0; // custom window title minimize/maximize/restore button icon with mouse over when window is inactive (Windows only)
titleButtonBgActive: titleButtonBg; // custom window title minimize/maximize/restore button background when window is active (Windows only)
@@ -87,42 +87,42 @@ titleButtonCloseBgActive: titleButtonCloseBg; // custom window title close butto
titleButtonCloseFgActive: titleButtonCloseFg; // custom window title close button icon when window is active (Windows only)
titleButtonCloseBgActiveOver: titleButtonCloseBgOver; // custom window title close button background with mouse over when window is active (Windows only)
titleButtonCloseFgActiveOver: titleButtonCloseFgOver; // custom window title close button icon with mouse over when window is active (Windows only)
-titleFg: #aa9e8e /* #666666 */; // custom window title text when window is inactive (macOS only)
-titleFgActive: #aa9e8e /* #808080 */; // custom window title text when window is active (macOS only)
+titleFg: #ab9e8e /* #666666 */; // custom window title text when window is inactive (macOS only)
+titleFgActive: #ab9e8e /* #808080 */; // custom window title text when window is active (macOS only)
trayCounterBg: #f23c34; // tray icon counter background
trayCounterBgMute: #888888; // tray icon counter background if all unread messages are muted
trayCounterFg: #ffffff; // tray icon counter text
trayCounterBgMacInvert: #ffffff; // tray icon counter background when tray icon is pressed or when dark theme of macOS is used (macOS only)
trayCounterFgMacInvert: #ffffff01; // tray icon counter text when tray icon is pressed or when dark theme of macOS is used (macOS only)
layerBg: #0000007f; // box and main menu background layer fade
-cancelIconFg: #aa9e8e /* #666666 */; // default for settings close icon and box search cancel icon
-cancelIconFgOver: #d2c4b4 /* #dcdcdc */; // default for settings close icon and box search cancel icon with mouse over
+cancelIconFg: #ab9e8e /* #666666 */; // default for settings close icon and box search cancel icon
+cancelIconFgOver: #d3c4b4 /* #dcdcdc */; // default for settings close icon and box search cancel icon with mouse over
boxBg: windowBg; // box background
boxTextFg: windowFg; // box text
-boxTextFgGood: #f2be6e /* #56dbce */; // accepted box text (like when choosing username that is not occupied) (NOTE(eqrfns): this is also used for the selected messages checkmark background)
+boxTextFgGood: #f3bd6e /* #56dbce */; // accepted box text (like when choosing username that is not occupied) (NOTE(eqrfns): this is also used for the selected messages checkmark background)
boxTextFgError: #ffb4ab /* #d84d4d */; // rejecting box text (like when choosing username that is occupied)
-boxTitleFg: #d2c4b4 /* #ebebeb */; // box title text
+boxTitleFg: #d3c4b4 /* #ebebeb */; // box title text
boxSearchBg: #2a241c /* #282e33 */; // box search field background (like in contacts box)
-boxTitleAdditionalFg: #aa9e8e /* #808080 */; // box title additional text (like in create group box when you see chosen members count)
+boxTitleAdditionalFg: #ab9e8e /* #808080 */; // box title additional text (like in create group box when you see chosen members count)
boxTitleCloseFg: cancelIconFg; // settings close icon and box search cancel icon (like in contacts box)
boxTitleCloseFgOver: cancelIconFgOver; // settings close icon and box search cancel icon (like in contacts box) with mouse over
-membersAboutLimitFg: #aa9e8e /* #5e6065 */; // text in channel members box about the limit (max 200 last members are shown) (NOTE(eqrfns): haven't seen this yet)
+membersAboutLimitFg: #ab9e8e /* #5e6065 */; // text in channel members box about the limit (max 200 last members are shown) (NOTE(eqrfns): haven't seen this yet)
contactsBg: #2a241c /* #222528 */; // contacts (and some other) box row background
contactsBgOver: #2a241c /* #282e33 */; // contacts (and some other) box row background with mouse over
contactsNameFg: boxTextFg; // contacts (and some other) box row name text
-contactsStatusFg: #aa9e8e /* #808080 */; // contacts (and some other) box row additional text (like last seen stamp)
-contactsStatusFgOver: #aa9e8e /* #808080 */; // contacts (and some other) box row additional text (like last seen stamp) with mouse over
-contactsStatusFgOnline: #f2be6e /* #55e1d3 */; // contacts (and some other) box row active additional text (like online status)
+contactsStatusFg: #ab9e8e /* #808080 */; // contacts (and some other) box row additional text (like last seen stamp)
+contactsStatusFgOver: #ab9e8e /* #808080 */; // contacts (and some other) box row additional text (like last seen stamp) with mouse over
+contactsStatusFgOnline: #f3bd6e /* #55e1d3 */; // contacts (and some other) box row active additional text (like online status)
photoCropFadeBg: layerBg; // avatar crop box fade background (when choosing a new photo in Settings or for a group)
photoCropPointFg: #fff3e67f /* #ffffff7f */; // avatar crop box corner rectangles (when choosing a new photo in Settings or for a group)
-callArrowFg: #b6cea3 /* #2bc7b7 */; // received phone call arrow (NOTE(eqrfns): this is not the color you see in chats, instead this is used by the "Calls" overview you can find in the hamburger menu)
+callArrowFg: #b7cea2 /* #2bc7b7 */; // received phone call arrow (NOTE(eqrfns): this is not the color you see in chats, instead this is used by the "Calls" overview you can find in the hamburger menu)
callArrowMissedFg: #ffb4ab /* #dd5b4a */; // missed phone call arrow (in calls list box)
introBg: windowBg; // login background
-introTitleFg: #d2c4b4 /* #eeeeee */; // login title text
-introDescriptionFg: #d2c4b499 /* #999999 */; // login description text
+introTitleFg: #d3c4b4 /* #eeeeee */; // login title text
+introDescriptionFg: #d3c4b499 /* #999999 */; // login description text
introErrorFg: #ffb4ab /* #999999 */; // login error text (like when providing a wrong log in code)
-introCoverTopBg: #976c25 /* #188173 */; // intro gradient top (from) (NOTE(eqrfns): haven't checked this)
-introCoverBottomBg: #976c25 /* #188173 */; // intro gradient bottom (to)
+introCoverTopBg: #986c25 /* #188173 */; // intro gradient top (from) (NOTE(eqrfns): haven't checked this)
+introCoverBottomBg: #986c25 /* #188173 */; // intro gradient bottom (to)
introCoverIconsFg: #ffffff /* #34a493 */; // intro cloud graphics
introCoverPlaneTrace: #ffffff /* #329d8f */; // intro plane traces
introCoverPlaneInner: #ced9e2; // intro plane part (NOTE(eqrfns): haven't seen this yet)
@@ -133,33 +133,33 @@ dialogsMenuIconFgOver: menuIconFgOver; // main menu and lock telegram icon with
dialogsBg: windowBg; // chat list background
dialogsNameFg: #fff3e6 /* #f5f5f5 */; // chat list name text
dialogsChatIconFg: dialogsNameFg; // chat list group or channel icon
-dialogsDateFg: #aa9e8e /* #6d727c */; // chat list date text
-dialogsTextFg: #aa9e8e /* #8d939e */; // chat list message text
-dialogsTextFgService: #d2c4b4 /* #ebebeb */; // chat list group sender name text (or media message type text)
+dialogsDateFg: #ab9e8e /* #6d727c */; // chat list date text
+dialogsTextFg: #ab9e8e /* #8d939e */; // chat list message text
+dialogsTextFgService: #d3c4b4 /* #ebebeb */; // chat list group sender name text (or media message type text)
dialogsDraftFg: #ffb4ab /* #ec6657 */; // chat list draft label
-dialogsVerifiedIconBg: #dcc3a1 /* #53edde */; // chat list verified icon background
+dialogsVerifiedIconBg: #ddc2a1 /* #53edde */; // chat list verified icon background
dialogsVerifiedIconFg: #2a241c /* #282e33 */; // chat list verified icon check (NOTE(eqrfns): not sure where this is used, but it is referenced in the code)
-dialogsSendingIconFg: #aa9e8e /* #727272 */; // chat list sending message icon (clock)
-dialogsSentIconFg: #f2be6e /* #20eed9 */; // chat list sent message tick / double tick icon
-dialogsUnreadBg: #976c25 /* #05a091 */; // chat list unread badge background for not muted chat
-dialogsUnreadBgMuted: #766e5f99 /* #495159 */; // chat list unread badge background for muted chat (NOTE(eqrfns): this is also used for the "pinned" icon, and also for folder icons in the "add to folder" submenu of a chat "More" menu. I hate this...)
+dialogsSendingIconFg: #ab9e8e /* #727272 */; // chat list sending message icon (clock)
+dialogsSentIconFg: #f3bd6e /* #20eed9 */; // chat list sent message tick / double tick icon
+dialogsUnreadBg: #986c25 /* #05a091 */; // chat list unread badge background for not muted chat
+dialogsUnreadBgMuted: #776e6099 /* #495159 */; // chat list unread badge background for muted chat (NOTE(eqrfns): this is also used for the "pinned" icon, and also for folder icons in the "add to folder" submenu of a chat "More" menu. I hate this...)
dialogsUnreadFg: #ffffff /* #ffffff */; // chat list unread badge text
-dialogsOnlineBadgeFg: #f2be6e /* #0ae7d1 */; // chat list online status
+dialogsOnlineBadgeFg: #f3bd6e /* #0ae7d1 */; // chat list online status
dialogsBgOver: #403930 /* #353c43 */; // chat list background with mouse over
dialogsNameFgOver: windowBoldFgOver; // chat list name text with mouse over
dialogsChatIconFgOver: dialogsNameFgOver; // chat list group or channel icon with mouse over
-dialogsDateFgOver: #aa9e8e /* #6d727c */; // chat list date text with mouse over
-dialogsTextFgOver: #d2c4b4 /* #a3a7ae */; // chat list message text with mouse over
+dialogsDateFgOver: #ab9e8e /* #6d727c */; // chat list date text with mouse over
+dialogsTextFgOver: #d3c4b4 /* #a3a7ae */; // chat list message text with mouse over
dialogsTextFgServiceOver: #fff3e6 /* #f0f0f0 */; // chat list group sender name text with mouse over
dialogsDraftFgOver: dialogsDraftFg; // chat list draft label with mouse over
-dialogsVerifiedIconBgOver: #dcc3a1 /* #53edde */; // chat list verified icon background with mouse over
+dialogsVerifiedIconBgOver: #ddc2a1 /* #53edde */; // chat list verified icon background with mouse over
dialogsVerifiedIconFgOver: dialogsVerifiedIconFg; // chat list verified icon check with mouse over
dialogsSendingIconFgOver: dialogsSendingIconFg; // chat list sending message icon (clock) with mouse over
-dialogsSentIconFgOver: #f2be6e /* #41f0de */; // chat list sent message tick / double tick icon with mouse over
-dialogsUnreadBgOver: #976c25 /* #009687 */; // chat list unread badge background for not muted chat with mouse over
-dialogsUnreadBgMutedOver: #81705599 /* #555e67 */; // chat list unread badge background for muted chat with mouse over
+dialogsSentIconFgOver: #f3bd6e /* #41f0de */; // chat list sent message tick / double tick icon with mouse over
+dialogsUnreadBgOver: #986c25 /* #009687 */; // chat list unread badge background for not muted chat with mouse over
+dialogsUnreadBgMutedOver: #82705599 /* #555e67 */; // chat list unread badge background for muted chat with mouse over
dialogsUnreadFgOver: dialogsUnreadFg; // chat list unread badge text with mouse over
-dialogsBgActive: #976c25 /* #009687 */; // chat list background for current (active) chat
+dialogsBgActive: #986c25 /* #009687 */; // chat list background for current (active) chat
dialogsNameFgActive: #ffffff /* windowFgActive */; // chat list name text for current (active) chat
dialogsChatIconFgActive: dialogsNameFgActive; // chat list group or channel icon for current (active) chat
dialogsDateFgActive: #ffffff /* windowFgActive */; // chat list date text for current (active) chat
@@ -172,18 +172,18 @@ dialogsSendingIconFgActive: #ffffff99 /* #ffffff99 */; // chat list sending mess
dialogsSentIconFgActive: dialogsTextFgActive; // chat list sent message tick / double tick icon for current (active) chat
dialogsUnreadBgActive: dialogsTextFgActive; // chat list unread badge background for not muted chat for current (active) chat
dialogsUnreadBgMutedActive: #ffffff99 /* #cbf7e8 */; // chat list unread badge background for muted chat for current (active) chat
-dialogsUnreadFgActive: #976c25 /* #039d8e */; // chat list unread badge text for current (active) chat
+dialogsUnreadFgActive: #986c25 /* #039d8e */; // chat list unread badge text for current (active) chat
dialogsOnlineBadgeFgActive: #ffffff /* #ffffff */; // chat list online status for current (active) chat
dialogsRippleBg: #4f4539 /* #43474d */; //
-dialogsRippleBgActive: #6f4a00 /* #12a796 */; //
+dialogsRippleBgActive: #704a01 /* #12a796 */; //
dialogsForwardBg: dialogsBgActive; // forwarding panel background (when forwarding messages in the smallest window size)
dialogsForwardFg: dialogsNameFgActive; // forwarding panel text (when forwarding messages in the smallest window size)
searchedBarBg: #403930 /* #3a4047 */; // search results bar background (in chats list, contacts box..)
-searchedBarFg: #d2c4b4 /* #a8a8a8 */; // search results bar text (in chats list, contacts box..)
+searchedBarFg: #d3c4b4 /* #a8a8a8 */; // search results bar text (in chats list, contacts box..)
topBarBg: #2a241c /* #282e33 */; // top bar background (in chat view, media overview..)
emojiPanBg: windowBg; // emoji panel background
-emojiPanCategories: #211c14 /* #20262b */; // emoji panel categories background
-emojiPanHeaderFg: #aa9e8e/* #90949a */; // emoji panel section header text
+emojiPanCategories: #221c14 /* #20262b */; // emoji panel categories background
+emojiPanHeaderFg: #ab9e8e/* #90949a */; // emoji panel section header text
emojiPanHeaderBg: #fff3e6f2 /* #fffffff2 */; // emoji panel section header background
stickerPanDeleteBg: #000000cc; // delete X button background for custom sent stickers in stickers panel (legacy)
stickerPanDeleteFg: windowFgActive; // delete X button icon for custom sent stickers in stickers panel (legacy)
@@ -192,7 +192,7 @@ historyTextInFg: windowFg; // inbox message text
historyTextInFgSelected: #ffffff /* #ffffff */; // inbox message selected text or text in a selected message
historyTextOutFg: #ffffff /* #e4ecf2 */; // outbox message text
historyTextOutFgSelected: #ffffff /* #ffffff */; // outbox message selected text or text in a selected message
-historyLinkInFg: #f2be6e /* #37e1ca */; // inbox message link
+historyLinkInFg: #f3bd6e /* #37e1ca */; // inbox message link
historyLinkInFgSelected: #ffffff /* #a7fff3 */; // inbox message link in a selected text or message
historyLinkOutFg: #ffffff /* #37e1ca */; // outbox message link
historyLinkOutFgSelected: #ffffff /* #a7fff3 */; // outbox message link in a selected text or message
@@ -202,11 +202,11 @@ historyFileNameOutFg: historyTextOutFg; // outbox media filename text
historyFileNameOutFgSelected: historyTextOutFgSelected /* #ffffff */; // outbox media filename text in a selected message
historyOutIconFg: #ffffff /* #40e6c5 */; // outbox message tick / double tick icon
historyOutIconFgSelected: #ffffff /* #ffffff */; // outbox message tick / double tick icon in a selected message
-historyIconFgInverted: #dcc3a1 /* windowFgActive */; // media message tick / double tick icon (like in sent photo) (NOTE(eqrfns): forcing the dark theme looks better here IMO)
+historyIconFgInverted: #ddc2a1 /* windowFgActive */; // media message tick / double tick icon (like in sent photo) (NOTE(eqrfns): forcing the dark theme looks better here IMO)
historySendingOutIconFg: #ffffff /* #9dfadd */; // outbox sending message icon (clock)
-historySendingInIconFg: #aa9e8e /* #76838b */; // inbox sending message icon (clock) (like in sent messages to yourself or in sent messages to a channel)
+historySendingInIconFg: #ab9e8e /* #76838b */; // inbox sending message icon (clock) (like in sent messages to yourself or in sent messages to a channel)
historySendingInvertedIconFg: #fff3e6c8 /* #ffffffc8 */; // media sending message icon (clock) (like in sent photo)
-historyCallArrowInFg: #b6cea3 /* #26c2ab */; // received phone call arrow
+historyCallArrowInFg: #b7cea2 /* #26c2ab */; // received phone call arrow
historyCallArrowInFgSelected: #ffffff /* #ffffff */; // received phone call arrow in a selected message
historyCallArrowMissedInFg: callArrowMissedFg; // missed phone call arrow
historyCallArrowMissedInFgSelected: #ffffff /* #ffffff */; // missed phone call arrow in a selected message
@@ -214,38 +214,38 @@ historyCallArrowOutFg: #ffffff /* #ffffff */; // outgoing phone call arrow
historyCallArrowOutFgSelected: #ffffff /* #ffffff */; // outgoing phone call arrow
historyUnreadBarBg: #403930 /* #33393f */; // new unread messages bar background
historyUnreadBarBorder: shadowFg; // new unread messages bar shadow
-historyUnreadBarFg: #f2be6e /* #3cd3bf */; // new unread messages bar text
+historyUnreadBarFg: #f3bd6e /* #3cd3bf */; // new unread messages bar text
historyForwardChooseBg: #0000004c; // forwarding messages in a large window size "choose recipient" background
-historyForwardChooseFg: #f2be6e /* windowFgActive */; // forwarding messages in a large window size "choose recipient" text
+historyForwardChooseFg: #f3bd6e /* windowFgActive */; // forwarding messages in a large window size "choose recipient" text
historyPeer1NameFg: #ffb5a1 /* #ec7577 */; // red group member name
historyPeer1NameFgSelected: historyTextInFgSelected /* #ffffff */; // red group member name in a selected message
historyPeer1UserpicBg: #ff845e; // red userpic background
-historyPeer2NameFg: #b4d188 /* #86d67f */; // green group member name
+historyPeer2NameFg: #b3d088 /* #86d67f */; // green group member name
historyPeer2NameFgSelected: historyTextInFgSelected /* #ffffff */; // green group member name in a selected message
historyPeer2UserpicBg: #9ad164; // green userpic background
-historyPeer3NameFg: #ebc16d /* #e4c054 */; // yellow group member name
+historyPeer3NameFg: #ebc16b /* #e4c054 */; // yellow group member name
historyPeer3NameFgSelected: historyTextInFgSelected /* #ffffff */; // yellow group member name in a selected message
historyPeer3UserpicBg: #e5ca77; // yellow userpic background (actually unused)
historyPeer4NameFg: #84d2e6 /* #68c7f3 */; // blue group member name
historyPeer4NameFgSelected: historyTextInFgSelected /* #ffffff */; // blue group member name in a selected message
historyPeer4UserpicBg: #5caffa; // blue userpic background
-historyPeer5NameFg: #e6b7f2 /* #b383f3 */; // purple group member name
+historyPeer5NameFg: #e6b6f2 /* #b383f3 */; // purple group member name
historyPeer5NameFgSelected: historyTextInFgSelected /* #ffffff */; // purple group member name in a selected message
historyPeer5UserpicBg: #b694f9; // purple userpic background
-historyPeer6NameFg: #ffb3b6 /* #e16794 */; // pink group member name
+historyPeer6NameFg: #ffb2b6 /* #e16794 */; // pink group member name
historyPeer6NameFgSelected: historyTextInFgSelected /* #ffffff */; // pink group member name in a selected message
historyPeer6UserpicBg: #ff8aac; // pink userpic background
-historyPeer7NameFg: #81d4d6 /* #57c9e0 */; // sea group member name
+historyPeer7NameFg: #80d4d6 /* #57c9e0 */; // sea group member name
historyPeer7NameFgSelected: historyTextInFgSelected /* #ffffff */; // sea group member name in a selected message
historyPeer7UserpicBg: #5bcbe3; // sea userpic background
-historyPeer8NameFg: #f5bd6f /* #efb05d */; // orange group member name
+historyPeer8NameFg: #f5bc6f /* #efb05d */; // orange group member name
historyPeer8NameFgSelected: historyTextInFgSelected /* #ffffff */; // orange group member name in a selected message
historyPeer8UserpicBg: #febb5b; // orange userpic background
historyPeerUserpicFg: #ffffff /* windowFgActive */; // default userpic initials
-historyScrollBarBg: #d2c4b47a /* #8989897a */; // scroll bar current rectangle, the bar itself in the chat view (adjusted)
-historyScrollBarBgOver: #aa9e8ebc /* #6b6b6bbc */; // scroll bar current rectangle with mouse over it in the chat view (adjusted)
-historyScrollBg: #9f927f4c /* #5f5f5f4c */; // scroll bar background (adjusted)
-historyScrollBgOver: #aa9e8e6b /* #6262626b */; // scroll bar background with mouse over the scroll bar (adjusted)
+historyScrollBarBg: #d3c4b47a /* #8989897a */; // scroll bar current rectangle, the bar itself in the chat view (adjusted)
+historyScrollBarBgOver: #ab9e8ebc /* #6b6b6bbc */; // scroll bar current rectangle with mouse over it in the chat view (adjusted)
+historyScrollBg: #a0917f4c /* #5f5f5f4c */; // scroll bar background (adjusted)
+historyScrollBgOver: #ab9e8e6b /* #6262626b */; // scroll bar background with mouse over the scroll bar (adjusted)
historyPeer1UserpicBg2: #d45246; // the second red userpic background
historyPeer2UserpicBg2: #46ba43; // the second green userpic background
historyPeer3UserpicBg2: #e5ca77; // the second yellow userpic background (actually unused)
@@ -256,11 +256,11 @@ historyPeer7UserpicBg2: #359ad4; // the second sea userpic background
historyPeer8UserpicBg2: #f68136; // the second orange userpic background
historyPeerSavedMessagesBg2: historyPeer4UserpicBg2; // the second saved messages userpic background
msgInBg: #352e26 /* #33393f */; // inbox message background
-msgInBgSelected: #976c25 /* #009687 */; // inbox selected message background (and background of selected text in those messages)
+msgInBgSelected: #986c25 /* #009687 */; // inbox selected message background (and background of selected text in those messages)
msgOutBg: #867154 /* #2a2f33 */; // outbox message background
-msgOutBgSelected: #976c25 /* #009687 */; // outbox selected message background (and background of selected text in those messages)
-msgSelectOverlay: #f2be6e4c /* #35d4bf4c */; // overlay which is filling the media parts of selected messages (like in selected photo message)
-msgStickerOverlay: #f2be6e7f /* #35d4bf7f */; // overlay which is filling the selected sticker message (NOTE(eqrfns): this color is somehow bugged, it randomy does not get updated when I change the theme)
+msgOutBgSelected: #986c25 /* #009687 */; // outbox selected message background (and background of selected text in those messages)
+msgSelectOverlay: #f3bd6e4c /* #35d4bf4c */; // overlay which is filling the media parts of selected messages (like in selected photo message)
+msgStickerOverlay: #f3bd6e7f /* #35d4bf7f */; // overlay which is filling the selected sticker message (NOTE(eqrfns): this color is somehow bugged, it randomy does not get updated when I change the theme)
msgInServiceFg: windowActiveTextFg; // inbox message information text (like information about a forwarded message original sender)
msgInServiceFgSelected: #fff3e6 /* #ffffff */; // inbox selected message information text (like information about a forwarded message original sender)
msgOutServiceFg: #ffffff /* #60e5ca */; // outbox message information text (like information about a forwarded message original sender)
@@ -268,24 +268,24 @@ msgOutServiceFgSelected: #ffffff /* #ffffff */; // outbox message information te
msgInShadow: #00000000; // inbox message shadow (below the bubble)
msgInShadowSelected: #00000000; // inbox selected message shadow (below the bubble)
msgOutShadow: #00000000; // outbox message shadow (below the bubble)
-msgOutShadowSelected: #976c2500 /* #37a78d00 */; // outbox selected message shadow (below the bubble)
-msgInDateFg: #dcc3a1 /* #828d94 */; // inbox message time text
+msgOutShadowSelected: #986c2500 /* #37a78d00 */; // outbox selected message shadow (below the bubble)
+msgInDateFg: #ddc2a1 /* #828d94 */; // inbox message time text
msgInDateFgSelected: #ffffff /* #ffffff */; // inbox selected message time text
msgOutDateFg: #ffffff99 /* #737f87 */; // outbox message time text
msgOutDateFgSelected: #ffffff /* #ffffff */; // outbox selected message time text
-msgServiceFg: #dcc3a1; // service message text (like date dividers or service message about the group title being changed)
+msgServiceFg: #ddc2a1; // service message text (like date dividers or service message about the group title being changed)
msgServiceBg: #4f4539c8 /* #363c43c8 */; // service message background (like in a service message about group title being changed) (adjusted)
-msgServiceBgSelected: #6f4a00 /* #009687 */; // service message selected text background (like in a service message about group title being changed) (adjusted)
-msgInReplyBarColor: #f2be6e /* #32ceb7 */; // inbox message reply outline (NOTE(eqrfns): this can be seen at east in the interface scale preview)
+msgServiceBgSelected: #704a01 /* #009687 */; // service message selected text background (like in a service message about group title being changed) (adjusted)
+msgInReplyBarColor: #f3bd6e /* #32ceb7 */; // inbox message reply outline (NOTE(eqrfns): this can be seen at east in the interface scale preview)
msgInReplyBarSelColor: #fff3e6 /* #ffffff */; // inbox selected message reply outline (NOTE(eqrfns): coudn't figure out how to see this)
msgOutReplyBarColor: #ffffff /* #32ceb7 */; // outbox message reply outline
msgOutReplyBarSelColor: #ffffff /* #ffffff */; // outbox selected message reply outline
msgImgReplyBarColor: msgServiceFg; // sticker message reply outline (NOTE(eqrfns): this is the color of the text that shows up when you reply with a sticker. This took me some time to figure out)
-msgInMonoFg: #d0e0c4 /* #5aab9f */; // inbox message monospace text (like a message sent with `test` text)
+msgInMonoFg: #d1e0c3 /* #5aab9f */; // inbox message monospace text (like a message sent with `test` text)
msgOutMonoFg: #f4f2ed /* #c2f2ec */; // outbox message monospace text (NOTE(eqrfns): not sure if this is OK)
msgInMonoFgSelected: #ffffff /* #a7fff3 */; // inbox message monospace text in a selected text or message
msgOutMonoFgSelected: #ffffff /* #c9fff8 */; // outbox message monospace text in a selected text or message
-msgDateImgFg: #dcc3a1 /* msgServiceFg */; // media message time text (like time text in a sent photo) (NOTE(eqrfns): forced dark theme looks better IMO)
+msgDateImgFg: #ddc2a1 /* msgServiceFg */; // media message time text (like time text in a sent photo) (NOTE(eqrfns): forced dark theme looks better IMO)
msgDateImgBg: #00000054; // media message time bubble background (like time bubble in a sent photo) or file with thumbnail download icon circle background
msgDateImgBgOver: #00000074; // media message download icon circle background with mouse over (like file with thumbnail download icon)
msgDateImgBgSelected: #00000087 /* #1c706587 */; // selected media message time bubble background
@@ -293,8 +293,8 @@ msgFileThumbLinkInFg: lightButtonFg; // inbox media file message with thumbnail
msgFileThumbLinkInFgSelected: lightButtonFgOver; // inbox selected media file message with thumbnail download / open with button text
msgFileThumbLinkOutFg: #ffffff /* #60e5ca */; // outbox media file message with thumbnail download / open with button text
msgFileThumbLinkOutFgSelected: #ffffff /* #ffffff */; // outbox selected media file message with thumbnail download / open with button text
-msgFileInBg: #f2be6e /* #50d4c2 */; // inbox audio file download circle background (NOTE(eqrfns): this is actually used for ANY file)
-msgFileInBgOver: #eea93f /* #48cfbd */; // inbox audio file download circle background with mouse over (NOTE(eqrfns): this is actualy for the play circle in the audio files overiew)
+msgFileInBg: #f3bd6e /* #50d4c2 */; // inbox audio file download circle background (NOTE(eqrfns): this is actually used for ANY file)
+msgFileInBgOver: #efa83f /* #48cfbd */; // inbox audio file download circle background with mouse over (NOTE(eqrfns): this is actualy for the play circle in the audio files overiew)
msgFileInBgSelected: #ffffff /* #ffffff */; // inbox selected audio file download circle background (NOTE(eqrfns): this is used both for the overview, and for the chat history)
msgFileOutBg: #ffffff /* #11bfab */; // outbox audio file download circle background
msgFileOutBgOver: #e6e6e6 /* #ffffff */; // outbox audio file download circle background with mouse over (NOTE(eqrfns): seems to be unused in the source code?)
@@ -330,7 +330,7 @@ historyFileThumbRadialFgSelected: #fff3e6 /* #ffffff */; // selected file with t
historyVideoMessageProgressFg: historyFileThumbIconFg; // radial playback progress in round video messages
msgWaveformInActive: windowBgActive; // inbox voice message active waveform lines (like played part of currently playing voice message)
msgWaveformInActiveSelected: #ffffff /* #ffffff */; // inbox selected voice message active waveform lines (like played part of currently playing voice message)
-msgWaveformInInactive: #aa9e8e /* #5d6b76 */; // inbox voice message inactive waveform lines (like upcoming part of currently playing voice message)
+msgWaveformInInactive: #ab9e8e /* #5d6b76 */; // inbox voice message inactive waveform lines (like upcoming part of currently playing voice message)
msgWaveformInInactiveSelected: #ffffff80 /* #41d1be */; // inbox selected voice message inactive waveform lines (like upcoming part of currently playing voice message)
msgWaveformOutActive: #ffffff /* #11bfab */; // outbox voice message active waveform lines (like played part of currently playing voice message)
msgWaveformOutActiveSelected: #ffffff /* #ffffff */; // outbox selected voice message active waveform lines (like played part of currently playing voice message)
@@ -338,7 +338,7 @@ msgWaveformOutInactive: #ffffff80 /* #596874 */; // outbox voice message inactiv
msgWaveformOutInactiveSelected: #ffffff80 /* #41d1be */; // outbox selected voice message inactive waveform lines (like upcoming part of currently playing voice message)
msgBotKbOverBgAdd: #fff3e614 /* #ffffff14 */; // this is painted over a bot inline keyboard button (which has msgServiceBg background) when mouse is over that button
msgBotKbIconFg: msgServiceFg; // bot inline keyboard button icon in the top-right corner (like in @vote bot when a poll is ready to be shared)
-msgBotKbRippleBg: #d2c4b410 /* #9e9d9d10 */; // bot inline keyboard button ripple effect
+msgBotKbRippleBg: #d3c4b410 /* #9e9d9d10 */; // bot inline keyboard button ripple effect
mediaInFg: msgInDateFg; // inbox media message status text (like in file that is being downloaded)
mediaInFgSelected: msgInDateFgSelected; // inbox selected media message status text (like in file that is being downloaded)
mediaOutFg: msgOutDateFg; // outbox media message status text (like in file that is being downloaded)
@@ -371,11 +371,11 @@ historyReplyCancelFg: cancelIconFg; // reply / forward / edit message cancel but
historyReplyCancelFgOver: cancelIconFgOver; // reply / forward / edit message cancel button with mouse over
historyComposeButtonBg: historyComposeAreaBg; // unblock / join channel / mute channel button background
historyComposeButtonBgOver: #352e26 /* #31363c */; // unblock / join channel / mute channel button background with mouse over
-historyComposeButtonBgRipple: #211c14 /* #272b2f */; // unblock / join channel / mute channel button ripple effect
+historyComposeButtonBgRipple: #221c14 /* #272b2f */; // unblock / join channel / mute channel button ripple effect
overviewCheckBg: #00000040; // shared files / links checkbox background for not selected rows when some rows are selected
overviewCheckFg: #fff3e6 /* #ffffff */; // shared files / links checkbox icon for not selected rows when some rows are selected
-overviewCheckFgActive: #2f1d00 /* #ffffff */; // shared files / links checkbox icon for selected rows (NOTE(eqrfns): this is used over primary (boxTextFgGood al least))
-overviewPhotoSelectOverlay: #f2be6e33 /* #40ace333 */; // shared photos / videos / links fill for selected rows
+overviewCheckFgActive: #301d00 /* #ffffff */; // shared files / links checkbox icon for selected rows (NOTE(eqrfns): this is used over primary (boxTextFgGood al least))
+overviewPhotoSelectOverlay: #f3bd6e33 /* #40ace333 */; // shared photos / videos / links fill for selected rows
profileStatusFgOver: #ff00ff /* #9c9c9c */; // group members list in group profile user last seen text with mouse over (NOTE(eqrfns): seems unused in the sources?)
profileVerifiedCheckBg: windowBgActive; // profile verified check icon background
profileVerifiedCheckFg: #fff3e6 /* #ffffff */; // profile verified check icon tick
@@ -385,7 +385,7 @@ notificationsBoxScreenBg: dialogsBgActive; // #6389a8; // custom notifications s
notificationSampleUserpicFg: windowBgActive; // custom notifications settings box small sample userpic placeholder
notificationSampleCloseFg: #fff3e6 /* #d7d7d7 */; // custom notifications settings box small sample close button placeholder (NOTE(eqrfns): haven't seen this)
notificationSampleTextFg: #fff3e6 /* #d7d7d7 */; // custom notifications settings box small sample text placeholder (NOTE(eqrfns): haven't seen this)
-notificationSampleNameFg: #d2c4b4 /* #939393 */; // custom notifications settings box small sample name placeholder (NOTE(eqrfns): haven't seen this)
+notificationSampleNameFg: #d3c4b4 /* #939393 */; // custom notifications settings box small sample name placeholder (NOTE(eqrfns): haven't seen this)
changePhoneSimcardFrom: notificationSampleTextFg; // change phone number box left simcard icon
changePhoneSimcardTo: notificationSampleNameFg; // change phone number box right simcard and plane icons
mainMenuBg: windowBg; // main menu background
@@ -409,33 +409,33 @@ mediaviewMenuBg: #ff00ff /* #383838 */; // context menu in Media Viewer backgrou
mediaviewMenuBgOver: #403930 /* #505050 */; // context menu item background with mouse over (NOTE(eqrfns): this is actually the inactive side of the playback speed control slider for some reason)
mediaviewMenuBgRipple: #ff00ff /* #676767 */; // context menu item ripple effect (NOTE(eqrfns): also unused?)
mediaviewMenuFg: #fff3e6 /* windowFgActive */; // context menu item text
-mediaviewBg: #211c14eb /* #222222eb */; // Media Viewer background
+mediaviewBg: #221c14eb /* #222222eb */; // Media Viewer background
mediaviewVideoBg: imageBg; // Media Viewer background when viewing a video in full screen
mediaviewControlBg: #0000003c; // controls background (like next photo / previous photo)
-mediaviewControlFg: #f2be6e /* windowFgActive */; // controls icon (like next photo / previous photo)
-mediaviewCaptionBg: #0e0a04a9 /* #11111180 */; // caption text background (when viewing photo with caption)
+mediaviewControlFg: #f3bd6e /* windowFgActive */; // controls icon (like next photo / previous photo)
+mediaviewCaptionBg: #0e0904a9 /* #11111180 */; // caption text background (when viewing photo with caption)
mediaviewCaptionFg: mediaviewControlFg; // caption text
-mediaviewTextLinkFg: #f2be6e /* #66f7e4 */; // caption text link
+mediaviewTextLinkFg: #f3bd6e /* #66f7e4 */; // caption text link
mediaviewSaveMsgBg: toastBg; // save to file toast message background in Media Viewer
mediaviewSaveMsgFg: toastFg; // save to file toast message text
-mediaviewPlaybackActive: #d2c4b4 /* #c7c7c7 */; // video playback progress already played part
-mediaviewPlaybackInactive: #d2c4b455 /* #252525 */; // video playback progress upcoming (not played yet) part
+mediaviewPlaybackActive: #d3c4b4 /* #c7c7c7 */; // video playback progress already played part
+mediaviewPlaybackInactive: #d3c4b455 /* #252525 */; // video playback progress upcoming (not played yet) part
mediaviewPlaybackActiveOver: #fff3e6 /* #ffffff */; // video playback progress already played part with mouse over
-mediaviewPlaybackInactiveOver: #d2c4b4aa /* #474747 */; // video playback progress upcoming (not played yet) part with mouse over (NOTE(eqrfns): this actually only shows up when rewinding the video. I assume this is the "buffered" part, but not sure)
+mediaviewPlaybackInactiveOver: #d3c4b4aa /* #474747 */; // video playback progress upcoming (not played yet) part with mouse over (NOTE(eqrfns): this actually only shows up when rewinding the video. I assume this is the "buffered" part, but not sure)
mediaviewPlaybackProgressFg: #fff3e6c7 /* #ffffffc7 */; // video playback progress text
mediaviewPlaybackIconFg: mediaviewPlaybackActive; // video playback controls icon
mediaviewPlaybackIconFgOver: mediaviewPlaybackActiveOver; // video playback controls icon with mouse over
mediaviewTransparentBg: #fff3e6 /* #ffffff */; // transparent filling part (when viewing a transparent .png file in Media Viewer) (NOTE(eqrfns): this is one of the checkerboard colors)
-mediaviewTransparentFg: #d2c4b4 /* #cccccc */; // another transparent filling part (NOTE(eqrfns): this is annother checkerboard color)
+mediaviewTransparentFg: #d3c4b4 /* #cccccc */; // another transparent filling part (NOTE(eqrfns): this is annother checkerboard color)
notificationBg: windowBg; // custom notification window background
callBg: #2a241cf2 /* #26282cf2 */; // phone call popup background
callNameFg: #fff3e6 /* #ffffff */; // phone call popup name text
callFingerprintBg: #00000066; // phone call popup emoji fingerprint background
-callStatusFg: #d2c4b4 /* #aaabac */; // phone call popup status text (NOTE(eqrfns): haven't seen this on Linux)
+callStatusFg: #d3c4b4 /* #aaabac */; // phone call popup status text (NOTE(eqrfns): haven't seen this on Linux)
callIconFg: #fff3e6 /* #ffffff */; // phone call popup answer, hangup and mute mic icon
-callAnswerBg: #976c25 /* #5ad1bf */; // phone call popup answer button background (NOTE(eqrfns): this is one of those "bugged" colors that sometimes get stuck on theme change)
-callAnswerRipple: #6f4a00 /* #42c2b1 */; // phone call popup answer button ripple effect
-callAnswerBgOuter: #f2be6e26 /* #3febc926 */; // phone call popup answer button outer ripple effect
+callAnswerBg: #986c25 /* #5ad1bf */; // phone call popup answer button background (NOTE(eqrfns): this is one of those "bugged" colors that sometimes get stuck on theme change)
+callAnswerRipple: #704a01 /* #42c2b1 */; // phone call popup answer button ripple effect
+callAnswerBgOuter: #f3bd6e26 /* #3febc926 */; // phone call popup answer button outer ripple effect
callHangupBg: #da342e /* #d75a5a */; // phone call popup hangup button background
callHangupRipple: #ffffff19 /* #c04646 */; // phone call popup hangup button ripple effect
callCancelBg: #fff3e6 /* #ffffff */; // phone call popup line busy cancel button background
@@ -449,22 +449,22 @@ callBarUnmuteRipple: #7f7f7f; // phone call bar with muted mic mute and hangup b
callBarFg: dialogsNameFgActive; // phone call bar text and icons
importantTooltipBg: toastBg; //
importantTooltipFg: toastFg; //
-importantTooltipFgLink: #f2be6e /* #65fce8 */; // group call important tooltip text link color (NOTE(eqrfns): haven't seen this yet)
+importantTooltipFgLink: #f3bd6e /* #65fce8 */; // group call important tooltip text link color (NOTE(eqrfns): haven't seen this yet)
filterInputActiveBg: #403930 /* #3d444b */; // default rounded input field active background (like in chats list search field when field is focused)
botKbBg: #403930 /* #3d444b */; // bot keyboard button background
botKbDownBg: #4f4539 /* #494f55 */; // bot keyboard button ripple effect
-emojiIconFg: #aa9e8e /* #6c7278 */; // emoji category icon
+emojiIconFg: #ab9e8e /* #6c7278 */; // emoji category icon
emojiIconFgActive: #ff00ff /* #36cdb9 */; // active emoji category icon (NOTE(eqrfns): seems to be missing in the sources)
-overviewCheckBorder: #aa9e8e /* #e4eaef */; // shared media round checkbox border
-sideBarBg: #0e0a04 /* #18191d */; // filters side bar background
+overviewCheckBorder: #ab9e8e /* #e4eaef */; // shared media round checkbox border
+sideBarBg: #0e0904 /* #18191d */; // filters side bar background
sideBarBgActive: #2a241c /* #282e33 */; // filters side bar active background
-sideBarBgRipple: #211c14 /* #22272b */; // filters side bar ripple effect
-sideBarTextFg: #aa9e8e /* #8d939e */; // filters side bar text
-sideBarTextFgActive: #f2be6e /* #24c9b9 */; // filters side bar active item text
-sideBarIconFg: #aa9e8e /* #8d939e */; // filters side bar icon
-sideBarIconFgActive: #f2be6e /* #25dbc9 */; // filters side bar active item icon
-sideBarBadgeBg: #f2be6e /* #25dbc9 */; // filters side bar badge background
-sideBarBadgeBgMuted: #aa9e8e /* #8d939e */; // filters side bar unimportant badge background
+sideBarBgRipple: #221c14 /* #22272b */; // filters side bar ripple effect
+sideBarTextFg: #ab9e8e /* #8d939e */; // filters side bar text
+sideBarTextFgActive: #f3bd6e /* #24c9b9 */; // filters side bar active item text
+sideBarIconFg: #ab9e8e /* #8d939e */; // filters side bar icon
+sideBarIconFgActive: #f3bd6e /* #25dbc9 */; // filters side bar active item icon
+sideBarBadgeBg: #f3bd6e /* #25dbc9 */; // filters side bar badge background
+sideBarBadgeBgMuted: #ab9e8e /* #8d939e */; // filters side bar unimportant badge background
statisticsChartInactive: #352e26 /* #313a43d8 */; // inactive area in footer of statistic charts (NOTE(eqrfns): haven't seen this)
statisticsChartActive: #7e7365 /* #596879d8 */; // sides in footer of statistic charts (NOTE(eqrfns): haven't seen this)
@@ -474,24 +474,24 @@ groupCallMenuBg: #2a241c /* #292d33 */; // group members list in group profile u
groupCallMenuBgOver: #352e26 /* #343940 */; // group call popup menu with mouse over
groupCallMenuBgRipple: #403930 /* #3a4047 */; // group call popup menu ripple effect
groupCallMembersFg: #fff3e6 /* #ffffff */; // group call member name text (NOTE(eqrfns): this is used for the media view context menu text)
-sideBarBadgeFg: #0e0a04 /* #ffffff */; // filters side bar badge text (NOTE(eqrfns): this is used for sidebar counters)
-callBgOpaque: #211c14 /* #1b1f23 */; // phone call popup background
-callBgButton: #0e0a047f /* #1b1f237f */; // phone call window control buttons bg (NOTE(eqrfns): this is used for the top bar with signal strength and random emojis)
+sideBarBadgeFg: #0e0904 /* #ffffff */; // filters side bar badge text (NOTE(eqrfns): this is used for sidebar counters)
+callBgOpaque: #221c14 /* #1b1f23 */; // phone call popup background
+callBgButton: #0e09047f /* #1b1f237f */; // phone call window control buttons bg (NOTE(eqrfns): this is used for the top bar with signal strength and random emojis)
callIconBg: #fff3e61f /* #ffffff1f */; // phone call mute mic and camera button background
callIconBgActive: #fff3e6e5 /* #ffffffe5 */; // phone call line busy cancel, muted mic and camera button background
callIconFgActive: #362f27 /* #222222 */; // phone call line busy cancel, muted mic and camera icon
callIconActiveRipple: #362f2719 /* #f1f1f1 */; // phone call line busy cancel, muted mic and camera ripple effect
-groupCallBg: #211c14 /* #1a2026 */; // group call popup background
-groupCallActiveFg: #f2be6e /* #4db8ff */; // group call active controls text (NOTE(eqrfns): this is used for regular calls too)
+groupCallBg: #221c14 /* #1a2026 */; // group call popup background
+groupCallActiveFg: #f3bd6e /* #4db8ff */; // group call active controls text (NOTE(eqrfns): this is used for regular calls too)
groupCallMembersBg: #2a241c /* #2c333d */; // group call members list background
groupCallMembersBgOver: #352e26 /* #323a45 */; // group call members list row with mouse over
groupCallMembersBgRipple: #403930 /* #39424f */; // group call member row ripple effect
-groupCallMemberActiveIcon: #b6cea3 /* #8deb90 */; // group call active member icon
-groupCallMemberActiveStatus: #b6cea3 /* #8deb90 */; // group call active member status text
-groupCallMemberInactiveIcon: #aa9e8e /* #84888f */; // group call inactive member icon
-groupCallMemberInactiveStatus: #dcc3a1 /* #61c0ff */; // group call inactive member status text
+groupCallMemberActiveIcon: #b7cea2 /* #8deb90 */; // group call active member icon
+groupCallMemberActiveStatus: #b7cea2 /* #8deb90 */; // group call active member status text
+groupCallMemberInactiveIcon: #ab9e8e /* #84888f */; // group call inactive member icon
+groupCallMemberInactiveStatus: #ddc2a1 /* #61c0ff */; // group call inactive member status text
groupCallMemberMutedIcon: #ffb4ab /* #ed7372 */; // group call muted by admin member icon
-groupCallMemberNotJoinedStatus: #d2c4b4 /* #91979e */; // group call non joined member status text
+groupCallMemberNotJoinedStatus: #d3c4b4 /* #91979e */; // group call non joined member status text
groupCallIconFg: #fff3e6 /* #ffffff */; // group call mute / settings / leave icon
// I'll leave these group call button colors as they are for now.
groupCallLive1: #0dcc39; // group call live button color1
@@ -511,16 +511,16 @@ groupCallVideoSubTextFg: #ffffffc0; // group call additional text over video
// NOTE(eqrfns): These "chart" colors are also used for syntax highlighting!
// Unfortunately, there is probably no way to make them look good with high-contrast themes in both inbox and outbox messages
// if using non-surface background (like secondary_container, as in my case) for outbox messages.
-statisticsChartLineBlue: #bac3ff /* #327fe5 */; // represents blue color on statistical charts
-statisticsChartLineGreen: #b7d085 /* #61c752 */; // represents green color on statistical charts
-statisticsChartLineRed: #ffb5a0 /* #e05356 */; // represents red color on statistical charts
-statisticsChartLineGolden: #f2bd6f /* #eba52d */; // represents golden color on statistical charts
+statisticsChartLineBlue: #b9c3ff /* #327fe5 */; // represents blue color on statistical charts
+statisticsChartLineGreen: #b6d085 /* #61c752 */; // represents green color on statistical charts
+statisticsChartLineRed: #ffb59f /* #e05356 */; // represents red color on statistical charts
+statisticsChartLineGolden: #f3bd6e /* #eba52d */; // represents golden color on statistical charts
statisticsChartLineLightblue: #8fcff3 /* #58a8ed */; // represents lightblue color on statistical charts
-statisticsChartLineLightgreen: #c5cd7a /* #8fcf39 */; // represents lightgreen color on statistical charts
-statisticsChartLineOrange: #f8bb7b /* #f28c39 */; // represents orange color on statistical charts
+statisticsChartLineLightgreen: #c5cc7a /* #8fcf39 */; // represents lightgreen color on statistical charts
+statisticsChartLineOrange: #f9ba7b /* #f28c39 */; // represents orange color on statistical charts
statisticsChartLineIndigo: #d3bcfb /* #7f79f3 */; // represents indigo color on statistical charts
-statisticsChartLinePurple: #e2b8f5 /* #9f79e8 */; // represents purple color on statistical charts
-statisticsChartLineCyan: #86d6c0 /* #40d0ca */; // represents cyan color on statistical charts
+statisticsChartLinePurple: #e2b7f5 /* #9f79e8 */; // represents purple color on statistical charts
+statisticsChartLineCyan: #85d6c0 /* #40d0ca */; // represents cyan color on statistical charts
//botKbColor: windowBoldFgOver; // bot keyboard button text
//botKbPrimaryBg: #298acfcc; // bot keyboard Primary button background
//botKbDangerBg: #e05356cc; // bot keyboard Danger button background
diff --git a/config/tmux/colors.conf b/config/tmux/colors.conf
index 49b5745..aeeb6a0 100644
--- a/config/tmux/colors.conf
+++ b/config/tmux/colors.conf
@@ -1,17 +1,17 @@
# Auto-generated by Matugen
-set -g status-bg "#0e0a04"
-set -gq @thm_bar_bg "#0e0a04"
+set -g status-bg "#0e0904"
+set -gq @thm_bar_bg "#0e0904"
-set -gq @thm_bg "#18130b"
+set -gq @thm_bg "#18120b"
set -gq @thm_fg "#fff3e6"
-set -gq @thm_primary "#f2be6e"
-set -gq @thm_inverse_primary "#6f4a00"
-set -gq @thm_surface_low "#211c14"
+set -gq @thm_primary "#f3bd6e"
+set -gq @thm_inverse_primary "#704a01"
+set -gq @thm_surface_low "#221c14"
set -gq @thm_surface "#2a241c"
set -gq @thm_surface_variant "#352e26"
set -gq @thm_outline "#7e7365"
-set -gq @thm_text_variant "#d2c4b4"
+set -gq @thm_text_variant "#d3c4b4"
# Some variables/options must be re-set, which can be done here
set -g status-style "bg=#{@thm_bg},fg=#{@thm_fg}"
diff --git a/config/walker/themes/matugen/colors.css b/config/walker/themes/matugen/colors.css
index 7696f96..055a87f 100644
--- a/config/walker/themes/matugen/colors.css
+++ b/config/walker/themes/matugen/colors.css
@@ -1,10 +1,10 @@
:root{
---window_bg_color: #18130b;
---accent_bg_color: #f2be6e;
+--window_bg_color: #18120b;
+--accent_bg_color: #f3bd6e;
--theme_fg_color: #ffffff;
--error_bg_color: #142508;
---error_fg_color: #0e0a04;
---hover_fg_color: #261904;
+--error_fg_color: #0e0904;
+--hover_fg_color: #271904;
};
diff --git a/config/yazi/theme.toml b/config/yazi/theme.toml
index 4e0ceab..af020c3 100644
--- a/config/yazi/theme.toml
+++ b/config/yazi/theme.toml
@@ -8,19 +8,19 @@ find_keyword = { fg = "#ffb4ab", bold = true, italic = true, underline = true }
find_position = { fg = "#ffb4ab", bold = true, italic = true }
# Marker
-marker_copied = { fg = "#9dd170", bg = "#9dd170" }
-marker_cut = { fg = "#d2eabd", bg = "#d2eabd" }
+marker_copied = { fg = "#a0d26e", bg = "#a0d26e" }
+marker_cut = { fg = "#d3eabc", bg = "#d3eabc" }
marker_marked = { fg = "#ffb4ab", bg = "#ffb4ab" }
-marker_selected = { fg = "#b6cea3", bg = "#b6cea3" }
+marker_selected = { fg = "#b7cea2", bg = "#b7cea2" }
# Count
-count_copied = { fg = "#0e2004", bg = "#d2eabd" }
-count_cut = { fg = "#0e2004", bg = "#d2eabd" }
-count_selected = { fg = "#2f1d00", bg = "#b6cea3" }
+count_copied = { fg = "#0f2004", bg = "#d3eabc" }
+count_cut = { fg = "#0f2004", bg = "#d3eabc" }
+count_selected = { fg = "#301d00", bg = "#b7cea2" }
# Border
border_symbol = "│"
-border_style = { fg = "#f2be6e" }
+border_style = { fg = "#f3bd6e" }
# : ]]]
@@ -36,8 +36,8 @@ padding = { open = "█", close = "█" }
# : Tabs [[[
[tabs]
-active = { fg = "#f2be6e", bold = true, bg = "#18130b" }
-inactive = { fg = "#dcc3a1", bg = "#18130b" }
+active = { fg = "#f3bd6e", bold = true, bg = "#18120b" }
+inactive = { fg = "#ddc2a1", bg = "#18120b" }
sep_inner = { open = "[", close = "]" }
# : ]]]
@@ -47,16 +47,16 @@ sep_inner = { open = "[", close = "]" }
[mode]
# Mode
-normal_main = { bg = "#f2be6e", fg = "#2f1d00", bold = true }
-normal_alt = { bg = "#4f4539", fg = "#d2c4b4" }
+normal_main = { bg = "#f3bd6e", fg = "#301d00", bold = true }
+normal_alt = { bg = "#4f4539", fg = "#d3c4b4" }
# Select mode
-select_main = { bg = "#dcc3a1", fg = "#2c1e08", bold = true }
-select_alt = { bg = "#4f4539", fg = "#d2c4b4" }
+select_main = { bg = "#ddc2a1", fg = "#2c1e08", bold = true }
+select_alt = { bg = "#4f4539", fg = "#d3c4b4" }
# Unset mode
-unset_main = { bg = "#b6cea3", fg = "#142508", bold = true }
-unset_alt = { bg = "#4f4539", fg = "#d2c4b4" }
+unset_main = { bg = "#b7cea2", fg = "#142508", bold = true }
+unset_alt = { bg = "#4f4539", fg = "#d3c4b4" }
# : ]]]
@@ -68,15 +68,15 @@ sep_left = { open = "🭁", close = "🭠" }
sep_right = { open = "🭁", close = "🭠" }
# Permissions
-perm_type = { fg = "#a67a3e" }
-perm_write = { fg = "#688d4b" }
+perm_type = { fg = "#a8783d" }
+perm_write = { fg = "#6a8d4a" }
perm_read = { fg = "#ff2b12" }
-perm_exec = { fg = "#83c549" }
-perm_sep = { fg = "#ff9b17" }
+perm_exec = { fg = "#87c548" }
+perm_sep = { fg = "#ff9a18" }
# Progress
progress_label = { bold = true }
-progress_normal = { fg = "#f2be6e", bg = "#463f36" }
+progress_normal = { fg = "#f3bd6e", bg = "#463f36" }
progress_error = { fg = "#ffb4ab", bg = "#463f36" }
# : ]]]
@@ -87,8 +87,8 @@ progress_error = { fg = "#ffb4ab", bg = "#463f36" }
[which]
cols = 3
mask = { bg = "#463f36" }
-cand = { fg = "#f2be6e" }
-rest = { fg = "#2f1d00" }
+cand = { fg = "#f3bd6e" }
+rest = { fg = "#301d00" }
desc = { fg = "#fff3e6" }
separator = " ▶ "
separator_style = { fg = "#fff3e6" }
@@ -99,8 +99,8 @@ separator_style = { fg = "#fff3e6" }
# : Notify [[[
[notify]
-title_info = { fg = "#b6cea3" }
-title_warn = { fg = "#f2be6e" }
+title_info = { fg = "#b7cea2" }
+title_warn = { fg = "#f3bd6e" }
title_error = { fg = "#ffb4ab" }
# : ]]]
@@ -109,8 +109,8 @@ title_error = { fg = "#ffb4ab" }
# : Picker [[[
[pick]
-border = { fg = "#f2be6e" }
-active = { fg = "#b6cea3", bold = true }
+border = { fg = "#f3bd6e" }
+active = { fg = "#b7cea2", bold = true }
inactive = {}
# : ]]]
@@ -119,7 +119,7 @@ inactive = {}
# : Input [[[
[input]
-border = { fg = "#f2be6e" }
+border = { fg = "#f3bd6e" }
value = { fg = "#fff3e6" }
# : ]]]
@@ -128,7 +128,7 @@ value = { fg = "#fff3e6" }
# : Completion [[[
[cmp]
-border = { fg = "#f2be6e", bg = "#2f1d00" }
+border = { fg = "#f3bd6e", bg = "#301d00" }
# : ]]]
@@ -136,9 +136,9 @@ border = { fg = "#f2be6e", bg = "#2f1d00" }
# : Tasks [[[
[tasks]
-border = { fg = "#f2be6e" }
+border = { fg = "#f3bd6e" }
title = {}
-hovered = { fg = "#d2eabd", underline = true }
+hovered = { fg = "#d3eabc", underline = true }
# : ]]]
@@ -148,7 +148,7 @@ hovered = { fg = "#d2eabd", underline = true }
[help]
on = { fg = "#fff3e6" }
run = { fg = "#fff3e6" }
-footer = { fg = "#2c1e08", bg = "#dcc3a1" }
+footer = { fg = "#2c1e08", bg = "#ddc2a1" }
# : ]]]
@@ -176,7 +176,7 @@ rules = [
# Fallback
{ url = "*", fg = "#fff3e6" },
- { url = "*/", fg = "#f2be6e" },
+ { url = "*/", fg = "#f3bd6e" },
]
# : ]]]
@@ -184,738 +184,738 @@ rules = [
[icon]
globs = []
dirs = [
- { name = ".config", text = "", fg = "#f2be6e" },
- { name = ".git", text = "", fg = "#f2be6e" },
- { name = ".github", text = "", fg = "#f2be6e" },
- { name = ".npm", text = "", fg = "#f2be6e" },
- { name = "Desktop", text = "", fg = "#f2be6e" },
- { name = "Development", text = "", fg = "#f2be6e" },
- { name = "Documents", text = "", fg = "#f2be6e" },
- { name = "Downloads", text = "", fg = "#f2be6e" },
- { name = "Library", text = "", fg = "#f2be6e" },
- { name = "Movies", text = "", fg = "#f2be6e" },
- { name = "Music", text = "", fg = "#f2be6e" },
- { name = "Pictures", text = "", fg = "#f2be6e" },
- { name = "Public", text = "", fg = "#f2be6e" },
- { name = "Videos", text = "", fg = "#f2be6e" },
+ { name = ".config", text = "", fg = "#f3bd6e" },
+ { name = ".git", text = "", fg = "#f3bd6e" },
+ { name = ".github", text = "", fg = "#f3bd6e" },
+ { name = ".npm", text = "", fg = "#f3bd6e" },
+ { name = "Desktop", text = "", fg = "#f3bd6e" },
+ { name = "Development", text = "", fg = "#f3bd6e" },
+ { name = "Documents", text = "", fg = "#f3bd6e" },
+ { name = "Downloads", text = "", fg = "#f3bd6e" },
+ { name = "Library", text = "", fg = "#f3bd6e" },
+ { name = "Movies", text = "", fg = "#f3bd6e" },
+ { name = "Music", text = "", fg = "#f3bd6e" },
+ { name = "Pictures", text = "", fg = "#f3bd6e" },
+ { name = "Public", text = "", fg = "#f3bd6e" },
+ { name = "Videos", text = "", fg = "#f3bd6e" },
]
files = [
- { name = ".babelrc", text = "", fg = "#f2be6e" },
- { name = ".bash_profile", text = "", fg = "#f2be6e" },
- { name = ".bashrc", text = "", fg = "#f2be6e" },
- { name = ".clang-format", text = "", fg = "#f2be6e" },
- { name = ".clang-tidy", text = "", fg = "#f2be6e" },
- { name = ".codespellrc", text = "", fg = "#f2be6e" },
- { name = ".condarc", text = "", fg = "#f2be6e" },
- { name = ".dockerignore", text = "", fg = "#f2be6e" },
- { name = ".ds_store", text = "", fg = "#f2be6e" },
- { name = ".editorconfig", text = "", fg = "#f2be6e" },
- { name = ".env", text = "", fg = "#f2be6e" },
- { name = ".eslintignore", text = "", fg = "#f2be6e" },
- { name = ".eslintrc", text = "", fg = "#f2be6e" },
- { name = ".git-blame-ignore-revs", text = "", fg = "#f2be6e" },
- { name = ".gitattributes", text = "", fg = "#f2be6e" },
- { name = ".gitconfig", text = "", fg = "#f2be6e" },
- { name = ".gitignore", text = "", fg = "#f2be6e" },
- { name = ".gitlab-ci.yml", text = "", fg = "#f2be6e" },
- { name = ".gitmodules", text = "", fg = "#f2be6e" },
- { name = ".gtkrc-2.0", text = "", fg = "#f2be6e" },
- { name = ".gvimrc", text = "", fg = "#f2be6e" },
- { name = ".justfile", text = "", fg = "#f2be6e" },
- { name = ".luacheckrc", text = "", fg = "#f2be6e" },
- { name = ".luaurc", text = "", fg = "#f2be6e" },
- { name = ".mailmap", text = "", fg = "#f2be6e" },
- { name = ".nanorc", text = "", fg = "#f2be6e" },
- { name = ".npmignore", text = "", fg = "#f2be6e" },
- { name = ".npmrc", text = "", fg = "#f2be6e" },
- { name = ".nuxtrc", text = "", fg = "#f2be6e" },
- { name = ".nvmrc", text = "", fg = "#f2be6e" },
- { name = ".pnpmfile.cjs", text = "", fg = "#f2be6e" },
- { name = ".pre-commit-config.yaml", text = "", fg = "#f2be6e" },
- { name = ".prettierignore", text = "", fg = "#f2be6e" },
- { name = ".prettierrc", text = "", fg = "#f2be6e" },
- { name = ".prettierrc.cjs", text = "", fg = "#f2be6e" },
- { name = ".prettierrc.js", text = "", fg = "#f2be6e" },
- { name = ".prettierrc.json", text = "", fg = "#f2be6e" },
- { name = ".prettierrc.json5", text = "", fg = "#f2be6e" },
- { name = ".prettierrc.mjs", text = "", fg = "#f2be6e" },
- { name = ".prettierrc.toml", text = "", fg = "#f2be6e" },
- { name = ".prettierrc.yaml", text = "", fg = "#f2be6e" },
- { name = ".prettierrc.yml", text = "", fg = "#f2be6e" },
- { name = ".pylintrc", text = "", fg = "#f2be6e" },
- { name = ".settings.json", text = "", fg = "#f2be6e" },
- { name = ".SRCINFO", text = "", fg = "#f2be6e" },
- { name = ".vimrc", text = "", fg = "#f2be6e" },
- { name = ".Xauthority", text = "", fg = "#f2be6e" },
- { name = ".xinitrc", text = "", fg = "#f2be6e" },
- { name = ".Xresources", text = "", fg = "#f2be6e" },
- { name = ".xsession", text = "", fg = "#f2be6e" },
- { name = ".zprofile", text = "", fg = "#f2be6e" },
- { name = ".zshenv", text = "", fg = "#f2be6e" },
- { name = ".zshrc", text = "", fg = "#f2be6e" },
- { name = "_gvimrc", text = "", fg = "#f2be6e" },
- { name = "_vimrc", text = "", fg = "#f2be6e" },
- { name = "AUTHORS", text = "", fg = "#f2be6e" },
- { name = "AUTHORS.txt", text = "", fg = "#f2be6e" },
- { name = "brewfile", text = "", fg = "#f2be6e" },
- { name = "bspwmrc", text = "", fg = "#f2be6e" },
- { name = "build", text = "", fg = "#f2be6e" },
- { name = "build.gradle", text = "", fg = "#f2be6e" },
- { name = "build.zig.zon", text = "", fg = "#f2be6e" },
- { name = "bun.lock", text = "", fg = "#f2be6e" },
- { name = "bun.lockb", text = "", fg = "#f2be6e" },
- { name = "cantorrc", text = "", fg = "#f2be6e" },
- { name = "checkhealth", text = "", fg = "#f2be6e" },
- { name = "cmakelists.txt", text = "", fg = "#f2be6e" },
- { name = "code_of_conduct", text = "", fg = "#f2be6e" },
- { name = "code_of_conduct.md", text = "", fg = "#f2be6e" },
- { name = "commit_editmsg", text = "", fg = "#f2be6e" },
- { name = "commitlint.config.js", text = "", fg = "#f2be6e" },
- { name = "commitlint.config.ts", text = "", fg = "#f2be6e" },
- { name = "compose.yaml", text = "", fg = "#f2be6e" },
- { name = "compose.yml", text = "", fg = "#f2be6e" },
- { name = "config", text = "", fg = "#f2be6e" },
- { name = "containerfile", text = "", fg = "#f2be6e" },
- { name = "copying", text = "", fg = "#f2be6e" },
- { name = "copying.lesser", text = "", fg = "#f2be6e" },
- { name = "Directory.Build.props", text = "", fg = "#f2be6e" },
- { name = "Directory.Build.targets", text = "", fg = "#f2be6e" },
- { name = "Directory.Packages.props", text = "", fg = "#f2be6e" },
- { name = "docker-compose.yaml", text = "", fg = "#f2be6e" },
- { name = "docker-compose.yml", text = "", fg = "#f2be6e" },
- { name = "dockerfile", text = "", fg = "#f2be6e" },
- { name = "eslint.config.cjs", text = "", fg = "#f2be6e" },
- { name = "eslint.config.js", text = "", fg = "#f2be6e" },
- { name = "eslint.config.mjs", text = "", fg = "#f2be6e" },
- { name = "eslint.config.ts", text = "", fg = "#f2be6e" },
- { name = "ext_typoscript_setup.txt", text = "", fg = "#f2be6e" },
- { name = "favicon.ico", text = "", fg = "#f2be6e" },
- { name = "fp-info-cache", text = "", fg = "#f2be6e" },
- { name = "fp-lib-table", text = "", fg = "#f2be6e" },
- { name = "FreeCAD.conf", text = "", fg = "#f2be6e" },
- { name = "Gemfile", text = "", fg = "#f2be6e" },
- { name = "gnumakefile", text = "", fg = "#f2be6e" },
- { name = "go.mod", text = "", fg = "#f2be6e" },
- { name = "go.sum", text = "", fg = "#f2be6e" },
- { name = "go.work", text = "", fg = "#f2be6e" },
- { name = "gradle-wrapper.properties", text = "", fg = "#f2be6e" },
- { name = "gradle.properties", text = "", fg = "#f2be6e" },
- { name = "gradlew", text = "", fg = "#f2be6e" },
- { name = "groovy", text = "", fg = "#f2be6e" },
- { name = "gruntfile.babel.js", text = "", fg = "#f2be6e" },
- { name = "gruntfile.coffee", text = "", fg = "#f2be6e" },
- { name = "gruntfile.js", text = "", fg = "#f2be6e" },
- { name = "gruntfile.ts", text = "", fg = "#f2be6e" },
- { name = "gtkrc", text = "", fg = "#f2be6e" },
- { name = "gulpfile.babel.js", text = "", fg = "#f2be6e" },
- { name = "gulpfile.coffee", text = "", fg = "#f2be6e" },
- { name = "gulpfile.js", text = "", fg = "#f2be6e" },
- { name = "gulpfile.ts", text = "", fg = "#f2be6e" },
- { name = "hypridle.conf", text = "", fg = "#f2be6e" },
- { name = "hyprland.conf", text = "", fg = "#f2be6e" },
- { name = "hyprlandd.conf", text = "", fg = "#f2be6e" },
- { name = "hyprlock.conf", text = "", fg = "#f2be6e" },
- { name = "hyprpaper.conf", text = "", fg = "#f2be6e" },
- { name = "hyprsunset.conf", text = "", fg = "#f2be6e" },
- { name = "i18n.config.js", text = "", fg = "#f2be6e" },
- { name = "i18n.config.ts", text = "", fg = "#f2be6e" },
- { name = "i3blocks.conf", text = "", fg = "#f2be6e" },
- { name = "i3status.conf", text = "", fg = "#f2be6e" },
- { name = "index.theme", text = "", fg = "#f2be6e" },
- { name = "ionic.config.json", text = "", fg = "#f2be6e" },
- { name = "Jenkinsfile", text = "", fg = "#f2be6e" },
- { name = "justfile", text = "", fg = "#f2be6e" },
- { name = "kalgebrarc", text = "", fg = "#f2be6e" },
- { name = "kdeglobals", text = "", fg = "#f2be6e" },
- { name = "kdenlive-layoutsrc", text = "", fg = "#f2be6e" },
- { name = "kdenliverc", text = "", fg = "#f2be6e" },
- { name = "kritadisplayrc", text = "", fg = "#f2be6e" },
- { name = "kritarc", text = "", fg = "#f2be6e" },
- { name = "license", text = "", fg = "#f2be6e" },
- { name = "license.md", text = "", fg = "#f2be6e" },
- { name = "lxde-rc.xml", text = "", fg = "#f2be6e" },
- { name = "lxqt.conf", text = "", fg = "#f2be6e" },
- { name = "makefile", text = "", fg = "#f2be6e" },
- { name = "mix.lock", text = "", fg = "#f2be6e" },
- { name = "mpv.conf", text = "", fg = "#f2be6e" },
- { name = "next.config.cjs", text = "", fg = "#f2be6e" },
- { name = "next.config.js", text = "", fg = "#f2be6e" },
- { name = "next.config.ts", text = "", fg = "#f2be6e" },
- { name = "node_modules", text = "", fg = "#f2be6e" },
- { name = "nuxt.config.cjs", text = "", fg = "#f2be6e" },
- { name = "nuxt.config.js", text = "", fg = "#f2be6e" },
- { name = "nuxt.config.mjs", text = "", fg = "#f2be6e" },
- { name = "nuxt.config.ts", text = "", fg = "#f2be6e" },
- { name = "package-lock.json", text = "", fg = "#f2be6e" },
- { name = "package.json", text = "", fg = "#f2be6e" },
- { name = "PKGBUILD", text = "", fg = "#f2be6e" },
- { name = "platformio.ini", text = "", fg = "#f2be6e" },
- { name = "playwright.config.cjs", text = "", fg = "#f2be6e" },
- { name = "playwright.config.cts", text = "", fg = "#f2be6e" },
- { name = "playwright.config.js", text = "", fg = "#f2be6e" },
- { name = "playwright.config.mjs", text = "", fg = "#f2be6e" },
- { name = "playwright.config.mts", text = "", fg = "#f2be6e" },
- { name = "playwright.config.ts", text = "", fg = "#f2be6e" },
- { name = "pnpm-lock.yaml", text = "", fg = "#f2be6e" },
- { name = "pnpm-workspace.yaml", text = "", fg = "#f2be6e" },
- { name = "pom.xml", text = "", fg = "#f2be6e" },
- { name = "prettier.config.cjs", text = "", fg = "#f2be6e" },
- { name = "prettier.config.js", text = "", fg = "#f2be6e" },
- { name = "prettier.config.mjs", text = "", fg = "#f2be6e" },
- { name = "prettier.config.ts", text = "", fg = "#f2be6e" },
- { name = "prisma.config.mts", text = "", fg = "#f2be6e" },
- { name = "prisma.config.ts", text = "", fg = "#f2be6e" },
- { name = "procfile", text = "", fg = "#f2be6e" },
- { name = "PrusaSlicer.ini", text = "", fg = "#f2be6e" },
- { name = "PrusaSlicerGcodeViewer.ini", text = "", fg = "#f2be6e" },
- { name = "py.typed", text = "", fg = "#f2be6e" },
- { name = "QtProject.conf", text = "", fg = "#f2be6e" },
- { name = "rakefile", text = "", fg = "#f2be6e" },
- { name = "readme", text = "", fg = "#f2be6e" },
- { name = "readme.md", text = "", fg = "#f2be6e" },
- { name = "rmd", text = "", fg = "#f2be6e" },
- { name = "robots.txt", text = "", fg = "#f2be6e" },
- { name = "security", text = "", fg = "#f2be6e" },
- { name = "security.md", text = "", fg = "#f2be6e" },
- { name = "settings.gradle", text = "", fg = "#f2be6e" },
- { name = "svelte.config.js", text = "", fg = "#f2be6e" },
- { name = "sxhkdrc", text = "", fg = "#f2be6e" },
- { name = "sym-lib-table", text = "", fg = "#f2be6e" },
- { name = "tailwind.config.js", text = "", fg = "#f2be6e" },
- { name = "tailwind.config.mjs", text = "", fg = "#f2be6e" },
- { name = "tailwind.config.ts", text = "", fg = "#f2be6e" },
- { name = "tmux.conf", text = "", fg = "#f2be6e" },
- { name = "tmux.conf.local", text = "", fg = "#f2be6e" },
- { name = "tsconfig.json", text = "", fg = "#f2be6e" },
- { name = "unlicense", text = "", fg = "#f2be6e" },
- { name = "vagrantfile", text = "", fg = "#f2be6e" },
- { name = "vercel.json", text = "", fg = "#f2be6e" },
- { name = "vite.config.cjs", text = "", fg = "#f2be6e" },
- { name = "vite.config.cts", text = "", fg = "#f2be6e" },
- { name = "vite.config.js", text = "", fg = "#f2be6e" },
- { name = "vite.config.mjs", text = "", fg = "#f2be6e" },
- { name = "vite.config.mts", text = "", fg = "#f2be6e" },
- { name = "vite.config.ts", text = "", fg = "#f2be6e" },
- { name = "vitest.config.cjs", text = "", fg = "#f2be6e" },
- { name = "vitest.config.cts", text = "", fg = "#f2be6e" },
- { name = "vitest.config.js", text = "", fg = "#f2be6e" },
- { name = "vitest.config.mjs", text = "", fg = "#f2be6e" },
- { name = "vitest.config.mts", text = "", fg = "#f2be6e" },
- { name = "vitest.config.ts", text = "", fg = "#f2be6e" },
- { name = "vlcrc", text = "", fg = "#f2be6e" },
- { name = "webpack", text = "", fg = "#f2be6e" },
- { name = "weston.ini", text = "", fg = "#f2be6e" },
- { name = "workspace", text = "", fg = "#f2be6e" },
- { name = "wrangler.jsonc", text = "", fg = "#f2be6e" },
- { name = "wrangler.toml", text = "", fg = "#f2be6e" },
- { name = "xdph.conf", text = "", fg = "#f2be6e" },
- { name = "xmobarrc", text = "", fg = "#f2be6e" },
- { name = "xmobarrc.hs", text = "", fg = "#f2be6e" },
- { name = "xmonad.hs", text = "", fg = "#f2be6e" },
- { name = "xorg.conf", text = "", fg = "#f2be6e" },
- { name = "xsettingsd.conf", text = "", fg = "#f2be6e" },
+ { name = ".babelrc", text = "", fg = "#f3bd6e" },
+ { name = ".bash_profile", text = "", fg = "#f3bd6e" },
+ { name = ".bashrc", text = "", fg = "#f3bd6e" },
+ { name = ".clang-format", text = "", fg = "#f3bd6e" },
+ { name = ".clang-tidy", text = "", fg = "#f3bd6e" },
+ { name = ".codespellrc", text = "", fg = "#f3bd6e" },
+ { name = ".condarc", text = "", fg = "#f3bd6e" },
+ { name = ".dockerignore", text = "", fg = "#f3bd6e" },
+ { name = ".ds_store", text = "", fg = "#f3bd6e" },
+ { name = ".editorconfig", text = "", fg = "#f3bd6e" },
+ { name = ".env", text = "", fg = "#f3bd6e" },
+ { name = ".eslintignore", text = "", fg = "#f3bd6e" },
+ { name = ".eslintrc", text = "", fg = "#f3bd6e" },
+ { name = ".git-blame-ignore-revs", text = "", fg = "#f3bd6e" },
+ { name = ".gitattributes", text = "", fg = "#f3bd6e" },
+ { name = ".gitconfig", text = "", fg = "#f3bd6e" },
+ { name = ".gitignore", text = "", fg = "#f3bd6e" },
+ { name = ".gitlab-ci.yml", text = "", fg = "#f3bd6e" },
+ { name = ".gitmodules", text = "", fg = "#f3bd6e" },
+ { name = ".gtkrc-2.0", text = "", fg = "#f3bd6e" },
+ { name = ".gvimrc", text = "", fg = "#f3bd6e" },
+ { name = ".justfile", text = "", fg = "#f3bd6e" },
+ { name = ".luacheckrc", text = "", fg = "#f3bd6e" },
+ { name = ".luaurc", text = "", fg = "#f3bd6e" },
+ { name = ".mailmap", text = "", fg = "#f3bd6e" },
+ { name = ".nanorc", text = "", fg = "#f3bd6e" },
+ { name = ".npmignore", text = "", fg = "#f3bd6e" },
+ { name = ".npmrc", text = "", fg = "#f3bd6e" },
+ { name = ".nuxtrc", text = "", fg = "#f3bd6e" },
+ { name = ".nvmrc", text = "", fg = "#f3bd6e" },
+ { name = ".pnpmfile.cjs", text = "", fg = "#f3bd6e" },
+ { name = ".pre-commit-config.yaml", text = "", fg = "#f3bd6e" },
+ { name = ".prettierignore", text = "", fg = "#f3bd6e" },
+ { name = ".prettierrc", text = "", fg = "#f3bd6e" },
+ { name = ".prettierrc.cjs", text = "", fg = "#f3bd6e" },
+ { name = ".prettierrc.js", text = "", fg = "#f3bd6e" },
+ { name = ".prettierrc.json", text = "", fg = "#f3bd6e" },
+ { name = ".prettierrc.json5", text = "", fg = "#f3bd6e" },
+ { name = ".prettierrc.mjs", text = "", fg = "#f3bd6e" },
+ { name = ".prettierrc.toml", text = "", fg = "#f3bd6e" },
+ { name = ".prettierrc.yaml", text = "", fg = "#f3bd6e" },
+ { name = ".prettierrc.yml", text = "", fg = "#f3bd6e" },
+ { name = ".pylintrc", text = "", fg = "#f3bd6e" },
+ { name = ".settings.json", text = "", fg = "#f3bd6e" },
+ { name = ".SRCINFO", text = "", fg = "#f3bd6e" },
+ { name = ".vimrc", text = "", fg = "#f3bd6e" },
+ { name = ".Xauthority", text = "", fg = "#f3bd6e" },
+ { name = ".xinitrc", text = "", fg = "#f3bd6e" },
+ { name = ".Xresources", text = "", fg = "#f3bd6e" },
+ { name = ".xsession", text = "", fg = "#f3bd6e" },
+ { name = ".zprofile", text = "", fg = "#f3bd6e" },
+ { name = ".zshenv", text = "", fg = "#f3bd6e" },
+ { name = ".zshrc", text = "", fg = "#f3bd6e" },
+ { name = "_gvimrc", text = "", fg = "#f3bd6e" },
+ { name = "_vimrc", text = "", fg = "#f3bd6e" },
+ { name = "AUTHORS", text = "", fg = "#f3bd6e" },
+ { name = "AUTHORS.txt", text = "", fg = "#f3bd6e" },
+ { name = "brewfile", text = "", fg = "#f3bd6e" },
+ { name = "bspwmrc", text = "", fg = "#f3bd6e" },
+ { name = "build", text = "", fg = "#f3bd6e" },
+ { name = "build.gradle", text = "", fg = "#f3bd6e" },
+ { name = "build.zig.zon", text = "", fg = "#f3bd6e" },
+ { name = "bun.lock", text = "", fg = "#f3bd6e" },
+ { name = "bun.lockb", text = "", fg = "#f3bd6e" },
+ { name = "cantorrc", text = "", fg = "#f3bd6e" },
+ { name = "checkhealth", text = "", fg = "#f3bd6e" },
+ { name = "cmakelists.txt", text = "", fg = "#f3bd6e" },
+ { name = "code_of_conduct", text = "", fg = "#f3bd6e" },
+ { name = "code_of_conduct.md", text = "", fg = "#f3bd6e" },
+ { name = "commit_editmsg", text = "", fg = "#f3bd6e" },
+ { name = "commitlint.config.js", text = "", fg = "#f3bd6e" },
+ { name = "commitlint.config.ts", text = "", fg = "#f3bd6e" },
+ { name = "compose.yaml", text = "", fg = "#f3bd6e" },
+ { name = "compose.yml", text = "", fg = "#f3bd6e" },
+ { name = "config", text = "", fg = "#f3bd6e" },
+ { name = "containerfile", text = "", fg = "#f3bd6e" },
+ { name = "copying", text = "", fg = "#f3bd6e" },
+ { name = "copying.lesser", text = "", fg = "#f3bd6e" },
+ { name = "Directory.Build.props", text = "", fg = "#f3bd6e" },
+ { name = "Directory.Build.targets", text = "", fg = "#f3bd6e" },
+ { name = "Directory.Packages.props", text = "", fg = "#f3bd6e" },
+ { name = "docker-compose.yaml", text = "", fg = "#f3bd6e" },
+ { name = "docker-compose.yml", text = "", fg = "#f3bd6e" },
+ { name = "dockerfile", text = "", fg = "#f3bd6e" },
+ { name = "eslint.config.cjs", text = "", fg = "#f3bd6e" },
+ { name = "eslint.config.js", text = "", fg = "#f3bd6e" },
+ { name = "eslint.config.mjs", text = "", fg = "#f3bd6e" },
+ { name = "eslint.config.ts", text = "", fg = "#f3bd6e" },
+ { name = "ext_typoscript_setup.txt", text = "", fg = "#f3bd6e" },
+ { name = "favicon.ico", text = "", fg = "#f3bd6e" },
+ { name = "fp-info-cache", text = "", fg = "#f3bd6e" },
+ { name = "fp-lib-table", text = "", fg = "#f3bd6e" },
+ { name = "FreeCAD.conf", text = "", fg = "#f3bd6e" },
+ { name = "Gemfile", text = "", fg = "#f3bd6e" },
+ { name = "gnumakefile", text = "", fg = "#f3bd6e" },
+ { name = "go.mod", text = "", fg = "#f3bd6e" },
+ { name = "go.sum", text = "", fg = "#f3bd6e" },
+ { name = "go.work", text = "", fg = "#f3bd6e" },
+ { name = "gradle-wrapper.properties", text = "", fg = "#f3bd6e" },
+ { name = "gradle.properties", text = "", fg = "#f3bd6e" },
+ { name = "gradlew", text = "", fg = "#f3bd6e" },
+ { name = "groovy", text = "", fg = "#f3bd6e" },
+ { name = "gruntfile.babel.js", text = "", fg = "#f3bd6e" },
+ { name = "gruntfile.coffee", text = "", fg = "#f3bd6e" },
+ { name = "gruntfile.js", text = "", fg = "#f3bd6e" },
+ { name = "gruntfile.ts", text = "", fg = "#f3bd6e" },
+ { name = "gtkrc", text = "", fg = "#f3bd6e" },
+ { name = "gulpfile.babel.js", text = "", fg = "#f3bd6e" },
+ { name = "gulpfile.coffee", text = "", fg = "#f3bd6e" },
+ { name = "gulpfile.js", text = "", fg = "#f3bd6e" },
+ { name = "gulpfile.ts", text = "", fg = "#f3bd6e" },
+ { name = "hypridle.conf", text = "", fg = "#f3bd6e" },
+ { name = "hyprland.conf", text = "", fg = "#f3bd6e" },
+ { name = "hyprlandd.conf", text = "", fg = "#f3bd6e" },
+ { name = "hyprlock.conf", text = "", fg = "#f3bd6e" },
+ { name = "hyprpaper.conf", text = "", fg = "#f3bd6e" },
+ { name = "hyprsunset.conf", text = "", fg = "#f3bd6e" },
+ { name = "i18n.config.js", text = "", fg = "#f3bd6e" },
+ { name = "i18n.config.ts", text = "", fg = "#f3bd6e" },
+ { name = "i3blocks.conf", text = "", fg = "#f3bd6e" },
+ { name = "i3status.conf", text = "", fg = "#f3bd6e" },
+ { name = "index.theme", text = "", fg = "#f3bd6e" },
+ { name = "ionic.config.json", text = "", fg = "#f3bd6e" },
+ { name = "Jenkinsfile", text = "", fg = "#f3bd6e" },
+ { name = "justfile", text = "", fg = "#f3bd6e" },
+ { name = "kalgebrarc", text = "", fg = "#f3bd6e" },
+ { name = "kdeglobals", text = "", fg = "#f3bd6e" },
+ { name = "kdenlive-layoutsrc", text = "", fg = "#f3bd6e" },
+ { name = "kdenliverc", text = "", fg = "#f3bd6e" },
+ { name = "kritadisplayrc", text = "", fg = "#f3bd6e" },
+ { name = "kritarc", text = "", fg = "#f3bd6e" },
+ { name = "license", text = "", fg = "#f3bd6e" },
+ { name = "license.md", text = "", fg = "#f3bd6e" },
+ { name = "lxde-rc.xml", text = "", fg = "#f3bd6e" },
+ { name = "lxqt.conf", text = "", fg = "#f3bd6e" },
+ { name = "makefile", text = "", fg = "#f3bd6e" },
+ { name = "mix.lock", text = "", fg = "#f3bd6e" },
+ { name = "mpv.conf", text = "", fg = "#f3bd6e" },
+ { name = "next.config.cjs", text = "", fg = "#f3bd6e" },
+ { name = "next.config.js", text = "", fg = "#f3bd6e" },
+ { name = "next.config.ts", text = "", fg = "#f3bd6e" },
+ { name = "node_modules", text = "", fg = "#f3bd6e" },
+ { name = "nuxt.config.cjs", text = "", fg = "#f3bd6e" },
+ { name = "nuxt.config.js", text = "", fg = "#f3bd6e" },
+ { name = "nuxt.config.mjs", text = "", fg = "#f3bd6e" },
+ { name = "nuxt.config.ts", text = "", fg = "#f3bd6e" },
+ { name = "package-lock.json", text = "", fg = "#f3bd6e" },
+ { name = "package.json", text = "", fg = "#f3bd6e" },
+ { name = "PKGBUILD", text = "", fg = "#f3bd6e" },
+ { name = "platformio.ini", text = "", fg = "#f3bd6e" },
+ { name = "playwright.config.cjs", text = "", fg = "#f3bd6e" },
+ { name = "playwright.config.cts", text = "", fg = "#f3bd6e" },
+ { name = "playwright.config.js", text = "", fg = "#f3bd6e" },
+ { name = "playwright.config.mjs", text = "", fg = "#f3bd6e" },
+ { name = "playwright.config.mts", text = "", fg = "#f3bd6e" },
+ { name = "playwright.config.ts", text = "", fg = "#f3bd6e" },
+ { name = "pnpm-lock.yaml", text = "", fg = "#f3bd6e" },
+ { name = "pnpm-workspace.yaml", text = "", fg = "#f3bd6e" },
+ { name = "pom.xml", text = "", fg = "#f3bd6e" },
+ { name = "prettier.config.cjs", text = "", fg = "#f3bd6e" },
+ { name = "prettier.config.js", text = "", fg = "#f3bd6e" },
+ { name = "prettier.config.mjs", text = "", fg = "#f3bd6e" },
+ { name = "prettier.config.ts", text = "", fg = "#f3bd6e" },
+ { name = "prisma.config.mts", text = "", fg = "#f3bd6e" },
+ { name = "prisma.config.ts", text = "", fg = "#f3bd6e" },
+ { name = "procfile", text = "", fg = "#f3bd6e" },
+ { name = "PrusaSlicer.ini", text = "", fg = "#f3bd6e" },
+ { name = "PrusaSlicerGcodeViewer.ini", text = "", fg = "#f3bd6e" },
+ { name = "py.typed", text = "", fg = "#f3bd6e" },
+ { name = "QtProject.conf", text = "", fg = "#f3bd6e" },
+ { name = "rakefile", text = "", fg = "#f3bd6e" },
+ { name = "readme", text = "", fg = "#f3bd6e" },
+ { name = "readme.md", text = "", fg = "#f3bd6e" },
+ { name = "rmd", text = "", fg = "#f3bd6e" },
+ { name = "robots.txt", text = "", fg = "#f3bd6e" },
+ { name = "security", text = "", fg = "#f3bd6e" },
+ { name = "security.md", text = "", fg = "#f3bd6e" },
+ { name = "settings.gradle", text = "", fg = "#f3bd6e" },
+ { name = "svelte.config.js", text = "", fg = "#f3bd6e" },
+ { name = "sxhkdrc", text = "", fg = "#f3bd6e" },
+ { name = "sym-lib-table", text = "", fg = "#f3bd6e" },
+ { name = "tailwind.config.js", text = "", fg = "#f3bd6e" },
+ { name = "tailwind.config.mjs", text = "", fg = "#f3bd6e" },
+ { name = "tailwind.config.ts", text = "", fg = "#f3bd6e" },
+ { name = "tmux.conf", text = "", fg = "#f3bd6e" },
+ { name = "tmux.conf.local", text = "", fg = "#f3bd6e" },
+ { name = "tsconfig.json", text = "", fg = "#f3bd6e" },
+ { name = "unlicense", text = "", fg = "#f3bd6e" },
+ { name = "vagrantfile", text = "", fg = "#f3bd6e" },
+ { name = "vercel.json", text = "", fg = "#f3bd6e" },
+ { name = "vite.config.cjs", text = "", fg = "#f3bd6e" },
+ { name = "vite.config.cts", text = "", fg = "#f3bd6e" },
+ { name = "vite.config.js", text = "", fg = "#f3bd6e" },
+ { name = "vite.config.mjs", text = "", fg = "#f3bd6e" },
+ { name = "vite.config.mts", text = "", fg = "#f3bd6e" },
+ { name = "vite.config.ts", text = "", fg = "#f3bd6e" },
+ { name = "vitest.config.cjs", text = "", fg = "#f3bd6e" },
+ { name = "vitest.config.cts", text = "", fg = "#f3bd6e" },
+ { name = "vitest.config.js", text = "", fg = "#f3bd6e" },
+ { name = "vitest.config.mjs", text = "", fg = "#f3bd6e" },
+ { name = "vitest.config.mts", text = "", fg = "#f3bd6e" },
+ { name = "vitest.config.ts", text = "", fg = "#f3bd6e" },
+ { name = "vlcrc", text = "", fg = "#f3bd6e" },
+ { name = "webpack", text = "", fg = "#f3bd6e" },
+ { name = "weston.ini", text = "", fg = "#f3bd6e" },
+ { name = "workspace", text = "", fg = "#f3bd6e" },
+ { name = "wrangler.jsonc", text = "", fg = "#f3bd6e" },
+ { name = "wrangler.toml", text = "", fg = "#f3bd6e" },
+ { name = "xdph.conf", text = "", fg = "#f3bd6e" },
+ { name = "xmobarrc", text = "", fg = "#f3bd6e" },
+ { name = "xmobarrc.hs", text = "", fg = "#f3bd6e" },
+ { name = "xmonad.hs", text = "", fg = "#f3bd6e" },
+ { name = "xorg.conf", text = "", fg = "#f3bd6e" },
+ { name = "xsettingsd.conf", text = "", fg = "#f3bd6e" },
]
exts = [
- { name = "3gp", text = "", fg = "#f2be6e" },
- { name = "3mf", text = "", fg = "#f2be6e" },
- { name = "7z", text = "", fg = "#f2be6e" },
- { name = "a", text = "", fg = "#f2be6e" },
- { name = "aac", text = "", fg = "#f2be6e" },
- { name = "ada", text = "", fg = "#f2be6e" },
- { name = "adb", text = "", fg = "#f2be6e" },
- { name = "ads", text = "", fg = "#f2be6e" },
- { name = "ai", text = "", fg = "#f2be6e" },
- { name = "aif", text = "", fg = "#f2be6e" },
- { name = "aiff", text = "", fg = "#f2be6e" },
- { name = "android", text = "", fg = "#f2be6e" },
- { name = "ape", text = "", fg = "#f2be6e" },
- { name = "apk", text = "", fg = "#f2be6e" },
- { name = "apl", text = "", fg = "#f2be6e" },
- { name = "app", text = "", fg = "#f2be6e" },
- { name = "applescript", text = "", fg = "#f2be6e" },
- { name = "asc", text = "", fg = "#f2be6e" },
- { name = "asm", text = "", fg = "#f2be6e" },
- { name = "ass", text = "", fg = "#f2be6e" },
- { name = "astro", text = "", fg = "#f2be6e" },
- { name = "avif", text = "", fg = "#f2be6e" },
- { name = "awk", text = "", fg = "#f2be6e" },
- { name = "azcli", text = "", fg = "#f2be6e" },
- { name = "bak", text = "", fg = "#f2be6e" },
- { name = "bash", text = "", fg = "#f2be6e" },
- { name = "bat", text = "", fg = "#f2be6e" },
- { name = "bazel", text = "", fg = "#f2be6e" },
- { name = "bib", text = "", fg = "#f2be6e" },
- { name = "bicep", text = "", fg = "#f2be6e" },
- { name = "bicepparam", text = "", fg = "#f2be6e" },
- { name = "bin", text = "", fg = "#f2be6e" },
- { name = "blade.php", text = "", fg = "#f2be6e" },
- { name = "blend", text = "", fg = "#f2be6e" },
- { name = "blp", text = "", fg = "#f2be6e" },
- { name = "bmp", text = "", fg = "#f2be6e" },
- { name = "bqn", text = "", fg = "#f2be6e" },
- { name = "brep", text = "", fg = "#f2be6e" },
- { name = "bz", text = "", fg = "#f2be6e" },
- { name = "bz2", text = "", fg = "#f2be6e" },
- { name = "bz3", text = "", fg = "#f2be6e" },
- { name = "bzl", text = "", fg = "#f2be6e" },
- { name = "c", text = "", fg = "#f2be6e" },
- { name = "c++", text = "", fg = "#f2be6e" },
- { name = "cache", text = "", fg = "#f2be6e" },
- { name = "cast", text = "", fg = "#f2be6e" },
- { name = "cbl", text = "", fg = "#f2be6e" },
- { name = "cc", text = "", fg = "#f2be6e" },
- { name = "ccm", text = "", fg = "#f2be6e" },
- { name = "cfc", text = "", fg = "#f2be6e" },
- { name = "cfg", text = "", fg = "#f2be6e" },
- { name = "cfm", text = "", fg = "#f2be6e" },
- { name = "cjs", text = "", fg = "#f2be6e" },
- { name = "clj", text = "", fg = "#f2be6e" },
- { name = "cljc", text = "", fg = "#f2be6e" },
- { name = "cljd", text = "", fg = "#f2be6e" },
- { name = "cljs", text = "", fg = "#f2be6e" },
- { name = "cmake", text = "", fg = "#f2be6e" },
- { name = "cob", text = "", fg = "#f2be6e" },
- { name = "cobol", text = "", fg = "#f2be6e" },
- { name = "coffee", text = "", fg = "#f2be6e" },
- { name = "conda", text = "", fg = "#f2be6e" },
- { name = "conf", text = "", fg = "#f2be6e" },
- { name = "config.ru", text = "", fg = "#f2be6e" },
- { name = "cow", text = "", fg = "#f2be6e" },
- { name = "cp", text = "", fg = "#f2be6e" },
- { name = "cpp", text = "", fg = "#f2be6e" },
- { name = "cppm", text = "", fg = "#f2be6e" },
- { name = "cpy", text = "", fg = "#f2be6e" },
- { name = "cr", text = "", fg = "#f2be6e" },
- { name = "crdownload", text = "", fg = "#f2be6e" },
- { name = "cs", text = "", fg = "#f2be6e" },
- { name = "csh", text = "", fg = "#f2be6e" },
- { name = "cshtml", text = "", fg = "#f2be6e" },
- { name = "cson", text = "", fg = "#f2be6e" },
- { name = "csproj", text = "", fg = "#f2be6e" },
- { name = "css", text = "", fg = "#f2be6e" },
- { name = "csv", text = "", fg = "#f2be6e" },
- { name = "cts", text = "", fg = "#f2be6e" },
- { name = "cu", text = "", fg = "#f2be6e" },
- { name = "cue", text = "", fg = "#f2be6e" },
- { name = "cuh", text = "", fg = "#f2be6e" },
- { name = "cxx", text = "", fg = "#f2be6e" },
- { name = "cxxm", text = "", fg = "#f2be6e" },
- { name = "d", text = "", fg = "#f2be6e" },
- { name = "d.ts", text = "", fg = "#f2be6e" },
- { name = "dart", text = "", fg = "#f2be6e" },
- { name = "db", text = "", fg = "#f2be6e" },
- { name = "dconf", text = "", fg = "#f2be6e" },
- { name = "desktop", text = "", fg = "#f2be6e" },
- { name = "diff", text = "", fg = "#f2be6e" },
- { name = "dll", text = "", fg = "#f2be6e" },
- { name = "doc", text = "", fg = "#f2be6e" },
- { name = "Dockerfile", text = "", fg = "#f2be6e" },
- { name = "dockerignore", text = "", fg = "#f2be6e" },
- { name = "docx", text = "", fg = "#f2be6e" },
- { name = "dot", text = "", fg = "#f2be6e" },
- { name = "download", text = "", fg = "#f2be6e" },
- { name = "drl", text = "", fg = "#f2be6e" },
- { name = "dropbox", text = "", fg = "#f2be6e" },
- { name = "dump", text = "", fg = "#f2be6e" },
- { name = "dwg", text = "", fg = "#f2be6e" },
- { name = "dxf", text = "", fg = "#f2be6e" },
- { name = "ebook", text = "", fg = "#f2be6e" },
- { name = "ebuild", text = "", fg = "#f2be6e" },
- { name = "edn", text = "", fg = "#f2be6e" },
- { name = "eex", text = "", fg = "#f2be6e" },
- { name = "ejs", text = "", fg = "#f2be6e" },
- { name = "el", text = "", fg = "#f2be6e" },
- { name = "elc", text = "", fg = "#f2be6e" },
- { name = "elf", text = "", fg = "#f2be6e" },
- { name = "elm", text = "", fg = "#f2be6e" },
- { name = "eln", text = "", fg = "#f2be6e" },
- { name = "env", text = "", fg = "#f2be6e" },
- { name = "eot", text = "", fg = "#f2be6e" },
- { name = "epp", text = "", fg = "#f2be6e" },
- { name = "epub", text = "", fg = "#f2be6e" },
- { name = "erb", text = "", fg = "#f2be6e" },
- { name = "erl", text = "", fg = "#f2be6e" },
- { name = "ex", text = "", fg = "#f2be6e" },
- { name = "exe", text = "", fg = "#f2be6e" },
- { name = "exs", text = "", fg = "#f2be6e" },
- { name = "f#", text = "", fg = "#f2be6e" },
- { name = "f3d", text = "", fg = "#f2be6e" },
- { name = "f90", text = "", fg = "#f2be6e" },
- { name = "fbx", text = "", fg = "#f2be6e" },
- { name = "fcbak", text = "", fg = "#f2be6e" },
- { name = "fcmacro", text = "", fg = "#f2be6e" },
- { name = "fcmat", text = "", fg = "#f2be6e" },
- { name = "fcparam", text = "", fg = "#f2be6e" },
- { name = "fcscript", text = "", fg = "#f2be6e" },
- { name = "fcstd", text = "", fg = "#f2be6e" },
- { name = "fcstd1", text = "", fg = "#f2be6e" },
- { name = "fctb", text = "", fg = "#f2be6e" },
- { name = "fctl", text = "", fg = "#f2be6e" },
- { name = "fdmdownload", text = "", fg = "#f2be6e" },
- { name = "feature", text = "", fg = "#f2be6e" },
- { name = "fish", text = "", fg = "#f2be6e" },
- { name = "flac", text = "", fg = "#f2be6e" },
- { name = "flc", text = "", fg = "#f2be6e" },
- { name = "flf", text = "", fg = "#f2be6e" },
- { name = "fnl", text = "", fg = "#f2be6e" },
- { name = "fodg", text = "", fg = "#f2be6e" },
- { name = "fodp", text = "", fg = "#f2be6e" },
- { name = "fods", text = "", fg = "#f2be6e" },
- { name = "fodt", text = "", fg = "#f2be6e" },
- { name = "frag", text = "", fg = "#f2be6e" },
- { name = "fs", text = "", fg = "#f2be6e" },
- { name = "fsi", text = "", fg = "#f2be6e" },
- { name = "fsscript", text = "", fg = "#f2be6e" },
- { name = "fsx", text = "", fg = "#f2be6e" },
- { name = "gcode", text = "", fg = "#f2be6e" },
- { name = "gd", text = "", fg = "#f2be6e" },
- { name = "gemspec", text = "", fg = "#f2be6e" },
- { name = "geom", text = "", fg = "#f2be6e" },
- { name = "gif", text = "", fg = "#f2be6e" },
- { name = "git", text = "", fg = "#f2be6e" },
- { name = "glb", text = "", fg = "#f2be6e" },
- { name = "gleam", text = "", fg = "#f2be6e" },
- { name = "glsl", text = "", fg = "#f2be6e" },
- { name = "gnumakefile", text = "", fg = "#f2be6e" },
- { name = "go", text = "", fg = "#f2be6e" },
- { name = "godot", text = "", fg = "#f2be6e" },
- { name = "gpr", text = "", fg = "#f2be6e" },
- { name = "gql", text = "", fg = "#f2be6e" },
- { name = "gradle", text = "", fg = "#f2be6e" },
- { name = "graphql", text = "", fg = "#f2be6e" },
- { name = "gresource", text = "", fg = "#f2be6e" },
- { name = "gv", text = "", fg = "#f2be6e" },
- { name = "gz", text = "", fg = "#f2be6e" },
- { name = "h", text = "", fg = "#f2be6e" },
- { name = "haml", text = "", fg = "#f2be6e" },
- { name = "hbs", text = "", fg = "#f2be6e" },
- { name = "heex", text = "", fg = "#f2be6e" },
- { name = "hex", text = "", fg = "#f2be6e" },
- { name = "hh", text = "", fg = "#f2be6e" },
- { name = "hpp", text = "", fg = "#f2be6e" },
- { name = "hrl", text = "", fg = "#f2be6e" },
- { name = "hs", text = "", fg = "#f2be6e" },
- { name = "htm", text = "", fg = "#f2be6e" },
- { name = "html", text = "", fg = "#f2be6e" },
- { name = "http", text = "", fg = "#f2be6e" },
- { name = "huff", text = "", fg = "#f2be6e" },
- { name = "hurl", text = "", fg = "#f2be6e" },
- { name = "hx", text = "", fg = "#f2be6e" },
- { name = "hxx", text = "", fg = "#f2be6e" },
- { name = "ical", text = "", fg = "#f2be6e" },
- { name = "icalendar", text = "", fg = "#f2be6e" },
- { name = "ico", text = "", fg = "#f2be6e" },
- { name = "ics", text = "", fg = "#f2be6e" },
- { name = "ifb", text = "", fg = "#f2be6e" },
- { name = "ifc", text = "", fg = "#f2be6e" },
- { name = "ige", text = "", fg = "#f2be6e" },
- { name = "iges", text = "", fg = "#f2be6e" },
- { name = "igs", text = "", fg = "#f2be6e" },
- { name = "image", text = "", fg = "#f2be6e" },
- { name = "img", text = "", fg = "#f2be6e" },
- { name = "import", text = "", fg = "#f2be6e" },
- { name = "info", text = "", fg = "#f2be6e" },
- { name = "ini", text = "", fg = "#f2be6e" },
- { name = "ino", text = "", fg = "#f2be6e" },
- { name = "ipynb", text = "", fg = "#f2be6e" },
- { name = "iso", text = "", fg = "#f2be6e" },
- { name = "ixx", text = "", fg = "#f2be6e" },
- { name = "jar", text = "", fg = "#f2be6e" },
- { name = "java", text = "", fg = "#f2be6e" },
- { name = "jl", text = "", fg = "#f2be6e" },
- { name = "jpeg", text = "", fg = "#f2be6e" },
- { name = "jpg", text = "", fg = "#f2be6e" },
- { name = "js", text = "", fg = "#f2be6e" },
- { name = "json", text = "", fg = "#f2be6e" },
- { name = "json5", text = "", fg = "#f2be6e" },
- { name = "jsonc", text = "", fg = "#f2be6e" },
- { name = "jsx", text = "", fg = "#f2be6e" },
- { name = "jwmrc", text = "", fg = "#f2be6e" },
- { name = "jxl", text = "", fg = "#f2be6e" },
- { name = "kbx", text = "", fg = "#f2be6e" },
- { name = "kdb", text = "", fg = "#f2be6e" },
- { name = "kdbx", text = "", fg = "#f2be6e" },
- { name = "kdenlive", text = "", fg = "#f2be6e" },
- { name = "kdenlivetitle", text = "", fg = "#f2be6e" },
- { name = "kicad_dru", text = "", fg = "#f2be6e" },
- { name = "kicad_mod", text = "", fg = "#f2be6e" },
- { name = "kicad_pcb", text = "", fg = "#f2be6e" },
- { name = "kicad_prl", text = "", fg = "#f2be6e" },
- { name = "kicad_pro", text = "", fg = "#f2be6e" },
- { name = "kicad_sch", text = "", fg = "#f2be6e" },
- { name = "kicad_sym", text = "", fg = "#f2be6e" },
- { name = "kicad_wks", text = "", fg = "#f2be6e" },
- { name = "ko", text = "", fg = "#f2be6e" },
- { name = "kpp", text = "", fg = "#f2be6e" },
- { name = "kra", text = "", fg = "#f2be6e" },
- { name = "krz", text = "", fg = "#f2be6e" },
- { name = "ksh", text = "", fg = "#f2be6e" },
- { name = "kt", text = "", fg = "#f2be6e" },
- { name = "kts", text = "", fg = "#f2be6e" },
- { name = "lck", text = "", fg = "#f2be6e" },
- { name = "leex", text = "", fg = "#f2be6e" },
- { name = "less", text = "", fg = "#f2be6e" },
- { name = "lff", text = "", fg = "#f2be6e" },
- { name = "lhs", text = "", fg = "#f2be6e" },
- { name = "lib", text = "", fg = "#f2be6e" },
- { name = "license", text = "", fg = "#f2be6e" },
- { name = "liquid", text = "", fg = "#f2be6e" },
- { name = "lock", text = "", fg = "#f2be6e" },
- { name = "log", text = "", fg = "#f2be6e" },
- { name = "lrc", text = "", fg = "#f2be6e" },
- { name = "lua", text = "", fg = "#f2be6e" },
- { name = "luac", text = "", fg = "#f2be6e" },
- { name = "luau", text = "", fg = "#f2be6e" },
- { name = "m", text = "", fg = "#f2be6e" },
- { name = "m3u", text = "", fg = "#f2be6e" },
- { name = "m3u8", text = "", fg = "#f2be6e" },
- { name = "m4a", text = "", fg = "#f2be6e" },
- { name = "m4v", text = "", fg = "#f2be6e" },
- { name = "magnet", text = "", fg = "#f2be6e" },
- { name = "makefile", text = "", fg = "#f2be6e" },
- { name = "markdown", text = "", fg = "#f2be6e" },
- { name = "material", text = "", fg = "#f2be6e" },
- { name = "md", text = "", fg = "#f2be6e" },
- { name = "md5", text = "", fg = "#f2be6e" },
- { name = "mdx", text = "", fg = "#f2be6e" },
- { name = "mint", text = "", fg = "#f2be6e" },
- { name = "mjs", text = "", fg = "#f2be6e" },
- { name = "mk", text = "", fg = "#f2be6e" },
- { name = "mkv", text = "", fg = "#f2be6e" },
- { name = "ml", text = "", fg = "#f2be6e" },
- { name = "mli", text = "", fg = "#f2be6e" },
- { name = "mm", text = "", fg = "#f2be6e" },
- { name = "mo", text = "", fg = "#f2be6e" },
- { name = "mobi", text = "", fg = "#f2be6e" },
- { name = "mojo", text = "", fg = "#f2be6e" },
- { name = "mov", text = "", fg = "#f2be6e" },
- { name = "mp3", text = "", fg = "#f2be6e" },
- { name = "mp4", text = "", fg = "#f2be6e" },
- { name = "mpp", text = "", fg = "#f2be6e" },
- { name = "msf", text = "", fg = "#f2be6e" },
- { name = "mts", text = "", fg = "#f2be6e" },
- { name = "mustache", text = "", fg = "#f2be6e" },
- { name = "nfo", text = "", fg = "#f2be6e" },
- { name = "nim", text = "", fg = "#f2be6e" },
- { name = "nix", text = "", fg = "#f2be6e" },
- { name = "norg", text = "", fg = "#f2be6e" },
- { name = "nswag", text = "", fg = "#f2be6e" },
- { name = "nu", text = "", fg = "#f2be6e" },
- { name = "o", text = "", fg = "#f2be6e" },
- { name = "obj", text = "", fg = "#f2be6e" },
- { name = "odf", text = "", fg = "#f2be6e" },
- { name = "odg", text = "", fg = "#f2be6e" },
- { name = "odin", text = "", fg = "#f2be6e" },
- { name = "odp", text = "", fg = "#f2be6e" },
- { name = "ods", text = "", fg = "#f2be6e" },
- { name = "odt", text = "", fg = "#f2be6e" },
- { name = "oga", text = "", fg = "#f2be6e" },
- { name = "ogg", text = "", fg = "#f2be6e" },
- { name = "ogv", text = "", fg = "#f2be6e" },
- { name = "ogx", text = "", fg = "#f2be6e" },
- { name = "opus", text = "", fg = "#f2be6e" },
- { name = "org", text = "", fg = "#f2be6e" },
- { name = "otf", text = "", fg = "#f2be6e" },
- { name = "out", text = "", fg = "#f2be6e" },
- { name = "part", text = "", fg = "#f2be6e" },
- { name = "patch", text = "", fg = "#f2be6e" },
- { name = "pck", text = "", fg = "#f2be6e" },
- { name = "pcm", text = "", fg = "#f2be6e" },
- { name = "pdf", text = "", fg = "#f2be6e" },
- { name = "php", text = "", fg = "#f2be6e" },
- { name = "pl", text = "", fg = "#f2be6e" },
- { name = "pls", text = "", fg = "#f2be6e" },
- { name = "ply", text = "", fg = "#f2be6e" },
- { name = "pm", text = "", fg = "#f2be6e" },
- { name = "png", text = "", fg = "#f2be6e" },
- { name = "po", text = "", fg = "#f2be6e" },
- { name = "pot", text = "", fg = "#f2be6e" },
- { name = "pp", text = "", fg = "#f2be6e" },
- { name = "ppt", text = "", fg = "#f2be6e" },
- { name = "pptx", text = "", fg = "#f2be6e" },
- { name = "prisma", text = "", fg = "#f2be6e" },
- { name = "pro", text = "", fg = "#f2be6e" },
- { name = "ps1", text = "", fg = "#f2be6e" },
- { name = "psb", text = "", fg = "#f2be6e" },
- { name = "psd", text = "", fg = "#f2be6e" },
- { name = "psd1", text = "", fg = "#f2be6e" },
- { name = "psm1", text = "", fg = "#f2be6e" },
- { name = "pub", text = "", fg = "#f2be6e" },
- { name = "pxd", text = "", fg = "#f2be6e" },
- { name = "pxi", text = "", fg = "#f2be6e" },
- { name = "py", text = "", fg = "#f2be6e" },
- { name = "pyc", text = "", fg = "#f2be6e" },
- { name = "pyd", text = "", fg = "#f2be6e" },
- { name = "pyi", text = "", fg = "#f2be6e" },
- { name = "pyo", text = "", fg = "#f2be6e" },
- { name = "pyw", text = "", fg = "#f2be6e" },
- { name = "pyx", text = "", fg = "#f2be6e" },
- { name = "qm", text = "", fg = "#f2be6e" },
- { name = "qml", text = "", fg = "#f2be6e" },
- { name = "qrc", text = "", fg = "#f2be6e" },
- { name = "qss", text = "", fg = "#f2be6e" },
- { name = "query", text = "", fg = "#f2be6e" },
- { name = "R", text = "", fg = "#f2be6e" },
- { name = "r", text = "", fg = "#f2be6e" },
- { name = "rake", text = "", fg = "#f2be6e" },
- { name = "rar", text = "", fg = "#f2be6e" },
- { name = "rasi", text = "", fg = "#f2be6e" },
- { name = "razor", text = "", fg = "#f2be6e" },
- { name = "rb", text = "", fg = "#f2be6e" },
- { name = "res", text = "", fg = "#f2be6e" },
- { name = "resi", text = "", fg = "#f2be6e" },
- { name = "rlib", text = "", fg = "#f2be6e" },
- { name = "rmd", text = "", fg = "#f2be6e" },
- { name = "rproj", text = "", fg = "#f2be6e" },
- { name = "rs", text = "", fg = "#f2be6e" },
- { name = "rss", text = "", fg = "#f2be6e" },
- { name = "s", text = "", fg = "#f2be6e" },
- { name = "sass", text = "", fg = "#f2be6e" },
- { name = "sbt", text = "", fg = "#f2be6e" },
- { name = "sc", text = "", fg = "#f2be6e" },
- { name = "scad", text = "", fg = "#f2be6e" },
- { name = "scala", text = "", fg = "#f2be6e" },
- { name = "scm", text = "", fg = "#f2be6e" },
- { name = "scss", text = "", fg = "#f2be6e" },
- { name = "sh", text = "", fg = "#f2be6e" },
- { name = "sha1", text = "", fg = "#f2be6e" },
- { name = "sha224", text = "", fg = "#f2be6e" },
- { name = "sha256", text = "", fg = "#f2be6e" },
- { name = "sha384", text = "", fg = "#f2be6e" },
- { name = "sha512", text = "", fg = "#f2be6e" },
- { name = "sig", text = "", fg = "#f2be6e" },
- { name = "signature", text = "", fg = "#f2be6e" },
- { name = "skp", text = "", fg = "#f2be6e" },
- { name = "sldasm", text = "", fg = "#f2be6e" },
- { name = "sldprt", text = "", fg = "#f2be6e" },
- { name = "slim", text = "", fg = "#f2be6e" },
- { name = "sln", text = "", fg = "#f2be6e" },
- { name = "slnx", text = "", fg = "#f2be6e" },
- { name = "slvs", text = "", fg = "#f2be6e" },
- { name = "sml", text = "", fg = "#f2be6e" },
- { name = "so", text = "", fg = "#f2be6e" },
- { name = "sol", text = "", fg = "#f2be6e" },
- { name = "spec.js", text = "", fg = "#f2be6e" },
- { name = "spec.jsx", text = "", fg = "#f2be6e" },
- { name = "spec.ts", text = "", fg = "#f2be6e" },
- { name = "spec.tsx", text = "", fg = "#f2be6e" },
- { name = "spx", text = "", fg = "#f2be6e" },
- { name = "sql", text = "", fg = "#f2be6e" },
- { name = "sqlite", text = "", fg = "#f2be6e" },
- { name = "sqlite3", text = "", fg = "#f2be6e" },
- { name = "srt", text = "", fg = "#f2be6e" },
- { name = "ssa", text = "", fg = "#f2be6e" },
- { name = "ste", text = "", fg = "#f2be6e" },
- { name = "step", text = "", fg = "#f2be6e" },
- { name = "stl", text = "", fg = "#f2be6e" },
- { name = "stories.js", text = "", fg = "#f2be6e" },
- { name = "stories.jsx", text = "", fg = "#f2be6e" },
- { name = "stories.mjs", text = "", fg = "#f2be6e" },
- { name = "stories.svelte", text = "", fg = "#f2be6e" },
- { name = "stories.ts", text = "", fg = "#f2be6e" },
- { name = "stories.tsx", text = "", fg = "#f2be6e" },
- { name = "stories.vue", text = "", fg = "#f2be6e" },
- { name = "stp", text = "", fg = "#f2be6e" },
- { name = "strings", text = "", fg = "#f2be6e" },
- { name = "styl", text = "", fg = "#f2be6e" },
- { name = "sub", text = "", fg = "#f2be6e" },
- { name = "sublime", text = "", fg = "#f2be6e" },
- { name = "suo", text = "", fg = "#f2be6e" },
- { name = "sv", text = "", fg = "#f2be6e" },
- { name = "svelte", text = "", fg = "#f2be6e" },
- { name = "svg", text = "", fg = "#f2be6e" },
- { name = "svgz", text = "", fg = "#f2be6e" },
- { name = "svh", text = "", fg = "#f2be6e" },
- { name = "swift", text = "", fg = "#f2be6e" },
- { name = "t", text = "", fg = "#f2be6e" },
- { name = "tbc", text = "", fg = "#f2be6e" },
- { name = "tcl", text = "", fg = "#f2be6e" },
- { name = "templ", text = "", fg = "#f2be6e" },
- { name = "terminal", text = "", fg = "#f2be6e" },
- { name = "test.js", text = "", fg = "#f2be6e" },
- { name = "test.jsx", text = "", fg = "#f2be6e" },
- { name = "test.ts", text = "", fg = "#f2be6e" },
- { name = "test.tsx", text = "", fg = "#f2be6e" },
- { name = "tex", text = "", fg = "#f2be6e" },
- { name = "tf", text = "", fg = "#f2be6e" },
- { name = "tfvars", text = "", fg = "#f2be6e" },
- { name = "tgz", text = "", fg = "#f2be6e" },
- { name = "tmpl", text = "", fg = "#f2be6e" },
- { name = "tmux", text = "", fg = "#f2be6e" },
- { name = "toml", text = "", fg = "#f2be6e" },
- { name = "torrent", text = "", fg = "#f2be6e" },
- { name = "tres", text = "", fg = "#f2be6e" },
- { name = "ts", text = "", fg = "#f2be6e" },
- { name = "tscn", text = "", fg = "#f2be6e" },
- { name = "tsconfig", text = "", fg = "#f2be6e" },
- { name = "tsx", text = "", fg = "#f2be6e" },
- { name = "ttf", text = "", fg = "#f2be6e" },
- { name = "twig", text = "", fg = "#f2be6e" },
- { name = "txt", text = "", fg = "#f2be6e" },
- { name = "txz", text = "", fg = "#f2be6e" },
- { name = "typ", text = "", fg = "#f2be6e" },
- { name = "typoscript", text = "", fg = "#f2be6e" },
- { name = "ui", text = "", fg = "#f2be6e" },
- { name = "v", text = "", fg = "#f2be6e" },
- { name = "vala", text = "", fg = "#f2be6e" },
- { name = "vert", text = "", fg = "#f2be6e" },
- { name = "vh", text = "", fg = "#f2be6e" },
- { name = "vhd", text = "", fg = "#f2be6e" },
- { name = "vhdl", text = "", fg = "#f2be6e" },
- { name = "vi", text = "", fg = "#f2be6e" },
- { name = "vim", text = "", fg = "#f2be6e" },
- { name = "vsh", text = "", fg = "#f2be6e" },
- { name = "vsix", text = "", fg = "#f2be6e" },
- { name = "vue", text = "", fg = "#f2be6e" },
- { name = "wasm", text = "", fg = "#f2be6e" },
- { name = "wav", text = "", fg = "#f2be6e" },
- { name = "webm", text = "", fg = "#f2be6e" },
- { name = "webmanifest", text = "", fg = "#f2be6e" },
- { name = "webp", text = "", fg = "#f2be6e" },
- { name = "webpack", text = "", fg = "#f2be6e" },
- { name = "wma", text = "", fg = "#f2be6e" },
- { name = "wmv", text = "", fg = "#f2be6e" },
- { name = "woff", text = "", fg = "#f2be6e" },
- { name = "woff2", text = "", fg = "#f2be6e" },
- { name = "wrl", text = "", fg = "#f2be6e" },
- { name = "wrz", text = "", fg = "#f2be6e" },
- { name = "wv", text = "", fg = "#f2be6e" },
- { name = "wvc", text = "", fg = "#f2be6e" },
- { name = "x", text = "", fg = "#f2be6e" },
- { name = "xaml", text = "", fg = "#f2be6e" },
- { name = "xcf", text = "", fg = "#f2be6e" },
- { name = "xcplayground", text = "", fg = "#f2be6e" },
- { name = "xcstrings", text = "", fg = "#f2be6e" },
- { name = "xls", text = "", fg = "#f2be6e" },
- { name = "xlsx", text = "", fg = "#f2be6e" },
- { name = "xm", text = "", fg = "#f2be6e" },
- { name = "xml", text = "", fg = "#f2be6e" },
- { name = "xpi", text = "", fg = "#f2be6e" },
- { name = "xslt", text = "", fg = "#f2be6e" },
- { name = "xul", text = "", fg = "#f2be6e" },
- { name = "xz", text = "", fg = "#f2be6e" },
- { name = "yaml", text = "", fg = "#f2be6e" },
- { name = "yml", text = "", fg = "#f2be6e" },
- { name = "zig", text = "", fg = "#f2be6e" },
- { name = "zip", text = "", fg = "#f2be6e" },
- { name = "zsh", text = "", fg = "#f2be6e" },
- { name = "zst", text = "", fg = "#f2be6e" },
- { name = "🔥", text = "", fg = "#f2be6e" },
+ { name = "3gp", text = "", fg = "#f3bd6e" },
+ { name = "3mf", text = "", fg = "#f3bd6e" },
+ { name = "7z", text = "", fg = "#f3bd6e" },
+ { name = "a", text = "", fg = "#f3bd6e" },
+ { name = "aac", text = "", fg = "#f3bd6e" },
+ { name = "ada", text = "", fg = "#f3bd6e" },
+ { name = "adb", text = "", fg = "#f3bd6e" },
+ { name = "ads", text = "", fg = "#f3bd6e" },
+ { name = "ai", text = "", fg = "#f3bd6e" },
+ { name = "aif", text = "", fg = "#f3bd6e" },
+ { name = "aiff", text = "", fg = "#f3bd6e" },
+ { name = "android", text = "", fg = "#f3bd6e" },
+ { name = "ape", text = "", fg = "#f3bd6e" },
+ { name = "apk", text = "", fg = "#f3bd6e" },
+ { name = "apl", text = "", fg = "#f3bd6e" },
+ { name = "app", text = "", fg = "#f3bd6e" },
+ { name = "applescript", text = "", fg = "#f3bd6e" },
+ { name = "asc", text = "", fg = "#f3bd6e" },
+ { name = "asm", text = "", fg = "#f3bd6e" },
+ { name = "ass", text = "", fg = "#f3bd6e" },
+ { name = "astro", text = "", fg = "#f3bd6e" },
+ { name = "avif", text = "", fg = "#f3bd6e" },
+ { name = "awk", text = "", fg = "#f3bd6e" },
+ { name = "azcli", text = "", fg = "#f3bd6e" },
+ { name = "bak", text = "", fg = "#f3bd6e" },
+ { name = "bash", text = "", fg = "#f3bd6e" },
+ { name = "bat", text = "", fg = "#f3bd6e" },
+ { name = "bazel", text = "", fg = "#f3bd6e" },
+ { name = "bib", text = "", fg = "#f3bd6e" },
+ { name = "bicep", text = "", fg = "#f3bd6e" },
+ { name = "bicepparam", text = "", fg = "#f3bd6e" },
+ { name = "bin", text = "", fg = "#f3bd6e" },
+ { name = "blade.php", text = "", fg = "#f3bd6e" },
+ { name = "blend", text = "", fg = "#f3bd6e" },
+ { name = "blp", text = "", fg = "#f3bd6e" },
+ { name = "bmp", text = "", fg = "#f3bd6e" },
+ { name = "bqn", text = "", fg = "#f3bd6e" },
+ { name = "brep", text = "", fg = "#f3bd6e" },
+ { name = "bz", text = "", fg = "#f3bd6e" },
+ { name = "bz2", text = "", fg = "#f3bd6e" },
+ { name = "bz3", text = "", fg = "#f3bd6e" },
+ { name = "bzl", text = "", fg = "#f3bd6e" },
+ { name = "c", text = "", fg = "#f3bd6e" },
+ { name = "c++", text = "", fg = "#f3bd6e" },
+ { name = "cache", text = "", fg = "#f3bd6e" },
+ { name = "cast", text = "", fg = "#f3bd6e" },
+ { name = "cbl", text = "", fg = "#f3bd6e" },
+ { name = "cc", text = "", fg = "#f3bd6e" },
+ { name = "ccm", text = "", fg = "#f3bd6e" },
+ { name = "cfc", text = "", fg = "#f3bd6e" },
+ { name = "cfg", text = "", fg = "#f3bd6e" },
+ { name = "cfm", text = "", fg = "#f3bd6e" },
+ { name = "cjs", text = "", fg = "#f3bd6e" },
+ { name = "clj", text = "", fg = "#f3bd6e" },
+ { name = "cljc", text = "", fg = "#f3bd6e" },
+ { name = "cljd", text = "", fg = "#f3bd6e" },
+ { name = "cljs", text = "", fg = "#f3bd6e" },
+ { name = "cmake", text = "", fg = "#f3bd6e" },
+ { name = "cob", text = "", fg = "#f3bd6e" },
+ { name = "cobol", text = "", fg = "#f3bd6e" },
+ { name = "coffee", text = "", fg = "#f3bd6e" },
+ { name = "conda", text = "", fg = "#f3bd6e" },
+ { name = "conf", text = "", fg = "#f3bd6e" },
+ { name = "config.ru", text = "", fg = "#f3bd6e" },
+ { name = "cow", text = "", fg = "#f3bd6e" },
+ { name = "cp", text = "", fg = "#f3bd6e" },
+ { name = "cpp", text = "", fg = "#f3bd6e" },
+ { name = "cppm", text = "", fg = "#f3bd6e" },
+ { name = "cpy", text = "", fg = "#f3bd6e" },
+ { name = "cr", text = "", fg = "#f3bd6e" },
+ { name = "crdownload", text = "", fg = "#f3bd6e" },
+ { name = "cs", text = "", fg = "#f3bd6e" },
+ { name = "csh", text = "", fg = "#f3bd6e" },
+ { name = "cshtml", text = "", fg = "#f3bd6e" },
+ { name = "cson", text = "", fg = "#f3bd6e" },
+ { name = "csproj", text = "", fg = "#f3bd6e" },
+ { name = "css", text = "", fg = "#f3bd6e" },
+ { name = "csv", text = "", fg = "#f3bd6e" },
+ { name = "cts", text = "", fg = "#f3bd6e" },
+ { name = "cu", text = "", fg = "#f3bd6e" },
+ { name = "cue", text = "", fg = "#f3bd6e" },
+ { name = "cuh", text = "", fg = "#f3bd6e" },
+ { name = "cxx", text = "", fg = "#f3bd6e" },
+ { name = "cxxm", text = "", fg = "#f3bd6e" },
+ { name = "d", text = "", fg = "#f3bd6e" },
+ { name = "d.ts", text = "", fg = "#f3bd6e" },
+ { name = "dart", text = "", fg = "#f3bd6e" },
+ { name = "db", text = "", fg = "#f3bd6e" },
+ { name = "dconf", text = "", fg = "#f3bd6e" },
+ { name = "desktop", text = "", fg = "#f3bd6e" },
+ { name = "diff", text = "", fg = "#f3bd6e" },
+ { name = "dll", text = "", fg = "#f3bd6e" },
+ { name = "doc", text = "", fg = "#f3bd6e" },
+ { name = "Dockerfile", text = "", fg = "#f3bd6e" },
+ { name = "dockerignore", text = "", fg = "#f3bd6e" },
+ { name = "docx", text = "", fg = "#f3bd6e" },
+ { name = "dot", text = "", fg = "#f3bd6e" },
+ { name = "download", text = "", fg = "#f3bd6e" },
+ { name = "drl", text = "", fg = "#f3bd6e" },
+ { name = "dropbox", text = "", fg = "#f3bd6e" },
+ { name = "dump", text = "", fg = "#f3bd6e" },
+ { name = "dwg", text = "", fg = "#f3bd6e" },
+ { name = "dxf", text = "", fg = "#f3bd6e" },
+ { name = "ebook", text = "", fg = "#f3bd6e" },
+ { name = "ebuild", text = "", fg = "#f3bd6e" },
+ { name = "edn", text = "", fg = "#f3bd6e" },
+ { name = "eex", text = "", fg = "#f3bd6e" },
+ { name = "ejs", text = "", fg = "#f3bd6e" },
+ { name = "el", text = "", fg = "#f3bd6e" },
+ { name = "elc", text = "", fg = "#f3bd6e" },
+ { name = "elf", text = "", fg = "#f3bd6e" },
+ { name = "elm", text = "", fg = "#f3bd6e" },
+ { name = "eln", text = "", fg = "#f3bd6e" },
+ { name = "env", text = "", fg = "#f3bd6e" },
+ { name = "eot", text = "", fg = "#f3bd6e" },
+ { name = "epp", text = "", fg = "#f3bd6e" },
+ { name = "epub", text = "", fg = "#f3bd6e" },
+ { name = "erb", text = "", fg = "#f3bd6e" },
+ { name = "erl", text = "", fg = "#f3bd6e" },
+ { name = "ex", text = "", fg = "#f3bd6e" },
+ { name = "exe", text = "", fg = "#f3bd6e" },
+ { name = "exs", text = "", fg = "#f3bd6e" },
+ { name = "f#", text = "", fg = "#f3bd6e" },
+ { name = "f3d", text = "", fg = "#f3bd6e" },
+ { name = "f90", text = "", fg = "#f3bd6e" },
+ { name = "fbx", text = "", fg = "#f3bd6e" },
+ { name = "fcbak", text = "", fg = "#f3bd6e" },
+ { name = "fcmacro", text = "", fg = "#f3bd6e" },
+ { name = "fcmat", text = "", fg = "#f3bd6e" },
+ { name = "fcparam", text = "", fg = "#f3bd6e" },
+ { name = "fcscript", text = "", fg = "#f3bd6e" },
+ { name = "fcstd", text = "", fg = "#f3bd6e" },
+ { name = "fcstd1", text = "", fg = "#f3bd6e" },
+ { name = "fctb", text = "", fg = "#f3bd6e" },
+ { name = "fctl", text = "", fg = "#f3bd6e" },
+ { name = "fdmdownload", text = "", fg = "#f3bd6e" },
+ { name = "feature", text = "", fg = "#f3bd6e" },
+ { name = "fish", text = "", fg = "#f3bd6e" },
+ { name = "flac", text = "", fg = "#f3bd6e" },
+ { name = "flc", text = "", fg = "#f3bd6e" },
+ { name = "flf", text = "", fg = "#f3bd6e" },
+ { name = "fnl", text = "", fg = "#f3bd6e" },
+ { name = "fodg", text = "", fg = "#f3bd6e" },
+ { name = "fodp", text = "", fg = "#f3bd6e" },
+ { name = "fods", text = "", fg = "#f3bd6e" },
+ { name = "fodt", text = "", fg = "#f3bd6e" },
+ { name = "frag", text = "", fg = "#f3bd6e" },
+ { name = "fs", text = "", fg = "#f3bd6e" },
+ { name = "fsi", text = "", fg = "#f3bd6e" },
+ { name = "fsscript", text = "", fg = "#f3bd6e" },
+ { name = "fsx", text = "", fg = "#f3bd6e" },
+ { name = "gcode", text = "", fg = "#f3bd6e" },
+ { name = "gd", text = "", fg = "#f3bd6e" },
+ { name = "gemspec", text = "", fg = "#f3bd6e" },
+ { name = "geom", text = "", fg = "#f3bd6e" },
+ { name = "gif", text = "", fg = "#f3bd6e" },
+ { name = "git", text = "", fg = "#f3bd6e" },
+ { name = "glb", text = "", fg = "#f3bd6e" },
+ { name = "gleam", text = "", fg = "#f3bd6e" },
+ { name = "glsl", text = "", fg = "#f3bd6e" },
+ { name = "gnumakefile", text = "", fg = "#f3bd6e" },
+ { name = "go", text = "", fg = "#f3bd6e" },
+ { name = "godot", text = "", fg = "#f3bd6e" },
+ { name = "gpr", text = "", fg = "#f3bd6e" },
+ { name = "gql", text = "", fg = "#f3bd6e" },
+ { name = "gradle", text = "", fg = "#f3bd6e" },
+ { name = "graphql", text = "", fg = "#f3bd6e" },
+ { name = "gresource", text = "", fg = "#f3bd6e" },
+ { name = "gv", text = "", fg = "#f3bd6e" },
+ { name = "gz", text = "", fg = "#f3bd6e" },
+ { name = "h", text = "", fg = "#f3bd6e" },
+ { name = "haml", text = "", fg = "#f3bd6e" },
+ { name = "hbs", text = "", fg = "#f3bd6e" },
+ { name = "heex", text = "", fg = "#f3bd6e" },
+ { name = "hex", text = "", fg = "#f3bd6e" },
+ { name = "hh", text = "", fg = "#f3bd6e" },
+ { name = "hpp", text = "", fg = "#f3bd6e" },
+ { name = "hrl", text = "", fg = "#f3bd6e" },
+ { name = "hs", text = "", fg = "#f3bd6e" },
+ { name = "htm", text = "", fg = "#f3bd6e" },
+ { name = "html", text = "", fg = "#f3bd6e" },
+ { name = "http", text = "", fg = "#f3bd6e" },
+ { name = "huff", text = "", fg = "#f3bd6e" },
+ { name = "hurl", text = "", fg = "#f3bd6e" },
+ { name = "hx", text = "", fg = "#f3bd6e" },
+ { name = "hxx", text = "", fg = "#f3bd6e" },
+ { name = "ical", text = "", fg = "#f3bd6e" },
+ { name = "icalendar", text = "", fg = "#f3bd6e" },
+ { name = "ico", text = "", fg = "#f3bd6e" },
+ { name = "ics", text = "", fg = "#f3bd6e" },
+ { name = "ifb", text = "", fg = "#f3bd6e" },
+ { name = "ifc", text = "", fg = "#f3bd6e" },
+ { name = "ige", text = "", fg = "#f3bd6e" },
+ { name = "iges", text = "", fg = "#f3bd6e" },
+ { name = "igs", text = "", fg = "#f3bd6e" },
+ { name = "image", text = "", fg = "#f3bd6e" },
+ { name = "img", text = "", fg = "#f3bd6e" },
+ { name = "import", text = "", fg = "#f3bd6e" },
+ { name = "info", text = "", fg = "#f3bd6e" },
+ { name = "ini", text = "", fg = "#f3bd6e" },
+ { name = "ino", text = "", fg = "#f3bd6e" },
+ { name = "ipynb", text = "", fg = "#f3bd6e" },
+ { name = "iso", text = "", fg = "#f3bd6e" },
+ { name = "ixx", text = "", fg = "#f3bd6e" },
+ { name = "jar", text = "", fg = "#f3bd6e" },
+ { name = "java", text = "", fg = "#f3bd6e" },
+ { name = "jl", text = "", fg = "#f3bd6e" },
+ { name = "jpeg", text = "", fg = "#f3bd6e" },
+ { name = "jpg", text = "", fg = "#f3bd6e" },
+ { name = "js", text = "", fg = "#f3bd6e" },
+ { name = "json", text = "", fg = "#f3bd6e" },
+ { name = "json5", text = "", fg = "#f3bd6e" },
+ { name = "jsonc", text = "", fg = "#f3bd6e" },
+ { name = "jsx", text = "", fg = "#f3bd6e" },
+ { name = "jwmrc", text = "", fg = "#f3bd6e" },
+ { name = "jxl", text = "", fg = "#f3bd6e" },
+ { name = "kbx", text = "", fg = "#f3bd6e" },
+ { name = "kdb", text = "", fg = "#f3bd6e" },
+ { name = "kdbx", text = "", fg = "#f3bd6e" },
+ { name = "kdenlive", text = "", fg = "#f3bd6e" },
+ { name = "kdenlivetitle", text = "", fg = "#f3bd6e" },
+ { name = "kicad_dru", text = "", fg = "#f3bd6e" },
+ { name = "kicad_mod", text = "", fg = "#f3bd6e" },
+ { name = "kicad_pcb", text = "", fg = "#f3bd6e" },
+ { name = "kicad_prl", text = "", fg = "#f3bd6e" },
+ { name = "kicad_pro", text = "", fg = "#f3bd6e" },
+ { name = "kicad_sch", text = "", fg = "#f3bd6e" },
+ { name = "kicad_sym", text = "", fg = "#f3bd6e" },
+ { name = "kicad_wks", text = "", fg = "#f3bd6e" },
+ { name = "ko", text = "", fg = "#f3bd6e" },
+ { name = "kpp", text = "", fg = "#f3bd6e" },
+ { name = "kra", text = "", fg = "#f3bd6e" },
+ { name = "krz", text = "", fg = "#f3bd6e" },
+ { name = "ksh", text = "", fg = "#f3bd6e" },
+ { name = "kt", text = "", fg = "#f3bd6e" },
+ { name = "kts", text = "", fg = "#f3bd6e" },
+ { name = "lck", text = "", fg = "#f3bd6e" },
+ { name = "leex", text = "", fg = "#f3bd6e" },
+ { name = "less", text = "", fg = "#f3bd6e" },
+ { name = "lff", text = "", fg = "#f3bd6e" },
+ { name = "lhs", text = "", fg = "#f3bd6e" },
+ { name = "lib", text = "", fg = "#f3bd6e" },
+ { name = "license", text = "", fg = "#f3bd6e" },
+ { name = "liquid", text = "", fg = "#f3bd6e" },
+ { name = "lock", text = "", fg = "#f3bd6e" },
+ { name = "log", text = "", fg = "#f3bd6e" },
+ { name = "lrc", text = "", fg = "#f3bd6e" },
+ { name = "lua", text = "", fg = "#f3bd6e" },
+ { name = "luac", text = "", fg = "#f3bd6e" },
+ { name = "luau", text = "", fg = "#f3bd6e" },
+ { name = "m", text = "", fg = "#f3bd6e" },
+ { name = "m3u", text = "", fg = "#f3bd6e" },
+ { name = "m3u8", text = "", fg = "#f3bd6e" },
+ { name = "m4a", text = "", fg = "#f3bd6e" },
+ { name = "m4v", text = "", fg = "#f3bd6e" },
+ { name = "magnet", text = "", fg = "#f3bd6e" },
+ { name = "makefile", text = "", fg = "#f3bd6e" },
+ { name = "markdown", text = "", fg = "#f3bd6e" },
+ { name = "material", text = "", fg = "#f3bd6e" },
+ { name = "md", text = "", fg = "#f3bd6e" },
+ { name = "md5", text = "", fg = "#f3bd6e" },
+ { name = "mdx", text = "", fg = "#f3bd6e" },
+ { name = "mint", text = "", fg = "#f3bd6e" },
+ { name = "mjs", text = "", fg = "#f3bd6e" },
+ { name = "mk", text = "", fg = "#f3bd6e" },
+ { name = "mkv", text = "", fg = "#f3bd6e" },
+ { name = "ml", text = "", fg = "#f3bd6e" },
+ { name = "mli", text = "", fg = "#f3bd6e" },
+ { name = "mm", text = "", fg = "#f3bd6e" },
+ { name = "mo", text = "", fg = "#f3bd6e" },
+ { name = "mobi", text = "", fg = "#f3bd6e" },
+ { name = "mojo", text = "", fg = "#f3bd6e" },
+ { name = "mov", text = "", fg = "#f3bd6e" },
+ { name = "mp3", text = "", fg = "#f3bd6e" },
+ { name = "mp4", text = "", fg = "#f3bd6e" },
+ { name = "mpp", text = "", fg = "#f3bd6e" },
+ { name = "msf", text = "", fg = "#f3bd6e" },
+ { name = "mts", text = "", fg = "#f3bd6e" },
+ { name = "mustache", text = "", fg = "#f3bd6e" },
+ { name = "nfo", text = "", fg = "#f3bd6e" },
+ { name = "nim", text = "", fg = "#f3bd6e" },
+ { name = "nix", text = "", fg = "#f3bd6e" },
+ { name = "norg", text = "", fg = "#f3bd6e" },
+ { name = "nswag", text = "", fg = "#f3bd6e" },
+ { name = "nu", text = "", fg = "#f3bd6e" },
+ { name = "o", text = "", fg = "#f3bd6e" },
+ { name = "obj", text = "", fg = "#f3bd6e" },
+ { name = "odf", text = "", fg = "#f3bd6e" },
+ { name = "odg", text = "", fg = "#f3bd6e" },
+ { name = "odin", text = "", fg = "#f3bd6e" },
+ { name = "odp", text = "", fg = "#f3bd6e" },
+ { name = "ods", text = "", fg = "#f3bd6e" },
+ { name = "odt", text = "", fg = "#f3bd6e" },
+ { name = "oga", text = "", fg = "#f3bd6e" },
+ { name = "ogg", text = "", fg = "#f3bd6e" },
+ { name = "ogv", text = "", fg = "#f3bd6e" },
+ { name = "ogx", text = "", fg = "#f3bd6e" },
+ { name = "opus", text = "", fg = "#f3bd6e" },
+ { name = "org", text = "", fg = "#f3bd6e" },
+ { name = "otf", text = "", fg = "#f3bd6e" },
+ { name = "out", text = "", fg = "#f3bd6e" },
+ { name = "part", text = "", fg = "#f3bd6e" },
+ { name = "patch", text = "", fg = "#f3bd6e" },
+ { name = "pck", text = "", fg = "#f3bd6e" },
+ { name = "pcm", text = "", fg = "#f3bd6e" },
+ { name = "pdf", text = "", fg = "#f3bd6e" },
+ { name = "php", text = "", fg = "#f3bd6e" },
+ { name = "pl", text = "", fg = "#f3bd6e" },
+ { name = "pls", text = "", fg = "#f3bd6e" },
+ { name = "ply", text = "", fg = "#f3bd6e" },
+ { name = "pm", text = "", fg = "#f3bd6e" },
+ { name = "png", text = "", fg = "#f3bd6e" },
+ { name = "po", text = "", fg = "#f3bd6e" },
+ { name = "pot", text = "", fg = "#f3bd6e" },
+ { name = "pp", text = "", fg = "#f3bd6e" },
+ { name = "ppt", text = "", fg = "#f3bd6e" },
+ { name = "pptx", text = "", fg = "#f3bd6e" },
+ { name = "prisma", text = "", fg = "#f3bd6e" },
+ { name = "pro", text = "", fg = "#f3bd6e" },
+ { name = "ps1", text = "", fg = "#f3bd6e" },
+ { name = "psb", text = "", fg = "#f3bd6e" },
+ { name = "psd", text = "", fg = "#f3bd6e" },
+ { name = "psd1", text = "", fg = "#f3bd6e" },
+ { name = "psm1", text = "", fg = "#f3bd6e" },
+ { name = "pub", text = "", fg = "#f3bd6e" },
+ { name = "pxd", text = "", fg = "#f3bd6e" },
+ { name = "pxi", text = "", fg = "#f3bd6e" },
+ { name = "py", text = "", fg = "#f3bd6e" },
+ { name = "pyc", text = "", fg = "#f3bd6e" },
+ { name = "pyd", text = "", fg = "#f3bd6e" },
+ { name = "pyi", text = "", fg = "#f3bd6e" },
+ { name = "pyo", text = "", fg = "#f3bd6e" },
+ { name = "pyw", text = "", fg = "#f3bd6e" },
+ { name = "pyx", text = "", fg = "#f3bd6e" },
+ { name = "qm", text = "", fg = "#f3bd6e" },
+ { name = "qml", text = "", fg = "#f3bd6e" },
+ { name = "qrc", text = "", fg = "#f3bd6e" },
+ { name = "qss", text = "", fg = "#f3bd6e" },
+ { name = "query", text = "", fg = "#f3bd6e" },
+ { name = "R", text = "", fg = "#f3bd6e" },
+ { name = "r", text = "", fg = "#f3bd6e" },
+ { name = "rake", text = "", fg = "#f3bd6e" },
+ { name = "rar", text = "", fg = "#f3bd6e" },
+ { name = "rasi", text = "", fg = "#f3bd6e" },
+ { name = "razor", text = "", fg = "#f3bd6e" },
+ { name = "rb", text = "", fg = "#f3bd6e" },
+ { name = "res", text = "", fg = "#f3bd6e" },
+ { name = "resi", text = "", fg = "#f3bd6e" },
+ { name = "rlib", text = "", fg = "#f3bd6e" },
+ { name = "rmd", text = "", fg = "#f3bd6e" },
+ { name = "rproj", text = "", fg = "#f3bd6e" },
+ { name = "rs", text = "", fg = "#f3bd6e" },
+ { name = "rss", text = "", fg = "#f3bd6e" },
+ { name = "s", text = "", fg = "#f3bd6e" },
+ { name = "sass", text = "", fg = "#f3bd6e" },
+ { name = "sbt", text = "", fg = "#f3bd6e" },
+ { name = "sc", text = "", fg = "#f3bd6e" },
+ { name = "scad", text = "", fg = "#f3bd6e" },
+ { name = "scala", text = "", fg = "#f3bd6e" },
+ { name = "scm", text = "", fg = "#f3bd6e" },
+ { name = "scss", text = "", fg = "#f3bd6e" },
+ { name = "sh", text = "", fg = "#f3bd6e" },
+ { name = "sha1", text = "", fg = "#f3bd6e" },
+ { name = "sha224", text = "", fg = "#f3bd6e" },
+ { name = "sha256", text = "", fg = "#f3bd6e" },
+ { name = "sha384", text = "", fg = "#f3bd6e" },
+ { name = "sha512", text = "", fg = "#f3bd6e" },
+ { name = "sig", text = "", fg = "#f3bd6e" },
+ { name = "signature", text = "", fg = "#f3bd6e" },
+ { name = "skp", text = "", fg = "#f3bd6e" },
+ { name = "sldasm", text = "", fg = "#f3bd6e" },
+ { name = "sldprt", text = "", fg = "#f3bd6e" },
+ { name = "slim", text = "", fg = "#f3bd6e" },
+ { name = "sln", text = "", fg = "#f3bd6e" },
+ { name = "slnx", text = "", fg = "#f3bd6e" },
+ { name = "slvs", text = "", fg = "#f3bd6e" },
+ { name = "sml", text = "", fg = "#f3bd6e" },
+ { name = "so", text = "", fg = "#f3bd6e" },
+ { name = "sol", text = "", fg = "#f3bd6e" },
+ { name = "spec.js", text = "", fg = "#f3bd6e" },
+ { name = "spec.jsx", text = "", fg = "#f3bd6e" },
+ { name = "spec.ts", text = "", fg = "#f3bd6e" },
+ { name = "spec.tsx", text = "", fg = "#f3bd6e" },
+ { name = "spx", text = "", fg = "#f3bd6e" },
+ { name = "sql", text = "", fg = "#f3bd6e" },
+ { name = "sqlite", text = "", fg = "#f3bd6e" },
+ { name = "sqlite3", text = "", fg = "#f3bd6e" },
+ { name = "srt", text = "", fg = "#f3bd6e" },
+ { name = "ssa", text = "", fg = "#f3bd6e" },
+ { name = "ste", text = "", fg = "#f3bd6e" },
+ { name = "step", text = "", fg = "#f3bd6e" },
+ { name = "stl", text = "", fg = "#f3bd6e" },
+ { name = "stories.js", text = "", fg = "#f3bd6e" },
+ { name = "stories.jsx", text = "", fg = "#f3bd6e" },
+ { name = "stories.mjs", text = "", fg = "#f3bd6e" },
+ { name = "stories.svelte", text = "", fg = "#f3bd6e" },
+ { name = "stories.ts", text = "", fg = "#f3bd6e" },
+ { name = "stories.tsx", text = "", fg = "#f3bd6e" },
+ { name = "stories.vue", text = "", fg = "#f3bd6e" },
+ { name = "stp", text = "", fg = "#f3bd6e" },
+ { name = "strings", text = "", fg = "#f3bd6e" },
+ { name = "styl", text = "", fg = "#f3bd6e" },
+ { name = "sub", text = "", fg = "#f3bd6e" },
+ { name = "sublime", text = "", fg = "#f3bd6e" },
+ { name = "suo", text = "", fg = "#f3bd6e" },
+ { name = "sv", text = "", fg = "#f3bd6e" },
+ { name = "svelte", text = "", fg = "#f3bd6e" },
+ { name = "svg", text = "", fg = "#f3bd6e" },
+ { name = "svgz", text = "", fg = "#f3bd6e" },
+ { name = "svh", text = "", fg = "#f3bd6e" },
+ { name = "swift", text = "", fg = "#f3bd6e" },
+ { name = "t", text = "", fg = "#f3bd6e" },
+ { name = "tbc", text = "", fg = "#f3bd6e" },
+ { name = "tcl", text = "", fg = "#f3bd6e" },
+ { name = "templ", text = "", fg = "#f3bd6e" },
+ { name = "terminal", text = "", fg = "#f3bd6e" },
+ { name = "test.js", text = "", fg = "#f3bd6e" },
+ { name = "test.jsx", text = "", fg = "#f3bd6e" },
+ { name = "test.ts", text = "", fg = "#f3bd6e" },
+ { name = "test.tsx", text = "", fg = "#f3bd6e" },
+ { name = "tex", text = "", fg = "#f3bd6e" },
+ { name = "tf", text = "", fg = "#f3bd6e" },
+ { name = "tfvars", text = "", fg = "#f3bd6e" },
+ { name = "tgz", text = "", fg = "#f3bd6e" },
+ { name = "tmpl", text = "", fg = "#f3bd6e" },
+ { name = "tmux", text = "", fg = "#f3bd6e" },
+ { name = "toml", text = "", fg = "#f3bd6e" },
+ { name = "torrent", text = "", fg = "#f3bd6e" },
+ { name = "tres", text = "", fg = "#f3bd6e" },
+ { name = "ts", text = "", fg = "#f3bd6e" },
+ { name = "tscn", text = "", fg = "#f3bd6e" },
+ { name = "tsconfig", text = "", fg = "#f3bd6e" },
+ { name = "tsx", text = "", fg = "#f3bd6e" },
+ { name = "ttf", text = "", fg = "#f3bd6e" },
+ { name = "twig", text = "", fg = "#f3bd6e" },
+ { name = "txt", text = "", fg = "#f3bd6e" },
+ { name = "txz", text = "", fg = "#f3bd6e" },
+ { name = "typ", text = "", fg = "#f3bd6e" },
+ { name = "typoscript", text = "", fg = "#f3bd6e" },
+ { name = "ui", text = "", fg = "#f3bd6e" },
+ { name = "v", text = "", fg = "#f3bd6e" },
+ { name = "vala", text = "", fg = "#f3bd6e" },
+ { name = "vert", text = "", fg = "#f3bd6e" },
+ { name = "vh", text = "", fg = "#f3bd6e" },
+ { name = "vhd", text = "", fg = "#f3bd6e" },
+ { name = "vhdl", text = "", fg = "#f3bd6e" },
+ { name = "vi", text = "", fg = "#f3bd6e" },
+ { name = "vim", text = "", fg = "#f3bd6e" },
+ { name = "vsh", text = "", fg = "#f3bd6e" },
+ { name = "vsix", text = "", fg = "#f3bd6e" },
+ { name = "vue", text = "", fg = "#f3bd6e" },
+ { name = "wasm", text = "", fg = "#f3bd6e" },
+ { name = "wav", text = "", fg = "#f3bd6e" },
+ { name = "webm", text = "", fg = "#f3bd6e" },
+ { name = "webmanifest", text = "", fg = "#f3bd6e" },
+ { name = "webp", text = "", fg = "#f3bd6e" },
+ { name = "webpack", text = "", fg = "#f3bd6e" },
+ { name = "wma", text = "", fg = "#f3bd6e" },
+ { name = "wmv", text = "", fg = "#f3bd6e" },
+ { name = "woff", text = "", fg = "#f3bd6e" },
+ { name = "woff2", text = "", fg = "#f3bd6e" },
+ { name = "wrl", text = "", fg = "#f3bd6e" },
+ { name = "wrz", text = "", fg = "#f3bd6e" },
+ { name = "wv", text = "", fg = "#f3bd6e" },
+ { name = "wvc", text = "", fg = "#f3bd6e" },
+ { name = "x", text = "", fg = "#f3bd6e" },
+ { name = "xaml", text = "", fg = "#f3bd6e" },
+ { name = "xcf", text = "", fg = "#f3bd6e" },
+ { name = "xcplayground", text = "", fg = "#f3bd6e" },
+ { name = "xcstrings", text = "", fg = "#f3bd6e" },
+ { name = "xls", text = "", fg = "#f3bd6e" },
+ { name = "xlsx", text = "", fg = "#f3bd6e" },
+ { name = "xm", text = "", fg = "#f3bd6e" },
+ { name = "xml", text = "", fg = "#f3bd6e" },
+ { name = "xpi", text = "", fg = "#f3bd6e" },
+ { name = "xslt", text = "", fg = "#f3bd6e" },
+ { name = "xul", text = "", fg = "#f3bd6e" },
+ { name = "xz", text = "", fg = "#f3bd6e" },
+ { name = "yaml", text = "", fg = "#f3bd6e" },
+ { name = "yml", text = "", fg = "#f3bd6e" },
+ { name = "zig", text = "", fg = "#f3bd6e" },
+ { name = "zip", text = "", fg = "#f3bd6e" },
+ { name = "zsh", text = "", fg = "#f3bd6e" },
+ { name = "zst", text = "", fg = "#f3bd6e" },
+ { name = "🔥", text = "", fg = "#f3bd6e" },
]
conds = [
# Special files
- { if = "orphan", text = "", fg = "#f2be6e" },
- { if = "link", text = "", fg = "#f2be6e" },
- { if = "block", text = "", fg = "#f2be6e" },
- { if = "char", text = "", fg = "#f2be6e" },
- { if = "fifo", text = "", fg = "#f2be6e" },
- { if = "sock", text = "", fg = "#f2be6e" },
- { if = "sticky", text = "", fg = "#f2be6e" },
- { if = "dummy", text = "", fg = "#f2be6e" },
+ { if = "orphan", text = "", fg = "#f3bd6e" },
+ { if = "link", text = "", fg = "#f3bd6e" },
+ { if = "block", text = "", fg = "#f3bd6e" },
+ { if = "char", text = "", fg = "#f3bd6e" },
+ { if = "fifo", text = "", fg = "#f3bd6e" },
+ { if = "sock", text = "", fg = "#f3bd6e" },
+ { if = "sticky", text = "", fg = "#f3bd6e" },
+ { if = "dummy", text = "", fg = "#f3bd6e" },
# Fallback
- { if = "dir", text = "", fg = "#f2be6e" },
- { if = "exec", text = "", fg = "#f2be6e" },
- { if = "!dir", text = "", fg = "#f2be6e" },
+ { if = "dir", text = "", fg = "#f3bd6e" },
+ { if = "exec", text = "", fg = "#f3bd6e" },
+ { if = "!dir", text = "", fg = "#f3bd6e" },
]
# : }}}