Skip to content

GestureSesh is a free and open-source application that displays image files based on a user defined schedule. After images are selected, the session window will display the image with options for modification.

License

Notifications You must be signed in to change notification settings

adnv3k/GestureSesh

Repository files navigation

GestureSesh Banner

GitHub stars Microsoft Store macOS GitHub Release

Python 3.11+ License: GPL v3 Built with PyQt5


GestureSesh supercharges gesture practice using your own reference folders. The app cycles through images on a schedule you define while keeping each at its original aspect ratio. The clutter-free interface helps you stay focused on drawing.

Your Libraries

Main window showing schedule setup

Your Sessions

Session display mode

Features

  • Cross-platform PyQt5 interface with a unified dark theme.
  • Recursive folder scanning with duplicate cleanup.
  • Custom schedule builder: timed entries, breaks (0-image rows), randomization, and preset saving.
  • Auto-reload of your last session (images, schedule, randomization).
  • Window options (grayscale, flip, always-on-top, frameless) via hotkeys.
    Grayscale example
  • Intuitive timer: click to pause, drag to move (auto-pause), resume where you left off.
  • Review mode: 15 s auto-close with arrow navigation; double-click or Ctrl + O to open image folder.
  • Break indicator: set an entry with 0 images for a timed break (💡 light appears).
    Break example
  • Sound cues for new entry and last image.
  • Portable single executable—no install needed; offline JPG/JPEG/PNG/GIF/BMP support.
  • Update checks every 2 days when online.

Hotkeys

Session Configuration

Action Hotkey
Open Folders F
Open Files Ctrl + F
Clear Selection Ctrl + Shift + C
Toggle Randomization Ctrl + R
Remove Duplicates Ctrl + 1 (one per filename)
Add Entry Shift + Enter
Save Preset Ctrl + S
Delete Preset Ctrl + Shift + D
Delete Entry D
Move Entry Up W
Move Entry Down S
Clear Schedule C
Start Session Ctrl + Enter
Close Window Esc

Session Window

Action Hotkey
Grayscale G
Flip Horizontal H
Flip Vertical V
Toggle Resizing (dyn/static) R
Toggle Always On Top A
Toggle Frameless Window Ctrl + F
Toggle Mute M
Previous Image ← (Left Arrow)
Stop Esc
Pause Spacebar
Next Image → (Right Arrow)
Skip Image S
Add 30 s ↑ (Up Arrow)
Add 1 Minute Ctrl + ↑ (Up Arrow)
Open Image Folder Double-click or Ctrl + O
Reset Timer Ctrl + Shift + ↑ (Up Arrow)
Increase Brightness Ctrl + PgUp
Decrease Brightness Ctrl + PgDown
Decrease Brightness PgDown
Increase Contrast +
Decrease Contrast -
Toggle Threshold Mode T
Toggle Edge Detection E
Reset Image Modifications Ctrl + 0
Toggle Grayscale Mode Ctrl + G

Note

Pressing Stop closes the window and ends the session.
In Review Mode, use ←/→ arrows to browse. Double-click (or Ctrl + O) to open the current image’s folder. The window auto-closes after 15 s of inactivity.

Installation from Source

Note

GestureSesh has been tested on Python 3.11. Other versions may work but have not yet been verified.

  1. Install Python 3.11

    • macOS

      1. Go to python.org/downloads and download the macOS 64-bit installer for Python 3.11.
      2. Run the installer and follow the steps.
      3. Open Terminal and verify:
        python3.11 --version
        # → Python 3.11.x
    • Windows

      1. Go to python.org/downloads and download the Windows (64-bit) installer for Python 3.11.
      2. Run the installer, check “Add Python 3.11 to PATH,” then click Install Now.
      3. Open Command Prompt and verify:
        python --version
        # → Python 3.11.x
    • Linux (Ubuntu example)

      Not yet fully verified on Linux.

      sudo apt update
      sudo apt install -y software-properties-common
      sudo add-apt-repository ppa:deadsnakes/ppa
      sudo apt update
      sudo apt install -y python3.11 python3.11-venv python3.11-distutils
      python3.11 --version
      # → Python 3.11.x
  2. Clone the repo to your Desktop

    • macOS/Linux (Terminal):

      cd ~/Desktop
      git clone https://github.com/adnv3k/GestureSesh.git
      cd GestureSesh

      Prompt: ~/Desktop/GestureSesh$

    • Windows (Command Prompt):

      cd %UserProfile%\Desktop
      git clone https://github.com/adnv3k/GestureSesh.git
      cd GestureSesh

      Prompt: C:\Users\You\Desktop\GestureSesh>

  3. Create & activate a virtual environment

    • macOS/Linux:

      python3.11 -m venv venv
      source venv/bin/activate

      Prompt: (venv) ~/Desktop/GestureSesh$

    • Windows:

      python -m venv venv
      venv\Scripts\activate

      Prompt: (venv) C:\Users\You\Desktop\GestureSesh>

Tip

Seeing (venv) at the start of your prompt means the virtual environment is active.
To exit, type deactivate and press Enter.

  1. Install dependencies

    pip install --upgrade pip
    pip install -r requirements.txt
    
  2. Run GestureSesh

    python run.py

    The GUI should now appear. When you reopen a terminal later, remember to:

    1. cd ~/Desktop/GestureSesh (or C:\Users\You\Desktop\GestureSesh>)
    2. Activate the venv:

    Windows:

    venv\Scripts\activate
    python run.py

Note

  • Supported file types: .bmp, .jpg, .jpeg, .png.
  • Settings live in presets/ & recent/ (with .bak, .dat, .dir files) using shelve.
  • Last session’s images, randomization, and schedule are auto-loaded on startup.
  • Updates are checked every 2 days when online. You’ll see a notice if there’s a new version.
  • GestureSesh is built with PyQt5 using the “Fusion” style for a consistent dark theme across Windows & macOS.

If you have any suggestions or issues, any input is appreciated! Email: ali@gesturesesh.com

Buy me a Ko-Fi   Donate via PayPal

About

GestureSesh is a free and open-source application that displays image files based on a user defined schedule. After images are selected, the session window will display the image with options for modification.

Topics

Resources

License

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •  

Languages