Linux

LeetCode Ghost Window provides comprehensive support for Linux, with sophisticated techniques to ensure invisibility to screen recording software on both X11 and Wayland display servers.

Installation

There are multiple ways to install LeetCode Ghost Window on Linux:

Option 1: AppImage (Recommended)

The AppImage format works on most Linux distributions without requiring installation:

  1. Download the latest .AppImage file from our GitHub repository
  2. Make the file executable: chmod +x LeetCode-Ghost-Window*.AppImage
  3. Run the application: ./LeetCode-Ghost-Window*.AppImage

Option 2: Distribution Packages

For distribution-specific installations:

Debian/Ubuntu:

# Download the .deb package wget https://github.com/joseook/leetcode-ghost-joseok/releases/download/latest/leetcode-ghost-window_x.x.x_amd64.deb  # Install the package sudo dpkg -i leetcode-ghost-window_x.x.x_amd64.deb sudo apt-get install -f

Fedora/RHEL/CentOS:

# Download the .rpm package wget https://github.com/joseook/leetcode-ghost-joseok/releases/download/latest/leetcode-ghost-window-x.x.x.x86_64.rpm  # Install the package sudo rpm -i leetcode-ghost-window-x.x.x.x86_64.rpm

Option 3: CLI Installation

Install using npm (requires Node.js):

npm install -g leetcode-joseok

Then launch the application using:

leet-joseok init

Option 4: Building from Source

For advanced users who want to build from source:

# Clone the repository git clone https://github.com/joseook/leetcode-ghost-joseok cd leetcode-ghost-joseok  # Install dependencies npm install  # Start the application npm start

Linux-Specific Features

LeetCode Ghost Window uses several Linux-specific techniques to achieve ghost mode functionality:

X11 Support

On X11 display servers, the application uses specialized X11 window properties and atoms to modify how the window appears to screen capture software. This includes custom window type hints, opacity settings, and compositing modes.

Wayland Support

On Wayland, the application leverages Wayland's security model and adds custom window properties to prevent capture. Note that Wayland's stricter security model already helps prevent unauthorized window capture.

Window Manager Integration

Provides proper integration with popular Linux window managers and desktop environments, including GNOME, KDE, XFCE, and i3/Sway.

System Tray Support

Integrates with the system tray across various desktop environments using the AppIndicator and XEmbed protocols for compatibility with modern Linux desktops.

Wayland vs X11 Notes

Wayland offers better security by default, which can enhance the ghost mode functionality. However, both display servers are fully supported. The application will automatically detect your display server and use the appropriate techniques.

System Requirements

  • Distribution: Ubuntu 20.04+, Fedora 34+, Arch Linux, or other modern distributions
  • Display Server: X11 or Wayland
  • Processor: Dual-core processor or better
  • Memory: 4 GB RAM minimum, 8 GB recommended
  • Storage: 50 MB of available space
  • Libraries: GTK3, libnotify, libappindicator (for system tray support)
  • Internet: Required for AI processing features

Linux Troubleshooting

AppImage Permissions

If you cannot execute the AppImage:

chmod +x LeetCode-Ghost-Window*.AppImage

Missing Libraries

If you encounter missing library errors:

Ubuntu/Debian:

sudo apt-get update sudo apt-get install libgtk-3-0 libnotify4 libappindicator3-1 libxtst6 libatspi2.0-0 libnss3 libasound2

Fedora:

sudo dnf install gtk3 libnotify libappindicator libXtst libatspi nss alsa-lib

Arch Linux:

sudo pacman -S gtk3 libnotify libappindicator-gtk3 libxtst libatspi nss alsa-lib

System Tray Issues

If the system tray icon doesn't appear:

  • Ensure you have a system tray implementation running
  • On GNOME, you might need the "AppIndicator and KStatusNotifierItem Support" extension
  • On minimal window managers like i3, ensure you're running a status bar with system tray support

CLI Command Not Found

If the leet-joseok command is not recognized:

  • Check if the npm bin directory is in your PATH with echo $PATH
  • Add npm bin to your PATH if missing by adding export PATH="$PATH:$(npm config get prefix)/bin" to your .bashrc or .zshrc
  • Try reinstalling with npm install -g leetcode-joseok