General updates and fixes, ghostty terminal emulator, wallust colors, different wallpaper set at night
This commit is contained in:
		
							parent
							
								
									1e65025045
								
							
						
					
					
						commit
						12238c2b6c
					
				
					 5 changed files with 46 additions and 23 deletions
				
			
		| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
from libqtile import layout as libqtile_layout, layout, bar, widget
 | 
			
		||||
from libqtile.command import lazy
 | 
			
		||||
from libqtile.lazy import lazy
 | 
			
		||||
from libqtile.config import Key, Group, Screen, Drag, Click, Match
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -15,12 +15,13 @@ class Config(BaseConfig):
 | 
			
		|||
    inactive_dark = "#333333"
 | 
			
		||||
 | 
			
		||||
    # Default Applications
 | 
			
		||||
    app_terminal = "terminator"
 | 
			
		||||
    app_terminal = "ghostty"
 | 
			
		||||
    app_terminal_init = "ghostty --gtk-single-instance=true --quit-after-last-window-close=false --initial-window=true"
 | 
			
		||||
    app_launcher = "/home/kevin/bin/dmenu_wal.sh"
 | 
			
		||||
    web_browser = "firefox"
 | 
			
		||||
    file_manager = "thunar"
 | 
			
		||||
    app_chat = "/usr/bin/rambox"
 | 
			
		||||
    app_irc = "quasselclient"
 | 
			
		||||
    app_irc = ""
 | 
			
		||||
    app_mail = "thunderbird"
 | 
			
		||||
    app_music = "spotify"
 | 
			
		||||
    cmd_brightness_up = "sudo /usr/bin/xbacklight -inc 10"
 | 
			
		||||
| 
						 | 
				
			
			@ -49,7 +50,8 @@ class Config(BaseConfig):
 | 
			
		|||
 | 
			
		||||
    # Images
 | 
			
		||||
    desktop_bg = "/home/kevin/Pictures/wallpapers/desktop.png"
 | 
			
		||||
    desktop_bg_folder = "/home/kevin/Pictures/wallpapers/desktop_rotation"
 | 
			
		||||
    desktop_bg_folder = "/home/kevin/Pictures/wallpapers/desktop_rotation/day"
 | 
			
		||||
    desktop_bg_night_folder = "/home/kevin/Pictures/wallpapers/desktop_rotation/night"
 | 
			
		||||
    # desktop_bg_override = "/home/kevin/Pictures/safe_wallpaper.jpg"
 | 
			
		||||
    applauncher_image = "/home/kevin/.config/qtile/kuro/resources/arch.png"
 | 
			
		||||
    custom_layout_icon_paths = ['/home/kevin/.config/qtile/kuro/resources/layout_icons/']
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
import json
 | 
			
		||||
import os
 | 
			
		||||
import random
 | 
			
		||||
import datetime
 | 
			
		||||
 | 
			
		||||
# Initialize logging
 | 
			
		||||
from libqtile.log_utils import logger
 | 
			
		||||
| 
						 | 
				
			
			@ -8,7 +9,8 @@ from libqtile.log_utils import logger
 | 
			
		|||
logger.error("Importing qtile theme requirements...")
 | 
			
		||||
 | 
			
		||||
from libqtile.config import Key, Screen, Group, Drag, Click, Match
 | 
			
		||||
from libqtile.command import lazy
 | 
			
		||||
from libqtile.command.base import expose_command
 | 
			
		||||
from libqtile.lazy import lazy
 | 
			
		||||
from libqtile import layout, bar, widget, qtile
 | 
			
		||||
 | 
			
		||||
logger.error("Importing theme util functions...")
 | 
			
		||||
| 
						 | 
				
			
			@ -248,7 +250,7 @@ class Kuro(BaseTheme):
 | 
			
		|||
        
 | 
			
		||||
        # http://fontawesome.io/cheatsheet
 | 
			
		||||
        groups.append(Group("", spawn=Config.get('web_browser', "true")))
 | 
			
		||||
        groups.append(Group("", spawn=Config.get('app_terminal', "true")))
 | 
			
		||||
        groups.append(Group("", spawn=Config.get('app_terminal_init', "true")))
 | 
			
		||||
        groups.append(Group(""))
 | 
			
		||||
        groups.append(Group("", spawn=Config.get('app_chat', "true")))
 | 
			
		||||
        groups.append(Group("", spawn=Config.get('app_irc', "true")))
 | 
			
		||||
