Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Modules replaces certain parts of the system's UI. For example, YourFlyouts replaces the default windows flyouts and ValliStart replaces the start menu. They are different to widgets, as they are not part of the desktop and will not stay there.
All JaxCore modules will allow you to change the bit of the UI to your liking, providing you plenty of customization for appearance and functionality.
The format for an action is
["PATH TO SOMETHING"]
["URL TO WEBSITE"]
[WINDOWS COMMAND TO RUN]You can run multiple actions at once
["PATH TO 1st FILE"]["PATH TO 2nd FILE"]["PATH TO 3rd FILE"]Known issue. If this happens, click on the actions page and try again.
JaxCore is a collection of utility modules designed to improve your desktop experience and increase your productivity. It also includes a few additional widgets to spice up your desktop.
JaxCore (configuration hub) acts as a settings menu for all JaxCore modules, while providing continuous support for patch / feature updates. It also allows you to access other modules more quickly!
This is the detailed documentation for JaxCore, its structure and how to build a module for JaxCore along with handy tricks used while coding modules for JaxCore (or any Rainmeter skin).
While downloading the .bat installation file for JaxCore, most, if not all, browsers may flag the .bat file as malicious and prevent you from downloading it. This false positive occurs because JaxCore's website is an “unknown provider” as per the browser and thus, the file is deemed insecure or unsafe.
You may also encounter a similar problem when attempting to run the file after it has been downloaded. Windows Smart Screen prevents you from running the file and attempts to warn you that it may be unsafe. The reason is the same as before: The file was obtained from an unknown source.
However, you can rest assured that the .bat file is completely safe.
The installation package may trigger a false positive alert in your antivirus program. This is due to the .exe files stored in the package, which is required to automate parts of the program. The program being flagged is usually done through heuristic analysis, not via a database of known viruses. That means that the antivirus program thinks that due to the nature of the code in this application, it likely may be a virus, a program that the user does not really mean to run.
Also, the source code is always available here, so you have all the tools necessary to make an informed decision.
Some antivirus software may occasionally flag JaxCore's files as malware, resulting in those files being quarantined the majority of the time. But, like the previous false positives, this one is also a false positive. What actually happens is that the antivirus flags the powershell processes that JaxCore requires to function properly, resulting in false positives. However, regardless of the warning or the cause of the false positive, all of JaxCore's files and JaxCore are completely safe.
Read this
TLDR: No support yet
Core supported multi-language before, but I've removed it for now since it is impossible to get accurate translations for each version of core. Support for multiple languages will be added after the upcoming Difia update!
Follow through video guide: https://youtu.be/AGEkN9E7DlY
JaxCore currently does not function properly for 32-bit Window installations. Stay tuned for updates on this issue.
There are missing dependencies on your system.
Download the Evergreen Bootstraper Webview2 runtime and install it. Run with administrator priviledges if it fails to install.
Launch JaxCore again. If it still doesn't load, try restarting your device.
If after verifying both the visualizer is still static, try updating your .NET runtime (first file).
If unfortunately the issue persists, the visualizer might not be compatible with your device.
Make sure you have hardware acceleration turned on in JaxCore settings
Try reducing bar count
Try not using image underlay
Try reinstalling YourMixer
If issue presists, increase animation steps (try doubling) JaxCore -> YourMixer -> General -> Setting: Animation steps
Further in-depth customization can be done through the Appearance, Render, 3D overlay, and Audio tabs. You won't be constrained by the skin's customization capabilities!
Further in-depth customization can be done through the Appearance, Modules, and General tabs.
FAQs
This is an intended feature. Some apps would have different output channels, for example Discord would have one for notification sounds and one for voice chat sounds.



