1
0
Fork 0
mirror of https://github.com/amnweb/pyvda.git synced 2026-05-01 11:44:07 +02:00
Python module for manipulating Windows 10/11 windows and virtual desktops.
  • Python 99.6%
  • Makefile 0.3%
  • Shell 0.1%
Find a file
AmN 5d549eb5f8 fix(VirtualDesktop): use different fallback desktop when removing desktop 1
- When no fallback is provided, remove() now picks desktop 2 if removing desktop 1, avoiding passing the same desktop as both target and fallback.
- Fixes COM error (-2147024809) caused by RemoveDesktop receiving identical desktop and fallback parameters.
2026-04-13 22:46:10 +02:00
docs Fix docs 2022-02-13 14:31:09 +00:00
pyvda fix(VirtualDesktop): use different fallback desktop when removing desktop 1 2026-04-13 22:46:10 +02:00
tests feat: add virtual desktop notification support 2026-03-18 01:12:42 +01:00
.gitignore gitignore 2020-01-14 16:32:54 +00:00
.readthedocs.yml feat: remove link to readthedocs, as unfortunately the build is broken\! 2025-02-02 20:53:34 +00:00
create_tag.sh Build fixes 2021-10-31 16:38:16 +00:00
LICENSE.txt docs 2020-01-15 20:43:35 +00:00
Makefile Build fixes 2021-10-31 16:38:16 +00:00
README.md feat: remove link to readthedocs, as unfortunately the build is broken\! 2025-02-02 20:53:34 +00:00
requirements.txt Add requirements 2020-01-17 11:51:48 +00:00
setup.py fix: don't import the package during setup 2024-02-16 17:52:47 +00:00

Python Virtual Desktop Accessor

Python module providing programmatic access to most of the settings accessed through the Windows task view. Including switching virtual desktops, moving windows between virtual desktops, pinning windows and listing the windows on a desktop.

Originally based on https://github.com/Ciantic/VirtualDesktopAccessor.

Installation

pip install pyvda

Example usage

from pyvda import AppView, get_apps_by_z_order, VirtualDesktop, get_virtual_desktops

number_of_active_desktops = len(get_virtual_desktops())
print(f"There are {number_of_active_desktops} active desktops")

current_desktop = VirtualDesktop.current()
print(f"Current desktop is number {current_desktop}")

current_window = AppView.current()
target_desktop = VirtualDesktop(5)
current_window.move(target_desktop)
print(f"Moved window {current_window.hwnd} to {target_desktop.number}")

print("Going to desktop number 5")
VirtualDesktop(5).go()

print("Pinning the current window")
AppView.current().pin()