Moved here.
Here is the best setup (I think so :D) for K-series Keychron keyboards on Linux.
Note: many newer Keychron keyboards use QMK as firmware and most tips here do not apply to them. Maybe the ones related to Bluetooth can be useful, but everything related to Apple's keyboard module (hid_apple
) on Linux, won't work. As far as I know, all QMK-based boards use the hid_generic
module instead. Examples of QMK-based boards are: Q, Q-Pro, V, K-Pro, etc.
Most of these commands have been tested on Ubuntu 20.04 and should also work on most Debian-based distributions. If a command happens not to work for you, take a look in the comment section.
Older Keychron keyboards (those not based on QMK) use the hid_apple
driver on Linux, even in the Windows/Android mode, both in Bluetooth and Wired modes.
#!/bin/bash | |
# | |
# Prerequisites: | |
# sudo apt install pipx curl jq tar sqlite3 | |
# sudo pipx install b2 | |
# | |
# pass 4 args: | |
# - instance (meta information), example: <machine name> | |
# - b2 bucket name (target of the upload), example: grafana-backups | |
# - path to backblaze credentials file that sets B2_ACCOUNT_ID and B2_APP_KEY |
#!/bin/bash | |
# | |
# Prerequisites: | |
# sudo apt install pipx curl jq tar | |
# sudo pipx install b2 | |
# | |
# Enabled admin api in your prometheus, see: https://prometheus.io/docs/prometheus/2.1/querying/api/#tsdb-admin-apis | |
# | |
# pass 6 args: | |
# - prometheus base url, example: http://localhost:9090 |
version: '2' | |
services: | |
api: | |
volumes: | |
- "nfsmount:${CONTAINER_DIR}" | |
volumes: | |
nfsmount: | |
driver: local | |
driver_opts: |
//The global script scope | |
def ctx = context(scope: scriptScope()) | |
//What things can be on the script scope | |
contributor(ctx) { | |
method(name: 'pipeline', type: 'Object', params: [body: Closure]) | |
property(name: 'params', type: 'org.jenkinsci.plugins.workflow.cps.ParamsVariable') | |
property(name: 'env', type: 'org.jenkinsci.plugins.workflow.cps.EnvActionImpl.Binder') | |
property(name: 'currentBuild', type: 'org.jenkinsci.plugins.workflow.cps.RunWrapperBinder') | |
property(name: 'scm', type: 'org.jenkinsci.plugins.workflow.multibranch.SCMVar') |
#!/bin/bash | |
# https://gist.github.com/joshenders/52cb78bedaea6787faac | |
# This script uses the BSD variants of commands and is intended to | |
# be run on an unmodified installation of OSX. | |
pmset noidle & | |
now=$(date +%s) | |
duration=$((86400*3)) # 3days |
Updated: Just use qutebrowser (and disable javascript). The web is done for.