Skip to content

A grayish theme for Qtractor focused on minimalism and efficiency

Notifications You must be signed in to change notification settings

windowsrefund/grayscale-theme

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Grayscale grayish inspired theme for Qtractor

sequencer mixer

Credits

Qtractor is the creation of Rui Nuno Capela (aka rnbc).

This theme was inspired by the incredible work of G3N-es.

Free software icons from iconduck. Brightness has been reduced -30.

Features

Everything in this design is geared toward functionality:

  • By leveraging highly efficient keybindings for the most common operations, we can eliminate clutter from the interface like scrollbars, zoom buttons, and redundant or seldom used toolbars.

  • A minimal set of colors are used in order to keep the focus on the data itself rather than the interface.

  • Only icons providing value on their own have been maintained.

Installation

This assumes you are running some Debian-like distro. The following steps have been verified on Ubuntu 24.04:

  sudo apt-get build-dep qtractor
  cd
  mkdir src
  cd src
  git clone https://github.com/windowsrefund/grayscale-theme.git

As a result of this and this, Qtractor's UX now assumes users will always consult an icon within a "optional" toolbar in order to know what Edit Mode the cursor is in. This came about due to a well-intentioned feature request to consolidate the Edit on and Edit Off keybindings down to a single toggle. Unfortunately, the feature was rushed and a poor design was used which now essentially adds a dependency on a visual component in order to know what mode is active. We're not interested in bloated toolbars with redundant icons so this theme will sacrifice the toggle feature by compiling from a fork. At the end of the day, having the ability to drive the Edit Mode in a predictable fashion via the keyboard is worth more than a toggle which forces us to constantly look away from our work in order to consult an icon.

  git clone --recursive https://github.com/windowsrefund/qtractor-not-broken.git
  cd qtractor-not-broken
  git checkout -b grayscale-theme
  git apply -v ../grayscale-theme/patches/01-mixer-highlight.patch
  cmake -B build
  cmake --build build -j $(($(nproc) - 1))
  sudo cmake --install build

Toolbar Configuration

In order to reduce clutter, disable all status bars and most toolbars. In the main window, navigate to View > Toolbars and disable the following:

  • File
  • Edit
  • Track
  • View

In the MIDI Editor (piano roll), navigate to View > Toolbars and disable the following:

  • File
  • Edit
  • Transport
  • Time
  • Scale

Uncheck View > Statusbar in both windows.

Custom Icons

Under View > Options > Display. Under Custom > Icons theme, select the images directory provided by this repo. Even though this theme advocates hiding specific toolbars (and by proxy, their icons), many pointless icons are still rendered alongside the menu items. For this reason, all bloated and pointless icons have been clobbered via transparent images. If you need to see these icons, this theme is probably not going to work for you. As needs arise, additional icons may be unmasked in the future.

Additional Color Setup

Under View > Options > Display, import the Grayscale.conf file obtained from this repo in order to change the color theme.

Next, import the Grayscale.qss file obtained from this repo in order to change the style sheet.

The suggested colors to set in View > Options > Display > Meters are #75b5aa for Audio and #878C6A for MIDI.

The suggested colors to use when creating tracks are #252628 for foreground and #878C6A for background.

The suggested color to use for automation is #75b5aa.

Key Bindings

Disclaimer: I use a tiling window manager which handles some areas of my DAW-related work flow. That said, the following bindings are specific to Qtractor itself and I'd have to imagine the approach offered would benefit anyone regardless of their particular approach to window management.

All keybindings listed below are purposefully intended to be used with one hand (left in this case) resting on the home keys. This is the secret sauce to being highly productive when using an application that does justify continuous usage of the rodent. When we bind our most common operations to the hand not driving the mouse, we can avoid moving the other hand back and forth. In general, one hand (mostly) navigates and the other (mostly) operates. The focus is on streamlining the stuff we do every day. We can use the menu system for the infrequently used operations as we are not trying to bind to every possible scenario. As usage patterns become more common, we'll consider extending our bindings accordingly.

