### openSUSE Installation Source: https://github.com/openrazer/openrazer.github.io/blob/master/index.md Guide for openSUSE users, linking to the openSUSE Build Service and providing commands to enable and start the `dkms.service` for driver updates. ```bash Instructions and downloadable builds for openSUSE are [available on openSUSE Build Service.](https://software.opensuse.org/download.html?project=hardware%3Arazer&package=openrazer-meta) After installation, please enable `dkms.service` to ensure that the driver will also be built when installing kernel updates: sudo systemctl enable --now dkms.service ``` -------------------------------- ### Installation Instructions by Distribution Source: https://github.com/openrazer/openrazer.github.io/blob/master/_layouts/base.html Displays installation instructions for different Linux distributions. It includes the distribution's logo, name, and specific installation steps, formatted using markdown. ```liquid {% for section in page.instructions %} #### {{ section.title }} {{ section.summary }} {% for distro in section.distros %} ####   [![]({{ distro.logo }})  {{ distro.name }}](#{{ distro.id }}) {{ distro.instructions | markdownify }} {% endfor %} {% if forloop.last == false %} * * * {% endif %} {% endfor %} ``` -------------------------------- ### Gentoo Installation Source: https://github.com/openrazer/openrazer.github.io/blob/master/index.md Instructions for Gentoo, providing the `emerge` command to install the OpenRazer ebuild. ```bash emerge -av --autounmask sys-apps/openrazer ``` -------------------------------- ### Arch Linux/Manjaro Installation Source: https://github.com/openrazer/openrazer.github.io/blob/master/index.md Guide for Arch Linux and Manjaro users, pointing to official repositories for `openrazer-daemon` and the AUR for `openrazer-meta-git`. Includes the `pacman` command for installation. ```bash sudo pacman -S openrazer-daemon If you need the latest development builds, install [openrazer-meta-git](https://aur.archlinux.org/packages/openrazer-meta-git/) package from the AUR. ``` -------------------------------- ### Ubuntu/Mint/elementaryOS/Pop!_OS/Zorin OS Installation Source: https://github.com/openrazer/openrazer.github.io/blob/master/index.md Instructions for installing OpenRazer on Ubuntu and its derivatives. It mentions official repository availability from 20.04 and provides commands to add PPAs (stable and daily), update packages, and install `openrazer-meta`. It also includes a prerequisite for elementaryOS and a note about enabling the 'universe' repository. ```bash # Prerequisite for elementaryOS sudo apt install software-properties-gtk # To install the latest release, add this PPA: sudo add-apt-repository ppa:openrazer/stable # Or for latest development builds: sudo add-apt-repository ppa:openrazer/daily # After adding the PPA, install the packages: sudo apt update sudo apt install openrazer-meta ``` ```bash Starting with 20.04, OpenRazer is available from the [official repositories](https://packages.ubuntu.com/search?keywords=openrazer). However, you may need to add our repository and upgrade if your device was added in a newer version. If you get dependency errors when trying to install the driver packages, please make sure that you have enabled the "universe" repository in **Software & Updates**. ``` -------------------------------- ### Install Dependencies Source: https://github.com/openrazer/openrazer.github.io/blob/master/README.md Installs all project dependencies defined in the Gemfile, which are required for the Jekyll website to build correctly. ```bash bundle install ``` -------------------------------- ### Debian Installation Source: https://github.com/openrazer/openrazer.github.io/blob/master/index.md Instructions for installing OpenRazer on Debian. It mentions availability in official repositories starting from Debian 10 and provides a link to the openSUSE Build Service for downloadable builds and instructions. ```bash Starting with Debian 10, OpenRazer is available from the [official repositories](https://packages.debian.org/search?keywords=openrazer). However, you may need to add our repository and upgrade if your device was added in a newer version. Instructions and downloadable builds for Debian are [available from the openSUSE Build Service.](https://software.opensuse.org/download.html?project=hardware%3Arazer&package=openrazer-meta) ``` -------------------------------- ### Install Jekyll and Bundler Source: https://github.com/openrazer/openrazer.github.io/blob/master/README.md Installs the necessary Ruby gems for Jekyll and Bundler, which are required to build and manage the website. A `sudo` command might be needed depending on the Linux distribution. ```bash gem install jekyll bundler ``` -------------------------------- ### Mageia Installation Source: https://github.com/openrazer/openrazer.github.io/blob/master/index.md Instructions for installing OpenRazer on Mageia, directing users to the openSUSE Build Service for instructions and downloadable builds. ```bash Instructions and downloadable builds for Mageia are [available on openSUSE Build Service.](https://software.opensuse.org/download.html?project=hardware%3Arazer&package=openrazer-meta) ``` -------------------------------- ### Void Linux Installation Source: https://github.com/openrazer/openrazer.github.io/blob/master/index.md Installs the openrazer-meta package on Void Linux using xbps. ```xbps xbps-install -S openrazer-meta ``` -------------------------------- ### Solus Installation Source: https://github.com/openrazer/openrazer.github.io/blob/master/index.md Installs OpenRazer on Solus using the eopkg package manager. ```eopkg sudo eopkg install openrazer ``` -------------------------------- ### Build and Preview Website Source: https://github.com/openrazer/openrazer.github.io/blob/master/README.md Builds the Jekyll website and starts a local server for previewing at http://localhost:4000. The `--watch` flag enables live reloading on file changes. This command can also be executed via a script. ```bash bundle exec jekyll serve --watch ``` -------------------------------- ### Alpine Linux Installation Source: https://github.com/openrazer/openrazer.github.io/blob/master/index.md Instructions for Alpine Linux, mentioning community repositories and providing commands to install `openrazer` and `openrazer-src`. It also notes the use of `akms` for building kernel modules. ```bash doas apk add openrazer openrazer-src The kernel modules are built via [akms](https://github.com/jirutka/akms). ``` -------------------------------- ### Fedora/Nobara Installation Source: https://github.com/openrazer/openrazer.github.io/blob/master/index.md Provides installation commands for Fedora and Nobara. It includes steps for adding the OpenRazer repository and installing the `openrazer-meta` package, with specific instructions for different Fedora versions (41+, Rawhide, 40 and earlier). It also notes a potential bug with kernel headers and the fix. ```bash # For Fedora / Nobara 41 (and later) sudo dnf config-manager addrepo --from-repofile=https://openrazer.github.io/hardware:razer.repo sudo dnf install openrazer-meta # For Fedora Rawhide sudo dnf config-manager addrepo --from-repofile=https://download.opensuse.org/repositories/hardware:/razer/Fedora_Rawhide/hardware:razer.repo sudo dnf install openrazer-meta # For Fedora / Nobara 40 (and earlier) sudo dnf config-manager --add-repo https://openrazer.github.io/hardware:razer.repo sudo dnf install openrazer-meta ``` ```bash # Fix for kernel header bug sudo dnf install kernel-devel ``` -------------------------------- ### Slackware Installation Source: https://github.com/openrazer/openrazer.github.io/blob/master/index.md Provides URLs for SlackBuilds for OpenRazer kernel driver and daemon on Slackware. ```slackbuild # SlackBuilds for OpenRazer on Slackware 15.0 # https://www.slackbuilds.org/repository/15.0/system/openrazer-kernel/ # https://www.slackbuilds.org/repository/15.0/system/openrazer-daemon/ ``` -------------------------------- ### Install User to Plugdev Group Source: https://github.com/openrazer/openrazer.github.io/blob/master/index.md Adds the current user to the 'plugdev' group, which is necessary for OpenRazer to interact with devices. This command needs to be run in a terminal. ```Shell sudo gpasswd -a $USER plugdev ``` -------------------------------- ### Requesting Device Support Links Source: https://github.com/openrazer/openrazer.github.io/blob/master/_layouts/base.html Provides links for users to check unreleased changes, search existing issues, and request support for new devices on GitHub. ```html

