From 9ae18fd7db75a9afb1067fbd08784e02669b0cbe Mon Sep 17 00:00:00 2001 From: Bruce Wen Date: Wed, 18 Dec 2024 13:46:38 +0100 Subject: [PATCH] Adapt to peelee v0.2.22 --- .gitignore | 1 + README.md | 4 +- assets/images/eutmux.png | Bin assets/images/eutmux.v2.png | Bin assets/images/eutmux_dyanmic_theme.gif | Bin assets/images/eutmux_flow_chart.png | Bin blue-green.theme.yaml | 63 +++++ const.py | 7 - cpu.sh | 0 cute-blue.theme.yaml | 63 +++++ d.patch | 29 ++ default_palette.txt | 366 ++++++++++++++++++++++--- disk.sh | 1 + dynamic.glamour.yaml | 97 +++++++ eutmux.py | 157 ++++++++--- eutmux.tmux | 59 +++- eutmux.yaml | 32 +-- eutmux.yaml~ | 92 +++++++ gray-yellow.theme.yaml | 63 +++++ memory.sh | 0 purple.theme.yaml | 63 +++++ requirements.txt | 4 + template.3.theme.yaml | 28 +- template.3.theme.yaml~ | 63 +++++ template.4.theme.yaml | 63 +++++ template.5.theme.yaml | 70 +++++ template.theme.yaml | 24 +- tmux_commands.txt.bak | 45 +++ utils.py | 24 +- utils.sh | 0 viiv-cyan.theme.yaml | 63 +++++ viiv-elite-dark-blue.theme.yaml | 70 +++++ viiv-github-dimmed-green.theme.yaml | 70 +++++ viiv-github-dimmed.theme.yaml | 63 +++++ 34 files changed, 1537 insertions(+), 147 deletions(-) mode change 100755 => 100644 assets/images/eutmux.png mode change 100755 => 100644 assets/images/eutmux.v2.png mode change 100755 => 100644 assets/images/eutmux_dyanmic_theme.gif mode change 100755 => 100644 assets/images/eutmux_flow_chart.png create mode 100644 blue-green.theme.yaml delete mode 100644 const.py mode change 100755 => 100644 cpu.sh create mode 100644 cute-blue.theme.yaml create mode 100644 d.patch mode change 100755 => 100644 disk.sh create mode 100644 dynamic.glamour.yaml mode change 100755 => 100644 eutmux.tmux create mode 100644 eutmux.yaml~ create mode 100644 gray-yellow.theme.yaml mode change 100755 => 100644 memory.sh create mode 100644 purple.theme.yaml create mode 100644 template.3.theme.yaml~ create mode 100644 template.4.theme.yaml create mode 100644 template.5.theme.yaml create mode 100644 tmux_commands.txt.bak mode change 100755 => 100644 utils.sh create mode 100644 viiv-cyan.theme.yaml create mode 100644 viiv-elite-dark-blue.theme.yaml create mode 100644 viiv-github-dimmed-green.theme.yaml create mode 100644 viiv-github-dimmed.theme.yaml diff --git a/.gitignore b/.gitignore index f42deff..b8759e3 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ eutmux.py.log tmux_commands.txt __pycache__ /.requirements.installed.txt +/dynamic.glamour.yaml diff --git a/README.md b/README.md index a5a09bc..9579390 100644 --- a/README.md +++ b/README.md @@ -90,7 +90,7 @@ More bind-keys are set by default as follows: ## Configuration File -After installation, the default configuration file was copied to `$XDG_CONFIG_HOME/eutmux/eutmux.yaml`. In the configuration file, user can do customization. +After installation, the default configuration file was copied to `$XDG_CONFIG_HOME/eutmux/eutmux.yaml`. In the configuration file (`$XDG_CONFIG_HOME/eutmux/eutmux.yaml`), user can do customization. * _theme_: theme file name without extension(`.theme.yaml`) * _general/options_: any kinds of Tmux options (but only those with simple values are recommended to put here). `key` is the option name, `value` is the option value. For switch options, use `true` or `false`. `on` or `off`, "on" or "off" are all supported. @@ -104,6 +104,8 @@ After installation, the default configuration file was copied to `$XDG_CONFIG_HO Theme file is to decouple _icon_, _decorator_, _style_ and _color_ configurations from the main configuration file. Refer to the [Template Theme File](template.theme.yaml) for details. The [Template Theme File](template.theme.yaml) is mainly used for [Dynamic Theme](#dynamic-theme) generation. All color values in the [Template Theme File](template.theme.yaml) are [Color Identity](#color-identity) such as `C_1_3` which will be replaced with specific color HEX value such as `#ff7834` when [Dynamic Theme](#dynamic-theme) is generated. Therefore, in generated [Dynamic Theme](#dynamic-theme) file, all color values are HEX value and not color identity anymore. +_Note_: User can have their own Template Theme File. The customized Template Theme File name should be configured in `$XDG_CONFIG_HOME/eutmux/eutmux.yaml` by `general\options\_eutmux_template_name`. +The customized Template Theme File should be located in the eutmux configuration root directory `$XDG_CONFIG_HOME/eutmux/`. ### Dynamic Theme diff --git a/assets/images/eutmux.png b/assets/images/eutmux.png old mode 100755 new mode 100644 diff --git a/assets/images/eutmux.v2.png b/assets/images/eutmux.v2.png old mode 100755 new mode 100644 diff --git a/assets/images/eutmux_dyanmic_theme.gif b/assets/images/eutmux_dyanmic_theme.gif old mode 100755 new mode 100644 diff --git a/assets/images/eutmux_flow_chart.png b/assets/images/eutmux_flow_chart.png old mode 100755 new mode 100644 diff --git a/blue-green.theme.yaml b/blue-green.theme.yaml new file mode 100644 index 0000000..3dd1131 --- /dev/null +++ b/blue-green.theme.yaml @@ -0,0 +1,63 @@ +--- +terminal: + foreground: "#b7b7ff" + background: "#231f32" +status_line: + foreground: "#b0c5f7" + background: "#23262d" + left_icon: "" + right_icon: "" + left_decorator: "" + right_decorator: "" + fg_format: "#7192e0" + bg_format: "#3a496b" + fg_icon: "#7192e0" + bg_icon: "#343e55" + fg_decorator: "#343e55" + bg_decorator: "#23262d" + style: "nobold,nounderscore,noitalics" +status_left: + fg_format: "#7192e0" + bg_format: "#23262d" + fg_icon: "#7192e0" + bg_icon: "#3a496b" + fg_decorator: "#3a496b" + bg_decorator: "#23262d" + icon: "  " + decorator: "" + style: "nobold,nounderscore,noitalics" +window: + active: + fg_window: "#23262d" + bg_window: "#a6e984" + fg_window_index: "#23262d" + bg_window_index: "#6ab842" + fg_icon: "#7192e0" + bg_icon: "#6ab842" + fg_decorator: "#6ab842" + bg_decorator: "#23262d" + icon: "" + decorator: "" + style: "nobold,nounderscore,noitalics" + inactive: + fg_window: "#7192e0" + bg_window: "#3a496b" + fg_window_index: "#7192e0" + bg_window_index: "#343e55" + fg_icon: "" + bg_icon: "" + fg_decorator: "#343e55" + bg_decorator: "#23262d" + icon: "" + decorator: "" + style: "nobold,nounderscore,noitalics" +status_right: + icon: " " + decorator: "" + style: "nobold,nounderscore,noitalics" + fg_format: "#7192e0" + bg_format: "#3a496b" + fg_icon: "#7192e0" + bg_icon: "#343e55" + fg_decorator: "#343e55" + bg_decorator: "#23262d" diff --git a/const.py b/const.py deleted file mode 100644 index 6e7da58..0000000 --- a/const.py +++ /dev/null @@ -1,7 +0,0 @@ -"""Constants.""" -UTF_8 = "utf-8" -EMPTY = "" - -# tmux options -STYLE_START = "#[" -STYLE_END = "]" diff --git a/cpu.sh b/cpu.sh old mode 100755 new mode 100644 diff --git a/cute-blue.theme.yaml b/cute-blue.theme.yaml new file mode 100644 index 0000000..77fb27f --- /dev/null +++ b/cute-blue.theme.yaml @@ -0,0 +1,63 @@ +--- +terminal: + foreground: "#b7b7ff" + background: "#231f32" +status_line: + foreground: "#acaaad" + background: "#0c0a09" + left_icon: "" + right_icon: "" + left_decorator: "" + right_decorator: "" + fg_format: "#acaaad" + bg_format: "#848284" + fg_icon: "#343232" + bg_icon: "#848284" + fg_decorator: "#848284" + bg_decorator: "#343232" + style: "nobold,nounderscore,noitalics" +status_left: + fg_format: "#acaaad" + bg_format: "#0c0a09" + fg_icon: "#e6e6dd" + bg_icon: "#4c3882" + fg_decorator: "#4c3882" + bg_decorator: "#0c0a09" + icon: "  " + decorator: "" + style: "nobold,nounderscore,noitalics" +window: + active: + fg_window: "#343232" + bg_window: "#a0be9b" + fg_window_index: "#0c0a09" + bg_window_index: "#629659" + fg_icon: "#343232" + bg_icon: "#629659" + fg_decorator: "#629659" + bg_decorator: "#0c0a09" + icon: "" + decorator: "" + style: "nobold,nounderscore,noitalics" + inactive: + fg_window: "#343232" + bg_window: "#5c5a5b" + fg_window_index: "#0c0a09" + bg_window_index: "#343232" + fg_icon: "" + bg_icon: "" + fg_decorator: "#343232" + bg_decorator: "#0c0a09" + icon: "" + decorator: "" + style: "nobold,nounderscore,noitalics" +status_right: + icon: " " + decorator: "" + style: "nobold,nounderscore,noitalics" + fg_format: "#343232" + bg_format: "#9bbcbe" + fg_icon: "#0c0a09" + bg_icon: "#599296" + fg_decorator: "#599296" + bg_decorator: "#0c0a09" diff --git a/d.patch b/d.patch new file mode 100644 index 0000000..cdedd79 --- /dev/null +++ b/d.patch @@ -0,0 +1,29 @@ +diff --git a/eutmux.tmux b/eutmux.tmux +index 370ac4b..9e90806 100755 +--- a/eutmux.tmux ++++ b/eutmux.tmux +@@ -85,6 +85,7 @@ setup(){ + NEW_THEME_NAME="" + ROTATE_THEME=${FALSE} + CREATE_DYNMIC_THEME=${FALSE} ++ DARK_BASE_COLOR="" #23272e + + # set working directory to eutmux project path + pushd "${_DIR}" >/dev/null 2>/dev/null || exit ${EXIT_ABNORMAL} +@@ -137,7 +138,7 @@ generate_palette_colors(){ + color_name="${1:-color.ColorName.RANDOM}" + min_color="${2:-20}" + max_color="${3:-40}" +- dark_base_color="${4:-#23272e}" # elite-dark-blue: #1a1b26, github-dimmed: #23272e ++ dark_base_color="${4:-${DARK_BASE_COLOR}}" # elite-dark-blue: #1a1b26, github-dimmed: #23272e + install_python_modules="${5:-${FALSE}}" + append_gray="${6:-${TRUE}}" + token_min_color="${7:-60}" +@@ -353,6 +354,7 @@ setup + while getopts "adDrRt:T:" opt; do + case $opt in + a) show_all_themes; exit $? ;; ++ c) DARK_BASE_COLOR="${OPTARG}" ;; + d) CREATE_DYNMIC_THEME=${TRUE} ;; + D) THEME_NAME="eutmux" ;; + r) ROTATE_THEME=${TRUE} ;; diff --git a/default_palette.txt b/default_palette.txt index 9158e74..b09d9e1 100644 --- a/default_palette.txt +++ b/default_palette.txt @@ -1,36 +1,330 @@ -C_1_0:#e4d5d2 -C_1_1:#d1b1aa -C_1_2:#be8d81 -C_1_3:#ab695a -C_1_4:#974431 -C_1_5:#842009 -C_2_0:#e3d3e8 -C_2_1:#cfacdb -C_2_2:#ba84cd -C_2_3:#a65dbf -C_2_4:#9235b2 -C_2_5:#7e0ea4 -C_3_0:#dbd8ce -C_3_1:#bbb7a7 -C_3_2:#9b9580 -C_3_3:#7b7459 -C_3_4:#5b5332 -C_3_5:#3b320b -C_4_0:#d0dece -C_4_1:#acc3a7 -C_4_2:#87a780 -C_4_3:#628b5a -C_4_4:#3d6f32 -C_4_5:#19540c -C_5_0:#cbd6d6 -C_5_1:#a3afaf -C_5_2:#7a8787 -C_5_3:#526060 -C_5_4:#293939 -C_5_5:#011212 -C_6_0:#cbd5d2 -C_6_1:#a3adaa -C_6_2:#7a8380 -C_6_3:#515b58 -C_6_4:#28322f -C_6_5:#000a07 +C_01_00:#41463e +C_01_01:#4c5844 +C_01_02:#566c4a +C_01_03:#61814e +C_01_04:#6b9850 +C_01_05:#75b051 +C_01_06:#81bf5c +C_01_07:#8dcc67 +C_01_08:#9ad875 +C_01_09:#a7e284 +C_01_10:#b5eb94 +C_01_11:#c3f2a6 +C_01_12:#d1f7ba +C_01_13:#e0fbcf +C_01_14:#effee6 +C_02_00:#463e41 +C_02_01:#58444c +C_02_02:#6c4a56 +C_02_03:#814e61 +C_02_04:#98506b +C_02_05:#b05175 +C_02_06:#bf5c81 +C_02_07:#cc678d +C_02_08:#d8759a +C_02_09:#e284a7 +C_02_10:#eb94b5 +C_02_11:#f2a6c3 +C_02_12:#f7bad1 +C_02_13:#fbcfe0 +C_02_14:#fee6ef +C_03_00:#3e4146 +C_03_01:#3e4146 +C_03_02:#444c58 +C_03_03:#4a566c +C_03_04:#4e6181 +C_03_05:#506b98 +C_03_06:#5175b0 +C_03_07:#5c81bf +C_03_08:#678dcc +C_03_09:#759ad8 +C_03_10:#84a7e2 +C_03_11:#94b5eb +C_03_12:#a6c3f2 +C_03_13:#bad1f7 +C_03_14:#cfe0fb +C_04_00:#effee7 +C_04_01:#dffcd1 +C_04_02:#d0f9bc +C_04_03:#c2f5a8 +C_04_04:#b4f096 +C_04_05:#a6e984 +C_04_06:#98e274 +C_04_07:#8bd965 +C_04_08:#7fcf57 +C_04_09:#73c44a +C_04_10:#68b342 +C_04_11:#609c41 +C_04_12:#57873f +C_04_13:#4e723c +C_04_14:#445f37 +C_04_15:#3a4c31 +C_04_16:#303b2b +C_04_17:#262c23 +C_05_00:#fee7ef +C_05_01:#fcd1df +C_05_02:#f9bcd0 +C_05_03:#f5a8c2 +C_05_04:#f096b4 +C_05_05:#e984a6 +C_05_06:#e27498 +C_05_07:#d9658b +C_05_08:#cf577f +C_05_09:#c44a73 +C_05_10:#b34268 +C_05_11:#9c4160 +C_05_12:#873f57 +C_05_13:#723c4e +C_05_14:#5f3744 +C_05_15:#4c313a +C_05_16:#3b2b30 +C_05_17:#2c2326 +C_06_00:#d1defc +C_06_01:#bccef9 +C_06_02:#a8bff5 +C_06_03:#96b1f0 +C_06_04:#84a3ea +C_06_05:#7495e2 +C_06_06:#6588d9 +C_06_07:#577bcf +C_06_08:#4a6fc4 +C_06_09:#4264b5 +C_06_10:#415d9e +C_06_11:#3f5588 +C_06_12:#3b4c73 +C_06_13:#374360 +C_06_14:#313a4e +C_06_15:#2a303c +C_06_16:#23262c +C_06_17:#23262d +L_R_00:#000000 +L_R_01:#040404 +L_R_02:#090808 +L_R_03:#0e0c0c +L_R_04:#121010 +L_R_05:#171414 +L_R_06:#1c1818 +L_R_07:#211c1c +L_R_08:#262020 +L_R_09:#2b2424 +L_R_10:#302828 +L_R_11:#352c2c +L_R_12:#3a3030 +L_R_13:#3f3333 +L_R_14:#463f3f +L_G_00:#000000 +L_G_01:#040404 +L_G_02:#080908 +L_G_03:#0c0e0c +L_G_04:#111211 +L_G_05:#151715 +L_G_06:#191c19 +L_G_07:#1d211d +L_G_08:#212621 +L_G_09:#262a26 +L_G_10:#2a2f2a +L_G_11:#2e342e +L_G_12:#323932 +L_G_13:#363e36 +L_G_14:#414641 +L_B_00:#000000 +L_B_01:#040404 +L_B_02:#080809 +L_B_03:#0c0c0d +L_B_04:#101012 +L_B_05:#141417 +L_B_06:#18181c +L_B_07:#1c1c20 +L_B_08:#202025 +L_B_09:#24242a +L_B_10:#28282f +L_B_11:#2c2c34 +L_B_12:#303039 +L_B_13:#34343e +L_B_14:#3f3f45 +L_Y_00:#000000 +L_Y_01:#040404 +L_Y_02:#080808 +L_Y_03:#0d0d0c +L_Y_04:#111110 +L_Y_05:#161614 +L_Y_06:#1a1a17 +L_Y_07:#1f1f1b +L_Y_08:#23231f +L_Y_09:#282823 +L_Y_10:#2d2d27 +L_Y_11:#31312b +L_Y_12:#36362f +L_Y_13:#3b3b32 +L_Y_14:#42423d +L_C_00:#000000 +L_C_01:#040404 +L_C_02:#080909 +L_C_03:#0c0e0e +L_C_04:#101313 +L_C_05:#141818 +L_C_06:#181d1d +L_C_07:#1c2222 +L_C_08:#202727 +L_C_09:#242c2c +L_C_10:#283131 +L_C_11:#2c3636 +L_C_12:#2f3b3b +L_C_13:#334040 +L_C_14:#3f4747 +L_V_00:#000000 +L_V_01:#040404 +L_V_02:#090909 +L_V_03:#0d0d0d +L_V_04:#121212 +L_V_05:#171617 +L_V_06:#1b1b1b +L_V_07:#201f20 +L_V_08:#242424 +L_V_09:#292829 +L_V_10:#2e2d2e +L_V_11:#323132 +L_V_12:#373637 +L_V_13:#3c3a3c +L_V_14:#454445 +L_O_00:#000000 +L_O_01:#040404 +L_O_02:#080808 +L_O_03:#0c0c0c +L_O_04:#101010 +L_O_05:#141414 +L_O_06:#181818 +L_O_07:#1c1c1c +L_O_08:#212121 +L_O_09:#252525 +L_O_10:#292929 +L_O_11:#2d2d2d +L_O_12:#313131 +L_O_13:#353535 +L_O_14:#3e3e3e +D_R_00:#fdd0d0 +D_R_01:#fababa +D_R_02:#f7a5a5 +D_R_03:#f29292 +D_R_04:#ed7f7f +D_R_05:#e66d6d +D_R_06:#df5c5c +D_R_07:#d64c4c +D_R_08:#cd3e3e +D_R_09:#bc3636 +D_R_10:#a43535 +D_R_11:#8e3333 +D_R_12:#793030 +D_R_13:#642c2c +D_R_14:#512727 +D_R_15:#3f2121 +D_R_16:#2d1b1b +D_R_17:#2e1b1b +D_G_00:#d0fcd0 +D_G_01:#bafaba +D_G_02:#a5f6a5 +D_G_03:#92f292 +D_G_04:#7fec7f +D_G_05:#6de66d +D_G_06:#5cde5c +D_G_07:#4dd54d +D_G_08:#3ecc3e +D_G_09:#37ba37 +D_G_10:#36a336 +D_G_11:#348d34 +D_G_12:#317731 +D_G_13:#2d632d +D_G_14:#285028 +D_G_15:#223e22 +D_G_16:#1b2c1b +D_G_17:#1b2d1b +D_B_00:#d0d0fc +D_B_01:#babafa +D_B_02:#a6a6f6 +D_B_03:#9292f1 +D_B_04:#7f7fec +D_B_05:#6e6ee5 +D_B_06:#5d5ddd +D_B_07:#4e4ed4 +D_B_08:#4040ca +D_B_09:#3939b8 +D_B_10:#3838a1 +D_B_11:#36368b +D_B_12:#333376 +D_B_13:#2e2e62 +D_B_14:#29294e +D_B_15:#23233c +D_B_16:#1b1b2c +D_B_17:#1c1c2c +D_Y_00:#fcfccf +D_Y_01:#f9f9ba +D_Y_02:#f5f5a5 +D_Y_03:#efef92 +D_Y_04:#e8e880 +D_Y_05:#e0e070 +D_Y_06:#d7d760 +D_Y_07:#cccc52 +D_Y_08:#c0c045 +D_Y_09:#abab41 +D_Y_10:#949440 +D_Y_11:#7e7e3d +D_Y_12:#696939 +D_Y_13:#565634 +D_Y_14:#43432d +D_Y_15:#323225 +D_Y_16:#23231c +D_Y_17:#23231d +D_C_00:#d0fcfc +D_C_01:#bafafa +D_C_02:#a5f6f6 +D_C_03:#91f1f1 +D_C_04:#7febeb +D_C_05:#6de4e4 +D_C_06:#5ddcdc +D_C_07:#4dd3d3 +D_C_08:#3fc9c9 +D_C_09:#39b6b6 +D_C_10:#389f9f +D_C_11:#368989 +D_C_12:#327474 +D_C_13:#2e6060 +D_C_14:#294c4c +D_C_15:#223a3a +D_C_16:#1a292a +D_C_17:#1b2a2a +D_V_00:#fcd2fc +D_V_01:#f9bef9 +D_V_02:#f4abf4 +D_V_03:#ee99ee +D_V_04:#e789e7 +D_V_05:#df7adf +D_V_06:#d56cd5 +D_V_07:#ca5fca +D_V_08:#be54be +D_V_09:#af4baf +D_V_10:#984b98 +D_V_11:#834883 +D_V_12:#6f456f +D_V_13:#5c405c +D_V_14:#4b3a4b +D_V_15:#3a333a +D_V_16:#2b2b2b +D_V_17:#2c2b2c +D_O_00:#e5e5e5 +D_O_01:#d9d9d9 +D_O_02:#cccccc +D_O_03:#bfbfbf +D_O_04:#b3b3b3 +D_O_05:#a6a6a6 +D_O_06:#9a9a9a +D_O_07:#8d8d8d +D_O_08:#808080 +D_O_09:#747474 +D_O_10:#676767 +D_O_11:#5b5b5b +D_O_12:#4e4e4e +D_O_13:#414141 +D_O_14:#353535 +D_O_15:#282828 +D_O_16:#1b1b1b +D_O_17:#1c1c1c diff --git a/disk.sh b/disk.sh old mode 100755 new mode 100644 index 8286527..d6e75f7 --- a/disk.sh +++ b/disk.sh @@ -1,6 +1,7 @@ #!/usr/bin/env bash source "utils.sh" +# culculate disk usage and show percentage of the free disk space eutmux_disk(){ disk_usage=$(df -h 2>/dev/null | grep rootvg-root | sed -E -e's/\s+/ /g' | cut -d ' ' -f5 | cut -d% -f1) echo "${disk_usage}%" diff --git a/dynamic.glamour.yaml b/dynamic.glamour.yaml new file mode 100644 index 0000000..8760e62 --- /dev/null +++ b/dynamic.glamour.yaml @@ -0,0 +1,97 @@ +--- +theme: burgundy-red +general: + options: + status: true + status-fg: "#a9b0b0" + status-bg: "#011814" + status-justify: left + status-left-length: 100 + status-right-length: 100 + window-status-separator: ' ' + terminal-overrides: ",xterm*:Tc" + default-terminal: "screen-256color" + escape-time: 10 + status-interval: 3 + focus-events: true + display-time: 10000 + renumber-windows: true + clock-mode-colour: "#5ab756" + _fg_highlight: "#5e35a9" + _bg_highlight: "#d3c598" + _style: "nobold,nounderscore,noitalics" + styles: + message-style: + fg: "#9ad398" + bg: "" + style: "" + message-command-style: + fg: "#d398b3" + bg: "" + style: "" + pane-border-style: + fg: "#2b3e3b" + bg: "" + style: "" + pane-active-border-style: + fg: "#7ac577" + bg: "" + style: "" + popup-style: + fg: "#9ad398" + bg: "#011814" + popup-border-style: + fg: "#9ad398" + bg: "" + commands: + - bind-key 'g' run-shell 'glamour.tmux -d' + - bind-key 'G' run-shell 'glamour.tmux -D' + - bind-key 'a' display-popup 'glamour.tmux -a' + - bind-key 'r' run-shell 'glamour.tmux -r' + - bind-key 'C-j' setw synchronize-panes on + - bind-key 'C-k' setw synchronize-panes off + - bind-key -n 'M-l' select-window -l + - bind-key -n 'M-j' select-pane -R + - bind-key -n 'M-k' select-pane -D + - bind-key -n 'M-Left' select-window -p + - bind-key -n 'M-Right' select-window -n +status_left: + session: + enabled: "on" + tmux_option: " #S " +window: + active: + window_name: " #W " + window_index: " #I" + icon: "" + inactive: + window_name: " #W " + window_index: " #I" + icon: "" +status_right: + directory: + enabled: true + tmux_option: " #{b:pane_current_path} " + icon: " " + decorator: "" + fg_option: "#011814" + bg_option: "#d3c598" + fg_icon: "#011814" + bg_icon: "#b79f56" + fg_decorator: "#b79f56" + date: + enabled: true + icon: " " + tmux_option: " v%V %a %Y-%m-%d %H:%M:%S " + cpu: + enabled: true + icon: " " + tmux_option: " #(source cpu.sh) " + memory: + enabled: true + icon: " " + tmux_option: "#(source memory.sh)" + disk: + enabled: true + icon: " " + tmux_option: " #(source disk.sh) " diff --git a/eutmux.py b/eutmux.py index fe7d975..f5f7762 100644 --- a/eutmux.py +++ b/eutmux.py @@ -3,11 +3,17 @@ import os import yaml -from yaml import Loader +from peelee import color -from const import EMPTY, STYLE_END, STYLE_START, UTF_8 from utils import get_tmux_option, run_shell_command +UTF_8 = "utf-8" +EMPTY = "" + +# tmux options +STYLE_START = "#[" +STYLE_END = "]" + def get(_dict, key, default): """ @@ -60,10 +66,21 @@ def __init__(self, theme_config): """Constructor.""" status_line = theme_config.get("status_line") status_left = theme_config.get("status_left") - self.fg_format = get(status_left, "fg_format", status_line.get("foreground")) - self.bg_format = get(status_left, "bg_format", status_line.get("background")) - self.fg_icon = get(status_left, "fg_icon", status_line.get("foreground")) - self.bg_icon = get(status_left, "bg_icon", status_line.get("background")) + self.fg_format = get( + status_left, "fg_format", status_line.get("foreground") + ) + self.bg_format = get( + status_left, "bg_format", status_line.get("background") + ) + self.fg_format = color.convert_to_best_light_color( + self.fg_format, self.bg_format + ) + self.fg_icon = get( + status_left, "fg_icon", status_line.get("foreground") + ) + self.bg_icon = get( + status_left, "bg_icon", status_line.get("background") + ) self.fg_decorator = status_left.get( "fg_decorator", status_line.get("foreground") ) @@ -71,7 +88,9 @@ def __init__(self, theme_config): status_left, "bg_decorator", status_line.get("background") ) self.icon = get(status_left, "icon", status_line.get("left_icon")) - self.decorator = status_left.get("decorator", status_line.get("left_decorator")) + self.decorator = status_left.get( + "decorator", status_line.get("left_decorator") + ) self.style = get(status_left, "style", status_line.get("style")) super().__init__( fg_format=self.fg_format, @@ -166,10 +185,21 @@ def __init__(self, theme_config): """Constructor.""" status_line = theme_config.get("status_line") status_right = theme_config.get("status_right") - self.fg_format = get(status_right, "fg_format", status_line.get("foreground")) - self.bg_format = get(status_right, "bg_format", status_line.get("background")) - self.fg_icon = get(status_right, "fg_icon", status_line.get("foreground")) - self.bg_icon = get(status_right, "bg_icon", status_line.get("background")) + self.fg_format = get( + status_right, "fg_format", status_line.get("foreground") + ) + self.bg_format = get( + status_right, "bg_format", status_line.get("background") + ) + self.bg_foramt = color.convert_to_best_dark_color( + self.bg_format, self.fg_format + ) + self.fg_icon = get( + status_right, "fg_icon", status_line.get("foreground") + ) + self.bg_icon = get( + status_right, "bg_icon", status_line.get("background") + ) self.fg_decorator = get( status_right, "fg_decorator", status_line.get("foreground") ) @@ -223,7 +253,9 @@ def produce_general_options_commands(self): foreground = component.get("fg", self.terminal.get("foreground")) background = component.get("bg", self.terminal.get("background")) style = component.get("style", self.status_line.get("style")) - style_command = self.get_style_command(foreground, background, style, name) + style_command = self.get_style_command( + foreground, background, style, name + ) if style_command is not None: general.append(style_command) @@ -244,7 +276,6 @@ def produce_status_left(self): enabled = component.get("enabled", "on") if not enabled: continue - format = component.get("format", EMPTY) icon = component.get("icon", self.theme.status_left.get("icon")) decorator = component.get( "decorator", self.theme.status_left.get("decorator") @@ -255,8 +286,12 @@ def produce_status_left(self): bg_format = component.get( "bg_format", self.theme.status_left.get("bg_format") ) - fg_icon = component.get("fg_icon", self.theme.status_left.get("fg_icon")) - bg_icon = component.get("bg_icon", self.theme.status_left.get("bg_icon")) + fg_icon = component.get( + "fg_icon", self.theme.status_left.get("fg_icon") + ) + bg_icon = component.get( + "bg_icon", self.theme.status_left.get("bg_icon") + ) fg_decorator = component.get( "fg_decorator", self.theme.status_left.get("fg_decorator") ) @@ -264,10 +299,11 @@ def produce_status_left(self): "bg_decorator", self.theme.status_left.get("bg_decorator") ) style = component.get("style", self.theme.status_left.get("style")) - format_style = ( - f"{self.get_style_for_option(fg_format, bg_format, style, format)}" + _format = component.get("format", EMPTY) + format_style = f"{self.get_style_for_option(fg_format, bg_format, style, _format)}" + icon_style = ( + f"{self.get_style_for_option(fg_icon, bg_icon, style, icon)}" ) - icon_style = f"{self.get_style_for_option(fg_icon, bg_icon, style, icon)}" decorator_style = f"{self.get_style_for_option(fg_decorator, bg_decorator, style, decorator)}" component_value = f"{icon_style}{decorator_style}{format_style}" status_left.append(component_value) @@ -278,10 +314,11 @@ def produce_window(self): """Return tuple with active window and inactive window option strings.""" windows = {} for name, component in self.window.items(): - style = component.get("style", self.theme.window.get(name).get("style")) - icon = component.get("icon", self.theme.window.get(name).get("icon")) - decorator = component.get( - "decorator", self.theme.window.get(name).get("decorator") + style = component.get( + "style", self.theme.window.get(name).get("style") + ) + icon = component.get( + "icon", self.theme.window.get(name).get("icon") ) window_name = component.get( "window_name", self.theme.window.get(name).get("window_name") @@ -327,13 +364,13 @@ def produce_window(self): window_index_style = self.get_style_for_option( fg_window_index, bg_window_index, style, window_index ) - icon_style = self.get_style_for_option(fg_icon, bg_icon, style, icon) + icon_style = self.get_style_for_option( + fg_icon, bg_icon, style, icon + ) decorator_style = self.get_style_for_option( fg_decorator, bg_decorator, style, decorator ) - component_value = ( - f"{window_style}{window_index_style}{icon_style}{decorator_style} " - ) + component_value = f"{window_style}{window_index_style}{icon_style}{decorator_style} " windows[name] = component_value return windows @@ -345,7 +382,6 @@ def produce_status_right(self): enabled = options.get("enabled", "on") if not enabled: continue - format = options.get("format", EMPTY) icon = options.get("icon", self.theme.status_right.get("icon")) decorator = options.get( "decorator", self.theme.status_right.get("decorator") @@ -356,8 +392,12 @@ def produce_status_right(self): bg_format = options.get( "bg_format", self.theme.status_right.get("bg_format") ) - fg_icon = options.get("fg_icon", self.theme.status_right.get("fg_icon")) - bg_icon = options.get("bg_icon", self.theme.status_right.get("bg_icon")) + fg_icon = options.get( + "fg_icon", self.theme.status_right.get("fg_icon") + ) + bg_icon = options.get( + "bg_icon", self.theme.status_right.get("bg_icon") + ) fg_decorator = options.get( "fg_decorator", self.theme.status_right.get("fg_decorator") ) @@ -365,10 +405,11 @@ def produce_status_right(self): "bg_decorator", self.theme.status_right.get("bg_decorator") ) style = options.get("style", self.theme.status_right.get("style")) - format_style = ( - f"{self.get_style_for_option(fg_format, bg_format, style, format)}" + _format = options.get("format", EMPTY) + format_style = f"{self.get_style_for_option(fg_format, bg_format, style, _format)}" + icon_style = ( + f"{self.get_style_for_option(fg_icon, bg_icon, style, icon)}" ) - icon_style = f"{self.get_style_for_option(fg_icon, bg_icon, style, icon)}" decorator_style = f"{self.get_style_for_option(fg_decorator, bg_decorator, style, decorator)}" component_value = f"{decorator_style}{icon_style}{format_style}" status_right.append(component_value) @@ -397,7 +438,27 @@ def get_style_for_option(self, foreground, background, style, option): return f"{_style}{_default_style}" def get_style_command(self, foreground, background, style, style_name): + """Return tmux set style option command. + + Parameters: + foreground: The foreground color. + background: The background color. + style: The style. + style_name: The name of the style. + e.g. status-style, window-status-current-format, window-status-format + + Return: + The tmux command string to set the style. + Example: + set-option -gq status-style 'fg=green,bg=black,italics' + """ style_content = None + has_foreground = foreground and foreground.strip() != EMPTY + has_background = background and background.strip() != EMPTY + if has_foreground and has_background: + foreground = color.convert_to_best_light_color( + foreground, background + ) if foreground and foreground.strip() != EMPTY: style_content = f"fg={foreground}," if background and background.strip() != EMPTY: @@ -419,15 +480,21 @@ def produce_option_commands(self): window = self.produce_window() status_right = self.produce_status_right() - status_line_cmd = self.produce_option_command("status-style", status_line) - status_left_cmd = self.produce_option_command("status-left", status_left) + status_line_cmd = self.produce_option_command( + "status-style", status_line + ) + status_left_cmd = self.produce_option_command( + "status-left", status_left + ) active_window_cmd = self.produce_option_command( "window-status-current-format", window["active"] ) inactive_window_cmd = self.produce_option_command( "window-status-format", window["inactive"] ) - status_right_cmd = self.produce_option_command("status-right", status_right) + status_right_cmd = self.produce_option_command( + "status-right", status_right + ) general_commands = self.produce_general_options_commands() option_commands = [] option_commands.append(general_commands) @@ -439,11 +506,13 @@ def produce_option_commands(self): return option_commands -def eutmux(config_file="eutmux.yaml"): +def init(config_file="eutmux.yaml"): """Load config file, overwrite options by value from tmux.conf.""" # user can set customized config file under EUTMUX_CONFIG_HOME - xdg_config_home = os.getenv("XDG_CONFIG_HOME", f'{os.getenv("HOME")}/.config') + xdg_config_home = os.getenv( + "XDG_CONFIG_HOME", f'{os.getenv("HOME")}/.config' + ) eutmux_config_home = f"{xdg_config_home}/eutmux" _config_file = f"{eutmux_config_home}/{config_file}" if os.path.exists(_config_file): @@ -454,17 +523,19 @@ def eutmux(config_file="eutmux.yaml"): eutmux_dynamic_config_file_name = get_tmux_option( "@eutmux_dynamic_config_file_name", config_file ) - eutmux_workdir = os.getenv("EUTMUX_WORKDIR") + eutmux_workdir = os.getenv("EUTMUX_WORKDIR", os.curdir) os.chdir(eutmux_workdir) with open(eutmux_dynamic_config_file_name, "r", encoding=UTF_8) as config: - eutmux = yaml.load(config, Loader=Loader) + eutmux = yaml.safe_load(config) # if specified theme doesn't have corresponding file, then fall-back to # the default theme - eutmux theme. theme_name = eutmux.get("theme", "eutmux") # if dynamic theme is set, then use dynamic theme. - dynamic_theme_name = get_tmux_option("@eutmux_dynamic_theme_name", theme_name) + dynamic_theme_name = get_tmux_option( + "@eutmux_dynamic_theme_name", theme_name + ) theme_filename = f"{dynamic_theme_name}.theme.yaml" # if dynamic theme file doesn't exist under project, then check if it @@ -475,19 +546,19 @@ def eutmux(config_file="eutmux.yaml"): theme_filename = f"{eutmux_config_home}/{theme_filename}" else: theme_filename = "eutmux.theme.yaml" - with open(theme_filename, "r", encoding=UTF_8) as theme_file: - theme_config = yaml.load(theme_file, Loader=Loader) + theme_config = yaml.safe_load(theme_file) theme = Theme(theme_config) constructor = Constructor(eutmux, theme) set_option_commands = constructor.produce_option_commands() + return ";".join(set_option_commands) def main(): """Run.""" - set_option_commands = eutmux() + set_option_commands = init() if set_option_commands: for command in set_option_commands.split(";"): run_shell_command(f"tmux {command}") diff --git a/eutmux.tmux b/eutmux.tmux old mode 100755 new mode 100644 index e7b6278..5030476 --- a/eutmux.tmux +++ b/eutmux.tmux @@ -85,6 +85,7 @@ setup(){ NEW_THEME_NAME="" ROTATE_THEME=${FALSE} CREATE_DYNMIC_THEME=${FALSE} + DARK_BASE_COLOR="" #23272e # set working directory to eutmux project path pushd "${_DIR}" >/dev/null 2>/dev/null || exit ${EXIT_ABNORMAL} @@ -126,11 +127,40 @@ replace_legacy_placeholders(){ } # call python module to generate palette file +# generate_palette_colors(){ +# palette=$(python3 -c "import peelee; palette = palette.generate_palette(); print(palette)") +# echo "$palette" | grep -iEo 'C(_[[:digit:]]{1,}){2}\:#[[:alnum:]]{6}' > "${DYNAMIC_PALETTE_FILENAME}" +# } + generate_palette_colors(){ - palette=$(python3 -c "import palette; palette = palette.generate_palette(); print(palette)") - echo "$palette" | grep -iEo 'C(_[[:digit:]]{1,}){2}\:#[[:alnum:]]{6}' > "${DYNAMIC_PALETTE_FILENAME}" + local color_name min_color max_color dark_base_color + # dark_base_color doesn't have default value but has higher priority than color_name + color_name="${1:-color.ColorName.BLUE}" + min_color="${2:-20}" + max_color="${3:-40}" + dark_base_color="${4:-${DARK_BASE_COLOR}}" # elite-dark-blue: #1a1b26, github-dimmed: #23272e + install_python_modules="${5:-${FALSE}}" + append_gray="${6:-${TRUE}}" + token_min_color="${7:-60}" + token_max_color="${8:-80}" + colors_total="${9:-3}" + dark_colors_total="${10:-3}" + colors_gradations="${11:-15}" + dark_colors_gradations="${12:-18}" + + PYTHON3="python3" + if [ -n "$dark_base_color" ];then + palette=$($PYTHON3 -c "from peelee import peelee, color, color_utils; (h,l,s) = color_utils.hex2hls('$dark_base_color'); palette = peelee.Palette(colors_total=$colors_total, dark_colors_total=$dark_colors_total,colors_gradations=$colors_gradations,dark_colors_gradations_total=$dark_colors_gradations, colors_min=$token_min_color,colors_max=$token_max_color,dark_base_color='$dark_base_color', dark_colors_hue=h, dark_colors_saturation=s, dark_colors_lightness=l).generate_palette(); print(palette)") + else + palette=$($PYTHON3 -c "from peelee import peelee, color, color_utils; dark_random_color=peelee.generate_random_hex_color_code(color_name=$color_name, min_color=$min_color, max_color=$max_color); (h,l,s) = color_utils.hex2hls(dark_random_color); palette = peelee.Palette(colors_total=$colors_total, dark_colors_total=$dark_colors_total, colors_gradations=$colors_gradations,dark_colors_gradations_total=$dark_colors_gradations, colors_min=$token_min_color,colors_max=$token_max_color,dark_base_color=dark_random_color, dark_colors_hue=h, dark_colors_saturation=s, dark_colors_lightness=l).generate_palette(); print(palette)") + fi + tf1="$(mktemp)" + tf2="$(mktemp)" + echo "$palette" | grep -iEo '[CDL]_([[:digit:]]{2}|[RGBYCVOA])_[[:digit:]]{2}' > "${tf1}" + # tmux only accept lower case color code + echo "$palette" | grep -iEo '#[[:alnum:]]{6,}' | tr 'A-Z' 'a-z' > "${tf2}" + paste -d':' ${tf1} ${tf2} > $DYNAMIC_PALETTE_FILENAME } - create_dynamic_theme_file(){ dynamic_theme_file_name="${DYNAMIC_THEME_NAME}${THEME_FILE_EXTENSION}" tmux set-option -gq "${TMUX_OPTION_NAME_DYNAMIC_THEME}" "${DYNAMIC_THEME_NAME}" @@ -148,7 +178,6 @@ create_dynamic_config_file(){ rm -f "${eutmux_dynamic_config_file_name}" fi - # if config file not in $EUTMUX_CONFIG_HOME, then copy the default config file to $EUTMUX_CONFIG_HOME config_file="${EUTMUX_CONFIG_HOME}/${DEFAULT_CONFIG_FILENAME}" if [ ! -e "${config_file}" ];then @@ -162,10 +191,16 @@ create_dynamic_config_file(){ replace_color(){ target_file="${1}" palette_file="${2:-${PALETTE_FILENAME}}" + t="$(mktemp)" + grep -iEo 'C(_[[:digit:]]{1,}){2}' ${target_file} > "${t}" while read -r _color;do - color_name="$(echo "${_color}" | cut -d':' -f1)" - color_value="$(echo "${_color}" | cut -d':' -f2)" - sed -i "s/${color_name}/${color_value}/g" "${target_file}" + color_name="$(echo "${_color}" | cut -d':' -f1)" + grep -q ${color_name} "${t}" + if [ $? -ne $TRUE ];then + continue + fi + color_value="$(echo "${_color}" | cut -d':' -f2)" + sed -i "s/${color_name}/${color_value}/g" "${target_file}" done < "${_DIR}/${palette_file}" } @@ -298,33 +333,35 @@ main(){ prepend_path "${_DIR}" "${EUTMUX_CONFIG_HOME}" prepend_pythonpath "${_DIR}" export EUTMUX_WORKDIR="${_DIR}" + export PYTHONUTF8=1 find "${_DIR}" -name "*.sh" -exec chmod u+x '{}' \; tmux set-environment -g 'EUTMUX_WORKDIR' "${_DIR}" tmux set-environment -g 'PATH' "${PATH}" tmux set-environment -g 'PYTHONPATH' "${PYTHONPATH}" # generate and execute tmux commands - tmux_commands="$(python3 -c "import eutmux; tmux_commands = eutmux.eutmux(); print(tmux_commands)")" + tmux_commands="$(python3 -c "import eutmux; tmux_commands = eutmux.init(); print(tmux_commands)")" echo "${tmux_commands}" | sed -e 's/True/on/g' | sed -e 's/False/off/g' | tr ';' '\n' > "${TMUX_COMMANDS_FILENAME}" tmux source "${TMUX_COMMANDS_FILENAME}" } usage(){ - echoh "./eutmux.tmux [-d]" + echoh "./eutmux.tmux [-a] [-d] [-D] [-r] [-R] [-t] [-T new-theme-name]" } setup -while getopts "adDrRt:T:" opt; do +while getopts "ac:dDrRt:T:" opt; do case $opt in a) show_all_themes; exit $? ;; + c) DARK_BASE_COLOR="${OPTARG}" ;; d) CREATE_DYNMIC_THEME=${TRUE} ;; D) THEME_NAME="eutmux" ;; r) ROTATE_THEME=${TRUE} ;; R) replace_legacy_placeholders; exit $? ;; t) apply_theme "${OPTARG}" ;; T) NEW_THEME_NAME="$OPTARG"; save_dynamic_theme "${NEW_THEME_NAME}"; exit $? ;; - *) usage; exit "${EXIT_SUCCESS}" ;; + *|?) usage; exit "${EXIT_SUCCESS}" ;; esac done main diff --git a/eutmux.yaml b/eutmux.yaml index 5c1cfdd..4a90479 100644 --- a/eutmux.yaml +++ b/eutmux.yaml @@ -3,8 +3,8 @@ theme: burgundy-red general: options: status: true - status-fg: "C_6_1" - status-bg: "C_6_5" + status-fg: "C_06_01" + status-bg: "C_06_17" status-justify: left status-left-length: 100 status-right-length: 100 @@ -16,34 +16,34 @@ general: focus-events: true display-time: 5000 renumber-windows: true - clock-mode-colour: "C_4_4" - _fg_highlight: "C_1_5" - _bg_highlight: "C_5_4" + clock-mode-colour: "C_04_12" + _fg_highlight: "C_04_10" + _bg_highlight: "C_06_06" _style: "nobold,nounderscore,noitalics" - _eutmux_template_name: "template.3" + _eutmux_template_name: "template.5" styles: message-style: - fg: "C_4_2" + fg: "C_04_10" bg: "" style: "" message-command-style: - fg: "C_2_2" + fg: "C_04_10" bg: "" style: "" pane-border-style: - fg: "C_6_4" + fg: "C_06_14" bg: "" style: "" pane-active-border-style: - fg: "C_4_3" + fg: "C_04_12" bg: "" style: "" # Tmux 3.3+ support popup styles popup-style: - fg: "C_4_2" - bg: "C_6_5" + fg: "C_04_02" + bg: "C_06_05" popup-border-style: - fg: "C_4_2" + fg: "C_04_02" bg: "" commands: - bind-key 'g' run-shell 'eutmux.tmux -d' @@ -53,6 +53,7 @@ general: - bind-key 't' run-shell 'eutmux.tmux -t ""' - bind-key 'T' run-shell 'eutmux.tmux -T ""' - bind-key 'S' run-shell 'tmux source ~/.tmux.conf' + - bind-key 'C-c' clock-mode - bind-key 'C-j' setw synchronize-panes on - bind-key 'C-k' setw synchronize-panes off - bind-key -n 'M-l' select-window -l @@ -78,11 +79,6 @@ status_right: enabled: true format: " #{b:pane_current_path} " icon: " " - fg_decorator: "C_3_4" - fg_icon: "C_6_5" - bg_icon: "C_3_4" - fg_format: "C_6_5" - bg_format: "C_3_2" date: icon: " " format: " v%V %a %Y-%m-%d %H:%M:%S " diff --git a/eutmux.yaml~ b/eutmux.yaml~ new file mode 100644 index 0000000..ce07617 --- /dev/null +++ b/eutmux.yaml~ @@ -0,0 +1,92 @@ +--- +theme: burgundy-red +general: + options: + status: true + status-fg: "C_6_1" + status-bg: "C_6_5" + status-justify: left + status-left-length: 100 + status-right-length: 100 + window-status-separator: ' ' + terminal-overrides: ",xterm*:Tc" + default-terminal: "screen-256color" + escape-time: 5 + status-interval: 3 + focus-events: true + display-time: 5000 + renumber-windows: true + clock-mode-colour: "C_4_4" + _fg_highlight: "#820000" + _bg_highlight: "C_5_4" + _style: "nobold,nounderscore,noitalics" + _eutmux_template_name: "template.3" + styles: + message-style: + fg: "C_4_2" + bg: "" + style: "" + message-command-style: + fg: "C_2_2" + bg: "" + style: "" + pane-border-style: + fg: "C_6_4" + bg: "" + style: "" + pane-active-border-style: + fg: "C_4_3" + bg: "" + style: "" + # Tmux 3.3+ support popup styles + popup-style: + fg: "C_4_2" + bg: "C_6_5" + popup-border-style: + fg: "C_4_2" + bg: "" + commands: + - bind-key 'g' run-shell 'eutmux.tmux -d' + - bind-key 'G' run-shell 'eutmux.tmux -D' + - bind-key 'a' display-popup 'eutmux.tmux -a' + - bind-key 'r' run-shell 'eutmux.tmux -r' + - bind-key 't' run-shell 'eutmux.tmux -t ""' + - bind-key 'T' run-shell 'eutmux.tmux -T ""' + - bind-key 'S' run-shell 'tmux source ~/.tmux.conf' + - bind-key 'C-j' setw synchronize-panes on + - bind-key 'C-k' setw synchronize-panes off + - bind-key -n 'M-l' select-window -l + - bind-key -n 'M-j' select-pane -R + - bind-key -n 'M-k' select-pane -D + - bind-key -n 'M-Left' select-window -p + - bind-key -n 'M-Right' select-window -n +status_left: + session: + enabled: true + format: " #S " +window: + active: + window_name: " #W " + window_index: " #I" + icon: "" + inactive: + window_name: " #W " + window_index: " #I" + icon: "" +status_right: + directory: + enabled: true + format: " #{b:pane_current_path} " + icon: " " + date: + icon: " " + format: " v%V %a %Y-%m-%d %H:%M:%S " + cpu: + icon: " " + format: " #(source cpu.sh) " + memory: + icon: " " + format: "#(source memory.sh)" + disk: + icon: " " + format: " #(source disk.sh) " diff --git a/gray-yellow.theme.yaml b/gray-yellow.theme.yaml new file mode 100644 index 0000000..5f2303b --- /dev/null +++ b/gray-yellow.theme.yaml @@ -0,0 +1,63 @@ +--- +terminal: + foreground: "#b7b7ff" + background: "#231f32" +status_line: + foreground: "#d0d0d0" + background: "#171717" + left_icon: "" + right_icon: "" + left_decorator: "" + right_decorator: "" + fg_format: "#a2a2a2" + bg_format: "#454545" + fg_icon: "#a2a2a2" + bg_icon: "#353535" + fg_decorator: "#353535" + bg_decorator: "#171717" + style: "nobold,nounderscore,noitalics" +status_left: + fg_format: "#a2a2a2" + bg_format: "#171717" + fg_icon: "#a2a2a2" + bg_icon: "#454545" + fg_decorator: "#454545" + bg_decorator: "#171717" + icon: "  " + decorator: "" + style: "nobold,nounderscore,noitalics" +window: + active: + fg_window: "#171717" + bg_window: "#f5f54e" + fg_window_index: "#171717" + bg_window_index: "#b6b611" + fg_icon: "#a2a2a2" + bg_icon: "#b6b611" + fg_decorator: "#b6b611" + bg_decorator: "#171717" + icon: "" + decorator: "" + style: "nobold,nounderscore,noitalics" + inactive: + fg_window: "#a2a2a2" + bg_window: "#454545" + fg_window_index: "#a2a2a2" + bg_window_index: "#353535" + fg_icon: "" + bg_icon: "" + fg_decorator: "#353535" + bg_decorator: "#171717" + icon: "" + decorator: "" + style: "nobold,nounderscore,noitalics" +status_right: + icon: " " + decorator: "" + style: "nobold,nounderscore,noitalics" + fg_format: "#a2a2a2" + bg_format: "#454545" + fg_icon: "#a2a2a2" + bg_icon: "#353535" + fg_decorator: "#353535" + bg_decorator: "#171717" diff --git a/memory.sh b/memory.sh old mode 100755 new mode 100644 diff --git a/purple.theme.yaml b/purple.theme.yaml new file mode 100644 index 0000000..7195712 --- /dev/null +++ b/purple.theme.yaml @@ -0,0 +1,63 @@ +--- +terminal: + foreground: "#b7b7ff" + background: "#231f32" +status_line: + foreground: "#bfaff8" + background: "#231f31" + left_icon: "" + right_icon: "" + left_decorator: "" + right_decorator: "" + fg_format: "#bfaff8" + bg_format: "#ac98f3" + fg_icon: "#886de4" + bg_icon: "#ac98f3" + fg_decorator: "#ac98f3" + bg_decorator: "#886de4" + style: "nobold,nounderscore,noitalics" +status_left: + fg_format: "#886de4" + bg_format: "#231f31" + fg_icon: "#231f31" + bg_icon: "#6649cf" + fg_decorator: "#6649cf" + bg_decorator: "#231f31" + icon: "  " + decorator: "" + style: "nobold,nounderscore,noitalics" +window: + active: + fg_window: "#231f31" + bg_window: "#81ec98" + fg_window_index: "#231f31" + bg_window_index: "#39c256" + fg_icon: "#886de4" + bg_icon: "#39c256" + fg_decorator: "#39c256" + bg_decorator: "#2d2745" + icon: "" + decorator: "" + style: "nobold,nounderscore,noitalics" + inactive: + fg_window: "#ac98f3" + bg_window: "#6649cf" + fg_window_index: "#886de4" + bg_window_index: "#413372" + fg_icon: "" + bg_icon: "" + fg_decorator: "#413372" + bg_decorator: "#231f31" + icon: "" + decorator: "" + style: "nobold,nounderscore,noitalics" +status_right: + icon: " " + decorator: "" + style: "nobold,nounderscore,noitalics" + fg_format: "#ac98f3" + bg_format: "#6649cf" + fg_icon: "#886de4" + bg_icon: "#413372" + fg_decorator: "#413372" + bg_decorator: "#231f31" diff --git a/requirements.txt b/requirements.txt index cad5376..cbf9c5d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,6 @@ +peelee>=0.2.22 loguru>=0.7.0 seaborn>=0.12.2 +fonttools>=4.43.0 # not directly required, pinned by Snyk to avoid a vulnerability +pillow>=10.3.0 # not directly required, pinned by Snyk to avoid a vulnerability +numpy>=1.22.2 # not directly required, pinned by Snyk to avoid a vulnerability diff --git a/template.3.theme.yaml b/template.3.theme.yaml index 58fac9b..93aed45 100644 --- a/template.3.theme.yaml +++ b/template.3.theme.yaml @@ -3,21 +3,21 @@ terminal: foreground: "#b7b7ff" background: "#231f32" status_line: - foreground: "C_6_1" + foreground: "C_06_15" background: "C_6_5" left_icon: "" right_icon: "" left_decorator: "" right_decorator: "" - fg_format: "C_6_1" + fg_format: "C_06_15" bg_format: "C_6_2" - fg_icon: "C_6_4" + fg_icon: "C_06_45" bg_icon: "C_6_2" fg_decorator: "C_6_2" - bg_decorator: "C_6_4" + bg_decorator: "C_06_45" style: "nobold,nounderscore,noitalics" status_left: - fg_format: "C_6_1" + fg_format: "C_06_15" bg_format: "C_6_5" fg_icon: "C_3_0" bg_icon: "C_1_5" @@ -28,11 +28,11 @@ status_left: style: "nobold,nounderscore,noitalics" window: active: - fg_window: "C_6_4" - bg_window: "C_4_2" + fg_window: "C_06_45" + bg_window: "C_04_25" fg_window_index: "C_6_5" bg_window_index: "C_4_4" - fg_icon: "C_6_4" + fg_icon: "C_06_45" bg_icon: "C_4_4" fg_decorator: "C_4_4" bg_decorator: "C_6_5" @@ -40,13 +40,13 @@ window: decorator: "" style: "nobold,nounderscore,noitalics" inactive: - fg_window: "C_6_4" + fg_window: "C_06_45" bg_window: "C_6_3" fg_window_index: "C_6_5" - bg_window_index: "C_6_4" + bg_window_index: "C_06_45" fg_icon: "" bg_icon: "" - fg_decorator: "C_6_4" + fg_decorator: "C_06_45" bg_decorator: "C_6_5" icon: "" decorator: "" @@ -56,8 +56,8 @@ status_right: decorator: "" style: "nobold,nounderscore,noitalics" fg_format: "C_6_4" - bg_format: "C_6_2" + bg_format: "C_5_2" fg_icon: "C_6_5" - bg_icon: "C_6_3" - fg_decorator: "C_6_3" + bg_icon: "C_5_4" + fg_decorator: "C_5_4" bg_decorator: "C_6_5" diff --git a/template.3.theme.yaml~ b/template.3.theme.yaml~ new file mode 100644 index 0000000..58fac9b --- /dev/null +++ b/template.3.theme.yaml~ @@ -0,0 +1,63 @@ +--- +terminal: + foreground: "#b7b7ff" + background: "#231f32" +status_line: + foreground: "C_6_1" + background: "C_6_5" + left_icon: "" + right_icon: "" + left_decorator: "" + right_decorator: "" + fg_format: "C_6_1" + bg_format: "C_6_2" + fg_icon: "C_6_4" + bg_icon: "C_6_2" + fg_decorator: "C_6_2" + bg_decorator: "C_6_4" + style: "nobold,nounderscore,noitalics" +status_left: + fg_format: "C_6_1" + bg_format: "C_6_5" + fg_icon: "C_3_0" + bg_icon: "C_1_5" + fg_decorator: "C_1_5" + bg_decorator: "C_6_5" + icon: "  " + decorator: "" + style: "nobold,nounderscore,noitalics" +window: + active: + fg_window: "C_6_4" + bg_window: "C_4_2" + fg_window_index: "C_6_5" + bg_window_index: "C_4_4" + fg_icon: "C_6_4" + bg_icon: "C_4_4" + fg_decorator: "C_4_4" + bg_decorator: "C_6_5" + icon: "" + decorator: "" + style: "nobold,nounderscore,noitalics" + inactive: + fg_window: "C_6_4" + bg_window: "C_6_3" + fg_window_index: "C_6_5" + bg_window_index: "C_6_4" + fg_icon: "" + bg_icon: "" + fg_decorator: "C_6_4" + bg_decorator: "C_6_5" + icon: "" + decorator: "" + style: "nobold,nounderscore,noitalics" +status_right: + icon: " " + decorator: "" + style: "nobold,nounderscore,noitalics" + fg_format: "C_6_4" + bg_format: "C_6_2" + fg_icon: "C_6_5" + bg_icon: "C_6_3" + fg_decorator: "C_6_3" + bg_decorator: "C_6_5" diff --git a/template.4.theme.yaml b/template.4.theme.yaml new file mode 100644 index 0000000..85a8a17 --- /dev/null +++ b/template.4.theme.yaml @@ -0,0 +1,63 @@ +--- +terminal: + foreground: "#b7b7ff" + background: "#231f32" +status_line: + foreground: "C_06_01" + background: "C_06_17" + left_icon: "" + right_icon: "" + left_decorator: "" + right_decorator: "" + fg_format: "C_06_06" + bg_format: "C_06_13" + fg_icon: "C_06_06" + bg_icon: "C_06_15" + fg_decorator: "C_06_15" + bg_decorator: "C_06_17" + style: "nobold,nounderscore,noitalics" +status_left: + fg_format: "C_04_08" + bg_format: "C_06_17" + fg_icon: "C_06_06" + bg_icon: "C_06_13" + fg_decorator: "C_06_13" + bg_decorator: "C_06_17" + icon: "  " + decorator: "" + style: "nobold,nounderscore,noitalics" +window: + active: + fg_window: "C_06_17" + bg_window: "C_06_06" + fg_window_index: "C_06_02" + bg_window_index: "C_06_08" + fg_icon: "C_06_06" + bg_icon: "C_06_08" + fg_decorator: "C_06_08" + bg_decorator: "C_06_17" + icon: "" + decorator: "" + style: "nobold,nounderscore,noitalics" + inactive: + fg_window: "C_06_06" + bg_window: "C_06_13" + fg_window_index: "C_06_06" + bg_window_index: "C_06_15" + fg_icon: "" + bg_icon: "" + fg_decorator: "C_06_15" + bg_decorator: "C_06_17" + icon: "" + decorator: "" + style: "nobold,nounderscore,noitalics" +status_right: + icon: " " + decorator: "" + style: "nobold,nounderscore,noitalics" + fg_format: "C_06_06" + bg_format: "C_06_13" + fg_icon: "C_06_06" + bg_icon: "C_06_15" + fg_decorator: "C_06_15" + bg_decorator: "C_06_17" diff --git a/template.5.theme.yaml b/template.5.theme.yaml new file mode 100644 index 0000000..cfe43b5 --- /dev/null +++ b/template.5.theme.yaml @@ -0,0 +1,70 @@ +--- +terminal: + foreground: "#b7b7ff" + background: "#231f32" +status_line: + foreground: "C_06_01" + background: "C_06_17" + left_icon: "" + right_icon: "" + left_decorator: "" + right_decorator: "" + fg_format: "C_06_06" + bg_format: "C_06_13" + fg_icon: "C_06_06" + bg_icon: "C_06_15" + fg_decorator: "C_06_15" + bg_decorator: "C_06_17" + style: "nobold,nounderscore,noitalics" +status_left: + fg_format: "C_04_08" + bg_format: "C_06_17" + fg_icon: "C_06_06" + bg_icon: "C_06_13" + fg_decorator: "C_06_13" + bg_decorator: "C_06_17" + icon: "  " + decorator: "" + style: "nobold,nounderscore,noitalics" +window: + active: + fg_window: "C_04_14" + bg_window: "C_04_08" + fg_window_index: "C_04_14" + bg_window_index: "C_04_10" + fg_icon: "C_04_06" + bg_icon: "C_04_08" + fg_decorator: "C_04_10" + bg_decorator: "C_04_17" + icon: "" + decorator: "" + style: "nobold,nounderscore,noitalics" + inactive: + fg_window: "C_06_06" + bg_window: "C_06_13" + fg_window_index: "C_06_06" + bg_window_index: "C_06_15" + fg_icon: "" + bg_icon: "" + fg_decorator: "C_06_15" + bg_decorator: "C_06_17" + icon: "" + decorator: "" + style: "nobold,nounderscore,noitalics" +status_right: + icon: " " + decorator: "" + style: "nobold,nounderscore,noitalics" + fg_format: "C_06_06" + bg_format: "C_06_13" + fg_icon: "C_06_06" + bg_icon: "C_06_15" + fg_decorator: "C_06_15" + bg_decorator: "C_06_17" + directory: + fg_format: "C_05_06" + bg_format: "C_05_13" + fg_icon: "C_05_06" + bg_icon: "C_05_15" + fg_decorator: "C_05_15" + bg_decorator: "C_05_17" diff --git a/template.theme.yaml b/template.theme.yaml index f56085a..b72433b 100644 --- a/template.theme.yaml +++ b/template.theme.yaml @@ -3,21 +3,21 @@ terminal: foreground: "#b7b7ff" background: "#231f32" status_line: - foreground: "C_6_1" + foreground: "C_06_15" background: "C_6_5" left_icon: "" right_icon: "" left_decorator: "" right_decorator: "" - fg_format: "C_6_1" + fg_format: "C_06_15" bg_format: "C_6_2" - fg_icon: "C_6_4" + fg_icon: "C_06_45" bg_icon: "C_6_2" fg_decorator: "C_6_2" - bg_decorator: "C_6_4" + bg_decorator: "C_06_45" style: "nobold,nounderscore,noitalics" status_left: - fg_format: "C_6_1" + fg_format: "C_06_15" bg_format: "C_6_5" fg_icon: "C_3_0" bg_icon: "C_1_5" @@ -28,11 +28,11 @@ status_left: style: "nobold,nounderscore,noitalics" window: active: - fg_window: "C_6_4" - bg_window: "C_4_2" + fg_window: "C_06_45" + bg_window: "C_04_25" fg_window_index: "C_6_5" bg_window_index: "C_4_4" - fg_icon: "C_6_4" + fg_icon: "C_06_45" bg_icon: "C_4_4" fg_decorator: "C_4_4" bg_decorator: "C_6_5" @@ -40,13 +40,13 @@ window: decorator: "" style: "nobold,nounderscore,noitalics" inactive: - fg_window: "C_6_4" + fg_window: "C_06_45" bg_window: "C_6_3" fg_window_index: "C_6_5" - bg_window_index: "C_6_4" + bg_window_index: "C_06_45" fg_icon: "" bg_icon: "" - fg_decorator: "C_6_4" + fg_decorator: "C_06_45" bg_decorator: "C_6_5" icon: "" decorator: "" @@ -55,7 +55,7 @@ status_right: icon: " " decorator: "" style: "nobold,nounderscore,noitalics" - fg_format: "C_6_4" + fg_format: "C_06_45" bg_format: "C_5_2" fg_icon: "C_6_5" bg_icon: "C_5_4" diff --git a/tmux_commands.txt.bak b/tmux_commands.txt.bak new file mode 100644 index 0000000..dcabeec --- /dev/null +++ b/tmux_commands.txt.bak @@ -0,0 +1,45 @@ +set-option -gq status 'on' +set-option -gq status-fg '#8EEE8E' +set-option -gq status-bg '#212D21' +set-option -gq status-justify 'left' +set-option -gq status-left-length '100' +set-option -gq status-right-length '100' +set-option -gq window-status-separator ' ' +set-option -gq terminal-overrides ',xterm*:Tc' +set-option -gq default-terminal 'screen-256color' +set-option -gq escape-time '5' +set-option -gq status-interval '3' +set-option -gq focus-events 'on' +set-option -gq display-time '5000' +set-option -gq renumber-windows 'on' +set-option -gq clock-mode-colour '#6B3535' +set-option -gq @fg_highlight '#820000' +set-option -gq @bg_highlight '#35356B' +set-option -gq @style 'nobold,nounderscore,noitalics' +set-option -gq @eutmux_template_name 'template.4' +set-option -gq message-style 'fg=#D95F5F,' +set-option -gq message-command-style 'fg=#5E5EBD,' +set-option -gq pane-border-style 'fg=#356435,' +set-option -gq pane-active-border-style 'fg=#AE3E3E,' +set-option -gq popup-style 'fg=#D95F5F,bg=#212D21,nobold,nounderscore,noitalics' +set-option -gq popup-border-style 'fg=#D95F5F,nobold,nounderscore,noitalics' +bind-key 'g' run-shell 'eutmux.tmux -d' +bind-key 'G' run-shell 'eutmux.tmux -D' +bind-key 'a' display-popup 'eutmux.tmux -a' +bind-key 'r' run-shell 'eutmux.tmux -r' +bind-key 't' run-shell 'eutmux.tmux -t ""' +bind-key 'T' run-shell 'eutmux.tmux -T ""' +bind-key 'S' run-shell 'tmux source ~/.tmux.conf' +bind-key 'C-c' clock-mode +bind-key 'C-j' setw synchronize-panes on +bind-key 'C-k' setw synchronize-panes off +bind-key -n 'M-l' select-window -l +bind-key -n 'M-j' select-pane -R +bind-key -n 'M-k' select-pane -D +bind-key -n 'M-Left' select-window -p +bind-key -n 'M-Right' select-window -n +set-option -gq status-style 'fg=#8EEE8E,bg=#191F19' +set-option -gq status-left '#[fg=#485748,bg=#FDDBDB,nobold,nounderscore,noitalics]  #[fg=#8EEE8E,bg=#191F19,nobold,nounderscore,noitalics]#[fg=#FDDBDB,bg=#191F19,nobold,nounderscore,noitalics]#[fg=#8EEE8E,bg=#191F19,nobold,nounderscore,noitalics]#[fg=#8EEE8E,bg=#191F19,nobold,nounderscore,noitalics] #S #[fg=#8EEE8E,bg=#191F19,nobold,nounderscore,noitalics]' +set-option -gq window-status-current-format '#[fg=#356435,bg=#D95F5F,nobold,nounderscore,noitalics] #W #[fg=#8EEE8E,bg=#191F19,nobold,nounderscore,noitalics]#[fg=#212D21,bg=#6B3535,nobold,nounderscore,noitalics] #I#[fg=#8EEE8E,bg=#191F19,nobold,nounderscore,noitalics]#[fg=#356435,bg=#6B3535,nobold,nounderscore,noitalics]#[fg=#8EEE8E,bg=#191F19,nobold,nounderscore,noitalics]#[fg=#6B3535,bg=#212D21,nobold,nounderscore,noitalics]#[fg=#8EEE8E,bg=#191F19,nobold,nounderscore,noitalics] ' +set-option -gq window-status-format '#[fg=#356435,bg=#3FA63F,nobold,nounderscore,noitalics] #W #[fg=#8EEE8E,bg=#191F19,nobold,nounderscore,noitalics]#[fg=#212D21,bg=#356435,nobold,nounderscore,noitalics] #I#[fg=#8EEE8E,bg=#191F19,nobold,nounderscore,noitalics]#[fg=#8EEE8E,bg=#191F19,nobold,nounderscore,noitalics]#[fg=#8EEE8E,bg=#191F19,nobold,nounderscore,noitalics]#[fg=#356435,bg=#212D21,nobold,nounderscore,noitalics]#[fg=#8EEE8E,bg=#191F19,nobold,nounderscore,noitalics] ' +set-option -gq status-right '#[fg=#356435,bg=#212D21,nobold,nounderscore,noitalics]#[fg=#8EEE8E,bg=#191F19,nobold,nounderscore,noitalics]#[fg=#212D21,bg=#356435,nobold,nounderscore,noitalics] #[fg=#8EEE8E,bg=#191F19,nobold,nounderscore,noitalics]#[fg=#356435,bg=#3E3EAE,nobold,nounderscore,noitalics] #{b:pane_current_path} #[fg=#8EEE8E,bg=#191F19,nobold,nounderscore,noitalics] #[fg=#356435,bg=#212D21,nobold,nounderscore,noitalics]#[fg=#8EEE8E,bg=#191F19,nobold,nounderscore,noitalics]#[fg=#212D21,bg=#356435,nobold,nounderscore,noitalics] #[fg=#8EEE8E,bg=#191F19,nobold,nounderscore,noitalics]#[fg=#356435,bg=#3E3EAE,nobold,nounderscore,noitalics] v%V %a %Y-%m-%d %H:%M:%S #[fg=#8EEE8E,bg=#191F19,nobold,nounderscore,noitalics] #[fg=#356435,bg=#212D21,nobold,nounderscore,noitalics]#[fg=#8EEE8E,bg=#191F19,nobold,nounderscore,noitalics]#[fg=#212D21,bg=#356435,nobold,nounderscore,noitalics] #[fg=#8EEE8E,bg=#191F19,nobold,nounderscore,noitalics]#[fg=#356435,bg=#3E3EAE,nobold,nounderscore,noitalics] #(source cpu.sh) #[fg=#8EEE8E,bg=#191F19,nobold,nounderscore,noitalics] #[fg=#356435,bg=#212D21,nobold,nounderscore,noitalics]#[fg=#8EEE8E,bg=#191F19,nobold,nounderscore,noitalics]#[fg=#212D21,bg=#356435,nobold,nounderscore,noitalics] #[fg=#8EEE8E,bg=#191F19,nobold,nounderscore,noitalics]#[fg=#356435,bg=#3E3EAE,nobold,nounderscore,noitalics]#(source memory.sh)#[fg=#8EEE8E,bg=#191F19,nobold,nounderscore,noitalics] #[fg=#356435,bg=#212D21,nobold,nounderscore,noitalics]#[fg=#8EEE8E,bg=#191F19,nobold,nounderscore,noitalics]#[fg=#212D21,bg=#356435,nobold,nounderscore,noitalics] #[fg=#8EEE8E,bg=#191F19,nobold,nounderscore,noitalics]#[fg=#356435,bg=#3E3EAE,nobold,nounderscore,noitalics] #(source disk.sh) #[fg=#8EEE8E,bg=#191F19,nobold,nounderscore,noitalics]' diff --git a/utils.py b/utils.py index c04ebec..56abec4 100644 --- a/utils.py +++ b/utils.py @@ -2,8 +2,10 @@ """Provide utilities functions.""" import shlex import subprocess +from subprocess import TimeoutExpired -from const import EMPTY, UTF_8 +UTF_8 = "utf-8" +EMPTY = "" def get_tmux_option(name, default_value): @@ -20,7 +22,19 @@ def get_tmux_option(name, default_value): def run_shell_command(command, default_output=None): """Run shell command.""" command_args = shlex.split(command) - value = subprocess.check_output(command_args, shell=False).decode(UTF_8).strip() - if value is not None and value.strip() != EMPTY: - return value - return default_output + with subprocess.Popen( + command_args, stdout=subprocess.PIPE, stderr=subprocess.PIPE + ) as process: + try: + outs, errs = process.communicate(timeout=3) + except TimeoutExpired: + process.kill() + outs, errs = process.communicate() + raise TimeoutExpired + output = outs.decode().strip() + return output if output and len(output) > 0 else default_output + + +if __name__ == "__main__": + value = get_tmux_option("@eutmux_base_color_total", 5) + print(value) diff --git a/utils.sh b/utils.sh old mode 100755 new mode 100644 diff --git a/viiv-cyan.theme.yaml b/viiv-cyan.theme.yaml new file mode 100644 index 0000000..66dd0a6 --- /dev/null +++ b/viiv-cyan.theme.yaml @@ -0,0 +1,63 @@ +--- +terminal: + foreground: "#b7b7ff" + background: "#231f32" +status_line: + foreground: "#b9f9f9" + background: "#1a1e1e" + left_icon: "" + right_icon: "" + left_decorator: "" + right_decorator: "" + fg_format: "#5ed5d5" + bg_format: "#325050" + fg_icon: "#5ed5d5" + bg_icon: "#232d2d" + fg_decorator: "#232d2d" + bg_decorator: "#1a1e1e" + style: "nobold,nounderscore,noitalics" +status_left: + fg_format: "#bd9f43" + bg_format: "#1a1e1e" + fg_icon: "#5ed5d5" + bg_icon: "#325050" + fg_decorator: "#325050" + bg_decorator: "#1a1e1e" + icon: "  " + decorator: "" + style: "nobold,nounderscore,noitalics" +window: + active: + fg_window: "#1a1e1e" + bg_window: "#5ed5d5" + fg_window_index: "#a4f4f4" + bg_window_index: "#43bdbd" + fg_icon: "#5ed5d5" + bg_icon: "#43bdbd" + fg_decorator: "#43bdbd" + bg_decorator: "#1a1e1e" + icon: "" + decorator: "" + style: "nobold,nounderscore,noitalics" + inactive: + fg_window: "#5ed5d5" + bg_window: "#325050" + fg_window_index: "#5ed5d5" + bg_window_index: "#232d2d" + fg_icon: "" + bg_icon: "" + fg_decorator: "#232d2d" + bg_decorator: "#1a1e1e" + icon: "" + decorator: "" + style: "nobold,nounderscore,noitalics" +status_right: + icon: " " + decorator: "" + style: "nobold,nounderscore,noitalics" + fg_format: "#5ed5d5" + bg_format: "#325050" + fg_icon: "#5ed5d5" + bg_icon: "#232d2d" + fg_decorator: "#232d2d" + bg_decorator: "#1a1e1e" diff --git a/viiv-elite-dark-blue.theme.yaml b/viiv-elite-dark-blue.theme.yaml new file mode 100644 index 0000000..6c3ace8 --- /dev/null +++ b/viiv-elite-dark-blue.theme.yaml @@ -0,0 +1,70 @@ +--- +terminal: + foreground: "#b7b7ff" + background: "#231f32" +status_line: + foreground: "#b8b8f9" + background: "#16161e" + left_icon: "" + right_icon: "" + left_decorator: "" + right_decorator: "" + fg_format: "#5959d8" + bg_format: "#2d2d53" + fg_icon: "#5959d8" + bg_icon: "#1e1e2e" + fg_decorator: "#1e1e2e" + bg_decorator: "#16161e" + style: "nobold,nounderscore,noitalics" +status_left: + fg_format: "#4bcd4b" + bg_format: "#16161e" + fg_icon: "#5959d8" + bg_icon: "#2d2d53" + fg_decorator: "#2d2d53" + bg_decorator: "#16161e" + icon: "  " + decorator: "" + style: "nobold,nounderscore,noitalics" +window: + active: + fg_window: "#161d16" + bg_window: "#6ae16a" + fg_window_index: "#161d16" + bg_window_index: "#3ca83c" + fg_icon: "#6ae16a" + bg_icon: "#4bcd4b" + fg_decorator: "#3ca83c" + bg_decorator: "#161d16" + icon: "" + decorator: "" + style: "nobold,nounderscore,noitalics" + inactive: + fg_window: "#5959d8" + bg_window: "#2d2d53" + fg_window_index: "#5959d8" + bg_window_index: "#1e1e2e" + fg_icon: "" + bg_icon: "" + fg_decorator: "#1e1e2e" + bg_decorator: "#16161e" + icon: "" + decorator: "" + style: "nobold,nounderscore,noitalics" +status_right: + icon: " " + decorator: "" + style: "nobold,nounderscore,noitalics" + fg_format: "#5959d8" + bg_format: "#2d2d53" + fg_icon: "#5959d8" + bg_icon: "#1e1e2e" + fg_decorator: "#1e1e2e" + bg_decorator: "#16161e" + directory: + fg_format: "#e16a6a" + bg_format: "#653333" + fg_icon: "#e16a6a" + bg_icon: "#3e2727" + fg_decorator: "#3e2727" + bg_decorator: "#1d1616" diff --git a/viiv-github-dimmed-green.theme.yaml b/viiv-github-dimmed-green.theme.yaml new file mode 100644 index 0000000..eac4acb --- /dev/null +++ b/viiv-github-dimmed-green.theme.yaml @@ -0,0 +1,70 @@ +--- +terminal: + foreground: "#b7b7ff" + background: "#231f32" +status_line: + foreground: "#bccef9" + background: "#23262d" + left_icon: "" + right_icon: "" + left_decorator: "" + right_decorator: "" + fg_format: "#6588d9" + bg_format: "#374360" + fg_icon: "#6588d9" + bg_icon: "#2a303c" + fg_decorator: "#2a303c" + bg_decorator: "#23262d" + style: "nobold,nounderscore,noitalics" +status_left: + fg_format: "#7fcf57" + bg_format: "#23262d" + fg_icon: "#6588d9" + bg_icon: "#374360" + fg_decorator: "#374360" + bg_decorator: "#23262d" + icon: "  " + decorator: "" + style: "nobold,nounderscore,noitalics" +window: + active: + fg_window: "#262c23" + bg_window: "#98e274" + fg_window_index: "#262c23" + bg_window_index: "#68b342" + fg_icon: "#98e274" + bg_icon: "#7fcf57" + fg_decorator: "#68b342" + bg_decorator: "#262c23" + icon: "" + decorator: "" + style: "nobold,nounderscore,noitalics" + inactive: + fg_window: "#6588d9" + bg_window: "#374360" + fg_window_index: "#6588d9" + bg_window_index: "#2a303c" + fg_icon: "" + bg_icon: "" + fg_decorator: "#2a303c" + bg_decorator: "#23262d" + icon: "" + decorator: "" + style: "nobold,nounderscore,noitalics" +status_right: + icon: " " + decorator: "" + style: "nobold,nounderscore,noitalics" + fg_format: "#6588d9" + bg_format: "#374360" + fg_icon: "#6588d9" + bg_icon: "#2a303c" + fg_decorator: "#2a303c" + bg_decorator: "#23262d" + directory: + fg_format: "#e27498" + bg_format: "#723c4e" + fg_icon: "#e27498" + bg_icon: "#4c313a" + fg_decorator: "#4c313a" + bg_decorator: "#2c2326" diff --git a/viiv-github-dimmed.theme.yaml b/viiv-github-dimmed.theme.yaml new file mode 100644 index 0000000..b9b4d1a --- /dev/null +++ b/viiv-github-dimmed.theme.yaml @@ -0,0 +1,63 @@ +--- +terminal: + foreground: "#b7b7ff" + background: "#231f32" +status_line: + foreground: "#bccef9" + background: "#23262d" + left_icon: "" + right_icon: "" + left_decorator: "" + right_decorator: "" + fg_format: "#6588d9" + bg_format: "#374360" + fg_icon: "#6588d9" + bg_icon: "#2a303c" + fg_decorator: "#2a303c" + bg_decorator: "#23262d" + style: "nobold,nounderscore,noitalics" +status_left: + fg_format: "#7fcf57" + bg_format: "#23262d" + fg_icon: "#6588d9" + bg_icon: "#374360" + fg_decorator: "#374360" + bg_decorator: "#23262d" + icon: "  " + decorator: "" + style: "nobold,nounderscore,noitalics" +window: + active: + fg_window: "#23262d" + bg_window: "#6588d9" + fg_window_index: "#a8bff5" + bg_window_index: "#4a6fc4" + fg_icon: "#6588d9" + bg_icon: "#4a6fc4" + fg_decorator: "#4a6fc4" + bg_decorator: "#23262d" + icon: "" + decorator: "" + style: "nobold,nounderscore,noitalics" + inactive: + fg_window: "#6588d9" + bg_window: "#374360" + fg_window_index: "#6588d9" + bg_window_index: "#2a303c" + fg_icon: "" + bg_icon: "" + fg_decorator: "#2a303c" + bg_decorator: "#23262d" + icon: "" + decorator: "" + style: "nobold,nounderscore,noitalics" +status_right: + icon: " " + decorator: "" + style: "nobold,nounderscore,noitalics" + fg_format: "#6588d9" + bg_format: "#374360" + fg_icon: "#6588d9" + bg_icon: "#2a303c" + fg_decorator: "#2a303c" + bg_decorator: "#23262d"