Skip to main content

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


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)

Uploaded Source

Built Distribution

hyprland-0.2.54-py3-none-any.whl (15.2 kB view details)

Uploaded Python 3

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

Hashes for hyprland-0.2.54.tar.gz
Algorithm Hash digest
SHA256 707950ace8e2478bfaec09dc18b6bc75c38cf2a2399b71eaf47fbb73dfcae233
MD5 a28e5acc6b880d4a0ed72210ec8fed3a
BLAKE2b-256 cfeefbe6d7d04fdbe7dc52bda776a78af7b649a76db0c81c53c7c64d4e972c67

See more details on using hashes here.

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

Hashes for hyprland-0.2.54-py3-none-any.whl
Algorithm Hash digest
SHA256 147ce775ef09f5ef7e906232726893ba9169146693b07cb0126474ceca8863e2
MD5 ed6aea7f5e50c86bec7ccf34c4022e08
BLAKE2b-256 2b8e438c94dd750d63e386c2fae69f2d7df8195d54bc29d7df50ab4a623069e1

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page