Gfret

Contents

Introduction

Gfret renders an svg image template of a fretboard for a stringed instrument. It has a Gtk interface as well as a command line interface and can produce templates for instruments ranging from a piccolo mandolin to an upright bass. Multiscale designs are also supported. Currently, all measurements are expressed in metric units only.

Getting Gfret

Gfret is distributed primarily in source form. The main repo is at codeberg.org with mirrors at gitlab and github.com. Releases are recommended.

Usage

Gfret can be used from the command line or using the Gtk+ interface.

Running the command line interface

```Bash gfret-cli

Output an svg without running the interface

USAGE: gfret cli [OPTIONS] [OUTPUT]

ARGS: Name of the output file [default: output.svg]

OPTIONS: -b, --bridge Bridge spacing [default: 56]

-c, --count Total fret count [default: 24]

-e, --external Open output file in external program [default: inkscape]

-h, --help Print help information

-l, --left Multiscale fretboard reversed (left handed)

-m, --multi Creates a multiscale fretboard with as the treble scale. [default: 610]

-n, --nut Nut width [default: 43]

-o, --output Name of the output file [default: output.svg]

-p, --perpendicular Set which fret is perpendicular to the centerline [default: 8] -s, --scale Scale length in mm [default: 648] ```

Running the gui

Calling the program by invoking gfret without any arguments will run the Gtk interface. Additionally, a .desktop file and icon are included and will be installed if the program is installed using the included Makefile, and can be used for launching the program from desktop menus or creating shortcuts.

Keybindings

Note: See KEYS.md for information on changing keybindings

| Key | Action | | --- | --- | | Ctrl/S | save file | | Ctrl/Shift/S | save file as | | Ctrl/E | open with an external program | | Ctrl/O | load a template from file | | Ctrl/Shift/P | open the preferences dialog | | Ctrl/A | open the about dialog | | Ctrl/Q | quit the program |

Building

You will need a Rust toolchain installed, including cargo. Gtk+4x is also required. sh cargo build --release If desired, a release distribution can then be generated which will include the binary, svg and png icons, Unix man pages, XDG .desktop file, gschema.xml and shell completions. sh cargo xtask dist To install, copy the contents of target/dist to the appropriate prefix and compile the gschemas. Sh cp -Rv target/dist/* /usr/local glib-compile-schemas /usr/local/share/glib-2.0/gschemas/

Roadmap