From 0fdccad5100fe3d2113ed265dfe1462417aefd23 Mon Sep 17 00:00:00 2001 From: Aytackydln Date: Fri, 4 Oct 2024 14:49:47 +0000 Subject: [PATCH] deploy: 4453645c5ef8e37b3603c70e847a666188bb895b --- advanced-topics/animation-editor/index.html | 2 +- advanced-topics/overrides-system/index.html | 2 +- advanced-topics/state-variables/index.html | 2 +- advanced-topics/visualizer-output/index.html | 14 +-- basic-topics/getting-started/index.html | 4 +- basic-topics/index.xml | 2 +- basic-topics/installation/index.html | 2 +- basic-topics/user-data/index.html | 2 +- devices/corsair/index.html | 2 +- devices/index.xml | 10 +-- devices/logitech/index.html | 6 +- devices/steelseries/index.html | 2 +- img/{ => diagrams}/chroma_diagram.png | Bin img/diagrams/lfx_diagram.png | Bin 0 -> 216796 bytes img/{ => diagrams}/lightsync_diagram.png | Bin index.xml | 83 +++++++++++------- integrations/chroma/index.html | 4 +- integrations/index.xml | 35 ++++++-- integrations/lightfx/index.html | 2 +- integrations/lightsync/index.html | 2 +- reference-expressions/maths/index.html | 2 +- reference-layers/ambilight/index.html | 2 +- reference-layers/animation/index.html | 2 +- reference-layers/audio-visualizer/index.html | 2 +- reference-layers/blinking/index.html | 2 +- reference-layers/breathing/index.html | 2 +- reference-layers/glitch-effect/index.html | 2 +- reference-layers/gradient-fill/index.html | 2 +- reference-layers/gradient/index.html | 2 +- reference-layers/image/index.html | 2 +- reference-layers/index.xml | 36 ++++---- reference-layers/interactive/index.html | 2 +- reference-layers/lock-color/index.html | 2 +- reference-layers/particle/index.html | 4 +- reference-layers/percent-effect/index.html | 2 +- .../percent-gradient-effect/index.html | 2 +- reference-layers/radial/index.html | 2 +- .../shortcut-assistant/index.html | 2 +- reference-layers/solid-color/index.html | 2 +- reference-layers/solid-fill-color/index.html | 2 +- reference-layers/timer-key/index.html | 2 +- reference-layers/toolbar/index.html | 2 +- search/index.html | 2 +- sitemap.xml | 2 +- 44 files changed, 153 insertions(+), 107 deletions(-) rename img/{ => diagrams}/chroma_diagram.png (100%) create mode 100644 img/diagrams/lfx_diagram.png rename img/{ => diagrams}/lightsync_diagram.png (100%) diff --git a/advanced-topics/animation-editor/index.html b/advanced-topics/animation-editor/index.html index c45cab5..bf1b5c6 100644 --- a/advanced-topics/animation-editor/index.html +++ b/advanced-topics/animation-editor/index.html @@ -1,4 +1,4 @@ Animation Editor • advanced-topics • Aurora Docs

Animation Editor


Last updated 10.01.2024

The Animation Layer allows you to add your own custom animated effects to your peripheral lights. To edit this animation, the Animation Editor used. This is a powerful tool, and fairly easy to use once you understand how it works. As with all unfamiliar things however, it may be daunting at first.

Concepts and Definitions

Before getting into the guide itself, let me define some of the concepts and features that are required to fully understand how the animations work.

  • Each frame, the animation is drawn onto a Canvas which is then sent to your connected peripherals. The canvas is a rectangle with a height and a width, this size of which depend on the position and size of the peripherals. Anything drawn to the canvas will be drawn at a specific point on the canvas, with x=0, y=0 being the coordinate of the top left.
  • An animation is built up of one or more Animation Tracks. Each of these tracks can represent a single shape (e.g. rectangle, filled circle, etc.)
  • Each shape has a number of Properties, depending on what sort of shape they are. For example, a circle has radius, center x, center y, color and width properties. These properties determine how the shape will be rendered to the canvas.
  • Each animation track will have one or more Keyframes which are points on the timeline where you can set the properties of a shape. The keyframes do not have to line up on each track. For example one track may only have one keyframe while another may have ten.
  • Between keyframes, the properties of a shape on a track will interpolate, forming a smooth transition.

The Editor

With that out of the way, lets move on to the creation of an animation. To open the animation editor, first add an animation layer to your profile. On the layer settings, click on the “Edit Animation” button. When you first open the animation editor you will be presented with a screen that looks like this:

The main screen of the Animation Editor labelled showing the main controls

There are 3 main areas to the editor:

  • The timeline which shows the tracks that currently make up the animation as well as also containing a seek line (the vertical red line) which dictates which how far through the animation the preview is.
  • The preview area which shows a skeleton of your peripheral setup and the various shapes that make up the animation at the given time.
  • The property editor which, when a keypoint is selected, allows for editing the properties of that shape for that keypoint.

Creating an Animation

First we need to add a track by clicking on the “Add Track” button just above and to the left of the timeline, then choosing the type of shape we wish to add. The manual color track allows you to set individual colors of the keyboard (see Closing Notes), rather than using shapes; the other tracks should be self-explanatory. For the purpose of the tutorial, I will add an (unfilled) circle track.

Adding a circle track to the timeline

You should now see a new row has appeared in the timeline. This is the new shape we’ve just created. The left-most grey box shows the name of the track, a delete button and an icon to indicate the type of the track. If you so desire you can double click on the name of the track to change it to something more helpful, though this has no effect on the actual animation itself.

The newly created circle track on the timeline

Next to the grey box you will see a pair of colored rectangles. These represent a keyframe on the track, the color being indicative of the color of the shape at that keyframe. Clicking this keyframe, we can edit the properties of the circle using the properties in the top right. I’m going to set them to the values in the image below.

Properties for the first keyframe

Next, we’ll need another keyframe to animate to, otherwise we will just have a static image! Double click on the timeline inline with the track to insert a new keyframe at that time. Unfortunately the properties are all reset so we have to enter them again from scratch. Like before though, single left click on the keyframe and set the properties in the properties panel. This time, I will use these settings:

Properties for the first keyframe

You can add as many other keyframes as you like and even add new tracks with their own keyframes using the steps from above, but I won’t bother.

Once done, you can close the animation editor window. Finally, to ensure the animation plays smoothly, we need to set the Animation Duration property of the Animation Layer to be the length of the animation you just created. If you set a value too small, your animation will appear to be cut off, but too long and you animation will not replay quickly.

Congratulations, you’ve made your first animation! :tada:


Page authored by
\ No newline at end of file +Aurora User Docs

Animation Editor


Last updated 10.01.2024

The Animation Layer allows you to add your own custom animated effects to your peripheral lights. To edit this animation, the Animation Editor used. This is a powerful tool, and fairly easy to use once you understand how it works. As with all unfamiliar things however, it may be daunting at first.

Concepts and Definitions

Before getting into the guide itself, let me define some of the concepts and features that are required to fully understand how the animations work.

  • Each frame, the animation is drawn onto a Canvas which is then sent to your connected peripherals. The canvas is a rectangle with a height and a width, this size of which depend on the position and size of the peripherals. Anything drawn to the canvas will be drawn at a specific point on the canvas, with x=0, y=0 being the coordinate of the top left.
  • An animation is built up of one or more Animation Tracks. Each of these tracks can represent a single shape (e.g. rectangle, filled circle, etc.)
  • Each shape has a number of Properties, depending on what sort of shape they are. For example, a circle has radius, center x, center y, color and width properties. These properties determine how the shape will be rendered to the canvas.
  • Each animation track will have one or more Keyframes which are points on the timeline where you can set the properties of a shape. The keyframes do not have to line up on each track. For example one track may only have one keyframe while another may have ten.
  • Between keyframes, the properties of a shape on a track will interpolate, forming a smooth transition.

The Editor

With that out of the way, lets move on to the creation of an animation. To open the animation editor, first add an animation layer to your profile. On the layer settings, click on the “Edit Animation” button. When you first open the animation editor you will be presented with a screen that looks like this:

The main screen of the Animation Editor labelled showing the main controls

There are 3 main areas to the editor:

  • The timeline which shows the tracks that currently make up the animation as well as also containing a seek line (the vertical red line) which dictates which how far through the animation the preview is.
  • The preview area which shows a skeleton of your peripheral setup and the various shapes that make up the animation at the given time.
  • The property editor which, when a keypoint is selected, allows for editing the properties of that shape for that keypoint.

Creating an Animation

First we need to add a track by clicking on the “Add Track” button just above and to the left of the timeline, then choosing the type of shape we wish to add. The manual color track allows you to set individual colors of the keyboard (see Closing Notes), rather than using shapes; the other tracks should be self-explanatory. For the purpose of the tutorial, I will add an (unfilled) circle track.

Adding a circle track to the timeline

You should now see a new row has appeared in the timeline. This is the new shape we’ve just created. The left-most grey box shows the name of the track, a delete button and an icon to indicate the type of the track. If you so desire you can double click on the name of the track to change it to something more helpful, though this has no effect on the actual animation itself.

The newly created circle track on the timeline

Next to the grey box you will see a pair of colored rectangles. These represent a keyframe on the track, the color being indicative of the color of the shape at that keyframe. Clicking this keyframe, we can edit the properties of the circle using the properties in the top right. I’m going to set them to the values in the image below.

Properties for the first keyframe

Next, we’ll need another keyframe to animate to, otherwise we will just have a static image! Double click on the timeline inline with the track to insert a new keyframe at that time. Unfortunately the properties are all reset so we have to enter them again from scratch. Like before though, single left click on the keyframe and set the properties in the properties panel. This time, I will use these settings:

Properties for the first keyframe

You can add as many other keyframes as you like and even add new tracks with their own keyframes using the steps from above, but I won’t bother.

Once done, you can close the animation editor window. Finally, to ensure the animation plays smoothly, we need to set the Animation Duration property of the Animation Layer to be the length of the animation you just created. If you set a value too small, your animation will appear to be cut off, but too long and you animation will not replay quickly.

Congratulations, you’ve made your first animation! :tada:


Page authored by
\ No newline at end of file diff --git a/advanced-topics/overrides-system/index.html b/advanced-topics/overrides-system/index.html index 478f549..840f639 100644 --- a/advanced-topics/overrides-system/index.html +++ b/advanced-topics/overrides-system/index.html @@ -1,4 +1,4 @@ Overrides System • advanced-topics • Aurora Docs

Overrides System


Last updated 10.01.2024

The overrides system is an an advanced system that allows you to override the properties of layers with other values that are evaluated each frame. This allows for a huge amount of control and customizability with your lighting that layers on their own cannot provide. You can still get fairly customization layers without this system, so do not worry if you don’t understand it. This is a feature mainly for advanced users.

The overrides system works by providing you, the user, the ability to use one of several techniques to override individual properties with custom values. If no override is provided, the value you’ve set on the normal properties editor panel will be used instead. Overrides are done on a per-property basis, so you can use one technique for one property, a different one for another property or no technique for a third for example.

The Editor

To open the overrides editor panel, first select the layer whose properties you want to override then click on the left-most button in the top right of the properties panel.

The button to open the overrides editor

The editor is split into two columns. The left column contains a list of all overridable properties on the selected layer, showing their name and type. Note that not all properties are overridable. The right hand (larger) column is where the main logic editor is. This area is how you choose and edit the override technique. Initially, only a drop down box will be shown with an empty area.

To actually setup an override for a property, select it from the property list, then choose an override mode from the drop down list.

Setting up an override on the Primary Color property of the breathing layer

Override Modes

Dynamic Value

The dynamic value override method allows you to dynamically create a value based on values of other variables.

A simple example for this could be assigning to opacity of a layer to be the health of a player, so it appears to fade in as the health lowers, showing a red warning when your character is close to death. A more complex example could be constructing a color based on the current time, with seconds being red, minutes green and hours blue. Whether you’d actually want this who knows, but it’s possible with this override technique.

Basic example of a dynamic value being used with opacity to make the layer flash in and then fade out

Depending on the type of property being edited, you will be asked to provide one or more expressions of different types. Descriptions of these expressions are available in the “Reference: Expression Types” section of the guide. For example, the “Enabled” property will require a boolean expression and “Opacity” will require a numeric expression.

Lookup Table

The lookup table is a list of condition-value pairs. When using this override technique, Aurora will evaluate the boolean condition expression of each item in the list until it finds one that is true. When it does so, it will override the requested property with the value of the pair.

Example lookup table that sets the color to red every once every three seconds

If you are familiar with the concept of programming, you can think of a lookup table as being like a switch statement or a collection of if else if blocks.

Demos

This profile contains a single solid fill layer that fades in and out every second, each second alternating between red, green and blue.

The demo layer running

You can download the demo profile here.


Page authored by
\ No newline at end of file +Aurora User Docs

Overrides System


Last updated 10.01.2024

The overrides system is an an advanced system that allows you to override the properties of layers with other values that are evaluated each frame. This allows for a huge amount of control and customizability with your lighting that layers on their own cannot provide. You can still get fairly customization layers without this system, so do not worry if you don’t understand it. This is a feature mainly for advanced users.

The overrides system works by providing you, the user, the ability to use one of several techniques to override individual properties with custom values. If no override is provided, the value you’ve set on the normal properties editor panel will be used instead. Overrides are done on a per-property basis, so you can use one technique for one property, a different one for another property or no technique for a third for example.

The Editor

To open the overrides editor panel, first select the layer whose properties you want to override then click on the left-most button in the top right of the properties panel.

The button to open the overrides editor

The editor is split into two columns. The left column contains a list of all overridable properties on the selected layer, showing their name and type. Note that not all properties are overridable. The right hand (larger) column is where the main logic editor is. This area is how you choose and edit the override technique. Initially, only a drop down box will be shown with an empty area.

To actually setup an override for a property, select it from the property list, then choose an override mode from the drop down list.

Setting up an override on the Primary Color property of the breathing layer

Override Modes

Dynamic Value

The dynamic value override method allows you to dynamically create a value based on values of other variables.

A simple example for this could be assigning to opacity of a layer to be the health of a player, so it appears to fade in as the health lowers, showing a red warning when your character is close to death. A more complex example could be constructing a color based on the current time, with seconds being red, minutes green and hours blue. Whether you’d actually want this who knows, but it’s possible with this override technique.

Basic example of a dynamic value being used with opacity to make the layer flash in and then fade out

Depending on the type of property being edited, you will be asked to provide one or more expressions of different types. Descriptions of these expressions are available in the “Reference: Expression Types” section of the guide. For example, the “Enabled” property will require a boolean expression and “Opacity” will require a numeric expression.

Lookup Table

The lookup table is a list of condition-value pairs. When using this override technique, Aurora will evaluate the boolean condition expression of each item in the list until it finds one that is true. When it does so, it will override the requested property with the value of the pair.

Example lookup table that sets the color to red every once every three seconds

If you are familiar with the concept of programming, you can think of a lookup table as being like a switch statement or a collection of if else if blocks.

Demos

This profile contains a single solid fill layer that fades in and out every second, each second alternating between red, green and blue.

The demo layer running

You can download the demo profile here.


Page authored by
\ No newline at end of file diff --git a/advanced-topics/state-variables/index.html b/advanced-topics/state-variables/index.html index cbbcd34..6062417 100644 --- a/advanced-topics/state-variables/index.html +++ b/advanced-topics/state-variables/index.html @@ -1,4 +1,4 @@ State Variables • advanced-topics • Aurora Docs

State Variables


Last updated 10.01.2024

What are State Variables?

State Variables are numeric, boolean (true/false) or string (sequence of letters) values that can be obtained and dynamically updated by Aurora as it is running. Layers such as the Percent Effect Layer or the Animation Layer can make use of these values to conditionally set the lights on the keyboard. The values depend on which profile is currently in use, for example the CSGO profile contains State Variables for health, current ammo, max ammo, etc. but these specific ones do not work for other profiles such as Minecraft.

Not all game profiles that come with Aurora have State Integration, and currently custom added profiles also do not support State Variables.

There are some State Variables that are operating system-wide (such as RAM/CPU usage and time values) and these are always available to use, regardless of the application a profile is on.

How do you use State Variables?

Any layers that support the use of State Variables will present you with a drop down box allowing you to select a State Variable from the current application profile.

An example of a drop down containing a list of State Variables for Minecraft

Note that in most circumstances, the drop down list is editable you are able to type a number into the field to use that instead of referencing a State Variable.

Another use for State Variables is in the Overrides System. This system allows you to override property values of the layers when certain conditions are met. These conditions can be based on State Variables, such as showing a layer when your health is less than 25%.


Page authored by
\ No newline at end of file +Aurora User Docs

State Variables


Last updated 10.01.2024

What are State Variables?

State Variables are numeric, boolean (true/false) or string (sequence of letters) values that can be obtained and dynamically updated by Aurora as it is running. Layers such as the Percent Effect Layer or the Animation Layer can make use of these values to conditionally set the lights on the keyboard. The values depend on which profile is currently in use, for example the CSGO profile contains State Variables for health, current ammo, max ammo, etc. but these specific ones do not work for other profiles such as Minecraft.

Not all game profiles that come with Aurora have State Integration, and currently custom added profiles also do not support State Variables.

There are some State Variables that are operating system-wide (such as RAM/CPU usage and time values) and these are always available to use, regardless of the application a profile is on.

How do you use State Variables?

Any layers that support the use of State Variables will present you with a drop down box allowing you to select a State Variable from the current application profile.

An example of a drop down containing a list of State Variables for Minecraft

Note that in most circumstances, the drop down list is editable you are able to type a number into the field to use that instead of referencing a State Variable.

Another use for State Variables is in the Overrides System. This system allows you to override property values of the layers when certain conditions are met. These conditions can be based on State Variables, such as showing a layer when your health is less than 25%.


Page authored by
\ No newline at end of file diff --git a/advanced-topics/visualizer-output/index.html b/advanced-topics/visualizer-output/index.html index df81893..d30e3dd 100644 --- a/advanced-topics/visualizer-output/index.html +++ b/advanced-topics/visualizer-output/index.html @@ -2,10 +2,10 @@

Audio Visualizer Tweaks


Last updated 10.01.2024

The Audio Visualizer layer allows you to display a representation of whatever you’re listening to on your RGB devices.

Isolating applications

Why

One of the things that annoys me about the layer is that every single sound your computer emits will be shown on the keyboard, which isn’t very useful or appealing if you’re talking to someone on Discord for example. So I found a way to isolate a single application (in my case, Spotify) in the same audio output as Aurora.

This makes it so only sound emitted by Spotify is processed and displayed on the keyboard, and does make the visualization change if you change the volume of the music.

Prerequisites

  • Windows 19 build 1809 or above

    • Aurora doesn’t let you pick the audio output device yet. Windows now has a menu where you can force an application to use an output and input device of your choosing.
  • Virtual Audio Cable

    • We need this so we can listen to 2 output devices at once: The default output every application should emit to, and the virtual audio cable we need for Aurora’s visualizer.

How

  1. Open the Windows Settings app (Win + i). -Windows settings app
  2. Click the System button, then select the Sound tab. -Windows Sound tab
  3. Scroll down to the bottom and click “App volume and device preferences”. -App volume and device preferences
  4. Set both Aurora’s and whatever other application you want to be visible’s Output to “CABLE Input”. Then Input option does not need to be changed for this. -App Volumes
  5. Open the legacy Sound settings window. The easiest way is through Control Panel -> Icons view. -Control Panel
  6. Choose the Recording Tab and double-click “CABLE Output”. Select the Listen Tab.
  7. Tick “Listen to this device” and choose your headphones/speakers. You should now be able to listen to music! -Cable Output Properties

