├── .gitmux.conf
├── README.md
├── article
├── Minimalizm & Minimalist.md
└── screen1.png
├── binding.conf
├── plugins
└── catppuccin
│ └── tmux
│ ├── .editorconfig
│ ├── .gitignore
│ ├── .markdownlint.jsonc
│ ├── .shellcheckrc
│ ├── CHANGELOG.md
│ ├── CONTRIBUTING.md
│ ├── assets
│ ├── config1.png
│ ├── config2.png
│ ├── config3.png
│ ├── demos
│ │ ├── basic.conf
│ │ ├── basic.gif
│ │ └── basic.tape
│ ├── example-config.webp
│ ├── frappe.webp
│ ├── generate_preview.fish
│ ├── latte.webp
│ ├── macchiato.webp
│ ├── mocha.webp
│ ├── preview.webp
│ ├── ram-example.webp
│ ├── structure.svg
│ ├── window-basic.webp
│ ├── window-none.webp
│ ├── window-rounded.webp
│ └── window-slanted.webp
│ ├── catppuccin.tmux
│ ├── catppuccin_options_tmux.conf
│ ├── catppuccin_tmux.conf
│ ├── docs
│ ├── explanation
│ │ └── design.md
│ ├── reference
│ │ ├── configuration.md
│ │ └── status-line.md
│ └── tutorials
│ │ ├── 01-getting-started.md
│ │ └── 02-custom-status.md
│ ├── renovate.json
│ ├── run_tests.sh
│ ├── status
│ ├── application.conf
│ ├── battery.conf
│ ├── clima.conf
│ ├── cpu.conf
│ ├── date_time.conf
│ ├── directory.conf
│ ├── gitmux.conf
│ ├── host.conf
│ ├── kube.conf
│ ├── load.conf
│ ├── pomodoro_plus.conf
│ ├── session.conf
│ ├── uptime.conf
│ ├── user.conf
│ └── weather.conf
│ ├── tests
│ ├── application_module.sh
│ ├── application_module_expected.txt
│ ├── battery_module.sh
│ ├── battery_module_expected.txt
│ ├── cpu_module.sh
│ ├── cpu_module_expected.txt
│ ├── default_options.sh
│ ├── default_options_expected.txt
│ ├── harness.sh
│ ├── helpers.sh
│ ├── pane_styling.sh
│ ├── pane_styling_expected.txt
│ ├── window_status_styling.sh
│ └── window_status_styling_expected.txt
│ ├── themes
│ ├── catppuccin_frappe_tmux.conf
│ ├── catppuccin_latte_tmux.conf
│ ├── catppuccin_macchiato_tmux.conf
│ └── catppuccin_mocha_tmux.conf
│ ├── tmux.tera
│ └── utils
│ └── status_module.conf
├── scripts
└── ide
├── tmux.conf
└── utility.conf
/.gitmux.conf:
--------------------------------------------------------------------------------
1 | tmux:
2 | styles:
3 | clear: '#[fg=#{@thm_fg}]'
4 | state: '#[fg=#{@thm_red},bold]'
5 | branch: '#[fg=#{@thm_fg},bold]'
6 | remote: '#[fg=#{@thm_teal}]'
7 | divergence: '#[fg=#{@thm_fg}]'
8 | staged: '#[fg=#{@thm_green},bold]'
9 | conflict: '#[fg=#{@thm_red},bold]'
10 | modified: '#[fg=#{@thm_yellow},bold]'
11 | untracked: '#[fg=#{@thm_mauve},bold]'
12 | stashed: '#[fg=#{@thm_blue},bold]'
13 | clean: '#[fg=#{@thm_rosewater},bold]'
14 | insertions: '#[fg=#{@thm_green}]'
15 | deletions: '#[fg=#{@thm_red}]'
16 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Small talk about …
2 |
3 | In this repository, you will find all of my personal settings for tmux. Configuration has keyboard shortcuts that I use them a lot in what I'm doing. It's not ideal and other colleagues have much more color in their themes and other functionalities, but I love ideas of _minimalist world_.
4 |
5 | Before getting started, you should install **LazyGit**. I use this package a lot and find it useful.
6 |
7 | 
8 |
9 | ## Install
10 |
11 | Copy the **tmux** folder into the next folder _~/.config/\*_. Use of this folder in Linux and MacOS - I didn’t check my configuration in Windows, yet.
12 |
13 | ## Additional keyboard shortcuts
14 |
15 | `Ctrl` `b` `r` - Reload **tmux** online if you changed config files (I used it when developing this config).
16 |
17 | `Ctrl` `b` `o` - Open the folder that contains the current pane using MC shell application.
18 |
19 | `Ctrl` `b` `O` - Open the folder that contains the current pane.
20 |
21 | `Ctrl` `b` `e` - Close all panes in the window expect of the current one.
22 |
23 | `Ctrl` `b` `\` - Split window by horizontally.
24 |
25 | `Ctrl` `b` `|` - Split window by vertically.
26 |
27 | `Ctrl` `b` `h` - Switch to the left pane of the window.
28 |
29 | `Ctrl` `b` `l` - Switch to the right pane of the window.
30 |
31 | `Ctrl` `b` `j` - Switch to the bottom pane of the window.
32 |
33 | `Ctrl` `b` `k` - Switch to the top pane of the window.
34 |
35 | `Ctrl` `b` `H` - Go to the previous window.
36 |
37 | `Ctrl` `b` `L` - Go to the next window.
38 |
39 | `Ctrl` `b` `g` - Open **LazyGit** plugin for current path.
40 |
41 | `Ctrl` `b` `F12` - Run _./scripts/ide_ to open **Terminal** as an **IDE** with some number of panes (work only in **tmux** session).
42 |
43 | ## References
44 |
45 | [github.com/tmux/tmux](https://github.com/tmux/tmux)
46 | [github.com/jesseduffield/lazygit](https://github.com/jesseduffield/lazygit)
47 | [github.com/olivercederborg/poimandres.nvim](https://github.com/olivercederborg/poimandres.nvim)
48 | [github.com/rumaan/poimandres-iterm](https://github.com/rumaan/poimandres-iterm)
49 | [github.com/craftzdog/dotfiles-public](https://github.com/craftzdog/dotfiles-public)
50 |
--------------------------------------------------------------------------------
/article/Minimalizm & Minimalist.md:
--------------------------------------------------------------------------------
1 | # Minimalizm & Minimalist
2 |
3 | > Have you noticed? The world has become much more colorful, mottled, bright and contrasting.
4 |
5 | The whole world seems to have gone crazy for the pursuit of brightness, colors, texture, contrast, design and style. Over the past few couple of decades there have been a lot of things that would not have a place to exist without color, bright accents and design. I don't think you have to go very far and the Internet without color would still be a place for geeks and nerds. That time was more for scientists, technicians and just enthusiasts trying to create a virtual world.
6 |
7 | The current trend is to scroll through colorful images, photos, and videos, prioritizing flashy presentation over quality.
8 |
9 | This shift is also occurring in the IT world, where development programs (IDEs) are becoming increasingly visually complex. The programmer's focus often shifts away from writing quality code, studying algorithms, or understanding for example how the Garbage Collector works (it's .net interview's mem, yet). Unfortunately, this can lead to a lack of focus on important knowledge and skills. Instead, we may become preoccupied with trendy features like beautiful error highlighting and smart assistants. Additionally, it is concerning that many individuals may label themselves as experts in these areas without proper qualifications or experience.
10 |
11 | ## Minimalizm.
12 |
13 | I am pleased to see examples of minimalism in programming and to join the movement. Although I was curious as to why I was only discovering them now, that is a separate matter. I recently discovered enthusiasts who can accomplish tasks in the command line that I couldn't do in Visual Studio or WebStorm. Specifically, I am referring to NeoVim, Tmux, and similar tools that have been in existence for some time but are now being rediscovered by the world.
14 |
15 | During my time at university, I had a classmate who wrote code in a notebook. He would then retype the code into a PC in Notepad++ to assemble it, as he did not have any specialized IDEs on his laptop. At the time, I saw this as a display of extreme genius.
16 |
17 | Looking back on it now, I realize that he was a true 'samurai' of coding. Reflecting on the process of writing code in Notepad++, I can see the advantages of this approach.
18 |
19 | - By not relying on helpers, you can delve deeper into the material you are studying.
20 | - Hotkeys prevent the focus of attention from shifting to other windows, allowing for better concentration.
21 | - Setting up this 'notebook' requires reading and studying a lot of material, which also helps develop critical thinking skills.
22 |
23 | ## Minimalist.
24 |
25 | I discovered the power of minimalism in focusing on the functional core, rather than on unnecessary elements such as marketing or aesthetics. This realization led me to adopt a minimalist approach in my profession.
26 |
27 | Initially, I attempted to customize various tools such as Tmux and NeoVim, and experimented with different bundles. I then progressed to developing small projects in C# and TypeScript, before eventually incorporating these tools into my work projects. Throughout this process, I continually reconfigured and refined my approach. Although it took some time, but the feeling of learning something new is rewarding, similar to the satisfaction of a morning run.
28 |
29 | While others may go to work with a disgruntled face, the act of learning brings a sense of accomplishment and a better quality of life. It is a step closer to achieving personal goals.
30 |
31 | As a result, I have become a big fan of these tools.
32 |
33 | [github.com/paulbuzakov/tmuxconfig](https://github.com/paulbuzakov/tmuxconfig)
34 |
35 | 
36 |
37 | I have shared my working configuration for my MacBook Pro, home Ubuntu Server, and cloud server.
38 |
39 | The **readme.md** file explains my customized keyboard shortcuts that I use for work. While I also use standard shortcuts, you can access them as usual by pressing **`Ctrl + b + ?`**.
40 |
41 | ## Conclusion.
42 |
43 | The topic of minimalism in professional circles can be confusing and is often associated with amateurs. However, there is a certain thrill in opening a simple text editor and with a blank slate customizing it. This allows for a more streamlined and efficient coding process without the need for unnecessary marketing crutches.
44 |
45 | This is my personal opinion on the matter. To explore the configuration, visit [github.com/paulbuzakov/tmuxconfig](https://github.com/paulbuzakov/tmuxconfig). If you find it helpful, please consider leaving a star or creating a pull request to suggest an add-on.
46 |
--------------------------------------------------------------------------------
/article/screen1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/paulbuzakov/tmuxconfig/741b7267ebf1705828aafb39805fdda1bee0a22d/article/screen1.png
--------------------------------------------------------------------------------
/binding.conf:
--------------------------------------------------------------------------------
1 | # Reload the current config of tmux.
2 | bind r source-file ~/.config/tmux/tmux.conf \; display "Reloaded!"
3 |
4 | # Kill the current window.
5 | bind Q kill-window
6 |
7 | # Kill the current pane.
8 | bind q kill-pane
9 |
10 | # Split the current window horizontally and vertically.
11 | unbind '"'
12 | unbind '%'
13 | bind '\' split-window -v
14 | bind '|' split-window -h
15 |
16 | # Enable Vim-like keys for switching panes.
17 | bind h select-pane -L
18 | bind j select-pane -D
19 | bind k select-pane -U
20 | bind l select-pane -R
21 |
22 | # Enable VIM-like keys for switching windows.
23 | bind H select-window -n
24 | bind L select-window -p
25 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/.editorconfig:
--------------------------------------------------------------------------------
1 | # EditorConfig helps developers define and maintain consistent
2 | # coding styles between different editors and IDEs
3 | # EditorConfig is awesome: https://EditorConfig.org
4 |
5 | root = true
6 |
7 | [*]
8 | charset = utf-8
9 | indent_size = 2
10 | indent_style = space
11 | end_of_line = lf
12 | insert_final_newline = true
13 | trim_trailing_whitespace = true
14 |
15 | # go
16 | [*.go]
17 | indent_style = tab
18 | indent_size = 4
19 |
20 | # python
21 | [*.{ini,py,py.tpl,rst}]
22 | indent_size = 4
23 |
24 | # rust
25 | [*.rs]
26 | indent_size = 4
27 |
28 | # documentation, utils
29 | [*.{md,mdx,diff}]
30 | trim_trailing_whitespace = false
31 |
32 | # windows shell scripts
33 | [*.{cmd,bat,ps1}]
34 | end_of_line = crlf
35 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/.gitignore:
--------------------------------------------------------------------------------
1 | custom
2 | !custom/README.md
3 | !custom/example.sh
4 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/.markdownlint.jsonc:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://raw.githubusercontent.com/DavidAnson/markdownlint/v0.35.0/schema/markdownlint-config-schema.json",
3 | "line-length": {
4 | "code_block_line_length": 120,
5 | "tables": false
6 | },
7 | "no-inline-html": {
8 | "allowed_elements": ["details", "summary", "img", "p", "a", "h3"]
9 | },
10 | "first-line-heading": false,
11 | "no-alt-text": false,
12 | "code-block-style": {
13 | "style": "consistent"
14 | }
15 | }
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/.shellcheckrc:
--------------------------------------------------------------------------------
1 | shell=bash
2 |
3 | # TODO: Find a way to declare color variables
4 | disable=SC2154
5 |
6 | external-sources=true
7 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Changelog
2 |
3 | ## [2.1.2](https://github.com/catppuccin/tmux/compare/v2.1.1...v2.1.2) (2024-12-08)
4 |
5 |
6 | ### Fixed
7 |
8 | * improve uptime status sed script to report correct units for few uptime scenarios ([#437](https://github.com/catppuccin/tmux/issues/437)) ([31fc2bf](https://github.com/catppuccin/tmux/commit/31fc2bfb1123681dc06da613b944b85f81e4babd))
9 | * use current window separators for the current window format ([#443](https://github.com/catppuccin/tmux/issues/443)) ([2a6c45b](https://github.com/catppuccin/tmux/commit/2a6c45b7c0da1594de1105d6cef15e3e68981113))
10 |
11 | ## [2.1.1](https://github.com/catppuccin/tmux/compare/v2.1.0...v2.1.1) (2024-11-17)
12 |
13 |
14 | ### Fixed
15 |
16 | * escape the TPM environment variable in the kube status line module ([#434](https://github.com/catppuccin/tmux/issues/434)) ([eb78ade](https://github.com/catppuccin/tmux/commit/eb78ade9dc1f6cd8ba654572f51ddcae3c6e7fd7))
17 | * specify the color for right separator of the status modules to be the same as text bg color ([#429](https://github.com/catppuccin/tmux/issues/429)) ([0e66dee](https://github.com/catppuccin/tmux/commit/0e66dee11ee396824668d4db863f1873e9e9243f))
18 |
19 |
20 | ### Documentation
21 |
22 | * add possible values for window_flags ([#417](https://github.com/catppuccin/tmux/issues/417)) ([c8a2d1a](https://github.com/catppuccin/tmux/commit/c8a2d1ae9649aa904960bef1516ea2ff9a3e6ad0))
23 | * **custom-status:** fix typo `catpuccin` -> `catppuccin` ([#424](https://github.com/catppuccin/tmux/issues/424)) ([aaf9120](https://github.com/catppuccin/tmux/commit/aaf9120f769a34e5491b3ee7f885c8c347f2f663))
24 |
25 | ## [2.1.0](https://github.com/catppuccin/tmux/compare/v2.0.0...v2.1.0) (2024-10-25)
26 |
27 |
28 | ### Added
29 |
30 | * add an option to format the window number with `[@catppuccin](https://github.com/catppuccin)_window_number` and `[@catppuccin](https://github.com/catppuccin)_window_current_number` ([c749885](https://github.com/catppuccin/tmux/commit/c74988511a462bdf07c5fc9ce88157b93a4ed185))
31 |
32 |
33 | ### Fixed
34 |
35 | * allow for dynamic colors in status modules ([#411](https://github.com/catppuccin/tmux/issues/411)), fixes issue [#407](https://github.com/catppuccin/tmux/issues/407) ([5e273e4](https://github.com/catppuccin/tmux/commit/5e273e41dd3188a1a0e795b120623c95de491445))
36 | * session status icon bg color change by client_prefix ([#394](https://github.com/catppuccin/tmux/issues/394)) ([8855667](https://github.com/catppuccin/tmux/commit/885566714315915547516de5c2f1b660f8e524c2))
37 |
38 |
39 | ### Documentation
40 |
41 | * **README:** add [@kjnsn](https://github.com/kjnsn) to "Thanks to" section ([#398](https://github.com/catppuccin/tmux/issues/398)) ([c3fab98](https://github.com/catppuccin/tmux/commit/c3fab98ab4248a2a78c8193ad48f0991b7bfa1e3))
42 |
43 | ## [2.0.0](https://github.com/catppuccin/tmux/compare/v1.0.3...v2.0.0) (2024-10-21)
44 |
45 |
46 | ### ⚠ BREAKING CHANGES
47 |
48 | * rebalance the colors used, and follow the styleguide
49 | * change how windows are styled
50 | * change how status modules are styled
51 | * rebalance colors, adhere to style guide & overhaul docs ([#372](https://github.com/catppuccin/tmux/issues/372))
52 |
53 | ### Features
54 |
55 | * change how status modules are styled ([79284da](https://github.com/catppuccin/tmux/commit/79284da665bf5d39d304e23df4165c8ac37f9b7a))
56 | * rebalance colors, adhere to style guide & overhaul docs ([#372](https://github.com/catppuccin/tmux/issues/372)) ([79284da](https://github.com/catppuccin/tmux/commit/79284da665bf5d39d304e23df4165c8ac37f9b7a))
57 | * rebalance the colors used, and follow the styleguide ([79284da](https://github.com/catppuccin/tmux/commit/79284da665bf5d39d304e23df4165c8ac37f9b7a))
58 | * rebalance the status module colors for cpu and battery ([79284da](https://github.com/catppuccin/tmux/commit/79284da665bf5d39d304e23df4165c8ac37f9b7a))
59 | * replace `_ctp_status_bg` with unified `_ctp_module_bg_color` in module configuration ([a4d4ad0](https://github.com/catppuccin/tmux/commit/a4d4ad09cc8b5c9338cbd4510450d0ae997a7710))
60 |
61 |
62 | ### Bug Fixes
63 |
64 | * **tests:** add tests for window styling ([79284da](https://github.com/catppuccin/tmux/commit/79284da665bf5d39d304e23df4165c8ac37f9b7a))
65 | * use ubuntu-24.04 in ci ([#388](https://github.com/catppuccin/tmux/issues/388)) ([3b0e0a6](https://github.com/catppuccin/tmux/commit/3b0e0a6f0741bf09149f23620516decd7b5f5ba5))
66 |
67 |
68 | ### Code Refactoring
69 |
70 | * change how windows are styled ([79284da](https://github.com/catppuccin/tmux/commit/79284da665bf5d39d304e23df4165c8ac37f9b7a))
71 |
72 | ## [1.0.3](https://github.com/catppuccin/tmux/compare/v1.0.2...v1.0.3) (2024-10-16)
73 |
74 |
75 | ### Bug Fixes
76 |
77 | * change the default status line background to mantle ([#377](https://github.com/catppuccin/tmux/issues/377)) ([47dbe81](https://github.com/catppuccin/tmux/commit/47dbe818e3ad7a008ccbd3e5d69a29a4509f7d07))
78 |
79 | ## [1.0.2](https://github.com/catppuccin/tmux/compare/v1.0.1...v1.0.2) (2024-10-12)
80 |
81 |
82 | ### Bug Fixes
83 |
84 | * **ci:** update tmux in test workflow ([#370](https://github.com/catppuccin/tmux/issues/370)) ([02debd3](https://github.com/catppuccin/tmux/commit/02debd396802af9fe4b41601739e48ef38217533))
85 | * **status:** use a literal string for battery_icon so it can be replaced by the battery plugin ([#365](https://github.com/catppuccin/tmux/issues/365)) ([06fff2f](https://github.com/catppuccin/tmux/commit/06fff2f40ec4a5cd2c9e064bc7fde22130ecd4bb)), closes [#342](https://github.com/catppuccin/tmux/issues/342)
86 | * typo in readme config example ([#362](https://github.com/catppuccin/tmux/issues/362)) ([41ee0b8](https://github.com/catppuccin/tmux/commit/41ee0b89acb3f4afe531209558d6b8e4d7d4ae1a))
87 | * **window:** middle separator colors ([#369](https://github.com/catppuccin/tmux/issues/369)) ([c59df83](https://github.com/catppuccin/tmux/commit/c59df83d68e64feb8d015c2eb3f8b90febc95a53))
88 |
89 | ## [1.0.1](https://github.com/catppuccin/tmux/compare/v1.0.0...v1.0.1) (2024-10-05)
90 |
91 |
92 | ### Bug Fixes
93 |
94 | * **readme:** fix the example configurations ([#343](https://github.com/catppuccin/tmux/issues/343)) ([06183b3](https://github.com/catppuccin/tmux/commit/06183b31216b4ed917760b3d59565e242eee6a64))
95 | * **readme:** fix the version number, and fix escaping in the custom status line module docs ([#357](https://github.com/catppuccin/tmux/issues/357)) ([db466f8](https://github.com/catppuccin/tmux/commit/db466f8c2dbcfdd84e501ee8274bdfdcf049d65d))
96 |
97 | ## [1.0.0](https://github.com/catppuccin/tmux/compare/v0.4.0...v1.0.0) (2024-10-02)
98 |
99 |
100 | ### Bug Fixes
101 |
102 | * **readme:** remove -F when setting the status line ([#333](https://github.com/catppuccin/tmux/issues/333)) ([b38421f](https://github.com/catppuccin/tmux/commit/b38421fa15d8dfafecaf6f438115cfe3c1259bf0))
103 |
104 | ## [0.4.0](https://github.com/catppuccin/tmux/compare/v0.3.0...v0.4.0) (2024-10-01)
105 |
106 |
107 | ### ⚠ BREAKING CHANGES
108 |
109 | * rewrite to use tmux native rather than bash ([#328](https://github.com/catppuccin/tmux/issues/328))
110 |
111 | ### Bug Fixes
112 |
113 | * **readme:** update the readme to include upgrade instructions ([1bcad05](https://github.com/catppuccin/tmux/commit/1bcad05f206fb4bb9706403da24b97d2cdb64bad))
114 | * **window:** ensure the window formats are set correctly ([#331](https://github.com/catppuccin/tmux/issues/331)) ([1bcad05](https://github.com/catppuccin/tmux/commit/1bcad05f206fb4bb9706403da24b97d2cdb64bad))
115 |
116 |
117 | ### Code Refactoring
118 |
119 | * rewrite to use tmux native rather than bash ([#328](https://github.com/catppuccin/tmux/issues/328)) ([87fa4a0](https://github.com/catppuccin/tmux/commit/87fa4a08c5a7fdbef3130f05a8b12f0ca26d4a46))
120 |
121 | ## [0.3.0](https://github.com/catppuccin/tmux/compare/v0.2.0...v0.3.0) (2024-09-17)
122 |
123 |
124 | ### Features
125 |
126 | * **status:** Add support for status module middle separators ([#310](https://github.com/catppuccin/tmux/issues/310)) ([1612a23](https://github.com/catppuccin/tmux/commit/1612a23174a6771ac466312eb156f83b8b89d907))
127 | * **status:** window specific separator config ([#198](https://github.com/catppuccin/tmux/issues/198)) ([8276c5a](https://github.com/catppuccin/tmux/commit/8276c5a5e33dbbbae3d370db2f6129e20b402f8a))
128 |
129 |
130 | ### Bug Fixes
131 |
132 | * **kube:** escape env var ([c31b9b2](https://github.com/catppuccin/tmux/commit/c31b9b2c6c7c50abbebd02b80c4fd32b2782a011))
133 |
134 | ## [0.2.0](https://github.com/catppuccin/tmux/compare/v0.1.0...v0.2.0) (2024-08-23)
135 |
136 |
137 | ### Features
138 |
139 | * error/warning messages on first load ([#278](https://github.com/catppuccin/tmux/issues/278)) ([a2dda02](https://github.com/catppuccin/tmux/commit/a2dda02b43194aec5deddf2890c28c76b4c11ed4))
140 | * warn users of whitespace in module lists ([#266](https://github.com/catppuccin/tmux/issues/266)) ([362a306](https://github.com/catppuccin/tmux/commit/362a306db71794f04d0995fc058bcaa094d1af70))
141 |
142 |
143 | ### Bug Fixes
144 |
145 | * add missing batch options `catppuccin_pane{,_active}_border_style` ([3ffbc37](https://github.com/catppuccin/tmux/commit/3ffbc3700b4c1c3e2c4d015c5a51ccef555dabaf))
146 | * add missing batch options catppuccin_pane{,_active}_border_style ([3ffbc37](https://github.com/catppuccin/tmux/commit/3ffbc3700b4c1c3e2c4d015c5a51ccef555dabaf))
147 | * escaping in options ([#298](https://github.com/catppuccin/tmux/issues/298)) ([9b57c20](https://github.com/catppuccin/tmux/commit/9b57c2002081fff8af16b878f1369d46788c0409))
148 | * **pomodoro_plus:** option names ([#273](https://github.com/catppuccin/tmux/issues/273)) ([51dde6e](https://github.com/catppuccin/tmux/commit/51dde6e8d4d3d8da97d915b01594a08aa4ac0cca))
149 | * warning `[@catppuccin](https://github.com/catppuccin)_flavour` ([#296](https://github.com/catppuccin/tmux/issues/296)) ([a71f3c0](https://github.com/catppuccin/tmux/commit/a71f3c039bed8a7c49fc390a50befec5db2c4af9))
150 | * warning `[@catppuccin](https://github.com/catppuccin)_window_status` ([9ee1695](https://github.com/catppuccin/tmux/commit/9ee1695d757c16e2f236858b8d3f88be9fb666fa))
151 |
152 |
153 | ### Performance Improvements
154 |
155 | * batch tmux show ([#288](https://github.com/catppuccin/tmux/issues/288)) ([99013fa](https://github.com/catppuccin/tmux/commit/99013fafe6a98416079b3b84751f2eb540e17c79)), closes [#281](https://github.com/catppuccin/tmux/issues/281)
156 | * batch tmux show-options ([3c6f6f2](https://github.com/catppuccin/tmux/commit/3c6f6f282b3bb17554dc2b4b80760b6507acfd65))
157 |
158 | ## [0.1.0](https://github.com/catppuccin/tmux/compare/v0.0.1...v0.1.0) (2024-08-04)
159 |
160 |
161 | ### Features
162 |
163 | * releases ([#260](https://github.com/catppuccin/tmux/issues/260)) ([5fbacdf](https://github.com/catppuccin/tmux/commit/5fbacdf3559cf4496eef02aead087b3bb715e570))
164 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing
2 |
3 | ## Design
4 |
5 | To understand our mindset in developing this plugin and how to ensure your
6 | changes align with that mindset, check out the "[Design Philosophy](./docs/explanation/design.md)."
7 |
8 | ## Commit messages
9 |
10 | This repository uses [Conventional Commits](https://conventionalcommits.org).
11 | Commit headers should be lowercase. Most commits should include a body that briefly
12 | describes the motivation and content of the commit.
13 |
14 | ### Commit types
15 |
16 | - `fix`: A bug fix that doesn't modify the public API
17 | - `feat`: A code change that adds functionality
18 | - `change`: A modification to the public API
19 | - `deprecate`: Something in the public API has been deprecated
20 | - `remove`: A part of the public API has been removed
21 | - `refactor`: A code change that doesn't change behavior
22 | - `style`: A style fix or change
23 | - `docs`: Any change to documentation
24 | - `revert`: A revert commit. The message should describe the reasoning and the
25 | commit should include the `Refs:` footer with the short hashes of the commits
26 | being reverted.
27 | - `chore`: catch-all type
28 |
29 | ### Breaking changes
30 |
31 | All breaking changes should be documented in the commit footer in the format
32 | described by Conventional Commits. Use the `!` syntax in order to distinguish
33 | breaking commits in the log, but include the footer to provide a better description
34 | for the changelog generator.
35 |
36 | ```text
37 | feat(bar)!: foo the bars
38 |
39 | BREAKING CHANGE: bars are now foo'ed
40 | ```
41 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/assets/config1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/paulbuzakov/tmuxconfig/741b7267ebf1705828aafb39805fdda1bee0a22d/plugins/catppuccin/tmux/assets/config1.png
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/assets/config2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/paulbuzakov/tmuxconfig/741b7267ebf1705828aafb39805fdda1bee0a22d/plugins/catppuccin/tmux/assets/config2.png
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/assets/config3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/paulbuzakov/tmuxconfig/741b7267ebf1705828aafb39805fdda1bee0a22d/plugins/catppuccin/tmux/assets/config3.png
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/assets/demos/basic.conf:
--------------------------------------------------------------------------------
1 | set -g @catppuccin_flavor 'frappe'
2 |
3 | run "#{d:current_file}/../../catppuccin.tmux"
4 |
5 | # Make the status line more pleasant.
6 | set -g status-left ""
7 | set -g status-right '#[fg=#{@thm_crust},bg=#{@thm_teal}] session: #S '
8 |
9 | # Ensure that everything on the right side of the status line
10 | # is included.
11 | set -g status-right-length 100
12 |
13 | set -g default-shell '/opt/homebrew/bin/fish'
14 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/assets/demos/basic.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/paulbuzakov/tmuxconfig/741b7267ebf1705828aafb39805fdda1bee0a22d/plugins/catppuccin/tmux/assets/demos/basic.gif
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/assets/demos/basic.tape:
--------------------------------------------------------------------------------
1 | Output assets/demos/basic.gif
2 |
3 | Require echo
4 | Require tmux
5 |
6 | Set Shell "bash"
7 | Set FontSize 30
8 | Set FontFamily "SFMono Nerd Font"
9 | Set Width 1200
10 | Set Height 600
11 |
12 | Type "tmux -f assets/demos/basic.conf" Sleep 500ms Enter
13 |
14 | Sleep 3s
15 |
16 | Ctrl+b
17 | Type "c"
18 |
19 | Sleep 5s
20 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/assets/example-config.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/paulbuzakov/tmuxconfig/741b7267ebf1705828aafb39805fdda1bee0a22d/plugins/catppuccin/tmux/assets/example-config.webp
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/assets/frappe.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/paulbuzakov/tmuxconfig/741b7267ebf1705828aafb39805fdda1bee0a22d/plugins/catppuccin/tmux/assets/frappe.webp
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/assets/generate_preview.fish:
--------------------------------------------------------------------------------
1 | set -l flavors latte frappe macchiato mocha
2 |
3 | for flavor in $flavors
4 | magick $flavor.webp -crop '1320x50+0+464' +repage $flavor-crop.webp
5 | end
6 |
7 | catwalk {latte,frappe,macchiato,mocha}-crop.webp --output preview.webp --layout column
8 |
9 | for flavor in $flavors
10 | rm $flavor-crop.webp
11 | end
12 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/assets/latte.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/paulbuzakov/tmuxconfig/741b7267ebf1705828aafb39805fdda1bee0a22d/plugins/catppuccin/tmux/assets/latte.webp
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/assets/macchiato.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/paulbuzakov/tmuxconfig/741b7267ebf1705828aafb39805fdda1bee0a22d/plugins/catppuccin/tmux/assets/macchiato.webp
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/assets/mocha.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/paulbuzakov/tmuxconfig/741b7267ebf1705828aafb39805fdda1bee0a22d/plugins/catppuccin/tmux/assets/mocha.webp
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/assets/preview.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/paulbuzakov/tmuxconfig/741b7267ebf1705828aafb39805fdda1bee0a22d/plugins/catppuccin/tmux/assets/preview.webp
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/assets/ram-example.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/paulbuzakov/tmuxconfig/741b7267ebf1705828aafb39805fdda1bee0a22d/plugins/catppuccin/tmux/assets/ram-example.webp
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/assets/structure.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/assets/window-basic.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/paulbuzakov/tmuxconfig/741b7267ebf1705828aafb39805fdda1bee0a22d/plugins/catppuccin/tmux/assets/window-basic.webp
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/assets/window-none.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/paulbuzakov/tmuxconfig/741b7267ebf1705828aafb39805fdda1bee0a22d/plugins/catppuccin/tmux/assets/window-none.webp
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/assets/window-rounded.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/paulbuzakov/tmuxconfig/741b7267ebf1705828aafb39805fdda1bee0a22d/plugins/catppuccin/tmux/assets/window-rounded.webp
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/assets/window-slanted.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/paulbuzakov/tmuxconfig/741b7267ebf1705828aafb39805fdda1bee0a22d/plugins/catppuccin/tmux/assets/window-slanted.webp
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/catppuccin.tmux:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | # Set path of script
4 | PLUGIN_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
5 |
6 | tmux source "${PLUGIN_DIR}/catppuccin_options_tmux.conf"
7 | tmux source "${PLUGIN_DIR}/catppuccin_tmux.conf"
8 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/catppuccin_options_tmux.conf:
--------------------------------------------------------------------------------
1 | # All options and their defaults.
2 | #
3 | # This is executed separately to the main configuration
4 | # so that options are set before parsing the rest of the config.
5 |
6 | set -ogq @catppuccin_flavor "mocha"
7 |
8 | set -ogq @catppuccin_status_background "default"
9 |
10 | # Menu styling options
11 | set -ogq @catppuccin_menu_selected_style "fg=#{@thm_fg},bold,bg=#{@thm_overlay_0}"
12 |
13 | # Pane styling options
14 | set -ogq @catppuccin_pane_status_enabled "no" # set to "yes" to enable
15 | set -ogq @catppuccin_pane_border_status "off" # set to "yes" to enable
16 | set -ogq @catppuccin_pane_border_style "fg=#{@thm_overlay_0}"
17 | set -ogq @catppuccin_pane_active_border_style "##{?pane_in_mode,fg=#{@thm_lavender},##{?pane_synchronized,fg=#{@thm_mauve},fg=#{@thm_lavender}}}"
18 | set -ogq @catppuccin_pane_left_separator "█"
19 | set -ogq @catppuccin_pane_middle_separator "█"
20 | set -ogq @catppuccin_pane_right_separator "█"
21 | set -ogq @catppuccin_pane_color "#{@thm_green}"
22 | set -ogq @catppuccin_pane_background_color "#{@thm_surface_0}"
23 | set -ogq @catppuccin_pane_default_text "##{b:pane_current_path}"
24 | set -ogq @catppuccin_pane_default_fill "number"
25 | set -ogq @catppuccin_pane_number_position "left" # right, left
26 |
27 | # NOTE: Changes to make the option names more intuitive and more closely follow
28 | # the tmux naming conventions.
29 | # @catppuccin_window_current_background -> @catppuccin_window_current_number_color
30 | # @catppuccin_window_current_color -> @catppuccin_window_current_text_color
31 | # @catppuccin_window_default_background -> @catppuccin_window_number_color
32 | # @catppuccin_window_default_color -> @catppuccin_window_text_color
33 | # @catppuccin_window_status -> @catppuccin_window_flags
34 | #
35 | # Removed:
36 | # @catppuccin_window_default_fill, @catppuccin_window_current_fill
37 | # Just set the number and text colors.
38 |
39 | # Window options
40 | set -ogq @catppuccin_window_status_style "basic" # basic, rounded, slanted, custom, or none
41 | set -ogq @catppuccin_window_text_color "#{@thm_surface_0}"
42 | set -ogq @catppuccin_window_number_color "#{@thm_overlay_2}"
43 | set -ogq @catppuccin_window_text " #T"
44 | set -ogq @catppuccin_window_number "#I"
45 | set -ogq @catppuccin_window_current_text_color "#{@thm_surface_1}"
46 | set -ogq @catppuccin_window_current_number_color "#{@thm_mauve}"
47 | set -ogq @catppuccin_window_current_text " #T"
48 | set -ogq @catppuccin_window_current_number "#I"
49 | set -ogq @catppuccin_window_number_position "left"
50 |
51 | # Window flags
52 | set -ogq @catppuccin_window_flags "none"
53 | set -ogq @catppuccin_window_flags_icon_last " " # -
54 | set -ogq @catppuccin_window_flags_icon_current " " # *
55 | set -ogq @catppuccin_window_flags_icon_zoom " " # Z
56 | set -ogq @catppuccin_window_flags_icon_mark " " # M
57 | set -ogq @catppuccin_window_flags_icon_silent " " # ~
58 | set -ogq @catppuccin_window_flags_icon_activity " " # #
59 | set -ogq @catppuccin_window_flags_icon_bell " " # !
60 | # Matches icon order when using `#F` (`#!~[*-]MZ`)
61 | set -ogq @catppuccin_window_flags_icon_format "##{?window_activity_flag,#{E:@catppuccin_window_flags_icon_activity},}##{?window_bell_flag,#{E:@catppuccin_window_flags_icon_bell},}##{?window_silence_flag,#{E:@catppuccin_window_flags_icon_silent},}##{?window_active,#{E:@catppuccin_window_flags_icon_current},}##{?window_last_flag,#{E:@catppuccin_window_flags_icon_last},}##{?window_marked_flag,#{E:@catppuccin_window_flags_icon_mark},}##{?window_zoomed_flag,#{E:@catppuccin_window_flags_icon_zoom},}"
62 |
63 | # Status line options
64 | set -ogq @catppuccin_status_left_separator ""
65 | set -ogq @catppuccin_status_middle_separator ""
66 | set -ogq @catppuccin_status_right_separator " "
67 | set -ogq @catppuccin_status_connect_separator "yes" # yes, no
68 |
69 | # Maintain backwards compatibility. Use @catppuccin_status_module_bg_color if it is set.
70 | set -ogq @catppuccin_status_module_text_bg "#{?@catppuccin_status_module_bg_color,#{E:@catppuccin_status_module_bg_color},#{@thm_surface_0}}"
71 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/catppuccin_tmux.conf:
--------------------------------------------------------------------------------
1 | source -F "#{d:current_file}/themes/catppuccin_#{@catppuccin_flavor}_tmux.conf"
2 |
3 | %if "#{==:#{@catppuccin_status_background},default}"
4 | set -gF @_ctp_status_bg "#{@thm_mantle}"
5 | set -gF status-style "bg=#{@_ctp_status_bg},fg=#{@thm_fg}"
6 |
7 | %hidden CTP_MESSAGE_BACKGROUND="#{@thm_overlay_0}"
8 | %elif "#{==:#{@catppuccin_status_background},none}"
9 | set -g status-style "default"
10 | set -g @_ctp_status_bg "none"
11 |
12 | %hidden CTP_MESSAGE_BACKGROUND="default"
13 | %else
14 | # Treat @catppuccin_status_background as a format string.
15 | set -gF status-style "bg=#{E:@catppuccin_status_background},fg=#{@thm_fg}"
16 | set -gF @_ctp_status_bg "#{E:@catppuccin_status_background}"
17 |
18 | %hidden CTP_MESSAGE_BACKGROUND="#{E:@catppuccin_status_background}"
19 | %endif
20 |
21 | source -F "#{d:current_file}/status/application.conf"
22 | source -F "#{d:current_file}/status/battery.conf"
23 | source -F "#{d:current_file}/status/clima.conf"
24 | source -F "#{d:current_file}/status/cpu.conf"
25 | source -F "#{d:current_file}/status/date_time.conf"
26 | source -F "#{d:current_file}/status/directory.conf"
27 | source -F "#{d:current_file}/status/gitmux.conf"
28 | source -F "#{d:current_file}/status/host.conf"
29 | source -F "#{d:current_file}/status/kube.conf"
30 | source -F "#{d:current_file}/status/load.conf"
31 | source -F "#{d:current_file}/status/pomodoro_plus.conf"
32 | source -F "#{d:current_file}/status/session.conf"
33 | source -F "#{d:current_file}/status/uptime.conf"
34 | source -F "#{d:current_file}/status/user.conf"
35 | source -F "#{d:current_file}/status/weather.conf"
36 |
37 | # messages
38 | set -gF message-style "fg=#{@thm_teal},bg=$CTP_MESSAGE_BACKGROUND,align=centre"
39 | set -gF message-command-style "fg=#{@thm_teal},bg=$CTP_MESSAGE_BACKGROUND,align=centre"
40 |
41 | # menu
42 | %if "#{>=:#{version},3.4}"
43 | set -gF menu-selected-style "#{E:@catppuccin_menu_selected_style}"
44 | %endif
45 |
46 | # panes
47 | set -wgF pane-active-border-style "#{E:@catppuccin_pane_active_border_style}"
48 | set -wgF pane-border-style "#{E:@catppuccin_pane_border_style}"
49 |
50 | %if "#{==:#{@catppuccin_pane_status_enabled},yes}"
51 | # "internal" variables are kept as @_ctp_p_.*
52 | # and then unset at the end.
53 | set -gq @_ctp_p_left "" # the content on the left, usually a separator
54 | set -gq @_ctp_p_middle ""
55 | set -gq @_ctp_p_right ""
56 | set -gq @_ctp_p_number ""
57 | set -gq @_ctp_p_text ""
58 |
59 | %if "#{==:#{@catppuccin_pane_default_fill},none}"
60 | set -g @_ctp_p_left \
61 | "#[fg=#{@thm_surface_0},bg=default]#{@catppuccin_pane_left_separator}"
62 | set -g @_ctp_p_middle \
63 | "#[fg=#{@thm_fg},bg=#{@thm_surface_0}]#{@catppuccin_pane_middle_separator}"
64 | set -g @_ctp_p_right \
65 | "#[fg=#{@thm_surface_0},bg=default]#{@catppuccin_pane_right_separator}"
66 |
67 | set -g @_ctp_p_number \
68 | "#[fg=#{@thm_fg},bg=#{@thm_surface_0}]##{pane_index}"
69 | set -g @_ctp_p_text \
70 | "#[fg=#{@thm_fg},bg=#{@thm_surface_0}]#{E:@catppuccin_pane_default_text}"
71 |
72 | %elif "#{==:#{@catppuccin_pane_default_fill},all}"
73 |
74 | set -g @_ctp_p_left \
75 | "#[fg=#{E:@catppuccin_pane_color},bg=default]#{@catppuccin_pane_left_separator}"
76 | set -g @_ctp_p_middle \
77 | "#[fg=#{E:@catppuccin_pane_color},bg=#{E:@catppuccin_pane_background_color}]#{@catppuccin_pane_middle_separator}"
78 | set -g @_ctp_p_right \
79 | "#[fg=#{E:@catppuccin_pane_color},bg=default]#{@catppuccin_pane_right_separator}"
80 |
81 | set -g @_ctp_p_number \
82 | "#[fg=#{E:@catppuccin_pane_background_color},bg=#{E:@catppuccin_pane_color}]##{pane_index}"
83 | set -g @_ctp_p_text \
84 | "#[fg=#{E:@catppuccin_pane_background_color},bg=#{E:@catppuccin_pane_color}]#{E:@catppuccin_pane_default_text}"
85 |
86 | %elif "#{==:#{@catppuccin_pane_default_fill},number}"
87 |
88 | %if "#{==:#{@catppuccin_pane_number_position},left}"
89 | set -g @_ctp_p_left \
90 | "#[fg=#{E:@catppuccin_pane_color},bg=default]#{@catppuccin_pane_left_separator}"
91 | set -g @_ctp_p_right \
92 | "#[fg=#{E:@catppuccin_pane_background_color},bg=default]#{@catppuccin_pane_right_separator}"
93 | %else
94 | set -g @_ctp_p_left \
95 | "#[fg=#{E:@catppuccin_pane_background_color},bg=default]#{@catppuccin_pane_left_separator}"
96 | set -g @_ctp_p_right \
97 | "#[fg=#{E:@catppuccin_pane_color},bg=default]#{@catppuccin_pane_right_separator}"
98 | %endif
99 |
100 | set -g @_ctp_p_middle \
101 | "#[fg=#{E:@catppuccin_pane_color},bg=#{E:@catppuccin_pane_background_color}]#{@catppuccin_pane_middle_separator}"
102 |
103 | set -g @_ctp_p_number \
104 | "#[fg=#{E:@catppuccin_pane_background_color},bg=#{E:@catppuccin_pane_color}]##{pane_index}"
105 | set -g @_ctp_p_text \
106 | "#[fg=#{E:@catppuccin_pane_color},bg=#{E:@catppuccin_pane_background_color}]#{E:@catppuccin_pane_default_text}"
107 |
108 | %endif
109 |
110 | %if "#{==:#{@catppuccin_pane_number_position},left}"
111 | set -wgF pane-border-format \
112 | "#{E:@_ctp_p_left}#{E:@_ctp_p_number}#{E:@_ctp_p_middle} #{E:@_ctp_p_text}#{E:@_ctp_p_right}"
113 | %else
114 | set -wgF pane-border-format \
115 | "#{E:@_ctp_p_left}#{E:@_ctp_p_text} #{E:@_ctp_p_middle}#{E:@_ctp_p_number}#{E:@_ctp_p_right}"
116 | %endif
117 |
118 | set -ug @_ctp_p_left
119 | set -ug @_ctp_p_middle
120 | set -ug @_ctp_p_right
121 | set -ug @_ctp_p_number
122 | set -ug @_ctp_p_text
123 | %endif
124 |
125 | # popups
126 | %if "#{>=:#{version},3.4}"
127 | set -gF popup-style "bg=#{@thm_bg},fg=#{@thm_fg}"
128 | set -gF popup-border-style "fg=#{@thm_surface_1}"
129 | %endif
130 |
131 | %if "#{==:#{@catppuccin_window_status_style},basic}"
132 |
133 | set -gq @catppuccin_window_left_separator " "
134 | set -gq @catppuccin_window_middle_separator " "
135 | set -gq @catppuccin_window_right_separator " "
136 |
137 | %elif "#{==:#{@catppuccin_window_status_style},rounded}"
138 |
139 | set -gq @catppuccin_window_left_separator "#[fg=#{@_ctp_status_bg},reverse]#[none]"
140 | set -gq @catppuccin_window_middle_separator " "
141 | set -gq @catppuccin_window_right_separator "#[fg=#{@_ctp_status_bg},reverse]#[none]"
142 |
143 | %elif "#{==:#{@catppuccin_window_status_style},slanted}"
144 |
145 | set -gq @catppuccin_window_left_separator "#[fg=#{@_ctp_status_bg},reverse]#[none]"
146 |
147 | %if "#{==:#{@catppuccin_window_number_position},left}"
148 | set -gq @catppuccin_window_middle_separator "#[fg=#{@catppuccin_window_number_color},bg=#{@catppuccin_window_text_color}]"
149 | set -gq @catppuccin_window_current_middle_separator \
150 | "#[fg=#{@catppuccin_window_current_number_color},bg=#{@catppuccin_window_current_text_color}]"
151 | %else
152 | set -gq @catppuccin_window_middle_separator " #[fg=#{@catppuccin_window_number_color},bg=#{@catppuccin_window_text_color}]"
153 | set -gq @catppuccin_window_current_middle_separator \
154 | " #[fg=#{@catppuccin_window_current_number_color},bg=#{@catppuccin_window_current_text_color}]"
155 | %endif
156 |
157 | set -gq @catppuccin_window_right_separator "#[fg=#{@_ctp_status_bg},reverse]█#[none]"
158 |
159 | %endif
160 |
161 | set -ogqF @catppuccin_window_current_left_separator "#{@catppuccin_window_left_separator}"
162 | set -ogqF @catppuccin_window_current_middle_separator "#{@catppuccin_window_middle_separator}"
163 | set -ogqF @catppuccin_window_current_right_separator "#{@catppuccin_window_right_separator}"
164 |
165 | # window status
166 | %if "#{!=:#{@catppuccin_window_status_style},none}"
167 | set -gF window-status-activity-style "bg=#{@thm_lavender},fg=#{@thm_crust}"
168 | set -gF window-status-bell-style "bg=#{@thm_yellow},fg=#{@thm_crust}"
169 |
170 | %if "#{==:#{@catppuccin_window_flags},icon}"
171 | set -gqF @_ctp_w_flags "#{E:@catppuccin_window_flags_icon_format} "
172 | %elif "#{==:#{@catppuccin_window_flags},text}"
173 | set -gq @_ctp_w_flags "#F"
174 | %else
175 | set -gq @_ctp_w_flags ""
176 | %endif
177 |
178 | set -g @_ctp_w_number_style "#[fg=#{@thm_crust},bg=#{@catppuccin_window_number_color}]"
179 | set -g @_ctp_w_text_style "#[fg=#{@thm_fg},bg=#{@catppuccin_window_text_color}]"
180 | %if "#{==:#{@catppuccin_window_number_position},left}"
181 | set -gF window-status-format \
182 | "#{E:@_ctp_w_number_style}#{E:@catppuccin_window_left_separator}#{@catppuccin_window_number}"
183 | set -agF window-status-format "#{E:@catppuccin_window_middle_separator}"
184 | set -agF window-status-format \
185 | "#{E:@_ctp_w_text_style}#{@catppuccin_window_text}#{@_ctp_w_flags}#{E:@catppuccin_window_right_separator}"
186 | %else
187 | set -gF window-status-format \
188 | "#{E:@_ctp_w_text_style}#{E:@catppuccin_window_left_separator}#{E:@_ctp_w_text_style}#{@catppuccin_window_text}#{@_ctp_w_flags}"
189 | set -agF window-status-format "#{E:@catppuccin_window_middle_separator}"
190 | set -agF window-status-format \
191 | "#{E:@_ctp_w_number_style} #{@catppuccin_window_number}#{E:@catppuccin_window_right_separator}"
192 | %endif
193 |
194 | # =======================================
195 | # And do the same for the current window.
196 | # =======================================
197 |
198 | set -g @_ctp_w_number_style "#[fg=#{@thm_crust},bg=#{@catppuccin_window_current_number_color}]"
199 | set -g @_ctp_w_text_style "#[fg=#{@thm_fg},bg=#{@catppuccin_window_current_text_color}]"
200 | %if "#{==:#{@catppuccin_window_number_position},left}"
201 | set -gF window-status-current-format \
202 | "#{E:@_ctp_w_number_style}#{E:@catppuccin_window_left_separator}#{@catppuccin_window_current_number}"
203 | set -agF window-status-current-format "#{E:@catppuccin_window_current_middle_separator}"
204 | set -agF window-status-current-format \
205 | "#{E:@_ctp_w_text_style}#{@catppuccin_window_current_text}#{@_ctp_w_flags}#{E:@catppuccin_window_current_right_separator}"
206 | %else
207 | set -gF window-status-current-format \
208 | "#{E:@_ctp_w_text_style}#{E:@catppuccin_window_left_separator}#{E:@_ctp_w_text_style}#{@catppuccin_window_current_text}#{@_ctp_w_flags}"
209 | set -agF window-status-current-format "#{E:@catppuccin_window_current_middle_separator}"
210 | set -agF window-status-current-format \
211 | "#{E:@_ctp_w_number_style} #{@catppuccin_window_current_number}#{E:@catppuccin_window_current_right_separator}"
212 | %endif
213 |
214 |
215 | # Cleanup (unset) all of the internal variables.
216 | set -ug @_ctp_w_number_style
217 | set -ug @_ctp_w_text_style
218 | set -ug @_ctp_w_flags
219 | %endif
220 |
221 | # Mode style. This is used for copy mode highlighting to style the current selection.
222 | set -gF mode-style "bg=#{@thm_surface_0},bold"
223 | set -gF clock-mode-colour "#{@thm_blue}"
224 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/docs/explanation/design.md:
--------------------------------------------------------------------------------
1 | ## Design Philosophy
2 |
3 | First and foremost, this is a color scheme. Making colors work
4 | well takes precedence over other kinds of functionality.
5 |
6 | ### History
7 |
8 | This plugin kept on growing essentially because no one was there to push back on
9 | changes that went against, for example, parts of the UNIX philosophy. This lead to
10 | a state where there were almost an infinite number of configuration options,
11 | and combining them in unique ways would almost certainly break something.
12 | Maintaining the options for everyone's setup was impossible, and fixing
13 | one bug would cause several others to appear. Eventually the addition
14 | of more and more things that didn't relate to colors, such as status line modules,
15 | took time away from getting the basics right.
16 |
17 | Moving forward, we will be trying to align with the philosophies listed below.
18 | This is in contrast to what the plugin has historically offered in terms of functionality.
19 |
20 | ### UNIX Philosphy
21 |
22 | 1. Write programs that do one thing and do it well.
23 | - Do colors, and do colors well. Other things like displaying the weather
24 | are not the responsibility of this plugin.
25 | 1. Write programs to work together.
26 | - The full palette is exposed as user options, allowing
27 | easy integration with any other kind of tmux configuration.
28 | 1. Write programs to handle text streams, because that is a universal interface.
29 | - TMUX is a text based program. Each of the palette options are strings
30 | in user options that can be piped into other programs and options.
31 |
32 | ### Configurability is the root of all evil
33 |
34 | Adopted from "[Fish Shell's design philophy](https://fishshell.com/docs/current/design.html)".
35 |
36 | Every configuration option in a program is a place where the program is too
37 | stupid to figure out for itself what the user really wants, and should be
38 | considered a failure of both the program and the programmer who implemented it.
39 |
40 | Rationale: Different configuration options are a nightmare to maintain, since
41 | the number of potential bugs caused by specific configuration combinations
42 | quickly becomes an issue. Configuration options often imply assumptions about
43 | the code which change when reimplementing the code, causing issues with
44 | backwards compatibility. But mostly, configuration options should be avoided
45 | since they simply should not exist, as the program should be smart enough to do
46 | what is best, or at least a good enough approximation of it.
47 |
48 | ### The law of orthogonality
49 |
50 | The set of options that do exist should have a small set of orthogonal features.
51 | Any situation where two options are related but not identical, one of them
52 | should be removed, and the other should be made powerful and general enough to
53 | handle all common use cases of either feature.
54 |
55 | Rationale: Related features make the configuration options larger, which makes
56 | it harder to use. It also increases the size of the source code, making the
57 | program harder to maintain and update.
58 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/docs/reference/configuration.md:
--------------------------------------------------------------------------------
1 | ## Configuration Reference
2 |
3 |
4 |
5 | This is a diagram of how the theme is split between its components.
6 |
7 | ### Top Level Options
8 |
9 | | Option | Effect |
10 | | -------------------- | ------------------------------------------------------------------------------ |
11 | | `@catppuccin_flavor` | Sets the catppuccin flavor, one of "latte", "frappe", "macchiato", or "mocha". |
12 |
13 | ### Status Line
14 |
15 | | Option | Effect |
16 | | ----------------------------- | --------------------------------------------- |
17 | | @catppuccin_status_background | Sets the background color of the status line. |
18 |
19 | - `default` will use the color from the selected theme
20 | - `none` will make the status bar transparent
21 | - use hex color codes for other colors or a theme color (`#{@thm_}`)
22 |
23 | ### Window
24 |
25 | The plugin comes with three window styles built in, these can be customized by
26 | setting the `@catppuccin_window_status_style` option. The default is `basic`.
27 |
28 | | Option | Effect | Preview |
29 | | --------- | ------------------------------------------------------------------------ | ------------------------------------------------------ |
30 | | `basic` | Simple styling with blocks. |  |
31 | | `rounded` | Each window is separated with rounded separators. |  |
32 | | `slanted` | Each window is separated with slanted separators. |  |
33 | | `custom` | Custom separators are used. This is required to override the separators! | |
34 | | `none` | Styling of the window status is completely disabled. |  |
35 |
36 | If you want to change the active color to something else (the default is mauve),
37 | use the following. For example to use lavender:
38 |
39 | ```bash
40 | set -g @catppuccin_window_current_number_color "#{@thm_lavender}"
41 | ```
42 |
43 |
44 |
45 | Customising the separators
46 |
47 | Add the following,
48 | setting whatever values you'd like for the separators:
49 |
50 | ```bash
51 | set -g @catppuccin_window_status_style "custom"
52 | set -g @catppuccin_window_left_separator ""
53 | set -g @catppuccin_window_middle_separator ""
54 | set -g @catppuccin_window_right_separator ""
55 | ```
56 |
57 |
58 |
59 | ### Menu
60 |
61 | **Set the menu selected style:**
62 |
63 | ```sh
64 | # Use a value compatible with the standard tmux `menu-selected-style`
65 | set -g @catppuccin_menu_selected_style "fg=#{@thm_surface_0},bg=#{@thm_yellow}"
66 | ```
67 |
68 | ### All options and their defaults
69 |
70 | ```bash
71 | # Menu styling options
72 | set -ogq @catppuccin_menu_selected_style "fg=#{@thm_fg},bold,bg=#{@thm_overlay_0}"
73 |
74 | # Pane styling options
75 | set -ogq @catppuccin_pane_status_enabled "no" # set to "yes" to enable
76 | set -ogq @catppuccin_pane_border_status "off" # set to "yes" to enable
77 | set -ogq @catppuccin_pane_border_style "fg=#{@thm_overlay_0}"
78 | set -ogq @catppuccin_pane_active_border_style "##{?pane_in_mode,fg=#{@thm_lavender},##{?pane_synchronized,fg=#{@thm_mauve},fg=#{@thm_lavender}}}"
79 | set -ogq @catppuccin_pane_left_separator "█"
80 | set -ogq @catppuccin_pane_middle_separator "█"
81 | set -ogq @catppuccin_pane_right_separator "█"
82 | set -ogq @catppuccin_pane_color "#{@thm_green}"
83 | set -ogq @catppuccin_pane_background_color "#{@thm_surface_0}"
84 | set -ogq @catppuccin_pane_default_text "##{b:pane_current_path}"
85 | set -ogq @catppuccin_pane_default_fill "number"
86 | set -ogq @catppuccin_pane_number_position "left" # right, left
87 |
88 | set -ogq @catppuccin_window_status_style "basic" # basic, rounded, slanted, custom, or none
89 | set -ogq @catppuccin_window_text_color "#{@thm_surface_0}"
90 | set -ogq @catppuccin_window_number_color "#{@thm_overlay_2}"
91 | set -ogq @catppuccin_window_text " #T"
92 | set -ogq @catppuccin_window_number "#I"
93 | set -ogq @catppuccin_window_current_text_color "#{@thm_surface_1}"
94 | set -ogq @catppuccin_window_current_number_color "#{@thm_mauve}"
95 | set -ogq @catppuccin_window_current_text " #T"
96 | set -ogq @catppuccin_window_current_number "#I"
97 | set -ogq @catppuccin_window_number_position "left"
98 | set -ogq @catppuccin_window_flags "none" # none, icon, or text
99 | set -ogq @catppuccin_window_flags_icon_last " " # -
100 | set -ogq @catppuccin_window_flags_icon_current " " # *
101 | set -ogq @catppuccin_window_flags_icon_zoom " " # Z
102 | set -ogq @catppuccin_window_flags_icon_mark " " # M
103 | set -ogq @catppuccin_window_flags_icon_silent " " # ~
104 | set -ogq @catppuccin_window_flags_icon_activity " " # #
105 | set -ogq @catppuccin_window_flags_icon_bell " " # !
106 | # Matches icon order when using `#F` (`#!~[*-]MZ`)
107 | set -ogq @catppuccin_window_flags_icon_format "##{?window_activity_flag,#{E:@catppuccin_window_flags_icon_activity},}##{?window_bell_flag,#{E:@catppuccin_window_flags_icon_bell},}##{?window_silence_flag,#{E:@catppuccin_window_flags_icon_silent},}##{?window_active,#{E:@catppuccin_window_flags_icon_current},}##{?window_last_flag,#{E:@catppuccin_window_flags_icon_last},}##{?window_marked_flag,#{E:@catppuccin_window_flags_icon_mark},}##{?window_zoomed_flag,#{E:@catppuccin_window_flags_icon_zoom},}"
108 |
109 | # Status line options
110 | set -ogq @catppuccin_status_left_separator ""
111 | set -ogq @catppuccin_status_middle_separator ""
112 | set -ogq @catppuccin_status_right_separator "█"
113 | set -ogq @catppuccin_status_connect_separator "yes" # yes, no
114 | set -ogq @catppuccin_status_fill "icon"
115 | set -ogq @catppuccin_status_module_bg_color "#{@thm_surface_0}"
116 | ```
117 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/docs/reference/status-line.md:
--------------------------------------------------------------------------------
1 | ## Using the theme's built-in status modules
2 |
3 | To use the theme's built in status modules, set the `status-left` and
4 | `status-right` tmux options _after_ the plugin has been loaded with `run`.
5 |
6 | The tmux status line modules are set as variables and prefixed with `@catppuccin_status_`.
7 |
8 | To use the `application` and `session` modules on the right and have nothing on
9 | the left:
10 |
11 | ```sh
12 | set -g status-right-length 100
13 |
14 | set -g status-right "#{E:@catppuccin_status_application}#{E:@catppuccin_status_session}"
15 | set -g status-left ""
16 | ```
17 |
18 | ## Customizing modules
19 |
20 | Every module supports the following overrides:
21 |
22 | ### Override the specific module icon
23 |
24 | ```sh
25 | set -g @catppuccin_[module_name]_icon "icon"
26 | ```
27 |
28 | ### Override the specific module color
29 |
30 | ```sh
31 | set -g @catppuccin_[module_name]_color "color"
32 | ```
33 |
34 | ### Override the specific module text
35 |
36 | ```sh
37 | set -g @catppuccin_[module_name]_text "text"
38 | ```
39 |
40 | ### Override the specific module's background color
41 |
42 | ```sh
43 | set -g @catppuccin_status_[module_name]_bg_color "#{@thm_surface_0}"
44 | ```
45 |
46 | ### Removing a specific module option
47 |
48 | ```sh
49 | set -g @catppuccin_[module_name]_[option] ""
50 | ```
51 |
52 | This is for the situation where you want to remove the icon from a module.
53 | For example:
54 |
55 | ```sh
56 | set -g @catppuccin_date_time_icon ""
57 | ```
58 |
59 | ### Notes for TPM users
60 |
61 | Make sure you load the catppuccin theme prior to setting the status-left and/or
62 | status-left options. This ensures the catppuccin options (such as colors and
63 | status modules) are defined so they can then be used.
64 |
65 | After status-left and/or status-left have been set, make sure to run TPM to load
66 | the modules. This runs any plugins that may replace text in the status line.
67 |
68 | ```bash
69 | # load catppuccin theme ...
70 | run '~/.config/tmux/plugins/tmux/catppuccin.tmux' # or where this file is located on your machine
71 |
72 | # ... and then set status-left & status-right ...
73 | set -g status-left "#{E:@catppuccin_status_session}"
74 |
75 | set -g status-right "#{E:@catppuccin_status_[module_name]}"
76 | set -ag status-right "#{E:@catppuccin_status_[module_name]}"
77 | set -agF status-right "#{E:@catppuccin_status_[module_name]}"
78 |
79 | # ... and finally start TPM
80 | set -g @plugin 'tmux-plugins/tpm'
81 | run '~/.tmux/plugins/tpm/tpm'
82 | ```
83 |
84 | ## Battery module
85 |
86 | **Requirements:** This module depends on [tmux-battery](https://github.com/tmux-plugins/tmux-battery/tree/master).
87 |
88 | **Install:** The preferred way to install tmux-battery is using [TPM](https://github.com/tmux-plugins/tpm).
89 |
90 | **Configure:**
91 |
92 | ```sh
93 | run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux
94 |
95 | set -agF status-right "#{E:@catppuccin_status_battery}"
96 |
97 | set -g @plugin 'tmux-plugins/tmux-battery'
98 | run '~/.tmux/plugins/tpm/tpm'
99 | ```
100 |
101 | ## CPU module
102 |
103 | **Requirements:** This module depends on [tmux-cpu](https://github.com/tmux-plugins/tmux-cpu/tree/master).
104 |
105 | **Install:** The preferred way to install tmux-cpu is using [TPM](https://github.com/tmux-plugins/tpm).
106 |
107 | **Configure:**
108 |
109 | ```sh
110 | run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux
111 |
112 | set -agF status-right "#{E:@catppuccin_status_cpu}"
113 |
114 | set -g @plugin 'tmux-plugins/tmux-cpu'
115 | run '~/.tmux/plugins/tpm/tpm'
116 | ```
117 |
118 | ## Weather modules
119 |
120 | ### tmux-weather
121 |
122 | **Requirements:** This module depends on [tmux-weather](https://github.com/xamut/tmux-weather).
123 |
124 | **Install:** The preferred way to install tmux-weather is using [TPM](https://github.com/tmux-plugins/tpm).
125 |
126 | **Configure:**
127 |
128 | ```sh
129 | run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux
130 |
131 | set -agF status-right "#{E:@catppuccin_status_weather}"
132 |
133 | set -g @plugin 'xamut/tmux-weather'
134 | run '~/.tmux/plugins/tpm/tpm'
135 | ```
136 |
137 | ### tmux-clima
138 |
139 | **Requirements:** This module depends on [tmux-clima](https://github.com/vascomfnunes/tmux-clima).
140 |
141 | **Install:** The preferred way to install tmux-clima is using [TPM](https://github.com/tmux-plugins/tpm).
142 |
143 | **Configure:**
144 |
145 | ```sh
146 | run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux
147 |
148 | set -agF status-right "#{E:@catppuccin_status_clima}"
149 |
150 | set -g @plugin 'vascomfnunes/tmux-clima'
151 | run '~/.tmux/plugins/tpm/tpm'
152 | ```
153 |
154 | ## Load module
155 |
156 | **Requirements:** This module depends on [tmux-loadavg](https://github.com/jamesoff/tmux-loadavg).
157 |
158 | **Install:** The preferred way to install tmux-loadavg is using [TPM](https://github.com/tmux-plugins/tpm).
159 |
160 | **Configure:**
161 |
162 | ```sh
163 | run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux
164 |
165 | set -agF status-right "#{E:@catppuccin_status_load}"
166 |
167 | set -g @plugin 'jamesoff/tmux-loadavg'
168 | run '~/.tmux/plugins/tpm/tpm'
169 | ```
170 |
171 | ## Gitmux module
172 |
173 | **Requirements:** This module depends on [gitmux](https://github.com/arl/gitmux).
174 |
175 | **Install:** To install gitmux, follow the instructions in the [gitmux documentation](https://github.com/arl/gitmux/blob/main/README.md#installing).
176 |
177 | **Configure:**
178 |
179 | Add the gitmux module to the status modules list.
180 |
181 | ```sh
182 | run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux
183 |
184 | set -agF status-right "#{@catppuccin_status_gitmux}"
185 | ```
186 |
187 | Follow the instructions in the [gitmux documentation](https://github.com/arl/gitmux/blob/main/README.md#customizing)
188 | to create a gitmux config file. The gitmux plugin expects a file to be present
189 | at `~/.gitmux.conf`.
190 |
191 | Add the following to your `~/.gitmux.conf` so that it uses catppuccin colors:
192 |
193 | ```yaml
194 | tmux:
195 | styles:
196 | clear: '#[fg=#{@thm_fg}]'
197 | state: '#[fg=#{@thm_red},bold]'
198 | branch: '#[fg=#{@thm_fg},bold]'
199 | remote: '#[fg=#{@thm_teal}]'
200 | divergence: '#[fg=#{@thm_fg}]'
201 | staged: '#[fg=#{@thm_green},bold]'
202 | conflict: '#[fg=#{@thm_red},bold]'
203 | modified: '#[fg=#{@thm_yellow},bold]'
204 | untracked: '#[fg=#{@thm_mauve},bold]'
205 | stashed: '#[fg=#{@thm_blue},bold]'
206 | clean: '#[fg=#{@thm_rosewater},bold]'
207 | insertions: '#[fg=#{@thm_green}]'
208 | deletions: '#[fg=#{@thm_red}]'
209 | ```
210 |
211 | ## Pomodoro module
212 |
213 | **Requirements:**: This module depends on [tmux-pomodoro-plus](https://github.com/olimorris/tmux-pomodoro-plus/tree/main).
214 |
215 | **Install:**: The preferred way to install tmux-pomodoro-plus is using [TPM](https://github.com/tmux-plugins/tpm).
216 |
217 | **Configure:**
218 |
219 | ```sh
220 | run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux
221 |
222 | set -agF status-right "#{E:@catppuccin_status_pomodoro_plus}"
223 |
224 | set -g @plugin 'olimorris/tmux-pomodoro-plus'
225 | run '~/.tmux/plugins/tpm/tpm'
226 | ```
227 |
228 | ## Kube module
229 |
230 | **Requirements:** This module depends on [kube-tmux](https://github.com/jonmosco/kube-tmux).
231 |
232 | **Install:** The preferred way to install kube-tmux is using [TPM](https://github.com/tmux-plugins/tpm).
233 |
234 | **Configure:**
235 |
236 | ```sh
237 | set -g @catppuccin_kube_context_color "#{@thm_red}"
238 | set -g @catppuccin_kube_namespace_color "#{@thm_sky}"
239 |
240 | run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux
241 |
242 | set -agF status-right "#{E:@catppuccin_status_kube}"
243 |
244 | set -g @plugin 'jonmosco/kube-tmux'
245 | run '~/.tmux/plugins/tpm/tpm'
246 | ```
247 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/docs/tutorials/01-getting-started.md:
--------------------------------------------------------------------------------
1 | Want to install the color scheme and make tmux pastel? Great! Here's how.
2 |
3 | ## Step 1: Clone this repository
4 |
5 |
6 | ```bash
7 | mkdir -p ~/.config/tmux/plugins/catppuccin
8 | git clone -b v2.1.2 https://github.com/catppuccin/tmux.git ~/.config/tmux/plugins/catppuccin/tmux
9 | ```
10 |
11 |
12 | ## Step 2: Edit your tmux configuration file
13 |
14 | Using your favourite editor, edit the file `~/.tmux.conf`.
15 |
16 | It should look like this:
17 |
18 | ```bash
19 | set -g @catppuccin_flavor 'mocha'
20 |
21 | run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux
22 | ```
23 |
24 | This will load the catppuccin plugin and apply the defaults.
25 | To apply the changes to your configuration file, exit tmux completely
26 | and start it again. You can also run `tmux source ~/.tmux.conf`, but this may
27 | not work as well when changing options.
28 |
29 | ## Step 3: Customize
30 |
31 | The default configuration looks a little bland. Let's change it to
32 | be a bit more colorful. Edit your tmux config again so it looks like this.
33 |
34 | ```bash
35 | # Pick a softer palette.
36 | set -g @catppuccin_flavor 'frappe'
37 |
38 | run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux
39 |
40 | # Make the status line more pleasant.
41 | set -g status-left ""
42 | set -g status-right '#[fg=#{@thm_crust},bg=#{@thm_teal}] session: #S '
43 |
44 | # Ensure that everything on the right side of the status line
45 | # is included.
46 | set -g status-right-length 100
47 | ```
48 |
49 | There is some new stuff here. Firstly, everything is documented in
50 | the "[tmux man page](https://man7.org/linux/man-pages/man1/tmux.1.html)".
51 | Go check it out if anything is unclear. The lines `set -g ...` are setting
52 | "options". The `-g` means that the option is global, so it applies everywhere.
53 | When an option name begins with `@`, then it is a "user" option and has no
54 | effect on tmux itself. This is used to essentially set global variables.
55 |
56 | Three options are set that control how tmux looks, `status-left`,
57 | `status-right`, and `status-right-length`. These options are documented
58 | in the man page, but the tl;dr is that they control what appears on the left
59 | and right of the status line.
60 |
61 | The `#[]` syntax is an embedded style, similar to inline css.
62 | `fg=#{@thm_crust}` says "make the text the crust color". `@thm_crust` is a
63 | user option set by the plugin. It is created by the line
64 | `run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux`, so if you try
65 | and use colors before that line, it won't work. The `#S` is a special sequence
66 | that tmux replaces with the current session name. There are a long, long
67 | "[list of special sequences](https://man7.org/linux/man-pages/man1/tmux.1.html#FORMATS)"
68 | that tmux can replace.
69 |
70 | If everything is working right, your version should look like this:
71 |
72 | 
73 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/docs/tutorials/02-custom-status.md:
--------------------------------------------------------------------------------
1 | # User Defined Status Line Modules
2 |
3 | To create your own status line module that uses the catppuccin theme,
4 | all you need to do is add it to the `status-left` or `status-right` options.
5 |
6 | You can add arbitrary things to the status line like so:
7 |
8 | ```sh
9 | # ~/.tmux.conf
10 |
11 | set -agF status-right "#[fg=#{@thm_crust},bg=#{@thm_teal}] ##H "
12 | ```
13 |
14 | This will append the current hostname (`#H`) to the status line with a teal
15 | background and dark black text.
16 |
17 | You can also use icons for styling, for example to show the used memory percentage
18 | on MacOS:
19 |
20 | ```sh
21 | set -g status-right "#[bg=#{@thm_flamingo},fg=#{@thm_crust}]#[reverse]#[noreverse] "
22 | set -ag status-right "#[fg=#{@thm_fg},bg=#{@thm_mantle}] #(memory_pressure | awk '/percentage/{print $5}') "
23 | ```
24 |
25 | 
26 |
27 | To use the status module formatting that catppuccin uses, do the following:
28 |
29 | ```sh
30 | # In ~/.tmux.conf, after the catppuccin plugin has been loaded.
31 |
32 | %hidden MODULE_NAME="my_custom_module"
33 |
34 | set -ogq "@catppuccin_${MODULE_NAME}_icon" " "
35 | set -ogqF "@catppuccin_${MODULE_NAME}_color" "#{E:@thm_pink}"
36 | set -ogq "@catppuccin_${MODULE_NAME}_text" "#{pane_current_command}"
37 |
38 | source "/utils/status_module.conf"
39 |
40 | set -g status-right "#{E:@catppuccin_status_application}#{E:@catppuccin_status_my_custom_module}"
41 | ```
42 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/renovate.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json",
3 | "extends": [
4 | "local>catppuccin/renovate-config"
5 | ]
6 | }
7 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/run_tests.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -Eeuo pipefail
4 |
5 | script_dir=$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd -P)
6 |
7 | "${script_dir}"/tests/harness.sh --test "${script_dir}"/tests/default_options.sh --expected "${script_dir}"/tests/default_options_expected.txt "$@"
8 | "${script_dir}"/tests/harness.sh --test "${script_dir}"/tests/window_status_styling.sh --expected "${script_dir}"/tests/window_status_styling_expected.txt "$@"
9 |
10 | "${script_dir}"/tests/harness.sh --test "${script_dir}"/tests/application_module.sh --expected "${script_dir}"/tests/application_module_expected.txt "$@"
11 | "${script_dir}"/tests/harness.sh --test "${script_dir}"/tests/battery_module.sh --expected "${script_dir}"/tests/battery_module_expected.txt "$@"
12 | "${script_dir}"/tests/harness.sh --test "${script_dir}"/tests/cpu_module.sh --expected "${script_dir}"/tests/cpu_module_expected.txt "$@"
13 | "${script_dir}"/tests/harness.sh --test "${script_dir}"/tests/pane_styling.sh --expected "${script_dir}"/tests/pane_styling_expected.txt "$@"
14 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/status/application.conf:
--------------------------------------------------------------------------------
1 | # vim:set ft=tmux:
2 | %hidden MODULE_NAME="application"
3 |
4 | set -ogq "@catppuccin_${MODULE_NAME}_icon" " "
5 | set -ogqF "@catppuccin_${MODULE_NAME}_color" "#{E:@thm_maroon}"
6 | set -ogq "@catppuccin_${MODULE_NAME}_text" " #{pane_current_command}"
7 |
8 | source -F "#{d:current_file}/../utils/status_module.conf"
9 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/status/battery.conf:
--------------------------------------------------------------------------------
1 | # vim:set ft=tmux:
2 | %hidden MODULE_NAME="battery"
3 |
4 | set -ogq @batt_icon_charge_tier8 ""
5 | set -ogq @batt_icon_charge_tier7 ""
6 | set -ogq @batt_icon_charge_tier6 ""
7 | set -ogq @batt_icon_charge_tier5 ""
8 | set -ogq @batt_icon_charge_tier4 ""
9 | set -ogq @batt_icon_charge_tier3 ""
10 | set -ogq @batt_icon_charge_tier2 ""
11 | set -ogq @batt_icon_charge_tier1 ""
12 | set -ogq @batt_icon_status_charged ""
13 | set -ogq @batt_icon_status_charging ""
14 | set -ogq @batt_icon_status_discharging ""
15 | set -ogq @batt_icon_status_unknown ""
16 | set -ogq @batt_icon_status_attached ""
17 |
18 | set -ogq "@catppuccin_${MODULE_NAME}_icon" "#{l:#{battery_icon}} "
19 | set -ogqF "@catppuccin_${MODULE_NAME}_color" "#{E:@thm_lavender}"
20 | set -ogq "@catppuccin_${MODULE_NAME}_text" " #{l:#{battery_percentage}}"
21 |
22 | source -F "#{d:current_file}/../utils/status_module.conf"
23 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/status/clima.conf:
--------------------------------------------------------------------------------
1 | # vim:set ft=tmux:
2 | # Requires https://github.com/vascomfnunes/tmux-clima
3 | %hidden MODULE_NAME="clima"
4 |
5 | set -ogq "@catppuccin_${MODULE_NAME}_icon" " "
6 | set -ogqF "@catppuccin_${MODULE_NAME}_color" "#{E:@thm_yellow}"
7 | set -ogq "@catppuccin_${MODULE_NAME}_text" " #{l:#{clima}}"
8 |
9 | source -F "#{d:current_file}/../utils/status_module.conf"
10 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/status/cpu.conf:
--------------------------------------------------------------------------------
1 | # vim:set ft=tmux:
2 | %hidden MODULE_NAME="cpu"
3 |
4 | set -ogq @cpu_low_fg_color "#{E:@thm_fg}"
5 | set -ogq @cpu_medium_fg_color "#{E:@thm_fg}"
6 | set -ogq @cpu_high_fg_color "#{E:@thm_crust}"
7 |
8 | set -ogq @cpu_low_bg_color "#{E:@catppuccin_status_module_text_bg}"
9 | set -ogq @cpu_medium_bg_color "#{E:@catppuccin_status_module_text_bg}"
10 | set -ogq @cpu_high_bg_color "#{E:@thm_red}"
11 |
12 | set -ogq "@catppuccin_${MODULE_NAME}_icon" " "
13 | set -ogqF "@catppuccin_${MODULE_NAME}_color" "#{E:@thm_yellow}"
14 | set -ogq "@catppuccin_status_${MODULE_NAME}_text_fg" "#{l:#{cpu_fg_color}}"
15 | set -ogq "@catppuccin_status_${MODULE_NAME}_text_bg" "#{l:#{cpu_bg_color}}"
16 | set -ogq "@catppuccin_${MODULE_NAME}_text" " #{l:#{cpu_percentage}}"
17 |
18 | source -F "#{d:current_file}/../utils/status_module.conf"
19 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/status/date_time.conf:
--------------------------------------------------------------------------------
1 | # vim:set ft=tmux:
2 | %hidden MODULE_NAME="date_time"
3 |
4 | set -ogq "@catppuccin_${MODULE_NAME}_icon" " "
5 | set -ogqF "@catppuccin_${MODULE_NAME}_color" "#{E:@thm_sapphire}"
6 | set -ogq "@catppuccin_${MODULE_NAME}_text" " %Y-%m-%d %H:%M"
7 |
8 | source -F "#{d:current_file}/../utils/status_module.conf"
9 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/status/directory.conf:
--------------------------------------------------------------------------------
1 | # vim:set ft=tmux:
2 | %hidden MODULE_NAME="directory"
3 |
4 | set -ogq "@catppuccin_${MODULE_NAME}_icon" " "
5 | set -ogqF "@catppuccin_${MODULE_NAME}_color" "#{E:@thm_rosewater}"
6 | set -ogq "@catppuccin_${MODULE_NAME}_text" " #{b:pane_current_path}"
7 |
8 | source -F "#{d:current_file}/../utils/status_module.conf"
9 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/status/gitmux.conf:
--------------------------------------------------------------------------------
1 | # vim:set ft=tmux:
2 | %hidden MODULE_NAME="gitmux"
3 |
4 | # Requires https://github.com/arl/gitmux
5 | set -ogq "@catppuccin_${MODULE_NAME}_icon" " "
6 | set -ogqF "@catppuccin_${MODULE_NAME}_color" "#{E:@thm_teal}"
7 | set -gq "@catppuccin_${MODULE_NAME}_text" ' #(gitmux -cfg $HOME/.gitmux.conf "#{pane_current_path}")'
8 |
9 | source -F "#{d:current_file}/../utils/status_module.conf"
10 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/status/host.conf:
--------------------------------------------------------------------------------
1 | # vim:set ft=tmux:
2 | %hidden MODULE_NAME="host"
3 |
4 | set -ogq "@catppuccin_${MODULE_NAME}_icon" " "
5 | set -ogqF "@catppuccin_${MODULE_NAME}_color" "#{E:@thm_mauve}"
6 | set -ogq "@catppuccin_${MODULE_NAME}_text" " #H"
7 |
8 | source -F "#{d:current_file}/../utils/status_module.conf"
9 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/status/kube.conf:
--------------------------------------------------------------------------------
1 | # vim:set ft=tmux:
2 | %hidden MODULE_NAME="kube"
3 |
4 | # Requires https://github.com/jonmosco/kube-tmux
5 |
6 | set -ogq "@catppuccin_${MODULE_NAME}_icon" " "
7 | set -ogqF "@catppuccin_${MODULE_NAME}_color" "#{E:@thm_blue}"
8 | set -ogqF "@catppuccin_kube_context_color" "#{E:@thm_red}"
9 | set -ogqF "@catppuccin_kube_namespace_color" "#{E:@thm_sky}"
10 | set -ogq "@catppuccin_${MODULE_NAME}_text" \
11 | " #(\${TMUX_PLUGIN_MANAGER_PATH}kube-tmux/kube.tmux 250 #{@catppuccin_kube_context_color} #{@catppuccin_kube_namespace_color})"
12 |
13 | source -F "#{d:current_file}/../utils/status_module.conf"
14 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/status/load.conf:
--------------------------------------------------------------------------------
1 | # vim:set ft=tmux:
2 | %hidden MODULE_NAME="load"
3 |
4 | set -ogq "@catppuccin_${MODULE_NAME}_icon" " "
5 | set -ogqF "@catppuccin_${MODULE_NAME}_color" "#{E:@thm_blue}"
6 | set -ogq "@catppuccin_${MODULE_NAME}_text" " #{load_full}"
7 |
8 | source -F "#{d:current_file}/../utils/status_module.conf"
9 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/status/pomodoro_plus.conf:
--------------------------------------------------------------------------------
1 | # vim:set ft=tmux:
2 | # Requires https://github.com/olimorris/tmux-pomodoro-plus
3 | %hidden MODULE_NAME="pomodoro_plus"
4 |
5 | set -ogq "@catppuccin_${MODULE_NAME}_icon" " "
6 | set -ogqF "@catppuccin_${MODULE_NAME}_color" "#{E:@thm_orange}"
7 | set -ogq "@catppuccin_${MODULE_NAME}_text" " #{l:#{pomodoro_status}}"
8 |
9 | source -F "#{d:current_file}/../utils/status_module.conf"
10 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/status/session.conf:
--------------------------------------------------------------------------------
1 | # vim:set ft=tmux:
2 | %hidden MODULE_NAME="session"
3 |
4 | set -ogq "@catppuccin_${MODULE_NAME}_icon" " "
5 | set -ogq "@catppuccin_${MODULE_NAME}_color" "#{?client_prefix,#{E:@thm_red},#{E:@thm_green}}"
6 | set -ogq "@catppuccin_${MODULE_NAME}_text" " #S"
7 |
8 | source -F "#{d:current_file}/../utils/status_module.conf"
9 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/status/uptime.conf:
--------------------------------------------------------------------------------
1 | # vim:set ft=tmux:
2 | %hidden MODULE_NAME="uptime"
3 |
4 | set -ogq @catppuccin_uptime_icon " "
5 | set -ogqF @catppuccin_uptime_color "#{E:@thm_sapphire}"
6 | set -ogq @catppuccin_uptime_text " #(uptime | sed 's/^[^,]*up *//; s/, *[[:digit:]]* user.*//; s/ day.*, */d /; s/ hr\\(s*\\).*/h/; s/ min\\(s*\\).*/m/; s/ sec\\(s*\\).*/s/; s/\\([0-9]\\{1,2\\}\\):\\([0-9]\\{1,2\\}\\)/\\1h \\2m/;')"
7 |
8 | source -F "#{d:current_file}/../utils/status_module.conf"
9 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/status/user.conf:
--------------------------------------------------------------------------------
1 | # vim:set ft=tmux:
2 | %hidden MODULE_NAME="user"
3 |
4 | set -ogq @catppuccin_user_icon " "
5 | set -ogqF @catppuccin_user_color "#{E:@thm_sky}"
6 | set -ogq @catppuccin_user_text " #(whoami)"
7 |
8 | source -F "#{d:current_file}/../utils/status_module.conf"
9 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/status/weather.conf:
--------------------------------------------------------------------------------
1 | # vim:set ft=tmux:
2 | %hidden MODULE_NAME="weather"
3 |
4 | # Requires https://github.com/xamut/tmux-weather.
5 |
6 | set -ogq @catppuccin_weather_icon " "
7 | set -ogqF @catppuccin_weather_color "#{E:@thm_yellow}"
8 | set -ogq @catppuccin_weather_text " #{l:#{weather}}"
9 |
10 | source -F "#{d:current_file}/../utils/status_module.conf"
11 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/tests/application_module.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | script_dir=$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd -P)
4 | # shellcheck disable=SC1091
5 | source "${script_dir}/helpers.sh"
6 |
7 | # Tests that the default options are set correctly
8 | tmux source "${script_dir}/../catppuccin_options_tmux.conf"
9 | tmux source "${script_dir}/../catppuccin_tmux.conf"
10 |
11 | print_option @catppuccin_status_application | grep -q "@thm_" &&
12 | echo "@catppuccin_status_application did not expand all colors"
13 |
14 | print_option @catppuccin_status_application | sed -E 's/(bash|fish|zsh)//'
15 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/tests/application_module_expected.txt:
--------------------------------------------------------------------------------
1 | @catppuccin_status_application #[fg=#eba0ac]#[fg=#11111b,bg=#eba0ac] #[fg=#cdd6f4,bg=#313244]#{E:@catppuccin_application_text}#[fg=#313244]
2 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/tests/battery_module.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | script_dir=$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd -P)
4 | # shellcheck disable=SC1091
5 | source "${script_dir}/helpers.sh"
6 |
7 | # Tests that the default options are set correctly
8 | tmux source "${script_dir}/../catppuccin_options_tmux.conf"
9 | tmux source "${script_dir}/../catppuccin_tmux.conf"
10 |
11 | print_option @catppuccin_status_battery
12 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/tests/battery_module_expected.txt:
--------------------------------------------------------------------------------
1 | @catppuccin_status_battery #[fg=#b4befe]#[fg=#11111b,bg=#b4befe]#{l:#{battery_icon}} #[fg=#cdd6f4,bg=#313244]#{E:@catppuccin_battery_text}#[fg=#313244]
2 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/tests/cpu_module.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | script_dir=$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd -P)
4 | # shellcheck disable=SC1091
5 | source "${script_dir}/helpers.sh"
6 |
7 | # Tests that the default options are set correctly
8 | tmux source "${script_dir}/../catppuccin_options_tmux.conf"
9 | tmux source "${script_dir}/../catppuccin_tmux.conf"
10 |
11 | print_option E:@catppuccin_status_cpu
12 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/tests/cpu_module_expected.txt:
--------------------------------------------------------------------------------
1 | E:@catppuccin_status_cpu #[fg=#f9e2af]#[fg=#11111b,bg=#f9e2af] #[fg=#{cpu_fg_color},bg=#{cpu_bg_color}] #{cpu_percentage}#[fg=#{cpu_bg_color}]
2 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/tests/default_options.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | script_dir=$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd -P)
4 | # shellcheck disable=SC1091
5 | source "${script_dir}/helpers.sh"
6 |
7 | # Tests that the default options are set correctly
8 | tmux source "${script_dir}/../catppuccin_options_tmux.conf"
9 | tmux source "${script_dir}/../catppuccin_tmux.conf"
10 |
11 | print_option @catppuccin_flavor
12 | print_option @catppuccin_menu_selected_style
13 | print_option @catppuccin_pane_active_border_style
14 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/tests/default_options_expected.txt:
--------------------------------------------------------------------------------
1 | @catppuccin_flavor mocha
2 | @catppuccin_menu_selected_style fg=#{@thm_fg},bold,bg=#{@thm_overlay_0}
3 | @catppuccin_pane_active_border_style ##{?pane_in_mode,fg=#{@thm_lavender},##{?pane_synchronized,fg=#{@thm_mauve},fg=#{@thm_lavender}}}
4 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/tests/harness.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | set -Euo pipefail
4 | trap cleanup SIGINT SIGTERM ERR EXIT
5 |
6 | usage() {
7 | trap - EXIT
8 | cat <&2 -e "${1-}"
39 | }
40 |
41 | msg_verbose() {
42 | if [ "$VERBOSE" = true ]; then
43 | msg "$@"
44 | fi
45 | }
46 |
47 | SOCKET_NAME="${SOCKET_NAME:-test}"
48 | SESSION_NAME="test-session"
49 |
50 | tmux() {
51 | command tmux -L "$SOCKET_NAME" -f /dev/null "$@"
52 | }
53 |
54 | start_tmux_server() {
55 | msg_verbose "${CYAN}Starting tmux server on socket ${SOCKET_NAME}${NOFORMAT}"
56 | tmux new -s "$SESSION_NAME" -d "$(which bash)"
57 | }
58 |
59 | kill_tmux_server() {
60 | msg_verbose "${CYAN}Stopping tmux server${NOFORMAT}"
61 | tmux kill-session "$SESSION_NAME" 2>/dev/null
62 | tmux kill-server 2>/dev/null
63 | }
64 |
65 | cleanup() {
66 | trap - SIGINT SIGTERM ERR EXIT
67 |
68 | # If the session is still running then stop it.
69 | tmux has-session -t "$SESSION_NAME" 2>/dev/null
70 | if test $? -eq 0; then
71 | kill_tmux_server
72 | fi
73 | }
74 |
75 | die() {
76 | local msg=$1
77 | local code=${2-1} # default exit status 1
78 | msg "$msg"
79 |
80 | cleanup
81 |
82 | exit "$code"
83 | }
84 |
85 | parse_params() {
86 | # default values of variables set from params
87 | test_script=''
88 | expected_output=''
89 |
90 | while :; do
91 | case "${1-}" in
92 | -h | --help) usage ;;
93 | --no-color) NO_COLOR=1 ;;
94 | -t | --test)
95 | test_script="${2-}"
96 | shift
97 | ;;
98 | -e | --expected)
99 | expected_output="${2-}"
100 | shift
101 | ;;
102 | -v | --verbose)
103 | VERBOSE=true
104 | shift
105 | ;;
106 | -?*) die "Unknown option: $1" ;;
107 | *) break ;;
108 | esac
109 | shift
110 | done
111 |
112 | # shellcheck disable=SC2034
113 | args=("$@")
114 |
115 | # check required params and arguments
116 | [[ -z "${test_script-}" ]] && die "Missing required parameter: -t|--test"
117 | [[ -z "${expected_output-}" ]] && die "Missing required parameter: -e|--expected"
118 |
119 | return 0
120 | }
121 |
122 | parse_params "$@"
123 | setup_colors
124 |
125 | run_test() {
126 | msg_verbose "Running test ${test_script} and checking the output against ${expected_output}"
127 |
128 | start_tmux_server
129 |
130 | local script_name
131 | script_name=$(basename "${test_script}")
132 |
133 | local output
134 | # shellcheck disable=SC1090
135 | output=$(source "${test_script}")
136 | test_exit_code="$?"
137 |
138 | if test $test_exit_code -ne 0; then
139 | die "\n${RED}Test ${script_name} exited with code $test_exit_code ${NOFORMAT}"
140 | fi
141 |
142 | echo -e "${output}" | diff -abB --color=${DIFFCOLORS} "${expected_output}" -
143 |
144 | if test $? -eq 0; then
145 | msg "${GREEN}Test ${script_name} passed${NOFORMAT}"
146 | else
147 | die "\n${RED}Test ${script_name} failed${NOFORMAT}"
148 | fi
149 |
150 | cleanup
151 | }
152 |
153 | run_test
154 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/tests/helpers.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | # Returns the value of given tmux option.
4 | # First argument is the option name, e.g. @catppuccin_flavor.
5 | #
6 | # Usage: `get_option @catppuccin_flavor`
7 | # Would return: `mocha`
8 | #
9 | # The option is given as a format string.
10 | get_option() {
11 | local option
12 | option=$1
13 |
14 | tmux display-message -p "#{${option}}"
15 | }
16 |
17 | # Prints the given tmux option to stdout.
18 | # First argument is the option name, e.g. @catppuccin_flavor.
19 | #
20 | # Usage: `print_option @catppuccin_flavor`
21 | # Would print: `@catppuccin_flavor mocha`
22 | #
23 | # The option is given as a format string.
24 | print_option() {
25 | local option
26 | option=$1
27 |
28 | printf "\n%s " "${option}"
29 | get_option "$option"
30 | }
31 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/tests/pane_styling.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | script_dir=$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd -P)
4 | # shellcheck disable=SC1091
5 | source "${script_dir}/helpers.sh"
6 |
7 | tmux set -g @catppuccin_pane_status_enabled "yes"
8 |
9 | tmux source "${script_dir}/../catppuccin_options_tmux.conf"
10 | tmux source "${script_dir}/../catppuccin_tmux.conf"
11 |
12 | print_option pane-border-format
13 |
14 | # Switch the number position to the right
15 | tmux set -g @catppuccin_pane_number_position "right"
16 | tmux source "${script_dir}/../catppuccin_tmux.conf"
17 | print_option pane-border-format
18 |
19 | tmux set -g @catppuccin_pane_number_position "left" # reset
20 |
21 | # Fill option "all"
22 | tmux set -g @catppuccin_pane_default_fill "all"
23 | tmux source "${script_dir}/../catppuccin_tmux.conf"
24 | print_option pane-border-format
25 |
26 | tmux set -g @catppuccin_pane_default_fill "number" # reset
27 |
28 | # Fill option "none"
29 | tmux set -g @catppuccin_pane_default_fill "none"
30 | tmux source "${script_dir}/../catppuccin_tmux.conf"
31 | print_option pane-border-format
32 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/tests/pane_styling_expected.txt:
--------------------------------------------------------------------------------
1 | pane-border-format #[fg=#a6e3a1,bg=default]█#[fg=#313244,bg=#a6e3a1]#{pane_index}#[fg=#a6e3a1,bg=#313244]█ #[fg=#a6e3a1,bg=#313244]#{b:pane_current_path}#[fg=#313244,bg=default]█
2 | pane-border-format #[fg=#313244,bg=default]█#[fg=#a6e3a1,bg=#313244]#{b:pane_current_path} #[fg=#a6e3a1,bg=#313244]█#[fg=#313244,bg=#a6e3a1]#{pane_index}#[fg=#a6e3a1,bg=default]█
3 | pane-border-format #[fg=#a6e3a1,bg=default]█#[fg=#313244,bg=#a6e3a1]#{pane_index}#[fg=#a6e3a1,bg=#313244]█ #[fg=#313244,bg=#a6e3a1]#{b:pane_current_path}#[fg=#a6e3a1,bg=default]█
4 | pane-border-format #[fg=#313244,bg=default]█#[fg=#cdd6f4,bg=#313244]#{pane_index}#[fg=#cdd6f4,bg=#313244]█ #[fg=#cdd6f4,bg=#313244]#{b:pane_current_path}#[fg=#313244,bg=default]█
5 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/tests/window_status_styling.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | # Unsets (removes) any styling options that will contaminate
4 | # subsequent test runs.
5 | function reset() {
6 | tmux set -gu @catppuccin_window_current_left_separator
7 | tmux set -gu @catppuccin_window_current_middle_separator
8 | tmux set -gu @catppuccin_window_current_right_separator
9 | tmux set -gu @catppuccin_window_status_style
10 | }
11 |
12 | script_dir=$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd -P)
13 | # shellcheck disable=SC1091
14 | source "${script_dir}/helpers.sh"
15 |
16 | tmux source "${script_dir}/../catppuccin_options_tmux.conf"
17 | tmux source "${script_dir}/../catppuccin_tmux.conf"
18 |
19 | print_option window-status-format
20 | print_option window-status-current-format
21 |
22 | # Test the rounded style
23 | reset
24 | tmux set -g @catppuccin_window_status_style "rounded"
25 | tmux source "${script_dir}/../catppuccin_options_tmux.conf"
26 | tmux source "${script_dir}/../catppuccin_tmux.conf"
27 |
28 | print_option window-status-format
29 | print_option window-status-current-format
30 |
31 | # Test the basic style with the number on the right
32 | reset
33 | tmux set -g @catppuccin_window_number_position "right"
34 | tmux source "${script_dir}/../catppuccin_options_tmux.conf"
35 | tmux source "${script_dir}/../catppuccin_tmux.conf"
36 |
37 | print_option window-status-format
38 | print_option window-status-current-format
39 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/tests/window_status_styling_expected.txt:
--------------------------------------------------------------------------------
1 | window-status-format #[fg=#11111b,bg=#{@thm_overlay_2}] #I #[fg=#cdd6f4,bg=#{@thm_surface_0}] #T
2 | window-status-current-format #[fg=#11111b,bg=#{@thm_mauve}] #I #[fg=#cdd6f4,bg=#{@thm_surface_1}] #T
3 | window-status-format #[fg=#11111b,bg=#{@thm_overlay_2}]#[fg=#181825,reverse]#[none]#I #[fg=#cdd6f4,bg=#{@thm_surface_0}] #T#[fg=#181825,reverse]#[none]
4 | window-status-current-format #[fg=#11111b,bg=#{@thm_mauve}]#[fg=#181825,reverse]#[none]#I #[fg=#cdd6f4,bg=#{@thm_surface_1}] #T#[fg=#181825,reverse]#[none]
5 | window-status-format #[fg=#cdd6f4,bg=#{@thm_surface_0}] #[fg=#cdd6f4,bg=#{@thm_surface_0}] #T #[fg=#11111b,bg=#{@thm_overlay_2}] #I
6 | window-status-current-format #[fg=#cdd6f4,bg=#{@thm_surface_1}] #[fg=#cdd6f4,bg=#{@thm_surface_1}] #T #[fg=#11111b,bg=#{@thm_mauve}] #I
7 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/themes/catppuccin_frappe_tmux.conf:
--------------------------------------------------------------------------------
1 | # vim:set ft=tmux:
2 |
3 | # --> Catppuccin (Frappe)
4 | set -ogq @thm_bg "#303446"
5 | set -ogq @thm_fg "#c6d0f5"
6 |
7 | # Colors
8 | set -ogq @thm_rosewater "#f2d5cf"
9 | set -ogq @thm_flamingo "#eebebe"
10 | set -ogq @thm_rosewater "#f2d5cf"
11 | set -ogq @thm_pink "#f4b8e4"
12 | set -ogq @thm_mauve "#ca9ee6"
13 | set -ogq @thm_red "#e78284"
14 | set -ogq @thm_maroon "#ea999c"
15 | set -ogq @thm_peach "#ef9f76"
16 | set -ogq @thm_yellow "#e5c890"
17 | set -ogq @thm_green "#a6d189"
18 | set -ogq @thm_teal "#81c8be"
19 | set -ogq @thm_sky "#99d1db"
20 | set -ogq @thm_sapphire "#85c1dc"
21 | set -ogq @thm_blue "#8caaee"
22 | set -ogq @thm_lavender "#babbf1"
23 |
24 | # Surfaces and overlays
25 | set -ogq @thm_subtext_1 "#a5adce"
26 | set -ogq @thm_subtext_0 "#b5bfe2"
27 | set -ogq @thm_overlay_2 "#949cbb"
28 | set -ogq @thm_overlay_1 "#838ba7"
29 | set -ogq @thm_overlay_0 "#737994"
30 | set -ogq @thm_surface_2 "#626880"
31 | set -ogq @thm_surface_1 "#51576d"
32 | set -ogq @thm_surface_0 "#414559"
33 | set -ogq @thm_mantle "#292c3c"
34 | set -ogq @thm_crust "#232634"
35 |
36 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/themes/catppuccin_latte_tmux.conf:
--------------------------------------------------------------------------------
1 | # vim:set ft=tmux:
2 |
3 | # --> Catppuccin (Latte)
4 | set -ogq @thm_bg "#eff1f5"
5 | set -ogq @thm_fg "#4c4f69"
6 |
7 | # Colors
8 | set -ogq @thm_rosewater "#dc8a78"
9 | set -ogq @thm_flamingo "#dd7878"
10 | set -ogq @thm_rosewater "#dc8a78"
11 | set -ogq @thm_pink "#ea76cb"
12 | set -ogq @thm_mauve "#8839ef"
13 | set -ogq @thm_red "#d20f39"
14 | set -ogq @thm_maroon "#e64553"
15 | set -ogq @thm_peach "#fe640b"
16 | set -ogq @thm_yellow "#df8e1d"
17 | set -ogq @thm_green "#40a02b"
18 | set -ogq @thm_teal "#179299"
19 | set -ogq @thm_sky "#04a5e5"
20 | set -ogq @thm_sapphire "#209fb5"
21 | set -ogq @thm_blue "#1e66f5"
22 | set -ogq @thm_lavender "#7287fd"
23 |
24 | # Surfaces and overlays
25 | set -ogq @thm_subtext_1 "#6c6f85"
26 | set -ogq @thm_subtext_0 "#5c5f77"
27 | set -ogq @thm_overlay_2 "#7c7f93"
28 | set -ogq @thm_overlay_1 "#8c8fa1"
29 | set -ogq @thm_overlay_0 "#9ca0b0"
30 | set -ogq @thm_surface_2 "#acb0be"
31 | set -ogq @thm_surface_1 "#bcc0cc"
32 | set -ogq @thm_surface_0 "#ccd0da"
33 | set -ogq @thm_mantle "#e6e9ef"
34 | set -ogq @thm_crust "#dce0e8"
35 |
36 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/themes/catppuccin_macchiato_tmux.conf:
--------------------------------------------------------------------------------
1 | # vim:set ft=tmux:
2 |
3 | # --> Catppuccin (Macchiato)
4 | set -ogq @thm_bg "#24273a"
5 | set -ogq @thm_fg "#cad3f5"
6 |
7 | # Colors
8 | set -ogq @thm_rosewater "#f4dbd6"
9 | set -ogq @thm_flamingo "#f0c6c6"
10 | set -ogq @thm_rosewater "#f4dbd6"
11 | set -ogq @thm_pink "#f5bde6"
12 | set -ogq @thm_mauve "#c6a0f6"
13 | set -ogq @thm_red "#ed8796"
14 | set -ogq @thm_maroon "#ee99a0"
15 | set -ogq @thm_peach "#f5a97f"
16 | set -ogq @thm_yellow "#eed49f"
17 | set -ogq @thm_green "#a6da95"
18 | set -ogq @thm_teal "#8bd5ca"
19 | set -ogq @thm_sky "#91d7e3"
20 | set -ogq @thm_sapphire "#7dc4e4"
21 | set -ogq @thm_blue "#8aadf4"
22 | set -ogq @thm_lavender "#b7bdf8"
23 |
24 | # Surfaces and overlays
25 | set -ogq @thm_subtext_1 "#a5adcb"
26 | set -ogq @thm_subtext_0 "#b8c0e0"
27 | set -ogq @thm_overlay_2 "#939ab7"
28 | set -ogq @thm_overlay_1 "#8087a2"
29 | set -ogq @thm_overlay_0 "#6e738d"
30 | set -ogq @thm_surface_2 "#5b6078"
31 | set -ogq @thm_surface_1 "#494d64"
32 | set -ogq @thm_surface_0 "#363a4f"
33 | set -ogq @thm_mantle "#1e2030"
34 | set -ogq @thm_crust "#181926"
35 |
36 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/themes/catppuccin_mocha_tmux.conf:
--------------------------------------------------------------------------------
1 | # vim:set ft=tmux:
2 |
3 | # --> Catppuccin (Mocha)
4 | set -ogq @thm_bg "#1e1e2e"
5 | set -ogq @thm_fg "#cdd6f4"
6 |
7 | # Colors
8 | set -ogq @thm_rosewater "#f5e0dc"
9 | set -ogq @thm_flamingo "#f2cdcd"
10 | set -ogq @thm_rosewater "#f5e0dc"
11 | set -ogq @thm_pink "#f5c2e7"
12 | set -ogq @thm_mauve "#cba6f7"
13 | set -ogq @thm_red "#f38ba8"
14 | set -ogq @thm_maroon "#eba0ac"
15 | set -ogq @thm_peach "#fab387"
16 | set -ogq @thm_yellow "#f9e2af"
17 | set -ogq @thm_green "#a6e3a1"
18 | set -ogq @thm_teal "#94e2d5"
19 | set -ogq @thm_sky "#89dceb"
20 | set -ogq @thm_sapphire "#74c7ec"
21 | set -ogq @thm_blue "#89b4fa"
22 | set -ogq @thm_lavender "#b4befe"
23 |
24 | # Surfaces and overlays
25 | set -ogq @thm_subtext_1 "#a6adc8"
26 | set -ogq @thm_subtext_0 "#bac2de"
27 | set -ogq @thm_overlay_2 "#9399b2"
28 | set -ogq @thm_overlay_1 "#7f849c"
29 | set -ogq @thm_overlay_0 "#6c7086"
30 | set -ogq @thm_surface_2 "#585b70"
31 | set -ogq @thm_surface_1 "#45475a"
32 | set -ogq @thm_surface_0 "#313244"
33 | set -ogq @thm_mantle "#181825"
34 | set -ogq @thm_crust "#11111b"
35 |
36 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/tmux.tera:
--------------------------------------------------------------------------------
1 | ---
2 | whiskers:
3 | version: "2.1.1"
4 | matrix:
5 | - flavor
6 | filename: "themes/catppuccin_{{flavor.identifier}}_tmux.conf"
7 | ---
8 | {%- set palette = flavor.colors -%}
9 | # vim:set ft=tmux:
10 |
11 | # --> Catppuccin ({{ flavor.identifier | capitalize }})
12 | set -ogq @thm_bg "#{{ palette.base.hex | lower }}"
13 | set -ogq @thm_fg "#{{ palette.text.hex | lower }}"
14 |
15 | # Colors
16 | set -ogq @thm_rosewater "#{{ palette.rosewater.hex | lower }}"
17 | set -ogq @thm_flamingo "#{{ palette.flamingo.hex | lower }}"
18 | set -ogq @thm_rosewater "#{{ palette.rosewater.hex | lower }}"
19 | set -ogq @thm_pink "#{{ palette.pink.hex | lower }}"
20 | set -ogq @thm_mauve "#{{ palette.mauve.hex | lower }}"
21 | set -ogq @thm_red "#{{ palette.red.hex | lower }}"
22 | set -ogq @thm_maroon "#{{ palette.maroon.hex | lower }}"
23 | set -ogq @thm_peach "#{{ palette.peach.hex | lower }}"
24 | set -ogq @thm_yellow "#{{ palette.yellow.hex | lower }}"
25 | set -ogq @thm_green "#{{ palette.green.hex | lower }}"
26 | set -ogq @thm_teal "#{{ palette.teal.hex | lower }}"
27 | set -ogq @thm_sky "#{{ palette.sky.hex | lower }}"
28 | set -ogq @thm_sapphire "#{{ palette.sapphire.hex | lower }}"
29 | set -ogq @thm_blue "#{{ palette.blue.hex | lower }}"
30 | set -ogq @thm_lavender "#{{ palette.lavender.hex | lower }}"
31 |
32 | # Surfaces and overlays
33 | set -ogq @thm_subtext_1 "#{{ palette.subtext0.hex | lower }}"
34 | set -ogq @thm_subtext_0 "#{{ palette.subtext1.hex | lower }}"
35 | set -ogq @thm_overlay_2 "#{{ palette.overlay2.hex | lower }}"
36 | set -ogq @thm_overlay_1 "#{{ palette.overlay1.hex | lower }}"
37 | set -ogq @thm_overlay_0 "#{{ palette.overlay0.hex | lower }}"
38 | set -ogq @thm_surface_2 "#{{ palette.surface2.hex | lower }}"
39 | set -ogq @thm_surface_1 "#{{ palette.surface1.hex | lower }}"
40 | set -ogq @thm_surface_0 "#{{ palette.surface0.hex | lower }}"
41 | set -ogq @thm_mantle "#{{ palette.mantle.hex | lower }}"
42 | set -ogq @thm_crust "#{{ palette.crust.hex | lower }}"
43 |
44 |
--------------------------------------------------------------------------------
/plugins/catppuccin/tmux/utils/status_module.conf:
--------------------------------------------------------------------------------
1 | # vim:set ft=tmux:
2 |
3 | # Embedded style that ensures that modules look "connected"
4 | # when required.
5 | set -gqF @_ctp_connect_style \
6 | "#{?#{==:#{@catppuccin_status_connect_separator},yes},,#[bg=default]}"
7 |
8 | # There are four colors involved:
9 | #
10 | # - Icon
11 | # - fg: @catppuccin_status_[module]_icon_fg [default = crust]
12 | # - bg: @catppuccin_status_[module]_icon_bg [required]
13 | # - Text
14 | # - fg: @catppuccin_status_[module]_text_fg [default = foreground]
15 | # - bg: @catppuccin_status_[module]_text_bg [default = @catppuccin_status_module_text_bg]
16 |
17 | set -ogqF "@catppuccin_status_${MODULE_NAME}_icon_fg" "#{E:@thm_crust}"
18 | set -ogqF "@catppuccin_status_${MODULE_NAME}_text_fg" "#{E:@thm_fg}"
19 |
20 | %if "#{==:#{@catppuccin_status_${MODULE_NAME}_icon_bg},}"
21 | set -gqF "@catppuccin_status_${MODULE_NAME}_icon_bg" "#{@catppuccin_${MODULE_NAME}_color}"
22 | %endif
23 |
24 | %if "#{==:#{@catppuccin_status_${MODULE_NAME}_text_bg},}"
25 | set -gqF @_ctp_module_text_bg "#{E:@catppuccin_status_module_text_bg}"
26 | %else
27 | set -gqF @_ctp_module_text_bg "#{@catppuccin_status_${MODULE_NAME}_text_bg}"
28 | %endif
29 |
30 | set -gF "@catppuccin_status_${MODULE_NAME}" \
31 | "#[fg=#{@catppuccin_status_${MODULE_NAME}_icon_bg}]#{@_ctp_connect_style}#{@catppuccin_status_left_separator}"
32 |
33 | set -agF "@catppuccin_status_${MODULE_NAME}" \
34 | "#[fg=#{@catppuccin_status_${MODULE_NAME}_icon_fg},bg=#{@catppuccin_status_${MODULE_NAME}_icon_bg}]#{@catppuccin_${MODULE_NAME}_icon}"
35 |
36 | set -agF "@catppuccin_status_${MODULE_NAME}" \
37 | "#{@catppuccin_status_middle_separator}"
38 |
39 | set -agF "@catppuccin_status_${MODULE_NAME}" \
40 | "#[fg=#{@catppuccin_status_${MODULE_NAME}_text_fg},bg=#{@_ctp_module_text_bg}]"
41 |
42 | set -ag "@catppuccin_status_${MODULE_NAME}" "#{E:@catppuccin_${MODULE_NAME}_text}"
43 |
44 | set -agF "@catppuccin_status_${MODULE_NAME}" "#[fg=#{@_ctp_module_text_bg}]#{@_ctp_connect_style}#{@catppuccin_status_right_separator}"
45 |
46 | set -ug @_ctp_connect_style
47 | set -ug @_ctp_module_text_bg
48 |
--------------------------------------------------------------------------------
/scripts/ide:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | tmux split-window -v -l 30%
3 | tmux split-window -h -l 66%
4 | tmux split-window -h -l 50%
5 |
--------------------------------------------------------------------------------
/tmux.conf:
--------------------------------------------------------------------------------
1 | set -g default-terminal "tmux-256color"
2 | set -ag terminal-overrides ",xterm-256color:RGB"
3 | set-option -g status-position top
4 | set -g status-left ""
5 | set -g status-right ""
6 |
7 | # Enable using mouse
8 | #set-option -g mouse on
9 |
10 | source ~/.config/tmux/binding.conf
11 | source ~/.config/tmux/utility.conf
12 |
13 | # Setup catppucine theme
14 | set -g @catppuccin_flavor 'mocha'
15 | run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux
16 |
--------------------------------------------------------------------------------
/utility.conf:
--------------------------------------------------------------------------------
1 | # Display lazygit
2 | bind g display-popup -d '#{pane_current_path}' -w80% -h80% -E lazygit
3 |
4 | # Open IDE mode
5 | bind F12 run-shell 'sh ~/.config/tmux/scripts/ide'
6 |
7 | # Display file explorer
8 | bind o display-popup -d '#{pane_current_path}' -w80% -h80% -E mc
9 | bind O run-shell "open #{pane_current_path}"
10 |
--------------------------------------------------------------------------------