>_ DevTrendszh

语言

首页

语言

板块

前端 后端 移动端 DevOps AI / ML 游戏开发 区块链 嵌入式 安全
C-sharp

CrossMacro Combines Click Recording, Hotkeys, and Scheduler Across Three OSes

Try automating routine mouse clicks on modern Linux with Wayland. In nine out of ten cases, good old utilities like xdotool simply throw up their hands due to the display server's security restrictions. On Windows, AutoHotkey is typically used for such tasks, while on macOS people install separate clickers and text expanders. The result is that every workstation ends up with a mismatched collection of software.

The CrossMacro project tries to fill this gap and provide one clear automation tool for Linux, Windows, and macOS.

CrossMacro recording interface preview

Under the Hood

The author wrote the application in C# using the Avalonia UI framework. This delivers a clean interface that looks the same on all systems and supports a dozen built-in themes (from Nord and Gruvbox to Dracula and Catppuccin).

But the main thing here is not the GUI—it's how the input problem is solved. On Linux, the application can work in two modes: through its own system daemon or directly via input devices (uinput / direct device access). Thanks to this, macros execute without issues in both classic X11 and under Wayland.

Key Features

CrossMacro is built like a Swiss Army knife for the desktop. Inside, it packages four automation directions at once.

Record and Playback Actions

Everything starts with the classic recorder. Press F8, perform mouse and keyboard actions, press F8 again. Done.

Playback via F9 can be customized for your needs:

  • change speed from 0.1x to 10.0x;
  • insert a pause at F10;
  • set number of repetitions or an infinite loop;
  • add random delays between iterations to simulate a live person's actions.

Macro Editor with Logic

The recorded file with the .macro extension doesn't need to be re-recorded from scratch if you accidentally missed by a couple of pixels. The built-in editor lets you manually edit coordinates, change the order of actions, insert pauses and text blocks.

Basic conditions and screen reading are also available here:

  • pixelcolor — reading the color of a specific pixel;
  • waitcolor — waiting for the right shade at a specified point on the screen;
  • pixelsearch — searching for the right color in a given area.

Such commands come in handy when you need to wait for a window to load or a button status to change before the next click.

| Playback | Text Expansion | Shortcuts | | :---: | :---: | :---: | | Playback | Text Expansion | Shortcuts | | Scheduled Tasks | Editor | Settings | | Scheduled Tasks | Editor | Settings |

Text Snippets and Hotkeys

If you don't need complex cursor movements and just want to quickly insert template responses, addresses, or code snippets, CrossMacro has a built-in text expansion module. Type a defined abbreviation, and the utility instantly replaces it with the long text.

Macros can also be bound to key combinations. There are two modes: normal start on press and execution only while the key is held.

Scheduler and Terminal Operation

Any action can be scheduled: once, at an interval, weekly, or on selected days.

For bash script enthusiasts, there's a full CLI. The application can start without opening the main window, running in the background and executing macros directly from the terminal:

# Валидация файла макроса
crossmacro macro validate ./demo.macro

# Запуск макроса с ускорением в 1.25x и тремя повторами
crossmacro play ./demo.macro --speed 1.25 --repeat 3 --repeat-delay-ms 500

# Выполнение цепочки действий одной строкой
crossmacro run --step "move abs 800 400" --step "click left" --dry-run

Worth keeping in mind: console mode still requires an active desktop session. You won't be able to run it on a remote server without a graphical display.

How to Install and Configure

The project is distributed through virtually all popular distribution channels.

On Linux, the following are available:

  • Flatpak via Flathub (io.github.alper_han.crossmacro);
  • .deb and .rpm packages on the releases page;
  • AUR for Arch Linux (yay -S crossmacro);
  • Official module for NixOS (services.crossmacro).

On Windows, the app is installed via winget (winget install AlperHan.CrossMacro), Microsoft Store, or a portable exe file. On macOS, there are DMG packages for Apple Silicon and Intel.

If something goes wrong after installation (for example, lacking daemon socket permissions on Linux, or forgetting to grant screen recording permission on macOS), the developer added built-in diagnostics:

crossmacro doctor --json --verbose

The command will output the status of all services and suggest which permissions are missing in the current session.

Is It Worth Trying

CrossMacro is suitable for those tired of configuring different utilities for different operating systems. If you regularly need to fill out the same forms in legacy desktop programs, test interfaces with clicks, or run repetitive actions on a schedule, the project will definitely save a couple of hours of routine work. The repository is open under the GPL-3.0 license, actively updated, and ready for use right now.

相关项目