PHPackages                             arnaudbablon/systemctl - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. arnaudbablon/systemctl

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

arnaudbablon/systemctl
======================

Provide a PHP abstraction to interact with system (screenshot, copy, past, click)

117PHP

Since Feb 18Pushed 7y agoCompare

[ Source](https://github.com/arnaudbablon/systemctl)[ Packagist](https://packagist.org/packages/arnaudbablon/systemctl)[ RSS](/packages/arnaudbablon-systemctl/feed)WikiDiscussions master Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

systemctl
=========

[](#systemctl)

PHP wrapper that allow to do basic system action like screenshot, click ... (tested on debian 9 / php 7.2)

Requirements
============

[](#requirements)

- xdotool
- xclip
- shutter

How to install
==============

[](#how-to-install)

```
 $ apt-get install xdotool xclip shutter
 $ composer require arnaudbablon/systemctl dev-master
```

Current supported actions
-------------------------

[](#current-supported-actions)

- click (left / right)
- copy (ctrl+c)
- paste (ctrl+v)
- set clipboard
- key press
- screenshot
- scroll
- kill program
- run program

> I develop this library for personal purpose and will update actions according to my needs.

How to use
----------

[](#how-to-use)

```
    $actions = [
        new ClickAction(),
        new CopyAction(),
        new PasteAction(),
        new ClipboardAction(),
        new ScrollAction(),
        new ScreenShotAction(),
        new KeyAction(),
        new KillallAction(),
        new RunAction()
    ];
    $container = new ActionContainer($actions);
    $application = new Application($container);

    application->clipboard('use ctrl+v to see the result');
    application->click(x, y); //left click
    application->click(x, y, false); //right click
    application->paste();
    application->screenshot('/path/name.png');
    application->key('KP_Enter');
    $application->run('google-chrome > /dev/null 2>&1 &');
    $application->sleep(4);
    $application->killall('chrome');
```

Integration with symfony (optional)
-----------------------------------

[](#integration-with-symfony-optional)

```
#config/services.yaml
...
imports:
    - { resource: '../vendor/arnaudbablon/systemctl/Resource/config/services.yaml' }

```

You can now normaly inject Application class without instanciate any actions.

###  Health Score

19

—

LowBetter than 10% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity38

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/7a3cd546aa5ba20230110d94f36904a44c03b09a9375b705d659fab88e222ceb?d=identicon)[arnaudbablon](/maintainers/arnaudbablon)

---

Top Contributors

[![arnaudbablon](https://avatars.githubusercontent.com/u/36163425?v=4)](https://github.com/arnaudbablon "arnaudbablon (9 commits)")

### Embed Badge

![Health badge](/badges/arnaudbablon-systemctl/health.svg)

```
[![Health](https://phpackages.com/badges/arnaudbablon-systemctl/health.svg)](https://phpackages.com/packages/arnaudbablon-systemctl)
```

###  Alternatives

[wwwision/dcb-eventstore

Implementation of the Dynamic Consistency Boundary pattern described by Sara Pellegrini

2131.5k10](/packages/wwwision-dcb-eventstore)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