| 
						 | 
				
			
			@ -612,7 +614,8 @@ class Kuro(BaseTheme):
 | 
			
		|||
            qtile.theme_instance = self
 | 
			
		||||
 | 
			
		||||
        if self.current_wallpaper:
 | 
			
		||||
            p = utils.execute_once(["wal", "-n", "-i", "{}".format(self.current_wallpaper)])
 | 
			
		||||
            #p = utils.execute_once(["wal", "-n", "-i", "{}".format(self.current_wallpaper)])
 | 
			
		||||
            p = utils.execute_once(["wallust", "run", "{}".format(self.current_wallpaper)])
 | 
			
		||||
            p.wait()
 | 
			
		||||
        else:
 | 
			
		||||
            wallpaper = None
 | 
			
		||||
| 
						 | 
				
			
			@ -640,8 +643,8 @@ class Kuro(BaseTheme):
 | 
			
		|||
        self.log_info("Starting xiccd color profile manager...")
 | 
			
		||||
        utils.execute_once("xiccd")
 | 
			
		||||
 | 
			
		||||
        self.log_info("Starting KDE connect daemon...")
 | 
			
		||||
        utils.execute_once("/usr/lib/kdeconnectd")
 | 
			
		||||
        #self.log_info("Starting KDE connect daemon...")
 | 
			
		||||
        #utils.execute_once("/usr/lib/kdeconnectd")
 | 
			
		||||
 | 
			
		||||
        self.log_info("Starting KDE connect indicator...")
 | 
			
		||||
        utils.execute_once("/usr/bin/kdeconnect-indicator")
 | 
			
		||||
| 
						 | 
				
			
			@ -784,16 +787,26 @@ class Kuro(BaseTheme):
 | 
			
		|||
    def update_wallpaper(qtile):
 | 
			
		||||
        wallpapers = []
 | 
			
		||||
        wallpaper_dir = Config.get("desktop_bg_folder", "")
 | 
			
		||||
 | 
			
		||||
        # Use a wallpaper from the night folder after 9PM and before 6AM
 | 
			
		||||
        wallpaper_night_dir = Config.get("desktop_bg_night_folder", "")
 | 
			
		||||
        if wallpaper_night_dir and os.path.isdir(wallpaper_night_dir):
 | 
			
		||||
            cur_time = datetime.datetime.now()
 | 
			
		||||
            if cur_time.hour > 21 or cur_time.hour < 6:
 | 
			
		||||
                wallpaper_dir = wallpaper_night_dir
 | 
			
		||||
 | 
			
		||||
        try:
 | 
			
		||||
            wallpapers = [x for x in os.listdir(wallpaper_dir) if ".vertical." not in x]
 | 
			
		||||
        except os.error as e:
 | 
			
		||||
            logger.warning("Could not load wallpapers from directory: {}".format(e))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        if wallpapers:
 | 
			
		||||
            if Config.get("desktop_bg_override", False):
 | 
			
		||||
                qtile.theme_instance.current_wallpaper = Config.get("desktop_bg_override", "")
 | 
			
		||||
            else:
 | 
			
		||||
                qtile.theme_instance.current_wallpaper = os.path.join(wallpaper_dir, random.choice(wallpapers))
 | 
			
		||||
                logger.warning("Selected new wallpaper: {}".format(qtile.theme_instance.current_wallpaper))
 | 
			
		||||
            Kuro.set_wallpaper(qtile, qtile.theme_instance.current_wallpaper)
 | 
			
		||||
        else:
 | 
			
		||||
            utils.execute_once("nitrogen --restore")
 | 
			
		||||
