semvec/pypi-packages huggingface dataset:
arx-tools 1.0.0
Set of scripts to aid Arx administrators import data
License: MIT

# Arx Tools

A set of scripts that helps to import genome data into the Arx folder structure.

## Quick Start

```bash
# Install
pip install arx-tools

# Initialize folder structure
export FOLDER_STRUCTURE=/path/to/folder_structure
init_folder_structure

# Import genome data
import_genome --import_dir=/path/to/genome/data --organism STRAIN --genome STRAIN.1
```

## Documentation

📖 **Documentation:** [docs.abrinca.com/tools](https://docs.abrinca.com/tools/)

## Help

All scripts have built-in help functions:

```bash
import_genome --help
```

## Requirements

- Python 3.9 or higher
touchscroller 0.1.2
Simulate multi-touch scrolling using uinput
License: MIT
Requires Python: >=3.7

# touchscroller

Simulate smooth multi-touch scrolling on Linux with [uinput](https://pypi.org/project/python-uinput/).

On many Linuxes you can only scroll instantly over several lines. This package lets you script pixel-level scrolling by simulating two fingers on a touchpad.

## Setup

```bash
pip install touchscroller
```

You must have the uinput kernel module loaded to use touchscroller. Two options:

1) Quickly start it for now:

```bash
modprobe -i uinput
```

2) Auto load on start up:

```bash
echo uinput | sudo tee /etc/modules-load.d/uinput.conf > /dev/null
```

You also need permissions to create a uinput device. Three options:

1) Quickly run as root:

```bash
sudo python myscript.py
```

2) Temporary fix until reboot:

```bash
sudo chmod 666 /dev/uinput
```

3) Proper, most annoyingly involved way:

```bash
# create a udev rule
echo 'KERNEL=="uinput", GROUP="input", MODE="0660"' | sudo tee /etc/udev/rules.d/99-uinput.rules > /dev/null

# add current user to 'input' group
sudo usermod -aG input "$USER"

# reload udev rules and trigger
sudo udevadm control --reload-rules
sudo udevadm trigger

echo 'all done, now reboot or log out and back in'
```

## Usage:

Important note: Before it actually starts scrolling, some threshold value has to be overcome probably in order to prevent accidental scrolling when breathing onto a real touchpad.

```py
from touchscroller import TouchScroller

ts = TouchScroller()

directions = [
    (3, 0), (2, 2), (0, 3), (-2, 2),
    (-3, 0), (-2, -2), (0, -3), (2, -2)
]

ts = TouchScroller()
with ts.touch() as touch:
    for dx, dy in directions:
        for _ in range(30):
            touch.move(dx, dy)

```