Skip to main content

slida

It's a QT slideshow application written in Python. It only does image slideshows, and it does them pretty much the way I want them.

Some nice (?) features:

  • By default, it will try to optimize the screen area usage by tiling multiple images horizontally, because why waste all that precious real estate on thick black bars? (Example below)
  • A bunch of cool transitions

Screenshot_20250628_092430

Installation

pip install slida or pipx install slida should do the trick.

Usage

$ slida --help
usage: slida [-h] [--list-transitions] [--print-config] [--auto | --no-auto] [--background BACKGROUND] [--debug | --no-debug] [--hidden | --no-hidden] [--interval INTERVAL]
             [--max-file-size MAX_FILE_SIZE] [--order {name,created,modified,random,size}] [--recursive | --no-recursive] [--reverse | --no-reverse] [--symlinks | --no-symlinks] [--tiling |
             --no-tiling] [--transition-duration TRANSITION_DURATION] [--transition TRANSITIONS] [--exclude-transition EXCLUDE_TRANSITIONS]
             [path ...]

positional arguments:
  path

options:
  -h, --help            show this help message and exit
  --list-transitions    List available transitions and exit
  --print-config        Also print debug info about the current config
  --auto                Enable auto-advance (default)
  --no-auto             Negates --auto
  --background BACKGROUND
                        For valid values, see: https://doc.qt.io/qt-6/qcolor.html#fromString (default: black)
  --debug               Output various debug stuff to console (default)
  --no-debug            Negates --debug
  --hidden              Include hidden files and directories
  --no-hidden           Negates --hidden (default)
  --interval, -i INTERVAL
                        Auto-advance interval, in seconds (default: 20)
  --max-file-size MAX_FILE_SIZE
                        Maximum file size (set to 0 to disable) (default: 20000000)
  --order, -o {name,created,modified,random,size}
                        Default: random
  --recursive, -R       Iterate through subdirectories (default)
  --no-recursive        Negates --recursive
  --reverse, -r         Reverse the image order
  --no-reverse          Negates --reverse (default)
  --symlinks            Follow symlinks (default)
  --no-symlinks         Negates --symlinks
  --tiling              Tile images horizontally (default)
  --no-tiling           Negates --tiling
  --transition-duration, -td TRANSITION_DURATION
                        In seconds; 0 = no transitions (default: 0.3)
  --transition, -t TRANSITIONS
                        Transition to use. Repeat the argument for multiple transitions. Default: use them all
  --exclude-transition, -et EXCLUDE_TRANSITIONS
                        Transition NOT to use. Repeat the argument for multiple transitions

--transition and --exclude-transition govern which effects will be used for transitioning between images. The full list of transitions is available in slida.transitions.TRANSITION_PAIRS. Explicit exclusion overrides explicit inclusion. However, there is one special case: --transition all on the command line overrides all other transition settings and simply includes all of them.

Press ? in the GUI for keyboard mapping info.

Configuration files

A file called slida.yaml will be looked for in the following locations, in order of priority:

  1. Any directory included as path on the command line
  2. Current working directory
  3. slida subdirectory of user's config directory (e.g. ~/.config/slida/ on Linux)

If multiple config files are found, they will be merged so that arguments in a higher priority file will overwrite those in lower priority files.

All command line arguments in their long versions (OK, except path, help, list-transitions, and print-config) can be used in these files. However, the syntax for transition settings is a little different; instead of two separate settings, it's one transitions object with the optional string arrays include and exclude (see example below).

To see exactly how the CLI arguments and config files are parsed, and how the resultant configuration looks, just add --print-config:

$ slida --no-auto -td 3 --transition top-left-squares --transition top-squares --print-config
CombinedConfig(FINAL)
  auto: False
  background: black
  debug: True
  hidden: False
  interval: 20
  max-file-size: 20000000
  order: random
  recursive: True
  reverse: False
  symlinks: True
  tiling: True
  transition-duration: 3.0
  transitions: {'include': ['top-left-squares', 'top-squares']}
= Config(DEFAULT)
    auto: True
    background: black
    debug: False
    hidden: False
    interval: 20
    max-file-size: 20000000
    order: random
    recursive: False
    reverse: False
    symlinks: True
    tiling: True
    transition-duration: 0.3
    transitions: {}
+ Config(/home/klaatu/.config/slida/slida.yaml)
    debug: True
    recursive: True
+ Config(CLI)
    auto: False
    transition-duration: 3.0
    transitions: {'include': ['top-left-squares', 'top-squares']}

Example config file

recursive: true
transition-duration: 0.2
order: name
transitions:
  include:
    - clockface
    - top-left-squares
    - flip-x
    - radial
  exclude:
    - slide-down
    - slide-right
    - slide-up
    - slide-left

(Obviously it makes no sense to both include and exclude transitions, but this is an example.)

Metadata

Release files for slida 0.7.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for slida 0.7.4
File Size Uploaded
slida-0.7.4.tar.gz 45.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for slida 0.7.4
File Interpreter ABI Platform
slida-0.7.4-py3-none-any.whl Python 3 none any Details

Total release size: 94.9 kB

Release files / slida-0.7.4.tar.gz

Download URL slida-0.7.4.tar.gz
Size 45.0 kB
Tags Source
SHA-256 checksum
How to use checksums
86510173b53e4df30d7b8078fe0a030ea1559a10471ccacedfeefd921da67d7b
BLAKE2b-256 checksum
How to use checksums
253af6bc9aaf60fe3a2a980af9e1a8c380a168c56b801e10c4c6d2822ff11d16
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.5

Release files / slida-0.7.4-py3-none-any.whl

Download URL slida-0.7.4-py3-none-any.whl
Size 49.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ea28459c765cd8ce50356ad2b6272afb2d8ff59848fb0a395d8b20b9cce94854
BLAKE2b-256 checksum
How to use checksums
0e0351c01cd1c43b315f7c72ac9c1231a5e8a6d3ecd7bd90d07ea3a729c59429
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.5

Release history Release notifications | RSS feed

This release

0.7.4 This release

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page