Load more config from host-specific files, add host-config for work DBO, allow using 'fake-screens', various bugfixes

This commit is contained in:
Kevin Alberts 2025-09-01 09:29:32 +02:00
parent 3c72148fcd
commit 8f5e1e282a
5 changed files with 308 additions and 129 deletions

View file

@ -1,5 +1,6 @@
from kuro.base import BaseConfig
from libqtile.log_utils import logger
from libqtile.lazy import lazy
# Config variables used in the main configuration
@ -10,6 +11,13 @@ class Config(BaseConfig):
debug = False
verbose = False
# General variables
homedir = "/home/kevin"
use_fake_screens = False
# Screen configs (empty = autoconfig, otherwise list of Screen() kwarg dicts)
screen_kwargs = []
# Colors
foreground = "#ffffff"
background = "#000000"
@ -18,8 +26,6 @@ class Config(BaseConfig):
inactive_dark = "#333333"
# Predefined commands
cmd_brightness_up = "sudo /usr/bin/xbacklight -inc 10"
cmd_brightness_down = "sudo /usr/bin/xbacklight -dec 10"
cmd_screenshot = "/home/kevin/bin/screenshot.sh"
cmd_alt_screenshot = "/home/kevin/bin/screenshot.sh"
lock_command = "bash /home/kevin/bin/lock.sh"
@ -28,11 +34,52 @@ class Config(BaseConfig):
# Default Applications
app_terminal = "terminator"
app_launcher = "wofi --show run,drun"
app_launcer_x11 = "/home/kevin/bin/dmenu_wal.sh"
file_manager = "thunar"
visualizer_app = "glava"
web_browser = "firefox"
network_config = None
# Group definitions
groups = [
{'name': ''},
{'name': ''},
{'name': ''},
{'name': ''},
{'name': ''},
{'name': ''},
{'name': ''},
{'name': ''},
{'name': ''},
{'name': '', 'layout': 'floating', 'options': {'border_focus': '#990000', 'border_normal': '#440000'}}
]
# Extra keybind definitions
extra_keys = [
# Display modes
{'modifiers': ['mod'], 'key': "Prior", 'action': lazy.spawn("bash /home/kevin/.screenlayout/3scrns_144_rrot.sh")},
{'modifiers': ['mod'], 'key': "Next", 'action': lazy.spawn("bash /home/kevin/.screenlayout/3scrns_60_rrot.sh")},
{'modifiers': ['mod'], 'key': "Home", 'action': lazy.spawn("bash /home/kevin/bin/monitor_day.sh")},
{'modifiers': ['mod'], 'key': "End", 'action': lazy.spawn("bash /home/kevin/bin/monitor_night.sh")},
{'modifiers': ['mod'], 'key': "Insert", 'action': lazy.spawn("bash /home/kevin/bin/monitor_gamenight.sh")},
# Backlight keys
{'modifiers': [], 'key': "XF86MonBrightnessUp", 'action': lazy.spawn("sudo /usr/bin/xbacklight -inc 10")},
{'modifiers': [], 'key': "XF86MonBrightnessDown", 'action': lazy.spawn("sudo /usr/bin/xbacklight -dec 10")},
]
# Extra floating window rules
extra_float_rules = [
# Wine Origin game launcher
{'title': 'origin.exe', 'wm_class': 'Wine'},
# Homebank popups
{'title': 'Add transaction', 'wm_class': 'homebank'},
{'title': 'Edit transaction', 'wm_class': 'homebank'},
{'title': 'Inherit transaction', 'wm_class': 'homebank'},
{'title': 'Multiple edit transactions', 'wm_class': 'homebank'},
{'title': 'Transaction splits', 'wm_class': 'homebank'},
]
# Autostart applications
apps_autostart_group = [
{'group': "", 'command': ["firefox"]},
@ -69,12 +116,8 @@ class Config(BaseConfig):
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"
cmd_reconfigure_screens = "kanshictl reload"
cmd_wal = ["wallust", "run"]
# Commands
x11_wallpaper_config_command = "/home/kevin/bin/wal-nitrogen-noupdate" # TODO: Remove
@ -208,6 +251,9 @@ class Config(BaseConfig):
# Show battery widget
show_battery_widget = False
# Show media widget
show_media_widget = True
# Comma-separated list of ignored players in the media widget
media_ignore_players = "kdeconnect"
@ -219,4 +265,4 @@ class Config(BaseConfig):
# Replace some apps if launched in X11 mode
if qtile.core.name == "x11":
logger.warning("Launched in X11 mode, overriding some apps in Config to xorg-variants.")
cls.app_launcher = "/home/kevin/bin/dmenu_wal.sh"
cls.app_launcher = cls.app_launcer_x11

133
kuro/config/ppc1006083.py Normal file
View file

@ -0,0 +1,133 @@
from kuro.config import Config as GeneralConfig
import os
from libqtile.log_utils import logger
class Config(GeneralConfig):
"""
Kuro QTile configuration overrides for Work DBO laptop
"""
config_name = "DBO Power"
homedir = "/home/albek00"
#modifier = "mod1" # Non-existing F13 key used by AutoHotKey script
use_fake_screens = True
fake_screen_count = 2
# Default Applications
app_terminal = "terminator"
app_launcher = "/home/albek00/bin/dmenu_wal.sh"
app_launcer_x11 = "/home/albek00/bin/dmenu_wal.sh"
cmd_brightness_up = "true"
cmd_brightness_down = "true"
cmd_screenshot = "xfce4-screenshooter -r -c -d 1"
cmd_alt_screenshot = "xfce4-screenshooter -w -c -d 0"
lock_command = "true"
cliphistory_command = "true"
cmd_wal = ["wal", "-n", "-s", "-t", "-i"]
# Screen configs (empty = autoconfig, otherwise list of Screen() kwarg dicts)
screen_kwargs = [
{'x': 0, 'y': 0, 'width': int(os.getenv("QTILE_WIDTH", "3840"))//2, 'height': int(os.getenv("QTILE_HEIGHT", "1080"))},
{'x': int(os.getenv("QTILE_WIDTH", "3840"))//2, 'y': 0, 'width': int(os.getenv("QTILE_WIDTH", "3840"))//2, 'height': int(os.getenv("QTILE_HEIGHT", "1080"))},
]
margin_layout = [8, 8, 2, 8]
# Group definitions
groups = [
{'name': ''},
{'name': ''},
{'name': ''},
{'name': ''},
{'name': ''},
{'name': ''},
{'name': ''},
{'name': ''},
{'name': ''},
]
# Extra keybind definitions
extra_keys = []
# Extra floating window rules
extra_float_rules = []
# Autostart applications
apps_autostart_group = [
{'group': "", 'command': ["firefox"]},
{'group': "", 'command': ["terminator"]},
{'group': "", 'command': ["subl"]},
{'group': "", 'command': ["smerge"]},
{'group': "", 'command': ["thunar"]},
]
# Hide unnecessary widgets
show_temperature = False
show_media_widget = False
# Network variables
wifi_interface = None
wired_interface = "enP20755p0s0"
# Volume widget variables
volume_pulse_sinks = [
"RDPSink",
]
# Override directories to proper homedir. Half of these are probably not even used but meh
x11_wallpaper_config_command = "/home/albek00/bin/wal-nitrogen-noupdate"
desktop_bg = "/home/albek00/Pictures/wallpapers/desktop.png"
desktop_bg_folder = "/home/albek00/Pictures/wallpapers/desktop_rotation/day"
desktop_bg_night_folder = "/home/albek00/Pictures/wallpapers/desktop_rotation/night"
# desktop_bg_override = "/home/albek00/Pictures/safe_wallpaper.jpg"
applauncher_image = "/home/albek00/.config/qtile/kuro/resources/arch.png"
custom_layout_icon_paths = ['/home/albek00/.config/qtile/kuro/resources/layout_icons/']
glava_color_file_path = "/home/albek00/.config/glava/kurobars_color.glsl"
battery_theme_path = "/home/albek00/.config/qtile/kuro/resources/battery"
wifi_theme_path = "/home/albek00/.config/qtile/kuro/resources/wifi"
gpu_theme_path = "/home/albek00/.config/qtile/kuro/resources/gpu"
volume_theme_path = "/home/albek00/.config/qtile/kuro/resources/volume"
bluevol_theme_path = "/home/albek00/.config/qtile/kuro/resources/bluetooth_volume"
@classmethod
def initialize(cls, qtile):
super(Config, cls).initialize(qtile=qtile)
# Add keyboard remapping to autostart apps
cls.apps_autostart['common'].append(["xmodmap", "-e", "keycode 191 = Super_L"])
# Determine screens programatically
qtile_width = int(os.getenv("QTILE_WIDTH", "3840"))
qtile_height = int(os.getenv("QTILE_HEIGHT", "1080"))
logger.warning(f"Determining screens for size {qtile_width}x{qtile_height}...")
# Home office, 1920x1080 horizontal right and 1080x1920 vertical left
if qtile_width == 3000 and (qtile_height > 1912 and qtile_height <= 1920):
cls.screen_kwargs = [
{'x': 0, 'y': 840, 'width': 1920, 'height': qtile_height-840},
{'x': 1920, 'y': 0, 'width': 1080, 'height': qtile_height},
]
# Dual 1680x1050
elif qtile_width == 3360 and qtile_height == 1050:
cls.screen_kwargs = [
{'x': 0, 'y': 0, 'width': 1680, 'height': 1050},
{'x': 1680, 'y': 0, 'width': 1680, 'height': 1050},
]
# Dual 1920x1080
elif qtile_width == 3840 and qtile_height == 1080:
cls.screen_kwargs = [
{'x': 0, 'y': 0, 'width': 1920, 'height': 1080},
{'x': 1920, 'y': 0, 'width': 1920, 'height': 1080},
]
# Single 1920x1080
elif qtile_width == 1920 and qtile_height == 1080:
cls.screen_kwargs = [{'x': 0, 'y': 0, 'width': 1920, 'height': 1080}]
# Single 1680x1050
elif qtile_width == 1680 and qtile_height == 1050:
cls.screen_kwargs = [{'x': 0, 'y': 0, 'width': 1680, 'height': 1050}]
# Else, set to autoconfigure
else:
cls.screen_kwargs = []
# {'x': 0, 'y': 0, 'width': int(os.getenv("QTILE_WIDTH", "3840"))//2, 'height': int(os.getenv("QTILE_HEIGHT", "1080"))},
# {'x': int(os.getenv("QTILE_WIDTH", "3840"))//2, 'y': 0, 'width': int(os.getenv("QTILE_WIDTH", "3840"))//2, 'height': int(os.getenv("QTILE_HEIGHT", "1080"))},
logger.warning(f"Kwargs: {cls.screen_kwargs}")