/vscode-shifty

Shifts your color theme & font family automatically

Primary LanguageTypeScriptMIT LicenseMIT

📍 Shifty depends on Codeface typefaces

To experience shifty in it's full glory, please review our Codeface installation docs.

shifty banner

Table of contents

Codeface installation

The easiest way to get started is to use our install script, however, you can also download the .zip or .tar.xz directly from Codeface and install the fonts on your system manually.

After installing Codeface font families, restart VS Code to have them take affect.

Mac, Linux

git clone git://github.com/bmealhouse/vscode-shifty-font-families.git
cd vscode-shifty-font-families && ./install.sh

Windows

git clone git://github.com/bmealhouse/vscode-shifty-font-families.git
cd vscode-shifty-font-families
./install.ps1

Features

  • Highly configurable (see settings)
  • Shift color theme & font family on 30min interval
  • Shift interval can be used as a pomodoro timer
  • Favorite/ignore color themes & font families
  • Shifty status bar displays remaining time of shift interval

shifty status

Shift interval

This is the bread & butter of shifty. By default, the shift interval will be started for you automatically. You can pause the shift interval by opening the command palette (⇧⌘P) and typing shifty pause.

Shift mode

Shifty supports three different shift modes when cycling through color themes & font families. I recommend starting with discovery mode until all color themes & font families have been favorited or ignored and then switch over to favorites mode.

default

Cycles through all color themes & font families that have not been ignored.

discovery

Cycles through color themes & font families that have not been favorited or ignored. When all color themes or font families have been favorited or ignored, shifty will fallback to using favorites mode.

favorites

Cycles through favorite color themes & font families. Respects ignoreDarkColorThemes, ignoreHighContrastColorThemes, and ignoreLightColorThemes settings to allow dark, high contrast, and light color theme favorites to be used independently.

Commands

Anything shifty can do is exposed via commands. Open the VS Code command palette (⇧⌘P) and type shifty to see the list of commands availabe to you.

  • Shift
  • Shift color theme
  • Shift font family
  • Toggle favorite color theme
  • Toggle favorite font family
  • Ignore color theme
  • Ignore font family
  • Start shift interval
  • Pause shift interval
  • Reset shift interval
  • Show status
  • Enable debugging

Settings

Shifty has many configuration options. Please review these settings so shifty can fulfill your every desire.

shifty.shiftMode
Controls how shifty cycles through color themes & font families.

shifty.colorThemes.favoriteColorThemes
List of color themes you've favorited.

shifty.colorThemes.ignoreColorThemes
List of color themes you've ignored.

shifty.colorThemes.ignoreDarkColorThemes
Controls whether dark color themes are ignored.
default: false

shifty.colorThemes.ignoreHighContrastColorThemes
Controls whether high contrast color themes are ignored.
default: false

shifty.colorThemes.ignoreLightColorThemes
Controls whether light color themes are ignored.
default: false

shifty.fontFamilies.fallbackFontFamily
Controls which font family will be used as the fallback. Supports comma delimited values (e.g. "SF Mono", monospace).
default: monospace

shifty.fontFamilies.favoriteFontFamilies
List of font families you've favorited.

shifty.fontFamilies.ignoreCodefaceFontFamilies
Controls whether Codeface font families are ignored.

shifty.fontFamilies.ignoreFontFamilies
List of font families you've ignored.

shifty.fontFamilies.includeFontFamilies
List of font families to include. Useful for including fonts you've purchased.

shifty.shiftInterval.automaticallyStartShiftInterval
Controls whether the shift interval will start automatically.
default: true

shifty.shiftInterval.shiftColorThemeIntervalMin
Number of minutes to wait before shifting the color theme. Use 0 or null to disable the color theme shift interval.
default: 30

shifty.shiftInterval.shiftFontFamilyIntervalMin
Number of minutes to wait before shifting the font family. Use 0 or null to disable the font family shift interval.
default: 30

Contributing

  1. Fork this repository to your own GitHub account and then clone it to your local device
  2. Install the dependecies using yarn
  3. Use VS Code launch configurations to debug or run integration tests
    • Extension - runs the extension from source with debugging enabled
    • Extension Tests - runs the integration test suite
  4. Ensure any changes are documented in CHANGELOG.md

License

MIT © Brent Mealhouse