Add dot_config/qtile/__pycache__/.keep Add dot_config/qtile/__pycache__/bars.cpython-38.pyc Add dot_config/qtile/__pycache__/bars.cpython-39.pyc Add dot_config/qtile/__pycache__/colors.cpython-38.pyc Add dot_config/qtile/__pycache__/colors.cpython-39.pyc Add dot_config/qtile/__pycache__/config-done.cpython-38.pyc Add dot_config/qtile/__pycache__/config.cpython-38.pyc Add dot_config/qtile/__pycache__/config.cpython-39.pyc Add dot_config/qtile/__pycache__/groups.cpython-38.pyc Add dot_config/qtile/__pycache__/groups.cpython-39.pyc Add dot_config/qtile/__pycache__/keys.cpython-38.pyc Add dot_config/qtile/__pycache__/keys.cpython-39.pyc Add dot_config/qtile/__pycache__/layouts.cpython-38.pyc Add dot_config/qtile/__pycache__/layouts.cpython-39.pyc Add dot_config/qtile/__pycache__/screens.cpython-38.pyc Add dot_config/qtile/__pycache__/screens.cpython-39.pyc Add dot_config/qtile/bars.py Add dot_config/qtile/colors.py Add dot_config/qtile/config.py Add dot_config/qtile/groups.py Add dot_config/qtile/keys.py Add dot_config/qtile/layouts.py Add dot_config/qtile/old_configs/.keep Add dot_config/qtile/old_configs/config.py Add dot_config/qtile/old_configs/sweenu/.keep Add dot_config/qtile/old_configs/sweenu/bars.py Add dot_config/qtile/old_configs/sweenu/colors.py Add dot_config/qtile/old_configs/sweenu/config.py Add dot_config/qtile/old_configs/sweenu/keys.py Add dot_config/qtile/old_configs/sweenu/util/.keep Add dot_config/qtile/old_configs/sweenu/util/__main__.py Add dot_config/qtile/old_configs/sweenu/util/backlight.py Add dot_config/qtile/old_configs/sweenu/util/monitor.py Add dot_config/qtile/old_configs/sweenu/util/screenshot.py Add dot_config/qtile/old_configs/sweenu/util/soundcard.py Add dot_config/qtile/old_configs/sweenu/widgets.py Add dot_config/qtile/screens.py Add dot_config/qtile/scripts/.keep Add dot_config/qtile/scripts/executable_autostart.sh Add dot_config/qtile/themes/.keep Add dot_config/qtile/themes/ayu-dark.json Add dot_config/qtile/themes/dracula.json Add dot_config/qtile/themes/hopscotch.json Add dot_config/qtile/themes/material-darker.json Add dot_config/qtile/themes/nord.json Add dot_config/qtile/themes/one-dark.json Add dot_config/qtile/themes/operator.json Add dot_config/qtile/themes/royal.json Add dot_config/qtile/themes/seashells.json Add dot_config/qtile/themes/smyck.json Add dot_config/qtile/themes/spacedust.json Add dot_config/qtile/themes/spacegray.json Add dot_config/qtile/themes/square.json Add dot_config/qtile/themes/tomorrow-nb.json
131 lines
3.4 KiB
Python
131 lines
3.4 KiB
Python
import re
|
|
from subprocess import run
|
|
from pathlib import Path
|
|
from typing import List
|
|
|
|
from libqtile import layout, hook
|
|
from libqtile.config import Group, Match, Screen, Rule
|
|
|
|
from bars import main_bar, bar1, bar2
|
|
from keys import keys, mouse, sc, get_backlight_keys
|
|
from colors import border_color, theme
|
|
from util import qtile_func
|
|
from util.monitor import enable_monitor
|
|
|
|
|
|
keys = keys
|
|
mouse = mouse
|
|
screens: List[Screen] = []
|
|
groups = [
|
|
Group('game', layouts=[layout.Max()], persist=False, init=False,
|
|
matches=[Match(wm_class=['Steam'])], label=''),
|
|
|
|
Group('chat', layouts=[layout.Max()], persist=False, init=False,
|
|
matches=[Match(wm_class=['discord'])], label=''),
|
|
|
|
Group('music', layouts=[layout.Max()], persist=False, init=False,
|
|
matches=[Match(wm_class=[re.compile('spotify', re.I)])], label=''),
|
|
]
|
|
|
|
|
|
float_rules = [
|
|
{'wmclass': 'confirm'},
|
|
{'wmclass': 'dialog'},
|
|
{'wmclass': 'download'},
|
|
{'wmclass': 'error'},
|
|
{'wmclass': 'file_progress'},
|
|
{'wmclass': 'notification'},
|
|
{'wmclass': 'splash'},
|
|
{'wmclass': 'toolbar'},
|
|
{'wmclass': 'Xephyr'},
|
|
{'wmclass': 'feh'},
|
|
{'wmclass': 'Sms.py'},
|
|
{'wmclass': 'leagueclientux.exe'},
|
|
{'wmclass': 'Gcr-prompter'},
|
|
{'wmclass': 'scrcpy'},
|
|
{'wname': 'Friends'},
|
|
]
|
|
|
|
floating_layout = layout.Floating(border_focus=f'#{border_color}',
|
|
float_rules=float_rules)
|
|
|
|
|
|
layouts = [
|
|
layout.Max(),
|
|
layout.Stack(num_stacks=2, border_focus=f'#{border_color}')
|
|
]
|
|
|
|
|
|
widget_defaults = {'font': 'DejaVu Sans',
|
|
'fontsize': 18,
|
|
'padding': 4,
|
|
'foreground': theme['very_light_white'],
|
|
'background': theme['dark_black']}
|
|
|
|
|
|
def setup_monitors(qtile):
|
|
monitors = qtile.conn.monitors
|
|
nb_monitors = len(monitors)
|
|
if nb_monitors == 1:
|
|
run('xrandr --auto'.split())
|
|
elif nb_monitors == 2:
|
|
laptop_monitor = None
|
|
other_monitor = None
|
|
for monitor in monitors:
|
|
if monitor.name.startswith('eDP'):
|
|
laptop_monitor = monitor
|
|
else:
|
|
other_monitor = monitor
|
|
enable_monitor(other_monitor, primary=True, side='left-of',
|
|
relative_monitor=laptop_monitor)
|
|
|
|
|
|
def setup_screens(qtile, screens, groups):
|
|
nb_monitors = len(qtile.conn.monitors)
|
|
if nb_monitors == 1:
|
|
screens.append(Screen(top=main_bar))
|
|
groups += [Group(i) for i in 'asdf']
|
|
else:
|
|
screens += [Screen(top=bar1), Screen(top=bar2)]
|
|
groups += [Group(i) for i in 'asdfuiop']
|
|
|
|
|
|
def main(qtile):
|
|
global keys
|
|
setup_monitors(qtile)
|
|
setup_screens(qtile, screens, groups)
|
|
keys += get_backlight_keys(qtile)
|
|
|
|
def wallpaper():
|
|
wallpaper_path = Path.home() / '.wallpaper'
|
|
run(['feh', '--bg-scale', wallpaper_path])
|
|
|
|
|
|
@hook.subscribe.startup
|
|
def autostart():
|
|
wallpaper()
|
|
sc.set_profile('analog')
|
|
|
|
|
|
@hook.subscribe.addgroup
|
|
def go_to_group(qtile, group):
|
|
try:
|
|
qtile.groupMap[group].cmd_toscreen()
|
|
except AttributeError:
|
|
pass
|
|
|
|
|
|
@hook.subscribe.screen_change
|
|
def configure_monitors(qtile, ev):
|
|
setup_monitors(qtile)
|
|
qtile.cmd_restart()
|
|
|
|
|
|
dgroups_app_rules: List[Rule] = []
|
|
dgroups_key_binder = None
|
|
follow_mouse_focus = False
|
|
bring_front_click = False
|
|
cursor_warp = False
|
|
auto_fullscreen = True
|
|
focus_on_window_activation = 'focus'
|
|
wmname = 'LG3D'
|