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

  • Informative Display: Essential system stats, git info, weather, and more.
  • Plugin Ecosystem: Extensive plugins for system monitoring and version control.
  • Easy Customization: Intuitive configuration and flexible architecture.
  • Real-Time Updates: Dynamic content rendering for a responsive experience.

โšก Setup

โš™๏ธ Requirements

Important

bash 5.2 or newer, macOS users can install it using brew install bash

๐Ÿ’ป 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 and use the tpm install command: prefix + I (default prefix is ctrl+b)

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

๐ŸŽจ 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:

Base Colors

  • white, gray, black
  • light_blue, blue, dark_blue
  • light_green, green, dark_green
  • light_orange, orange, dark_orange
  • light_pink, pink, dark_pink
  • light_purple, purple, dark_purple
  • light_red, red, dark_red
  • light_yellow, yellow, dark_yellow

UI Colors

  • text: Text color. Default: black
  • bg_main: Background color. Default: black
  • bg_alt: Alt Background color. Default: gray
  • message_bg: Message background color. Default: blue
  • message_fg: Message text color. Default: black
  • pane_active_border: Active pane border color. Default: blue
  • pane_border: Inactive pane border color. Default: black
  • prefix_highlight: Highlight color for active prefix. Default: blue

To customize theme colors:

set -g @tmux2k-light-yellow '#f8c800' # change light yellow base color
set -g @tmux2k-bg-main '#ffffff' # change bg to white
set -g @tmux2k-prefix-highlight '#f8c800' # change prefix 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. cpu-temp

Show CPU temperature

  • tmux2k-cpu-temp-icon: Icon for CPU temperature, default: ๏‹‰
  • tmux2k-cpu-temp-delimiter: Decimal delimiter for CPU temperature, default: .
  • tmux2k-cpu-temp-round: Round CPU temperature to the nearest integer, default: false

5. cwd

Show current working directory

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

6. 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: ๎ฎŸ

7. gpu

Show GPU usage information

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

8. group

Group output from several other plugins to present information in more compact manner.

  • tmux2k-group-plugins: Set plugins for combining their output, default: cpu ram uptime
  • tmux2k-group-delimiter: Delimiter between plugin's output, default: ๎˜ก

9. 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: ๓ฐŒ™

10. ping

Show network ping statistics

11. pomodoro

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

12. ram

Show RAM usage information

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

13. 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: ๎ฏˆ

14. 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: ๏บ

15. 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: ""

16. window-list

tmux window list, this plugin is not supposed to be added to left / right plugin arrays, use the alignment option to position it.

  • @tmux2k-window-list-alignment: Sets the alignment of the window list. Default: 'absolute-centre' Available options: left | centre | right | absolute-centre
  • @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-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

17. uptime

Show current system uptime

  • tmux2k-uptime-icon: Icon for system uptime, default: ๓ฐ€ 

๐Ÿช† Add New Plugins

To add a new plugin:

  • Copy plugin/custom.sh and rename it to match your plugin name.
  • Update the new plugin script to echo the expected output.
  • Add color declaration for your plugin name into the plugin_colors array in main.sh

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

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, applies to bandwidth, ping
set -g @tmux2k-refresh-rate 1

# 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

๐Ÿ—๏ธ 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