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:
- Download the latest
.AppImage
file from our GitHub repository - Make the file executable:
chmod +x LeetCode-Ghost-Window*.AppImage
- 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