| 
						 | 
				
			
			@ -838,7 +851,8 @@ class Kuro(BaseTheme):
 | 
			
		|||
        :type qtile: libqtile.manager.Qtile
 | 
			
		||||
        """
 | 
			
		||||
        if qtile.theme_instance.current_wallpaper:
 | 
			
		||||
            p = utils.execute(["wal", "-n", "-i", "{}".format(qtile.theme_instance.current_wallpaper)])
 | 
			
		||||
            #p = utils.execute(["wal", "-n", "-i", "{}".format(qtile.theme_instance.current_wallpaper)])
 | 
			
		||||
            p = utils.execute(["wallust", "run", "{}".format(qtile.theme_instance.current_wallpaper)])
 | 
			
		||||
            p.wait()
 | 
			
		||||
 | 
			
		||||
        colors = None
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,6 +11,7 @@ import six
 | 
			
		|||
import unicodedata
 | 
			
		||||
from libqtile import bar, pangocffi
 | 
			
		||||
from libqtile.log_utils import logger
 | 
			
		||||
from libqtile.command.base import expose_command
 | 
			
		||||
from libqtile.widget import base
 | 
			
		||||
from libqtile.widget.base import ORIENTATION_HORIZONTAL
 | 
			
		||||
from libqtile.widget.battery import default_icon_path, load_battery, BatteryState
 | 
			
		||||
| 
						 | 
				
			
			@ -242,18 +243,19 @@ class DualPaneTextboxBase(base._Widget):
 | 
			
		|||
            self.bar.draw()
 | 
			
		||||
            self.changed = False
 | 
			
		||||
 | 
			
		||||
    def cmd_set_font(self, font=base.UNSPECIFIED, fontsize_left=base.UNSPECIFIED, fontsize_right=base.UNSPECIFIED, fontshadow=base.UNSPECIFIED):
 | 
			
		||||
    @expose_command()
 | 
			
		||||
    def set_font(self, font=None, fontsize_left=None, fontsize_right=None, fontshadow=None):
 | 
			
		||||
        """
 | 
			
		||||
            Change the font used by this widget. If font is None, the current
 | 
			
		||||
            font is used.
 | 
			
		||||
        """
 | 
			
		||||
        if font is not base.UNSPECIFIED:
 | 
			
		||||
        if font is not None:
 | 
			
		||||
            self.font = font
 | 
			
		||||
        if fontsize_left is not base.UNSPECIFIED:
 | 
			
		||||
        if fontsize_left is not None:
 | 
			
		||||
            self.fontsize_left = fontsize_left
 | 
			
		||||
        if fontsize_right is not base.UNSPECIFIED:
 | 
			
		||||
        if fontsize_right is not None:
 | 
			
		||||
            self.fontsize_right = fontsize_right
 | 
			
		||||
        if fontshadow is not base.UNSPECIFIED:
 | 
			
		||||
        if fontshadow is not None:
 | 
			
		||||
            self.fontshadow = fontshadow
 | 
			
		||||
        self.bar.draw()
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -354,7 +356,8 @@ class MediaWidget(base.InLoopPollText):
 | 
			
		|||
            # logger.warning("{}")
 | 
			
		||||
            pass
 | 
			
		||||
 | 
			
		||||
    def cmd_update_custom_player(self, player_name, data):
 | 
			
		||||
    @expose_command()
 | 
			
		||||
    def update_custom_player(self, player_name, data):
 | 
			
		||||
        # Update firefox player
 | 
			
		||||
        if player_name.startswith("firefox"):
 | 
			
		||||
            if data['playing'] and data['muted']:
 | 
			
		||||
| 
						 | 
				
			
			@ -538,7 +541,7 @@ class AudioVisualizerWidget(_Graph):
 | 
			
		|||
 | 
			
		||||
class KuroCurrentLayoutIcon(CurrentLayoutIcon):
 | 
			
		||||
    def _get_layout_names(self):
 | 
			
		||||
        names = super(KuroCurrentLayoutIcon, self)._get_layout_names()
 | 
			
		||||
        names = list(super(KuroCurrentLayoutIcon, self)._get_layout_names())
 | 
			
		||||
 | 
			
		||||
        from kuro.utils import layouts as kuro_layouts
 | 
			
		||||
        from libqtile.layout.base import Layout
 | 
			
		||||
| 
						 | 
				
			
			@ -550,7 +553,7 @@ class KuroCurrentLayoutIcon(CurrentLayoutIcon):
 | 
			
		|||
        ]
 | 
			
		||||
        names.extend(klayouts)
 | 
			
		||||
 | 
			
		||||
        return list(set(names))
 | 
			
		||||
        return set(names)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class KuroTaskList(TaskList):
 | 
			
		||||
| 
						 | 
				
			
			@ -1321,18 +1324,22 @@ class VolumeInfoWidget(DualPaneTextboxBase):
 | 
			
		|||
 | 
			
		||||
        self.update()
 | 
			
		||||
 | 
			
		||||
    def cmd_increase_vol(self):
 | 
			
		||||
    @expose_command()
 | 
			
		||||
    def increase_vol(self):
 | 
			
		||||
        # Emulate button press.
 | 
			
		||||
        self.button_press(0, 0, BUTTON_UP)
 | 
			
		||||
 | 
			
		||||
    def cmd_decrease_vol(self):
 | 
			
		||||
    @expose_command()
 | 
			
		||||
    def decrease_vol(self):
 | 
			
		||||
        # Emulate button press.
 | 
			
		||||
        self.button_press(0, 0, BUTTON_DOWN)
 | 
			
		||||
 | 
			
		||||
    def cmd_mute(self):
 | 
			
		||||
    @expose_command()
 | 
			
		||||
    def mute(self):
 | 
			
		||||
        # Emulate button press.
 | 
			
		||||
        self.button_press(0, 0, BUTTON_MUTE)
 | 
			
		||||
 | 
			
		||||
    def cmd_run_app(self):
 | 
			
		||||
    @expose_command()
 | 
			
		||||
    def run_app(self):
 | 
			
		||||
        # Emulate button press.
 | 
			
		||||
        self.button_press(0, 0, BUTTON_RIGHT)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue