Skip to main content

filebuttons

Panel of buttons to launch files into a running IDE

Example showing buttons for 202 files.

license pypi python

docs | repository

Employs the Kivy framework. Kivy

The appearance and buttons are set by the config file in user's home folder named '.filebuttons.ini'. A default config file is created automatically if it doesn't exist. Example of the Default config file. Alternatively, set it with a command line option.

An instance of the target IDE should be running and the subprocess that launches the IDE must complete right away otherwise it will block the entire filebuttons app.

By default files launch into Visual Studio Code. The application is set by the config file.

The screen position of the main window is set by the config file so you can have it start off on a side monitor.

Set the current working directory of the shell to the root of the filesystem before running.

Installation

python -m pip install filebuttons

Usage

filebuttons -- -h

The -- unlocks the filebuttons help. Without it you get the Kivy framework help.

usage: filebuttons.exe [KIVY OPTION...] [-- PROGRAM OPTIONS]:: [-h] [--config FILE]

Button panel. Each button runs a program with the file. Use to launch a file into a source code editor, IDE, or
arbitrary program.

options:
  -h, --help     show this help message and exit
  --config FILE  Configuration file containing settings.

Alternate installation

Copy kv.py to a local file.

Alternate usage

Set working directory to the root of the repository.

python <path-to-kv.py>

The default config file is located in the same folder as the kv.py and is called filebuttons.ini.

Settings

Hand edit the config file or use the main window Add Folder, Screen Coordinates, and Settings buttons. See top of main window. The Python standard library configparser describes the config file format. Sample ini file

Restart filebuttons to see configuration changes.

Folders

Files become buttons directed by the [filebuttons.folders] section in the config file.

  • empty files are skipped
  • directories starting with "__" are skipped

There is one key for each folder. The folder must be a subfolder of the current working directory. A folder name can have / to indicate subdirectories. For example docs/fix/code =

The key's value is a multiline string. On each line is a glob defined by pathlib.Path.glob see pathlib. The glob selects files from the folder to be buttons.

If the folder key has no value all files in all subdirectories get selected. It is wise to avoid this with the root folder of a repository.

The default config file has one folder called . (dot) which is typically the root of the repository. It is the current working directory.

Add one folder with the Add Folder button.

Add globs to folders by pressing Settings button and then Folders sidebar tab. Example Click one of the folders in the center to bring up a multiline editing dialog. The dialog is scrolled to the bottom. Put one glob per line.

Program

This is the application name. The IDE. The application name can be an absolute path or just the name like code shown in the example. It should be a name that would work when keyed in as a shell command.

example

Appearance

example

Config file

example Shows the location of the config file.

Set the main window screen position

Position the main window as desired and press the Screen Coordinates button. Screen Position.

Hints

  • Both the current working directory and the config file should be from trusted sources.

  • Filenames that contain either ";", "&&", "||", "\n" will not generate buttons.

  • Launch files from one repository into an IDE opened in another.

  • To avoid configparser.ParsingError:, every key in [filebuttons.folders] must be followed by an =

  • If the recursive wildcard ** is present in a glob, there will be no Folder Buttons rendered for the matching folders.

  • The Folder Buttons perform no action when pressed. They act like labels.

Issues

Exceptions are reported in Kivy's console at App close time after going to settings.

Release files for filebuttons 0.3.0

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

Source distribution (sdist)

Source distribution for filebuttons 0.3.0
File Size Uploaded
filebuttons-0.3.0.tar.gz 18.2 kB Details

Built distribution (wheel)

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

Total release size: 31.4 kB

Release files / filebuttons-0.3.0.tar.gz

Download URL filebuttons-0.3.0.tar.gz
Size 18.2 kB
Tags Source
SHA-256 checksum
How to use checksums
600d9df6e44abdc78b74bc082eb9e4255ff4136ac2ea8e1bb0081a283fcb46fb
BLAKE2b-256 checksum
How to use checksums
23ee18f07d420b301929191f5d4d40e14a6d07638537b251d6f1599599327909
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 10, 2025.

Transparency log

Release files / filebuttons-0.3.0-py3-none-any.whl

Download URL filebuttons-0.3.0-py3-none-any.whl
Size 13.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
75479dbcd11f71969f5c790e5c856f7d7c7595893c55e1b1625cea34c131c734
BLAKE2b-256 checksum
How to use checksums
d718e1307986022a888dbe16f8fa5226363a1a02d67574f2dc45f95c2f0cf6e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 10, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.2.0

2 release files

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