Cursor is distributed for Linux as an AppImage, which works well on Manjaro because you do not need to wait for a package in the official repositories or the AUR.
Before writing this post, I tried installing Cursor from the AUR, but it was not stable enough for me. I also did not love the extra Electron dependency, although that was not the main reason I moved away from that method. At the time of writing, there is no official Snap release, no official Manjaro or Arch package for Cursor either.
So this guide uses the AppImage directly from Cursor’s own update endpoint. I usually prefer keeping AppImages under ~/.local/opt and exposing only a small launcher command from ~/.local/bin.
This keeps the installation local to your user, easy to update, and easy to remove.
Install the Required Packages#
First make sure curl is installed. On Manjaro, it is also useful to have fuse2 available because many AppImages still depend on it.
1
| sudo pacman -Syu curl fuse2
|
Create a Directory for Cursor#
Create a dedicated directory for the Cursor AppImage:
1
| mkdir -p ~/.local/opt/cursor
|
Download the Latest Cursor AppImage#
Download the latest Cursor build into that directory:
1
2
| curl -L "https://api2.cursor.sh/updates/download/golden/linux-x64/cursor/" \
-o ~/.local/opt/cursor/cursor.AppImage
|
Then make it executable:
1
| chmod +x ~/.local/opt/cursor/cursor.AppImage
|
Create the cursor Command#
Create ~/.local/bin if it does not already exist:
Then create a symlink so you can start Cursor from the terminal:
1
| ln -sf ~/.local/opt/cursor/cursor.AppImage ~/.local/bin/cursor
|
Make sure ~/.local/bin is in your PATH. If you use Zsh, add this to ~/.zshrc if it is not already there:
1
| export PATH="$HOME/.local/bin:$PATH"
|
Reload your shell:
Now test it:
For a proper desktop launcher, you need an icon file. The AppImage already contains one, so you can extract it:
1
2
3
4
5
6
7
8
9
| cd ~/.local/opt/cursor
./cursor.AppImage --appimage-extract
cp \
~/.local/opt/cursor/squashfs-root/usr/share/icons/hicolor/512x512/apps/cursor.png \
~/.local/opt/cursor/cursor.png
rm -rf ~/.local/opt/cursor/squashfs-root
|
Create the Desktop Entry#
Create the desktop applications directory:
1
| mkdir -p ~/.local/share/applications
|
Then create the desktop entry:
1
| nano ~/.local/share/applications/cursor.desktop
|
Use this content, but replace YOUR_USER with your real Linux username:
1
2
3
4
5
6
7
8
| [Desktop Entry]
Name=Cursor
Exec=/home/YOUR_USER/.local/opt/cursor/cursor.AppImage
Icon=/home/YOUR_USER/.local/opt/cursor/cursor.png
Type=Application
Categories=Development;
Terminal=false
StartupNotify=true
|
For example, if your username is omid, the paths should start with /home/omid/....
After saving the file, make it executable:
1
| chmod +x ~/.local/share/applications/cursor.desktop
|
You should now be able to find Cursor in your application launcher.
One-Command Install and Update Script#
If you want a single command for future updates, create a small update-cursor script:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
| mkdir -p ~/.local/bin
cat > ~/.local/bin/update-cursor <<'EOF'
#!/usr/bin/env bash
set -euo pipefail
CURSOR_DIR="$HOME/.local/opt/cursor"
CURSOR_APPIMAGE="$CURSOR_DIR/cursor.AppImage"
CURSOR_ICON="$CURSOR_DIR/cursor.png"
DESKTOP_FILE="$HOME/.local/share/applications/cursor.desktop"
DOWNLOAD_URL="https://api2.cursor.sh/updates/download/golden/linux-x64/cursor/"
if ! command -v curl >/dev/null 2>&1; then
echo "curl is required. Install it with: sudo pacman -S curl" >&2
exit 1
fi
mkdir -p "$CURSOR_DIR" "$HOME/.local/bin" "$HOME/.local/share/applications"
TMP_DIR="$(mktemp -d)"
TMP_APPIMAGE="$TMP_DIR/cursor.AppImage"
cleanup() {
rm -rf "$TMP_DIR"
}
trap cleanup EXIT
echo "Downloading latest Cursor AppImage..."
curl --fail --location --show-error "$DOWNLOAD_URL" --output "$TMP_APPIMAGE"
chmod +x "$TMP_APPIMAGE"
echo "Extracting Cursor icon..."
(
cd "$TMP_DIR"
"$TMP_APPIMAGE" --appimage-extract >/dev/null
)
install -m 644 \
"$TMP_DIR/squashfs-root/usr/share/icons/hicolor/512x512/apps/cursor.png" \
"$CURSOR_ICON"
mv -f "$TMP_APPIMAGE" "$CURSOR_APPIMAGE"
ln -sfn "$CURSOR_APPIMAGE" "$HOME/.local/bin/cursor"
cat > "$DESKTOP_FILE" <<DESKTOP
[Desktop Entry]
Name=Cursor
Exec=$CURSOR_APPIMAGE
Icon=$CURSOR_ICON
Type=Application
Categories=Development;
Terminal=false
StartupNotify=true
DESKTOP
chmod +x "$DESKTOP_FILE"
if command -v update-desktop-database >/dev/null 2>&1; then
update-desktop-database "$HOME/.local/share/applications" >/dev/null 2>&1 || true
fi
echo "Cursor has been installed or updated."
echo "Run it with: cursor"
EOF
chmod +x ~/.local/bin/update-cursor
|
After that, installing or updating Cursor is just:
If Cursor is open while you update it, close it first, run update-cursor, and then start it again.