Also worth mentioning is the fact I only work with Select Mode set to clip. In fact, I see no reason to ever work in any other mode aside from the occasional toggle to Automation mode (and then back). This explains the A and Shift-A bindings shown below.

Keybindings in Qtractor are maintained in two distinct work areas; the main window and the MIDI clip editor. This means a given binding may exist in both while performing completely different operations. This is perfect and we do thank Rui for this brilliant design!

Although many reasonable defaults are provided "out of the box", I have personally chosen to just delete them and suggest you do the same. In other words, only bind what you intend to actually use.

Here are the suggested bindings for the main window

Menu/Action Binding Mnemonic or additional notes
clipLoopSetAction R Repeat
clipMergeAction G Group
clipSplitAction S Split
clipUnlinkAction T Tear (not really but I just thought of it)
editCopyAction C Copy
editDeleteAction D Delete
editPasteAction V Paste
editRedoAction Shift-Z Opposite of Z
editSelectModeClipAction Shift+A Opposite of A
editSelectModeCurveAction A Automation
editUndoAction Z Undo
fileCloseAction X Heavily used binding most often used to close Piano Roll window
transportBackwardAction B Heavily used to navigate back across the timeline to a given marker or head
transportForwardAction F Heavily used to navigate forward across the timeline to a given marker or head
transportLoopSetAction Shift+R Set Loop range after moving Loop-start and/or Loop-end marker(s)
transportPlayAction Space
viewMenubarAction Ctrl+M Keep this around just in case the Menu Bar is accidently closed!
viewSnapPerBeat1 1 Quarter note
viewSnapPerBeat2 2 8th note
viewSnapPerBeat3 3 8th note triplet
viewSnapPerBeat4 4 16th
viewWindowsConnections Shift-C Open the Connections panel

Here are the suggested bindings for the MIDI Editor (Piano Roll) window

Menu/Action Binding Mnemonic or additional notes
editCopyAction C Copy
editDeleteAction D Delete
editModeDrawAction Shift+W Seldom used. Think of it as a "Special write"
editModeOffAction S Select
editModeOnAction W Write
editPasteAction V Paste
editRedoAction Shift-Z Opposite of Z
editSelectAllAction A All
editSelectInvertAction Shift-S Think of it as "opposite of selected"
editSelectNoneAction Shift+A Opposite of A
editUndoAction Z Undo
fileCloseAction X Heavily used
toolsQuantizeAction Q Quantize
toolsTransposeAction T Transpose
transportBackwardAction B Back
transportForwardAction F Forward
transportPlayAction Space
viewEventsAction E Event Viewer
viewMenubarAction Ctrl+M Keep this around to reveal the menu bar if needed
viewSnapPerBeat1 1 Quarter Note
viewSnapPerBeat2 2 8th note
viewSnapPerBeat3 3 8th note triplet
viewSnapPerBeat4 4 16th note
viewZoomResetAction Shift+R Reset zoom

The Perfect i3 Configuration

In the event you are using i3, here are the bits of my configuration:

# Qtractor (order matters here)
# first, we set everything to float
for_window [class="(?i)Qtractor"] floating enable

# Now we override for specific windows
for_window [class="(?i)Qtractor" title="Track [0-9]*\)"] floating disable, layout splitv
for_window [class="(?i)Qtractor" title="Mixer"] floating disable, border none
for_window [class="(?i)Qtractor" title="Connections"] floating disable, layout splith
# This is the default startup when not using a template
for_window [class="(?i)Qtractor" title="Untitled1"] floating disable
# When we open a saved session
for_window [class="(?i)Qtractor" title="\.qt[a-z]"] floating disable

# DAW on the left and Mixer on the right
assign [class="(?i)Qtractor"] $ws3
assign [class="(?i)Qtractor" title="Mixer"] $ws4

Extras

  • ShowMIDI-grayscale.svg theme file for the very cool ShowMIDI plugin.

About

A grayish theme for Qtractor focused on minimalism and efficiency

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages