moved river's home from home/ to home/river/

This commit is contained in:
2026-06-22 17:05:21 -05:00
parent 319b1a9c55
commit 5ce9d7b688
127 changed files with 1 additions and 1 deletions
Binary file not shown.
+10
View File
@@ -0,0 +1,10 @@
window-padding-x = 2
font-family = "JetBrains Mono NL"
macos-icon = custom
macos-custom-icon = /Users/Maaz/.config/ghostty/Ghostty.icns
theme = Catppuccin Mocha
font-size = 16
@@ -0,0 +1,23 @@
palette = 0=#51576d
palette = 1=#e78284
palette = 2=#a6d189
palette = 3=#e5c890
palette = 4=#8caaee
palette = 5=#f4b8e4
palette = 6=#81c8be
palette = 7=#a5adce
palette = 8=#626880
palette = 9=#e78284
palette = 10=#a6d189
palette = 11=#e5c890
palette = 12=#8caaee
palette = 13=#f4b8e4
palette = 14=#81c8be
palette = 15=#b5bfe2
background = 303446
foreground = c6d0f5
cursor-color = f2d5cf
cursor-text = 232634
selection-background = 44495d
selection-foreground = c6d0f5
split-divider-color = 414559
@@ -0,0 +1,23 @@
palette = 0=#5c5f77
palette = 1=#d20f39
palette = 2=#40a02b
palette = 3=#df8e1d
palette = 4=#1e66f5
palette = 5=#ea76cb
palette = 6=#179299
palette = 7=#acb0be
palette = 8=#6c6f85
palette = 9=#d20f39
palette = 10=#40a02b
palette = 11=#df8e1d
palette = 12=#1e66f5
palette = 13=#ea76cb
palette = 14=#179299
palette = 15=#bcc0cc
background = eff1f5
foreground = 4c4f69
cursor-color = dc8a78
cursor-text = eff1f5
selection-background = d8dae1
selection-foreground = 4c4f69
split-divider-color = ccd0da
@@ -0,0 +1,23 @@
palette = 0=#494d64
palette = 1=#ed8796
palette = 2=#a6da95
palette = 3=#eed49f
palette = 4=#8aadf4
palette = 5=#f5bde6
palette = 6=#8bd5ca
palette = 7=#a5adcb
palette = 8=#5b6078
palette = 9=#ed8796
palette = 10=#a6da95
palette = 11=#eed49f
palette = 12=#8aadf4
palette = 13=#f5bde6
palette = 14=#8bd5ca
palette = 15=#b8c0e0
background = 24273a
foreground = cad3f5
cursor-color = f4dbd6
cursor-text = 181926
selection-background = 3a3e53
selection-foreground = cad3f5
split-divider-color = 363a4f
@@ -0,0 +1,23 @@
palette = 0=#45475a
palette = 1=#f38ba8
palette = 2=#a6e3a1
palette = 3=#f9e2af
palette = 4=#89b4fa
palette = 5=#f5c2e7
palette = 6=#94e2d5
palette = 7=#a6adc8
palette = 8=#585b70
palette = 9=#f38ba8
palette = 10=#a6e3a1
palette = 11=#f9e2af
palette = 12=#89b4fa
palette = 13=#f5c2e7
palette = 14=#94e2d5
palette = 15=#bac2de
background = 1e1e2e
foreground = cdd6f4
cursor-color = f5e0dc
cursor-text = 11111b
selection-background = 353749
selection-foreground = cdd6f4
split-divider-color = 313244
+8
View File
@@ -0,0 +1,8 @@
local config = require("variables.lua")
hl.on("hyprland.start", function ()
hl.exec_cmd(config.terminal)
hl.exec_cmd("nm-applet")
hl.exec_cmd(config.wallpaper_cmd)
hl.exec_cmd(config.bar_cmd)
end)
+21
View File
@@ -0,0 +1,21 @@
hl.config({
decoration = {
rounding = 0,
rounding_power = 0,
-- Change transparency of focused and unfocused windows
active_opacity = 1.0,
inactive_opacity = 0.9,
shadow = {
enabled = false,
},
blur = {
enabled = true,
size = 3,
passes = 1,
vibrancy = 0.1696,
},
}
})
+29
View File
@@ -0,0 +1,29 @@
local theme = require("themes.lua")
hl.config({
general = {
gaps_in = 2,
gaps_out = 10,
border_size = 1,
col = {
active_border = theme.primary,
inactive_border = theme.secondary,
},
resize_on_border = false,
allow_tearing = false,
layout = "dwindle",
},
animations = {
enabled = true,
},
dwindle = {
preserve_split = true,
}
})
+7
View File
@@ -0,0 +1,7 @@
require("autostart.lua")
require("keybinds.lua")
require("monitor.lua")
require("decoration.lua")
require("general.lua")
require("smart-gaps.lua")
require("inputs.lua")
+23
View File
@@ -0,0 +1,23 @@
hl.config({
input = {
kb_layout = "us",
kb_variant = "",
kb_model = "",
kb_options = "",
kb_rules = "",
follow_mouse = 1,
sensitivity = 0,
touchpad = {
natural_scroll = true,
},
},
})
hl.gesture({
fingers = 3,
direction = "horizontal",
action = "workspace"
})
+45
View File
@@ -0,0 +1,45 @@
local config = require("variables.lua")
local mainMod = "SUPER"
-- Application Binds
hl.bind(mainMod .. " + Return", hl.dsp.exec_cmd(config.terminal))
hl.bind(mainMod .. " + E", hl.dsp.exec_cmd(config.file_manager))
hl.bind("ALT + SPACE", hl.dsp.exec_cmd(config.menu))
hl.bind(mainMod .. " + Q", hl.dsp.window.close())
hl.bind(mainMod .. " + Escape", hl.dsp.exec_cmd("command -v hyprshutdown >/dev/null 2>&1 && hyprshutdown || hyprctl dispatch 'hl.dsp.exit()'"))
hl.bind(mainMod .. " + V", hl.dsp.window.float({ action = "toggle" }))
hl.bind(mainMod .. " + J", hl.dsp.layout("togglesplit"))
-- Window Binds
hl.bind(mainMod .. " + left", hl.dsp.focus({ direction = "left" }))
hl.bind(mainMod .. " + right", hl.dsp.focus({ direction = "right" }))
hl.bind(mainMod .. " + up", hl.dsp.focus({ direction = "up" }))
hl.bind(mainMod .. " + down", hl.dsp.focus({ direction = "down" }))
hl.bind(mainMod .. " + SHIFT + LEFT", hl.dsp.move({ direction = "left" }))
hl.bind(mainMod .. " + SHIFT + RIGHT", hl.dsp.move({ direction = "right" }))
hl.bind(mainMod .. " + SHIFT + UP", hl.dsp.move({ direction = "up" }))
hl.bind(mainMod .. " + SHIFT + DOWN", hl.dsp.move({ direction = "down" }))
-- Workspace Binds
for i = 1, 10 do
local key = i % 10
hl.bind(mainMod .. " + " .. key, hl.dsp.focus({ workspace = i}))
hl.bind(mainMod .. " + SHIFT + " .. key, hl.dsp.window.move({ workspace = i }))
end
-- Resize Windows
hl.bind(mainMod .. " + mouse:272", hl.dsp.window.drag(), { mouse = true })
hl.bind(mainMod .. " + mouse:273", hl.dsp.window.resize(), { mouse = true })
-- Laptop Multimedia Keys
hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd("wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"), { locked = true, repeating = true })
hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"), { locked = true, repeating = true })
hl.bind("XF86AudioMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"), { locked = true, repeating = true })
hl.bind("XF86AudioMicMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"), { locked = true, repeating = true })
hl.bind("XF86MonBrightnessUp", hl.dsp.exec_cmd("brightnessctl -e4 -n2 set 5%+"), { locked = true, repeating = true })
hl.bind("XF86MonBrightnessDown",hl.dsp.exec_cmd("brightnessctl -e4 -n2 set 5%-"), { locked = true, repeating = true })
+6
View File
@@ -0,0 +1,6 @@
hl.monitor({
output = "eDP-1",
mode = "1920x1080@60",
position = "0x0",
scale = 1,
})
+14
View File
@@ -0,0 +1,14 @@
hl.workspace_rule({ workspace = "w[tv1]", gaps_out = 0, gaps_in = 0 })
hl.workspace_rule({ workspace = "f[1]", gaps_out = 0, gaps_in = 0 })
hl.window_rule({
name = "no-gaps-wtv1",
match = { float = false, workspace = "w[tv1]" },
border_size = 0,
rounding = 0,
})
hl.window_rule({
name = "no-gaps-f1",
match = { float = false, workspace = "f[1]" },
border_size = 0,
rounding = 0,
})
+17
View File
@@ -0,0 +1,17 @@
local normal = {
primary = "rgba(33ccffee)",
secondary = "rgba(595959aa)",
};
local gray_blue = {
primary = "rgba(D9F7FAaa)",
secondary = "rgba(D8DDDEaa)",
}
local purple = {
primary = "rgba(9fa1ffff)",
secondary = "rgba(b5baffff)"
}
-- Change the option:
return purple
+25
View File
@@ -0,0 +1,25 @@
local function wallpaper_util(wallpaper_path)
local ext = wallpaper_path:lower():match("^.+%.([a-z0-9]+)$")
if ext == "mp4" or ext == "mkv" or ext == "webm" or ext == "mov" then
return string.format(
'mpvpaper ALL "%s" --mpv-options="loop-file=inf no-audio"',
wallpaper_path
)
end
return string.format(
'mpvpaper '*' "%s"',
wallpaper_path
)
end
return {
terminal = "ghostty",
file_manager = "dolphin",
screen_shot_cmd = "hyprshot -m region -o ~/Pictures/Screenshots",
menu = "rofi -show drun",
wallpaper_cmd = wallpaper_util("/home/river/Videos/Wallpapers/Wallpaper.mp4"),
browser = "brave",
bar_cmd = "qs"
}
+8
View File
@@ -0,0 +1,8 @@
tt.*
.tests
doc/tags
debug
.repro
foo.*
*.log
data
+15
View File
@@ -0,0 +1,15 @@
{
"neodev": {
"library": {
"enabled": true,
"plugins": true
}
},
"neoconf": {
"plugins": {
"lua_ls": {
"enabled": true
}
}
}
}
+201
View File
@@ -0,0 +1,201 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
+2
View File
@@ -0,0 +1,2 @@
-- bootstrap lazy.nvim, LazyVim and your plugins
require("config.lazy")
+45
View File
@@ -0,0 +1,45 @@
{
"LazyVim": { "branch": "main", "commit": "83d90f339defdb109a6ede333865a66ffc7ef6aa" },
"SchemaStore.nvim": { "branch": "main", "commit": "1c28767e3a7f3c9b7c5cc66e7f16b268c964e2c9" },
"blink-copilot": { "branch": "main", "commit": "7ad8209b2f880a2840c94cdcd80ab4dc511d4f39" },
"blink.cmp": { "branch": "main", "commit": "78336bc89ee5365633bcf754d93df01678b5c08f" },
"bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
"catppuccin": { "branch": "main", "commit": "426dbebe06b5c69fd846ceb17b42e12f890aedf1" },
"conform.nvim": { "branch": "master", "commit": "0451b96660e8ca7dd8897718bad63932cf59255a" },
"copilot.lua": { "branch": "master", "commit": "7e9c269bf40dea86b44e64bd746f1808e991e419" },
"crates.nvim": { "branch": "main", "commit": "694357861ec9ebf12475ddcdd04ea45a0923c32d" },
"dial.nvim": { "branch": "master", "commit": "f2634758455cfa52a8acea6f142dcd6271a1bf57" },
"flash.nvim": { "branch": "main", "commit": "fcea7ff883235d9024dc41e638f164a450c14ca2" },
"friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" },
"gh.nvim": { "branch": "main", "commit": "6f367b2ab8f9d4a0a23df2b703a3f91137618387" },
"gitsigns.nvim": { "branch": "main", "commit": "dd3f588bacbeb041be6facf1742e42097f62165d" },
"grug-far.nvim": { "branch": "main", "commit": "a5875fde04e2940a5060f8df9c453bcfcfe0a5c0" },
"lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" },
"lazydev.nvim": { "branch": "main", "commit": "ff2cbcba459b637ec3fd165a2be59b7bbaeedf0d" },
"litee.nvim": { "branch": "main", "commit": "4efaf373322d9e71eaff31164abb393417cc6f6a" },
"lualine.nvim": { "branch": "master", "commit": "131a558e13f9f28b15cd235557150ccb23f89286" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "eaa34887d444cb002e1b165fac399ae4bbc771f7" },
"mason.nvim": { "branch": "main", "commit": "8e921c2b68571e978db5d4d3fef9c9a7f8755473" },
"mini.ai": { "branch": "main", "commit": "a783ce6e1a5b3bc90519f20b51f4a5f6702734af" },
"mini.hipatterns": { "branch": "main", "commit": "35b632f6c138d720f29de87476361af44bed2198" },
"mini.icons": { "branch": "main", "commit": "9c7b1b90b15bdd69c52f6e31889dbc9987c30ec4" },
"mini.pairs": { "branch": "main", "commit": "30cf2f01c4aaa2033db67376b9924fa2442c05d6" },
"noice.nvim": { "branch": "main", "commit": "7bfd942445fb63089b59f97ca487d605e715f155" },
"nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
"nvim-lint": { "branch": "master", "commit": "665525810630701b84181e4d9eefd24b49845b29" },
"nvim-lspconfig": { "branch": "master", "commit": "8f7e64066e2641d5e7d494962a9c7051e3d38dd5" },
"nvim-treesitter": { "branch": "main", "commit": "4916d6592ede8c07973490d9322f187e07dfefac" },
"nvim-treesitter-textobjects": { "branch": "main", "commit": "851e865342e5a4cb1ae23d31caf6e991e1c99f1e" },
"nvim-ts-autotag": { "branch": "main", "commit": "88c1453db4ba7dd24131086fe51fdf74e587d275" },
"persistence.nvim": { "branch": "main", "commit": "b20b2a7887bd39c1a356980b45e03250f3dce49c" },
"plenary.nvim": { "branch": "master", "commit": "74b06c6c75e4eeb3108ec01852001636d85a932b" },
"rustaceanvim": { "branch": "main", "commit": "f5c1bf138571442bfda96a2bf45239e009264a6e" },
"snacks.nvim": { "branch": "main", "commit": "ad9ede6a9cddf16cedbd31b8932d6dcdee9b716e" },
"todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" },
"tokyonight.nvim": { "branch": "main", "commit": "cdc07ac78467a233fd62c493de29a17e0cf2b2b6" },
"trouble.nvim": { "branch": "main", "commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a" },
"ts-comments.nvim": { "branch": "main", "commit": "123a9fb12e7229342f807ec9e6de478b1102b041" },
"venv-selector.nvim": { "branch": "main", "commit": "bcb2f58533c59b01565285eba49693f00bc460f5" },
"which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" },
"yanky.nvim": { "branch": "main", "commit": "784188e0a7363e762e53140f39124d786aec0832" }
}
+25
View File
@@ -0,0 +1,25 @@
{
"extras": [
"lazyvim.plugins.extras.ai.copilot",
"lazyvim.plugins.extras.coding.yanky",
"lazyvim.plugins.extras.editor.dial",
"lazyvim.plugins.extras.formatting.prettier",
"lazyvim.plugins.extras.lang.docker",
"lazyvim.plugins.extras.lang.git",
"lazyvim.plugins.extras.lang.json",
"lazyvim.plugins.extras.lang.python",
"lazyvim.plugins.extras.lang.rust",
"lazyvim.plugins.extras.lang.tailwind",
"lazyvim.plugins.extras.lang.toml",
"lazyvim.plugins.extras.lang.typescript",
"lazyvim.plugins.extras.linting.eslint",
"lazyvim.plugins.extras.util.dot",
"lazyvim.plugins.extras.util.gh",
"lazyvim.plugins.extras.util.mini-hipatterns"
],
"install_version": 8,
"news": {
"NEWS.md": "11866"
},
"version": 8
}
@@ -0,0 +1,8 @@
-- Autocmds are automatically loaded on the VeryLazy event
-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua
--
-- Add any additional autocmds here
-- with `vim.api.nvim_create_autocmd`
--
-- Or remove existing autocmds by their group name (which is prefixed with `lazyvim_` for the defaults)
-- e.g. vim.api.nvim_del_augroup_by_name("lazyvim_wrap_spell")
@@ -0,0 +1,3 @@
-- Keymaps are automatically loaded on the VeryLazy event
-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
-- Add any additional keymaps here
@@ -0,0 +1,53 @@
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not (vim.uv or vim.loop).fs_stat(lazypath) then
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
if vim.v.shell_error ~= 0 then
vim.api.nvim_echo({
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
{ out, "WarningMsg" },
{ "\nPress any key to exit..." },
}, true, {})
vim.fn.getchar()
os.exit(1)
end
end
vim.opt.rtp:prepend(lazypath)
require("lazy").setup({
spec = {
-- add LazyVim and import its plugins
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
-- import/override with your plugins
{ import = "plugins" },
},
defaults = {
-- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup.
-- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default.
lazy = false,
-- It's recommended to leave version=false for now, since a lot the plugin that support versioning,
-- have outdated releases, which may break your Neovim install.
version = false, -- always use the latest git commit
-- version = "*", -- try installing the latest stable version for plugins that support semver
},
install = { colorscheme = { "tokyonight", "habamax" } },
checker = {
enabled = true, -- check for plugin updates periodically
notify = false, -- notify on update
}, -- automatically check for plugin updates
performance = {
rtp = {
-- disable some rtp plugins
disabled_plugins = {
"gzip",
-- "matchit",
-- "matchparen",
-- "netrwPlugin",
"tarPlugin",
"tohtml",
"tutor",
"zipPlugin",
},
},
},
})
@@ -0,0 +1,3 @@
-- Options are automatically loaded before lazy.nvim startup
-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua
-- Add any additional options here
@@ -0,0 +1,20 @@
return {
-- Catppuccin theme with transparency
{
"catppuccin/nvim",
name = "catppuccin",
priority = 1000,
opts = {
flavour = "mocha", -- Choose "latte", "frappe", "macchiato", or "mocha"
transparent_background = true,
custom_highlights = function(colors)
return {
VertSplit = { fg = colors.overlay0 },
}
end,
},
},
-- Override LazyVim's default colorscheme
{ "LazyVim/LazyVim", opts = { colorscheme = "catppuccin" } },
}
@@ -0,0 +1,197 @@
-- since this is just an example spec, don't actually load anything here and return an empty spec
-- stylua: ignore
if true then return {} end
-- every spec file under the "plugins" directory will be loaded automatically by lazy.nvim
--
-- In your plugin files, you can:
-- * add extra plugins
-- * disable/enabled LazyVim plugins
-- * override the configuration of LazyVim plugins
return {
-- add gruvbox
{ "ellisonleao/gruvbox.nvim" },
-- Configure LazyVim to load gruvbox
{
"LazyVim/LazyVim",
opts = {
colorscheme = "gruvbox",
},
},
-- change trouble config
{
"folke/trouble.nvim",
-- opts will be merged with the parent spec
opts = { use_diagnostic_signs = true },
},
-- disable trouble
{ "folke/trouble.nvim", enabled = false },
-- override nvim-cmp and add cmp-emoji
{
"hrsh7th/nvim-cmp",
dependencies = { "hrsh7th/cmp-emoji" },
---@param opts cmp.ConfigSchema
opts = function(_, opts)
table.insert(opts.sources, { name = "emoji" })
end,
},
-- change some telescope options and a keymap to browse plugin files
{
"nvim-telescope/telescope.nvim",
keys = {
-- add a keymap to browse plugin files
-- stylua: ignore
{
"<leader>fp",
function() require("telescope.builtin").find_files({ cwd = require("lazy.core.config").options.root }) end,
desc = "Find Plugin File",
},
},
-- change some options
opts = {
defaults = {
layout_strategy = "horizontal",
layout_config = { prompt_position = "top" },
sorting_strategy = "ascending",
winblend = 0,
},
},
},
-- add pyright to lspconfig
{
"neovim/nvim-lspconfig",
---@class PluginLspOpts
opts = {
---@type lspconfig.options
servers = {
-- pyright will be automatically installed with mason and loaded with lspconfig
pyright = {},
},
},
},
-- add tsserver and setup with typescript.nvim instead of lspconfig
{
"neovim/nvim-lspconfig",
dependencies = {
"jose-elias-alvarez/typescript.nvim",
init = function()
require("lazyvim.util").lsp.on_attach(function(_, buffer)
-- stylua: ignore
vim.keymap.set( "n", "<leader>co", "TypescriptOrganizeImports", { buffer = buffer, desc = "Organize Imports" })
vim.keymap.set("n", "<leader>cR", "TypescriptRenameFile", { desc = "Rename File", buffer = buffer })
end)
end,
},
---@class PluginLspOpts
opts = {
---@type lspconfig.options
servers = {
-- tsserver will be automatically installed with mason and loaded with lspconfig
tsserver = {},
},
-- you can do any additional lsp server setup here
-- return true if you don't want this server to be setup with lspconfig
---@type table<string, fun(server:string, opts:_.lspconfig.options):boolean?>
setup = {
-- example to setup with typescript.nvim
tsserver = function(_, opts)
require("typescript").setup({ server = opts })
return true
end,
-- Specify * to use this function as a fallback for any server
-- ["*"] = function(server, opts) end,
},
},
},
-- for typescript, LazyVim also includes extra specs to properly setup lspconfig,
-- treesitter, mason and typescript.nvim. So instead of the above, you can use:
{ import = "lazyvim.plugins.extras.lang.typescript" },
-- add more treesitter parsers
{
"nvim-treesitter/nvim-treesitter",
opts = {
ensure_installed = {
"bash",
"html",
"javascript",
"json",
"lua",
"markdown",
"markdown_inline",
"python",
"query",
"regex",
"tsx",
"typescript",
"vim",
"yaml",
},
},
},
-- since `vim.tbl_deep_extend`, can only merge tables and not lists, the code above
-- would overwrite `ensure_installed` with the new value.
-- If you'd rather extend the default config, use the code below instead:
{
"nvim-treesitter/nvim-treesitter",
opts = function(_, opts)
-- add tsx and treesitter
vim.list_extend(opts.ensure_installed, {
"tsx",
"typescript",
})
end,
},
-- the opts function can also be used to change the default opts:
{
"nvim-lualine/lualine.nvim",
event = "VeryLazy",
opts = function(_, opts)
table.insert(opts.sections.lualine_x, {
function()
return "😄"
end,
})
end,
},
-- or you can return new options to override all the defaults
{
"nvim-lualine/lualine.nvim",
event = "VeryLazy",
opts = function()
return {
--[[add your custom lualine config here]]
}
end,
},
-- use mini.starter instead of alpha
{ import = "lazyvim.plugins.extras.ui.mini-starter" },
-- add jsonls and schemastore packages, and setup treesitter for json, json5 and jsonc
{ import = "lazyvim.plugins.extras.lang.json" },
-- add any tools you want to have installed below
{
"williamboman/mason.nvim",
opts = {
ensure_installed = {
"stylua",
"shellcheck",
"shfmt",
"flake8",
},
},
},
}
@@ -0,0 +1,17 @@
return {
{
"neovim/nvim-lspconfig",
opts = {
servers = {
yamlls = {
settings = {
yaml = {
schemas = {}, -- This clears the auto-detected schemas (like K8s)
completion = false, -- This turns off the completion for YAML
},
},
},
},
},
},
}
+3
View File
@@ -0,0 +1,3 @@
indent_type = "Spaces"
indent_width = 2
column_width = 120
@@ -0,0 +1,34 @@
# EditorConfig helps developers define and maintain consistent
# coding styles between different editors and IDEs
# EditorConfig is awesome: https://EditorConfig.org
root = true
[*]
charset = utf-8
indent_size = 2
indent_style = space
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
# go
[*.go]
indent_style = tab
indent_size = 4
# python
[*.{ini,py,py.tpl,rst}]
indent_size = 4
# rust
[*.rs]
indent_size = 4
# documentation, utils
[*.{md,mdx,diff}]
trim_trailing_whitespace = false
# windows shell scripts
[*.{cmd,bat,ps1}]
end_of_line = crlf
@@ -0,0 +1,53 @@
name: Bug Report
description: Report your bugs with the theme here!
labels: [bug]
body:
- type: checkboxes
attributes:
label: I am not requesting help with my configuration and believe something is genuinely broken.
description: Please open a [discussion](https://github.com/catppuccin/tmux/discussions/new?category=help) if you need support.
options:
- label: Something is really actually broken.
required: true
- type: checkboxes
attributes:
label: Is there an existing issue outlining your problem?
description: Please search to see if an issue already exists for your problem.
options:
- label: I have searched the existing issues and [troubleshooting guide](https://github.com/catppuccin/tmux/blob/main/docs/guides/troubleshooting.md), and they do not solve my problem.
required: true
- type: textarea
attributes:
label: Describe your problem.
description: Also tell us, what do you expect to see?
placeholder: The status bar is bright green, I expect it to be mantle.
validations:
required: true
- type: textarea
attributes:
label: Paste your configuration.
description: Provide us with the contents of your `~/.tmux.conf` file.
validations:
required: true
- type: textarea
attributes:
label: Attach screenshots.
description: If applicable, attach screenshots which clearly highlight the issue.
- type: input
attributes:
label: What tmux version are you seeing the issue on?
description: "You can find your version by running `tmux -V`"
placeholder: tmux 3.5a
validations:
required: true
- type: input
attributes:
label: What shell are you using?
description: "You can find your shell by running `echo $SHELL`"
placeholder: bash
validations:
required: true
- type: textarea
attributes:
label: Any additional comments?
description: Add any information that hasn't been covered in the previous sections!
@@ -0,0 +1,11 @@
blank_issues_enabled: false
contact_links:
- name: Get Support
url: https://github.com/catppuccin/tmux/discussions/new?category=help
about: Need help tweaking your Catppuccin tmux configuration? Ask questions in GitHub Discussions!
- name: Show & Tell
url: https://github.com/catppuccin/tmux/discussions/new?category=show-tell
about: Want to showcase your customised Catppuccin tmux configuration? Show it off in GitHub Discussions!
- name: Community Discord
url: https://discord.com/servers/catppuccin-907385605422448742
about: Chat to other community members!
@@ -0,0 +1,18 @@
name: Enhancement Issue
description: Request improvements to the theme here!
labels: [enhancement]
body:
- type: checkboxes
attributes:
label: Is there an existing issue outlining your improvement?
description: Please search to see if your improvement has already been raised as an issue.
options:
- label: I have searched the existing issues and my improvement has not been raised yet.
required: true
- type: textarea
attributes:
label: What would you like to see added and/or changed?
description: Make sure to mention why you think this is an improvement!
placeholder: I'd like to have an extra configuration option for...
validations:
required: true
@@ -0,0 +1,18 @@
name: Meta Issue
description: Raise any issue regarding the repository here!
labels: [meta]
body:
- type: checkboxes
attributes:
label: Is there an existing issue outlining your problem?
description: Please search to see if an issue already exists for your problem.
options:
- label: I have searched the existing issues and they do not solve my problem.
required: true
- type: textarea
attributes:
label: Describe your issue.
description: Bugs should be raised under a [Bug Report](https://github.com/catppuccin/tmux/issues/new?assignees=&labels=bug&template=bug.yml).
placeholder: The README is missing crucial information such as...
validations:
required: true
@@ -0,0 +1,27 @@
{
"last-release-sha": "408c02ccf44d0a59a7a63ce2b65c5c29982c5c0e",
"packages": {
".": {
"release-type": "simple",
"changelog-path": "CHANGELOG.md",
"bump-minor-pre-major": true,
"bump-patch-for-minor-pre-major": false,
"draft": false,
"extra-files": [
"README.md",
"docs/tutorials/01-getting-started.md"
]
}
},
"changelog-sections": [
{ "type": "feat", "section": "Added" },
{ "type": "change", "section": "Changed" },
{ "type": "fix", "section": "Fixed" },
{ "type": "deprecate", "section": "Deprecated" },
{ "type": "remove", "section": "Removed" },
{ "type": "perf", "section": "Performance Improvements" },
{ "type": "revert", "section": "Reverts" },
{ "type": "docs", "section": "Documentation" }
],
"$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json"
}
@@ -0,0 +1,3 @@
{
".": "2.3.0"
}
@@ -0,0 +1,45 @@
on:
push:
branches:
- main
permissions:
contents: write
pull-requests: write
name: release-please
jobs:
release-please:
runs-on: ubuntu-latest
steps:
- uses: googleapis/release-please-action@v4
id: release
with:
token: ${{ secrets.GITHUB_TOKEN }}
config-file: .github/release-please-config.json
manifest-file: .github/release-please-manifest.json
- uses: actions/checkout@v6
- name: tag major and minor versions
if: ${{ steps.release.outputs.release_created }}
run: |
git config user.name github-actions[bot]
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
git remote add gh-token "https://${{ secrets.GITHUB_TOKEN }}@github.com/googleapis/release-please-action.git"
git tag -d latest || true
git tag -d v${{ steps.release.outputs.major }} || true
git tag -d v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }} || true
git push origin :latest || true
git push origin :v${{ steps.release.outputs.major }} || true
git push origin :v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }} || true
git tag -a latest -m "Release v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }}"
git tag -a v${{ steps.release.outputs.major }} -m "Release v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }}"
git tag -a v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }} -m "Release v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }}"
git push origin latest
git push origin v${{ steps.release.outputs.major }}
git push origin v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }}
@@ -0,0 +1,32 @@
---
name: Shellcheck
permissions:
contents: read
on:
pull_request:
paths-ignore:
- "*.md"
- "assets/**"
push:
paths-ignore:
- "*.md"
- "assets/**"
branches:
- main
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
shellcheck:
name: Shellcheck
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Run ShellCheck
uses: ludeeus/action-shellcheck@master
with:
additional_files: "catppuccin.tmux"
env:
SHELLCHECK_OPTS: "-a"
@@ -0,0 +1,35 @@
---
name: Tests
permissions:
contents: read
on:
pull_request:
paths-ignore:
- "*.md"
- "assets/**"
push:
paths-ignore:
- "*.md"
- "assets/**"
branches:
- main
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
ubuntu:
name: Test
runs-on: ubuntu-24.04
steps:
- name: Install tmux
run: sudo apt update && sudo apt install -y --allow-downgrades tmux=3.4-1build1
- uses: actions/checkout@v6
- name: Run Tests
shell: bash
run: |
bash --version
tmux -V
./run_tests.sh
@@ -0,0 +1,15 @@
name: whiskers
on:
workflow_dispatch:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
run:
uses: catppuccin/actions/.github/workflows/whiskers-check.yml@v1
with:
args: tmux.tera
secrets: inherit
@@ -0,0 +1,3 @@
custom
!custom/README.md
!custom/example.sh
@@ -0,0 +1,15 @@
{
"$schema": "https://raw.githubusercontent.com/DavidAnson/markdownlint/v0.35.0/schema/markdownlint-config-schema.json",
"line-length": {
"code_block_line_length": 120,
"tables": false
},
"no-inline-html": {
"allowed_elements": ["details", "summary", "img", "p", "a", "h3"]
},
"first-line-heading": false,
"no-alt-text": false,
"code-block-style": {
"style": "consistent"
}
}
@@ -0,0 +1,6 @@
shell=bash
# TODO: Find a way to declare color variables
disable=SC2154
external-sources=true
@@ -0,0 +1,222 @@
# Changelog
## [2.3.0](https://github.com/catppuccin/tmux/compare/v2.2.2...v2.3.0) (2026-04-08)
### Added
* add RAM status module ([#570](https://github.com/catppuccin/tmux/issues/570)) ([4a9165b](https://github.com/catppuccin/tmux/commit/4a9165b2b029b57bbccc3bab488c3c8474a3056e))
## [2.2.2](https://github.com/catppuccin/tmux/compare/v2.2.1...v2.2.2) (2026-04-08)
### Fixed
* Update status-line.md ([#528](https://github.com/catppuccin/tmux/issues/528)) ([4fb9e8d](https://github.com/catppuccin/tmux/commit/4fb9e8d10ed381981920054df8a449165efd23a6))
## [2.2.1](https://github.com/catppuccin/tmux/compare/v2.2.0...v2.2.1) (2026-04-07)
### Documentation
* **03-resetting-theme:** remove tip ([#584](https://github.com/catppuccin/tmux/issues/584)) ([f451db9](https://github.com/catppuccin/tmux/commit/f451db96c8e4e7d9cdea7bbb0b57c149bfb40e28))
## [2.2.0](https://github.com/catppuccin/tmux/compare/v2.1.3...v2.2.0) (2026-04-07)
### Added
* add a "reset" option to clear options on plugin load ([#500](https://github.com/catppuccin/tmux/issues/500)) ([556fea5](https://github.com/catppuccin/tmux/commit/556fea52bb5d827a42740bc605de4f1d8a0440de))
### Fixed
* change tmux plugin kube module uses ([#531](https://github.com/catppuccin/tmux/issues/531)) ([ef94979](https://github.com/catppuccin/tmux/commit/ef9497982032a9494f4bf3ad276fba58b61bd7e6))
* **theme:** Cleanup duplicate palette theme color ([#562](https://github.com/catppuccin/tmux/issues/562)) ([efeb958](https://github.com/catppuccin/tmux/commit/efeb9583cec0bc7486caedbc309df0ea9505d332))
### Documentation
* clarify custom-status should be added before plugin is loaded ([#551](https://github.com/catppuccin/tmux/issues/551)) ([8b0b915](https://github.com/catppuccin/tmux/commit/8b0b9150f9d7dee2a4b70cdb50876ba7fd6d674a))
* status-line left/right mixup ([#542](https://github.com/catppuccin/tmux/issues/542)) ([9d21d7c](https://github.com/catppuccin/tmux/commit/9d21d7ccd50df82bd732be2850ce2798e78b6391))
* stop recommending `-o` ([#524](https://github.com/catppuccin/tmux/issues/524)) ([14a546f](https://github.com/catppuccin/tmux/commit/14a546fb64dc1141e5d02bac2185d8c1fd530d6a))
## [2.1.3](https://github.com/catppuccin/tmux/compare/v2.1.2...v2.1.3) (2025-03-23)
### Fixed
* make the space in [@catppuccin](https://github.com/catppuccin)_window_flags_icon_format user-configurable ([#465](https://github.com/catppuccin/tmux/issues/465)) ([320e184](https://github.com/catppuccin/tmux/commit/320e184a31d0825cb4f4af550492cbdff2fc3ffc))
* pomodoro plugin icon color - use a defined color (peach) rather than orange ([#466](https://github.com/catppuccin/tmux/issues/466)) ([da2143d](https://github.com/catppuccin/tmux/commit/da2143d2a6baf7951eda302678a57a171a78d78a))
* use plain awk for the load status line module, removing a dep ([#508](https://github.com/catppuccin/tmux/issues/508)) ([c21246e](https://github.com/catppuccin/tmux/commit/c21246ed58e867c9594dc687c5e92b229bc1760d))
* use the correct option for the left separator for the current window ([#450](https://github.com/catppuccin/tmux/issues/450)) ([ba9bd88](https://github.com/catppuccin/tmux/commit/ba9bd88c98c81f25060f051ed983e40f82fdd3ba))
### Documentation
* add a troubleshooting guide ([#473](https://github.com/catppuccin/tmux/issues/473)) ([ab647cf](https://github.com/catppuccin/tmux/commit/ab647cf91501cebbd3f967da2b488a5f87614e6b))
* Correct the plugin path for TPM in the readme ([#492](https://github.com/catppuccin/tmux/issues/492)) ([ee8970d](https://github.com/catppuccin/tmux/commit/ee8970ddb5dd60fd93e254de9a30ed8277c7ccc7))
* **README:** fix codeblock indentation ([#489](https://github.com/catppuccin/tmux/issues/489)) ([cce60ab](https://github.com/catppuccin/tmux/commit/cce60abc8efd7a641a5fcc8001e6b3ae61e8d5fe))
* **README:** update migration guide issue link ([#493](https://github.com/catppuccin/tmux/issues/493)) ([073ee54](https://github.com/catppuccin/tmux/commit/073ee54992c59fedcc29c1525a26f95691f0ae1f))
## [2.1.2](https://github.com/catppuccin/tmux/compare/v2.1.1...v2.1.2) (2024-12-08)
### Fixed
* 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))
* 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))
## [2.1.1](https://github.com/catppuccin/tmux/compare/v2.1.0...v2.1.1) (2024-11-17)
### Fixed
* 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))
* 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))
### Documentation
* add possible values for window_flags ([#417](https://github.com/catppuccin/tmux/issues/417)) ([c8a2d1a](https://github.com/catppuccin/tmux/commit/c8a2d1ae9649aa904960bef1516ea2ff9a3e6ad0))
* **custom-status:** fix typo `catpuccin` -&gt; `catppuccin` ([#424](https://github.com/catppuccin/tmux/issues/424)) ([aaf9120](https://github.com/catppuccin/tmux/commit/aaf9120f769a34e5491b3ee7f885c8c347f2f663))
## [2.1.0](https://github.com/catppuccin/tmux/compare/v2.0.0...v2.1.0) (2024-10-25)
### Added
* 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))
### Fixed
* 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))
* 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))
### Documentation
* **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))
## [2.0.0](https://github.com/catppuccin/tmux/compare/v1.0.3...v2.0.0) (2024-10-21)
### ⚠ BREAKING CHANGES
* rebalance the colors used, and follow the styleguide
* change how windows are styled
* change how status modules are styled
* rebalance colors, adhere to style guide & overhaul docs ([#372](https://github.com/catppuccin/tmux/issues/372))
### Features
* change how status modules are styled ([79284da](https://github.com/catppuccin/tmux/commit/79284da665bf5d39d304e23df4165c8ac37f9b7a))
* rebalance colors, adhere to style guide & overhaul docs ([#372](https://github.com/catppuccin/tmux/issues/372)) ([79284da](https://github.com/catppuccin/tmux/commit/79284da665bf5d39d304e23df4165c8ac37f9b7a))
* rebalance the colors used, and follow the styleguide ([79284da](https://github.com/catppuccin/tmux/commit/79284da665bf5d39d304e23df4165c8ac37f9b7a))
* rebalance the status module colors for cpu and battery ([79284da](https://github.com/catppuccin/tmux/commit/79284da665bf5d39d304e23df4165c8ac37f9b7a))
* replace `_ctp_status_bg` with unified `_ctp_module_bg_color` in module configuration ([a4d4ad0](https://github.com/catppuccin/tmux/commit/a4d4ad09cc8b5c9338cbd4510450d0ae997a7710))
### Bug Fixes
* **tests:** add tests for window styling ([79284da](https://github.com/catppuccin/tmux/commit/79284da665bf5d39d304e23df4165c8ac37f9b7a))
* use ubuntu-24.04 in ci ([#388](https://github.com/catppuccin/tmux/issues/388)) ([3b0e0a6](https://github.com/catppuccin/tmux/commit/3b0e0a6f0741bf09149f23620516decd7b5f5ba5))
### Code Refactoring
* change how windows are styled ([79284da](https://github.com/catppuccin/tmux/commit/79284da665bf5d39d304e23df4165c8ac37f9b7a))
## [1.0.3](https://github.com/catppuccin/tmux/compare/v1.0.2...v1.0.3) (2024-10-16)
### Bug Fixes
* change the default status line background to mantle ([#377](https://github.com/catppuccin/tmux/issues/377)) ([47dbe81](https://github.com/catppuccin/tmux/commit/47dbe818e3ad7a008ccbd3e5d69a29a4509f7d07))
## [1.0.2](https://github.com/catppuccin/tmux/compare/v1.0.1...v1.0.2) (2024-10-12)
### Bug Fixes
* **ci:** update tmux in test workflow ([#370](https://github.com/catppuccin/tmux/issues/370)) ([02debd3](https://github.com/catppuccin/tmux/commit/02debd396802af9fe4b41601739e48ef38217533))
* **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)
* typo in readme config example ([#362](https://github.com/catppuccin/tmux/issues/362)) ([41ee0b8](https://github.com/catppuccin/tmux/commit/41ee0b89acb3f4afe531209558d6b8e4d7d4ae1a))
* **window:** middle separator colors ([#369](https://github.com/catppuccin/tmux/issues/369)) ([c59df83](https://github.com/catppuccin/tmux/commit/c59df83d68e64feb8d015c2eb3f8b90febc95a53))
## [1.0.1](https://github.com/catppuccin/tmux/compare/v1.0.0...v1.0.1) (2024-10-05)
### Bug Fixes
* **readme:** fix the example configurations ([#343](https://github.com/catppuccin/tmux/issues/343)) ([06183b3](https://github.com/catppuccin/tmux/commit/06183b31216b4ed917760b3d59565e242eee6a64))
* **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))
## [1.0.0](https://github.com/catppuccin/tmux/compare/v0.4.0...v1.0.0) (2024-10-02)
### Bug Fixes
* **readme:** remove -F when setting the status line ([#333](https://github.com/catppuccin/tmux/issues/333)) ([b38421f](https://github.com/catppuccin/tmux/commit/b38421fa15d8dfafecaf6f438115cfe3c1259bf0))
## [0.4.0](https://github.com/catppuccin/tmux/compare/v0.3.0...v0.4.0) (2024-10-01)
### ⚠ BREAKING CHANGES
* rewrite to use tmux native rather than bash ([#328](https://github.com/catppuccin/tmux/issues/328))
### Bug Fixes
* **readme:** update the readme to include upgrade instructions ([1bcad05](https://github.com/catppuccin/tmux/commit/1bcad05f206fb4bb9706403da24b97d2cdb64bad))
* **window:** ensure the window formats are set correctly ([#331](https://github.com/catppuccin/tmux/issues/331)) ([1bcad05](https://github.com/catppuccin/tmux/commit/1bcad05f206fb4bb9706403da24b97d2cdb64bad))
### Code Refactoring
* rewrite to use tmux native rather than bash ([#328](https://github.com/catppuccin/tmux/issues/328)) ([87fa4a0](https://github.com/catppuccin/tmux/commit/87fa4a08c5a7fdbef3130f05a8b12f0ca26d4a46))
## [0.3.0](https://github.com/catppuccin/tmux/compare/v0.2.0...v0.3.0) (2024-09-17)
### Features
* **status:** Add support for status module middle separators ([#310](https://github.com/catppuccin/tmux/issues/310)) ([1612a23](https://github.com/catppuccin/tmux/commit/1612a23174a6771ac466312eb156f83b8b89d907))
* **status:** window specific separator config ([#198](https://github.com/catppuccin/tmux/issues/198)) ([8276c5a](https://github.com/catppuccin/tmux/commit/8276c5a5e33dbbbae3d370db2f6129e20b402f8a))
### Bug Fixes
* **kube:** escape env var ([c31b9b2](https://github.com/catppuccin/tmux/commit/c31b9b2c6c7c50abbebd02b80c4fd32b2782a011))
## [0.2.0](https://github.com/catppuccin/tmux/compare/v0.1.0...v0.2.0) (2024-08-23)
### Features
* error/warning messages on first load ([#278](https://github.com/catppuccin/tmux/issues/278)) ([a2dda02](https://github.com/catppuccin/tmux/commit/a2dda02b43194aec5deddf2890c28c76b4c11ed4))
* warn users of whitespace in module lists ([#266](https://github.com/catppuccin/tmux/issues/266)) ([362a306](https://github.com/catppuccin/tmux/commit/362a306db71794f04d0995fc058bcaa094d1af70))
### Bug Fixes
* add missing batch options `catppuccin_pane{,_active}_border_style` ([3ffbc37](https://github.com/catppuccin/tmux/commit/3ffbc3700b4c1c3e2c4d015c5a51ccef555dabaf))
* add missing batch options catppuccin_pane{,_active}_border_style ([3ffbc37](https://github.com/catppuccin/tmux/commit/3ffbc3700b4c1c3e2c4d015c5a51ccef555dabaf))
* escaping in options ([#298](https://github.com/catppuccin/tmux/issues/298)) ([9b57c20](https://github.com/catppuccin/tmux/commit/9b57c2002081fff8af16b878f1369d46788c0409))
* **pomodoro_plus:** option names ([#273](https://github.com/catppuccin/tmux/issues/273)) ([51dde6e](https://github.com/catppuccin/tmux/commit/51dde6e8d4d3d8da97d915b01594a08aa4ac0cca))
* warning `[@catppuccin](https://github.com/catppuccin)_flavour` ([#296](https://github.com/catppuccin/tmux/issues/296)) ([a71f3c0](https://github.com/catppuccin/tmux/commit/a71f3c039bed8a7c49fc390a50befec5db2c4af9))
* warning `[@catppuccin](https://github.com/catppuccin)_window_status` ([9ee1695](https://github.com/catppuccin/tmux/commit/9ee1695d757c16e2f236858b8d3f88be9fb666fa))
### Performance Improvements
* 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)
* batch tmux show-options ([3c6f6f2](https://github.com/catppuccin/tmux/commit/3c6f6f282b3bb17554dc2b4b80760b6507acfd65))
## [0.1.0](https://github.com/catppuccin/tmux/compare/v0.0.1...v0.1.0) (2024-08-04)
### Features
* releases ([#260](https://github.com/catppuccin/tmux/issues/260)) ([5fbacdf](https://github.com/catppuccin/tmux/commit/5fbacdf3559cf4496eef02aead087b3bb715e570))
@@ -0,0 +1,40 @@
# Contributing
## Design
To understand our mindset in developing this plugin and how to ensure your
changes align with that mindset, check out the "[Design Philosophy](./docs/explanation/design.md)."
## Commit messages
This repository uses [Conventional Commits](https://conventionalcommits.org).
Commit headers should be lowercase. Most commits should include a body that briefly
describes the motivation and content of the commit.
### Commit types
- `fix`: A bug fix that doesn't modify the public API
- `feat`: A code change that adds functionality
- `change`: A modification to the public API
- `deprecate`: Something in the public API has been deprecated
- `remove`: A part of the public API has been removed
- `refactor`: A code change that doesn't change behavior
- `style`: A style fix or change
- `docs`: Any change to documentation
- `revert`: A revert commit. The message should describe the reasoning and the
commit should include the `Refs:` footer with the short hashes of the commits
being reverted.
- `chore`: catch-all type
### Breaking changes
All breaking changes should be documented in the commit footer in the format
described by Conventional Commits. Use the `<type>!` syntax in order to distinguish
breaking commits in the log, but include the footer to provide a better description
for the changelog generator.
```text
feat(bar)!: foo the bars
BREAKING CHANGE: bars are now foo'ed
```
@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2021 Catppuccin
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
@@ -0,0 +1,242 @@
<!-- markdownlint-disable -->
<h3 align="center">
<img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/logos/exports/1544x1544_circle.png" width="100" alt="Logo"/><br/>
<img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/misc/transparent.png" height="30" width="0px"/>
Catppuccin for <a href="https://github.com/tmux/tmux">Tmux</a>
<img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/misc/transparent.png" height="30" width="0px"/>
</h3>
<p align="center">
<a href="https://github.com/catppuccin/tmux/stargazers"><img src="https://img.shields.io/github/stars/catppuccin/tmux?colorA=363a4f&colorB=b7bdf8&style=for-the-badge"></a>
<a href="https://github.com/catppuccin/tmux/issues"><img src="https://img.shields.io/github/issues/catppuccin/tmux?colorA=363a4f&colorB=f5a97f&style=for-the-badge"></a>
<a href="https://github.com/catppuccin/tmux/contributors"><img src="https://img.shields.io/github/contributors/catppuccin/tmux?colorA=363a4f&colorB=a6da95&style=for-the-badge"></a>
</p>
<p align="center">
<img src="./assets/preview.webp"/>
</p>
<!-- markdownlint-enable -->
## Themes
<details>
<summary>🌻 Latte</summary>
![Latte Flavor Preview](./assets/latte.webp)
</details>
<details>
<summary>🪴 Frappé</summary>
![Frappe Flavor Preview](./assets/frappe.webp)
</details>
<details>
<summary>🌺 Macchiato</summary>
![Macchiato Flavor Preview](./assets/macchiato.webp)
</details>
<details>
<summary>🌿 Mocha</summary>
![Mocha Flavor Preview](./assets/mocha.webp)
</details>
## Installation
In order to have the icons displayed correctly please use/update your favorite
[nerd font](https://www.nerdfonts.com/font-downloads).
If you do not have a patched font installed, you can override or remove any
icon. Check the [documentation](./docs/reference/configuration.md) on the
options available.
### Manual (Recommended)
This method is recommended as TPM has some issues with name conflicts.
<!-- x-release-please-start-version -->
1. Clone this repository to your desired location (e.g.
`~/.config/tmux/plugins/catppuccin`).
```bash
mkdir -p ~/.config/tmux/plugins/catppuccin
git clone -b v2.3.0 https://github.com/catppuccin/tmux.git ~/.config/tmux/plugins/catppuccin/tmux
```
1. Add the following line to your `tmux.conf` file:
`run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux`.
1. Reload Tmux by either restarting or reloading with `tmux source ~/.tmux.conf`.
<!-- x-release-please-end -->
Check out what to do next in the "[Getting Started Guide](./docs/tutorials/01-getting-started.md)".
### TPM
<!-- x-release-please-start-version -->
1. Install [TPM](https://github.com/tmux-plugins/tpm)
1. Add the Catppuccin plugin:
```bash
set -g @plugin 'catppuccin/tmux#v2.3.0' # See https://github.com/catppuccin/tmux/tags for additional tags
# ...alongside
set -g @plugin 'tmux-plugins/tpm'
```
1. (Optional) Set your preferred flavor, it defaults to `"mocha"`:
```bash
set -g @catppuccin_flavor 'mocha' # latte, frappe, macchiato or mocha
```
<!-- x-release-please-end -->
> [!IMPORTANT]
> You may have to run `~/.config/tmux/plugins/tpm/bin/clean_plugins`
> if upgrading from an earlier version
> (especially from `v0.3.0`).
### For TMUX versions prior to 3.2
This plugin uses features that were only introduced into tmux in version 3.2.
If you are using a version earlier than this, you can still have lovely
catppuccin colors, the installation method just looks a little different.
```sh
# In your ~/.tmux.conf
# Add the colors from the pallete. Check the themes/ directory for all options.
# Some basic mocha colors.
set -g @ctp_bg "#24273a"
set -g @ctp_surface_1 "#494d64"
set -g @ctp_fg "#cad3f5"
set -g @ctp_mauve "#c6a0f6"
set -g @ctp_crust "#181926"
# status line
set -gF status-style "bg=#{@ctp_bg},fg=#{@ctp_fg}"
# windows
set -gF window-status-format "#[bg=#{@ctp_surface_1},fg=#{@ctp_fg}] ##I ##T "
set -gF window-status-current-format "#[bg=#{@ctp_mauve},fg=#{@ctp_crust}] ##I ##T "
```
### For TMUX versions prior to 3.6
This plugin can be used in conjunction with the support for tmux to
automatically report dark or light themes using hooks. You can leverage these
hooks in your tmux configuration file like so:
```conf
set-hook -g client-dark-theme {
set -g @catppuccin_flavor "frappe"
set -g @catppuccin_reset "true"
# NOTE: you may need to set more `@catppuccin_*` variables to fully reset
# everything.
run ~/code/github.com/catppuccin/tmux/catppuccin.tmux
}
set-hook -g client-light-theme {
set -g @catppuccin_flavor "latte"
set -g @catppuccin_reset "true"
# NOTE: you may need to set more `@catppuccin_*` variables to fully reset
# everything.
run ~/code/github.com/catppuccin/tmux/catppuccin.tmux
}
```
The above is only possible with versions of tmux 3.6+. To replicate this
functionality with versions prior to 3.6, you can will need to set variables and
run the `cappuccin.tmux` file and trigger it yourself. If you'd like some
inspiration for how to do this, read through [the Bash code found in this Nix
function here][reload-example] which reloads Catppuccin on-demand without
relying on tmux hooks.
[reload-example]: https://git.sr.ht/~rogeruiz/.files.nix/tree/1dedf4da47f995ec41e07d37b65008ad0f464717/item/module/tools/terminal/tmux/catppuccin/bin/default.nix "An example from a catppuccin/tmux maintainer on how to manually reload the Catppuccin configuration on macOS."
> [!IMPORTANT]
> As mentioned in the comments in the `conf` snippet above, you may find that
> you'll need to add to the list of `@catppuccin_*` variables. Test your
> configuration by switching themes and noting what of the Tmux session isn't
> getting reset to an expected color.
### Upgrading from v0.3
Breaking changes have been introduced since 0.3, to understand how to migrate
your configuration, see pinned issue [#487](https://github.com/catppuccin/tmux/issues/487).
## Recommended Default Configuration
This configuration shows some customisation options, that can be further
extended as desired.
This is what is used for the previews above.
![Example configuration](./assets/mocha.webp)
```bash
# ~/.tmux.conf
# Options to make tmux more pleasant
set -g mouse on
set -g default-terminal "tmux-256color"
# Configure the catppuccin plugin
set -g @catppuccin_flavor "mocha"
set -g @catppuccin_window_status_style "rounded"
# Load catppuccin
run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux
# For TPM, instead use `run ~/.tmux/plugins/tmux/catppuccin.tmux`
# Make the status line pretty and add some modules
set -g status-right-length 100
set -g status-left-length 100
set -g status-left ""
set -g status-right "#{E:@catppuccin_status_application}"
set -agF status-right "#{E:@catppuccin_status_cpu}"
set -agF status-right "#{E:@catppuccin_status_ram}"
set -ag status-right "#{E:@catppuccin_status_session}"
set -ag status-right "#{E:@catppuccin_status_uptime}"
set -agF status-right "#{E:@catppuccin_status_battery}"
run ~/.config/tmux/plugins/tmux-plugins/tmux-cpu/cpu.tmux
run ~/.config/tmux/plugins/tmux-plugins/tmux-battery/battery.tmux
# Or, if using TPM, just run TPM
```
## Documentation
### Guides
- [Getting Started](./docs/tutorials/01-getting-started.md)
- [Custom Status Line Segments](./docs/tutorials/02-custom-status.md)
- [Troubleshooting](./docs/guides/troubleshooting.md)
### Reference
- [Status Line](./docs/reference/status-line.md)
- [Configuration Options Reference](./docs/reference/configuration.md)
- [Tmux Configuration Showcase](https://github.com/catppuccin/tmux/discussions/317)
## 💝 Thanks to
- [Pocco81](https://github.com/Pocco81)
- [vinnyA3](https://github.com/vinnyA3)
- [rogeruiz](https://github.com/rogeruiz)
- [kales](https://github.com/kjnsn)
&nbsp;
<!-- markdownlint-disable -->
<p align="center">
<img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/footers/gray0_ctp_on_line.svg?sanitize=true" /></p>
<p align="center">Copyright &copy; 2021-present <a href="https://github.com/catppuccin" target="_blank">Catppuccin Org</a>
<p align="center"><a href="https://github.com/catppuccin/catppuccin/blob/main/LICENSE"><img src="https://img.shields.io/static/v1.svg?style=for-the-badge&label=License&message=MIT&logoColor=d9e0ee&colorA=363a4f&colorB=b7bdf8"/></a></p>
<!-- markdownlint-enable -->
Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

@@ -0,0 +1,13 @@
set -g @catppuccin_flavor 'frappe'
run "#{d:current_file}/../../catppuccin.tmux"
# Make the status line more pleasant.
set -g status-left ""
set -g status-right '#[fg=#{@thm_crust},bg=#{@thm_teal}] session: #S '
# Ensure that everything on the right side of the status line
# is included.
set -g status-right-length 100
set -g default-shell '/opt/homebrew/bin/fish'
Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

@@ -0,0 +1,19 @@
Output assets/demos/basic.gif
Require echo
Require tmux
Set Shell "bash"
Set FontSize 30
Set FontFamily "SFMono Nerd Font"
Set Width 1200
Set Height 600
Type "tmux -f assets/demos/basic.conf" Sleep 500ms Enter
Sleep 3s
Ctrl+b
Type "c"
Sleep 5s
Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

@@ -0,0 +1,11 @@
set -l flavors latte frappe macchiato mocha
for flavor in $flavors
magick $flavor.webp -crop '1320x50+0+464' +repage $flavor-crop.webp
end
catwalk {latte,frappe,macchiato,mocha}-crop.webp --output preview.webp --layout column
for flavor in $flavors
rm $flavor-crop.webp
end
Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

@@ -0,0 +1,7 @@
#!/usr/bin/env bash
# Set path of script
PLUGIN_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
tmux source "${PLUGIN_DIR}/catppuccin_options_tmux.conf"
tmux source "${PLUGIN_DIR}/catppuccin_tmux.conf"
@@ -0,0 +1,145 @@
# All options and their defaults.
#
# This is executed separately to the main configuration
# so that options are set before parsing the rest of the config.
# Reset everything if requested.
#
# Useful for auto switching between themes:
#
# set-hook -g client-dark-theme {
# set -g @catppuccin_flavor "frappe"
# set -g @catppuccin_reset "true"
# run ~/code/github.com/catppuccin/tmux/catppuccin.tmux
# }
# set-hook -g client-light-theme {
# set -g @catppuccin_flavor "latte"
# set -g @catppuccin_reset "true"
# run ~/code/github.com/catppuccin/tmux/catppuccin.tmux
# }
%if "#{==:#{@catppuccin_reset},true}"
set -Ugq @thm_bg
set -Ugq @thm_fg
set -Ugq @thm_rosewater
set -Ugq @thm_flamingo
set -Ugq @thm_rosewater
set -Ugq @thm_pink
set -Ugq @thm_mauve
set -Ugq @thm_red
set -Ugq @thm_maroon
set -Ugq @thm_peach
set -Ugq @thm_yellow
set -Ugq @thm_green
set -Ugq @thm_teal
set -Ugq @thm_sky
set -Ugq @thm_sapphire
set -Ugq @thm_blue
set -Ugq @thm_lavender
set -Ugq @thm_subtext_1
set -Ugq @thm_subtext_0
set -Ugq @thm_overlay_2
set -Ugq @thm_overlay_1
set -Ugq @thm_overlay_0
set -Ugq @thm_surface_2
set -Ugq @thm_surface_1
set -Ugq @thm_surface_0
set -Ugq @thm_mantle
set -Ugq @thm_crust
set -Ugq @catppuccin_window_status_style
set -Ugq @catppuccin_window_text_color
set -Ugq @catppuccin_window_number_color
set -Ugq @catppuccin_window_text
set -Ugq @catppuccin_window_number
set -Ugq @catppuccin_window_current_text_color
set -Ugq @catppuccin_window_current_number_color
set -Ugq @catppuccin_window_current_text
set -Ugq @catppuccin_window_current_number
set -Ugq @catppuccin_window_number_position
set -Ugq @catppuccin_window_flags
set -Ugq @catppuccin_window_flags_icon_last
set -Ugq @catppuccin_window_flags_icon_current
set -Ugq @catppuccin_window_flags_icon_zoom
set -Ugq @catppuccin_window_flags_icon_mark
set -Ugq @catppuccin_window_flags_icon_silent
set -Ugq @catppuccin_window_flags_icon_activity
set -Ugq @catppuccin_window_flags_icon_bell
set -Ugq @catppuccin_window_flags_icon_format
set -Ugq @catppuccin_status_left_separator
set -Ugq @catppuccin_status_middle_separator
set -Ugq @catppuccin_status_right_separator
set -Ugq @catppuccin_status_connect_separator
set -Ugq @catppuccin_status_module_text_bg
set -Ugq @catppuccin_window_current_left_separator
set -Ugq @catppuccin_window_current_middle_separator
set -Ugq @catppuccin_window_current_right_separator
# Finally reset the reset option.
set -Ug @catppuccin_reset
%endif
# DO NOT USE -o IN YOUR OWN CONFIGURATION
set -ogq @catppuccin_flavor "mocha"
set -ogq @catppuccin_status_background "default"
# Menu styling options
set -ogq @catppuccin_menu_selected_style "fg=#{@thm_fg},bold,bg=#{@thm_overlay_0}"
# Pane styling options (DO NOT USE -o IN YOUR OWN CONFIGURATION)
set -ogq @catppuccin_pane_status_enabled "no" # set to "yes" to enable
set -ogq @catppuccin_pane_border_status "off" # set to "yes" to enable
set -ogq @catppuccin_pane_border_style "fg=#{@thm_overlay_0}"
set -ogq @catppuccin_pane_active_border_style "##{?pane_in_mode,fg=#{@thm_lavender},##{?pane_synchronized,fg=#{@thm_mauve},fg=#{@thm_lavender}}}"
set -ogq @catppuccin_pane_left_separator "█"
set -ogq @catppuccin_pane_middle_separator "█"
set -ogq @catppuccin_pane_right_separator "█"
set -ogq @catppuccin_pane_color "#{@thm_green}"
set -ogq @catppuccin_pane_background_color "#{@thm_surface_0}"
set -ogq @catppuccin_pane_default_text "##{b:pane_current_path}"
set -ogq @catppuccin_pane_default_fill "number"
set -ogq @catppuccin_pane_number_position "left" # right, left
# NOTE: Changes to make the option names more intuitive and more closely follow
# the tmux naming conventions.
# @catppuccin_window_current_background -> @catppuccin_window_current_number_color
# @catppuccin_window_current_color -> @catppuccin_window_current_text_color
# @catppuccin_window_default_background -> @catppuccin_window_number_color
# @catppuccin_window_default_color -> @catppuccin_window_text_color
# @catppuccin_window_status -> @catppuccin_window_flags
#
# Removed:
# @catppuccin_window_default_fill, @catppuccin_window_current_fill
# Just set the number and text colors.
# Window options (DO NOT USE -o IN YOUR OWN CONFIGURATION)
set -ogq @catppuccin_window_status_style "basic" # basic, rounded, slanted, custom, or none
set -ogq @catppuccin_window_text_color "#{@thm_surface_0}"
set -ogq @catppuccin_window_number_color "#{@thm_overlay_2}"
set -ogq @catppuccin_window_text " #T"
set -ogq @catppuccin_window_number "#I"
set -ogq @catppuccin_window_current_text_color "#{@thm_surface_1}"
set -ogq @catppuccin_window_current_number_color "#{@thm_mauve}"
set -ogq @catppuccin_window_current_text " #T"
set -ogq @catppuccin_window_current_number "#I"
set -ogq @catppuccin_window_number_position "left"
# Window flags
set -ogq @catppuccin_window_flags "none"
set -ogq @catppuccin_window_flags_icon_last " 󰖰" # -
set -ogq @catppuccin_window_flags_icon_current " 󰖯" # *
set -ogq @catppuccin_window_flags_icon_zoom " 󰁌" # Z
set -ogq @catppuccin_window_flags_icon_mark " 󰃀" # M
set -ogq @catppuccin_window_flags_icon_silent " 󰂛" # ~
set -ogq @catppuccin_window_flags_icon_activity " 󱅫" # #
set -ogq @catppuccin_window_flags_icon_bell " 󰂞" # !
# Matches icon order when using `#F` (`#!~[*-]MZ`)
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},} "
# Status line options (DO NOT USE -o IN YOUR OWN CONFIGURATION)
set -ogq @catppuccin_status_left_separator ""
set -ogq @catppuccin_status_middle_separator ""
set -ogq @catppuccin_status_right_separator " "
set -ogq @catppuccin_status_connect_separator "yes" # yes, no
# Maintain backwards compatibility. Use @catppuccin_status_module_bg_color if it is set.
set -ogq @catppuccin_status_module_text_bg "#{?@catppuccin_status_module_bg_color,#{E:@catppuccin_status_module_bg_color},#{@thm_surface_0}}"
@@ -0,0 +1,225 @@
source -F "#{d:current_file}/themes/catppuccin_#{@catppuccin_flavor}_tmux.conf"
%if "#{==:#{@catppuccin_status_background},default}"
set -gF @_ctp_status_bg "#{@thm_mantle}"
set -gF status-style "bg=#{@_ctp_status_bg},fg=#{@thm_fg}"
%hidden CTP_MESSAGE_BACKGROUND="#{@thm_overlay_0}"
%elif "#{==:#{@catppuccin_status_background},none}"
set -g status-style "default"
set -g @_ctp_status_bg "none"
%hidden CTP_MESSAGE_BACKGROUND="default"
%else
# Treat @catppuccin_status_background as a format string.
set -gF status-style "bg=#{E:@catppuccin_status_background},fg=#{@thm_fg}"
set -gF @_ctp_status_bg "#{E:@catppuccin_status_background}"
%hidden CTP_MESSAGE_BACKGROUND="#{E:@catppuccin_status_background}"
%endif
source -F "#{d:current_file}/status/application.conf"
source -F "#{d:current_file}/status/battery.conf"
source -F "#{d:current_file}/status/clima.conf"
source -F "#{d:current_file}/status/cpu.conf"
source -F "#{d:current_file}/status/date_time.conf"
source -F "#{d:current_file}/status/directory.conf"
source -F "#{d:current_file}/status/gitmux.conf"
source -F "#{d:current_file}/status/host.conf"
source -F "#{d:current_file}/status/kube.conf"
source -F "#{d:current_file}/status/load.conf"
source -F "#{d:current_file}/status/pomodoro_plus.conf"
source -F "#{d:current_file}/status/ram.conf"
source -F "#{d:current_file}/status/session.conf"
source -F "#{d:current_file}/status/uptime.conf"
source -F "#{d:current_file}/status/user.conf"
source -F "#{d:current_file}/status/weather.conf"
# messages
set -gF message-style "fg=#{@thm_teal},bg=$CTP_MESSAGE_BACKGROUND,align=centre"
set -gF message-command-style "fg=#{@thm_teal},bg=$CTP_MESSAGE_BACKGROUND,align=centre"
# menu
%if "#{>=:#{version},3.4}"
set -gF menu-selected-style "#{E:@catppuccin_menu_selected_style}"
%endif
# panes
set -wgF pane-active-border-style "#{E:@catppuccin_pane_active_border_style}"
set -wgF pane-border-style "#{E:@catppuccin_pane_border_style}"
%if "#{==:#{@catppuccin_pane_status_enabled},yes}"
# "internal" variables are kept as @_ctp_p_.*
# and then unset at the end.
set -gq @_ctp_p_left "" # the content on the left, usually a separator
set -gq @_ctp_p_middle ""
set -gq @_ctp_p_right ""
set -gq @_ctp_p_number ""
set -gq @_ctp_p_text ""
%if "#{==:#{@catppuccin_pane_default_fill},none}"
set -g @_ctp_p_left \
"#[fg=#{@thm_surface_0},bg=default]#{@catppuccin_pane_left_separator}"
set -g @_ctp_p_middle \
"#[fg=#{@thm_fg},bg=#{@thm_surface_0}]#{@catppuccin_pane_middle_separator}"
set -g @_ctp_p_right \
"#[fg=#{@thm_surface_0},bg=default]#{@catppuccin_pane_right_separator}"
set -g @_ctp_p_number \
"#[fg=#{@thm_fg},bg=#{@thm_surface_0}]##{pane_index}"
set -g @_ctp_p_text \
"#[fg=#{@thm_fg},bg=#{@thm_surface_0}]#{E:@catppuccin_pane_default_text}"
%elif "#{==:#{@catppuccin_pane_default_fill},all}"
set -g @_ctp_p_left \
"#[fg=#{E:@catppuccin_pane_color},bg=default]#{@catppuccin_pane_left_separator}"
set -g @_ctp_p_middle \
"#[fg=#{E:@catppuccin_pane_color},bg=#{E:@catppuccin_pane_background_color}]#{@catppuccin_pane_middle_separator}"
set -g @_ctp_p_right \
"#[fg=#{E:@catppuccin_pane_color},bg=default]#{@catppuccin_pane_right_separator}"
set -g @_ctp_p_number \
"#[fg=#{E:@catppuccin_pane_background_color},bg=#{E:@catppuccin_pane_color}]##{pane_index}"
set -g @_ctp_p_text \
"#[fg=#{E:@catppuccin_pane_background_color},bg=#{E:@catppuccin_pane_color}]#{E:@catppuccin_pane_default_text}"
%elif "#{==:#{@catppuccin_pane_default_fill},number}"
%if "#{==:#{@catppuccin_pane_number_position},left}"
set -g @_ctp_p_left \
"#[fg=#{E:@catppuccin_pane_color},bg=default]#{@catppuccin_pane_left_separator}"
set -g @_ctp_p_right \
"#[fg=#{E:@catppuccin_pane_background_color},bg=default]#{@catppuccin_pane_right_separator}"
%else
set -g @_ctp_p_left \
"#[fg=#{E:@catppuccin_pane_background_color},bg=default]#{@catppuccin_pane_left_separator}"
set -g @_ctp_p_right \
"#[fg=#{E:@catppuccin_pane_color},bg=default]#{@catppuccin_pane_right_separator}"
%endif
set -g @_ctp_p_middle \
"#[fg=#{E:@catppuccin_pane_color},bg=#{E:@catppuccin_pane_background_color}]#{@catppuccin_pane_middle_separator}"
set -g @_ctp_p_number \
"#[fg=#{E:@catppuccin_pane_background_color},bg=#{E:@catppuccin_pane_color}]##{pane_index}"
set -g @_ctp_p_text \
"#[fg=#{E:@catppuccin_pane_color},bg=#{E:@catppuccin_pane_background_color}]#{E:@catppuccin_pane_default_text}"
%endif
%if "#{==:#{@catppuccin_pane_number_position},left}"
set -wgF pane-border-format \
"#{E:@_ctp_p_left}#{E:@_ctp_p_number}#{E:@_ctp_p_middle} #{E:@_ctp_p_text}#{E:@_ctp_p_right}"
%else
set -wgF pane-border-format \
"#{E:@_ctp_p_left}#{E:@_ctp_p_text} #{E:@_ctp_p_middle}#{E:@_ctp_p_number}#{E:@_ctp_p_right}"
%endif
set -ug @_ctp_p_left
set -ug @_ctp_p_middle
set -ug @_ctp_p_right
set -ug @_ctp_p_number
set -ug @_ctp_p_text
%endif
# popups
%if "#{>=:#{version},3.4}"
set -gF popup-style "bg=#{@thm_bg},fg=#{@thm_fg}"
set -gF popup-border-style "fg=#{@thm_surface_1}"
%endif
%if "#{==:#{@catppuccin_window_status_style},basic}"
set -gq @catppuccin_window_left_separator " "
set -gq @catppuccin_window_middle_separator " "
set -gq @catppuccin_window_right_separator " "
%elif "#{==:#{@catppuccin_window_status_style},rounded}"
set -gq @catppuccin_window_left_separator "#[fg=#{@_ctp_status_bg},reverse]#[none]"
set -gq @catppuccin_window_middle_separator " "
set -gq @catppuccin_window_right_separator "#[fg=#{@_ctp_status_bg},reverse]#[none]"
%elif "#{==:#{@catppuccin_window_status_style},slanted}"
set -gq @catppuccin_window_left_separator "#[fg=#{@_ctp_status_bg},reverse]#[none]"
%if "#{==:#{@catppuccin_window_number_position},left}"
set -gq @catppuccin_window_middle_separator "#[fg=#{@catppuccin_window_number_color},bg=#{@catppuccin_window_text_color}]"
set -gq @catppuccin_window_current_middle_separator \
"#[fg=#{@catppuccin_window_current_number_color},bg=#{@catppuccin_window_current_text_color}]"
%else
set -gq @catppuccin_window_middle_separator " #[fg=#{@catppuccin_window_number_color},bg=#{@catppuccin_window_text_color}]"
set -gq @catppuccin_window_current_middle_separator \
" #[fg=#{@catppuccin_window_current_number_color},bg=#{@catppuccin_window_current_text_color}]"
%endif
set -gq @catppuccin_window_right_separator "#[fg=#{@_ctp_status_bg},reverse]█#[none]"
%endif
# DO NOT USE -o IN YOUR OWN CONFIGURATION
set -ogqF @catppuccin_window_current_left_separator "#{@catppuccin_window_left_separator}"
set -ogqF @catppuccin_window_current_middle_separator "#{@catppuccin_window_middle_separator}"
set -ogqF @catppuccin_window_current_right_separator "#{@catppuccin_window_right_separator}"
# window status
%if "#{!=:#{@catppuccin_window_status_style},none}"
set -gF window-status-activity-style "bg=#{@thm_lavender},fg=#{@thm_crust}"
set -gF window-status-bell-style "bg=#{@thm_yellow},fg=#{@thm_crust}"
%if "#{==:#{@catppuccin_window_flags},icon}"
set -gqF @_ctp_w_flags "#{E:@catppuccin_window_flags_icon_format}"
%elif "#{==:#{@catppuccin_window_flags},text}"
set -gq @_ctp_w_flags "#F"
%else
set -gq @_ctp_w_flags ""
%endif
set -g @_ctp_w_number_style "#[fg=#{@thm_crust},bg=#{@catppuccin_window_number_color}]"
set -g @_ctp_w_text_style "#[fg=#{@thm_fg},bg=#{@catppuccin_window_text_color}]"
%if "#{==:#{@catppuccin_window_number_position},left}"
set -gF window-status-format \
"#{E:@_ctp_w_number_style}#{E:@catppuccin_window_left_separator}#{@catppuccin_window_number}"
set -agF window-status-format "#{E:@catppuccin_window_middle_separator}"
set -agF window-status-format \
"#{E:@_ctp_w_text_style}#{@catppuccin_window_text}#{@_ctp_w_flags}#{E:@catppuccin_window_right_separator}"
%else
set -gF window-status-format \
"#{E:@_ctp_w_text_style}#{E:@catppuccin_window_left_separator}#{E:@_ctp_w_text_style}#{@catppuccin_window_text}#{@_ctp_w_flags}"
set -agF window-status-format "#{E:@catppuccin_window_middle_separator}"
set -agF window-status-format \
"#{E:@_ctp_w_number_style} #{@catppuccin_window_number}#{E:@catppuccin_window_right_separator}"
%endif
# =======================================
# And do the same for the current window.
# =======================================
set -g @_ctp_w_number_style "#[fg=#{@thm_crust},bg=#{@catppuccin_window_current_number_color}]"
set -g @_ctp_w_text_style "#[fg=#{@thm_fg},bg=#{@catppuccin_window_current_text_color}]"
%if "#{==:#{@catppuccin_window_number_position},left}"
set -gF window-status-current-format \
"#{E:@_ctp_w_number_style}#{E:@catppuccin_window_current_left_separator}#{@catppuccin_window_current_number}"
set -agF window-status-current-format "#{E:@catppuccin_window_current_middle_separator}"
set -agF window-status-current-format \
"#{E:@_ctp_w_text_style}#{@catppuccin_window_current_text}#{@_ctp_w_flags}#{E:@catppuccin_window_current_right_separator}"
%else
set -gF window-status-current-format \
"#{E:@_ctp_w_text_style}#{E:@catppuccin_window_current_left_separator}#{E:@_ctp_w_text_style}#{@catppuccin_window_current_text}#{@_ctp_w_flags}"
set -agF window-status-current-format "#{E:@catppuccin_window_current_middle_separator}"
set -agF window-status-current-format \
"#{E:@_ctp_w_number_style} #{@catppuccin_window_current_number}#{E:@catppuccin_window_current_right_separator}"
%endif
# Cleanup (unset) all of the internal variables.
set -ug @_ctp_w_number_style
set -ug @_ctp_w_text_style
set -ug @_ctp_w_flags
%endif
# Mode style. This is used for copy mode highlighting to style the current selection.
set -gF mode-style "bg=#{@thm_surface_0},bold"
set -gF clock-mode-colour "#{@thm_blue}"
@@ -0,0 +1,57 @@
## Design Philosophy
First and foremost, this is a color scheme. Making colors work
well takes precedence over other kinds of functionality.
### History
This plugin kept on growing essentially because no one was there to push back on
changes that went against, for example, parts of the UNIX philosophy. This lead to
a state where there were almost an infinite number of configuration options,
and combining them in unique ways would almost certainly break something.
Maintaining the options for everyone's setup was impossible, and fixing
one bug would cause several others to appear. Eventually the addition
of more and more things that didn't relate to colors, such as status line modules,
took time away from getting the basics right.
Moving forward, we will be trying to align with the philosophies listed below.
This is in contrast to what the plugin has historically offered in terms of functionality.
### UNIX Philosphy
1. Write programs that do one thing and do it well.
- Do colors, and do colors well. Other things like displaying the weather
are not the responsibility of this plugin.
1. Write programs to work together.
- The full palette is exposed as user options, allowing
easy integration with any other kind of tmux configuration.
1. Write programs to handle text streams, because that is a universal interface.
- TMUX is a text based program. Each of the palette options are strings
in user options that can be piped into other programs and options.
### Configurability is the root of all evil
Adopted from "[Fish Shell's design philophy](https://fishshell.com/docs/current/design.html)".
Every configuration option in a program is a place where the program is too
stupid to figure out for itself what the user really wants, and should be
considered a failure of both the program and the programmer who implemented it.
Rationale: Different configuration options are a nightmare to maintain, since
the number of potential bugs caused by specific configuration combinations
quickly becomes an issue. Configuration options often imply assumptions about
the code which change when reimplementing the code, causing issues with
backwards compatibility. But mostly, configuration options should be avoided
since they simply should not exist, as the program should be smart enough to do
what is best, or at least a good enough approximation of it.
### The law of orthogonality
The set of options that do exist should have a small set of orthogonal features.
Any situation where two options are related but not identical, one of them
should be removed, and the other should be made powerful and general enough to
handle all common use cases of either feature.
Rationale: Related features make the configuration options larger, which makes
it harder to use. It also increases the size of the source code, making the
program harder to maintain and update.
@@ -0,0 +1,37 @@
# Frequently Asked Questions
## Window Names
By default, window names are the pane title, and the pane title is
set by the shell running in each pane. Oh My ZSH does this [automatically](https://github.com/ohmyzsh/ohmyzsh/wiki/Settings#automatic-title),
as does [fish](https://fishshell.com/docs/current/cmds/fish_title.html).
The format string used can be changed by setting the following options:
```bash
set -g @catppuccin_window_text "#W"
set -g @catppuccin_window_current_text "#W"
```
The window title is `#W`, the current path is `#{b:pane_current_path}`. A huge
amount of customisation is possible, and is explained in depth
in the "[tmux man page](https://man7.org/linux/man-pages/man1/tmux.1.html#FORMATS)".
## Symbols are not displaying
Make sure you have installed a [Nerd Font](https://www.nerdfonts.com/),
and that your terminal is set to use that font.
## My options are not being applied
Go through these steps:
1. Completely kill tmux and restart (`killall tmux`).
1. Ensure every `@catppuccin.*` option is being set _before_
the plugin is loaded. Loading occurs where you have `run` in your config file.
1. Double check for typos. There are two "c"s and two "p"s in "catppuccin".
1. Do not use `-o` to set options that begin with `@`. The `-o` flag means that
the option will not be set if it has already been set. You do not need this
in your config file.
1. Double check that any option that does _not_ start with `@` is set after the
plugin is loaded.
@@ -0,0 +1,116 @@
## Configuration Reference
<img src="../../assets/structure.svg" style="background: #eff1f5" />
This is a diagram of how the theme is split between its components.
### Top Level Options
| Option | Effect |
| -------------------- | ------------------------------------------------------------------------------ |
| `@catppuccin_flavor` | Sets the catppuccin flavor, one of "latte", "frappe", "macchiato", or "mocha". |
### Status Line
| Option | Effect |
| ----------------------------- | --------------------------------------------- |
| @catppuccin_status_background | Sets the background color of the status line. |
- `default` will use the color from the selected theme
- `none` will make the status bar transparent
- use hex color codes for other colors or a theme color (`#{@thm_<color>}`)
### Window
The plugin comes with three window styles built in, these can be customized by
setting the `@catppuccin_window_status_style` option. The default is `basic`.
| Option | Effect | Preview |
| --------- | ------------------------------------------------------------------------ | ------------------------------------------------------ |
| `basic` | Simple styling with blocks. | ![window basic](../../assets/window-basic.webp) |
| `rounded` | Each window is separated with rounded separators. | ![window rounded style](../../assets/window-rounded.webp) |
| `slanted` | Each window is separated with slanted separators. | ![window slanted style](../../assets/window-slanted.webp) |
| `custom` | Custom separators are used. This is required to override the separators! | |
| `none` | Styling of the window status is completely disabled. | ![window no styling](../../assets/window-none.webp) |
If you want to change the active color to something else (the default is mauve),
use the following. For example to use lavender:
```bash
set -g @catppuccin_window_current_number_color "#{@thm_lavender}"
```
<details>
<summary>Customising the separators</summary>
Add the following,
setting whatever values you'd like for the separators:
```bash
set -g @catppuccin_window_status_style "custom"
set -g @catppuccin_window_left_separator ""
set -g @catppuccin_window_middle_separator ""
set -g @catppuccin_window_right_separator ""
```
</details>
### Menu
**Set the menu selected style:**
```sh
# Use a value compatible with the standard tmux `menu-selected-style`
set -g @catppuccin_menu_selected_style "fg=#{@thm_surface_0},bg=#{@thm_yellow}"
```
### All options and their defaults
```bash
# Menu styling options
set -g @catppuccin_menu_selected_style "fg=#{@thm_fg},bold,bg=#{@thm_overlay_0}"
# Pane styling options
set -g @catppuccin_pane_status_enabled "no" # set to "yes" to enable
set -g @catppuccin_pane_border_status "off" # set to "yes" to enable
set -g @catppuccin_pane_border_style "fg=#{@thm_overlay_0}"
set -g @catppuccin_pane_active_border_style "##{?pane_in_mode,fg=#{@thm_lavender},##{?pane_synchronized,fg=#{@thm_mauve},fg=#{@thm_lavender}}}"
set -g @catppuccin_pane_left_separator "█"
set -g @catppuccin_pane_middle_separator "█"
set -g @catppuccin_pane_right_separator "█"
set -g @catppuccin_pane_color "#{@thm_green}"
set -g @catppuccin_pane_background_color "#{@thm_surface_0}"
set -g @catppuccin_pane_default_text "##{b:pane_current_path}"
set -g @catppuccin_pane_default_fill "number"
set -g @catppuccin_pane_number_position "left" # right, left
set -g @catppuccin_window_status_style "basic" # basic, rounded, slanted, custom, or none
set -g @catppuccin_window_text_color "#{@thm_surface_0}"
set -g @catppuccin_window_number_color "#{@thm_overlay_2}"
set -g @catppuccin_window_text " #T"
set -g @catppuccin_window_number "#I"
set -g @catppuccin_window_current_text_color "#{@thm_surface_1}"
set -g @catppuccin_window_current_number_color "#{@thm_mauve}"
set -g @catppuccin_window_current_text " #T"
set -g @catppuccin_window_current_number "#I"
set -g @catppuccin_window_number_position "left"
set -g @catppuccin_window_flags "none" # none, icon, or text
set -g @catppuccin_window_flags_icon_last " 󰖰" # -
set -g @catppuccin_window_flags_icon_current " 󰖯" # *
set -g @catppuccin_window_flags_icon_zoom " 󰁌" # Z
set -g @catppuccin_window_flags_icon_mark " 󰃀" # M
set -g @catppuccin_window_flags_icon_silent " 󰂛" # ~
set -g @catppuccin_window_flags_icon_activity " 󱅫" # #
set -g @catppuccin_window_flags_icon_bell " 󰂞" # !
# Matches icon order when using `#F` (`#!~[*-]MZ`)
set -g @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},} "
# Status line options
set -g @catppuccin_status_left_separator ""
set -g @catppuccin_status_middle_separator ""
set -g @catppuccin_status_right_separator "█"
set -g @catppuccin_status_connect_separator "yes" # yes, no
set -g @catppuccin_status_fill "icon"
set -g @catppuccin_status_module_bg_color "#{@thm_surface_0}"
```
@@ -0,0 +1,260 @@
## Using the theme's built-in status modules
To use the theme's built in status modules, set the `status-left` and
`status-right` tmux options _after_ the plugin has been loaded with `run`.
The tmux status line modules are set as variables and prefixed with `@catppuccin_status_<module>`.
To use the `application` and `session` modules on the right and have nothing on
the left:
```sh
set -g status-right-length 100
set -g status-right "#{E:@catppuccin_status_application}#{E:@catppuccin_status_session}"
set -g status-left ""
```
Some notes about expanding options when setting the status line:
* Options are expanded as format strings by placing `E:` before the option name.
* When a module status string contains a reference to another variable, you have to add the `-F` flag that treats the value passed as a format string that is immediately expanded, that is use `set -gF` (see tmux [`set-option`](https://man.openbsd.org/OpenBSD-current/man1/tmux.1#set-option) man page).
* Example for such a case is the [battery](#battery-module) module below, where the status contains the format string `#{battery_percentage}` that needs to be further expanded.
## Customizing modules
Every module supports the following overrides:
### Override the specific module icon
```sh
set -g @catppuccin_[module_name]_icon "icon"
```
### Override the specific module color
```sh
set -g @catppuccin_[module_name]_color "color"
```
### Override the specific module text
```sh
set -g @catppuccin_[module_name]_text "text"
```
### Override the specific module's background color
```sh
set -g @catppuccin_status_[module_name]_bg_color "#{@thm_surface_0}"
```
### Removing a specific module option
```sh
set -g @catppuccin_[module_name]_[option] ""
```
This is for the situation where you want to remove the icon from a module.
For example:
```sh
set -g @catppuccin_date_time_icon ""
```
### Notes for TPM users
Make sure you load the catppuccin theme prior to setting the status-left and/or
status-* options. This ensures the catppuccin options (such as colors and
status modules) are defined so they can then be used.
After status-left and/or status-right have been set, make sure to run TPM to load
the modules. This runs any plugins that may replace text in the status line.
```bash
# load catppuccin theme ...
run '~/.config/tmux/plugins/tmux/catppuccin.tmux' # or where this file is located on your machine
# ... and then set status-left & status-right ...
set -g status-left "#{E:@catppuccin_status_session}"
set -g status-right "#{E:@catppuccin_status_[module_name]}"
set -ag status-right "#{E:@catppuccin_status_[module_name]}"
set -agF status-right "#{E:@catppuccin_status_[module_name]}"
# ... and finally start TPM
set -g @plugin 'tmux-plugins/tpm'
run '~/.tmux/plugins/tpm/tpm'
```
## Battery module
**Requirements:** This module depends on [tmux-battery](https://github.com/tmux-plugins/tmux-battery/tree/master).
**Install:** The preferred way to install tmux-battery is using [TPM](https://github.com/tmux-plugins/tpm).
**Configure:**
```sh
run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux
set -agF status-right "#{E:@catppuccin_status_battery}"
set -g @plugin 'tmux-plugins/tmux-battery'
run '~/.tmux/plugins/tpm/tpm'
```
## CPU module
**Requirements:** This module depends on [tmux-cpu](https://github.com/tmux-plugins/tmux-cpu/tree/master).
**Install:** The preferred way to install tmux-cpu is using [TPM](https://github.com/tmux-plugins/tpm).
**Configure:**
```sh
run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux
set -agF status-right "#{E:@catppuccin_status_cpu}"
set -g @plugin 'tmux-plugins/tmux-cpu'
run '~/.tmux/plugins/tpm/tpm'
```
## RAM module
**Requirements:** This module depends on [tmux-cpu](https://github.com/tmux-plugins/tmux-cpu/tree/master).
**Install:** The preferred way to install tmux-cpu is using [TPM](https://github.com/tmux-plugins/tpm).
**Configure:**
```sh
run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux
set -agF status-right "#{E:@catppuccin_status_ram}"
set -g @plugin 'tmux-plugins/tmux-cpu'
run '~/.tmux/plugins/tpm/tpm'
```
## Weather modules
### tmux-weather
**Requirements:** This module depends on [tmux-weather](https://github.com/xamut/tmux-weather).
**Install:** The preferred way to install tmux-weather is using [TPM](https://github.com/tmux-plugins/tpm).
**Configure:**
```sh
run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux
set -agF status-right "#{E:@catppuccin_status_weather}"
set -g @plugin 'xamut/tmux-weather'
run '~/.tmux/plugins/tpm/tpm'
```
### tmux-clima
**Requirements:** This module depends on [tmux-clima](https://github.com/vascomfnunes/tmux-clima).
**Install:** The preferred way to install tmux-clima is using [TPM](https://github.com/tmux-plugins/tpm).
**Configure:**
```sh
run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux
set -agF status-right "#{E:@catppuccin_status_clima}"
set -g @plugin 'vascomfnunes/tmux-clima'
run '~/.tmux/plugins/tpm/tpm'
```
## Load module
**Configure:**
```sh
run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux
set -agF status-right "#{E:@catppuccin_status_load}"
```
## Gitmux module
**Requirements:** This module depends on [gitmux](https://github.com/arl/gitmux).
**Install:** To install gitmux, follow the instructions in the [gitmux documentation](https://github.com/arl/gitmux/blob/main/README.md#installing).
**Configure:**
Add the gitmux module to the status modules list.
```sh
run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux
set -agF status-right "#{@catppuccin_status_gitmux}"
```
Follow the instructions in the [gitmux documentation](https://github.com/arl/gitmux/blob/main/README.md#customizing)
to create a gitmux config file. The gitmux plugin expects a file to be present
at `~/.gitmux.conf`.
Add the following to your `~/.gitmux.conf` so that it uses catppuccin colors:
```yaml
tmux:
styles:
clear: "#[fg=#{@thm_fg}]"
state: "#[fg=#{@thm_red},bold]"
branch: "#[fg=#{@thm_fg},bold]"
remote: "#[fg=#{@thm_teal}]"
divergence: "#[fg=#{@thm_fg}]"
staged: "#[fg=#{@thm_green},bold]"
conflict: "#[fg=#{@thm_red},bold]"
modified: "#[fg=#{@thm_yellow},bold]"
untracked: "#[fg=#{@thm_mauve},bold]"
stashed: "#[fg=#{@thm_blue},bold]"
clean: "#[fg=#{@thm_rosewater},bold]"
insertions: "#[fg=#{@thm_green}]"
deletions: "#[fg=#{@thm_red}]"
```
## Pomodoro module
**Requirements:**: This module depends on [tmux-pomodoro-plus](https://github.com/olimorris/tmux-pomodoro-plus/tree/main).
**Install:**: The preferred way to install tmux-pomodoro-plus is using [TPM](https://github.com/tmux-plugins/tpm).
**Configure:**
```sh
run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux
set -agF status-right "#{E:@catppuccin_status_pomodoro_plus}"
set -g @plugin 'olimorris/tmux-pomodoro-plus'
run '~/.tmux/plugins/tpm/tpm'
```
## Kube module
**Requirements:** This module depends on [tmux-kubectx](https://github.com/tony-sol/tmux-kubectx).
**Install:** The preferred way to install tmux-kubectx is using [TPM](https://github.com/tmux-plugins/tpm).
**Configure:**
```sh
set -g @catppuccin_kube_context_color "#{@thm_red}"
set -g @catppuccin_kube_namespace_color "#{@thm_sky}"
run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux
set -agF status-right "#{E:@catppuccin_status_kube}"
set -g @plugin 'tony-sol/tmux-kubectx'
run '~/.tmux/plugins/tpm/tpm'
```
@@ -0,0 +1,72 @@
Want to install the color scheme and make tmux pastel? Great! Here's how.
## Step 1: Clone this repository
<!-- x-release-please-start-version -->
```bash
mkdir -p ~/.config/tmux/plugins/catppuccin
git clone -b v2.3.0 https://github.com/catppuccin/tmux.git ~/.config/tmux/plugins/catppuccin/tmux
```
<!-- x-release-please-end -->
## Step 2: Edit your tmux configuration file
Using your favourite editor, edit the file `~/.tmux.conf`.
It should look like this:
```bash
set -g @catppuccin_flavor 'mocha'
run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux
```
This will load the catppuccin plugin and apply the defaults.
To apply the changes to your configuration file, exit tmux completely
and start it again. You can also run `tmux source ~/.tmux.conf`, but this may
not work as well when changing options.
## Step 3: Customize
The default configuration looks a little bland. Let's change it to
be a bit more colorful. Edit your tmux config again so it looks like this.
```bash
# Pick a softer palette.
set -g @catppuccin_flavor 'frappe'
run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux
# Make the status line more pleasant.
set -g status-left ""
set -g status-right '#[fg=#{@thm_crust},bg=#{@thm_teal}] session: #S '
# Ensure that everything on the right side of the status line
# is included.
set -g status-right-length 100
```
There is some new stuff here. Firstly, everything is documented in
the "[tmux man page](https://man7.org/linux/man-pages/man1/tmux.1.html)".
Go check it out if anything is unclear. The lines `set -g ...` are setting
"options". The `-g` means that the option is global, so it applies everywhere.
When an option name begins with `@`, then it is a "user" option and has no
effect on tmux itself. This is used to essentially set global variables.
Three options are set that control how tmux looks, `status-left`,
`status-right`, and `status-right-length`. These options are documented
in the man page, but the tl;dr is that they control what appears on the left
and right of the status line.
The `#[]` syntax is an embedded style, similar to inline css.
`fg=#{@thm_crust}` says "make the text the crust color". `@thm_crust` is a
user option set by the plugin. It is created by the line
`run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux`, so if you try
and use colors before that line, it won't work. The `#S` is a special sequence
that tmux replaces with the current session name. There are a long, long
"[list of special sequences](https://man7.org/linux/man-pages/man1/tmux.1.html#FORMATS)"
that tmux can replace.
If everything is working right, your version should look like this:
![Demonstration of basic configuration](../../assets/demos/basic.gif)
@@ -0,0 +1,41 @@
# User Defined Status Line Modules
To create your own status line module that uses the catppuccin theme,
all you need to do is add it to the `status-left` or `status-right` options.
You can add arbitrary things to the status line like so:
```sh
# ~/.tmux.conf
set -agF status-right "#[fg=#{@thm_crust},bg=#{@thm_teal}] ##H "
```
This will append the current hostname (`#H`) to the status line with a teal
background and dark black text.
You can also use icons for styling, for example to show the used memory percentage
on MacOS:
```sh
set -g status-right "#[bg=#{@thm_flamingo},fg=#{@thm_crust}]#[reverse]#[noreverse]󱀙 "
set -ag status-right "#[fg=#{@thm_fg},bg=#{@thm_mantle}] #(memory_pressure | awk '/percentage/{print $5}') "
```
![Example of the custom ram module](../../assets/ram-example.webp)
To use the status module formatting that catppuccin uses, do the following:
```sh
# In ~/.tmux.conf, before the catppuccin plugin has been loaded.
%hidden MODULE_NAME="my_custom_module"
set -g "@catppuccin_${MODULE_NAME}_icon" " "
set -gF "@catppuccin_${MODULE_NAME}_color" "#{E:@thm_pink}"
set -g "@catppuccin_${MODULE_NAME}_text" "#{pane_current_command}"
source "<path to catppuccin plugin>/utils/status_module.conf"
set -g status-right "#{E:@catppuccin_status_application}#{E:@catppuccin_status_my_custom_module}"
```
@@ -0,0 +1,216 @@
# Changing the flavor of the theme by resetting
To reset the colors colors in your status line, you can perform a reset of all
the options associated with the styling of the Tmux-line. This is done by
setting a global option called `@catppuccin_reset` to `true.
<details open>
<summary>A list of all the options that our <code>@catppuccin_reset</code> option resets</summary>
```txt
@thm_bg
@thm_fg
@thm_rosewater
@thm_flamingo
@thm_rosewater
@thm_pink
@thm_mauve
@thm_red
@thm_maroon
@thm_peach
@thm_yellow
@thm_green
@thm_teal
@thm_sky
@thm_sapphire
@thm_blue
@thm_lavender
@thm_subtext_1
@thm_subtext_0
@thm_overlay_2
@thm_overlay_1
@thm_overlay_0
@thm_surface_2
@thm_surface_1
@thm_surface_0
@thm_mantle
@thm_crust
@catppuccin_window_status_style
@catppuccin_window_text_color
@catppuccin_window_number_color
@catppuccin_window_text
@catppuccin_window_number
@catppuccin_window_current_text_color
@catppuccin_window_current_number_color
@catppuccin_window_current_text
@catppuccin_window_current_number
@catppuccin_window_number_position
@catppuccin_window_flags
@catppuccin_window_flags_icon_last
@catppuccin_window_flags_icon_current
@catppuccin_window_flags_icon_zoom
@catppuccin_window_flags_icon_mark
@catppuccin_window_flags_icon_silent
@catppuccin_window_flags_icon_activity
@catppuccin_window_flags_icon_bell
@catppuccin_window_flags_icon_format
@catppuccin_status_left_separator
@catppuccin_status_middle_separator
@catppuccin_status_right_separator
@catppuccin_status_connect_separator
@catppuccin_status_module_text_bg
@catppuccin_window_current_left_separator
@catppuccin_window_current_middle_separator
@catppuccin_window_current_right_separator
```
</details>
All of these Tmux options above are unset, **with the `-U` flag**, when the
plugin is called with the option named `@catppuccin_reset` with a value of
`true`. Due to _the way options are set within the plugin_, **with the `-o`
flag**, all options set by the user will be reset to plugins original default
values. _This means that if you have set **any** custom options, you **may**
lose your updates and **will need to run the plugin again after setting your
custom options**_.
> [!TIP]
> Trying running the reset yourself right now and note what breaks for your
> custom setup. That's one good way to experience what's being described above
> locally on your machine.
This feature is the most useful for auto-switching between the theme's flavor.
It's also useful for contributing or developing the plugin locally as well.
## Minimal example of resetting the flavor
If you're using all the defaults of Catppuccin Tmux, you will only have to worry
about setting the flavor when setting the `@catppuccin_reset` option to `true`.
```sh
# somewhere in a Tmux configuration file that will be sourced specifically for
# reloading `catppuccin/tmux`.
set -g @catppuccin_flavor "latte"
set -g @catppuccin_reset "true"
run /path/to/catppuccin/tmux/catppuccin.tmux
```
> [!NOTE]
> Your path above, the line starting with `run ...`, will need to be updated to
> where ever the `catpuccin.tmux` file is located on your system.
## Custom example of resetting the flavor
If you're customizing any of the settings that get reset in the list above, you
must set set options you're customizing along with any dependent options _that
aren't necessary_ when configuring the theme for only a single flavor.
Like in the minimal example, you will set your flavor and also reset the plugin.
```sh
# somewhere in a Tmux configuration file that will be sourced specifically for
# reloading `catppuccin/tmux`.
set -g @catppuccin_flavor "latte"
set -g @catppuccin_reset "true"
run /path/to/catppuccin/tmux/catppuccin.tmux
# we're not done yet!
```
But right afterwards, you'll have to set your customized options both before and
after you `run ...` the plugin. _This does mean running the plugin twice in
rapid succession_. This is due to a limitation of Tmux and how the plugin is
designed to be customizable and also ergonomic to ease with minimal
configuration.
```sh
# somewhere in a Tmux configuration file that will be sourced specifically for
# reloading `catppuccin/tmux`.
set -g @catppuccin_flavor "mocha"
set -g @catppuccin_reset "true"
run /path/to/catppuccin/tmux/catppuccin.tmux
# right after the initial reset call.
set -g @catppuccin_flavor "mocha"
set -g @catppuccin_window_status_style "basic"
set -g @catppuccin_window_text " #W"
set -g @catppuccin_window_number "#I"
set -g @catppuccin_window_current_text " #W"
set -g @catppuccin_window_current_number "#I"
set -g @catppuccin_pane_status_enabled "yes"
set -g @catppuccin_pane_border_status "yes"
set -g @catppuccin_window_number_position "right"
set -g @catppuccin_window_current_text "#{pane_current_path}"
set -g @catppuccin_pane_left_separator "▓"
set -g @catppuccin_pane_middle_separator "▓"
set -g @catppuccin_pane_right_separator "▓"
set -g @catppuccin_status_left_separator "▓"
set -g @catppuccin_status_middle_separator "▓"
set -g @catppuccin_status_right_separator "▓"
set -g @catppuccin_status_right_separator_inverse "no"
set -g @catppuccin_status_connect_separator "yes"
set -g @catppuccin_window_status_enable "yes"
set -g @catppuccin_status_fill "icon"
set -g @catppuccin_window_flags "icon"
set -g @catppuccin_application_icon " 󰣆 "
set -g @catppuccin_session_icon "  "
set -g @catppuccin_window_text_color "#{@thm_surface_0}"
set -g @catppuccin_window_number_color "#{@thm_overlay_2}"
set -g @catppuccin_window_current_text_color "#{@thm_surface_1}"
set -g @catppuccin_window_current_number_color "#{@thm_mauve}"
set -g @catppuccin_status_module_bg_color "#{@thm_surface_0}"
set -g @catppuccin_status_application_icon_fg "#{E:@thm_crust}"
set -g @catppuccin_status_application_text_fg "#{E:@thm_fg}"
set -g @catppuccin_application_color "#{E:@thm_maroon}"
set -g @catppuccin_status_session_icon_fg "#{E:@thm_crust}"
set -g @catppuccin_status_session_text_fg "#{E:@thm_fg}"
set -g @catppuccin_session_color "#{?client_prefix,#{E:@thm_red},#{E:@thm_green}}"
set -g @catppuccin_status_module_text_bg "#{?@catppuccin_status_module_bg_color,#{E:@catppuccin_status_module_bg_color},#{@thm_surface_0}}"
run /path/to/catppuccin/tmux/catppuccin.tmux
```
Notice that above there are certain lines that are _being set that aren't
usually set initially_. Some of these options are set within the file named
`utils/status_module.conf`, for example. While some are set in the other parts
of the plugin's configuration. This is due to the colors being unset and then
rest to the defaults **because you can't reset this plugin without also running
the default configuration options too**. _These options are highlighted below in
a smaller snippet_. These specific options aren't usually set when configuring
the plugin for a single flavor. Due to how options are reset and then again
immediately set in the `catppuccin_options_tmux.conf` file & all options will be
set to their defaults which aren't going to be what you've customized.
```sh
# here's some options extracted from the example above which must be set again
# after the reset that you probably would not have to set if you're using the
# reset functionality.
set -g @catppuccin_window_text_color "#{@thm_surface_0}"
set -g @catppuccin_window_number_color "#{@thm_overlay_2}"
set -g @catppuccin_window_current_text_color "#{@thm_surface_1}"
set -g @catppuccin_window_current_number_color "#{@thm_mauve}"
set -g @catppuccin_status_module_bg_color "#{@thm_surface_0}"
set -g @catppuccin_status_application_icon_fg "#{E:@thm_crust}"
set -g @catppuccin_status_application_text_fg "#{E:@thm_fg}"
set -g @catppuccin_application_color "#{E:@thm_maroon}"
set -g @catppuccin_status_session_icon_fg "#{E:@thm_crust}"
set -g @catppuccin_status_session_text_fg "#{E:@thm_fg}"
set -g @catppuccin_session_color "#{?client_prefix,#{E:@thm_red},#{E:@thm_green}}"
set -g @catppuccin_status_module_text_bg "#{?@catppuccin_status_module_bg_color,#{E:@catppuccin_status_module_bg_color},#{@thm_surface_0}}"
```
> [!NOTE]
> See the `@catppuccin_status_module_bg_color` and other color options such as
> `@catppuccin_application_color` and others have to be set due to the how the
> plugin resets all the values listed at the top of this document.
## You should now know how to reset the flavor using Tmux configuration files
Thanks for reading this far. If there's any questions or concerns please reach
out to the community in our [Discord server][discord] or by creating an issue on [GitHub][github].
Hopefully after reading this you've got a much better understanding of both how
to reset the flavor for `catppuccin/tmux` and[the configuration][internal] for this plugin.
[discord]: https://discord.com/servers/catppuccin-907385605422448742 "The official Catppuccin Discord server"
[github]: https://github.com/catppuccin/tmux/issues/new/choose "This project's GitHub issue type chooser page"
[internal]: ../reference/configuration.md "Our internal configuration document for this plugin"
@@ -0,0 +1,6 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"local>catppuccin/renovate-config"
]
}
@@ -0,0 +1,15 @@
#!/usr/bin/env bash
set -Eeuo pipefail
script_dir=$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd -P)
"${script_dir}"/tests/harness.sh --test "${script_dir}"/tests/default_options.sh --expected "${script_dir}"/tests/default_options_expected.txt "$@"
"${script_dir}"/tests/harness.sh --test "${script_dir}"/tests/window_status_styling.sh --expected "${script_dir}"/tests/window_status_styling_expected.txt "$@"
"${script_dir}"/tests/harness.sh --test "${script_dir}"/tests/application_module.sh --expected "${script_dir}"/tests/application_module_expected.txt "$@"
"${script_dir}"/tests/harness.sh --test "${script_dir}"/tests/battery_module.sh --expected "${script_dir}"/tests/battery_module_expected.txt "$@"
"${script_dir}"/tests/harness.sh --test "${script_dir}"/tests/cpu_module.sh --expected "${script_dir}"/tests/cpu_module_expected.txt "$@"
"${script_dir}"/tests/harness.sh --test "${script_dir}"/tests/load_module.sh --expected "${script_dir}"/tests/load_module_expected.txt "$@"
"${script_dir}"/tests/harness.sh --test "${script_dir}"/tests/pane_styling.sh --expected "${script_dir}"/tests/pane_styling_expected.txt "$@"
"${script_dir}"/tests/harness.sh --test "${script_dir}"/tests/ram_module.sh --expected "${script_dir}"/tests/ram_module_expected.txt "$@"
@@ -0,0 +1,8 @@
# vim:set ft=tmux:
%hidden MODULE_NAME="application"
set -ogq "@catppuccin_${MODULE_NAME}_icon" " "
set -ogqF "@catppuccin_${MODULE_NAME}_color" "#{E:@thm_maroon}"
set -ogq "@catppuccin_${MODULE_NAME}_text" " #{pane_current_command}"
source -F "#{d:current_file}/../utils/status_module.conf"
@@ -0,0 +1,22 @@
# vim:set ft=tmux:
%hidden MODULE_NAME="battery"
set -ogq @batt_icon_charge_tier8 "󰁹"
set -ogq @batt_icon_charge_tier7 "󰂁"
set -ogq @batt_icon_charge_tier6 "󰁿"
set -ogq @batt_icon_charge_tier5 "󰁾"
set -ogq @batt_icon_charge_tier4 "󰁽"
set -ogq @batt_icon_charge_tier3 "󰁼"
set -ogq @batt_icon_charge_tier2 "󰁻"
set -ogq @batt_icon_charge_tier1 "󰁺"
set -ogq @batt_icon_status_charged "󰚥"
set -ogq @batt_icon_status_charging "󰂄"
set -ogq @batt_icon_status_discharging "󰂃"
set -ogq @batt_icon_status_unknown "󰂑"
set -ogq @batt_icon_status_attached "󱈑"
set -ogq "@catppuccin_${MODULE_NAME}_icon" "#{l:#{battery_icon}} "
set -ogqF "@catppuccin_${MODULE_NAME}_color" "#{E:@thm_lavender}"
set -ogq "@catppuccin_${MODULE_NAME}_text" " #{l:#{battery_percentage}}"
source -F "#{d:current_file}/../utils/status_module.conf"
@@ -0,0 +1,9 @@
# vim:set ft=tmux:
# Requires https://github.com/vascomfnunes/tmux-clima
%hidden MODULE_NAME="clima"
set -ogq "@catppuccin_${MODULE_NAME}_icon" " "
set -ogqF "@catppuccin_${MODULE_NAME}_color" "#{E:@thm_yellow}"
set -ogq "@catppuccin_${MODULE_NAME}_text" " #{l:#{clima}}"
source -F "#{d:current_file}/../utils/status_module.conf"
@@ -0,0 +1,18 @@
# vim:set ft=tmux:
%hidden MODULE_NAME="cpu"
set -ogq @cpu_low_fg_color "#{E:@thm_fg}"
set -ogq @cpu_medium_fg_color "#{E:@thm_fg}"
set -ogq @cpu_high_fg_color "#{E:@thm_crust}"
set -ogq @cpu_low_bg_color "#{E:@catppuccin_status_module_text_bg}"
set -ogq @cpu_medium_bg_color "#{E:@catppuccin_status_module_text_bg}"
set -ogq @cpu_high_bg_color "#{E:@thm_red}"
set -ogq "@catppuccin_${MODULE_NAME}_icon" " "
set -ogqF "@catppuccin_${MODULE_NAME}_color" "#{E:@thm_yellow}"
set -ogq "@catppuccin_status_${MODULE_NAME}_text_fg" "#{l:#{cpu_fg_color}}"
set -ogq "@catppuccin_status_${MODULE_NAME}_text_bg" "#{l:#{cpu_bg_color}}"
set -ogq "@catppuccin_${MODULE_NAME}_text" " #{l:#{cpu_percentage}}"
source -F "#{d:current_file}/../utils/status_module.conf"
@@ -0,0 +1,8 @@
# vim:set ft=tmux:
%hidden MODULE_NAME="date_time"
set -ogq "@catppuccin_${MODULE_NAME}_icon" "󰃰 "
set -ogqF "@catppuccin_${MODULE_NAME}_color" "#{E:@thm_sapphire}"
set -ogq "@catppuccin_${MODULE_NAME}_text" " %Y-%m-%d %H:%M"
source -F "#{d:current_file}/../utils/status_module.conf"
@@ -0,0 +1,8 @@
# vim:set ft=tmux:
%hidden MODULE_NAME="directory"
set -ogq "@catppuccin_${MODULE_NAME}_icon" " "
set -ogqF "@catppuccin_${MODULE_NAME}_color" "#{E:@thm_rosewater}"
set -ogq "@catppuccin_${MODULE_NAME}_text" " #{b:pane_current_path}"
source -F "#{d:current_file}/../utils/status_module.conf"
@@ -0,0 +1,9 @@
# vim:set ft=tmux:
%hidden MODULE_NAME="gitmux"
# Requires https://github.com/arl/gitmux
set -ogq "@catppuccin_${MODULE_NAME}_icon" "󰊢 "
set -ogqF "@catppuccin_${MODULE_NAME}_color" "#{E:@thm_teal}"
set -gq "@catppuccin_${MODULE_NAME}_text" ' #(gitmux -cfg $HOME/.gitmux.conf "#{pane_current_path}")'
source -F "#{d:current_file}/../utils/status_module.conf"
@@ -0,0 +1,8 @@
# vim:set ft=tmux:
%hidden MODULE_NAME="host"
set -ogq "@catppuccin_${MODULE_NAME}_icon" "󰒋 "
set -ogqF "@catppuccin_${MODULE_NAME}_color" "#{E:@thm_mauve}"
set -ogq "@catppuccin_${MODULE_NAME}_text" " #H"
source -F "#{d:current_file}/../utils/status_module.conf"
@@ -0,0 +1,13 @@
# vim:set ft=tmux:
%hidden MODULE_NAME="kube"
# Requires https://github.com/jonmosco/kube-tmux
set -ogq "@catppuccin_${MODULE_NAME}_icon" "󱃾 "
set -ogqF "@catppuccin_${MODULE_NAME}_color" "#{E:@thm_blue}"
set -ogqF "@catppuccin_kube_context_color" "#{E:@thm_red}"
set -ogqF "@catppuccin_kube_namespace_color" "#{E:@thm_sky}"
set -ogq "@catppuccin_${MODULE_NAME}_text" \
" #{l:#[fg=#{@catppuccin_kube_context_color}]#{kubectx_context}#[fg=default]:#[fg=#{@catppuccin_kube_namespace_color}]#{kubectx_namespace}}"
source -F "#{d:current_file}/../utils/status_module.conf"
@@ -0,0 +1,8 @@
# vim:set ft=tmux:
%hidden MODULE_NAME="load"
set -ogq "@catppuccin_${MODULE_NAME}_icon" "󰊚 "
set -ogqF "@catppuccin_${MODULE_NAME}_color" "#{E:@thm_blue}"
set -ogq "@catppuccin_${MODULE_NAME}_text" "#{l:#(uptime | awk '{split(substr($0, index($0, \"load\")), a, \":\"); print a[2]\}}')"
source -F "#{d:current_file}/../utils/status_module.conf"
@@ -0,0 +1,9 @@
# vim:set ft=tmux:
# Requires https://github.com/olimorris/tmux-pomodoro-plus
%hidden MODULE_NAME="pomodoro_plus"
set -ogq "@catppuccin_${MODULE_NAME}_icon" " "
set -ogqF "@catppuccin_${MODULE_NAME}_color" "#{E:@thm_peach}"
set -ogq "@catppuccin_${MODULE_NAME}_text" " #{l:#{pomodoro_status}}"
source -F "#{d:current_file}/../utils/status_module.conf"
@@ -0,0 +1,18 @@
# vim:set ft=tmux:
%hidden MODULE_NAME="ram"
set -ogq @ram_low_fg_color "#{E:@thm_fg}"
set -ogq @ram_medium_fg_color "#{E:@thm_fg}"
set -ogq @ram_high_fg_color "#{E:@thm_crust}"
set -ogq @ram_low_bg_color "#{E:@catppuccin_status_module_text_bg}"
set -ogq @ram_medium_bg_color "#{E:@catppuccin_status_module_text_bg}"
set -ogq @ram_high_bg_color "#{E:@thm_red}"
set -ogq "@catppuccin_${MODULE_NAME}_icon" " "
set -ogqF "@catppuccin_${MODULE_NAME}_color" "#{E:@thm_yellow}"
set -ogq "@catppuccin_status_${MODULE_NAME}_text_fg" "#{l:#{ram_fg_color}}"
set -ogq "@catppuccin_status_${MODULE_NAME}_text_bg" "#{l:#{ram_bg_color}}"
set -ogq "@catppuccin_${MODULE_NAME}_text" " #{l:#{ram_percentage}}"
source -F "#{d:current_file}/../utils/status_module.conf"
@@ -0,0 +1,8 @@
# vim:set ft=tmux:
%hidden MODULE_NAME="session"
set -ogq "@catppuccin_${MODULE_NAME}_icon" " "
set -ogq "@catppuccin_${MODULE_NAME}_color" "#{?client_prefix,#{E:@thm_red},#{E:@thm_green}}"
set -ogq "@catppuccin_${MODULE_NAME}_text" " #S"
source -F "#{d:current_file}/../utils/status_module.conf"
@@ -0,0 +1,8 @@
# vim:set ft=tmux:
%hidden MODULE_NAME="uptime"
set -ogq @catppuccin_uptime_icon "󰔟 "
set -ogqF @catppuccin_uptime_color "#{E:@thm_sapphire}"
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/;')"
source -F "#{d:current_file}/../utils/status_module.conf"
@@ -0,0 +1,8 @@
# vim:set ft=tmux:
%hidden MODULE_NAME="user"
set -ogq @catppuccin_user_icon " "
set -ogqF @catppuccin_user_color "#{E:@thm_sky}"
set -ogq @catppuccin_user_text " #(whoami)"
source -F "#{d:current_file}/../utils/status_module.conf"
@@ -0,0 +1,10 @@
# vim:set ft=tmux:
%hidden MODULE_NAME="weather"
# Requires https://github.com/xamut/tmux-weather.
set -ogq @catppuccin_weather_icon " "
set -ogqF @catppuccin_weather_color "#{E:@thm_yellow}"
set -ogq @catppuccin_weather_text " #{l:#{weather}}"
source -F "#{d:current_file}/../utils/status_module.conf"
@@ -0,0 +1,14 @@
#!/usr/bin/env bash
script_dir=$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd -P)
# shellcheck disable=SC1091
source "${script_dir}/helpers.sh"
# Tests that the default options are set correctly
tmux source "${script_dir}/../catppuccin_options_tmux.conf"
tmux source "${script_dir}/../catppuccin_tmux.conf"
print_option @catppuccin_status_application | grep -q "@thm_" &&
echo "@catppuccin_status_application did not expand all colors"
print_option @catppuccin_status_application | sed -E 's/(bash|fish|zsh)/<application>/'
@@ -0,0 +1 @@
@catppuccin_status_application #[fg=#eba0ac]#[fg=#11111b,bg=#eba0ac] #[fg=#cdd6f4,bg=#313244]#{E:@catppuccin_application_text}#[fg=#313244]
@@ -0,0 +1,11 @@
#!/usr/bin/env bash
script_dir=$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd -P)
# shellcheck disable=SC1091
source "${script_dir}/helpers.sh"
# Tests that the default options are set correctly
tmux source "${script_dir}/../catppuccin_options_tmux.conf"
tmux source "${script_dir}/../catppuccin_tmux.conf"
print_option @catppuccin_status_battery
@@ -0,0 +1 @@
@catppuccin_status_battery #[fg=#b4befe]#[fg=#11111b,bg=#b4befe]#{l:#{battery_icon}} #[fg=#cdd6f4,bg=#313244]#{E:@catppuccin_battery_text}#[fg=#313244]
@@ -0,0 +1,11 @@
#!/usr/bin/env bash
script_dir=$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd -P)
# shellcheck disable=SC1091
source "${script_dir}/helpers.sh"
# Tests that the default options are set correctly
tmux source "${script_dir}/../catppuccin_options_tmux.conf"
tmux source "${script_dir}/../catppuccin_tmux.conf"
print_option E:@catppuccin_status_cpu

Some files were not shown because too many files have changed in this diff Show More