How to Enable and Use Cursor Skins
Learn how Atmos replaces the system cursor, how to switch between built-in and custom skins, and which hidden details matter when a skin does not behave the way you expect.
How to Enable and Use Cursor Skins
Cursor skins are one of the features that make Atmos feel immediately different from a normal media utility. They change a part of macOS that most desktop apps never touch, and they do it in a way that fits into the rest of the Atmos environment.
They are also one of the easiest areas to misunderstand if you only look at the obvious controls. There is a visible on or off state, but there are also deeper behaviors involving accessibility permissions, built-in versus custom skins, variants, tinting, and smart cursor positioning.
This guide explains how the cursor skin system works and how to use it confidently.
What cursor skins are in Atmos
A cursor skin in Atmos is a cursor replacement set made up of images for different cursor states.
That includes states such as:
- arrow
- text
- pointer
- resize cursors
- wait
- app starting
Atmos overlays its own visual cursor system on top of the desktop experience and keeps track of the current cursor state so it can display the matching replacement image.
This is why the feature feels more complete than a simple icon swap. It is not only replacing the arrow. It is trying to replace the broader cursor language of the system.
Where cursor skins live in the app
Open the Library area in Atmos and go to the Cursor section.
This section acts as the control center for cursor skins. From here, you can:
- enable or disable the current skin
- expand the cursor list
- choose a different skin
- switch variants when a skin has them
- tint certain built-in skins
- open the cursor import flow
- export or remove custom skins
The section behaves similarly to Audio and Background in some ways, but the cursor system has a few extra moving parts.
How to turn cursor skins on
To enable a cursor skin:
- Open the Cursor section in the Library.
- Pick a skin from the list.
- Make sure the cursor system is enabled.
If no skin is selected yet, opening the section first is usually the best move. Once a skin is active, tapping the active skin again can toggle the cursor replacement on or off.
This is one of the subtle behaviors worth learning:
- selecting a different skin activates it
- tapping the active skin again toggles the skin system itself
That makes the cursor section faster to use once you understand the pattern.
The hidden behavior: the title row acts as a toggle
Like some other parts of Atmos, the Cursor section header is not just a label.
When a cursor skin is already selected, clicking the Cursor title row toggles the skin system on or off.
If no skin has been selected yet, the same action opens the section instead.
This is a small but important detail. Once you know it, you can enable or disable cursor skins without drilling deeper into the list every time.
Why Accessibility permission matters
Cursor replacement on macOS is not completely frictionless. Atmos may need Accessibility permission to replace the system cursor seamlessly.
If permission is needed, Atmos shows an in-app banner prompting you to grant access.
This is not cosmetic. Without the right permission:
- the cursor system may not behave consistently
- replacement may not feel fully seamless
- some states may not update the way you expect
If the app asks for Accessibility access, treat it as part of the setup, not as an optional decoration.
What built-in skins are
Atmos includes built-in cursor skins out of the box. These are part of the app and do not need to be imported manually.
Built-in skins are useful because they:
- give you an immediate set of cursor styles to test
- cannot be accidentally removed from the app's baseline library
- support some extra polish such as tinting on supported built-in designs
If you are new to cursor skins in Atmos, start with a built-in set before moving into custom imports.
What custom skins are
Custom skins are user-added cursor sets that you either build inside Atmos or import from a .cursor package.
Compared with built-in skins, custom skins can usually be:
- exported
- removed
- re-imported elsewhere
This makes them more flexible, but it also means you are managing your own skin library instead of only using the app defaults.
How switching skins works
When you click a different cursor skin in the list:
- Atmos changes the active skin ID
- saves that selection
- restarts the cursor overlay if needed
That restart behavior is important. The app is not merely changing a label in the interface. It is rebuilding the active cursor replacement state so the new skin can take over.
This is one reason the system feels responsive despite being more complex than a simple theme toggle.
Variants: one skin can have more than one look
Some cursor skins support variants.
If the active skin includes more than one variant, Atmos shows small variant chips directly in the cursor row when that skin is active. You can switch among them without leaving the main cursor section.
This is a subtle but valuable feature because it means a single skin can offer several visual flavors without making you manage a large number of separate entries.
If you ever see a cursor skin with chips such as Default or another named style, that is the variant system at work.
Tinting: another hidden customization layer
Certain built-in cursor skins support tinting.
When a supported built-in skin is active and the Cursor section is expanded, Atmos can show a color control row that lets you:
- apply a tint
- open the tint picker
- reset the tint
This works especially well on lighter cursor designs where colorizing the image changes the look without destroying the shape.
That means a single built-in cursor skin can often be personalized more than users initially expect.
What “smart positioning” means for cursor skins
Some cursor skins, especially custom ones, support Smart Positioning.
This feature tries to auto-align the cursor tip more accurately by analyzing the visible content of the cursor image rather than relying only on generic hotspot defaults.
In practical terms, Smart Positioning is meant to make a custom cursor feel more precise, especially when:
- the tip is not centered in the image
- the cursor artwork has unusual proportions
- the design would otherwise feel visually offset during real use
This is one of the hidden quality-of-life features that makes a custom cursor feel better in motion, not just prettier in screenshots.
Why the preview can look better than a bad custom cursor feels
This is a useful expectation to set.
A cursor can look excellent in the preview circle and still feel slightly wrong in real use if:
- the hotspot is off
- the imported art has poor alignment
- the cursor states are incomplete
- the skin does not map cleanly to expected cursor shapes
That is why Smart Positioning and well-prepared assets matter. Cursor design is not only about what the artwork looks like. It is also about how accurately it behaves.
Hidden behavior: imported and built-in skins do not behave exactly the same
Built-in skins and custom skins share the same core engine, but they are not identical in how you manage them.
Built-in skins:
- are protected as part of the app
- cannot be deleted like user-added skins
- may support tint controls directly in the UI
Custom skins:
- can be exported
- can be removed
- can be imported into other setups
- depend more heavily on the quality of the source asset package
This is worth understanding early so you do not assume every cursor entry has the same lifecycle.
How custom skin rows reveal extra actions
Another subtle detail: custom skin rows expose more controls when you hover them.
For eligible custom skins, hover can reveal actions such as:
- export
- delete
This keeps the list visually clean most of the time while still giving you management controls when you need them.
It is a small design choice, but it makes the cursor section feel less cluttered.
What happens when no skin is active
If no cursor skin is active, the Cursor section shows an empty or inactive state instead of pretending the system is partially enabled.
This makes it easier to tell the difference between:
- no active skin selected
- a skin selected but currently turned off
- a skin actively replacing the cursor
That distinction matters because cursor problems often come from not knowing which of those three states you are actually in.
Good first choices for using cursor skins
If you are trying the feature for the first time, use this sequence:
- Pick one built-in skin.
- Enable it.
- Grant Accessibility access if Atmos asks for it.
- Move through the system normally and see how the cursor feels, not just how it looks.
- If the skin supports variants or tinting, try those after the base behavior already feels good.
This helps you learn the cursor system in a stable way before moving into custom imports.
Common reasons a cursor skin may not feel right
If a cursor skin does not feel correct, the most likely causes are:
- Accessibility permission is missing
- the active skin is turned off even though it is selected
- a custom cursor package has poor hotspot alignment
- the cursor asset set is incomplete
- the current variant is not the one you thought was active
Usually, the fix is not complicated. It is just one of those hidden state issues that is easy to miss if you do not know the system yet.
Useful hidden details in the cursor flow
Here are some cursor-specific details that are easy to miss:
- Clicking the Cursor title can toggle the whole cursor system.
- Clicking the active skin again can disable it instead of switching.
- Accessibility permission may be required for seamless replacement.
- Built-in skins can support tinting.
- Some active skins show variant chips directly in the row.
- Custom skins can expose export and delete controls on hover.
- Smart Positioning helps custom cursors feel more precise, not just more decorative.
These are exactly the sorts of details that make the feature much easier to understand once you know they exist.
Final thoughts
Cursor skins are one of the most technically ambitious parts of Atmos, but the user-facing experience is still designed to stay lightweight. Once you understand selection, toggle state, Accessibility permission, variants, tinting, and the difference between built-in and custom skins, the whole system becomes much easier to use.
In the next tutorial, we will build on that by covering the next step in the workflow: how to import a custom cursor pack into Atmos.
Atmos Journal
More posts, product updates, and deep dives from the team.