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.directory for information on how modules work. For quick reference, I plan to cross-post the useful bitsheaders within these files - for the modules I use.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
"""