Change the position settings.
Go to the position settings, and change the following options:
Screen to display on The index of the screen to display the main section of IdleStyle. (e.g. second monitor: 2)
Number of screens to stretch horzontally The number of screens that you want IdleStyle to cover. If you only want it to cover your primary monitor, set this value to 0.
Alignment of screensaver Direction of the screens from the main sections' position
If you are unable to achieve the results you want, turn off Smart detection and change the following options:
Screen to display on The index of the screen to display the main section of IdleStyle. (e.g. second monitor: 2)
Click on Open Editor and position the overlay over all of your monitors, then press Enter.
Windows might be constantly checking for driver updates, and hence resetting the timer. You can try making sure all your drivers are up to date.
Unfortunately not.
Right Click (Anything JaxCore) -> Developer options -> Reload RainmeterThis is only required if you're setting up Spotify using Auto media method setting. FAQs
1. Open Powershell, copy the following commands, paste and press enter:
ℹ️ If aren't using Spicetify for theming, run the following command
2. And finally, run the following command to save and apply all your changes:
3. Restart Rainmeter by Right Click (Anything JaxCore) -> Developer options -> Reload Rainmeter
Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/khanhas/spicetify-cli/master/install.ps1" | Invoke-Expression
spicetify
spicetify config extensions webnowplaying.jsspicetify config inject_css 0 replace_colors 0Go to the info setting for the widget you want to copy
Click on make clone in actions
Enter the clone's name, make sure it does not have any spaces in it
JaxCore would close after that. Restart it and go to the library page in home.
Click on Go to settings of widget or module...
Enter the cloned widget name
Activate the newly created clone from the .
Hold Ctrl and then Right click
Right click -> Align
This issue is caused by Windows providing the wrong wallpaper path, causing the blur to refresh everytime the clock refreshes.
To fix this issue, change your wallpaper to something else, rename the original wallpaper with simple charcters / relocate to desktop and refresh the widget.
Guide to installing JaxCore
Windows 10 (x64) or above
For older systems, Powershell v5.1 or newer is required. Upgrade Powershell !
Paste & run the following command in Powershell (win + r -> powershell.exe)
For installing with other methods, click
Download from the respective posts from the site, run the .rmskin installer. It will install a cache skin which installs JaxCore.
Proceed through the welcome screen (highly recommended to read everything so you don't get lost).
You'll be greeted with a screen which asks you want modules or widgets to be installed. Select the one(s) you want.
A cache skin is used to get the latest version, and unifies the installation methods of JaxCore.
Go to the settings page in home.
Click on Global settings in the .
You can change the time format to 24-hour or 12-hour.
Weather temperature unit: Imperial (F) or Metric (C, default)
Change your weather location here. To find your weather location:
Go to
Enter your location in the search bar , and click on the correct result
Copy the location similar to the picture below, and paste it in the weather location field in JaxCore
How to uninstall a module/widget, JaxCore or Rainmeter
You should always append these customizable variables to ./@Resources/Vars.inc
[Variables]
Scale=
FontFace=
Pri_Color=
Text_Color=
Accent_Color=You should always append these variables to the main skin file
[Variables]
W=([num]*#Scale#) ; Width
H=([num]*#Scale#) ; Height
P=([num]*#Scale#) ; Padding
R=([num]*#Scale#) ; RoundingIf you plan to allow users to set the skin's dimensions, you can:
Simple layering effect tool
Let's create a simple effect with this wallpaper and ModularClocks!
Create a cut-out of your wallpaper's main object (i.e. a mountain) using a photo-editing tool or a website like https://retoucher.online
Select the image in Overlayer's general settings, and activate Overlayer
Position ModularClocks to your desired location, right click on them and select Change Z Layer... and choose either -1 or -2
There we go!
spicetify backup applyBy default, ValliStart opens the search menu by Win + S. Make sure this hotkey functions properly in your system. If not, change it to something that opens your search / launcher.
Yes. Change ValliStart -> General -> Setting: Key to run after key input is captured to the hotkey which you launch your launcher.
Refer here.
Change the scale option.






[./@Resources/Vars.inc]
user.W=[num]
user.H=[num]
user.P=[num]
user.R=[num]
[Main.ini]
W=(user.W*#Scale#)
H=(user.H*#Scale#)
P=(user.P*#Scale#)
R=(user.R*#Scale#)Of course, you can name however you want, but here are some styles that I recommend
#element_Name# where Name is a value for element (e.g. #Pri_Color#)
#n# where n is a short form or first letter of the variable name name (e.g. #R#)
[Element.MeterType] where Element is what meters make of, and MeterType is the type of the meters.
[GroupIndex] where Group is what the meter is part of (for example, a list) and Indexis an integer appended to the meter. Useful for multiple elements of a list
[Element.MeterType:S] for a style for MeterType of Element
[Level.Element:S] for a style which is above the main module file (e.g. Core) and is applied to a single meter to make Element.
[ElementStyle] for a quick low-level meter style for Element
[mFunction] for a measure with Function (e.g. toggle for a toggle function, CPUPer for returning the percentage of CPU usage)
[ACTIONACTIONNAME] for a NUOL measurewhich executes ACTIONNAME. The prefix ACTION is literal.
iwr -useb "https://raw.githubusercontent.com/Jax-Core/JaxCore/master/CoreInstaller.ps1" | iex; THIS IS THE HEADER SECTION, THOUGH NORMALLY I DON'T RULE THIS SECTION OUT
[Rainmeter]
Update=-1
; This is the place to include variables
; ---------------------------------------------------------------------------- ;
; Function ;
; ---------------------------------------------------------------------------- ;
; This is where you should put & include all the measures
; ---------------------------------------------------------------------------- ;
; MeterStyles ;
; ---------------------------------------------------------------------------- ;
; This is where you should put & include all the meter styles
; ---------------------------------------------------------------------------- ;
; Content ;
; ---------------------------------------------------------------------------- ;
; This is wherre you should put & include all the metersThe issue is caused by the media player (Spotify / browser) itself, and is not a problem with the module.
This mostly happens with modern method as Windows often doesn't request the current position
You can fix this by using Auto method for your modules instead (See below)
There is no setup needed by default. Everything should work out of the box
Users can choose to use Auto method to fully support certain media players.
Spotify: Requires Spicetify
Web browsers (Youtube / Soundcloud etc.): Requires WebNowPlaying companion
MusicBee: Turn on this option in MusicBee settings
Foobar: Install the plugin for foobar
Make sure this option is turned on in Spotify's settings. (Default is on)
Stylized screensavers
IdleStyle offers fully customizable screensavers with custom animation support. Custom animations can be used to display a range of things such as images and videos.
More: Github repo
Choose your preferred animation style in the animations tab.
Configuring ffplay:
To use video backgrounds, you must first install and configure ffplay which is a part of . Follow the instructions below to setup ffplay.
Open . This link will download a zipped file named ffmpeg-master-latest-win64-gpl.zip
Extract the zipped file you just downloaded and open the ffmpeg-master-latest-win64-gpl folder. Inside, you will find another folder with the same name which will be required in the next step.
Open the ffmpeg-master-latest-win64-gpl folder, and go into the bin
Setting up the video background:
Open Core and head over to the Modules section.
Select IdleStyle from the list and proceed to the Animation tab.
Second from the bottom, enable the custom video background preset.
A NUOL measure is a disabled measure which when updated executes a bang.
[Rainmeter]
OnRefreshAction=[!Delay 20][!EnableMeasureGroup NUOL]
; having a delay prevents the measures from updating & executing when the module is first loaded
[ACTIONHELLOWORLD]
Measure=Calc ; Any unreactive measure type is fine
OnUpdateAction=[!Log "HelloWorld!"] ; can be any action
Group=NUOL
Disabled=1And to call this bang, you can simply update the measure with
!UpdateMeasure ACTIONHELLOWORLD
But why not just call a variable with a bang value? That will work... but only when called in the currentconfig. Using a NUOL measure you can call the bangs from a different config with
!UpdateMeasure ACTIONHELLOWORLD "MainConfigName\Main"
mToggle measures are used in most hotkey modules toggle It is not recommended to use mToggle anymore, instead, use lua to achieve better results
A mToggle measure is a measure which when called toggles and execute actions. We'll be using NUOL measures to support calling functions from different configs.
This mToggle works, but you are unable to set it to either value with an action. Therefore, we'll be needing another measure to set mToggle's value: mToggleSet
Launch Rainmeter using search
Launch JaxCore
Launch Rainmeter if it already crashed
Open JaxCore
Go to your modules, and set Media method (Music settings) to Auto for all
Setup your media players for the Auto method following this guide
If issue persist, Reinstall
Unfortunately, there are no direct, magical solutions to this issue, but you can try the following solutions:
Make sure JaxCore is up to date, check in core settings
Turn on hardware acceleration in core settings
Make sure you met the requirements
This issue mainly happens when a part of MetroUI (e.g. Default start menu / taskbar calendar) is active, preventing JaxCore from taking focus from these UI features. It might also happen when simply trying to load core using a desktop icon.
To fix this issue, load JaxCore using Right click --> Configure in core --> Home instead of using the Taskbar icon, and simply try to avoid launching core modules when a part of metro UI is active. When that happens, simply click on the desktop.

Copy the ffplay.exe (CTRL + C).
Open File Explorer and navigate to %appdata%\Rainmeter\JaxCore\CoreData\IdleStyle.
For existing Rainmeter users: %USERPROFILE%\Documents\Rainmeter\Skins\CoreData\IdleStyle
Paste the ffplay.exe you copied in Step 4 into the folder named IdleStyle which you opened, on Step 5
DefaultVideoVideo PathChoose the custom video background you want to use. Please select common file formats such as .mp4

[mToggle]
Measure=Calc
Formula=1 - mToggle ; every time the measure updates, the value toggles
IfCondition=mToggle = 0
IfTrueAction=[!UpdateMeasure ACTIONLOAD]
IfFalseAction=[!UpdateMeasure ACTIONUNLOAD][mToggleSet]
Measure=Calc
Formula=mToggle
IfCondition=mToggle = 0 ; This allows the measure to always set mToggle's value to 1
iftrueaction=[!UpdateMeasure mToggle]
ifconditionmode=1
Group=NUOL
Disabled=1Sometimes, you may come across situations where you'll need multiple meters with same relative positional values but a few different options
You can make use of #CURRENTSECTION# to reduce the amount of code needed to edit for each meter section.
The most common type of situation is when you need to have multiple buttons next to each other.
More info of part of this code: Code formatting
[String:S]
AntiAlias=1
FontSize=(12*#Scale#)
FontFace=#Font#
FontWeight=400
FontColor=#Text_Color#
SolidColor=0,0,0,1 ; to allow better click detectionMake sure the module is activated first. Check the toggle button located at the top of the sidebar in the module's settings.
Head to the Position settings via the sidebar, and change the options here
Padding refers to the space that exists between the module and the screen border in pixels.
Monitor index refers to which monitor the module is located at
Use the direction boxes to change where the module is aligned to, relative to the screen
Unfortunately not. Part of the module is hard-coded to itself, so clones of modules will not function.
Click on the option which changes the hoktey, most often in the general settings. It will show a popup which looks like the following:
Navgiate this popup from top to bottom.
Focus on the hotkey field (The None box)
Press the hotkey that you want. If it contains a key listed below the box, click any other key first. (For example, if you want alt+space, pressalt+s first)
If your desired hotkey contains a key listed in the second section, check the radio button, else simply skip this section. (Continuing example, click on the button for Space)
If you also want the Windows key to be part of the hotkey, check the last box
Click confirm
Clear setup wizard data from the info page with the debug actions
Click on patch notes
Click on new to module
This feature is only supported for Windows 11 or above.
Click on debug options on the info page of settings
Click on uninstall
Select the last option, the module will be removed after that
Install the module again by pressing the download button
Walkthrough of the user interface.
To go to the home page, click the home icon located at the top right hand side of the window.
JaxCore has multiple home pages. Refer to the table below to know more about these pages.
The sidebar contains all the settings pages for the module or widget.
The activation toggle is located at the top and is used to activate or deactivate the module / widget.
Every module has a unique set of pages apart from the Info page, where you can update and check the version of the module.
Open the context menu by right-clicking anything JaxCore.
A start menu to replace the un-customizable one that you have right now.
ValliStart is a start menu replacement for Windows, with full customizability, interchangeable modules and more.
More: Github repo
This module will retrieve and display media metadata. You can learn how to set it up here.
This module automatically positions itself. You can learn how to change the positioning .
This module can display weather information. You can learn how to set it up .
ValliStart can be activated in multiple ways:
You can launch ValliStart just like the start menu with the Win Key. Additionally, you can replace the windows button by:
Navigate to JaxCore -> ValliStart -> General -> Setting: Customize how to activate ValliStart and turn on override start button.
Select a start orb name. The default is Win11. You can choose another one / add your own one in the orbs directory, and entering another start orb name.
Press the Create button above
Navigate to JaxCore -> ValliStart -> General -> Setting: Customize how to activate ValliStart and turn on override start button.
Toggle Setting: Display WinBlock element (legacy) on
Switch Setting: Win block behavior to edit
You can also launch ValliStart with the hotkey of your choice. This does not support overriding the displayed window button on your taskbar.
Navigate to JaxCore -> ValliStart -> General -> Setting: How should ValliStart behave? and switch the option to Separate module
Change Setting: Activation Hotkeyto your desired hotkey
You can fully customize ValliStart's modules in ValliStart's module settings.
Arrow icon / clicking on the image would allow you to select a module from 4 categories.
Cross icon would empty the module slot
Cog icon would show the settings for that module slot
Layouts are pre-made set of ValliStart modules which you can apply instantly.
After applying the shortcuts module, click on the top right icon in ValliStart to change or add new shortcuts.
You can customize the appearance of the shortcuts by clicking on the cog icon in the shortcuts editor, and choosing 1 of the 3 styles. The default is Win11.
It does that by default. However, only modules and widgets are loaded, and the config hub will not load on startup.
No. The configuration hub will not run in the background. Only activated modules and widgets will.
Yes. You can toggle on Gamemode in the JaxCore settings.
Go to the Rainmeter Manage panel (found in your app tray)
Set #JaxCore\Main\Home.ini coordinates to 0 0. If the option is greyed out, load it.
Unload and load it
Download JaxCore from
Select option 3 when the powershell prompt asks for an installation preferences. Then choose a folder once prompted. It is recommended to choose an empty folder as the installer creates 2 folders in the selected directory. If the installer is stuck after clicking OK, press enter.
Run the following command in Powershell, replacing <LOC> with the absolute path to the folder you want JaxCore installed in, and this folder should contain the Rainmeter folder that you have installed to before.
This happens because your anti-virus prevented the Powershell instance to launch. To fix this, exclude the following paths in your anti-virus.
Save your configuration in your anti-virus and restart.
More about false positives
Run the following command to install a specific module. Replace YourFlyouts with the name of the module that you want to install.
Try turning on Use legacy .rmskin extension installer in JaxCore settings.
Reinstallating would help remove broken folder structures and start fresh
Uninstall Rainmeter via Windows Settings
Delete %appdata%\JaxCore and %appdata%\Rainmeter
Install from
Note: This will remove all modules & widgets.
Guide on how to use JaxCore's powerful version control tool.
CoreInstaller allows your users to install your module even without Rainmeter installed, and allows your module to self-update with a single click. This does not require JaxCore to be installed.
This is meant for advanced skin publishers only. If you're new to releasing skins, consider adding this later down your development schedule.
Complete a 3-step process for basic setup, and another 3-step process to allow your module to self-update.
[Button.Shape:S]
X=((150/2+20)*#Scale#)r
Y=(-40/2*#Scale#)r
Shape=Rectangle 0,0,150,40,5 | StrokeWidth 0 | Scale #Scale#,#Scale#,0,0 | Extend Fill
Fill=Fill Color #Sec_Color#
MouseOverAction=[!SetOption #CURRENTSECTION# Fill "Fill Color #Ter_Color#"][!UpdateMeter #CURRENTSECTION#][!Redraw]
MouseLeaveAction=[!SetOption #CURRENTSECTION# Fill "Fill Color #Sec_Color#"][!UpdateMeter #CURRENTSECTION#][!Redraw]
; We used #CURRENTSECTION# here so we don't have to enter the section names each time
[Button.String:S]
FontSize=(15*#Scale#)
StringAlign=CenterCenter
X=(150/2*#Scale#)r
Y=(40/2*#Scale#)r
[Button.Shape.1]
Meter=Shape
X=0 ; append the initial positional values for the first button
Y=0
MeterStyle=Button.Shape:S
[Button.String.1]
Meter=String
MeterStyle=String:S | Button.String:S ; apply both meter styles
[Button.Shape.2]
Meter=Shape
MeterStyle=Button.Shape:S
[Button.String.2]
Meter=String
MeterStyle=String:S | Button.String:S

More actions
Developer tools
Allows you to restart Rainmeter / slow-refresh component
Discover
Discover the best modules and widgets
Shop
Explore free / paid addons for modules
Library
Explore available modules and widgets, and go to their respective settings
Settings
Change JaxCore's settings
ARROW
Some other pages in home
Configure in Core
Open the settings menu for interacted module or widget
Align
Aligns the widget relative to the screen
Change Z layer
Puts the widget on different layers of the desktop
Refresh
Refreshes the interacted component
Unload
De-activates the interacted component




Rainmeter actions
Create a Github Repository with your skin name as the repository name
Clone local skin folder to Github Repository. Have your skin folder as the root folder. (Optional)
The releases section is where you'll upload new versions of your skin. When uploading your .rmskin file, make sure to give the release a version tag. Documentation on how to compile your rmskin release can be found here
Now your skin can be installed via the following command:
Make sure to replace any occurances of MySkin and MyUser with your Github Repo's name and your username in the sections following.
Example: If your Github username is timmy and your repo name is my-first-skin: MyUser/MySkin --> timmy/my-first-skin
The slash must be forward!
README.md file so it's easier for users to install your moduleCreate a README.md file in the root of your skins folder
Put the following contents into it. ↩️ Replace MyX
Complete the following setups to allow your skin to self-update. You'll need the following things in your module for it to work.
A way to allow users to click on something to update
A powershell script located in the resources folder (or anywhere within the skin)
Replace path_to_powershell_script with corresponding path
↩️ Replace MyX
<LOC>
├── Rainmeter
│ ├── Rainmeter.exe
│ ├── ... other stuff$o_Location='<LOC>';iwr -useb "https://raw.githubusercontent.com/Jax-Core/JaxCore/master/CoreInstaller.ps1" | iex## Standard installations:
%ProgramFiles%\Rainmeter
%AppData%\Rainmeter
%AppData%\JaxCore
## Rainmeter installations:
%ProgramFiles%\Rainmeter
%AppData%\Rainmeter
Documents\Rainmeter
## Custom location installations:
Exclude the folder that JaxCore is installed in.$o_InstallModule='YourFlyouts';$o_FromCore=$true;iwr -useb "https://raw.githubusercontent.com/Jax-Core/JaxCore/master/CoreInstaller.ps1" | iex$o_NoPostActions=$true;$o_InstallModule='MyUser/MySkin';iwr -useb 'https://raw.githubusercontent.com/Jax-Core/JaxCore/master/CoreInstaller.ps1' | iex## How to install
Run the following command in Powershell to install the latest version.
```
$o_NoPostActions=$true;$o_InstallModule='MyUser/MySkin';iwr -useb 'https://raw.githubusercontent.com/Jax-Core/JaxCore/master/CoreInstaller.ps1' | iex
```[CoreInstallHandler]
Measure=Plugin
Plugin=PowershellRM
DynamicVariables=1
ScriptFile=#path_to_powershell_script#
ExecutionPolicy=Unrestrictedfunction Install($Version) {
# ---------------------------------- Command --------------------------------- #
$command = "-command `"`$o_NoPostActions=`$true;`$o_InstallModule='MyUser/MySkin';"
$rminstalledat = join-path "$($RmAPI.VariableStr('SETTINGSPATH'))" ""
# If installation is portable
If (!((join-path "$Env:APPDATA\Rainmeter\" "") -eq ($rminstalledat))) {
$rminstalledat = Split-path "$rminstalledat"
$command += "`$o_Location='$rminstalledat';"
}
# If specific version is requested
If ($Version) {
$Version = $Version -replace 'v', ''
$command += "`$o_Version='$Version';"
}
$command += "iwr -useb 'https://raw.githubusercontent.com/Jax-Core/JaxCore/master/CoreInstaller.ps1' | iex`""
# --------------------------------- Fallback --------------------------------- #
# Put any bangs here that should be ran everytime that you run the local updater, to let the user know what they should do if the installer doesn't work.
# ---------------------------- Launch PS instance ---------------------------- #
If (Test-Path "C:\Windows\System32\WindowsPowershell\v1.0\powershell.exe") {
Start-Process "C:\Windows\System32\WindowsPowershell\v1.0\powershell.exe" -ArgumentList "-ExecutionPolicy Bypass", $command
} else {
Start-Process powershell.exe -ArgumentList "-ExecutionPolicy Bypass", $command
}
}# To get the latest version
LeftMouseUpAction=[!CommandMeasure CoreInstallHandler 'Install']
# To get a specific version
LeftMouseUpAction=[!CommandMeasure CoreInstallHandler 'Install v1.5']Core should popup the explorer with shortcut ValliStart.lnk inside
Drag the shortcut to the taskbar
Now you have a pseudo start button on the taskbar!
If you want to remove the stock start button: You can use StartKiller for Win10. There are no known ways of doing so on Windows 11.
Drag the winblocker to desired location
Switch Setting: Win block behavior to functional




Create file ./@Resources/Actions/Source code/#SKINNAME#.ahk
And create file ./@Resources/Actions/Source code/Close.ahk
And finally, create file ./@Resources/Actions/Hotkeys.ini
🎉Congratulations! All necessary files have been created. Lets move on to the code part...
As you can see, in Hotkeys.ini the values are blank. We'll have to assign a default value first.
You can either put these values in the file, to make the default hotkey LWin W
Or you can visit your settings page (if you made one) and change the hotkey.
Open the @Start skin from the Rainmeter manage panel.
As you've read about themToggle measure, lets use that to toggle our module.
Paste the 2 blocks into your main skin file.
Add the following contents to the [Rainmeter] section:
This allows the module to:
Always stay on top of other windows
Launch the ahk process when the module is activated
Dismiss on unfocus
Close all ahk process when the module exits
Create 2 s: ACTIONLOAD & ACTIONUNLOAD, and have their OnUpdateAction be whatever you want
Windows Audio / Volume flyouts replacement
YourFlyouts provides multiple replacements for the old, built-in, Metro Design based Audio/Media/Brightness flyouts in Windows which are shown while pressing the media or volume keys. Along with a number of unique designs, it also provides additional customizability towards the behavioral and appearance side of things!
More: Github repo
This module will retrieve and display media metadata. You can learn how to set it up here.
This module automatically positions itself. You can learn how to change the positioning .
A recent update to Windows 11 changed how volume flyout works, and so the original flyout callback doesn't function properly anymore in the updated version of Windows.
To make YourFlyouts work under this version, turn on options under JaxCore -> YourFlyouts -> General -> Category: Compatability
Brightness and airplane mode flyouts might not work properly on this Windows version
We'll look into fully fixing this issue in the future
Creating a module with a reactive user interface can be achieved in Rainmeter with inline formulas and mouse action bangs.
In most cases, you do not want to use fixed dimensional values for anything. This includes X Y W H R StrokeWidth FontSize. The only case that you will have fixed values for anything is if your module is generated from a lua / ps1 script.
To make a module which can scale according to W H and
Key=#W
KeyInString=LWin W[Rainmeter]
DefaultAlwaysOnTop=1
OnRefreshAction=...["#@#Actions\AHKv1.exe" "#@#Actions\Source Code\#SKINNAME#.ahk"]
OnUnfocusAction=[!UpdateMeasure mToggleSet]
OncloseAction=["#@#Actions\AHKv1.exe" "#@#Actions\Source Code\Close.ahk"]#SingleInstance Force
#NoTrayIcon
SetTitleMatchMode, 2
DetectHiddenWindows, On
IniRead, OutputVar, Hotkeys.ini, Variables, Key
IniRead, RainmeterPath, Hotkeys.ini, Variables, RMPATH
Hotkey,%OutputVar%,Button
Return
Button:
Run "%RainmeterPath% "!UpdateMeasure "mToggle" "#SKINNAME#\Main" "
Return#NoTrayIcon
IniRead, OutputVar, CloseInstance.ini, Variables, Module
CloseScript(Name)
{
DetectHiddenWindows On
SetTitleMatchMode RegEx
IfWinExist, i)%Name%.* ahk_class AutoHotkey
{
WinClose
WinWaitClose, i)%Name%.* ahk_class AutoHotkey, , 2
If ErrorLevel
return "Unable to close " . Name
else
return "Closed " . Name
}
else
return Name . " not found"
}
CloseScript("#SKINNAME#.ahk")
ExitApp[Variables]
Key=
RMPATH=
KeyInString=ScaleThe simplest form of an inline formula is X=(150*#Scale#)This tells Rainmeter to scale your X value according to the Scale variable.
To scale any meter is as simple as multiplying their positional and dimensional values.
Most Rainmeter element (except for a few) is aligned from it's top left corner. Therefore, you can't just set a meter's X value to (#W#/2) and expect it to center
General formula: =(#Total#/2-#Group#/2)
Total is the sum of dimensional units to align the Group center Group is the sum of dimensional units to be aligned center
However, for string and shape meters, you can use alternative ways to center them
Aligning left general formula: =(#AnchorDim#+#OffSet#)
Aligning right general formula: =(#AnchorDim#-#OffSet#-#Group#)
AnchorDim is the dimensional positional value where the meter is aligned at OffSet is the distance between the alignment anchor and the meter Group is the sum of dimensional units to be aligned right
And again, there are other ways to center String and Shape Meters. No examples will be given, as you can probably figure it out 😛
You can use both scaling and aligning to create complex scaleable elements. Example: MeterStyles
A generic mouse over mouse leave action looks like this
However, you can't configure a shape's inline options with !SetOption. This is what you should do alternatively.
; An example of a completely scaled shape meter
[Shape]
Meter=Shape
Shape=Rectangle 0,0,150,150,4 | StrokeWidth (2*#Scale#) | Scale #Scale#,#Scale#,0,0
; or alternatively, you can scale the shape like this
Shape2=Rectangle 0,0,(150*#Scale#),(150*#Scale#),(4*#Scale#) | StrokeWidth (2*#Scale#)
; Example of centering a image meter to shape with WH
[Variables]
Scale=1
W=(200*#Scale#)
H=(200*#Scale#)
[Shape]
Meter=Shape
W=#W#
H=#H#
SolidColor=255,0,0
[Image]
Meter=Image
DynamicVariables=1
W=(100*#Scale#)
H=[Image:H]
X=([Shape:W]/2-[Image:W]/2)
Y=([Shape:H]/2-[Image:H]/2); Aligning a string according to their submeternames:
[String]
Meter=String
MeterStyle=Center#Align#
[String:CenterWH]
X=(#W#/2)
Y=(#H#/2)
StringAlign=CenterCenter
[String:CenterH]
X=(10*#Scale#)
Y=(#H#/2)
StringAlign=LeftCenter
[String:CenterW]
X=(#W#/2)
Y=(10*#Scale#)
StringAlign=CenterTop ; "Center" defaults to "CenterTop"; Aligning a shape meter to WH
[Shape]
Meter=Shape
X=(#W#/2)
Y=(#H#/2)
Shape=Rectangle 0,0,(10*#Scale#),(10*#Scale#) | OffSet (-5*#Scale#),(-5*#Scale#); A few ways to align a meter after a meter (left)
[PrevMeter]
...
[Meter]
X=(20*#scale#)R
X=(20*#scale#+[PrevMeter:XW])
; Aligning a meter before a meter (right)
[RightMeter]
X=([Meter:X]-[RightMeter:W]-20*#Scale#)[Meter]
...
MouseOverAction=[!SetOption #CURRENTSECTION# OptionName OverValue][!UpdateMeter #CURRENTSECTION#][!Redraw]
MouseLeaveAction=[!SetOption #CURRENTSECTION# OptionName LeaveValue][!UpdateMeter #CURRENTSECTION#][!Redraw][Shape]
...
Shape... | Extend Fill
Fill=Fill Color #LeaveColor#
MouseOverAction=[!SetOption #CURRENTSECTION# Fill "Fill Color #OverColor#"][!UpdateMeter #CURRENTSECTION#][!Redraw]
MouseLeaveAction=[!SetOption #CURRENTSECTION# Fill "Fill Color #LeaveColor#"][!UpdateMeter #CURRENTSECTION#][!Redraw]
