Rainbow​Taskbar Docs

your Windows taskbar customization solution.

Quick access

Getting started

Welcome to RainbowTaskbar! To get RainbowTaskbar, visit this link. This will bring you to the latest version. Choose either the 32-bit (rnbtsk.exe) or the 64-bit (rnbtsk-x64.exe) version. If you do not have .NET 6 installed, the program will automatically prompt you to install it.

RainbowTaskbar is a portable app, so there is no installation procedure.

Behind the scenes

To understand certain terminology and more about the instructions, you first have to know the structure of RainbowTaskbar.

RainbowTaskbar's graphics work by applying an underlay, the same size (and shape, if rounded) as the taskbar, right under it.

In the image above, I have separated the underlay from the taskbar, so you can see what is actually happening.


Layers are a new feature in the .NET version of RainbowTaskbar. Layers allow you to stack over different controls freely. There is a limited number of 16 layers, 0-15.

Layers also allow you to clear a single part of all the visible controls, allowing for dynamic text/images (probably in combination with the API).

The editor

RainbowTaskbar will automatically choose the Rainbow preset on first usage.
To open the editor, locate the tray icon, and double-click it or right-click and choose "Open".

You can also try out the included presets, by hovering over the "Presets" option in the tray menu, and choosing one.

Transparency instruction

The transparency instruction allows you to set the opacity of the real taskbar (Taskbar), the underlay (RainbowTaskbar) and the different layers (Layer). Another feature of this instruction is setting the taskbar style (Style).

Taskbar styles

Taskbar styles are set using the transparency instruction. They allow you to customize the appearance of the actual taskbar.

There are 3 available styles:
  • Default - default taskbar style
  • Blur - colorless blur style
  • Transparent - completely see-through style

You can easily preview taskbar styles in the editor.

Color instruction

The color instruction is the fundamental instruction of RainbowTaskbar. It is one of the oldest instructions, along with the transparency instruction.

The color instruction supports solid color or 2 color gradients, along with the option of fading and a few selectable transitions.

Fade transitions

Fade transitions are available in color instructions of type Fade or FadeGradinet.

There are 5 available transitions:
  • Linear - default
  • Sine
  • Cubic
  • Exponential
  • Back

Image instruction

The image instruction allows you to display images on the taskbar. You can position and stretch the images to a selected size or keep the original size by setting width and height to 0.

Text instruction

The text instruction allows you to display text on the taskbar at a position. The editor automatically gives you a list of all the available fonts in the system.


The HTTP API can be enabled in the settings window. It is disabled by default.
All results are JSON-encoded.


  • /config - Returns the contents the config class.

  • { "data": { "ConfigFileVersion": 1, "IsAPIEnabled": true, "APIPort": 9093, "RunAtStartup": true, "Instructions": [ { "Name": "TransparencyInstruction", "Opacity": 0.8, "Layer": 0, "Style": 0, "Type": 1 }, ... ], "success": true } }
  • /instructions - Returns the current instruction list.

  • { "data": [ { "Name": "TransparencyInstruction", "Opacity": 0.8, "Layer": 0, "Style": 0, "Type": 1 }, ... ], "success": true } }
  • /instruction?position=n - Returns the instruction at index n.

  • { "data": { "Name": "TransparencyInstruction", "Opacity": 1.0, "Layer": 0, "Style": 2, "Type": 3 }, "success": "true" }


Request data is type application/json. All POST requests return {"success": true} unless an error occurs.

  • /clearinstruction {"Position":n} - Deletes the instruction at index n.

  • /clearinstructions - Deletes all of the instructions.

  • /addinstruction {"Position":(Optional), "Name":InstructionClassName, ...} - Adds a new instruction to the list.

  • To successfully encode an instruction in JSON, use the reference below, keeping in mind that the class name has to be referenced in the "Name" parameter. Integer values of 0 can be omitted, as they are usually the default value.
    BorderRadiusInstruction int Radius - border radius in px DelayInstruction int Time - time in ms ClearLayerInstruction int Layer - layer number ColorInstruction int Time - hold time bool Randomize - if true => randomize colors, ignores color1, color2 values string Color1 - color in hex int Effect - 0=Solid; 1=Fade; 2=Gradient; 3=Fade Gradient string Color2 - color in hex; used if effect is 2 or 3 int Time2 - used if effect is 1 or 3 int Transition - 0=Linear; 1=Sine; 2=Cubic; 3=Exponential; 4=Back double Angle - gradient angle; used if effect is 2 or 3 TransparencyInstruction int Type - 0=Taskbar; 1=RainbowTaskbar; 2=All (taskbar and underlay); 3=Style; 4=Layer double Opacity - opacity of the element, 0-1; used if type is 0,1 or 2 int Style - 0=Default (default taskbar); 1=Transparent; 2=Blur; used if type is 3 int Layer - layer number; used if type is 4 ImageInstruction int Layer - layer on which the image is rendered string Path - path to image (png,bmp,jpg) int X - x pos int Y - y pos int Width - width, 0 is original int Height - height, 0 is original double Opacity - transparency, 0-1 ClearLayerInstruction int Layer - layer on which the text is drawn string Text - text content int X - x pos int Y - y pos string Font - font to use, default is "Arial" int Size - font size in px string Color - color in hex
  • /executeinstruction {"Name":InstructionClassName, ...} - Executes an instruction instantly.

  • Refer to instructions above.
  • /goto {"Position": n} - Changes current executing instruction index to n.

  • /saveconfig - Saves the current config.

  • /loadconfig - Reloads the config from file.

On fails, the API will return a string in the format {"success": "false", "error": ErrorDescription}.


For events, one can also connect to the /rnbws WebSocket, and send the subscribe command. {"command":"subscribe", "value": true/false}