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
50 lines
1.7 KiB
Python
50 lines
1.7 KiB
Python
from subprocess import run, PIPE
|
|
from typing import Optional
|
|
|
|
from pynput import mouse
|
|
|
|
from . import qtile_func
|
|
|
|
class Backlight:
|
|
def __init__(self, ctrl: Optional[str]=None) -> None:
|
|
self.command = ['xbacklight']
|
|
if ctrl:
|
|
self.command += ['-ctrl', ctrl]
|
|
|
|
def _get_brightness(self) -> int:
|
|
return int(run(self.command + ['-get'], stdout=PIPE).stdout)
|
|
|
|
def _set_brightness(self, percentage: int) -> None:
|
|
run(self.command + [f'-set', str(percentage)])
|
|
|
|
@qtile_func
|
|
def change_backlight(self, action: str) -> None:
|
|
"""
|
|
Increase or decrease bightness.
|
|
Takes 'dec' or 'inc' as parameter. Goes 1% percent at a time from
|
|
1% to 40% and 10% at a time from 40% to 100%.
|
|
"""
|
|
brightness = self._get_brightness()
|
|
if brightness != 1 or action != 'dec':
|
|
if (brightness > 49 and action == 'dec') \
|
|
or (brightness > 39 and action == 'inc'):
|
|
run(self.command + [f'-{action}', '10', '-fps', '10'])
|
|
else:
|
|
run(self.command + [f'-{action}', '1'])
|
|
|
|
@qtile_func
|
|
def turn_off_screen(self, screen_offset: int) -> None:
|
|
"""
|
|
Turn off the laptop's screen.
|
|
Use xset if there is only one screen, else, set backlight to
|
|
zero. In both case, moving the mouse will turn on the screen.
|
|
"""
|
|
current_brightness = self._get_brightness()
|
|
self._set_brightness(0)
|
|
|
|
def on_move(x: int, y: int):
|
|
if x > screen_offset:
|
|
self._set_brightness(current_brightness)
|
|
raise mouse.Listener.StopException
|
|
|
|
mouse.Listener(on_move=on_move).start()
|