diff --git a/kuro/config.py b/kuro/config.py index e82690b..6761564 100644 --- a/kuro/config.py +++ b/kuro/config.py @@ -30,6 +30,20 @@ class Config(BaseConfig): cmd_screenshot = "xfce4-screenshooter -r -c -d 1" cmd_alt_screenshot = "xfce4-screenshooter -w -c -d 0" + # Keyboard commands + cmd_media_play = "playerctl -i kdeconnect play-pause" + cmd_media_next = "playerctl -i kdeconnect next" + cmd_media_mute = "pamixer -t" + cmd_media_volume_down = "pamixer -i 2" + cmd_media_volume_up = "pamixer -d 2" + + # Display mode commands + cmd_monitor_mode_3s144 = "bash /home/kevin/.screenlayout/3scrns_144_rrot.sh" + cmd_monitor_mode_3s60 = "bash /home/kevin/.screenlayout/3scrns_60_rrot.sh" + cmd_monitor_mode_day = "bash /home/kevin/bin/monitor_day.sh" + cmd_monitor_mode_night = "bash /home/kevin/bin/monitor_night.sh" + cmd_monitor_mode_alt = "bash /home/kevin/bin/monitor_gamenight.sh" + # Commands wallpaper_config_command = "/home/kevin/bin/wal-nitrogen-noupdate" @@ -121,8 +135,8 @@ class Config(BaseConfig): volume_font = "Noto Sans" volume_fontsize = 11 volume_theme_path = "/home/kevin/.config/qtile/kuro/resources/volume" - volume_pulse_sink = "alsa_output.usb-Burr-Brown_from_TI_USB_Audio_CODEC-00.analog-stereo" - volume_pulse_sink2 = "alsa_output.pci-0000_0e_00.4.analog-stereo" + volume_pulse_sink = "alsa_output.usb-Burr-Brown_from_TI_USB_Audio_CODEC-00.analog-stereo-output" + volume_pulse_sink2 = "alsa_output.pci-0000_0d_00.4.analog-stereo" volume_is_bluetooth_icon = False volume_update_interval = 0.2 diff --git a/kuro/theme.py b/kuro/theme.py index f3d44d6..f6f0946 100644 --- a/kuro/theme.py +++ b/kuro/theme.py @@ -175,6 +175,23 @@ class Kuro(BaseTheme): Key([], "XF86MonBrightnessUp", lazy.spawn(Config.get('cmd_brightness_up', 'xbacklight -inc 10'))), Key([], "XF86MonBrightnessDown", lazy.spawn(Config.get('cmd_brightness_down', 'xbacklight -dec 10'))), + # Display modes + Key([self.mod], "Prior", lazy.spawn(Config.get('cmd_monitor_mode_3s144', 'true'))), + Key([self.mod], "Next", lazy.spawn(Config.get('cmd_monitor_mode_3s60', 'true'))), + Key([self.mod], "Home", lazy.spawn(Config.get('cmd_monitor_mode_day', 'true'))), + Key([self.mod], "End", lazy.spawn(Config.get('cmd_monitor_mode_night', 'true'))), + Key([self.mod], "Insert", lazy.spawn(Config.get('cmd_monitor_mode_alt', 'true'))), + + # Media keys + Key([], "XF86AudioPlay", lazy.spawn(Config.get('cmd_media_play', 'true'))), + Key([], "XF86AudioNext", lazy.spawn(Config.get('cmd_media_next', 'true'))), + Key([], "XF86AudioMute", lazy.spawn(Config.get('cmd_media_mute', 'true'))), + Key([], "XF86AudioRaiseVolume", lazy.spawn(Config.get('cmd_media_volume_up', 'true'))), + Key([], "XF86AudioLowerVolume", lazy.spawn(Config.get('cmd_media_volume_down', 'true'))), + + # Sleep key + Key([], "XF86Sleep", lazy.spawn(Config.get('cmd_sleep', 'true'))), + # Screenshot key Key([], "Print", lazy.spawn(Config.get('cmd_screenshot', 'xfce4-screenshooter'))), @@ -358,11 +375,13 @@ class Kuro(BaseTheme): pulse_sink=Config.get('volume_pulse_sink', None), fontsize_left=18, fontsize_right=11, + font_left=Config.get('font_groupbox', None), ), kuro.utils.widgets.VolumeInfoWidget( pulse_sink=Config.get('volume_pulse_sink2', None), fontsize_left=18, fontsize_right=11, + font_left=Config.get('font_groupbox', None), ), kuro.utils.widgets.TextSpacerWidget(fontsize=14), kuro.utils.widgets.NetworkInfoWidget(fontsize_left=16, fontsize_right=14), diff --git a/kuro/utils/general.py b/kuro/utils/general.py index 76a1f0a..f63e1ad 100644 --- a/kuro/utils/general.py +++ b/kuro/utils/general.py @@ -204,22 +204,24 @@ class KuroTopBar(Bar): self.window.update_name() def draw(self): - if self.queued_draws == 0: - self.qtile.call_soon(self._actual_draw) - self.queued_draws += 1 + if not self.widgets: + return + if not self._draw_queued: + self.future = self.qtile.call_soon(self._actual_draw) + self._draw_queued = True def _actual_draw(self): - self.queued_draws = 0 - self._resize(self.length, self.widgets) + self._draw_queued = False + self._resize(self._length, self.widgets) for i in self.widgets: i.draw() if self.widgets: end = i.offset + i.length - if end < self.length: + if end < self._length: if self.horizontal: - self.drawer.draw(offsetx=end, width=self.length - end) + self.drawer.draw(offsetx=end, width=self._length - end) else: - self.drawer.draw(offsety=end, height=self.length - end) + self.drawer.draw(offsety=end, height=self._length - end) self.theme.update_visualizers() diff --git a/kuro/utils/widgets.py b/kuro/utils/widgets.py index 43b31ed..d03c0da 100644 --- a/kuro/utils/widgets.py +++ b/kuro/utils/widgets.py @@ -139,6 +139,26 @@ class DualPaneTextboxBase(base._Widget): if self.layout_right: self.layout_right.font = value + @property + def font_left(self): + return self._font_left + + @font_left.setter + def font_left(self, value): + self._font_left = value + if self.layout_left: + self.layout_left.font = value + + @property + def font_right(self): + return self._font_right + + @font_right.setter + def font_right(self, value): + self._font_right = value + if self.layout_right: + self.layout_right.font = value + @property def fontshadow(self): return self._fontshadow @@ -1197,7 +1217,7 @@ class VolumeInfoWidget(DualPaneTextboxBase): """Displays information about the volume""" orientations = base.ORIENTATION_HORIZONTAL defaults = [ - ('update_interval', 10, 'The update interval in seconds.'), + ('update_interval', 5, 'The update interval in seconds.'), ('text_pattern', "{percentage}%", 'The pattern for the text that is displayed.'), ('charging_color', "#ffffff", "Color when battery is charging"), ('normal_color', "#ffffff", "Color when value is normal"),