A streamlined script to set up Cursor on Ubuntu-based systems with ease π
Cursor Setup Wizard is a Bash script designed to simplify the installation, configuration, and even updates to the latest versions of Cursor β sometimes beyond what's available on the official site (see feedback).
Built specifically for Ubuntu-based systems, it addresses long-standing issues not resolved by Cursor itself, automates complex setup steps, and ensures a seamless experience for Linux users.
- β Why Cursor Setup Wizard?
- π Prerequisites
- π Quick Start
- β Features
- π οΈ How It Works
- π§βπ» Contributing
- π§ Improving the Script
- π Troubleshooting
- π License
- β Support This Project
- πΌ Open to Collaborations
This script was born from the frustration many Linux users faced, including myself, with the tedious and error-prone process of setting up Cursor. These issues, highlighted in issue #1465 from the official Cursor repository, made it clear that an automated solution was needed.
I initially shared a workaround in a gist, and the thoughtful feedback and suggestions in the comments inspired me to refine it into the tool you see here. The collaborative input from the community, including suggestions, feature requests, and shared solutions, was instrumental in shaping this project.
Cursor Setup Wizard ensures you can focus on what truly matters: coding, without the hassle of manual steps.
π I hope this repository proves helpful to others as well. It's an evolution of one of my first contributions, and I look forward to creating even more tools to assist the community. Feedback and improvements are always welcome! π
- Supported OS: Ubuntu-based Linux distributions (e.g., Ubuntu, Pop!_OS, Linux Mint, etc).
- Permissions:
sudo
privileges for dependency installation and system configuration. - Internet Connection: Required to download Cursor, its components and dependencies.
To get started immediately, run:
bash <(curl -s https://raw.githubusercontent.com/jorcelinojunior/cursor-setup-wizard/main/install.sh)
This command downloads the main script (cursor_setup.sh
), places it in ${HOME:-~}/cursor-setup-wizard/
, makes it executable, and runs it. It's the fastest way to set up Cursor without hassle.
- All-In-One Installation: Automatically fetch, download, and configure Cursor.
- AppArmor Integration: Applies a basic security profile for added safety.
- Launcher Creation: Generates launchers for both desktop and application menus to provide quick access.
- CLI Command: Adds a
cursor
command for launching Cursor from the terminal. - Interactive UI: Provides an enhanced terminal experience using
gum
. - Script Editing: Built-in menu option for editing the script with your preferred editor.
When you run the script, youβll see an interactive menu like this:
- All-in-One: Fully automates the download, setup, and configuration process.
- Reconfigure All: Reuses the existing AppImage for reconfigurations without re-downloading.
- Setup AppArmor Profile: Configures or reapplies AppArmor for enhanced security.
- Add 'cursor' CLI Command: Adds or updates the
cursor
terminal command. - Edit This Script: Opens the script in your preferred editor for customization.
- Exit: Closes the wizard.
At each step, the script provides clear prompts, spinners, and detailed logs to keep you informed.
Contributions are always welcome, and Iβd love to hear your suggestions or improvements! Even though itβs a simple script, every contribution will be thoughtfully considered.
If you're interested in contributing, here are some areas where your help would be especially valuable:
- Improving the scriptβs user experience.
- Adding support for new Linux distributions.
- Implementing new features that enhance the scriptβs functionality.
- Suggesting improvements for error handling or debugging tools.
To get started:
- Fork the Repository: Use the "Fork" button to create your own copy.
- Clone Your Fork:
git clone https://github.com/<your-username>/cursor-setup-wizard.git cd cursor-setup-wizard
- Create a New Branch:
git checkout -b feature/my-new-feature
- Make and Test Your Changes: Modify the code, add features, or fix bugs. Run the script locally to ensure everything works as expected.
- Commit your changes and push them to your fork.:
git commit -am 'Add some feature' git push origin feature/my-new-feature
- Open a Pull Request: Submit your changes with a clear and descriptive title and explanation of your improvements.
Feel free to reach out if you have any questions. Your contributions make this project better! π
If you're interested in debugging or enhancing the script, here are some resources and tips to help you get started!
To make your development experience smoother, consider using these tools:
- Bash Debug: Debug Bash scripts to inspect stages and diagnose issues.
- ShellCheck: Identify syntax issues and improve script quality.
- shell-format: Format and lint Bash scripts for better readability.
This script includes pre-configured settings for debugging in VS Code or other editors. Follow these steps to get started:
- Install the Bash Debug Extension.
- Open the Script in Cursor/VSCode:
- Navigate to the folder where the repository was cloned.
- Select a Debug Configuration:
- Use one of the two provided configurations:
Debug cursor_setup.sh
: Debug the main script.Bash-Debug Current File
: Debug the currently open Bash file.
- Use one of the two provided configurations:
- Set Breakpoints:
- Add breakpoints in the script where you want to inspect execution.
- Start Debugging:
- Launch the debugger and step through the script interactively.
This error occurs when the script cannot retrieve necessary headers from the server. Possible solutions include:
- Ensure your internet connection is stable.
- Check if the
VERSION_CHECK_TIMEOUT
value (default5
sec) is sufficient for your connection speed. Increase it if necessary. - Verify that the
DOWNLOAD_URL
is correct. If youβve modified it, ensure it points to a valid resource. The default is:https://downloader.cursor.sh/linux/appImage/x64
.
If you encounter this error, it means the AppImage could not be located. Use All-in-One
to fetch it again.
If you see this message, re-enter your password to proceed.
Check if AppArmor is active. Reapply its profile via the menu if needed (option Setup AppArmor Profile
).
If the .desktop
file is marked as untrusted, ensure gio
is installed and D-Bus is running.
Most of the required dependencies are already included by default in Ubuntu-based systems. The script performs a quick check to ensure everything is ready and installs any missing packages automatically. An active internet connection is needed for this process.
The script requires gum
version 0.14.5. Avoid running sudo apt update
while the script is open, as it may upgrade gum
to version 0.15.0, which can cause unexpected behavior. Restart the script if you update your system.
This script is licensed under the MIT License. Feel free to use, modify, and distribute it as needed.
If this script has been helpful, consider supporting my work and keeping the magic alive!
Your contributions help maintain and improve tools like this one. π
Thank you for your kindness and support! π
Are you looking for someone who thrives on tackling challenges and building impactful solutions?
With over 8 years of experience in backend development, Linux automation, scalable systems, and AI-driven solutions,
I enjoy working independently on creative projects that deliver real value.
Passionate about exploring new ideas and technologies, I aim to transform innovative visions into extraordinary realities.
Letβs collaborate and create something exceptional together! β¨
π© Feel free to send me a messageβIβd love to hear from you: π¬
Β
Β