From f86726dde447dd77c5f29e4df07301100317a1a6 Mon Sep 17 00:00:00 2001 From: mar77i Date: Fri, 19 Sep 2025 21:14:28 +0200 Subject: [PATCH] minor cleanups --- keyboard/keyboard.py | 2 +- keyboard/sounds/Clutch.mp3 | Bin 33481 -> 3914 bytes keyboard/sounds/Flicker_Sound_Effect.mp3 | Bin 17181 -> 2922 bytes launch.py | 17 ++--------------- requirements.txt | 3 +++ 5 files changed, 6 insertions(+), 16 deletions(-) diff --git a/keyboard/keyboard.py b/keyboard/keyboard.py index fe1c8ce..26e77c6 100644 --- a/keyboard/keyboard.py +++ b/keyboard/keyboard.py @@ -60,7 +60,7 @@ class Root(BaseRoot): widget_width = size[0] // (3 if len(widget_row) == 3 else 2) x = 0 if len(widget_row) > 0 else size[0] // 4 for keyset in widget_row: - rect = pygame.Rect((x, half_height), (widget_width, half_height)) + rect = pygame.Rect((x, widget_top), (widget_width, half_height)) if keyset is MousePadWidget: keyset(self, rect, self.click_cb, self.move_cb) elif keyset is ClockWidget: diff --git a/keyboard/sounds/Clutch.mp3 b/keyboard/sounds/Clutch.mp3 index 2a4bcf1e03c15d9ef7dee073ae28ca38e13c4eb7..c6d9e03f1fc938e60ad227275a21c2996329a48e 100644 GIT binary patch literal 3914 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 Ra+{J;KJ)Mlp!0^8)c_}wO6mXr literal 33481 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 diff --git a/keyboard/sounds/Flicker_Sound_Effect.mp3 b/keyboard/sounds/Flicker_Sound_Effect.mp3 index db8df4f4fe1508d69b1221ee371d5e1ceadafeed..c807e62e69d3faa7ea33118706b6e1ed9c0718dc 100644 GIT binary patch literal 2922 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 diff --git a/launch.py b/launch.py index ae75ddb..39ecddd 100755 --- a/launch.py +++ b/launch.py @@ -122,26 +122,13 @@ def setup_venv(): raise SystemError("'venv' is not a directory.") run_cmd((sys.executable, "-m", "venv", str(venv_dir))) os.environ.update(get_venv_environ(venv_dir)) - has_pkgs = ( - venv_dir_is_dir - and all(check_has_pkg(pkg) for pkg in pkgs) - ) + has_pkgs = (venv_dir_is_dir and all(check_has_pkg(pkg) for pkg in pkgs)) if get_ipv4_is_connected(): yesterday = time() - 86400 if not has_pkgs or all( p.stat().st_mtime < yesterday for p in walk_outer(venv_dir) ): - run_cmd( - ( - executable, - "-m", - "pip", - "install", - "-qU", - "pip", - *pkgs - ) - ) + run_cmd((executable, "-m", "pip", "install", "-qU", "pip", *pkgs)) venv_dir.touch(0o755, True) elif not has_pkgs: raise ConnectionError("Internet needed to install requirement: pygame") diff --git a/requirements.txt b/requirements.txt index 0f13c09..44d4673 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,5 @@ evdev==1.9.2 pygame==2.6.1 +pynput==1.8.1 +python-xlib==0.33 +six==1.17.0 -- 2.51.0