Skip to main content

No project description provided

Project description

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.)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

slida-0.7.1.tar.gz (44.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

slida-0.7.1-py3-none-any.whl (49.5 kB view details)

Uploaded Python 3

File details

Details for the file slida-0.7.1.tar.gz.

File metadata

  • Download URL: slida-0.7.1.tar.gz
  • Upload date:
  • Size: 44.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for slida-0.7.1.tar.gz
Algorithm Hash digest
SHA256 cdbb717f3189a9e1f3d2d306c8f3cfe6af85d555f2520c8397338b1789b887c1
MD5 631655d4d7d9f341324d554c4adc6d30
BLAKE2b-256 bd9210dbd3a3a84dffb3263d40bff2501438d5012f7df3d30dcb1deb0eb39879

See more details on using hashes here.

File details

Details for the file slida-0.7.1-py3-none-any.whl.

File metadata

  • Download URL: slida-0.7.1-py3-none-any.whl
  • Upload date:
  • Size: 49.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for slida-0.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a68bd498b5f8280a5be86ab24ddd1d49008c0a2b8187a84d30f984644257de3f
MD5 ed9401a7b6f3159eb5ce2235607b734d
BLAKE2b-256 050378b1d9053a8c18abcd3e57d2d3115e5a07023ff60181875053c7621dc782

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page