Skip to content

Instantly share code, notes, and snippets.

@aruhier
Created March 13, 2018 21:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aruhier/32b7f9ede98253c0b0479aa6ebc7277c to your computer and use it in GitHub Desktop.
Save aruhier/32b7f9ede98253c0b0479aa6ebc7277c to your computer and use it in GitHub Desktop.
Barython
#!/usr/bin/env python3
from barython import Panel, Screen
from barython.widgets.base import TextWidget, Widget
from barython.widgets.battery import BatteryWidget
from barython.widgets.clock import ClockWidget
from barython.widgets.audio import PulseAudioWidget
from barython.widgets.mpd import MPDWidget
from barython.widgets.xorg import ActiveWindowWidget
from barython.widgets.bspwm import BspwmDesktopWidget, BspwmDesktopPoolWidget
import logging
logging.basicConfig(level=logging.DEBUG)
### COLORS ###
RTJ_RED = '#FFBF0905'
RTJ_PINK = '#FF82046B'
RTJ_PURPLE = '#FF5401B7'
RTJ_BLUE = '#FF262BD5'
RTJ_TEAL = '#FF30A18E'
RTJ_GREEN = '#FF3C9020'
RTJ_EYES = '#FFFFF7C6'
RTJ_STAR = '#FFFFC203'
RTJ_ORANGE = '#FFFF763B'
# Previous Theme Colors
COLOR_FOREGROUND = '#FFA3A3AB'
COLOR_BACKGROUND = '#FF2d2d2d'
COLOR_ACTIVE_MONITOR_FG = '#FF252527'
COLOR_ACTIVE_MONITOR_BG = '#FF58C5F1'
COLOR_INACTIVE_MONITOR_FG = '#FF58C5F1'
COLOR_INACTIVE_MONITOR_BG = '#FF252527'
COLOR_DEFAULT_DARK = '#FF252527'
COLOR_DEFAULT_LIGHT = '#FFF6F9FF'
COLOR_FOCUSED_OCCUPIED_FG = RTJ_RED
COLOR_FOCUSED_OCCUPIED_BG = RTJ_STAR
COLOR_FOCUSED_FREE_FG = RTJ_RED
COLOR_FOCUSED_FREE_BG = RTJ_EYES
COLOR_FOCUSED_URGENT_FG = RTJ_RED
COLOR_FOCUSED_URGENT_BG = RTJ_ORANGE
COLOR_OCCUPIED_FG = COLOR_DEFAULT_DARK
COLOR_OCCUPIED_BG = '#FFFFDA65'
COLOR_FREE_FG = COLOR_DEFAULT_DARK
COLOR_FREE_BG = RTJ_EYES
COLOR_URGENT_FG = COLOR_DEFAULT_LIGHT
COLOR_URGENT_BG = RTJ_RED
COLOR_LAYOUT_FG = '#FFA3A3AB'
COLOR_LAYOUT_BG = '#FF252527'
COLOR_TITLE_FG = '#FFA3A3AB'
COLOR_TITLE_BG = '#FF252527'
COLOR_STATUS_FG = '#FFA3A3AB'
COLOR_STATUS_BG = '#FF252527'
COLOR_WIDGET_BG = "#FF424242"
## RTJ_EYES with a bit of transparency and lighter
COLOR_WIDGET_FG = '#C8FFFADB'
# COLORSCHEME
BLACK = "#FF525252"
RED = "#FFd64937"
GREEN = "#FF93B569"
YELLOW = "#FFF3D1A7"
BLUE = "#FF96A8B7"
MAGENTA = "#FF9F9CA9"
CYAN = "#FF88AABB"
WHITE = "#FFf9f9f9"
DARK = "#FF2d2d2d"
PANNA = "#FFbea492"
###
class CustomClockWidget(ClockWidget):
def organize_result(self, date_now, **kwargs):
date = date_now.strftime("%a %d %b").title()
clock = self.decorate(date_now.strftime("%H:%M"), font=2)
return Widget.organize_result(
self, "{} {}".format(date, clock)
)
PADDING = 2
p = Panel(instance_per_screen=True,
fg=COLOR_FOREGROUND, bg=COLOR_BACKGROUND,
fonts=("Hack:size=9.5",
"Hack:size=9.5:style=bold",
"FontAwesome:size=11.5"),
clickable=40, refresh=0.1, keep_unplugged_screens=False)
mpd = MPDWidget(
fg=COLOR_WIDGET_FG, bg=COLOR_WIDGET_BG, padding=PADDING, refresh=0.5,
icon={
"play": "\uf04c", "pause": "\uf04b", "stop": "\uf04d"
}
)
pa = PulseAudioWidget(
fg=COLOR_WIDGET_FG,
bg=COLOR_WIDGET_BG,
refresh=0.1,
icon={
"ouput_mute": "\uf026",
"volume": ((0, "\uf026"), (1, "\uf027"), (70, "\uf028")),
},
padding=PADDING
)
bspwm_kwargs = {
"fg": COLOR_DEFAULT_DARK, "bg": RTJ_EYES,
"fg_focused_occupied": COLOR_FOCUSED_OCCUPIED_FG,
"bg_focused_occupied": COLOR_FOCUSED_OCCUPIED_BG,
"fg_focused_free": COLOR_FOCUSED_FREE_FG,
"bg_focused_free": COLOR_FOCUSED_FREE_BG,
"fg_focused_urgent": COLOR_FOCUSED_URGENT_FG,
"bg_focused_urgent": COLOR_FOCUSED_URGENT_BG,
"fg_free": COLOR_FREE_FG, "bg_free": COLOR_FREE_BG,
"fg_occupied": COLOR_OCCUPIED_FG, "bg_occupied": COLOR_OCCUPIED_BG,
"fg_urgent": COLOR_URGENT_FG, "bg_urgent": COLOR_URGENT_BG,
"fg_focused_monitor": COLOR_ACTIVE_MONITOR_FG,
"bg_focused_monitor": COLOR_ACTIVE_MONITOR_BG,
"fixed_order": [
"a", "s", "d", "f", "u", "i", "o", "p", "7", "8", "9", "0", ")",
],
"padding": 1
}
clock = CustomClockWidget(fg=COLOR_WIDGET_FG, bg=COLOR_WIDGET_BG,
date_format="%H:%M", icon="\uf073", refresh=0.5,
padding=PADDING)
# active_window = ActiveWindowWidget(fg=COLOR_DEFAULT_LIGHT, bg=RTJ_GREEN,
# refresh=0.2, padding=PADDING)
battery = BatteryWidget(fg=COLOR_WIDGET_FG, bg=COLOR_WIDGET_BG,
padding=PADDING)
for s in (Screen("eDP-1", height=22), Screen("HDMI-1"), Screen("DP-1")):
main_screen = s
main_screen.add_widget(
"l", # active_window,
mpd, TextWidget(fg=COLOR_WIDGET_BG, bg=COLOR_BACKGROUND, text="")
)
main_screen.add_widget(
"c",
TextWidget(bg=RTJ_EYES, fg=COLOR_BACKGROUND, text=""),
BspwmDesktopPoolWidget(**bspwm_kwargs),
TextWidget(bg=RTJ_EYES, fg=COLOR_BACKGROUND, text=""),
)
main_screen.add_widget(
"r",
TextWidget(fg=COLOR_WIDGET_BG, bg=COLOR_BACKGROUND, text=""),
battery,
pa,
clock
)
p.add_screen(main_screen)
p.start()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment