MCPcopy Index your code
hub / github.com/NyarchLinux/DesktopPuppet

github.com/NyarchLinux/DesktopPuppet @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
158 symbols 350 edges 14 files 53 documented · 34%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

DesktopPuppet

Acchan on the desktop yeahhh.

You can check out our video for installation.

IMAGE ALT TEXT HERE

[!WARNING] This is still in beta. Some features are still missing and only Hyprland is fully supported for now. KDE and Gnome are in a beta stage

Supported Desktops

  • [x] Hyprland
  • [x] KDE
    • [x] Pointer focusing
    • [ ] Get correct monitor resolution
    • [ ] Set correct window size
  • [ ] Sway
  • [ ] Cosmic
  • [x] Gnome (* Still requires some work, requires a Shell extension, download instructions at the bottom)
  • [x] Pointer focusing
  • [x] Start as always on top
  • [ ] Get correct monitor resolution
  • [ ] Set correct window size
  • [x] Set it visible on every desktop
  • [ ] Overlay/Background switch

Installation

  1. gtk4-layer-shell is required, you can install it on arch using
sudo pacman -S gtk4-layer-shell
  1. Be sure to have these dependencies available:
sudo pacman -S python-requests python-gobject webkitgtk-6.0 libadwaita python-gobject
  1. Download Nyarch Assistant
  2. Download our Nyarch Assistant extension
  3. Go in Nyarch Assistant settings, scroll to avatar, click on the download button near desktop pet option, and wait for it to finish, then select it.
  4. Hope that it doesn't explode

Gnome Specific Instructions

Gnome is in an early support stage, a few features are still missing but it's usable. It is required to install the Nyarch Pet Extension. You can do it in one command:

git clone https://github.com/NyarchLinux/NyarchPetGnomeExtension/ ~/.local/share/gnome-shell/extensions/nyarchpet@nyarchlinux.moe

And then login and logout. Additional instructions: - You can resize the window of the pet using Super + Mouse (left click) to adapt it to the screen - Using ALT+Space you can make the window menu appear, from there you can make it visible on every desktop

KDE Specific Instructions

Kdotool is required, on arch you can install it with:

yay -S kdotool-git

Hyprland Suggestions

Keybinds

You can set these keybinds to control the desktop pet

bind = SUPER, F7, exec, $HOME/.var/app/moe.nyarchlinux.assistant/config/avatars/live2d/DesktopPuppet/src/cli.sh set-overlay background
bind = SUPER, F8, exec, $HOME/.var/app/moe.nyarchlinux.assistant/config/avatars/live2d/DesktopPuppet/src/cli.sh set-overlay overlay
bind = SUPER, F10, sendshortcut, Control_L, s, title:nyarchassistant
bind = SUPER, F9, sendshortcut, Control_L, k, title:nyarchassistant

SUPER+F7 -> Put the pet in the background

SUPER+F8 -> Put the per on the window

SUPER+F9 -> Stop TTS from playing

SUPER+F10 -> Start recording with microphone

GUI Control

A GTK4 + Libadwaita GUI is available to control the desktop puppet with a modern web-designed interface.

Run the GUI with:

./run_gui.sh

Or directly:

python3 src/gui_controller.py

Core symbols most depended-on inside this repo

_show_status
called by 18
src/gui_controller.py
is_running
called by 3
src/gui_controller.py
set_overlay
called by 2
puppet_extension.py
set_mouth
called by 2
puppet_extension.py
set_motion
called by 2
src/gui_controller.py
stop_puppet
called by 2
src/gui_controller.py
get_log_path
called by 2
src/gui_controller.py
_stop_puppet
called by 2
src/gui_controller.py

Shape

Method 133
Class 17
Function 8

Languages

Python100%

Modules by API surface

src/gui_controller.py49 symbols
puppet_extension.py25 symbols
src/puppets/live2d.py19 symbols
src/puppets/puppet.py12 symbols
src/model_manager.py12 symbols
src/interaction_server.py12 symbols
src/interaction_handler.py6 symbols
src/wminterfaces/kdeinterface.py5 symbols
src/wminterfaces/hyprlandinterface.py5 symbols
src/wminterfaces/gnomeinterface.py5 symbols
src/wminterfaces/wminterface.py4 symbols
src/main.py3 symbols

For agents

$ claude mcp add DesktopPuppet \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact