An unofficial async python wrapper for Hyprland's IPC supposed to somewhat work like awesomewm api in lua
Project description
Hyprland-py
An unofficial async python wrapper for Hyprland's IPC supposed to somewhat work like awesomewm api in lua
Todo
- async sockets
- change config options
- event listeners
- keybinds
- windowrules
- hyprland info
- misc hyprland commands(change workspace, move active window etc...)(dispatchers)
- a nice way to handle colors
- build
settings.py
file based on current hl version - get config values from the current hyprland config instead of using default values
getting binds still dont work
- docs
- widgets??
Install
git
from git
pip install git+https://github.com/hyprland-community/hyprland-py
release
from pypi
pip install hyprland
Example
change window border to a random number between 0 and 20 everytime a new window is opened
import hyprland
from hyprland import Bind, BindFlag
class Config(hyprland.Events):
def __init__(self):
self.c = hyprland.Config()
super().__init__()
async def terminal(self):
await hyprland.Dispatch.exec("kitty --single-instance")
async def on_connect(self):
print("Connected to hyprland")
await self.c.add_binds([
# general binds
Bind(["SUPER","m"],hyprland.Dispatch.exit),
# mouse binds
Bind(["SUPER","mouse:272"],"movewindow",BindFlag.mouse),
Bind(["SUPER","mouse:273"],"resizewindow",BindFlag.mouse),
# keyboard binds
Bind(["SUPER","return"],self.terminal),
Bind(["SUPER","q"],hyprland.Dispatch.kill_active),
])
# workspace binds
for i in range(1,11):
await self.c.add_bind(Bind([f"SUPER",str(i) if i!= 10 else str(0)],hyprland.Dispatch.workspace,args=[i]))
for i in range(1,11):
await self.c.add_bind(Bind([f"ALT",str(i) if i!= 10 else str(0)],hyprland.Dispatch.move_to_workspace,args=[i]))
c = Config()
c.async_connect()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
hyprland-0.2.54.tar.gz
(14.0 kB
view details)
Built Distribution
hyprland-0.2.54-py3-none-any.whl
(15.2 kB
view details)
File details
Details for the file hyprland-0.2.54.tar.gz
.
File metadata
- Download URL: hyprland-0.2.54.tar.gz
- Upload date:
- Size: 14.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 707950ace8e2478bfaec09dc18b6bc75c38cf2a2399b71eaf47fbb73dfcae233 |
|
MD5 | a28e5acc6b880d4a0ed72210ec8fed3a |
|
BLAKE2b-256 | cfeefbe6d7d04fdbe7dc52bda776a78af7b649a76db0c81c53c7c64d4e972c67 |
File details
Details for the file hyprland-0.2.54-py3-none-any.whl
.
File metadata
- Download URL: hyprland-0.2.54-py3-none-any.whl
- Upload date:
- Size: 15.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 147ce775ef09f5ef7e906232726893ba9169146693b07cb0126474ceca8863e2 |
|
MD5 | ed6aea7f5e50c86bec7ccf34c4022e08 |
|
BLAKE2b-256 | 2b8e438c94dd750d63e386c2fae69f2d7df8195d54bc29d7df50ab4a623069e1 |