Skip to content

2KAbhishek/tmux2k

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

License People Stars Forks Watches Last Updated

Make tmux powerful and pretty ๐ŸฅŠ๐Ÿ’…

tmux2k is a highly customizable framework designed to enhance your tmux status bar, providing you with a sleek and informative interface for your terminal sessions.

default-plugins

โœจ Features

  • Enhanced Aesthetics: Prettify your tmux setup with a stylish and modern status bar.
  • Informative Display: Gain access to all the essential information you need right on your status bar, including system stats, git branch, weather updates, and more.
  • Plugin Ecosystem: Comes with a wide array of plugins to tailor your status bar to your specific needs, covering everything from system monitoring to version control integration.
  • Ease of Customization: Customize and extend tmux2k effortlessly, thanks to its intuitive configuration options and flexible architecture.
  • Dynamic Updates: Enjoy real-time updates and dynamic content rendering for a seamless and responsive user experience.

๐ŸŽจ Available Themes:

  • default default
  • default icons default-icons
  • catppuccin catppuccin
  • catppuccin icons catppuccin-icons
  • gruvbox gruvbox
  • gruvbox icons gruvbox-icons
  • monokai monokai
  • monokai icons monokai-icons
  • onedark onedark
  • onedark icons onedark-icons
  • duo duo
  • duo icons duo-icons
  • duo blue duo-blue
  • default no powerline default-no-powerline

To use themes:

# use a theme
set -g @tmux2k-theme 'onedark'

# to show icons only
set -g @tmux2k-icons-only true

# to customize duo bg and fg
set -g @tmux2k-duo-fg "#1688f0" # this will get you duo blue shown above
set -g @tmux2k-duo-bg "#000000" # this will set the bg for duo theme

# to set powerline symbols
set -g @tmux2k-right-sep ๎‚ด # alternate right status bar sep
set -g @tmux2k-window-list-right-sep ๎‚ฒ # alternate window list right sep

# to not show powerline
set -g @tmux2k-show-powerline false

# set session icon, accpets: `session`, 'window`, or any string
set -g @tmux2k-session-icon "๎ฏˆ #S" # `#W` for window name

๐Ÿ–Œ๏ธ Customize Theme Colors

Available Colors:
  • text: Default text color. Default: #282a36
  • bg_main: Background color for main sections. Default: #15152a
  • bg_alt: Background color for alternate sections. Default: #45455a
  • black: Black color. Default: #0a0a0f
  • white: White color. Default: #d5d5da
  • red: Red color. Default: #ff001f
  • light_red: Light red color. Default: #ff0055
  • green: Green color. Default: #3dd50a
  • light_green: Light green color. Default: #ccffcc
  • blue: Blue color. Default: #1688f0
  • light_blue: Light blue color. Default: #11dddd
  • yellow: Yellow color. Default: #ffb86c
  • light_yellow: Light yellow color. Default: #ffd21a
  • purple: Purple color. Default: #bf58ff
  • light_purple: Light purple color. Default: #ff65c6

To customize theme colors:

set -g @tmux2k-text '#cdcdcd' # change text to white
set -g @tmux2k-bg-main '#ffffff' # change bg to white
set -g @tmux2k-yellow '#f8c800' # change yellow color

You may have to restart tmux for some changes to reflect

๐Ÿงฉ Available Plugins

1. bandwidth

Show network bandwidth usage

  • tmux2k-bandwidth-network-name: Network interface to track bandwidth of, default: en0
  • tmux2k-bandwidth-up-icon: Icon for bandwidth upload usage, default: ๏ข
  • tmux2k-bandwidth-down-icon: Icon for bandwidth download usage, default: ๏ฃ

2. battery

Show battery stats and percentage

  • tmux2k-battery-charging-icon: Icon for charging status, default: ๏‡ฆ
  • tmux2k-battery-missing-icon: Icon for missing battery, default: ๓ฑ‰
  • tmux2k-battery-percentage-0: Icon for 0-25% battery, default: ๏‰„
  • tmux2k-battery-percentage-1: Icon for 25-50% battery, default: ๏‰ƒ
  • tmux2k-battery-percentage-2: Icon for 50-75% battery, default: ๏‰‚
  • tmux2k-battery-percentage-3: Icon for 75-90% battery, default: ๏‰
  • tmux2k-battery-percentage-4: Icon for 90-100% battery, default: ๏‰€

3. cpu

Show CPU usage information

  • tmux2k-cpu-icon: Icon for CPU usage, default: ๏’ผ
  • tmux2k-cpu-display-load: Control CPU load display, default: false

4. cwd

Show current working directory

  • tmux2k-cwd-icon: Icon for directory, default: ๏“”

5. git

