Skip to content

bsneed/claude-desktop-fedora

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

THIS IS AN UNOFFICIAL BUILD SCRIPT!

If you run into an issue with this build script, make an issue here. Don't bug Anthropic about it - they already have enough on their plates.

Claude Desktop for Linux

This project was inspired by k3d3's claude-desktop-linux-flake and their Reddit post about running Claude Desktop natively on Linux. Their work provided valuable insights into the application's structure and the native bindings implementation.

And now by me, via Aaddrick's claude-desktop-debian, modified to work for Fedora 41.

Supports MCP! image

Supports the Ctrl+Alt+Space popup! image

Supports the Tray menu! (Screenshot of running on KDE) image

Installation Options

1. Fedora Package (New!)

For Debian-based distributions (Debian, Ubuntu, Linux Mint, MX Linux, etc.), you can build and install Claude Desktop using the provided build script:

# Clone this repository
git clone https://github.com/bsneed/claude-desktop-fedora.git
cd claude-desktop-fedora

# Build the package
sudo ./build-fedora.sh
sudo dnf install build/electron-app/x86_64/claude-desktop_0.7.7-1.fc41.x86_64.rpm

# The script will automatically:
# - Check for and install required dependencies
# - Download and extract resources from the Windows version
# - Create a proper Fedora package
# - Guide you through installation

Requirements:

  • Fedora 41 Linux distribution
  • Node.js >= 12.0.0 and npm
  • Root/sudo access for dependency installation

2. Debian Package (New!)

For Debian users, please refer to Aaddrick's claude-desktop-debian repository. Their implementation is specifically designed for Debian and provides the original build script that inspired THIS project.

3. NixOS Implementation

For NixOS users, please refer to k3d3's claude-desktop-linux-flake repository. Their implementation is specifically designed for NixOS and provides the original Nix flake that inspired this project.

How it works

Claude Desktop is an Electron application packaged as a Windows executable. Our build script performs several key operations to make it work on Linux:

  1. Downloads and extracts the Windows installer
  2. Unpacks the app.asar archive containing the application code
  3. Replaces the Windows-specific native module with a Linux-compatible implementation
  4. Repackages everything into a proper Debian package

The process works because Claude Desktop is largely cross-platform, with only one platform-specific component that needs replacement.

The Native Module Challenge

The only platform-specific component is a native Node.js module called claude-native-bindings. This module provides system-level functionality like:

  • Keyboard input handling
  • Window management
  • System tray integration
  • Monitor information

Our build script replaces this Windows-specific module with a Linux-compatible implementation that:

  1. Provides the same API surface to maintain compatibility
  2. Implements keyboard handling using the correct key codes from the reference implementation
  3. Stubs out unnecessary Windows-specific functionality
  4. Maintains critical features like the Ctrl+Alt+Space popup and system tray

The replacement module is carefully designed to match the original API while providing Linux-native functionality where needed. This approach allows the rest of the application to run unmodified, believing it's still running on Windows.

Build Process Details

Note: The build script was generated by Claude (Anthropic) to help create a Linux-compatible version of Claude Desktop.

The build script (build-deb.sh) handles the entire process:

  1. Checks for a Debian-based system and required dependencies
  2. Downloads the official Windows installer
  3. Extracts the application resources
  4. Processes icons for Linux desktop integration
  5. Unpacks and modifies the app.asar:
    • Replaces the native module with our Linux version
    • Updates keyboard key mappings
    • Preserves all other functionality
  6. Creates a proper Debian package with:
    • Desktop entry for application menus
    • System-wide icon integration
    • Proper dependency management
    • Post-install configuration

Updating the Build Script

When a new version of Claude Desktop is released, simply update the CLAUDE_DOWNLOAD_URL constant at the top of build-deb.sh to point to the new installer. The script will handle everything else automatically.

License

The build scripts in this repository, are dual-licensed under the terms of the MIT license and the Apache License (Version 2.0).

See LICENSE-MIT and LICENSE-APACHE for details.

The Claude Desktop application, not included in this repository, is likely covered by Anthropic's Consumer Terms.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

claude-desktop-fedora

About

No description, website, or topics provided.

Resources

License

Apache-2.0, Unknown licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
Unknown
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages