Skip to main content

Universal CLI file launcher

Project description

Flauncher

Universal CLI file launcher

Launch any file in terminal with one unique command. flauncher works as a command router and launches the input files with the according application/program regarding your settings preferences. Can also be imported in your own python codes.

Then, flauncher can deal with any file type such as audio, image, libreoffice-writer (odt), libreoffice-calc (ods), pdf, rar, tar, tar.gz, tar.xz, tar.bz2, text, tgz, zip, video, etc. files.

Installation

With pip:
sudo pip3 install flauncher

With yay:
yay -a flauncher

With yaourt:
yaourt -a flauncher

Compatibility

python >= 3

Usage

flauncher [FILE_PATH_01 FILE_PATH_02 ...]
options:
         -h, --help        show this help message and exit
         -m [mode]         select another mode than the default open one to open another conf file than open.json

Configuration

The settings defining the command to be run for any extension type are located in the ~/.config/flauncher/open.json json file.

If this file doesn't exist, copy the default one located in usr/lib/flauncher/open.json and configure it as you wish.

{
        "files":
        {
                "audio": {
                  "mode": "playlist",
                  "exts": ["mp3", "wav", "m4a", "aac", "mp1", "mp2", "flac", "aa", "aax", "act", "aiff", "amr", "ape", "au", "awb", "dct", "dss", "dvf", "gsm", "iklax", "ivs", "m4b", "m4p", "mmf", "mpc", "msv", "nmf", "nsf", "oga", "mogg", "opus", "ra", "raw", "sin", "tta", "vox", "wma", "wv", "8svx"],
                  "app": "mpv",
                  "args": "--fs-screen=all -fs --loop-playplaylist --script-opts=osc-hidetimeout=6000 --player-operation-mode=pseudo-gui"
                },
                "graphical": {
                  "mode": "individual",
                  "exts": ["xcf"],
                  "app": "gimp",
                  "args": null
                },
                "image_bitmap": {
                  "mode": "playlist",
                  "exts": ["jpg", "jpeg", "png", "tif", "gif", "bmp", "pjpeg", "jfif", "exif", "tiff", "png", "ppm", "pgm", "pbm", "pnm", "webp", "hdr", "heif", "bat", "bpg"],
                  "app": "sxiv",
                  "args": "-bf"
                },
                "libreoffice_writer": {
                  "mode": "individual",
                  "exts": ["odt", "doc", "docx", "docs"],
                  "app": "libreoffice --writer",
                  "args": null
                },
                "markup": {
                  "mode": "individual",
                  "exts": ["ad", "md", "adoc"],
                  "app": "brave",
                  "args": "-a"
                },
                "python": {
                  "mode": "individual",
                  "exts": ["py"],
                  "app": "pycharm",
                  "args": null
                },
                "pdf": {
                  "mode": "individual",
                  "exts": ["pdf"],
                  "app": "brave",
                  "args": "-a"
                },
                "rar": {
                  "mode": "archive_a",
                  "exts": ["rar"],
                  "app": "unrar",
                  "args": "x"
                },
                "tar": {
                  "mode": "archive_a",
                  "exts": ["tar"],
                  "app": "tar",
                  "args": "-xvf"
                },
                "tar_gz": {
                  "mode": "archive_a",
                  "exts": ["tar.gz"],
                  "app": "tar",
                  "args": "-zxvf"
                },
                "tar_xz": {
                  "mode": "archive_b",
                  "exts": ["tar.xz", "txz"],
                  "app": "tar",
                  "args": "--directory FOLDER_PATH -xJf ARCHIVE_PATH"
                }
        ...
        ...
        ...
        },
        "folders": {}
}

By default any audio and video files are launched with mpv, any image with sxiv, any pdf with the brave browser, any text with the atom editor, etc. But feel free to set your preferred application.

Examples

For help:

flauncher -h
or
flauncher --help

Launch a pdf, a zip, a tar.gz and a mp3:

flauncher titi.pdf toto/tutu.zip toto/tutu.tar.gz toto/tata/tutu.mp3

Custom mode

Define others modes corresponding to others conf files with the -m parameter. When specifying the -m parameter, you have to precise the mode name just after it corresponding to the ~/.config/flauncher/mode.json conf file. -m edit will use the ~/.config/flauncher/edit.json conf file rather than the default launch.json one.

Then, you can have different launch mode corresponding to any kind of file.

Suggestions

Use the o command to open any file:

alias o='flauncher'

And the e command to edit any file:

alias e='flauncher -m edit'

Python import

You can import the flauncher package in your own codes and then call the get_cmds method with the file paths and the mode you want to use.

from flauncher import get_cmds
cmds = get_cmds(paths, mode)

It will return a list of clean commands, every command being a dictionary with the "app", the "args" and the "su" attributes.

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

flauncher-1.5.0.tar.gz (17.3 kB view details)

Uploaded Source

Built Distribution

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

flauncher-1.5.0-py3-none-any.whl (21.3 kB view details)

Uploaded Python 3

File details

Details for the file flauncher-1.5.0.tar.gz.

File metadata

  • Download URL: flauncher-1.5.0.tar.gz
  • Upload date:
  • Size: 17.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.5

File hashes

Hashes for flauncher-1.5.0.tar.gz
Algorithm Hash digest
SHA256 d9bb2e26e01b221a2a530e2c2b42985dbf7c285b9b0c3367260e1f09b712e40f
MD5 edb9b221d42d12bd62f212e96ff3e157
BLAKE2b-256 1b9a3bf5e8c4b53fb0326124b45d47efcb2dfedb217500ec228ccc1b383a5b1d

See more details on using hashes here.

File details

Details for the file flauncher-1.5.0-py3-none-any.whl.

File metadata

  • Download URL: flauncher-1.5.0-py3-none-any.whl
  • Upload date:
  • Size: 21.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.5

File hashes

Hashes for flauncher-1.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0a68a1cf88e5047c1b18b8441d45bb81999c8c9a975a86f8efb1153c704c4df1
MD5 aae0826df23d8bc431c6e7519e94ccd0
BLAKE2b-256 4c99a6852bb6825762818a0193239c364e10a56685f6efc6e22fb7e97e27ea15

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