Grayscale grayish inspired theme for Qtractor
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.
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.
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
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.
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.
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.
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 |
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
- ShowMIDI-grayscale.svg theme file for the very cool ShowMIDI plugin.