fdev31 / hpr-scratcher

Scratchpad management for Hyprland [maintainer=@fdev31]

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

MOVED TO https://github.com/hyprland-community/hpr-scratcher

Installation

pip install hpr-scratcher

OR

  • copy and rename the __init__.py file to some accessible path, do not forget to add +x to it

Features

  • Allow showing & hiding sliding scratchpads
  • Allow auto-hide when the focus is lost

Usage

In your hyprland.conf add something like this:

exec-once = hpr-scratcher

# Repeat this for each scratchpad you need
bind = $mainMod,V,exec,hpr-scratcher toggle volume
windowrule = float,^(pavucontrol)$
windowrule = workspace special silent,^(pavucontrol)$

bind = $mainMod,A,exec,hpr-scratcher toggle term
$dropterm  = ^(kitty-dropterm)$
windowrule = float,$dropterm
windowrule = workspace special silent,$dropterm
windowrule = size 75% 60%,$dropterm

Then in $HOME/.config/hypr/scratchpads.json add:

{
  "term": {
    "command": "kitty --class kitty-dropterm",
    "class": "kitty-dropterm",
    "offset": 800,
    "unfocus": "hide"
  },
  "volume": {
    "command": "pavucontrol",
    "class": "pavucontrol",
    "offset": 1200
  }
}

And you'll be able to toggle pavucontrol with MOD + V.

TODO

  • Better handling of fast repetitions
  • Allow different "poles" for scratchpads instead of always sliding from the top
  • Make the usage of an explicit offset not needed
  • study avoiding the usage of classes to track the windows (once registered)
  • Allow auto-restart of applications (if closed)
    • Allow closing the app on unfocus
  • Move to socket instead of hyprctl when possible

About

Scratchpad management for Hyprland [maintainer=@fdev31]


Languages

Language:Python 100.0%