(Optional) Install Ear Trumpet from the Windows Store to more easily change the volume of Spotify. This method works best if you leave Spotify’s volume at 100% and adjust using the windows mixer instead. This way, Aurora sees every song at the same volume at all times, producing a more consistent effect. -Ear Trumpet


Page authored by
\ No newline at end of file +Windows settings app
  • Click the System button, then select the Sound tab. +Windows Sound tab
  • Scroll down to the bottom and click “App volume and device preferences”. +App volume and device preferences
  • Set both Aurora’s and whatever other application you want to be visible’s Output to “CABLE Input”. Then Input option does not need to be changed for this. +App Volumes
  • Open the legacy Sound settings window. The easiest way is through Control Panel -> Icons view. +Control Panel
  • Choose the Recording Tab and double-click “CABLE Output”. Select the Listen Tab.
  • Tick “Listen to this device” and choose your headphones/speakers. You should now be able to listen to music! +Cable Output Properties
  • (Optional) Install Ear Trumpet from the Windows Store to more easily change the volume of Spotify. This method works best if you leave Spotify’s volume at 100% and adjust using the windows mixer instead. This way, Aurora sees every song at the same volume at all times, producing a more consistent effect. +Ear Trumpet


    Page authored by \ No newline at end of file diff --git a/basic-topics/getting-started/index.html b/basic-topics/getting-started/index.html index 355c31e..5cbbdb8 100644 --- a/basic-topics/getting-started/index.html +++ b/basic-topics/getting-started/index.html @@ -2,5 +2,5 @@

    Getting Started


    Last updated 10.01.2024

    When you first open Aurora, you will be presented with a window that looks like the following. -Annotated picture of the main Aurora UI

    Applications

    On the far left is the application list, with each application shown as an icon. All the applications and games you will see here by default have some sort of integration or preset profile. You are not limited to just these ones however; by scrolling to the bottom of the list and clicking the plus icon you will be able to specify new applications either by selecting from the running process list or by browsing to the exe. You can disable applications if you don’t want your lighting changing when you open that app by going onto the overview and un-checking the “Enable Aurora to provide lighting effects…” box. You can also right-click on the application icons to hide them if you do not have that game and don’t want it cluttering up the list.

    Aurora works by detecting the application that is currently focused and checking if it has an application entry for that application. If it does, it will render the active profile (we’ll see what a profile is in the next section) to your peripherals. If it does not, it will render the “Desktop” application’s selected profile. -Each application can have one or more profiles, and each profile can have as many layers as you wish

    Profiles

    Profiles are a collection of layers that will be drawn to the keyboard whenever that application is currently open (and in the foreground). An application can have one or more profiles, but only one profile can be active at once. You can assign keys to each profile allowing you to switch between them when a specific button is pressed.

    To view the profiles for the currently selected application, click on the “Profiles” button in the list view buttons near the top left of the window. The list below this button will then show you all the profiles of the application. From here you can:

    • Add a new profile by clicking the “Add” button.
    • Delete profiles by clicking the red “X” button.
    • Import a profile from .cueprofile or .json file.
    • Export your profile as a .json file.
    • Copy/paste profiles to duplicate them or add them to another application.
    • Reset the profile to the default state.
    • Rename a profile by clicking on it, then typing a name in the “Profile name” box in the properties panel
    • Assign a key to select a profile by clicking on it, then clicking “Assign” next to “Keybind to active profile” in the properties panel then pressing the keys on your keyboard you want.

    Layers

    A Layer is an instruction for Aurora to set the color of some specific keys on your keyboard. Each layer has different functionality which is detailed in a later section of this guide. The layers are drawn from bottom-to-top, therefore anything higher up the list will take priority over the colors of anything lower down.

    Annoted picture of the Layer controls

    To show the layers list, click the “Layers” list view button that will be at the top left or bottom left of the window (depending on whether the profile list is open or not). A list will appear below this button showing you all your layers. From here you can:

    • Add new layers by clicking on the “Add” button above the layer list.
    • Select a layer and press the copy and paste buttons (or press Ctrl + C, Ctrl + V) to duplicate it or copy it to another profile.
    • Change the layer properties by clicking on a layer and using the properties panel.
    • Delete the layer by selecting it and clicking the red “X” button.
    • Re-order layers by clicking and dragging the triple horizontal line (burger) button next to the layer.

    Overlay Layers

    Overlay layers are different from regular layers in that they appear whenever a particular process is running (or in the case of desktop overlay layers, always). For example, if you create a profile for Spotify and add a audio visualizer as an overlay, the visualizer will always appear whenever Spotify is open, regardless of whether you have it in the foreground or not.

    Note that the layers and overlay layers for a profile can be enabled/disabled independently. With the Spotify example, if you disable the regular layers for the profile but keep the overlay layers, your desktop profile will stay active when Spotify is in the foreground instead of going blank with only the overlay layers.

    Layer Properties

    Each layer will have a set of properties that you can change such as color or the keys it affects. This can be changed in the bottom right panel, the Properties Panel. The properties available to each layer are listed in the reference section of this guide that can be accessed in the navigation list.


    Page authored by
    \ No newline at end of file +Annotated picture of the main Aurora UI

    Applications

    On the far left is the application list, with each application shown as an icon. All the applications and games you will see here by default have some sort of integration or preset profile. You are not limited to just these ones however; by scrolling to the bottom of the list and clicking the plus icon you will be able to specify new applications either by selecting from the running process list or by browsing to the exe. You can disable applications if you don’t want your lighting changing when you open that app by going onto the overview and un-checking the “Enable Aurora to provide lighting effects…” box. You can also right-click on the application icons to hide them if you do not have that game and don’t want it cluttering up the list.

    Aurora works by detecting the application that is currently focused and checking if it has an application entry for that application. If it does, it will render the active profile (we’ll see what a profile is in the next section) to your peripherals. If it does not, it will render the “Desktop” application’s selected profile. +Each application can have one or more profiles, and each profile can have as many layers as you wish

    Profiles

    Profiles are a collection of layers that will be drawn to the keyboard whenever that application is currently open (and in the foreground). An application can have one or more profiles, but only one profile can be active at once. You can assign keys to each profile allowing you to switch between them when a specific button is pressed.

    To view the profiles for the currently selected application, click on the “Profiles” button in the list view buttons near the top left of the window. The list below this button will then show you all the profiles of the application. From here you can:

    Layers

    A Layer is an instruction for Aurora to set the color of some specific keys on your keyboard. Each layer has different functionality which is detailed in a later section of this guide. The layers are drawn from bottom-to-top, therefore anything higher up the list will take priority over the colors of anything lower down.

    Annoted picture of the Layer controls

    To show the layers list, click the “Layers” list view button that will be at the top left or bottom left of the window (depending on whether the profile list is open or not). A list will appear below this button showing you all your layers. From here you can:

    Overlay Layers

    Overlay layers are different from regular layers in that they appear whenever a particular process is running (or in the case of desktop overlay layers, always). For example, if you create a profile for Spotify and add a audio visualizer as an overlay, the visualizer will always appear whenever Spotify is open, regardless of whether you have it in the foreground or not.

    Note that the layers and overlay layers for a profile can be enabled/disabled independently. With the Spotify example, if you disable the regular layers for the profile but keep the overlay layers, your desktop profile will stay active when Spotify is in the foreground instead of going blank with only the overlay layers.

    Layer Properties

    Each layer will have a set of properties that you can change such as color or the keys it affects. This can be changed in the bottom right panel, the Properties Panel. The properties available to each layer are listed in the reference section of this guide that can be accessed in the navigation list.


    Page authored by \ No newline at end of file diff --git a/basic-topics/index.xml b/basic-topics/index.xml index f72e600..f0d4e3a 100644 --- a/basic-topics/index.xml +++ b/basic-topics/index.xml @@ -21,7 +21,7 @@ <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/overview.png?v=a71d2854f2395d41ca466dcae81079a8" alt="Annotated picture of the main Aurora UI" loading="lazy" height="714" width="1000" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/overview.png?v=0d6c136a5861664f79476cf8e81ad0be" alt="Annotated picture of the main Aurora UI" loading="lazy" height="714" width="1000" /> </picture> </p> <h1 id="applications">Applications</h1> diff --git a/basic-topics/installation/index.html b/basic-topics/installation/index.html index 62a6550..ed3a864 100644 --- a/basic-topics/installation/index.html +++ b/basic-topics/installation/index.html @@ -1,4 +1,4 @@ Installation • basic-topics • Aurora Docs

    Installation


    Last updated 16.01.2024

    To install Aurora, the easiest way is to download the installer from our GitHub page and simply run it.

    After this, you will find Aurora in your start menu. Opening the Aurora program will show you some simple steps you will need to take with detected existing RGB to allow Aurora to take priority when it needs to. It’s important you follows these steps otherwise Aurora may not work correctly.

    Dev Version

    The Aurora software is constantly evolving thanks to submissions from various contributors. Before these changes hit the main release, they are added to a special “dev” version of Aurora (after being bug-tested).

    If you would like to, it is possible to download the dev version to access some new additional features and bug fixes.

    Other Versions

    Since there are several contributors contributing to Aurora, there are several different branches of Aurora. A developer will often ask their branch to be tested by users, either through Discord or on a Pull Request on GitHub.

    Because of all the separate versions with different functionality, it is advisable NOT to install these versions using the exe, but instead to download the zip file and extract them to a place other than your main Aurora installation. Like with the dev version, it’s highly recommended to backup profiles and settings.

    Downloading a GitHub Pull Request

    A pull request is where a developer has made changes to Aurora and would like to merge these into the main Aurora release. These pull requests will contain a description of exactly what changes have been made and will automatically create a build of that version. This version will likely be based on a recent dev version of Aurora (as opposed to the main version).

    Once you have found a Pull Request you wish to download and test, you should be presented with a screen such as this.

    PR GitHub page

    Scroll down until you find a section with green ticks (a maybe red crosses). There should be an item that says “All checks have passed”. Next to this item, click on “Show all checks” button to reveal a small panel below this item. Click on the “Details” link. If you do not have an “All checks have passed” option, the automatic build process has failed and you will not be able to download a pre-built version.

    The panel that will take you to the build artefacts

    You should be taken to the website “AppVeyor” and should see a large blue block of text. Just above this text, click the “Artifacts” tab, and you will be presented with the built installer and ZIP file for that PR.

    The download link for the artefacts


    Page authored by
    \ No newline at end of file +Aurora User Docs

    Installation


    Last updated 16.01.2024

    To install Aurora, the easiest way is to download the installer from our GitHub page and simply run it.

    After this, you will find Aurora in your start menu. Opening the Aurora program will show you some simple steps you will need to take with detected existing RGB to allow Aurora to take priority when it needs to. It’s important you follows these steps otherwise Aurora may not work correctly.

    Dev Version

    The Aurora software is constantly evolving thanks to submissions from various contributors. Before these changes hit the main release, they are added to a special “dev” version of Aurora (after being bug-tested).

    If you would like to, it is possible to download the dev version to access some new additional features and bug fixes.

    Other Versions

    Since there are several contributors contributing to Aurora, there are several different branches of Aurora. A developer will often ask their branch to be tested by users, either through Discord or on a Pull Request on GitHub.

    Because of all the separate versions with different functionality, it is advisable NOT to install these versions using the exe, but instead to download the zip file and extract them to a place other than your main Aurora installation. Like with the dev version, it’s highly recommended to backup profiles and settings.

    Downloading a GitHub Pull Request

    A pull request is where a developer has made changes to Aurora and would like to merge these into the main Aurora release. These pull requests will contain a description of exactly what changes have been made and will automatically create a build of that version. This version will likely be based on a recent dev version of Aurora (as opposed to the main version).

    Once you have found a Pull Request you wish to download and test, you should be presented with a screen such as this.

    PR GitHub page

    Scroll down until you find a section with green ticks (a maybe red crosses). There should be an item that says “All checks have passed”. Next to this item, click on “Show all checks” button to reveal a small panel below this item. Click on the “Details” link. If you do not have an “All checks have passed” option, the automatic build process has failed and you will not be able to download a pre-built version.

    The panel that will take you to the build artefacts

    You should be taken to the website “AppVeyor” and should see a large blue block of text. Just above this text, click the “Artifacts” tab, and you will be presented with the built installer and ZIP file for that PR.

    The download link for the artefacts


    Page authored by
    \ No newline at end of file diff --git a/basic-topics/user-data/index.html b/basic-topics/user-data/index.html index c563178..3a9b16d 100644 --- a/basic-topics/user-data/index.html +++ b/basic-topics/user-data/index.html @@ -9,5 +9,5 @@ Clicking this button will open a window where you will be asked to save the profile as a JSON file. This JSON file can then be sent to other people who can import it into Aurora using the method described above.

    Automatic Backups

    Aurora creates new backup with each update at %APPDATA%/AuroraBackups. You can restore them by

    1. Removing %APPDATA%\Aurora folder
    2. Moving the version file to %appdata% and renaming it to Aurora

    Taking a Backup

    There may be times when it would be wise to take a backup of your entire Aurora data folder (for example when you are installing a test build of Aurora). -Doing this is a very simple matter of duplicating a folder.

    1. First, open up Windows file explorer.

    2. In the address bar, type %APPDATA% and press enter. This will take you to the folder where various installed programs can store data for your user account.

    3. There will be a folder called “Aurora” in here. Simply copy that folder to a different location (for example your Documents).

      Finding the Aurora user data directory

    4. Should you need to restore data that’s been backed up in the future, you can simply replace the same Aurora direction with the backup folder.

    Clearing User Data

    Clearing your user data may be required if you start using test versions of Aurora or need to downgrade your Aurora installation for whatever reason. +Doing this is a very simple matter of duplicating a folder.

    1. First, open up Windows file explorer.

    2. In the address bar, type %APPDATA% and press enter. This will take you to the folder where various installed programs can store data for your user account.

    3. There will be a folder called “Aurora” in here. Simply copy that folder to a different location (for example your Documents).

      Finding the Aurora user data directory

    4. Should you need to restore data that’s been backed up in the future, you can simply replace the same Aurora direction with the backup folder.

    Clearing User Data

    Clearing your user data may be required if you start using test versions of Aurora or need to downgrade your Aurora installation for whatever reason. To do this, you can simply delete (or rename/move if you intend to reuse to this data some time) the Aurora folder.

    1. First, ensure that you have closed Aurora. Aurora will write back some data from memory when it closes.
    2. Next, open up Windows file explorer and in the address bar, type %APPDATA% and press enter. This will take you to the roaming application data folder.
    3. There will be a folder called “Aurora” in here. Simply delete, move or rename that folder.
    4. When you next re-open Aurora, it will recreate all the necessary data with the default configuration: default settings, default profiles, etc.

    Page authored by \ No newline at end of file diff --git a/devices/corsair/index.html b/devices/corsair/index.html index 2456e7d..9e3dab8 100644 --- a/devices/corsair/index.html +++ b/devices/corsair/index.html @@ -1,4 +1,4 @@ Corsair • devices • Aurora Docs

    Corsair


    Last updated 27.01.2024

    You can use Aurora profiles and brand specific integrations (like Chroma and Lightsync) with Corsair devices using Aurora.

    Required Software

    • Corsair iCUE

    Needed configuration

    The SDK should come enabled by default when you install iCUE, but in case it doesn’t connect, make sure it is enabled.

    Turning on the SDK in Corsair iCUE

    Supported Devices

    All devices that a version of iCUE is supported.


    Page authored by
    \ No newline at end of file +Aurora User Docs

    Corsair


    Last updated 27.01.2024

    You can use Aurora profiles and brand specific integrations (like Chroma and Lightsync) with Corsair devices using Aurora.

    Required Software

    • Corsair iCUE

    Needed configuration

    The SDK should come enabled by default when you install iCUE, but in case it doesn’t connect, make sure it is enabled.

    Turning on the SDK in Corsair iCUE

    Supported Devices

    All devices that a version of iCUE is supported.


    Page authored by
    \ No newline at end of file diff --git a/devices/index.xml b/devices/index.xml index 3e60fa0..a9c5261 100644 --- a/devices/index.xml +++ b/devices/index.xml @@ -61,7 +61,7 @@ To change this behaviour, you must open the Aurora settings, get to the &ldq <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/icue-enable-sdk.png?v=a71d2854f2395d41ca466dcae81079a8" alt="Turning on the SDK in Corsair iCUE" loading="lazy" height="811" width="1280" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/icue-enable-sdk.png?v=0d6c136a5861664f79476cf8e81ad0be" alt="Turning on the SDK in Corsair iCUE" loading="lazy" height="811" width="1280" /> </picture> </p> <h1 id="supported-devices">Supported Devices</h1> @@ -106,7 +106,7 @@ Color updating is recommended to be disabled with supported games by setting a s <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/ghub-enable-sdk.png?v=a71d2854f2395d41ca466dcae81079a8" alt="Turning on the SDK in Logitech G HUB" loading="lazy" height="792" width="1138" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/ghub-enable-sdk.png?v=0d6c136a5861664f79476cf8e81ad0be" alt="Turning on the SDK in Logitech G HUB" loading="lazy" height="792" width="1138" /> </picture> </p> <h2 id="for-lgs">For LGS:</h2> @@ -135,7 +135,7 @@ Color updating is recommended to be disabled with supported games by setting a s <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/lgs-enable-sdk-1.png?v=a71d2854f2395d41ca466dcae81079a8" alt="Opening Settings in Logitech Gaming Software" loading="lazy" height="750" width="1006" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/lgs-enable-sdk-1.png?v=0d6c136a5861664f79476cf8e81ad0be" alt="Opening Settings in Logitech Gaming Software" loading="lazy" height="750" width="1006" /> </picture> </p>OpenRGBhttps://www.project-aurora.com/Docs/devices/openrgb/Mon, 01 Jan 0001 00:00:00 +0000https://www.project-aurora.com/Docs/devices/openrgb/<h1 id="required-software">Required Software</h1> <p><a href="https://openrgb.org/">OpenRGB</a></p> @@ -184,7 +184,7 @@ Color updating is recommended to be disabled with supported games by setting a s <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/enable-sse-app.png?v=a71d2854f2395d41ca466dcae81079a8" alt="Enabling custom app in SSE3" loading="lazy" height="1040" width="1920" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/enable-sse-app.png?v=0d6c136a5861664f79476cf8e81ad0be" alt="Enabling custom app in SSE3" loading="lazy" height="1040" width="1920" /> </picture> </p> <p>If you still cannot control your keyboard or mouse illumination, check if Color Special Event is enabled in Aurora applet in SSE.</p> @@ -210,7 +210,7 @@ Color updating is recommended to be disabled with supported games by setting a s <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/sse-special-event.png?v=a71d2854f2395d41ca466dcae81079a8" alt="Color Special Event in Aurora applet" loading="lazy" height="1040" width="1920" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/sse-special-event.png?v=0d6c136a5861664f79476cf8e81ad0be" alt="Color Special Event in Aurora applet" loading="lazy" height="1040" width="1920" /> </picture> </p> <h1 id="known-issues">Known Issues</h1> diff --git a/devices/logitech/index.html b/devices/logitech/index.html index 5093eba..613f7cd 100644 --- a/devices/logitech/index.html +++ b/devices/logitech/index.html @@ -1,6 +1,6 @@ Logitech • devices • Aurora Docs

    Logitech


    Last updated 27.01.2024

    You can use Aurora profiles and brand specific integrations (like Chroma) with Logitech devices using Aurora.

    Required Software

    One of:

    • Logitech Gaming Software 9.02.65+
    • Logitech G Hub

    Needed configuration

    The SDK should come enabled by default when you install LGS or GHUB, but in case it doesn’t connect, make sure it is enabled.

    For GHUB:

    Turning on the SDK in Logitech G HUB

    For LGS:

    1. Open Logitech Gaming Software and go into Settings

    Opening Settings in Logitech Gaming Software

    1. Enable Game Integration Settings

    Enabling Game Integration Settings in Logitech Gaming Software

    1. Open the Game Integration Configuration menu

    Opening the Game Integration Menu in Logitech Gaming Software

    1. Disable Conflicting Settings and Applets

    Disabling CS:GO in Logitech Gaming Software -Disabling DotA2 in Logitech Gaming Software

    Known issues

    Logitech device integration does not work when Lightsync Wrapper is enabled

    • Lightsync wrapper will be automatically disabled if Logitech software autorun is detected. -If you want to use Logitech devices with other brands and have Lightsync integration on all devices, you have to replace Logitech software with OpenRGB

    • G HUB can take a very long time to fully open and start receiving SDK requests. Because of this, on some systems Aurora tries to connect to G HUB before it has the chance to completely start. This causes any following connections to fail until both G HUB and Aurora are restarted. This can be fixed on boot by adding a delay to the task Aurora uses to startup. This can be done in the General Settings:

    Adding a delay to Aurora’s startup task

    • Sometimes G HUB will only display Aurora’s lighting when the window is open on the foreground. To fix this, setting the desktop profile to permanent may be needed.

    Setting the desktop profile as the persistent one in GHUB

    Supported Devices

    Keyboards

    All per-key RGB keyboards are supposed to work. These are confirmed keyboards:

    • G910
    • G410
    • G810
    • GPRO
    • G815
    • G513

    Mice

    All mice are supposed to work, these are confirmed mice:

    • G900
    • G502

    Mousepads

    Most other Logitech LIGHTSYNC devices should work fine, even if they don't have a layout available in Aurora. Simply choose a keyboard with the same layout!


    Page authored by
    \ No newline at end of file +Aurora User Docs

    Logitech


    Last updated 27.01.2024

    You can use Aurora profiles and brand specific integrations (like Chroma) with Logitech devices using Aurora.

    Required Software

    One of:

    • Logitech Gaming Software 9.02.65+
    • Logitech G Hub

    Needed configuration

    The SDK should come enabled by default when you install LGS or GHUB, but in case it doesn’t connect, make sure it is enabled.

    For GHUB:

    Turning on the SDK in Logitech G HUB

    For LGS:

    1. Open Logitech Gaming Software and go into Settings

    Opening Settings in Logitech Gaming Software

    1. Enable Game Integration Settings

    Enabling Game Integration Settings in Logitech Gaming Software

    1. Open the Game Integration Configuration menu

    Opening the Game Integration Menu in Logitech Gaming Software

    1. Disable Conflicting Settings and Applets

    Disabling CS:GO in Logitech Gaming Software +Disabling DotA2 in Logitech Gaming Software

    Known issues

    Logitech device integration does not work when Lightsync Wrapper is enabled

    • Lightsync wrapper will be automatically disabled if Logitech software autorun is detected. +If you want to use Logitech devices with other brands and have Lightsync integration on all devices, you have to replace Logitech software with OpenRGB

    • G HUB can take a very long time to fully open and start receiving SDK requests. Because of this, on some systems Aurora tries to connect to G HUB before it has the chance to completely start. This causes any following connections to fail until both G HUB and Aurora are restarted. This can be fixed on boot by adding a delay to the task Aurora uses to startup. This can be done in the General Settings:

    Adding a delay to Aurora’s startup task

    • Sometimes G HUB will only display Aurora’s lighting when the window is open on the foreground. To fix this, setting the desktop profile to permanent may be needed.

    Setting the desktop profile as the persistent one in GHUB

    Supported Devices

    Keyboards

    All per-key RGB keyboards are supposed to work. These are confirmed keyboards:

    • G910
    • G410
    • G810
    • GPRO
    • G815
    • G513

    Mice

    All mice are supposed to work, these are confirmed mice:

    • G900
    • G502

    Mousepads

    Most other Logitech LIGHTSYNC devices should work fine, even if they don't have a layout available in Aurora. Simply choose a keyboard with the same layout!


    Page authored by
    \ No newline at end of file diff --git a/devices/steelseries/index.html b/devices/steelseries/index.html index d5b2800..cabeb08 100644 --- a/devices/steelseries/index.html +++ b/devices/steelseries/index.html @@ -1,4 +1,4 @@ SteelSeries • devices • Aurora Docs

    SteelSeries


    Last updated 10.01.2024

    Required Software

    One of:

    • SteelSeries Engine 3
    • OpenRGB

    Needed configuration

    The SDK should be enabled by default, but in case it’s not, make sure the ‘Project Aurora’ custom application is enabled.

    Enabling custom app in SSE3

    If you still cannot control your keyboard or mouse illumination, check if Color Special Event is enabled in Aurora applet in SSE.

    Color Special Event in Aurora applet

    Known Issues

    Devices with number of zones other than 1, 2 or 12 are not fully supported (ex. Rival 600) - they may still work but not all zones can be controlled.

    Supported Devices

    Most devices supported by SteelSeries Engine. Notable exceptions are zone based keyboards like Apex M350 or Apex 3.


    Page authored by
    \ No newline at end of file +Aurora User Docs

    SteelSeries


    Last updated 10.01.2024

    Required Software

    One of:

    • SteelSeries Engine 3
    • OpenRGB

    Needed configuration

    The SDK should be enabled by default, but in case it’s not, make sure the ‘Project Aurora’ custom application is enabled.

    Enabling custom app in SSE3

    If you still cannot control your keyboard or mouse illumination, check if Color Special Event is enabled in Aurora applet in SSE.

    Color Special Event in Aurora applet

    Known Issues

    Devices with number of zones other than 1, 2 or 12 are not fully supported (ex. Rival 600) - they may still work but not all zones can be controlled.

    Supported Devices

    Most devices supported by SteelSeries Engine. Notable exceptions are zone based keyboards like Apex M350 or Apex 3.


    Page authored by
    \ No newline at end of file diff --git a/img/chroma_diagram.png b/img/diagrams/chroma_diagram.png similarity index 100% rename from img/chroma_diagram.png rename to img/diagrams/chroma_diagram.png diff --git a/img/diagrams/lfx_diagram.png b/img/diagrams/lfx_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..9e9135c8fc43e8333a58ee415bd662de03cd204a GIT binary patch literal 216796 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≧Txw@ZT}dnq-+o$i<}HT_|$ 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

    UgkzR8=qNr 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 Ya~;Ue#S}%Wc?ABHIntroduction on Aurora User Docshttps://www.project-aurora.com/Docs/Recent content in Introduction on Aurora User DocsHugoen-USAlienware LightFXhttps://www.project-aurora.com/Docs/integrations/lightfx/Mon, 01 Jan 0001 00:00:00 +0000https://www.project-aurora.com/Docs/integrations/lightfx/<p>You can use Lightsync integration with <a href="https://www.project-aurora.com/Docs/devices/alldevices/">all supported devices</a></p> +Introduction on Aurora User Docshttps://www.project-aurora.com/Docs/Recent content in Introduction on Aurora User DocsHugoen-USAlienware LightFXhttps://www.project-aurora.com/Docs/integrations/lightfx/Mon, 01 Jan 0001 00:00:00 +0000https://www.project-aurora.com/Docs/integrations/lightfx/<p> + + + + + + + + + + + + + + + + + + + + + <picture> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/diagrams/lfx_diagram.png?v=0d6c136a5861664f79476cf8e81ad0be" alt="Diagram showing Aurora &amp; LightFX integration" loading="lazy" height="280" width="711" /> +</picture> +</p> +<p>You can use Lightsync integration with <a href="https://www.project-aurora.com/Docs/devices/alldevices/">all supported devices</a> using Aurora</p> <p>You must install LightFX wrapper dll to the game directory from Aurora settings.</p> <blockquote> <p>Note that this is reverse engineered and may not work as the original.</p> @@ -49,7 +74,7 @@ <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-ambilight.png?v=a71d2854f2395d41ca466dcae81079a8" alt="Ambilight Layer in use on a dual-monitor setup with a white background on one and blue on the other" loading="lazy" height="241" width="725" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-ambilight.png?v=0d6c136a5861664f79476cf8e81ad0be" alt="Ambilight Layer in use on a dual-monitor setup with a white background on one and blue on the other" loading="lazy" height="241" width="725" /> </picture> </p>Animation Editorhttps://www.project-aurora.com/Docs/advanced-topics/animation-editor/Mon, 01 Jan 0001 00:00:00 +0000https://www.project-aurora.com/Docs/advanced-topics/animation-editor/<p>The <a href="https://www.project-aurora.com/Docs/reference-layers/animation/">Animation Layer</a> allows you to add your own custom animated effects to your peripheral lights. To edit this animation, the Animation Editor used. This is a powerful tool, and fairly easy to use once you understand how it works. As with all unfamiliar things however, it may be daunting at first.</p> <h1 id="concepts-and-definitions">Concepts and Definitions</h1> @@ -88,7 +113,7 @@ To change this behaviour, you must open the Aurora settings, get to the &ldq <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-equalizer.gif?v=a71d2854f2395d41ca466dcae81079a8" alt="An equalizer layer in gradient mode while playing a music track" loading="lazy" height="288" width="866" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-equalizer.gif?v=0d6c136a5861664f79476cf8e81ad0be" alt="An equalizer layer in gradient mode while playing a music track" loading="lazy" height="288" width="866" /> </picture> </p>Audio Visualizer Tweakshttps://www.project-aurora.com/Docs/advanced-topics/visualizer-output/Mon, 01 Jan 0001 00:00:00 +0000https://www.project-aurora.com/Docs/advanced-topics/visualizer-output/<p>The Audio Visualizer layer allows you to display a representation of whatever you&rsquo;re listening to on your RGB devices.</p> <h1 id="isolating-applications">Isolating applications</h1> @@ -116,7 +141,7 @@ To change this behaviour, you must open the Aurora settings, get to the &ldq <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-blinking.gif?v=a71d2854f2395d41ca466dcae81079a8" alt="A blinking layer with cyan and a random secondary color" loading="lazy" height="288" width="866" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-blinking.gif?v=0d6c136a5861664f79476cf8e81ad0be" alt="A blinking layer with cyan and a random secondary color" loading="lazy" height="288" width="866" /> </picture> </p> <h2 id="properties">Properties</h2> @@ -184,7 +209,7 @@ See their pages to see how they are configured.</p> <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-breathing.gif?v=a71d2854f2395d41ca466dcae81079a8" alt="A breathing layer with two random colors" loading="lazy" height="288" width="866" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-breathing.gif?v=0d6c136a5861664f79476cf8e81ad0be" alt="A breathing layer with two random colors" loading="lazy" height="288" width="866" /> </picture> </p> <h2 id="properties">Properties</h2> @@ -252,7 +277,7 @@ See their pages to see how they are configured.</p> <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/icue-enable-sdk.png?v=a71d2854f2395d41ca466dcae81079a8" alt="Turning on the SDK in Corsair iCUE" loading="lazy" height="811" width="1280" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/icue-enable-sdk.png?v=0d6c136a5861664f79476cf8e81ad0be" alt="Turning on the SDK in Corsair iCUE" loading="lazy" height="811" width="1280" /> </picture> </p> <h1 id="supported-devices">Supported Devices</h1> @@ -288,7 +313,7 @@ Color updating is recommended to be disabled with supported games by setting a s <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/overview.png?v=a71d2854f2395d41ca466dcae81079a8" alt="Annotated picture of the main Aurora UI" loading="lazy" height="714" width="1000" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/overview.png?v=0d6c136a5861664f79476cf8e81ad0be" alt="Annotated picture of the main Aurora UI" loading="lazy" height="714" width="1000" /> </picture> </p> <h1 id="applications">Applications</h1> @@ -315,7 +340,7 @@ Color updating is recommended to be disabled with supported games by setting a s <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-glitch.gif?v=a71d2854f2395d41ca466dcae81079a8" alt="" loading="lazy" height="288" width="866" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-glitch.gif?v=0d6c136a5861664f79476cf8e81ad0be" alt="" loading="lazy" height="288" width="866" /> </picture> </p> <h2 id="properties">Properties</h2> @@ -359,7 +384,7 @@ Color updating is recommended to be disabled with supported games by setting a s <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-gradient-fill.gif?v=a71d2854f2395d41ca466dcae81079a8" alt="A rainbow Gradient Fill Layer on the alphabetical keys of the keyboard" loading="lazy" height="288" width="866" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-gradient-fill.gif?v=0d6c136a5861664f79476cf8e81ad0be" alt="A rainbow Gradient Fill Layer on the alphabetical keys of the keyboard" loading="lazy" height="288" width="866" /> </picture> </p>Gradient Layerhttps://www.project-aurora.com/Docs/reference-layers/gradient/Mon, 01 Jan 0001 00:00:00 +0000https://www.project-aurora.com/Docs/reference-layers/gradient/<p>The Gradient Layer shows a gradient effect on the specified keys. The gradient can also be animated to move across the keyboard to give a wave effect. If it helps to understand how it works, you can imagine the gradient to be displayed on a (possibly moving) rectangle, and each key acts as a “window” onto that rectangle.</p> <p> @@ -384,7 +409,7 @@ Color updating is recommended to be disabled with supported games by setting a s <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-gradient.gif?v=a71d2854f2395d41ca466dcae81079a8" alt="A rainbow Gradient Layer on the alphabetical keys" loading="lazy" height="288" width="866" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-gradient.gif?v=0d6c136a5861664f79476cf8e81ad0be" alt="A rainbow Gradient Layer on the alphabetical keys" loading="lazy" height="288" width="866" /> </picture> </p> <h2 id="properties">Properties</h2> @@ -450,7 +475,7 @@ Color updating is recommended to be disabled with supported games by setting a s <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-image.png?v=a71d2854f2395d41ca466dcae81079a8" alt="An image layer displaying a picture of a landscape" loading="lazy" height="288" width="866" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-image.png?v=0d6c136a5861664f79476cf8e81ad0be" alt="An image layer displaying a picture of a landscape" loading="lazy" height="288" width="866" /> </picture> </p> <h2 id="properties">Properties</h2> @@ -501,7 +526,7 @@ Color updating is recommended to be disabled with supported games by setting a s <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-interactive.gif?v=a71d2854f2395d41ca466dcae81079a8" alt="Pressing keys on an interactive layer with key wave mode" loading="lazy" height="290" width="866" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-interactive.gif?v=0d6c136a5861664f79476cf8e81ad0be" alt="Pressing keys on an interactive layer with key wave mode" loading="lazy" height="290" width="866" /> </picture> </p> <h2 id="properties">Properties</h2> @@ -593,7 +618,7 @@ Color updating is recommended to be disabled with supported games by setting a s <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/ghub-enable-sdk.png?v=a71d2854f2395d41ca466dcae81079a8" alt="Turning on the SDK in Logitech G HUB" loading="lazy" height="792" width="1138" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/ghub-enable-sdk.png?v=0d6c136a5861664f79476cf8e81ad0be" alt="Turning on the SDK in Logitech G HUB" loading="lazy" height="792" width="1138" /> </picture> </p> <h2 id="for-lgs">For LGS:</h2> @@ -622,7 +647,7 @@ Color updating is recommended to be disabled with supported games by setting a s <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/lgs-enable-sdk-1.png?v=a71d2854f2395d41ca466dcae81079a8" alt="Opening Settings in Logitech Gaming Software" loading="lazy" height="750" width="1006" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/lgs-enable-sdk-1.png?v=0d6c136a5861664f79476cf8e81ad0be" alt="Opening Settings in Logitech Gaming Software" loading="lazy" height="750" width="1006" /> </picture> </p>Logitech Lightsynchttps://www.project-aurora.com/Docs/integrations/lightsync/Mon, 01 Jan 0001 00:00:00 +0000https://www.project-aurora.com/Docs/integrations/lightsync/<p> @@ -646,7 +671,7 @@ Color updating is recommended to be disabled with supported games by setting a s <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/lightsync_diagram.png?v=a71d2854f2395d41ca466dcae81079a8" alt="Diagram showing Aurora &amp; Lightsync integration" loading="lazy" height="280" width="721" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/diagrams/lightsync_diagram.png?v=0d6c136a5861664f79476cf8e81ad0be" alt="Diagram showing Aurora &amp; Lightsync integration" loading="lazy" height="280" width="721" /> </picture> </p> <p>You can use Lightsync integration with <a href="https://www.project-aurora.com/Docs/devices/alldevices/">all supported devices</a> using Aurora</p> @@ -710,7 +735,7 @@ Color updating is recommended to be disabled with supported games by setting a s <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-particle-fire.gif?v=a71d2854f2395d41ca466dcae81079a8" alt="A particle layer with the fire preset" loading="lazy" height="240" width="724" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-particle-fire.gif?v=0d6c136a5861664f79476cf8e81ad0be" alt="A particle layer with the fire preset" loading="lazy" height="240" width="724" /> </picture> @@ -735,7 +760,7 @@ Color updating is recommended to be disabled with supported games by setting a s <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-particle-matrix.gif?v=a71d2854f2395d41ca466dcae81079a8" alt="A particle layer with the matrix preset" loading="lazy" height="239" width="724" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-particle-matrix.gif?v=0d6c136a5861664f79476cf8e81ad0be" alt="A particle layer with the matrix preset" loading="lazy" height="239" width="724" /> </picture> </p>Percent (Gradient) Effect Layerhttps://www.project-aurora.com/Docs/reference-layers/percent-gradient-effect/Mon, 01 Jan 0001 00:00:00 +0000https://www.project-aurora.com/Docs/reference-layers/percent-gradient-effect/<p>This layer is very similar to the Percent Effect Layer, but makes use of a gradient instead of a progress/background color. This layer does not have a background.</p> <p> @@ -760,7 +785,7 @@ Color updating is recommended to be disabled with supported games by setting a s <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-percent-gradient-effect.gif?v=a71d2854f2395d41ca466dcae81079a8" alt="A gradient layer in progressive mode, with a red-green gradient assigned to the current millisecond" loading="lazy" height="288" width="866" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-percent-gradient-effect.gif?v=0d6c136a5861664f79476cf8e81ad0be" alt="A gradient layer in progressive mode, with a red-green gradient assigned to the current millisecond" loading="lazy" height="288" width="866" /> </picture> </p> <h2 id="properties">Properties</h2> @@ -831,7 +856,7 @@ Color updating is recommended to be disabled with supported games by setting a s <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-percent-effect.gif?v=a71d2854f2395d41ca466dcae81079a8" alt="A percent layer with current value set to the current time&rsquo;s milliseconds" loading="lazy" height="288" width="866" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-percent-effect.gif?v=0d6c136a5861664f79476cf8e81ad0be" alt="A percent layer with current value set to the current time&rsquo;s milliseconds" loading="lazy" height="288" width="866" /> </picture> </p> <h2 id="properties">Properties</h2> @@ -907,7 +932,7 @@ Color updating is recommended to be disabled with supported games by setting a s <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-radial.gif?v=a71d2854f2395d41ca466dcae81079a8" alt="A rainbow radial layer" loading="lazy" height="240" width="724" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-radial.gif?v=0d6c136a5861664f79476cf8e81ad0be" alt="A rainbow radial layer" loading="lazy" height="240" width="724" /> </picture> </p> <p>Note that this gradient is generated using discrete pie-shaped segments of colour. This color is determined by the median color at a particular point on the gradient. For example, if there were 4 segments, each would have a 90 degree arc. The first would use the color at 45 degrees (90 / 2) the second at 135 degrees, etc. If you do not get the colors you expect when using small numbers of segments, this is likely the reason.</p>Razerhttps://www.project-aurora.com/Docs/devices/razer/Mon, 01 Jan 0001 00:00:00 +0000https://www.project-aurora.com/Docs/devices/razer/<p>You can have brand specific integrations (like LightFX and Lightsync) with Razer devices using Aurora.</p> @@ -945,7 +970,7 @@ Color updating is recommended to be disabled with supported games by setting a s <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/chroma_diagram.png?v=a71d2854f2395d41ca466dcae81079a8" alt="Diagram showing Aurora Chroma integration" loading="lazy" height="350" width="691" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/diagrams/chroma_diagram.png?v=0d6c136a5861664f79476cf8e81ad0be" alt="Diagram showing Aurora Chroma integration" loading="lazy" height="350" width="691" /> </picture> </p> <p>You can use Chroma integration with <a href="https://www.project-aurora.com/Docs/devices/alldevices/">all supported devices</a> using Aurora</p> @@ -955,9 +980,7 @@ Color updating is recommended to be disabled with supported games by setting a s <p>You can have Synapse installed and Aurora will automatically apply game effects to your devices. Then, &ldquo;Razer Chroma SDK Service&rdquo; needs to be running for the integration to work.</p> <p><a href="https://www.razer.com/chroma-workshop#--games">Chrome Enabled Games List on www.razer.com</a></p> -<ul> -<li>RAZER is the trademark or registered trademark of Razer Inc.</li> -</ul>Repair WMIhttps://www.project-aurora.com/Docs/diagnostics/repair-wmi/Mon, 01 Jan 0001 00:00:00 +0000https://www.project-aurora.com/Docs/diagnostics/repair-wmi/<p>If this page opened automatically for you, you need to take action to repair your Windows.</p> +<p>You can use the &ldquo;Disable Device Control&rdquo; button in &ldquo;Devices &amp; Wrappers&rdquo; tab of Aurora to disable Chroma SDK from controlling Razer devices.</p>Repair WMIhttps://www.project-aurora.com/Docs/diagnostics/repair-wmi/Mon, 01 Jan 0001 00:00:00 +0000https://www.project-aurora.com/Docs/diagnostics/repair-wmi/<p>If this page opened automatically for you, you need to take action to repair your Windows.</p> <p>AuroraRGB needs Win32_Process class in WMI to work properly. Here you can follow the steps to fix it for Aurora and possibly other software.</p> <ol> @@ -999,7 +1022,7 @@ and rename the <strong>Repository</strong> folder to something else like R <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-shortcut.gif?v=a71d2854f2395d41ca466dcae81079a8" alt="A shortcut layer with common Ctrl and Ctrl + Shift shortcuts on top of a gradient layer" loading="lazy" height="288" width="866" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-shortcut.gif?v=0d6c136a5861664f79476cf8e81ad0be" alt="A shortcut layer with common Ctrl and Ctrl + Shift shortcuts on top of a gradient layer" loading="lazy" height="288" width="866" /> </picture> </p>Solid Color Layerhttps://www.project-aurora.com/Docs/reference-layers/solid-color/Mon, 01 Jan 0001 00:00:00 +0000https://www.project-aurora.com/Docs/reference-layers/solid-color/<p>The Solid Color Layer is for setting static colors for specific keys. The keys will constantly be lit in the given color (providing they aren’t overridden by a higher-up layer). This is one of the most simple layers in Aurora, but can be useful for things such as highlighting controls such as WASD in video games.</p> <p> @@ -1024,7 +1047,7 @@ and rename the <strong>Repository</strong> folder to something else like R <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-solid-color.png?v=a71d2854f2395d41ca466dcae81079a8" alt="A Solid Color Layer lighting common video game control keys" loading="lazy" height="288" width="866" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-solid-color.png?v=0d6c136a5861664f79476cf8e81ad0be" alt="A Solid Color Layer lighting common video game control keys" loading="lazy" height="288" width="866" /> </picture> </p> <p>If you want to set the color of the entire (or most) of the keyboard, consider using the <a href="https://www.project-aurora.com/Docs/reference-layers/solid-fill-color/">Solid Fill Color</a> Layer instead.</p>Solid Fill Color Layerhttps://www.project-aurora.com/Docs/reference-layers/solid-fill-color/Mon, 01 Jan 0001 00:00:00 +0000https://www.project-aurora.com/Docs/reference-layers/solid-fill-color/<p>Similar to the Solid Color layer, however it does not have fine control over which keys are lit and so fills the entire canvas (keyboard, mouse and any other peripherals) with the given color. This layer is useful for setting static backgrounds, saving you from having to manually add each key.</p> @@ -1050,7 +1073,7 @@ and rename the <strong>Repository</strong> folder to something else like R <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-solid-fill-color.png?v=a71d2854f2395d41ca466dcae81079a8" alt="A Solid Fill Layer setting the entire keyboard to cyan" loading="lazy" height="288" width="866" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-solid-fill-color.png?v=0d6c136a5861664f79476cf8e81ad0be" alt="A Solid Fill Layer setting the entire keyboard to cyan" loading="lazy" height="288" width="866" /> </picture> </p> <h2 id="properties">Properties</h2> @@ -1103,7 +1126,7 @@ and rename the <strong>Repository</strong> folder to something else like R <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/enable-sse-app.png?v=a71d2854f2395d41ca466dcae81079a8" alt="Enabling custom app in SSE3" loading="lazy" height="1040" width="1920" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/enable-sse-app.png?v=0d6c136a5861664f79476cf8e81ad0be" alt="Enabling custom app in SSE3" loading="lazy" height="1040" width="1920" /> </picture> </p> <p>If you still cannot control your keyboard or mouse illumination, check if Color Special Event is enabled in Aurora applet in SSE.</p> @@ -1129,7 +1152,7 @@ and rename the <strong>Repository</strong> folder to something else like R <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/sse-special-event.png?v=a71d2854f2395d41ca466dcae81079a8" alt="Color Special Event in Aurora applet" loading="lazy" height="1040" width="1920" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/sse-special-event.png?v=0d6c136a5861664f79476cf8e81ad0be" alt="Color Special Event in Aurora applet" loading="lazy" height="1040" width="1920" /> </picture> </p> <h1 id="known-issues">Known Issues</h1> @@ -1160,7 +1183,7 @@ and rename the <strong>Repository</strong> folder to something else like R <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-timer.gif?v=a71d2854f2395d41ca466dcae81079a8" alt="A timer layer on the alphabetical keys" loading="lazy" height="288" width="866" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-timer.gif?v=0d6c136a5861664f79476cf8e81ad0be" alt="A timer layer on the alphabetical keys" loading="lazy" height="288" width="866" /> </picture> </p>Toggle Key Layerhttps://www.project-aurora.com/Docs/reference-layers/toggle-key/Mon, 01 Jan 0001 00:00:00 +0000https://www.project-aurora.com/Docs/reference-layers/toggle-key/<p>The toggle key layer allows for the turning on or off some lights based on the key press of another specific key. This layer can be useful for things such as indicators for whether something is toggled on/off in a game.</p> <p><span class="alert info">If you are using caps lock, num lock or scroll lock as a trigger key it is probably better to use the Lock Layer to ensure the key light state stays synced with the lock state properly.</span></p>Toolbar Layerhttps://www.project-aurora.com/Docs/reference-layers/toolbar/Mon, 01 Jan 0001 00:00:00 +0000https://www.project-aurora.com/Docs/reference-layers/toolbar/<p>The toolbar layer is a layer that shows one key as “active” and all others assigned to it as “inactive”. When a different key is pressed, the pressed key becomes the active one instead. This works similarly to how toolbars/item bars work in video games such as Factorio or Minecraft.</p> diff --git a/integrations/chroma/index.html b/integrations/chroma/index.html index ce32836..b0f877d 100644 --- a/integrations/chroma/index.html +++ b/integrations/chroma/index.html @@ -1,5 +1,5 @@ How to Use Razer Chroma on Non-Razer Devices • Aurora Docs

    Razer Chroma


    Last updated 02.10.2024

    Diagram showing Aurora Chroma integration

    You can use Chroma integration with all supported devices using Aurora

    Note that this is reverse engineered and may not work as the original.

    You can have Synapse installed and Aurora will automatically apply game effects to your devices. -Then, “Razer Chroma SDK Service” needs to be running for the integration to work.

    Chrome Enabled Games List on www.razer.com

    • RAZER is the trademark or registered trademark of Razer Inc.

    Page authored by
    \ No newline at end of file +Aurora User Docs

    Razer Chroma


    Last updated 04.10.2024

    Diagram showing Aurora Chroma integration

    You can use Chroma integration with all supported devices using Aurora

    Note that this is reverse engineered and may not work as the original.

    You can have Synapse installed and Aurora will automatically apply game effects to your devices. +Then, “Razer Chroma SDK Service” needs to be running for the integration to work.

    Chrome Enabled Games List on www.razer.com

    You can use the “Disable Device Control” button in “Devices & Wrappers” tab of Aurora to disable Chroma SDK from controlling Razer devices.

    • RAZER is the trademark or registered trademark of Razer Inc.

    Page authored by
    \ No newline at end of file diff --git a/integrations/index.xml b/integrations/index.xml index a87ed87..016fb1c 100644 --- a/integrations/index.xml +++ b/integrations/index.xml @@ -1,4 +1,29 @@ -Brand Specific Game Integrations on Aurora User Docshttps://www.project-aurora.com/Docs/integrations/Recent content in Brand Specific Game Integrations on Aurora User DocsHugoen-USAlienware LightFXhttps://www.project-aurora.com/Docs/integrations/lightfx/Mon, 01 Jan 0001 00:00:00 +0000https://www.project-aurora.com/Docs/integrations/lightfx/<p>You can use Lightsync integration with <a href="https://www.project-aurora.com/Docs/devices/alldevices/">all supported devices</a></p> +Brand Specific Game Integrations on Aurora User Docshttps://www.project-aurora.com/Docs/integrations/Recent content in Brand Specific Game Integrations on Aurora User DocsHugoen-USAlienware LightFXhttps://www.project-aurora.com/Docs/integrations/lightfx/Mon, 01 Jan 0001 00:00:00 +0000https://www.project-aurora.com/Docs/integrations/lightfx/<p> + + + + + + + + + + + + + + + + + + + + + <picture> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/diagrams/lfx_diagram.png?v=0d6c136a5861664f79476cf8e81ad0be" alt="Diagram showing Aurora &amp; LightFX integration" loading="lazy" height="280" width="711" /> +</picture> +</p> +<p>You can use Lightsync integration with <a href="https://www.project-aurora.com/Docs/devices/alldevices/">all supported devices</a> using Aurora</p> <p>You must install LightFX wrapper dll to the game directory from Aurora settings.</p> <blockquote> <p>Note that this is reverse engineered and may not work as the original.</p> @@ -32,7 +57,7 @@ See their pages to see how they are configured.</p> <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/lightsync_diagram.png?v=a71d2854f2395d41ca466dcae81079a8" alt="Diagram showing Aurora &amp; Lightsync integration" loading="lazy" height="280" width="721" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/diagrams/lightsync_diagram.png?v=0d6c136a5861664f79476cf8e81ad0be" alt="Diagram showing Aurora &amp; Lightsync integration" loading="lazy" height="280" width="721" /> </picture> </p> <p>You can use Lightsync integration with <a href="https://www.project-aurora.com/Docs/devices/alldevices/">all supported devices</a> using Aurora</p> @@ -62,7 +87,7 @@ See their pages to see how they are configured.</p> <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/chroma_diagram.png?v=a71d2854f2395d41ca466dcae81079a8" alt="Diagram showing Aurora Chroma integration" loading="lazy" height="350" width="691" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/diagrams/chroma_diagram.png?v=0d6c136a5861664f79476cf8e81ad0be" alt="Diagram showing Aurora Chroma integration" loading="lazy" height="350" width="691" /> </picture> </p> <p>You can use Chroma integration with <a href="https://www.project-aurora.com/Docs/devices/alldevices/">all supported devices</a> using Aurora</p> @@ -72,6 +97,4 @@ See their pages to see how they are configured.</p> <p>You can have Synapse installed and Aurora will automatically apply game effects to your devices. Then, &ldquo;Razer Chroma SDK Service&rdquo; needs to be running for the integration to work.</p> <p><a href="https://www.razer.com/chroma-workshop#--games">Chrome Enabled Games List on www.razer.com</a></p> -<ul> -<li>RAZER is the trademark or registered trademark of Razer Inc.</li> -</ul> \ No newline at end of file +<p>You can use the &ldquo;Disable Device Control&rdquo; button in &ldquo;Devices &amp; Wrappers&rdquo; tab of Aurora to disable Chroma SDK from controlling Razer devices.</p> \ No newline at end of file diff --git a/integrations/lightfx/index.html b/integrations/lightfx/index.html index 816765f..5d6b0ff 100644 --- a/integrations/lightfx/index.html +++ b/integrations/lightfx/index.html @@ -1,4 +1,4 @@ Alienware LightFX • integrations • Aurora Docs

    Alienware LightFX


    Last updated 02.01.2024

    You can use Lightsync integration with all supported devices

    You must install LightFX wrapper dll to the game directory from Aurora settings.

    Note that this is reverse engineered and may not work as the original.


    Page authored by
    \ No newline at end of file +Aurora User Docs

    Alienware LightFX


    Last updated 04.10.2024

    Diagram showing Aurora & LightFX integration

    You can use Lightsync integration with all supported devices using Aurora

    You must install LightFX wrapper dll to the game directory from Aurora settings.

    Note that this is reverse engineered and may not work as the original.


    Page authored by
    \ No newline at end of file diff --git a/integrations/lightsync/index.html b/integrations/lightsync/index.html index e4bd722..7399536 100644 --- a/integrations/lightsync/index.html +++ b/integrations/lightsync/index.html @@ -1,4 +1,4 @@ How to Use Lightsync integration on Non-Logitech Devices • Aurora Docs

    Logitech Lightsync


    Last updated 02.10.2024

    Diagram showing Aurora & Lightsync integration

    You can use Lightsync integration with all supported devices using Aurora

    Note that this is reverse engineered and may not work as the original.

    You can have LGS installed and Aurora will automatically apply game effects to your devices.

    LGS must be fully closed before Aurora is launched.


    Page authored by
    \ No newline at end of file +Aurora User Docs

    Logitech Lightsync


    Last updated 04.10.2024

    Diagram showing Aurora & Lightsync integration

    You can use Lightsync integration with all supported devices using Aurora

    Note that this is reverse engineered and may not work as the original.

    You can have LGS installed and Aurora will automatically apply game effects to your devices.

    LGS must be fully closed before Aurora is launched.


    Page authored by
    \ No newline at end of file diff --git a/reference-expressions/maths/index.html b/reference-expressions/maths/index.html index 7b164e5..24ea088 100644 --- a/reference-expressions/maths/index.html +++ b/reference-expressions/maths/index.html @@ -1,4 +1,4 @@ Maths • reference-expressions • Aurora Docs

    Maths


    Last updated 10.01.2024

    This page lists all the standard evaluatables that are under the ‘Maths’ category.

    Absolute number

    Takes a number and outputs the absolute (positive) value. E.G. 5 outputs 5 (no change), but -10 would output 10.

    Arithmetic Comparison boolean

    Compares two numbers together and outputs a boolean indicating the result of the comparison. Can choose a comparison from: equal, not equal, less than, less than or equal, greater than, greater than or equal.

    Arithmetic Operation number

    Performs a binary operation on two numbers, such as: adding them together, subtracting one from the other, multiplying them together, dividing one by the other or finding the modulus (remainder of one when divided by the other).

    Lerp number

    Maps a value from one range onto it’s interpolated value in another range.

    For example, mapping the value 0.7 from a range of 0 to 1 onto the range of 50 to 100 would output 85. This is because 0.7 is 70% of the way between 0 and 1, and the number that is 70% of the way between 50 and 100 is 85.

    Number Change Detector boolean

    Outputs a true value on a frame whenever the value of the input number changes. If you require the boolean to be true for longer than a single frame, use this in conjunction with the true extender.

    Can also be set up to only output true when the value increases or decreases (instead of any change) and can also provide a minimum threshold that the change must be. For example, if you tick “Trigger on increase”, untick “Trigger on decrease” and set the threshold to 5, the only time a true will be output is when the current value of the number is 5 or higher more than the value it was last frame.

    Number Constant number

    Constantly outputs the specified number.

    Wave Function number

    Creates a wave output based on the given input.

    Note that all waves are normalized to accept a value in the range 0 - 1 and also output a value in the range 0 - 1.

    Sine

    Triangle


    Page authored by
    \ No newline at end of file +Aurora User Docs

    Maths


    Last updated 10.01.2024

    This page lists all the standard evaluatables that are under the ‘Maths’ category.

    Absolute number

    Takes a number and outputs the absolute (positive) value. E.G. 5 outputs 5 (no change), but -10 would output 10.

    Arithmetic Comparison boolean

    Compares two numbers together and outputs a boolean indicating the result of the comparison. Can choose a comparison from: equal, not equal, less than, less than or equal, greater than, greater than or equal.

    Arithmetic Operation number

    Performs a binary operation on two numbers, such as: adding them together, subtracting one from the other, multiplying them together, dividing one by the other or finding the modulus (remainder of one when divided by the other).

    Lerp number

    Maps a value from one range onto it’s interpolated value in another range.

    For example, mapping the value 0.7 from a range of 0 to 1 onto the range of 50 to 100 would output 85. This is because 0.7 is 70% of the way between 0 and 1, and the number that is 70% of the way between 50 and 100 is 85.

    Number Change Detector boolean

    Outputs a true value on a frame whenever the value of the input number changes. If you require the boolean to be true for longer than a single frame, use this in conjunction with the true extender.

    Can also be set up to only output true when the value increases or decreases (instead of any change) and can also provide a minimum threshold that the change must be. For example, if you tick “Trigger on increase”, untick “Trigger on decrease” and set the threshold to 5, the only time a true will be output is when the current value of the number is 5 or higher more than the value it was last frame.

    Number Constant number

    Constantly outputs the specified number.

    Wave Function number

    Creates a wave output based on the given input.

    Note that all waves are normalized to accept a value in the range 0 - 1 and also output a value in the range 0 - 1.

    Sine

    Triangle


    Page authored by
    \ No newline at end of file diff --git a/reference-layers/ambilight/index.html b/reference-layers/ambilight/index.html index 19808ac..80fa6a4 100644 --- a/reference-layers/ambilight/index.html +++ b/reference-layers/ambilight/index.html @@ -1,4 +1,4 @@ Ambilight Layer • reference-layers • Aurora Docs

    Ambilight Layer


    Last updated 10.01.2024

    The ambilight layer takes the average color of the monitor (or specific areas of the monitor) and displays them on the keys.

    This can be a very intensive operation and so may not perform well on all machines. You may find that Aurora is lagging or using too much CPU when you use one of these layers.

    Ambilight Layer in use on a dual-monitor setup with a white background on one and blue on the other

    Properties

    NameDescription
    Ambilight Effect Type
    • Default - Takes the image from the target and sets the keys to the color at points on that image (see above for an example).
    • Average Color - Takes the entire image and gets the average color of the image and sets all keys to be that color.
    Ambilight Capture Type
    • Everything - Takes entire screen output (including multiple monitors if you have them).
    • Main Monitor Only - Takes screen output only from the monitor designated as number 1.
    • Foreground Application - Takes output from whichever application currently has focus.
    • Specific Process - Takes output only from the process with the specified name.
    Specific Process NameUsed with Capture Type "Specific Process" to restrict the ambilight layer to only use output from a specific application.

    Page authored by
    \ No newline at end of file +Aurora User Docs

    Ambilight Layer


    Last updated 10.01.2024

    The ambilight layer takes the average color of the monitor (or specific areas of the monitor) and displays them on the keys.

    This can be a very intensive operation and so may not perform well on all machines. You may find that Aurora is lagging or using too much CPU when you use one of these layers.

    Ambilight Layer in use on a dual-monitor setup with a white background on one and blue on the other

    Properties

    NameDescription
    Ambilight Effect Type
    • Default - Takes the image from the target and sets the keys to the color at points on that image (see above for an example).
    • Average Color - Takes the entire image and gets the average color of the image and sets all keys to be that color.
    Ambilight Capture Type
    • Everything - Takes entire screen output (including multiple monitors if you have them).
    • Main Monitor Only - Takes screen output only from the monitor designated as number 1.
    • Foreground Application - Takes output from whichever application currently has focus.
    • Specific Process - Takes output only from the process with the specified name.
    Specific Process NameUsed with Capture Type "Specific Process" to restrict the ambilight layer to only use output from a specific application.

    Page authored by
    \ No newline at end of file diff --git a/reference-layers/animation/index.html b/reference-layers/animation/index.html index a302602..ca7e9d4 100644 --- a/reference-layers/animation/index.html +++ b/reference-layers/animation/index.html @@ -1,4 +1,4 @@ Animation Layer • reference-layers • Aurora Docs

    Animation Layer


    Last updated 10.01.2024

    The animation layer is another very powerful but very complex and hard-to-use layer. It allows for you to create custom animations using shapes and by creating key-frames in the animation editor. There is a basic guide on how to create animations here.

    This layer can also be triggered when certain events happen. You can select it for when a game-state value changes or when you press/release a key. When in a key-mode, the animation can optionally be translated to the location of the pressed key. This basically provides a means of creating a custom interactive layer if you don’t like that layer’s default effects.

    An very basic example animation that has a rectangle that grows in width, then in height

    Properties

    NameDescription
    Display Only on Key Sequence KeysIf this is selected, the animation will only be displayed on the keys in the Affect Keys list.
    Scale to Key Sequence boundsIf this is checked, the animation bitmap will be scaled and translated so that it covers the keys in the Affected Keys list.
    Affected KeysIf Display Only on Key Sequence Keys is checked, the animation will only be displayed on these keys.
    Animation DurationThe length of time an animation takes to play. If you do not set this value high enough, the animation will appear to be cut off as it ends too early.
    Repeat TimesThe amount of times the animation will repeat. If set to 0, it will repeat indefinitely. When the trigger is not “Always on”, this should not be set to 0 as once triggered the animation will carry on forever.
    TriggerThis option is how you set when the animations should be played. The sub-properties for each of these trigger modes are detailed in the tabs below. “Always On” does not have any additional properties.

    Value Change Trigger Properties

    NameDescription
    Trigger pathA path to a number State Variable that should be watched for the value to change.
    Stack modeWhat should happen if the state variable changes again while an animation is already playing.
    • Ignore - The currently playing animation will keep playing as if nothing happened.
    • Restart - Restart the currently playing animation.
    • Play Multiple - Play another instance of the animation in addition to the currently running one.

    Boolean Change Trigger Properties

    NameDescription
    Trigger pathA path to a boolean State Variable that should be watched for it to either become true, become false or run while true.
    Stack modeWhat should happen if the state variable changes again while an animation is already playing.
    • Ignore - The currently playing animation will keep playing as if nothing happened.
    • Restart - Restart the currently playing animation.
    • Play Multiple - Play another instance of the animation in addition to the currently running one.

    Key Trigger Properties

    NameDescription
    Trigger for any keyIf this is checked, any key press will trigger an animation. If unchecked, only the keys in Trigger Keys will cause an animation to play.
    Translate to pressed keyIf this is checked, the animation's origin point (0, 0) (top left) will be translated to the center point of the pressed key.
    Trigger keysThe keys that should trigger an animation. Not needed if Trigger for any Key is checked.
    Stack modeWhat should happen if the state variable changes again while an animation is already playing.
    • Ignore - The currently playing animation will keep playing as if nothing happened.
    • Restart - Restart the currently playing animation.
    • Play Multiple - Play another instance of the animation in addition to the currently running one.
    Stop as soon as key releasedIf this is checked, the animation will immediately stop when the key is released. I.E. it will not wait for the animation to finish playing.

    Page authored by
    \ No newline at end of file +Aurora User Docs

    Animation Layer


    Last updated 10.01.2024

    The animation layer is another very powerful but very complex and hard-to-use layer. It allows for you to create custom animations using shapes and by creating key-frames in the animation editor. There is a basic guide on how to create animations here.

    This layer can also be triggered when certain events happen. You can select it for when a game-state value changes or when you press/release a key. When in a key-mode, the animation can optionally be translated to the location of the pressed key. This basically provides a means of creating a custom interactive layer if you don’t like that layer’s default effects.

    An very basic example animation that has a rectangle that grows in width, then in height

    Properties

    NameDescription
    Display Only on Key Sequence KeysIf this is selected, the animation will only be displayed on the keys in the Affect Keys list.
    Scale to Key Sequence boundsIf this is checked, the animation bitmap will be scaled and translated so that it covers the keys in the Affected Keys list.
    Affected KeysIf Display Only on Key Sequence Keys is checked, the animation will only be displayed on these keys.
    Animation DurationThe length of time an animation takes to play. If you do not set this value high enough, the animation will appear to be cut off as it ends too early.
    Repeat TimesThe amount of times the animation will repeat. If set to 0, it will repeat indefinitely. When the trigger is not “Always on”, this should not be set to 0 as once triggered the animation will carry on forever.
    TriggerThis option is how you set when the animations should be played. The sub-properties for each of these trigger modes are detailed in the tabs below. “Always On” does not have any additional properties.

    Value Change Trigger Properties

    NameDescription
    Trigger pathA path to a number State Variable that should be watched for the value to change.
    Stack modeWhat should happen if the state variable changes again while an animation is already playing.
    • Ignore - The currently playing animation will keep playing as if nothing happened.
    • Restart - Restart the currently playing animation.
    • Play Multiple - Play another instance of the animation in addition to the currently running one.

    Boolean Change Trigger Properties

    NameDescription
    Trigger pathA path to a boolean State Variable that should be watched for it to either become true, become false or run while true.
    Stack modeWhat should happen if the state variable changes again while an animation is already playing.
    • Ignore - The currently playing animation will keep playing as if nothing happened.
    • Restart - Restart the currently playing animation.
    • Play Multiple - Play another instance of the animation in addition to the currently running one.

    Key Trigger Properties

    NameDescription
    Trigger for any keyIf this is checked, any key press will trigger an animation. If unchecked, only the keys in Trigger Keys will cause an animation to play.
    Translate to pressed keyIf this is checked, the animation's origin point (0, 0) (top left) will be translated to the center point of the pressed key.
    Trigger keysThe keys that should trigger an animation. Not needed if Trigger for any Key is checked.
    Stack modeWhat should happen if the state variable changes again while an animation is already playing.
    • Ignore - The currently playing animation will keep playing as if nothing happened.
    • Restart - Restart the currently playing animation.
    • Play Multiple - Play another instance of the animation in addition to the currently running one.
    Stop as soon as key releasedIf this is checked, the animation will immediately stop when the key is released. I.E. it will not wait for the animation to finish playing.

    Page authored by
    \ No newline at end of file diff --git a/reference-layers/audio-visualizer/index.html b/reference-layers/audio-visualizer/index.html index 241907a..49db79b 100644 --- a/reference-layers/audio-visualizer/index.html +++ b/reference-layers/audio-visualizer/index.html @@ -1,4 +1,4 @@ Audio Visualizer Layer • reference-layers • Aurora Docs

    Audio Visualizer Layer


    Last updated 10.01.2024

    This layer takes in audio data from your computer and visualizes the volume at various frequencies. There are many different customization options for this layer including which frequencies should be detected. Which frequencies are best depends on the type of audio you expect to be playing (rock will be different from classical) but the default frequencies provide a good starting point.

    An equalizer layer in gradient mode while playing a music track

    Properties

    NameDescription
    Equalizer Effect Type
    • Power Bars
    • Waveform
    • Waveform (From bottom)
    View Type
    • Solid Color - The waveform/bars are displayed in a single color (Primary Color)
    • Alternating Colors - Each bar alternates between Primary and Secondary color.
    • Gradient Notched Color - Each bar is a single color based on the Gradient provided.
    • Gradient Color Shift - The whole waveform is a single color as given by the gradient. The color gradually changes over time.
    • Gradient (Horizontal) - The waveform is colored as the Gradient provided.
    • Gradient (Vertical) - The waveform is colored as the Gradient provided vertically.
    Primary ColorThe color used when View Type is "Solid Color" or used for every other bar when View Type is "Alternating Colors".
    Secondary ColorThe color used for every other bar when View Type is "Alternating Colors".
    GradientThe gradient used when View Type isn't "Solid Color" or "Alternating Colors".
    Max AmplitudeThe value that will be used as the maximum value of the waveform. If the bars frequently clip off the top/bottom of the bitmap, try decreasing this value.
    Scale with System VolumeWhether or not the max amplitude should automatically scale with the system volume.
    Dim Background on SoundIf this is selected, when a sound is played the Dim Color will be used to dim the background.
    Dim ColorThe color used to dim the background by when Dim Background on Sound is selected.
    FrequenciesA list of all frequencies that will be represented by bars when the Effect Type is set to "Power Bars". You may need to tweak or add/remove this values to get the best experience depending on the type of audio you expect to be played.

    Page authored by
    \ No newline at end of file +Aurora User Docs

    Audio Visualizer Layer


    Last updated 10.01.2024

    This layer takes in audio data from your computer and visualizes the volume at various frequencies. There are many different customization options for this layer including which frequencies should be detected. Which frequencies are best depends on the type of audio you expect to be playing (rock will be different from classical) but the default frequencies provide a good starting point.

    An equalizer layer in gradient mode while playing a music track

    Properties

    NameDescription
    Equalizer Effect Type
    • Power Bars
    • Waveform
    • Waveform (From bottom)
    View Type
    • Solid Color - The waveform/bars are displayed in a single color (Primary Color)
    • Alternating Colors - Each bar alternates between Primary and Secondary color.
    • Gradient Notched Color - Each bar is a single color based on the Gradient provided.
    • Gradient Color Shift - The whole waveform is a single color as given by the gradient. The color gradually changes over time.
    • Gradient (Horizontal) - The waveform is colored as the Gradient provided.
    • Gradient (Vertical) - The waveform is colored as the Gradient provided vertically.
    Primary ColorThe color used when View Type is "Solid Color" or used for every other bar when View Type is "Alternating Colors".
    Secondary ColorThe color used for every other bar when View Type is "Alternating Colors".
    GradientThe gradient used when View Type isn't "Solid Color" or "Alternating Colors".
    Max AmplitudeThe value that will be used as the maximum value of the waveform. If the bars frequently clip off the top/bottom of the bitmap, try decreasing this value.
    Scale with System VolumeWhether or not the max amplitude should automatically scale with the system volume.
    Dim Background on SoundIf this is selected, when a sound is played the Dim Color will be used to dim the background.
    Dim ColorThe color used to dim the background by when Dim Background on Sound is selected.
    FrequenciesA list of all frequencies that will be represented by bars when the Effect Type is set to "Power Bars". You may need to tweak or add/remove this values to get the best experience depending on the type of audio you expect to be played.

    Page authored by
    \ No newline at end of file diff --git a/reference-layers/blinking/index.html b/reference-layers/blinking/index.html index 7e59b04..c6a76ef 100644 --- a/reference-layers/blinking/index.html +++ b/reference-layers/blinking/index.html @@ -1,4 +1,4 @@ Blinking Layer • reference-layers • Aurora Docs

    Blinking Layer


    Last updated 10.01.2024

    The blinking layer sets the colors of the specified keys to flash between two alternatives, with no fading between the colors. Like to the breathing layer, it allows either or both of these colors to be randomized if you wish.

    A blinking layer with cyan and a random secondary color

    Properties

    NameDescription
    Primary ColorThe solid color to set all the affected keys to during the first phase.
    Use Random PrimaryTick this to use a random color during first phase instead of Primary Color.
    Secondary ColorThe solid color to set all the affected keys to during the second phase.
    Use Random SecondaryTick this to use a random color during second phase instead of Secondary Color.
    Effect SpeedHow fast the keys swap between primary and secondary colors.
    Affected KeysA collection of keys that will be set to the target color.

    Page authored by
    \ No newline at end of file +Aurora User Docs

    Blinking Layer


    Last updated 10.01.2024

    The blinking layer sets the colors of the specified keys to flash between two alternatives, with no fading between the colors. Like to the breathing layer, it allows either or both of these colors to be randomized if you wish.

    A blinking layer with cyan and a random secondary color

    Properties

    NameDescription
    Primary ColorThe solid color to set all the affected keys to during the first phase.
    Use Random PrimaryTick this to use a random color during first phase instead of Primary Color.
    Secondary ColorThe solid color to set all the affected keys to during the second phase.
    Use Random SecondaryTick this to use a random color during second phase instead of Secondary Color.
    Effect SpeedHow fast the keys swap between primary and secondary colors.
    Affected KeysA collection of keys that will be set to the target color.

    Page authored by
    \ No newline at end of file diff --git a/reference-layers/breathing/index.html b/reference-layers/breathing/index.html index bfa5775..699a700 100644 --- a/reference-layers/breathing/index.html +++ b/reference-layers/breathing/index.html @@ -1,4 +1,4 @@ Breathing Layer • reference-layers • Aurora Docs

    Breathing Layer


    Last updated 10.01.2024

    The breathing layer fades the colors of the specified keys between two colors. In that regard it is similar to the Gradient Fill Layer, however this layer also allows the colors to be randomized, so that the keyboard fades between unpredictable colors.

    A breathing layer with two random colors

    Properties

    NameDescription
    Primary ColorThe solid color to set all the affected keys to during the first phase.
    Use Random PrimaryTick this to use a random color during first phase instead of Primary Color.
    Secondary ColorThe solid color to set all the affected keys to during the second phase.
    Use Random SecondaryTick this to use a random color during second phase instead of Secondary Color.
    Effect SpeedHow fast the keys swap between primary and secondary colors.
    Affected KeysA collection of keys that will be set to the target color.

    Page authored by
    \ No newline at end of file +Aurora User Docs

    Breathing Layer


    Last updated 10.01.2024

    The breathing layer fades the colors of the specified keys between two colors. In that regard it is similar to the Gradient Fill Layer, however this layer also allows the colors to be randomized, so that the keyboard fades between unpredictable colors.

    A breathing layer with two random colors

    Properties

    NameDescription
    Primary ColorThe solid color to set all the affected keys to during the first phase.
    Use Random PrimaryTick this to use a random color during first phase instead of Primary Color.
    Secondary ColorThe solid color to set all the affected keys to during the second phase.
    Use Random SecondaryTick this to use a random color during second phase instead of Secondary Color.
    Effect SpeedHow fast the keys swap between primary and secondary colors.
    Affected KeysA collection of keys that will be set to the target color.

    Page authored by
    \ No newline at end of file diff --git a/reference-layers/glitch-effect/index.html b/reference-layers/glitch-effect/index.html index 3ca802b..9bd49af 100644 --- a/reference-layers/glitch-effect/index.html +++ b/reference-layers/glitch-effect/index.html @@ -1,4 +1,4 @@ Glitch Effect Layer • reference-layers • Aurora Docs

    Glitch Effect Layer


    Last updated 10.01.2024

    The glitch layer simply randomizes each key’s color every time it updates. The frequency of the update is configurable.

    Properties

    NameDescription
    Update IntervalThe time in seconds between the key’s randomization.
    Allow TransparencyIf true, the random color may be transparent.

    Page authored by
    \ No newline at end of file +Aurora User Docs

    Glitch Effect Layer


    Last updated 10.01.2024

    The glitch layer simply randomizes each key’s color every time it updates. The frequency of the update is configurable.

    Properties

    NameDescription
    Update IntervalThe time in seconds between the key’s randomization.
    Allow TransparencyIf true, the random color may be transparent.

    Page authored by
    \ No newline at end of file diff --git a/reference-layers/gradient-fill/index.html b/reference-layers/gradient-fill/index.html index bd090b6..428d14e 100644 --- a/reference-layers/gradient-fill/index.html +++ b/reference-layers/gradient-fill/index.html @@ -1,4 +1,4 @@ Gradient Fill Layer • reference-layers • Aurora Docs

    Gradient Fill Layer


    Last updated 10.01.2024

    This layer sets all the specified keys to the same color, determined by the gradient. Unlike the regular gradient layer, all keys are the same color. You can think of the gradient as being a “timeline”, and the colors of all the keys are set based on how far through the timeline we are. This can be used to create a fade effect between multiple different colors.

    A rainbow Gradient Fill Layer on the alphabetical keys of the keyboard

    Properties

    NameDescription
    GradientThe gradient that will be used to set the keys’ color to.
    Effect SpeedThe speed that the colors of the keys change. Higher = faster.
    Fill keyboard canvasTick this to fill the whole keyboard with the gradient instead of the affected keys.
    Affected KeysA collection of keys that will be set to the target color.

    Page authored by
    \ No newline at end of file +Aurora User Docs

    Gradient Fill Layer


    Last updated 10.01.2024

    This layer sets all the specified keys to the same color, determined by the gradient. Unlike the regular gradient layer, all keys are the same color. You can think of the gradient as being a “timeline”, and the colors of all the keys are set based on how far through the timeline we are. This can be used to create a fade effect between multiple different colors.

    A rainbow Gradient Fill Layer on the alphabetical keys of the keyboard

    Properties

    NameDescription
    GradientThe gradient that will be used to set the keys’ color to.
    Effect SpeedThe speed that the colors of the keys change. Higher = faster.
    Fill keyboard canvasTick this to fill the whole keyboard with the gradient instead of the affected keys.
    Affected KeysA collection of keys that will be set to the target color.

    Page authored by
    \ No newline at end of file diff --git a/reference-layers/gradient/index.html b/reference-layers/gradient/index.html index 642c82e..08b8bb0 100644 --- a/reference-layers/gradient/index.html +++ b/reference-layers/gradient/index.html @@ -1,4 +1,4 @@ Gradient Layer • reference-layers • Aurora Docs

    Gradient Layer


    Last updated 10.01.2024

    The Gradient Layer shows a gradient effect on the specified keys. The gradient can also be animated to move across the keyboard to give a wave effect. If it helps to understand how it works, you can imagine the gradient to be displayed on a (possibly moving) rectangle, and each key acts as a “window” onto that rectangle.

    A rainbow Gradient Layer on the alphabetical keys

    Properties

    NameDescription
    GradientThe solid color to set all the affected keys to.
    Effect SpeedThe speed at which the animation (as given by Animation Type) moves.
    Effect AngleThe angle of the gradient.
    Animation Type
    • None - No animation, static gradient.
    • Translate X and Y - Moves the gradient X and Y (depending on angle).
    • (Radial only) Zoom In
    • (Radial only) Zoom Out
    Reverse DirectionWhether or not to reverse the direction the gradient animation plays.
    Affected KeysA collection of keys that will be set to the above solid color.

    Page authored by
    \ No newline at end of file +Aurora User Docs

    Gradient Layer


    Last updated 10.01.2024

    The Gradient Layer shows a gradient effect on the specified keys. The gradient can also be animated to move across the keyboard to give a wave effect. If it helps to understand how it works, you can imagine the gradient to be displayed on a (possibly moving) rectangle, and each key acts as a “window” onto that rectangle.

    A rainbow Gradient Layer on the alphabetical keys

    Properties

    NameDescription
    GradientThe solid color to set all the affected keys to.
    Effect SpeedThe speed at which the animation (as given by Animation Type) moves.
    Effect AngleThe angle of the gradient.
    Animation Type
    • None - No animation, static gradient.
    • Translate X and Y - Moves the gradient X and Y (depending on angle).
    • (Radial only) Zoom In
    • (Radial only) Zoom Out
    Reverse DirectionWhether or not to reverse the direction the gradient animation plays.
    Affected KeysA collection of keys that will be set to the above solid color.

    Page authored by
    \ No newline at end of file diff --git a/reference-layers/image/index.html b/reference-layers/image/index.html index e6129b7..171c1b4 100644 --- a/reference-layers/image/index.html +++ b/reference-layers/image/index.html @@ -1,4 +1,4 @@ Image Layer • reference-layers • Aurora Docs

    Image Layer


    Last updated 10.01.2024

    The image layer takes an image saved on your computer and attempts to replicate it on the keyboard by averaging the nearby color at different points. Obviously one should not expect to get the same fidelity you would get with a high-res image, but some images can provide nice effects. In addition, Aurora supports the use of animated GIF images.

    An image layer displaying a picture of a landscape

    Properties

    NameDescription
    Selected ImageThe file path to the image you wish to display.
    Affected KeysThe collection of keys that will be set to colors that imitate the given image.

    Page authored by
    \ No newline at end of file +Aurora User Docs

    Image Layer


    Last updated 10.01.2024

    The image layer takes an image saved on your computer and attempts to replicate it on the keyboard by averaging the nearby color at different points. Obviously one should not expect to get the same fidelity you would get with a high-res image, but some images can provide nice effects. In addition, Aurora supports the use of animated GIF images.

    An image layer displaying a picture of a landscape

    Properties

    NameDescription
    Selected ImageThe file path to the image you wish to display.
    Affected KeysThe collection of keys that will be set to colors that imitate the given image.

    Page authored by
    \ No newline at end of file diff --git a/reference-layers/index.xml b/reference-layers/index.xml index f33fab4..2b28c22 100644 --- a/reference-layers/index.xml +++ b/reference-layers/index.xml @@ -22,7 +22,7 @@ <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-ambilight.png?v=a71d2854f2395d41ca466dcae81079a8" alt="Ambilight Layer in use on a dual-monitor setup with a white background on one and blue on the other" loading="lazy" height="241" width="725" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-ambilight.png?v=0d6c136a5861664f79476cf8e81ad0be" alt="Ambilight Layer in use on a dual-monitor setup with a white background on one and blue on the other" loading="lazy" height="241" width="725" /> </picture> </p>
    Animation Layerhttps://www.project-aurora.com/Docs/reference-layers/animation/Mon, 01 Jan 0001 00:00:00 +0000https://www.project-aurora.com/Docs/reference-layers/animation/<p>The animation layer is another very powerful but very complex and hard-to-use layer. It allows for you to create custom animations using shapes and by creating key-frames in the animation editor. There is a basic guide on how to create animations <a href="https://www.project-aurora.com/Docs/advanced-topics/animation-editor/">here</a>.</p> <p>This layer can also be triggered when certain events happen. You can select it for when a game-state value changes or when you press/release a key. When in a key-mode, the animation can optionally be translated to the location of the pressed key. This basically provides a means of creating a custom interactive layer if you don’t like that layer’s default effects.</p>Audio Visualizer Layerhttps://www.project-aurora.com/Docs/reference-layers/audio-visualizer/Mon, 01 Jan 0001 00:00:00 +0000https://www.project-aurora.com/Docs/reference-layers/audio-visualizer/<p>This layer takes in audio data from your computer and visualizes the volume at various frequencies. There are many different customization options for this layer including which frequencies should be detected. Which frequencies are best depends on the type of audio you expect to be playing (rock will be different from classical) but the default frequencies provide a good starting point.</p> @@ -48,7 +48,7 @@ <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-equalizer.gif?v=a71d2854f2395d41ca466dcae81079a8" alt="An equalizer layer in gradient mode while playing a music track" loading="lazy" height="288" width="866" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-equalizer.gif?v=0d6c136a5861664f79476cf8e81ad0be" alt="An equalizer layer in gradient mode while playing a music track" loading="lazy" height="288" width="866" /> </picture> </p>Blinking Layerhttps://www.project-aurora.com/Docs/reference-layers/blinking/Mon, 01 Jan 0001 00:00:00 +0000https://www.project-aurora.com/Docs/reference-layers/blinking/<p>The blinking layer sets the colors of the specified keys to flash between two alternatives, with no fading between the colors. Like to the breathing layer, it allows either or both of these colors to be randomized if you wish.</p> <p> @@ -73,7 +73,7 @@ <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-blinking.gif?v=a71d2854f2395d41ca466dcae81079a8" alt="A blinking layer with cyan and a random secondary color" loading="lazy" height="288" width="866" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-blinking.gif?v=0d6c136a5861664f79476cf8e81ad0be" alt="A blinking layer with cyan and a random secondary color" loading="lazy" height="288" width="866" /> </picture> </p> <h2 id="properties">Properties</h2> @@ -133,7 +133,7 @@ <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-breathing.gif?v=a71d2854f2395d41ca466dcae81079a8" alt="A breathing layer with two random colors" loading="lazy" height="288" width="866" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-breathing.gif?v=0d6c136a5861664f79476cf8e81ad0be" alt="A breathing layer with two random colors" loading="lazy" height="288" width="866" /> </picture> </p> <h2 id="properties">Properties</h2> @@ -195,7 +195,7 @@ <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-glitch.gif?v=a71d2854f2395d41ca466dcae81079a8" alt="" loading="lazy" height="288" width="866" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-glitch.gif?v=0d6c136a5861664f79476cf8e81ad0be" alt="" loading="lazy" height="288" width="866" /> </picture> </p> <h2 id="properties">Properties</h2> @@ -239,7 +239,7 @@ <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-gradient-fill.gif?v=a71d2854f2395d41ca466dcae81079a8" alt="A rainbow Gradient Fill Layer on the alphabetical keys of the keyboard" loading="lazy" height="288" width="866" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-gradient-fill.gif?v=0d6c136a5861664f79476cf8e81ad0be" alt="A rainbow Gradient Fill Layer on the alphabetical keys of the keyboard" loading="lazy" height="288" width="866" /> </picture> </p>Gradient Layerhttps://www.project-aurora.com/Docs/reference-layers/gradient/Mon, 01 Jan 0001 00:00:00 +0000https://www.project-aurora.com/Docs/reference-layers/gradient/<p>The Gradient Layer shows a gradient effect on the specified keys. The gradient can also be animated to move across the keyboard to give a wave effect. If it helps to understand how it works, you can imagine the gradient to be displayed on a (possibly moving) rectangle, and each key acts as a “window” onto that rectangle.</p> <p> @@ -264,7 +264,7 @@ <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-gradient.gif?v=a71d2854f2395d41ca466dcae81079a8" alt="A rainbow Gradient Layer on the alphabetical keys" loading="lazy" height="288" width="866" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-gradient.gif?v=0d6c136a5861664f79476cf8e81ad0be" alt="A rainbow Gradient Layer on the alphabetical keys" loading="lazy" height="288" width="866" /> </picture> </p> <h2 id="properties">Properties</h2> @@ -330,7 +330,7 @@ <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-image.png?v=a71d2854f2395d41ca466dcae81079a8" alt="An image layer displaying a picture of a landscape" loading="lazy" height="288" width="866" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-image.png?v=0d6c136a5861664f79476cf8e81ad0be" alt="An image layer displaying a picture of a landscape" loading="lazy" height="288" width="866" /> </picture> </p> <h2 id="properties">Properties</h2> @@ -374,7 +374,7 @@ <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-interactive.gif?v=a71d2854f2395d41ca466dcae81079a8" alt="Pressing keys on an interactive layer with key wave mode" loading="lazy" height="290" width="866" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-interactive.gif?v=0d6c136a5861664f79476cf8e81ad0be" alt="Pressing keys on an interactive layer with key wave mode" loading="lazy" height="290" width="866" /> </picture> </p> <h2 id="properties">Properties</h2> @@ -456,7 +456,7 @@ <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-particle-fire.gif?v=a71d2854f2395d41ca466dcae81079a8" alt="A particle layer with the fire preset" loading="lazy" height="240" width="724" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-particle-fire.gif?v=0d6c136a5861664f79476cf8e81ad0be" alt="A particle layer with the fire preset" loading="lazy" height="240" width="724" /> </picture> @@ -481,7 +481,7 @@ <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-particle-matrix.gif?v=a71d2854f2395d41ca466dcae81079a8" alt="A particle layer with the matrix preset" loading="lazy" height="239" width="724" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-particle-matrix.gif?v=0d6c136a5861664f79476cf8e81ad0be" alt="A particle layer with the matrix preset" loading="lazy" height="239" width="724" /> </picture> </p>Percent (Gradient) Effect Layerhttps://www.project-aurora.com/Docs/reference-layers/percent-gradient-effect/Mon, 01 Jan 0001 00:00:00 +0000https://www.project-aurora.com/Docs/reference-layers/percent-gradient-effect/<p>This layer is very similar to the Percent Effect Layer, but makes use of a gradient instead of a progress/background color. This layer does not have a background.</p> <p> @@ -506,7 +506,7 @@ <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-percent-gradient-effect.gif?v=a71d2854f2395d41ca466dcae81079a8" alt="A gradient layer in progressive mode, with a red-green gradient assigned to the current millisecond" loading="lazy" height="288" width="866" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-percent-gradient-effect.gif?v=0d6c136a5861664f79476cf8e81ad0be" alt="A gradient layer in progressive mode, with a red-green gradient assigned to the current millisecond" loading="lazy" height="288" width="866" /> </picture> </p> <h2 id="properties">Properties</h2> @@ -577,7 +577,7 @@ <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-percent-effect.gif?v=a71d2854f2395d41ca466dcae81079a8" alt="A percent layer with current value set to the current time&rsquo;s milliseconds" loading="lazy" height="288" width="866" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-percent-effect.gif?v=0d6c136a5861664f79476cf8e81ad0be" alt="A percent layer with current value set to the current time&rsquo;s milliseconds" loading="lazy" height="288" width="866" /> </picture> </p> <h2 id="properties">Properties</h2> @@ -653,7 +653,7 @@ <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-radial.gif?v=a71d2854f2395d41ca466dcae81079a8" alt="A rainbow radial layer" loading="lazy" height="240" width="724" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-radial.gif?v=0d6c136a5861664f79476cf8e81ad0be" alt="A rainbow radial layer" loading="lazy" height="240" width="724" /> </picture> </p> <p>Note that this gradient is generated using discrete pie-shaped segments of colour. This color is determined by the median color at a particular point on the gradient. For example, if there were 4 segments, each would have a 90 degree arc. The first would use the color at 45 degrees (90 / 2) the second at 135 degrees, etc. If you do not get the colors you expect when using small numbers of segments, this is likely the reason.</p>Script Layerhttps://www.project-aurora.com/Docs/reference-layers/script/Mon, 01 Jan 0001 00:00:00 +0000https://www.project-aurora.com/Docs/reference-layers/script/<p>The script layer on its own will do nothing, however it is one of the most powerful, advanced layers. It provides an interface for users to create custom effects using the Aurora API in either C# or Python. More details can be found on the project&rsquo;s <a href="https://github.com/antonpup/Aurora/wiki/Profile-Scripting">Old-Wiki</a> and example scripts can be found in the <a href="https://github.com/antonpup/Aurora/tree/master/Script%20Examples">Script Examples</a> folder on GitHub. The limits of what this layer can do really are up to you.</p>Shortcut Assistant Layerhttps://www.project-aurora.com/Docs/reference-layers/shortcut-assistant/Mon, 01 Jan 0001 00:00:00 +0000https://www.project-aurora.com/Docs/reference-layers/shortcut-assistant/<p>The Shortcut Assistant layer shows possible key presses when a modifier key is pressed. The defined shortcuts will set the keyboard lights when they are partially pressed. For example, if you had a shortcut defined for Ctrl + C and Ctrl + V, whenever you press control, the other layers below are dimmed and the C and V letter light up in whichever color is specified.</p> @@ -679,7 +679,7 @@ <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-shortcut.gif?v=a71d2854f2395d41ca466dcae81079a8" alt="A shortcut layer with common Ctrl and Ctrl + Shift shortcuts on top of a gradient layer" loading="lazy" height="288" width="866" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-shortcut.gif?v=0d6c136a5861664f79476cf8e81ad0be" alt="A shortcut layer with common Ctrl and Ctrl + Shift shortcuts on top of a gradient layer" loading="lazy" height="288" width="866" /> </picture> </p>Solid Color Layerhttps://www.project-aurora.com/Docs/reference-layers/solid-color/Mon, 01 Jan 0001 00:00:00 +0000https://www.project-aurora.com/Docs/reference-layers/solid-color/<p>The Solid Color Layer is for setting static colors for specific keys. The keys will constantly be lit in the given color (providing they aren’t overridden by a higher-up layer). This is one of the most simple layers in Aurora, but can be useful for things such as highlighting controls such as WASD in video games.</p> <p> @@ -704,7 +704,7 @@ <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-solid-color.png?v=a71d2854f2395d41ca466dcae81079a8" alt="A Solid Color Layer lighting common video game control keys" loading="lazy" height="288" width="866" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-solid-color.png?v=0d6c136a5861664f79476cf8e81ad0be" alt="A Solid Color Layer lighting common video game control keys" loading="lazy" height="288" width="866" /> </picture> </p> <p>If you want to set the color of the entire (or most) of the keyboard, consider using the <a href="https://www.project-aurora.com/Docs/reference-layers/solid-fill-color/">Solid Fill Color</a> Layer instead.</p>Solid Fill Color Layerhttps://www.project-aurora.com/Docs/reference-layers/solid-fill-color/Mon, 01 Jan 0001 00:00:00 +0000https://www.project-aurora.com/Docs/reference-layers/solid-fill-color/<p>Similar to the Solid Color layer, however it does not have fine control over which keys are lit and so fills the entire canvas (keyboard, mouse and any other peripherals) with the given color. This layer is useful for setting static backgrounds, saving you from having to manually add each key.</p> @@ -730,7 +730,7 @@ <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-solid-fill-color.png?v=a71d2854f2395d41ca466dcae81079a8" alt="A Solid Fill Layer setting the entire keyboard to cyan" loading="lazy" height="288" width="866" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-solid-fill-color.png?v=0d6c136a5861664f79476cf8e81ad0be" alt="A Solid Fill Layer setting the entire keyboard to cyan" loading="lazy" height="288" width="866" /> </picture> </p> <h2 id="properties">Properties</h2> @@ -770,7 +770,7 @@ <picture> - <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-timer.gif?v=a71d2854f2395d41ca466dcae81079a8" alt="A timer layer on the alphabetical keys" loading="lazy" height="288" width="866" /> + <img class="img-fluid" src="https://www.project-aurora.com/Docs/img/docs/layer-timer.gif?v=0d6c136a5861664f79476cf8e81ad0be" alt="A timer layer on the alphabetical keys" loading="lazy" height="288" width="866" /> </picture> </p>Toggle Key Layerhttps://www.project-aurora.com/Docs/reference-layers/toggle-key/Mon, 01 Jan 0001 00:00:00 +0000https://www.project-aurora.com/Docs/reference-layers/toggle-key/<p>The toggle key layer allows for the turning on or off some lights based on the key press of another specific key. This layer can be useful for things such as indicators for whether something is toggled on/off in a game.</p> <p><span class="alert info">If you are using caps lock, num lock or scroll lock as a trigger key it is probably better to use the Lock Layer to ensure the key light state stays synced with the lock state properly.</span></p>Toolbar Layerhttps://www.project-aurora.com/Docs/reference-layers/toolbar/Mon, 01 Jan 0001 00:00:00 +0000https://www.project-aurora.com/Docs/reference-layers/toolbar/<p>The toolbar layer is a layer that shows one key as “active” and all others assigned to it as “inactive”. When a different key is pressed, the pressed key becomes the active one instead. This works similarly to how toolbars/item bars work in video games such as Factorio or Minecraft.</p> diff --git a/reference-layers/interactive/index.html b/reference-layers/interactive/index.html index dc54e4d..209db47 100644 --- a/reference-layers/interactive/index.html +++ b/reference-layers/interactive/index.html @@ -1,4 +1,4 @@ Interactive Layer • reference-layers • Aurora Docs

    Interactive Layer


    Last updated 10.01.2024

    The interactive layer listens for key presses on the keyboard and plays an animation from that key. This can be used to make ripple effects (as shown in the GIF below) or have the key light up and slowly fade out when it’s been pressed.

    Pressing keys on an interactive layer with key wave mode

    Properties

    NameDescription
    Interactive Effect Type
    • Key Wave - A circle emerges from the pressed key and slowly expands. It is initially Primary Color, then fades to Secondary Color.
    • Key Fade - The pressed key turns the into the Primary Color then fades to Secondary Color then fades out.
    • Key Wave (Filled) - The same as "Key Wave" but is a filled circle rather than only a border.
    • Arrow Flow - A rectangle with a constant height is created at the location of the pressed key and it slowly increases in width.
    • Key Wave (Rainbow) - Same as "Key Wave" but the circle takes on a gradient color, with blue in the inner side and red on the outer side.
    Primary ColorThe solid color to set all the affected keys to during the first half of the animation.
    Use Random PrimaryTick this to use a random color during first part of the animation instead of using Primary Color.
    Secondary ColorThe solid color to set all the affected keys to during the second half of the animation.
    Use Random SecondaryTick this to use a random color during second half of the animation instead of using Secondary Color.
    Effect SpeedHow quick the animation plays. Higher = faster.
    Effect WidthHow thick the circle lines are for the "Key Wave"s, or how tall the rectangle is for "Arrow Flow".
    Start when key releasedWhether to star the animation when the key is released, instead of when it is first pressed.
    Excluded KeysA collection of keys that will not trigger the animations (but will still show the animation if it passes over).

    Page authored by
    \ No newline at end of file +Aurora User Docs

    Interactive Layer


    Last updated 10.01.2024

    The interactive layer listens for key presses on the keyboard and plays an animation from that key. This can be used to make ripple effects (as shown in the GIF below) or have the key light up and slowly fade out when it’s been pressed.

    Pressing keys on an interactive layer with key wave mode

    Properties

    NameDescription
    Interactive Effect Type
    • Key Wave - A circle emerges from the pressed key and slowly expands. It is initially Primary Color, then fades to Secondary Color.
    • Key Fade - The pressed key turns the into the Primary Color then fades to Secondary Color then fades out.
    • Key Wave (Filled) - The same as "Key Wave" but is a filled circle rather than only a border.
    • Arrow Flow - A rectangle with a constant height is created at the location of the pressed key and it slowly increases in width.
    • Key Wave (Rainbow) - Same as "Key Wave" but the circle takes on a gradient color, with blue in the inner side and red on the outer side.
    Primary ColorThe solid color to set all the affected keys to during the first half of the animation.
    Use Random PrimaryTick this to use a random color during first part of the animation instead of using Primary Color.
    Secondary ColorThe solid color to set all the affected keys to during the second half of the animation.
    Use Random SecondaryTick this to use a random color during second half of the animation instead of using Secondary Color.
    Effect SpeedHow quick the animation plays. Higher = faster.
    Effect WidthHow thick the circle lines are for the "Key Wave"s, or how tall the rectangle is for "Arrow Flow".
    Start when key releasedWhether to star the animation when the key is released, instead of when it is first pressed.
    Excluded KeysA collection of keys that will not trigger the animations (but will still show the animation if it passes over).

    Page authored by
    \ No newline at end of file diff --git a/reference-layers/lock-color/index.html b/reference-layers/lock-color/index.html index 067e8a8..cd47eb3 100644 --- a/reference-layers/lock-color/index.html +++ b/reference-layers/lock-color/index.html @@ -1,4 +1,4 @@ Lock Color Layer • reference-layers • Aurora Docs

    Lock Color Layer


    Last updated 10.01.2024

    The lock layer allows you to have keys light up (or pulse) in a color when one of the “lock” keys is active (caps lock, num lock or scroll lock). You can use this to make a warning for when caps lock is on for example, or perhaps turn off the lights on the numpad when the numpad is off.

    This layer functionality can be incorporated using the Overrides System. That said, it is simpler to use this layer for the pulse feature than to use the Override System alternative.

    Lock layer flashing alphabetical key when the caps lock is on

    Lock layer turning off the numpad lights when the numlock is off

    Properties

    NameDescription
    Lock KeyThe type of key to check whether it is locked or not. Valid options are: Capital, Scroll and NumLock.
    Off ColorThe solid color to use when the lock key is disabled/off.
    On ColorThe solid color to use when the lock key is enabled/on.
    PulseIf checked, the On Color will fade in and out when the lock key is active (as shown in the first screencap above).

    Page authored by
    \ No newline at end of file +Aurora User Docs

    Lock Color Layer


    Last updated 10.01.2024

    The lock layer allows you to have keys light up (or pulse) in a color when one of the “lock” keys is active (caps lock, num lock or scroll lock). You can use this to make a warning for when caps lock is on for example, or perhaps turn off the lights on the numpad when the numpad is off.

    This layer functionality can be incorporated using the Overrides System. That said, it is simpler to use this layer for the pulse feature than to use the Override System alternative.

    Lock layer flashing alphabetical key when the caps lock is on

    Lock layer turning off the numpad lights when the numlock is off

    Properties

    NameDescription
    Lock KeyThe type of key to check whether it is locked or not. Valid options are: Capital, Scroll and NumLock.
    Off ColorThe solid color to use when the lock key is disabled/off.
    On ColorThe solid color to use when the lock key is enabled/on.
    PulseIf checked, the On Color will fade in and out when the lock key is active (as shown in the first screencap above).

    Page authored by
    \ No newline at end of file diff --git a/reference-layers/particle/index.html b/reference-layers/particle/index.html index 7b568fa..a4ad732 100644 --- a/reference-layers/particle/index.html +++ b/reference-layers/particle/index.html @@ -1,5 +1,5 @@ Particle Layer • reference-layers • Aurora Docs

    Particle Layer


    Last updated 10.01.2024

    The particle layer spawns a number of particles which can independently move (based on the layer’s settings) and have a color. After a specified amount of time, the particles are removed from the canvas.

    Some examples of what can be done with this layer are shown below (both are available as presets), but this is by no means all that can be achieved. Experiment with it!

    A particle layer with the fire preset -A particle layer with the matrix preset

    There is no limit on the number of particles that can be spawned at once. If it is setup to spawn far too many at a time, you may see issues with CPU or memory usage or the program may crash. Be sensible with it.

    Properties

    Many of the properties listed here have a “min” and “max” value. For every particle, a random value between the two given values will be chosen when it is spawned.

    NameDescription
    Spawn locationThe location in which to spawn the particle. Either on an edge, randomly on the entire canvas or randomly within a specified region.
    Color (over time)A gradient that defines the color a particle should be at any given point in it’s lifespan. When the particle is newly spawned, it’s color will be at the far left of the gradient. At the end of it’s life, the particle’s color will be the value at the far right of the gradient.
    Spawn timeThe amount of time in seconds between a single particle (or a group of particles if spawn amount > 1) spawning.
    Spawn amountThe number of particles to spawn at a time.
    LifetimeNumber of seconds the particle will stay active before being removed.
    Initial horizontal velocityThe initial horizontal velocity of the particle in units per second. Can be negative to make the particle move left.
    Initial vertical velocityThe initial vertical velocity of the particle in units per second. Can be negative to make the particle move up.
    Horizontal accelerationThe acceleration of the particle in the horizontal direction. Applies the given value to the particle’s velocity per second. For example, if this was 1.5 and the particle’s velocity was 5, after 2 seconds the velocity will be 8. If positive, the particle will accelerate to the right; if negative it will accelerate to the left.
    Vertical accelerationThe acceleration of the particle in the vertical direction. Applies the given value to the particle’s velocity per second. For example, if this was 1.5 and the particle’s velocity was 5, after 2 seconds the velocity will be 8. If positive, the particle will accelerate downwards; if negative it will accelerate upwards.
    Horizontal dragA value between 0-1 which the horizontal velocity of the particle will be multiplied by. This allows for making the particle appear to naturally slow down.
    Vertical dragA value between 0-1 which the vertical velocity of the particle will be multiplied by. This allows for making the particle appear to naturally slow down.
    Initial particle sizeThe initial size of the particle.
    Size changeThe rate of change in the size of the particle measured in units per second.
    PresetsYou can choose a preset and press ‘Apply’ to set all the values of the particle layer from some predefined values.

    Page authored by
    \ No newline at end of file +Aurora User Docs

    Particle Layer


    Last updated 10.01.2024

    The particle layer spawns a number of particles which can independently move (based on the layer’s settings) and have a color. After a specified amount of time, the particles are removed from the canvas.

    Some examples of what can be done with this layer are shown below (both are available as presets), but this is by no means all that can be achieved. Experiment with it!

    A particle layer with the fire preset +A particle layer with the matrix preset

    There is no limit on the number of particles that can be spawned at once. If it is setup to spawn far too many at a time, you may see issues with CPU or memory usage or the program may crash. Be sensible with it.

    Properties

    Many of the properties listed here have a “min” and “max” value. For every particle, a random value between the two given values will be chosen when it is spawned.

    NameDescription
    Spawn locationThe location in which to spawn the particle. Either on an edge, randomly on the entire canvas or randomly within a specified region.
    Color (over time)A gradient that defines the color a particle should be at any given point in it’s lifespan. When the particle is newly spawned, it’s color will be at the far left of the gradient. At the end of it’s life, the particle’s color will be the value at the far right of the gradient.
    Spawn timeThe amount of time in seconds between a single particle (or a group of particles if spawn amount > 1) spawning.
    Spawn amountThe number of particles to spawn at a time.
    LifetimeNumber of seconds the particle will stay active before being removed.
    Initial horizontal velocityThe initial horizontal velocity of the particle in units per second. Can be negative to make the particle move left.
    Initial vertical velocityThe initial vertical velocity of the particle in units per second. Can be negative to make the particle move up.
    Horizontal accelerationThe acceleration of the particle in the horizontal direction. Applies the given value to the particle’s velocity per second. For example, if this was 1.5 and the particle’s velocity was 5, after 2 seconds the velocity will be 8. If positive, the particle will accelerate to the right; if negative it will accelerate to the left.
    Vertical accelerationThe acceleration of the particle in the vertical direction. Applies the given value to the particle’s velocity per second. For example, if this was 1.5 and the particle’s velocity was 5, after 2 seconds the velocity will be 8. If positive, the particle will accelerate downwards; if negative it will accelerate upwards.
    Horizontal dragA value between 0-1 which the horizontal velocity of the particle will be multiplied by. This allows for making the particle appear to naturally slow down.
    Vertical dragA value between 0-1 which the vertical velocity of the particle will be multiplied by. This allows for making the particle appear to naturally slow down.
    Initial particle sizeThe initial size of the particle.
    Size changeThe rate of change in the size of the particle measured in units per second.
    PresetsYou can choose a preset and press ‘Apply’ to set all the values of the particle layer from some predefined values.

    Page authored by
    \ No newline at end of file diff --git a/reference-layers/percent-effect/index.html b/reference-layers/percent-effect/index.html index 7bbe500..02de5c6 100644 --- a/reference-layers/percent-effect/index.html +++ b/reference-layers/percent-effect/index.html @@ -1,4 +1,4 @@ Percent Effect Layer • reference-layers • Aurora Docs

    Percent Effect Layer


    Last updated 10.01.2024

    The percent effect layer allows you to have the color of some set keys dependent on a numeric variable that can be provided by the computer (such as how much RAM or CPU is in use) or by the game if it is supported (e.g. health in CS:GO or speed in Euro Truck Sim).

    A percent layer with current value set to the current time’s milliseconds

    Properties

    NameDescription
    Current ValueThe path of a State Variable or a number. This value represents the current value of whichever variable you are watching, e.g. health, ammo, etc.
    Maximum ValueThe path of a State Variable or a number. This value represents the value that is the maximum value of the percent layer. This will be your max health, or max ammo etc.
    Progress ColorIn the case of progressive effect types: the color that the active keys will take. For example, if current was 50 and max was 100, then the first half of the keys will be lit this color. For "all at once": the color that will be mixed with the background color depending on the current/max ratio.
    Background ColorFor progressive effect types: the color that will appear if the key is not being shown in progress color. For "all at once": the color that will be mixed with the progress color depending on the current/max ratio.
    Effect Type
    • All at once - All keys in the affected keys sequence share the same color. This color will be given by a blend of progress and background depending on the current/max ratio. For example: if progress is green, background is blue, current is 30 and max is 100: all the keys will be set to a blend of 30% green, 70% blue.
    • Progressive - The keys will light up in progress color when they are active. For example: if there are 10 keys in the affected key list, progress is green, background is blue, current is 30 and max is 100: the first 3 keys will be green, the others blue.
    • Progressive (Gradual) - Same as progressive, but any keys that are partially active will have their color interpolated.
    Blink ThresholdIf the current/max percentage is less than this value, the "active" keys will fade in and out.
    Reverse Blink ThresholdIf this is true, the current/max percentage must be greater than the threshold for the active keys to flash.
    Blink BackgroundIf this is selected, the background will fade in and out instead of the active keys.
    Affected KeysA collection of keys that will display the progress bar or color. Note that for progressive effect types, the order of the keys in the list matters.

    Page authored by
    \ No newline at end of file +Aurora User Docs

    Percent Effect Layer


    Last updated 10.01.2024

    The percent effect layer allows you to have the color of some set keys dependent on a numeric variable that can be provided by the computer (such as how much RAM or CPU is in use) or by the game if it is supported (e.g. health in CS:GO or speed in Euro Truck Sim).

    A percent layer with current value set to the current time’s milliseconds

    Properties

    NameDescription
    Current ValueThe path of a State Variable or a number. This value represents the current value of whichever variable you are watching, e.g. health, ammo, etc.
    Maximum ValueThe path of a State Variable or a number. This value represents the value that is the maximum value of the percent layer. This will be your max health, or max ammo etc.
    Progress ColorIn the case of progressive effect types: the color that the active keys will take. For example, if current was 50 and max was 100, then the first half of the keys will be lit this color. For "all at once": the color that will be mixed with the background color depending on the current/max ratio.
    Background ColorFor progressive effect types: the color that will appear if the key is not being shown in progress color. For "all at once": the color that will be mixed with the progress color depending on the current/max ratio.
    Effect Type
    • All at once - All keys in the affected keys sequence share the same color. This color will be given by a blend of progress and background depending on the current/max ratio. For example: if progress is green, background is blue, current is 30 and max is 100: all the keys will be set to a blend of 30% green, 70% blue.
    • Progressive - The keys will light up in progress color when they are active. For example: if there are 10 keys in the affected key list, progress is green, background is blue, current is 30 and max is 100: the first 3 keys will be green, the others blue.
    • Progressive (Gradual) - Same as progressive, but any keys that are partially active will have their color interpolated.
    Blink ThresholdIf the current/max percentage is less than this value, the "active" keys will fade in and out.
    Reverse Blink ThresholdIf this is true, the current/max percentage must be greater than the threshold for the active keys to flash.
    Blink BackgroundIf this is selected, the background will fade in and out instead of the active keys.
    Affected KeysA collection of keys that will display the progress bar or color. Note that for progressive effect types, the order of the keys in the list matters.

    Page authored by
    \ No newline at end of file diff --git a/reference-layers/percent-gradient-effect/index.html b/reference-layers/percent-gradient-effect/index.html index cba4712..fc40001 100644 --- a/reference-layers/percent-gradient-effect/index.html +++ b/reference-layers/percent-gradient-effect/index.html @@ -1,4 +1,4 @@ Percent (Gradient) Effect Layer • reference-layers • Aurora Docs

    Percent (Gradient) Effect Layer


    Last updated 10.01.2024

    This layer is very similar to the Percent Effect Layer, but makes use of a gradient instead of a progress/background color. This layer does not have a background.

    A gradient layer in progressive mode, with a red-green gradient assigned to the current millisecond

    Properties

    NameDescription
    Current ValueThe path of a State Variable or a number. This value represents the current value of whichever variable you are watching, e.g. health, ammo, etc.
    Maximum ValueThe path of a State Variable or a number. This value represents the value that is the maximum value of the percent layer. This will be your max health, or max ammo etc.
    Percent GradientA gradient brush whose color will define the color the affected keys will take.
    Background ColorFor progressive effect types: the color that will appear if the key is not being shown in progress color. For "all at once": the color that will be mixed with the progress color depending on the current/max ratio.
    Effect Type
    • All at once - All keys in the affected keys sequence share the same color. This color will be given by a blend of progress and background depending on the current/max ratio. For example: if progress is green, background is blue, current is 30 and max is 100: all the keys will be set to a blend of 30% green, 70% blue.
    • Progressive/Progressive (Gradual) - The keys will light up in percent gradient pattern when they are active. For example: if there are 10 keys in the affected key list, current is 30 and max is 100: the first 3 keys will be set to the color of the gradient, the others will not be set.
    Blink ThresholdIf the current/max percentage is less than this value, the "active" keys will fade in and out.
    Reverse Blink ThresholdIf this is true, the current/max percentage must be greater than the threshold for the active keys to flash.
    Affected KeysA collection of keys that will display the progress bar or color. Note that for progressive effect types, the order of the keys in the list matters.

    Page authored by
    \ No newline at end of file +Aurora User Docs

    Percent (Gradient) Effect Layer


    Last updated 10.01.2024

    This layer is very similar to the Percent Effect Layer, but makes use of a gradient instead of a progress/background color. This layer does not have a background.

    A gradient layer in progressive mode, with a red-green gradient assigned to the current millisecond

    Properties

    NameDescription
    Current ValueThe path of a State Variable or a number. This value represents the current value of whichever variable you are watching, e.g. health, ammo, etc.
    Maximum ValueThe path of a State Variable or a number. This value represents the value that is the maximum value of the percent layer. This will be your max health, or max ammo etc.
    Percent GradientA gradient brush whose color will define the color the affected keys will take.
    Background ColorFor progressive effect types: the color that will appear if the key is not being shown in progress color. For "all at once": the color that will be mixed with the progress color depending on the current/max ratio.
    Effect Type
    • All at once - All keys in the affected keys sequence share the same color. This color will be given by a blend of progress and background depending on the current/max ratio. For example: if progress is green, background is blue, current is 30 and max is 100: all the keys will be set to a blend of 30% green, 70% blue.
    • Progressive/Progressive (Gradual) - The keys will light up in percent gradient pattern when they are active. For example: if there are 10 keys in the affected key list, current is 30 and max is 100: the first 3 keys will be set to the color of the gradient, the others will not be set.
    Blink ThresholdIf the current/max percentage is less than this value, the "active" keys will fade in and out.
    Reverse Blink ThresholdIf this is true, the current/max percentage must be greater than the threshold for the active keys to flash.
    Affected KeysA collection of keys that will display the progress bar or color. Note that for progressive effect types, the order of the keys in the list matters.

    Page authored by
    \ No newline at end of file diff --git a/reference-layers/radial/index.html b/reference-layers/radial/index.html index 5332be5..b16d26f 100644 --- a/reference-layers/radial/index.html +++ b/reference-layers/radial/index.html @@ -1,4 +1,4 @@ Radial Layer • reference-layers • Aurora Docs

    Radial Layer


    Last updated 10.01.2024

    A layer that provides a gradient that rotates around a single point and optionally spins.

    A rainbow radial layer

    Note that this gradient is generated using discrete pie-shaped segments of colour. This color is determined by the median color at a particular point on the gradient. For example, if there were 4 segments, each would have a 90 degree arc. The first would use the color at 45 degrees (90 / 2) the second at 135 degrees, etc. If you do not get the colors you expect when using small numbers of segments, this is likely the reason.

    Properties

    NameDescription
    GradientThe gradient of the layer.
    Rotation speedThe rotation speed of the layer, in degrees per second. Positive will spin clockwise, negative for counter-clockwise.
    Segment countThe number of segments (see above) that are used to create the gradient. A lower number will result in distinct blocks of colour whereas a higher number will result in a smoother transition.
    Affected keysThe keys or region to apply the gradient to.

    Page authored by
    \ No newline at end of file +Aurora User Docs

    Radial Layer


    Last updated 10.01.2024

    A layer that provides a gradient that rotates around a single point and optionally spins.

    A rainbow radial layer

    Note that this gradient is generated using discrete pie-shaped segments of colour. This color is determined by the median color at a particular point on the gradient. For example, if there were 4 segments, each would have a 90 degree arc. The first would use the color at 45 degrees (90 / 2) the second at 135 degrees, etc. If you do not get the colors you expect when using small numbers of segments, this is likely the reason.

    Properties

    NameDescription
    GradientThe gradient of the layer.
    Rotation speedThe rotation speed of the layer, in degrees per second. Positive will spin clockwise, negative for counter-clockwise.
    Segment countThe number of segments (see above) that are used to create the gradient. A lower number will result in distinct blocks of colour whereas a higher number will result in a smoother transition.
    Affected keysThe keys or region to apply the gradient to.

    Page authored by
    \ No newline at end of file diff --git a/reference-layers/shortcut-assistant/index.html b/reference-layers/shortcut-assistant/index.html index ba2a8d3..5c1ba21 100644 --- a/reference-layers/shortcut-assistant/index.html +++ b/reference-layers/shortcut-assistant/index.html @@ -1,4 +1,4 @@ Shortcut Assistant Layer • reference-layers • Aurora Docs

    Shortcut Assistant Layer


    Last updated 10.01.2024

    The Shortcut Assistant layer shows possible key presses when a modifier key is pressed. The defined shortcuts will set the keyboard lights when they are partially pressed. For example, if you had a shortcut defined for Ctrl + C and Ctrl + V, whenever you press control, the other layers below are dimmed and the C and V letter light up in whichever color is specified.

    A shortcut layer with common Ctrl and Ctrl + Shift shortcuts on top of a gradient layer

    Properties

    NameDescription
    Dim BackgroundIf this is checked, when Aurora detects you a pressing a modifier key (Ctrl, Shift, Alt) then it will display Dimming Color over all keys before rendering the shortcut keys.
    ShortcutsA list of all shortcuts that should be displayed by the layer. To create a shortcut, click on the "New Shortcut" button, then "Assign" next to the new row of the table and press the keys on your keyboard. Once done, click the button again (now "Stop"). Multiple keys can be pressed at the same time and will appear in the shortcut.
    Dimming ColorIf Dim Background, this color is used to dim the background. A semi-transparent dark color is recommended.
    ColorThe color that the keys representing the shortcuts will be displayed.
    Presentation TypeFor shortcuts with longer sequences of keys, this option will dictate which keys become active and when. As an example, we shall consider the sequence Ctrl + Shift + A.
    • Show All Keys - Shows any shortcut that can be pressed that has the currently pressed buttons in its key list. In the example with this mode, when Ctrl is pressed, both Shift and A will light up.
    • Progressive Suggestion - Shows a shortcut only when all it's previous keys in the list are pressed. In the example, when Ctrl is pressed, only Shift will light up. When Ctrl + Shift are pressed, A will also light up.
    Trigger When Same Modifier Keys PressedIf this is checked, both control keys (left and right) and both shift keys (left and right) will trigger a shortcut bound to one of the keys. E.G. if there is a shortcut bound to LControlKey + A, then the right control key would also trigger this shortcut if this option was selected.

    Page authored by
    \ No newline at end of file +Aurora User Docs

    Shortcut Assistant Layer


    Last updated 10.01.2024

    The Shortcut Assistant layer shows possible key presses when a modifier key is pressed. The defined shortcuts will set the keyboard lights when they are partially pressed. For example, if you had a shortcut defined for Ctrl + C and Ctrl + V, whenever you press control, the other layers below are dimmed and the C and V letter light up in whichever color is specified.

    A shortcut layer with common Ctrl and Ctrl + Shift shortcuts on top of a gradient layer

    Properties

    NameDescription
    Dim BackgroundIf this is checked, when Aurora detects you a pressing a modifier key (Ctrl, Shift, Alt) then it will display Dimming Color over all keys before rendering the shortcut keys.
    ShortcutsA list of all shortcuts that should be displayed by the layer. To create a shortcut, click on the "New Shortcut" button, then "Assign" next to the new row of the table and press the keys on your keyboard. Once done, click the button again (now "Stop"). Multiple keys can be pressed at the same time and will appear in the shortcut.
    Dimming ColorIf Dim Background, this color is used to dim the background. A semi-transparent dark color is recommended.
    ColorThe color that the keys representing the shortcuts will be displayed.
    Presentation TypeFor shortcuts with longer sequences of keys, this option will dictate which keys become active and when. As an example, we shall consider the sequence Ctrl + Shift + A.
    • Show All Keys - Shows any shortcut that can be pressed that has the currently pressed buttons in its key list. In the example with this mode, when Ctrl is pressed, both Shift and A will light up.
    • Progressive Suggestion - Shows a shortcut only when all it's previous keys in the list are pressed. In the example, when Ctrl is pressed, only Shift will light up. When Ctrl + Shift are pressed, A will also light up.
    Trigger When Same Modifier Keys PressedIf this is checked, both control keys (left and right) and both shift keys (left and right) will trigger a shortcut bound to one of the keys. E.G. if there is a shortcut bound to LControlKey + A, then the right control key would also trigger this shortcut if this option was selected.

    Page authored by
    \ No newline at end of file diff --git a/reference-layers/solid-color/index.html b/reference-layers/solid-color/index.html index 15c957b..4c4c5f1 100644 --- a/reference-layers/solid-color/index.html +++ b/reference-layers/solid-color/index.html @@ -1,4 +1,4 @@ Solid Color Layer • reference-layers • Aurora Docs

    Solid Color Layer


    Last updated 10.01.2024

    The Solid Color Layer is for setting static colors for specific keys. The keys will constantly be lit in the given color (providing they aren’t overridden by a higher-up layer). This is one of the most simple layers in Aurora, but can be useful for things such as highlighting controls such as WASD in video games.

    A Solid Color Layer lighting common video game control keys

    If you want to set the color of the entire (or most) of the keyboard, consider using the Solid Fill Color Layer instead.

    Properties

    NameDescription
    ColorThe solid color to set all the affected keys to.
    Affected KeysA collection of keys that will be set to the above solid color.

    Page authored by
    \ No newline at end of file +Aurora User Docs

    Solid Color Layer


    Last updated 10.01.2024

    The Solid Color Layer is for setting static colors for specific keys. The keys will constantly be lit in the given color (providing they aren’t overridden by a higher-up layer). This is one of the most simple layers in Aurora, but can be useful for things such as highlighting controls such as WASD in video games.

    A Solid Color Layer lighting common video game control keys

    If you want to set the color of the entire (or most) of the keyboard, consider using the Solid Fill Color Layer instead.

    Properties

    NameDescription
    ColorThe solid color to set all the affected keys to.
    Affected KeysA collection of keys that will be set to the above solid color.

    Page authored by
    \ No newline at end of file diff --git a/reference-layers/solid-fill-color/index.html b/reference-layers/solid-fill-color/index.html index 50dac6b..879c3eb 100644 --- a/reference-layers/solid-fill-color/index.html +++ b/reference-layers/solid-fill-color/index.html @@ -1,4 +1,4 @@ Solid Fill Color Layer • reference-layers • Aurora Docs

    Solid Fill Color Layer


    Last updated 10.01.2024

    Similar to the Solid Color layer, however it does not have fine control over which keys are lit and so fills the entire canvas (keyboard, mouse and any other peripherals) with the given color. This layer is useful for setting static backgrounds, saving you from having to manually add each key.

    A Solid Fill Layer setting the entire keyboard to cyan

    Properties

    NameDescription
    ColorThe solid color to set all the affected keys to.

    Page authored by
    \ No newline at end of file +Aurora User Docs

    Solid Fill Color Layer


    Last updated 10.01.2024

    Similar to the Solid Color layer, however it does not have fine control over which keys are lit and so fills the entire canvas (keyboard, mouse and any other peripherals) with the given color. This layer is useful for setting static backgrounds, saving you from having to manually add each key.

    A Solid Fill Layer setting the entire keyboard to cyan

    Properties

    NameDescription
    ColorThe solid color to set all the affected keys to.

    Page authored by
    \ No newline at end of file diff --git a/reference-layers/timer-key/index.html b/reference-layers/timer-key/index.html index 0269fce..94559ed 100644 --- a/reference-layers/timer-key/index.html +++ b/reference-layers/timer-key/index.html @@ -1,4 +1,4 @@ Timer Key Layer • reference-layers • Aurora Docs

    Timer Key Layer


    Last updated 10.01.2024

    The timer layer waits for one or more keys to be pressed (do not have to be the keys displaying the lights) and sets the color of the keys to be something else for a set duration, after which they return to their original color. This layer can be used for things such as ability timers for games that have no game state integration.

    A timer layer on the alphabetical keys

    Properties

    NameDescription
    Default ColorThe color that the keys are by default and when the timer is not active.
    Active ColorThe color the keys turn when one of the triggers has been pressed.
    DurationThe duration (in milliseconds) that the timer takes.
    Animation Type
    • OnOff - When the trigger is pressed, the Affected Keys turn to active color and stays there for the Duration then immediately goes back to default.
    • Fade - When the trigger is pressed, the Affected Keys turn to active colors and then slowly fades back to the default color.
    Repeat Action
    • Reset - When a trigger is pressed while the timer is running, it will restart the timer anew.
    • Extend - When a trigger is pressed while the timer is running, it will extend the timer by Duration. E.G. if duration is 5000ms, and you press a trigger again 3000ms after pressing it for a first time, it would take 8000ms from the second press to completely reset.
    • Ignore - If a trigger is pressed while the timer is running, nothing will happen. The original timer will keep running as normal.
    Trigger KeysThe list of keybinds that will cause the timer to run. These keys won't light up (unless you add them to the Affected Keys)
    Affected KeysThe list of keys that will light up in default or active color. These keys will not trigger the timer.

    Page authored by
    \ No newline at end of file +Aurora User Docs

    Timer Key Layer


    Last updated 10.01.2024

    The timer layer waits for one or more keys to be pressed (do not have to be the keys displaying the lights) and sets the color of the keys to be something else for a set duration, after which they return to their original color. This layer can be used for things such as ability timers for games that have no game state integration.

    A timer layer on the alphabetical keys

    Properties

    NameDescription
    Default ColorThe color that the keys are by default and when the timer is not active.
    Active ColorThe color the keys turn when one of the triggers has been pressed.
    DurationThe duration (in milliseconds) that the timer takes.
    Animation Type
    • OnOff - When the trigger is pressed, the Affected Keys turn to active color and stays there for the Duration then immediately goes back to default.
    • Fade - When the trigger is pressed, the Affected Keys turn to active colors and then slowly fades back to the default color.
    Repeat Action
    • Reset - When a trigger is pressed while the timer is running, it will restart the timer anew.
    • Extend - When a trigger is pressed while the timer is running, it will extend the timer by Duration. E.G. if duration is 5000ms, and you press a trigger again 3000ms after pressing it for a first time, it would take 8000ms from the second press to completely reset.
    • Ignore - If a trigger is pressed while the timer is running, nothing will happen. The original timer will keep running as normal.
    Trigger KeysThe list of keybinds that will cause the timer to run. These keys won't light up (unless you add them to the Affected Keys)
    Affected KeysThe list of keys that will light up in default or active color. These keys will not trigger the timer.

    Page authored by
    \ No newline at end of file diff --git a/reference-layers/toolbar/index.html b/reference-layers/toolbar/index.html index 62e5efc..6b1d404 100644 --- a/reference-layers/toolbar/index.html +++ b/reference-layers/toolbar/index.html @@ -1,4 +1,4 @@ Toolbar Layer • reference-layers • Aurora Docs

    Toolbar Layer


    Last updated 10.01.2024

    The toolbar layer is a layer that shows one key as “active” and all others assigned to it as “inactive”. When a different key is pressed, the pressed key becomes the active one instead. This works similarly to how toolbars/item bars work in video games such as Factorio or Minecraft.

    The layer can also be toggled to listen for the scroll wheel to allow scrolling through the toolbar by turning on the Enable Scroll configuration option. The order the keys are scrolled through is given by their order in the Affected Keys option, so if scrolling through is in the incorrect order, check the order of the keys here.

    The toolbar layer affecting the number keys

    Properties

    NameDescription
    Default ColorThe color of the inactive keys.
    Active ColorThe color of the active key.
    Enable ScrollWhether or not to allow the active key to be moved up and down when you scroll the mouse scroll wheel.
    Scroll LoopWhether or not to allow the scrolling to wrap from one end of the toolbar to the other. Only has an effect when Enable Scroll is true.
    Affected KeysThe keys that make up the toolbar layer. Note that if Enable Scroll is checked, the order of the keys matters.

    Page authored by
    \ No newline at end of file +Aurora User Docs

    Toolbar Layer


    Last updated 10.01.2024

    The toolbar layer is a layer that shows one key as “active” and all others assigned to it as “inactive”. When a different key is pressed, the pressed key becomes the active one instead. This works similarly to how toolbars/item bars work in video games such as Factorio or Minecraft.

    The layer can also be toggled to listen for the scroll wheel to allow scrolling through the toolbar by turning on the Enable Scroll configuration option. The order the keys are scrolled through is given by their order in the Affected Keys option, so if scrolling through is in the incorrect order, check the order of the keys here.

    The toolbar layer affecting the number keys

    Properties

    NameDescription
    Default ColorThe color of the inactive keys.
    Active ColorThe color of the active key.
    Enable ScrollWhether or not to allow the active key to be moved up and down when you scroll the mouse scroll wheel.
    Scroll LoopWhether or not to allow the scrolling to wrap from one end of the toolbar to the other. Only has an effect when Enable Scroll is true.
    Affected KeysThe keys that make up the toolbar layer. Note that if Enable Scroll is checked, the order of the keys matters.

    Page authored by
    \ No newline at end of file diff --git a/search/index.html b/search/index.html index acb3d60..80eb2a5 100644 --- a/search/index.html +++ b/search/index.html @@ -1,4 +1,4 @@ Search Results • Aurora Docs
    Search Results
      \ No newline at end of file +Aurora User Docs
      Search Results
        \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index 5b4a0c3..8720e77 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1 +1 @@ -https://www.project-aurora.com/Docs/advanced-topics/2020-04-26T22:28:17+01:00https://www.project-aurora.com/Docs/integrations/lightfx/2024-01-02T18:03:57+01:00https://www.project-aurora.com/Docs/devices/alldevices/2024-01-02T17:29:33+01:00https://www.project-aurora.com/Docs/reference-layers/ambilight/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/advanced-topics/animation-editor/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/reference-layers/animation/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/devices/asus/2024-01-27T01:39:46+01:00https://www.project-aurora.com/Docs/reference-layers/audio-visualizer/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/advanced-topics/visualizer-output/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/basic-topics/2020-04-26T22:28:17+01:00https://www.project-aurora.com/Docs/reference-layers/blinking/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/integrations/integrations/2024-10-02T16:57:47+02:00https://www.project-aurora.com/Docs/integrations/2024-01-02T17:09:05+01:00https://www.project-aurora.com/Docs/reference-layers/breathing/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/reference-layers/conditional-comparisons/2020-04-27T00:04:29+01:00https://www.project-aurora.com/Docs/devices/corsair/2024-01-27T01:39:46+01:00https://www.project-aurora.com/Docs/devices/2024-01-02T17:09:05+01:00https://www.project-aurora.com/Docs/diagnostics/2024-05-06T13:42:04+02:00https://www.project-aurora.com/Docs/devices/dualsense/2024-01-05T20:49:19+01:00https://www.project-aurora.com/Docs/basic-topics/getting-started/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/reference-layers/glitch-effect/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/reference-layers/gradient-fill/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/reference-layers/gradient/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/reference-layers/image/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/reference-expressions/input/2020-04-28T11:04:39+01:00https://www.project-aurora.com/Docs/basic-topics/installation/2024-01-16T21:01:18+01:00https://www.project-aurora.com/Docs/reference-layers/interactive/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/2020-04-27T16:55:57+01:00https://www.project-aurora.com/Docs/reference-layers/lock-color/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/reference-expressions/logic/2020-06-06T22:36:56+01:00https://www.project-aurora.com/Docs/devices/logitech/2024-01-27T01:39:46+01:00https://www.project-aurora.com/Docs/integrations/lightsync/2024-10-02T16:57:47+02:00https://www.project-aurora.com/Docs/reference-expressions/maths/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/reference-expressions/misc/2020-04-28T11:04:39+01:00https://www.project-aurora.com/Docs/basic-topics/games/2024-01-02T18:03:57+01:00https://www.project-aurora.com/Docs/devices/openrgb/2024-01-16T21:22:29+01:00https://www.project-aurora.com/Docs/advanced-topics/overrides-system/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/reference-layers/particle-interactive/2020-04-27T15:07:17+01:00https://www.project-aurora.com/Docs/reference-layers/particle/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/reference-layers/percent-gradient-effect/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/reference-layers/percent-effect/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/reference-layers/radial/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/devices/razer/2024-01-21T21:20:11+01:00https://www.project-aurora.com/Docs/integrations/chroma/2024-10-02T16:57:47+02:00https://www.project-aurora.com/Docs/reference-expressions/2020-04-27T16:55:57+01:00https://www.project-aurora.com/Docs/reference-layers/2020-04-27T16:55:57+01:00https://www.project-aurora.com/Docs/diagnostics/repair-wmi/2024-05-06T14:03:53+02:00https://www.project-aurora.com/Docs/reference-layers/script/2024-01-03T11:19:19+01:00https://www.project-aurora.com/Docs/search/2020-04-27T15:11:52+01:000.1https://www.project-aurora.com/Docs/reference-layers/shortcut-assistant/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/reference-layers/solid-color/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/reference-layers/solid-fill-color/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/reference-expressions/state/2020-04-28T11:04:39+01:00https://www.project-aurora.com/Docs/advanced-topics/state-variables/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/devices/steelseries/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/reference-expressions/string/2020-04-28T11:04:39+01:00https://www.project-aurora.com/Docs/reference-layers/timer-key/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/reference-layers/toggle-key/2020-04-27T00:04:29+01:00https://www.project-aurora.com/Docs/reference-layers/toolbar/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/basic-topics/user-data/2024-10-02T16:57:47+02:00https://www.project-aurora.com/Docs/devices/wooting/2024-01-05T20:49:19+01:00https://www.project-aurora.com/Docs/reference-layers/wrapper/2024-01-05T20:49:19+01:00 \ No newline at end of file +https://www.project-aurora.com/Docs/advanced-topics/2020-04-26T22:28:17+01:00https://www.project-aurora.com/Docs/integrations/lightfx/2024-10-04T16:49:29+02:00https://www.project-aurora.com/Docs/devices/alldevices/2024-01-02T17:29:33+01:00https://www.project-aurora.com/Docs/reference-layers/ambilight/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/advanced-topics/animation-editor/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/reference-layers/animation/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/devices/asus/2024-01-27T01:39:46+01:00https://www.project-aurora.com/Docs/reference-layers/audio-visualizer/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/advanced-topics/visualizer-output/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/basic-topics/2020-04-26T22:28:17+01:00https://www.project-aurora.com/Docs/reference-layers/blinking/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/integrations/integrations/2024-10-02T16:57:47+02:00https://www.project-aurora.com/Docs/integrations/2024-01-02T17:09:05+01:00https://www.project-aurora.com/Docs/reference-layers/breathing/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/reference-layers/conditional-comparisons/2020-04-27T00:04:29+01:00https://www.project-aurora.com/Docs/devices/corsair/2024-01-27T01:39:46+01:00https://www.project-aurora.com/Docs/devices/2024-01-02T17:09:05+01:00https://www.project-aurora.com/Docs/diagnostics/2024-05-06T13:42:04+02:00https://www.project-aurora.com/Docs/devices/dualsense/2024-01-05T20:49:19+01:00https://www.project-aurora.com/Docs/basic-topics/getting-started/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/reference-layers/glitch-effect/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/reference-layers/gradient-fill/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/reference-layers/gradient/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/reference-layers/image/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/reference-expressions/input/2020-04-28T11:04:39+01:00https://www.project-aurora.com/Docs/basic-topics/installation/2024-01-16T21:01:18+01:00https://www.project-aurora.com/Docs/reference-layers/interactive/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/2020-04-27T16:55:57+01:00https://www.project-aurora.com/Docs/reference-layers/lock-color/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/reference-expressions/logic/2020-06-06T22:36:56+01:00https://www.project-aurora.com/Docs/devices/logitech/2024-01-27T01:39:46+01:00https://www.project-aurora.com/Docs/integrations/lightsync/2024-10-04T16:49:29+02:00https://www.project-aurora.com/Docs/reference-expressions/maths/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/reference-expressions/misc/2020-04-28T11:04:39+01:00https://www.project-aurora.com/Docs/basic-topics/games/2024-01-02T18:03:57+01:00https://www.project-aurora.com/Docs/devices/openrgb/2024-01-16T21:22:29+01:00https://www.project-aurora.com/Docs/advanced-topics/overrides-system/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/reference-layers/particle-interactive/2020-04-27T15:07:17+01:00https://www.project-aurora.com/Docs/reference-layers/particle/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/reference-layers/percent-gradient-effect/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/reference-layers/percent-effect/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/reference-layers/radial/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/devices/razer/2024-01-21T21:20:11+01:00https://www.project-aurora.com/Docs/integrations/chroma/2024-10-04T16:49:29+02:00https://www.project-aurora.com/Docs/reference-expressions/2020-04-27T16:55:57+01:00https://www.project-aurora.com/Docs/reference-layers/2020-04-27T16:55:57+01:00https://www.project-aurora.com/Docs/diagnostics/repair-wmi/2024-05-06T14:03:53+02:00https://www.project-aurora.com/Docs/reference-layers/script/2024-01-03T11:19:19+01:00https://www.project-aurora.com/Docs/search/2020-04-27T15:11:52+01:000.1https://www.project-aurora.com/Docs/reference-layers/shortcut-assistant/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/reference-layers/solid-color/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/reference-layers/solid-fill-color/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/reference-expressions/state/2020-04-28T11:04:39+01:00https://www.project-aurora.com/Docs/advanced-topics/state-variables/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/devices/steelseries/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/reference-expressions/string/2020-04-28T11:04:39+01:00https://www.project-aurora.com/Docs/reference-layers/timer-key/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/reference-layers/toggle-key/2020-04-27T00:04:29+01:00https://www.project-aurora.com/Docs/reference-layers/toolbar/2024-01-10T03:07:45+01:00https://www.project-aurora.com/Docs/basic-topics/user-data/2024-10-02T16:57:47+02:00https://www.project-aurora.com/Docs/devices/wooting/2024-01-05T20:49:19+01:00https://www.project-aurora.com/Docs/reference-layers/wrapper/2024-01-05T20:49:19+01:00 \ No newline at end of file