Show Git branch and status information

  • tmux2k-git-display-status: Control git status display, default: false
  • tmux2k-git-added-icon: Icon for added files, default: ๏‘—
  • tmux2k-git-modified-icon: Icon for modified files, default: ๏‘™
  • tmux2k-git-updated-icon: Icon for updated files, default: ๏‘ด
  • tmux2k-git-deleted-icon: Icon for deleted files, default: ๏‘˜
  • tmux2k-git-repo-icon: Icon for repository, default: ๏„“
  • tmux2k-git-diff-icon: Icon for differences, default: ๏“’
  • tmux2k-git-no-repo-icon: Icon for no repository, default: ๎ฎŸ

6. gpu

Show GPU usage information

  • tmux2k-gpu-icon: Icon for GPU usage, default: `๏‘ณ``

7. network

Show network status and statistics

  • tmux2k-network-ethernet-icon: Icon for Ethernet connection, default: ๓ฐˆ€
  • tmux2k-network-wifi-icon: Icon for Wi-Fi connection, default: ๏‡ซ
  • tmux2k-network-offline-icon: Icon for offline status, default: ๓ฐŒ™

8. ping

Show network ping statistics

9. pomodoro

Shows pomodoro timer, needs tmux-pomodoro-plus (hit prefix + p to start)

10. ram

Show RAM usage information

- `tmux2k-ram-icon`: Icon for RAM usage, default: `๎ฟ…`

11. session

Shows Current Session/Window with custom icon

- `tmux2k-session-format`: Format for Tmux session, default: `#S`
- `tmux2k-session-icon`: Icon for Tmux session, default: `๎ฏˆ`

12. time

Show current time and date

- `@tmux2k-time-format`: Sets the format for displaying the time. Default: `"%a %I:%M %p"`
- `@tmux2k-time-icon`: Sets the icon for the time display. Default: `๏บ`

13. weather

Show weather information

- `@tmux2k-weather-scale`: Scale to use for temperature. Default: `c`, options: `[c, f, k]`
- `@tmux2k-weather-display-location`: Whether to show location name. Default: `true`
- `@tmux2k-weather-location`: Fixed location for weather. Default: `""`

14. window_list

tmux window list

- `@tmux2k-window-list-left-sep`: Sets the left separator for the window list. Default: `๎‚ถ`
- `@tmux2k-window-list-right-sep`: Sets the right separator for the window list. Default: `๎‚ด`
- `@tmux2k-window-list-alignment`: Sets the alignment of the window list. Default: `'absolute-centre'`
- `@tmux2k-window-list-format`: Sets the format for the window list. Default: `'#I:#W'`
- `@tmux2k-window-list-compact`: Enables or disables compact mode for the window list. Default: `false`

Gemeral Plugin Configs

# set the left and right plugin sections
set -g @tmux2k-left-plugins "session git cpu ram"
set -g @tmux2k-right-plugins "battery network time"

# contorl refresh rate, also applies to bandwidth, cpu, gpu, ping, pomodoro, ram
set -g @tmux2k-refresh-rate 5

# to customize plugin colors
set -g @tmux2k-[plugin-name]-colors "[background] [foreground]"
set -g @tmux2k-cpu-colors "red black" # set cpu plugin bg to red, fg to black

๐Ÿช† Add New Plugins

To add a new plugin, add a script to the plugins folder, tmux2k will put the echo/print of the plugin to the your tmux status bar.

The plugin name and script file name must match e.g: plugin named foo should have a file called scripts/foo.sh

โšก Setup

โš™๏ธ Requirements

Before you begin, ensure you have met the following requirements:

  • You have installed the latest version of tmux.
  • bash 5.2 or newer, mac users can install it using brew install bash
  • tpm for managing tmux plugins.
  • A patched nerd font for powerline and glyphs support.

๐Ÿ’ป Installation

If you are a tpm user, you can install the theme and keep up to date by adding the following to your .tmux.conf file:

set -g @plugin '2kabhishek/tmux2k'
  • Run tmux
  • Use the tpm install command: prefix + I (default prefix is ctrl+b)

You can also directly clone the repo to your ~/.tmux/plugins/ folder.

๐Ÿ—๏ธ What's Next

  • You tell me!

๐Ÿง‘โ€๐Ÿ’ป Behind The Code

๐ŸŒˆ Inspiration

I came across dracula/tmux sometime back and I wanted to create a more customizable and easy to expand solution.

๐Ÿ’ก Challenges/Learnings

  • Learned a lot about the tmux and tpm ecosystem.
  • Did some fancy shell scripting.

What's next

To-Do

You tell me!

๐Ÿงฐ Tooling

  • dots2k โ€” Dev Environment
  • nvim2k โ€” Personalized Editor
  • sway2k โ€” Desktop Environment
  • qute2k โ€” Personalized Browser

๐Ÿ” More Info

  • tmux-tea โ€” Simple and powerful tmux session manager
  • tmux-tilit โ€” Turns tmux into a terminal window manager

โญ hit the star button if you found this useful โญ

Source | Blog | Twitter | LinkedIn | More Links | Other Projects