Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
medusalix committed Jul 1, 2021
0 parents commit 600bf62
Show file tree
Hide file tree
Showing 20 changed files with 4,163 additions and 0 deletions.
1 change: 1 addition & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
custom: https://www.paypal.com/donate?hosted_button_id=BWUECKFDNY446
19 changes: 19 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Continuous Integration
on: [push, pull_request]
jobs:
build:
# Newer images have CONFIG_SND_PCM disabled
runs-on: ubuntu-16.04
steps:
- name: Install prerequisites
run: sudo apt update && sudo apt install dkms
- name: Checkout
uses: actions/checkout@v2
- name: Install (debug)
run: sudo ./install.sh
- name: Uninstall (debug)
run: sudo ./uninstall.sh
- name: Install (release)
run: sudo ./install.sh --release
- name: Uninstall (release)
run: sudo ./uninstall.sh
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
internal/*
.vscode/*
7 changes: 7 additions & 0 deletions Kbuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
xone-wired-y := transport/wired.o
xone-gip-bus-y := bus/bus.o bus/protocol.o
xone-gip-common-y := driver/common.o
xone-gip-gamepad-y := driver/gamepad.o
xone-gip-headset-y := driver/headset.o
xone-gip-chatpad-y := driver/chatpad.o
obj-m := xone-wired.o xone-gip-bus.o xone-gip-common.o xone-gip-gamepad.o xone-gip-headset.o xone-gip-chatpad.o
339 changes: 339 additions & 0 deletions LICENSE

Large diffs are not rendered by default.

84 changes: 84 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
# xone [![Build Badge](https://img.shields.io/github/workflow/status/medusalix/xone/Continuous%20Integration?logo=github)](https://github.com/medusalix/xone/actions) [![Release Badge](https://img.shields.io/github/v/release/medusalix/xone?logo=github)](https://github.com/medusalix/xone/releases/latest) [![Discord Badge](https://img.shields.io/discord/733964971842732042?label=discord&logo=discord)](https://discord.gg/FDQxwWk) [![Donate Button](https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif)](https://www.paypal.com/donate?hosted_button_id=BWUECKFDNY446)

xone is a Linux kernel driver for Xbox One and Xbox Series X|S accessories. It serves as a modern replacement for `xpad`, aiming to be compatible with Microsoft's *Game Input Protocol* (GIP).
If you are looking for a way to use your controller via Bluetooth, check out [xpadneo](https://github.com/atar-axis/xpadneo).

## Important notes

This driver is still in active development. Use at your own risk!
**Any feedback including bug reports, suggestions or ideas is [*greatly appreciated*](https://discord.gg/FDQxwWk).**

## Features

- [x] Input and force feedback (rumble)
- [x] Battery reporting (`UPower` integration)
- [x] LED brightness control (using `/sys/class/leds`)
- [x] Audio capture/playback (through `ALSA`)
- [x] Power management (suspend/resume)
- [ ] Wireless connectivity (via dongle)

## Supported devices

- [x] Gamepads
- [x] Xbox One Controllers
- [x] Xbox Series X|S Controllers
- [x] Third party controllers (PowerA, PDP, etc.)
- [ ] Headsets
- [x] Xbox One Chat Headset
- [x] Xbox One Stereo Headset (adapter or jack)
- [ ] Xbox Wireless Headset
- [ ] Third party wireless headsets (SteelSeries, Razer, etc.)
- [ ] Racing wheels
- [x] Xbox One Chatpad
- [x] Xbox Adaptive Controller
- [ ] Mad Catz Rock Band 4 Wireless Stratocaster
- [ ] Mad Catz Rock Band 4 Wireless Drum Kit

## Releases

[![Packaging status](https://repology.org/badge/vertical-allrepos/xone.svg)](https://repology.org/project/xone/versions)

Feel free to package xone for any Linux distribution or hardware you like.
Any issues regarding the packaging should be reported to the respective maintainers.

## Installation

### Prerequisites

- Linux (kernel 4.15+ and headers)
- DKMS

Clone the repository:

```
git clone https://github.com/medusalix/xone
```

Install xone using the following command:

```
sudo ./install.sh --release
```

**NOTE:** Please omit the `--release` flag when asked for your debug logs.

### Updating

Make sure to completely uninstall xone before updating:

```
sudo ./uninstall.sh
```

## License

xone is released under the [GNU General Public License, Version 2](LICENSE).

```
Copyright (C) 2021 Severin von Wnuck
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
```
Loading

0 comments on commit 600bf62

Please sign in to comment.