Skip to main content

i3

i3 is a tiling window manager. See my notes below on various settings, modules, etc

Bumblebee-status

A easy to setup, customizable status bar with community created themes. See the GitHub for more information.

Within your users ~/.i3 directory,

git clone git://github.com/tobi-wan-kenobi/bumblebee-status

Customize the ~/.i3/config file's status_command -

bar {
	font pango:Inconsolata 10
	position top
	tray_output none
	status_command ~/.i3/bumblebee-status/bumblebee-status -m nic disk:root cpu memory battery date time pasink pasource dnf -p root.path=/ time.format="%H:%M CW %V" date.format="%a, %b %d %Y" -t solarized-powerline
}

Add Modules and parameters to change how the bar is displayed. Restart i3 to apply settings.

Modules

When using this status bar, it is common to refer to various *.py files within the ~/.i3/bumblebee-status/bumblebee/modules/ directory for information on how modules work. For quick reference, I cross-post the headers within these files for the modules I use here.

GitHub
"""Displays the unread GitHub notifications for a GitHub user

Requires the following library:
    * requests

Parameters:
    * github.token: GitHub user access token, the token needs to have the 'notifications' scope.
    * github.interval: Interval in minutes between updates, default is 5.
"""
Indicator
"""Displays the indicator status, for numlock, scrolllock and capslock 

Parameters:
    * indicator.include: Comma-separated list of interface prefixes to include (defaults to "numlock,capslock")
    * indicator.signalstype: If you want the signali type color to be "critical" or "warning" (defaults to "warning")
"""
Sun
"""Displays sunrise and sunset times

Parameters:
    * cpu.lat : Latitude of your location
    * cpu.lon : Longitude of your location
"""
NVidia GPU
"""Displays GPU name, temperature and memory usage.

Parameters:
   * nvidiagpu.format: Format string (defaults to "{name}: {temp}°C %{usedmem}/{totalmem} MiB")
                       Available values are: {name} {temp} {mem_used} {mem_total} {fanspeed} {clock_gpu} {clock_mem}

Requires nvidia-smi
"""
Ping
"""Periodically checks the RTT of a configurable host using ICMP echos

Requires the following executable:
    * ping

Parameters:
    * ping.interval: Time in seconds between two RTT checks (defaults to 60)
    * ping.address : IP address to check
    * ping.timeout : Timeout for waiting for a reply (defaults to 5.0)
    * ping.probes  : Number of probes to send (defaults to 5)
    * ping.warning : Threshold for warning state, in seconds (defaults to 1.0)
    * ping.critical: Threshold for critical state, in seconds (defaults to 2.0)
"""
Caffeine
"""Enable/disable automatic screen locking.

Requires the following executables:
    * xdg-screensaver
    * xdotool
    * xprop (as dependency for xdotool)
    * notify-send
"""
Disk
"""Shows free diskspace, total diskspace and the percentage of free disk space.

Parameters:
    * disk.warning: Warning threshold in % of disk space (defaults to 80%)
    * disk.critical: Critical threshold in % of disk space (defaults ot 90%)
    * disk.path: Path to calculate disk usage from (defaults to /)
    * disk.open: Which application / file manager to launch (default xdg-open)
    * disk.format: Format string, tags {path}, {used}, {left}, {size} and {percent} (defaults to "{path} {used}/{size} ({percent:05.02f}%)")
    * (deprecated) disk.showUsed: Show used space (defaults to yes)
    * (deprecated) disk.showSize: Show total size (defaults to yes)
    * (deprecated) disk.showPercent: Show usage percentage (defaults to yes)
"""
CPU
"""Displays CPU utilization across all CPUs.

Parameters:
    * cpu.warning : Warning threshold in % of CPU usage (defaults to 70%)
    * cpu.critical: Critical threshold in % of CPU usage (defaults to 80%)
    * cpu.format  : Format string (defaults to "{:.01f}%")
"""
Memory
"""Displays available RAM, total amount of RAM and percentage available.

Parameters:
    * memory.warning : Warning threshold in % of memory used (defaults to 80%)
    * memory.critical: Critical threshold in % of memory used (defaults to 90%)
    * memory.format: Format string (defaults to "{used}/{total} ({percent:05.02f}%)")
    * memory.usedonly: Only show the amount of RAM in use (defaults to False). Same as memory.format="{used}"
"""
Datetimetz
"""Displays the current date and time with timezone options.

Parameters:
    * datetimetz.format   : strftime()-compatible formatting string
    * datetimetz.timezone : IANA timezone name
    * datetz.format       : alias for datetimetz.format
    * timetz.format       : alias for datetimetz.format
    * timetz.timezone     : alias for datetimetz.timezone
    * datetimetz.locale   : locale to use rather than the system default
    * datetz.locale       : alias for datetimetz.locale
    * timetz.locale       : alias for datetimetz.locale
    * timetz.timezone     : alias for datetimetz.timezone
"""
Pacman
"""Displays update information per repository for pacman.

Parameters:
    * pacman.sum: If you prefere displaying updates with a single digit (defaults to "False")

Requires the following executables:
    * fakeroot
    * pacman
"""
Weather
"""Displays the temperature on the current location based on the ip

Requires the following python packages:
    * requests

Parameters:
    * weather.location: Set location, defaults to 'auto' for getting location from http://ipinfo.io
                        If set to a comma-separated list, left-click and right-click can be used to rotate the locations.
                        Locations should be city names or city ids.
    * weather.unit: metric (default), kelvin, imperial
    * weather.showcity: If set to true, show location information, otherwise hide it (defaults to true)
    * weather.apikey: API key from http://api.openweathermap.org
"""
Date / Time (datetime)

This module is passed as individual parts when building the status_command as date and time, but defined in a single pythong file - ~/.i3/bumblebee-status/bumblebee/modules/datetime.py

"""Displays the current date and time.

Parameters:
    * datetime.format: strftime()-compatible formatting string
    * date.format    : alias for datetime.format
    * time.format    : alias for datetime.format
    * datetime.locale: locale to use rather than the system default
    * date.locale    : alias for datetime.locale
    * time.locale    : alias for datetime.locale
"""