Device not listed?

[ Check unreleased changes](https://github.com/openrazer/openrazer/compare/stable...master) [ Search existing issues and pull requests](https://github.com/openrazer/openrazer/issues?q=label%3A%22Device+Support%22) [ Request device support](https://github.com/openrazer/openrazer/issues/new?assignees=&labels=Device+Support&projects=&template=00-new-device.yml&title=Support+for+Razer+%5Bname%5D) ``` -------------------------------- ### Featured Applications Display Source: https://github.com/openrazer/openrazer.github.io/blob/master/_layouts/base.html Showcases featured applications with their logos, names, and associated technologies. Links to the application's URL are provided. ```liquid {% for app in page.apps.featured %} [{% if app.logo contains "fa " %} {% else %} ![]({{ app.logo }}) {% endif %} #### {{ app.name }} ]({{ app.url }}) {% for name in app.technologies %} {{ name }}{% if forloop.last == false %} {% endif %} {% endfor %} {% endfor %} ``` -------------------------------- ### Complementary Applications Display Source: https://github.com/openrazer/openrazer.github.io/blob/master/_layouts/base.html Lists complementary applications with their logos and names, linking to their respective URLs. This section is conditionally displayed if complementary apps are available. ```liquid {% if page.apps.complementary %} ### Complementary {{ page.apps.complementary_intro }} {% for app in page.apps.complementary %} [{% if app.logo contains "fa " %} {% else %} ![]({{ app.logo }}) {% endif %} #### {{ app.name }} ]({{ app.url }}) {% endfor %} {% endif %} ``` -------------------------------- ### Device Category Display Source: https://github.com/openrazer/openrazer.github.io/blob/master/_layouts/base.html Includes device categories like keyboards, mice, and mousemats. It dynamically displays the total number of supported devices and provides introductory text for each category. ```liquid {% capture total_devices %}**{{ site.data.devices | size }}**{% endcapture %} {{ page.devices.intro | replace: "123", total_devices }} {% include device-category.html title="Supported Keyboards" intro=page.devices.keyboards device_type="keyboard" %} {% include device-category.html title="Supported Mice" intro=page.devices.mouse device_type="mouse" %} {% include device-category.html title="Supported Mousemats" intro=page.devices.mousemat device_type="mousemat" %} {% include device-category.html title="Supported Keypads" intro=page.devices.keypads device_type="keypad" %} {% include device-category.html title="Supported Headphones" intro=page.devices.headset device_type="headset" %} {% include device-category.html title="Other devices that work" intro=page.devices.other device_type="other" %} ``` -------------------------------- ### NixOS Rebuild Source: https://github.com/openrazer/openrazer.github.io/blob/master/index.md Command to rebuild the NixOS configuration after changes. ```bash sudo nixos-rebuild switch ``` -------------------------------- ### Navigation Menu Generation Source: https://github.com/openrazer/openrazer.github.io/blob/master/_layouts/base.html Generates a navigation menu by iterating through a list of navigation items. Each item is displayed as a link with a label and a URL. ```liquid {% for item in page.navigation %}*   [{{ item.label }}]({{ item.href }}) {% endfor %} ``` -------------------------------- ### OpenRazer Static API Endpoints Source: https://github.com/openrazer/openrazer.github.io/blob/master/README.md Provides access to static JSON and text files containing information about OpenRazer devices and the latest version. These endpoints are useful for other projects integrating with OpenRazer. ```APIDOC GET /api/devices.json Description: Returns a JSON array of currently supported OpenRazer devices. Example Response: [ { "name": "Razer Blade", "type": "laptop" } ] GET /api/latest_version.txt Description: Returns the latest stable version string for OpenRazer. Example Response: "v3.10.0" ``` -------------------------------- ### Nix Shell Source: https://github.com/openrazer/openrazer.github.io/blob/master/index.md Command to use openrazer-daemon in a nix-shell environment. ```bash nix-shell -p openrazer-daemon ``` -------------------------------- ### External Links Source: https://github.com/openrazer/openrazer.github.io/blob/master/_layouts/base.html Provides a list of external links relevant to the project, such as community resources or related projects. ```liquid {% for link in page.links %} [ {{ link.label }}]({{ link.url }}) {% endfor %} ``` -------------------------------- ### NixOS Configuration Source: https://github.com/openrazer/openrazer.github.io/blob/master/index.md Enables the OpenRazer module and adds the user to the 'openrazer' group in NixOS. ```nix hardware.openrazer.enable = true; hardware.openrazer.users = ["?"]; ``` -------------------------------- ### OpenRazer Python Library Integration Source: https://github.com/openrazer/openrazer.github.io/blob/master/index.md Demonstrates how to integrate with the OpenRazer daemon using its Python library. This allows applications to control Razer device features programmatically. ```Python from openrazer.device import Device def set_device_brightness(device_name, brightness_level): # Example: Set brightness for a specific device # This is a conceptual example, actual implementation may vary pass # Usage example: # set_device_brightness('Razer BlackWidow Chroma', 50) ``` -------------------------------- ### Device Data Structure Source: https://github.com/openrazer/openrazer.github.io/blob/master/_includes/device-category.html This section outlines the expected data structure for devices within the OpenRazer project, as referenced in the code. It details the properties available for each device, such as name, type, image URL, VID, PID, and alias IDs. ```APIDOC Device: name: string (The name of the device) type: string (The category of the device, e.g., 'keyboard', 'mouse') image_url: string (URL to an image of the device) vid: string (Vendor ID of the device) pid: string (Product ID of the device) alias_ids: array of strings (Optional list of alternative identifiers for the device) ``` -------------------------------- ### Device Listing and Identification Source: https://github.com/openrazer/openrazer.github.io/blob/master/_includes/device-category.html This snippet demonstrates how to iterate through a list of devices, filter them by type, and display their names, VID:PID identifiers, and aliases. It's useful for understanding how device information is structured and accessed within the OpenRazer project. ```python for device in site.data.devices: if device.type != include.device_type and include.device_type != "other": continue if include.device_type == "other": if device.type == "keyboard" or device.type == "mouse" or device.type == "mousemat" or device.type == "keypad" or device.type == "headset": continue print(f"Device Name: {device.name}") print(f"Device ID: {device.vid}:{device.pid}") if device.alias_ids: print(f"Aliases: {', '.join(device.alias_ids)}") ``` -------------------------------- ### Footer Social Links Source: https://github.com/openrazer/openrazer.github.io/blob/master/_layouts/base.html Displays social media links in the footer, using icons for visual representation and tooltips for accessibility. ```liquid {% for social in page.footer.social %} [{% if social.icon contains '.svg' %} ![{{ social.tooltip }}]({{ social.icon }}) {% else %} {% endif %}]({{ social.url }} "{{ social.tooltip }}") {% endfor %} ``` -------------------------------- ### OpenRazer Kernel Module Compilation (DKMS) Source: https://github.com/openrazer/openrazer.github.io/blob/master/index.md Explains the requirement for kernel headers and DKMS for compiling the out-of-tree OpenRazer Linux kernel module. This ensures the driver rebuilds automatically on kernel updates. ```C // The OpenRazer Linux Kernel Module is written in C. // It relies on DKMS (Dynamic Kernel Module Support) for automatic rebuilding. // Example of a conceptual C code snippet for a kernel module: #include #include int init_module(void) { printk(KERN_INFO "OpenRazer module loaded.\n"); return 0; } void cleanup_module(void) { printk(KERN_INFO "OpenRazer module unloaded.\n"); } MODULE_LICENSE("GPL"); MODULE_AUTHOR("OpenRazer Community"); MODULE_DESCRIPTION("OpenRazer Linux Kernel Module"); ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.