initial commit
This commit is contained in:
commit
a236fcb45e
378 changed files with 32065 additions and 0 deletions
11
.editorconfig
Normal file
11
.editorconfig
Normal file
|
@ -0,0 +1,11 @@
|
|||
root = true
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
[*.nix]
|
||||
indent_size = 2
|
9
.gitattributes
vendored
Normal file
9
.gitattributes
vendored
Normal file
|
@ -0,0 +1,9 @@
|
|||
nixos/configs/apple-silicon-support/asahi/AdminUserRecoveryInfo.plist filter=lfs diff=lfs merge=lfs -text
|
||||
nixos/configs/apple-silicon-support/asahi/BuildManifest.plist filter=lfs diff=lfs merge=lfs -text
|
||||
nixos/configs/apple-silicon-support/asahi/RestoreVersion.plist filter=lfs diff=lfs merge=lfs -text
|
||||
nixos/configs/apple-silicon-support/asahi/SystemVersion.plist filter=lfs diff=lfs merge=lfs -text
|
||||
nixos/configs/apple-silicon-support/asahi/stub_info.json filter=lfs diff=lfs merge=lfs -text
|
||||
nixos/configs/apple-silicon-support/asahi/all_firmware.tar.gz filter=lfs diff=lfs merge=lfs -text
|
||||
nixos/configs/apple-silicon-support/asahi/extras filter=lfs diff=lfs merge=lfs -text
|
||||
nixos/configs/apple-silicon-support/asahi/installer.log filter=lfs diff=lfs merge=lfs -text
|
||||
nixos/configs/apple-silicon-support/asahi/kernelcache.release.mac13g filter=lfs diff=lfs merge=lfs -text
|
6
.gitignore
vendored
Normal file
6
.gitignore
vendored
Normal file
|
@ -0,0 +1,6 @@
|
|||
.DS_Store
|
||||
tmux/plugins
|
||||
.ccls-cache
|
||||
result*
|
||||
*.swp
|
||||
taskrc-local
|
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
[submodule "proprietary"]
|
||||
path = proprietary
|
||||
url = git@git.katesiria.org:ktemkin/dotfiles-proprietary
|
7
.vim/coc-settings.json
Normal file
7
.vim/coc-settings.json
Normal file
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"cSpell.words": [
|
||||
"devicons",
|
||||
"prettierrc",
|
||||
"tabe"
|
||||
]
|
||||
}
|
107
ModemManager/fcc-unlock.d/8086
Executable file
107
ModemManager/fcc-unlock.d/8086
Executable file
|
@ -0,0 +1,107 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
# 2024 Stoica Floris <floris@nusunt.eu>
|
||||
#
|
||||
# Lenovo-shipped XMM7560 (8086:7560) FCC unlock
|
||||
|
||||
if [[ "$FCC_UNLOCK_DEBUG_LOG" == '1' ]]; then
|
||||
exec 3>&1 4>&2
|
||||
trap 'exec 2>&4 1>&3' 0 1 2 3
|
||||
exec 1>>/var/log/mm-xmm7560-fcc.log 2>&1
|
||||
fi
|
||||
|
||||
# require program name and at least 2 arguments
|
||||
[ $# -lt 2 ] && exit 1
|
||||
|
||||
# first argument is DBus path, not needed here
|
||||
shift
|
||||
|
||||
# second and next arguments are control port names
|
||||
for PORT in "$@"; do
|
||||
# match port type in Linux 5.14 and newer
|
||||
grep -q AT "/sys/class/wwan/$PORT/type" 2>/dev/null && {
|
||||
AT_PORT=$PORT
|
||||
break
|
||||
}
|
||||
# match port name in Linux 5.13
|
||||
echo "$PORT" | grep -q AT && {
|
||||
AT_PORT=$PORT
|
||||
break
|
||||
}
|
||||
done
|
||||
|
||||
# fail if no AT port exposed
|
||||
[ -n "$AT_PORT" ] || exit 2
|
||||
|
||||
DEVICE=/dev/${AT_PORT}
|
||||
|
||||
at_command() {
|
||||
exec 99<>"$DEVICE"
|
||||
echo -e "$1\r" >&99
|
||||
read answer <&99
|
||||
read answer <&99
|
||||
echo "$answer"
|
||||
exec 99>&-
|
||||
}
|
||||
|
||||
log() {
|
||||
echo "$1"
|
||||
}
|
||||
|
||||
error() {
|
||||
echo "$1" >&2
|
||||
}
|
||||
|
||||
reverseWithLittleEndian() {
|
||||
num="$1"
|
||||
printf "%x" $(("0x${num:6:2}${num:4:2}${num:2:2}${num:0:2}"))
|
||||
}
|
||||
|
||||
VENDOR_ID_HASH="3df8c719"
|
||||
|
||||
for i in {1..9}; do
|
||||
log "Requesting challenge from WWAN modem (attempt #${i})"
|
||||
RAW_CHALLENGE=$(at_command "at+gtfcclockgen")
|
||||
CHALLENGE=$(echo "$RAW_CHALLENGE" | grep -o '0x[0-9a-fA-F]\+' | awk '{print $1}')
|
||||
|
||||
if [ -n "$CHALLENGE" ]; then
|
||||
log "Got challenge from modem: $CHALLENGE"
|
||||
HEX_CHALLENGE=$(printf "%08x" "$CHALLENGE")
|
||||
REVERSE_HEX_CHALLENGE=$(reverseWithLittleEndian "${HEX_CHALLENGE}")
|
||||
COMBINED_CHALLENGE="${REVERSE_HEX_CHALLENGE}${VENDOR_ID_HASH}"
|
||||
RESPONSE_HASH=$(printf "%s" "$COMBINED_CHALLENGE" | xxd -r -p | sha256sum | cut -d ' ' -f 1)
|
||||
TRUNCATED_RESPONSE=$(printf "%.8s" "${RESPONSE_HASH}")
|
||||
REVERSED_RESPONSE=$(reverseWithLittleEndian "$TRUNCATED_RESPONSE")
|
||||
RESPONSE=$(printf "%d" "0x${REVERSED_RESPONSE}")
|
||||
|
||||
log "Sending hash modem: $RESPONSE"
|
||||
UNLOCK_RESPONSE=$(at_command "at+gtfcclockver=$RESPONSE")
|
||||
log "at+gtfcclockver response = $UNLOCK_RESPONSE"
|
||||
UNLOCK_RESPONSE=$(at_command "at+gtfcclockmodeunlock")
|
||||
log "at+gtfcclockmodeunlock response = $UNLOCK_RESPONSE"
|
||||
UNLOCK_RESPONSE=$(at_command "at+cfun=1")
|
||||
log "at+cfun response = $UNLOCK_RESPONSE"
|
||||
UNLOCK_RESPONSE=$(at_command "at+gtfcclockstate")
|
||||
log "at+gtfcclockstate response = $UNLOCK_RESPONSE"
|
||||
UNLOCK_RESPONSE=$(echo "$UNLOCK_RESPONSE" | tr -d '\r')
|
||||
|
||||
if [ "$UNLOCK_RESPONSE" = "1" ]; then
|
||||
log "FCC was unlocked previously"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ "$UNLOCK_RESPONSE" = "OK" ]; then
|
||||
log "FCC unlock success"
|
||||
exit 0
|
||||
else
|
||||
error "Unlock failed. Got response: $UNLOCK_RESPONSE"
|
||||
fi
|
||||
else
|
||||
error "Failed to obtain FCC challenge. Got: ${RAW_CHALLENGE}"
|
||||
fi
|
||||
|
||||
sleep 0.5
|
||||
done
|
||||
|
||||
exit 2
|
107
ModemManager/fcc-unlock.d/8086:7560
Executable file
107
ModemManager/fcc-unlock.d/8086:7560
Executable file
|
@ -0,0 +1,107 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
# 2024 Stoica Floris <floris@nusunt.eu>
|
||||
#
|
||||
# Lenovo-shipped XMM7560 (8086:7560) FCC unlock
|
||||
|
||||
if [[ "$FCC_UNLOCK_DEBUG_LOG" == '1' ]]; then
|
||||
exec 3>&1 4>&2
|
||||
trap 'exec 2>&4 1>&3' 0 1 2 3
|
||||
exec 1>>/var/log/mm-xmm7560-fcc.log 2>&1
|
||||
fi
|
||||
|
||||
# require program name and at least 2 arguments
|
||||
[ $# -lt 2 ] && exit 1
|
||||
|
||||
# first argument is DBus path, not needed here
|
||||
shift
|
||||
|
||||
# second and next arguments are control port names
|
||||
for PORT in "$@"; do
|
||||
# match port type in Linux 5.14 and newer
|
||||
grep -q AT "/sys/class/wwan/$PORT/type" 2>/dev/null && {
|
||||
AT_PORT=$PORT
|
||||
break
|
||||
}
|
||||
# match port name in Linux 5.13
|
||||
echo "$PORT" | grep -q AT && {
|
||||
AT_PORT=$PORT
|
||||
break
|
||||
}
|
||||
done
|
||||
|
||||
# fail if no AT port exposed
|
||||
[ -n "$AT_PORT" ] || exit 2
|
||||
|
||||
DEVICE=/dev/${AT_PORT}
|
||||
|
||||
at_command() {
|
||||
exec 99<>"$DEVICE"
|
||||
echo -e "$1\r" >&99
|
||||
read answer <&99
|
||||
read answer <&99
|
||||
echo "$answer"
|
||||
exec 99>&-
|
||||
}
|
||||
|
||||
log() {
|
||||
echo "$1"
|
||||
}
|
||||
|
||||
error() {
|
||||
echo "$1" >&2
|
||||
}
|
||||
|
||||
reverseWithLittleEndian() {
|
||||
num="$1"
|
||||
printf "%x" $(("0x${num:6:2}${num:4:2}${num:2:2}${num:0:2}"))
|
||||
}
|
||||
|
||||
VENDOR_ID_HASH="3df8c719"
|
||||
|
||||
for i in {1..9}; do
|
||||
log "Requesting challenge from WWAN modem (attempt #${i})"
|
||||
RAW_CHALLENGE=$(at_command "at+gtfcclockgen")
|
||||
CHALLENGE=$(echo "$RAW_CHALLENGE" | grep -o '0x[0-9a-fA-F]\+' | awk '{print $1}')
|
||||
|
||||
if [ -n "$CHALLENGE" ]; then
|
||||
log "Got challenge from modem: $CHALLENGE"
|
||||
HEX_CHALLENGE=$(printf "%08x" "$CHALLENGE")
|
||||
REVERSE_HEX_CHALLENGE=$(reverseWithLittleEndian "${HEX_CHALLENGE}")
|
||||
COMBINED_CHALLENGE="${REVERSE_HEX_CHALLENGE}${VENDOR_ID_HASH}"
|
||||
RESPONSE_HASH=$(printf "%s" "$COMBINED_CHALLENGE" | xxd -r -p | sha256sum | cut -d ' ' -f 1)
|
||||
TRUNCATED_RESPONSE=$(printf "%.8s" "${RESPONSE_HASH}")
|
||||
REVERSED_RESPONSE=$(reverseWithLittleEndian "$TRUNCATED_RESPONSE")
|
||||
RESPONSE=$(printf "%d" "0x${REVERSED_RESPONSE}")
|
||||
|
||||
log "Sending hash modem: $RESPONSE"
|
||||
UNLOCK_RESPONSE=$(at_command "at+gtfcclockver=$RESPONSE")
|
||||
log "at+gtfcclockver response = $UNLOCK_RESPONSE"
|
||||
UNLOCK_RESPONSE=$(at_command "at+gtfcclockmodeunlock")
|
||||
log "at+gtfcclockmodeunlock response = $UNLOCK_RESPONSE"
|
||||
UNLOCK_RESPONSE=$(at_command "at+cfun=1")
|
||||
log "at+cfun response = $UNLOCK_RESPONSE"
|
||||
UNLOCK_RESPONSE=$(at_command "at+gtfcclockstate")
|
||||
log "at+gtfcclockstate response = $UNLOCK_RESPONSE"
|
||||
UNLOCK_RESPONSE=$(echo "$UNLOCK_RESPONSE" | tr -d '\r')
|
||||
|
||||
if [ "$UNLOCK_RESPONSE" = "1" ]; then
|
||||
log "FCC was unlocked previously"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ "$UNLOCK_RESPONSE" = "OK" ]; then
|
||||
log "FCC unlock success"
|
||||
exit 0
|
||||
else
|
||||
error "Unlock failed. Got response: $UNLOCK_RESPONSE"
|
||||
fi
|
||||
else
|
||||
error "Failed to obtain FCC challenge. Got: ${RAW_CHALLENGE}"
|
||||
fi
|
||||
|
||||
sleep 0.5
|
||||
done
|
||||
|
||||
exit 2
|
12
README.md
Normal file
12
README.md
Normal file
|
@ -0,0 +1,12 @@
|
|||
# Kate's Dotfiles
|
||||
|
||||
These are our personal dotfiles -- if you find this link, please don't pass it around. <3
|
||||
|
||||
## Notes
|
||||
|
||||
Most things in here are managed by `NixOS`, nix-darwin`, or `home-manager`. The following things,
|
||||
however, need to work on native Windows, and thus shouldn't be Nixified:
|
||||
|
||||
- neovim's configuration
|
||||
- wezterm's configruation
|
||||
- xonsh's configruation
|
3
age/all_recipients
Normal file
3
age/all_recipients
Normal file
|
@ -0,0 +1,3 @@
|
|||
age1yubikey1qgkz2s97uzquemxx694vvqp2dj6328zpf4l3rj3mqfcnguvuhxcguw8fgxy
|
||||
age1yubikey1qt5cjhklyek73awwaducjgn0g7l93xeuvcnudnac23kdyem2k7v7zlmn6p0
|
||||
age1yubikey1qtgvszdcz3n9a707l3k2mhaql9mdm6sqe69mr2hypl8n0qxs5m52sgu9wdd
|
7
age/identities/yubikey-backup-5c
Normal file
7
age/identities/yubikey-backup-5c
Normal file
|
@ -0,0 +1,7 @@
|
|||
# Serial: 26907034, Slot: 1
|
||||
# Name: KATE_YK_5NFC
|
||||
# Created: Sun, 03 Mar 2024 00:54:50 +0000
|
||||
# PIN policy: Once (A PIN is required once per session, if set)
|
||||
# Touch policy: Always (A physical touch is required for every decryption)
|
||||
# Recipient: age1yubikey1qtgvszdcz3n9a707l3k2mhaql9mdm6sqe69mr2hypl8n0qxs5m52sgu9wdd
|
||||
AGE-PLUGIN-YUBIKEY-1N2GE5QVZ9Z9GN2C6KSXJM
|
7
age/identities/yubikey-keyring-5a
Normal file
7
age/identities/yubikey-keyring-5a
Normal file
|
@ -0,0 +1,7 @@
|
|||
# Serial: 26154720, Slot: 1
|
||||
# Name: 5A_BACKUP
|
||||
# Created: Mon, 04 Mar 2024 22:40:29 +0000
|
||||
# PIN policy: Once (A PIN is required once per session, if set)
|
||||
# Touch policy: Always (A physical touch is required for every decryption)
|
||||
# Recipient: age1yubikey1qt5cjhklyek73awwaducjgn0g7l93xeuvcnudnac23kdyem2k7v7zlmn6p0
|
||||
AGE-PLUGIN-YUBIKEY-1UQTG7QVZPUAZPGC8AH5Z6
|
7
age/identities/yubikey-keyring-5c
Normal file
7
age/identities/yubikey-keyring-5c
Normal file
|
@ -0,0 +1,7 @@
|
|||
# Serial: 26908840, Slot: 1
|
||||
# Name: age identity 58701041
|
||||
# Created: Sun, 12 May 2024 23:45:49 +0000
|
||||
# PIN policy: Once (A PIN is required once per session, if set)
|
||||
# Touch policy: Always (A physical touch is required for every decryption)
|
||||
# Recipient: age1yubikey1qgkz2s97uzquemxx694vvqp2dj6328zpf4l3rj3mqfcnguvuhxcguw8fgxy
|
||||
AGE-PLUGIN-YUBIKEY-14ZVF5QVZTPCPQSGTZ2YKJ
|
1
age/recipients/yubikey-backup-5c.pub
Normal file
1
age/recipients/yubikey-backup-5c.pub
Normal file
|
@ -0,0 +1 @@
|
|||
age1yubikey1qtgvszdcz3n9a707l3k2mhaql9mdm6sqe69mr2hypl8n0qxs5m52sgu9wdd
|
1
age/recipients/yubikey-keyring-5a.pub
Normal file
1
age/recipients/yubikey-keyring-5a.pub
Normal file
|
@ -0,0 +1 @@
|
|||
age1yubikey1qt5cjhklyek73awwaducjgn0g7l93xeuvcnudnac23kdyem2k7v7zlmn6p0
|
1
age/recipients/yubikey-keyring-5c.pub
Normal file
1
age/recipients/yubikey-keyring-5c.pub
Normal file
|
@ -0,0 +1 @@
|
|||
age1yubikey1qgkz2s97uzquemxx694vvqp2dj6328zpf4l3rj3mqfcnguvuhxcguw8fgxy
|
9
cargo/config.toml
Normal file
9
cargo/config.toml
Normal file
|
@ -0,0 +1,9 @@
|
|||
[target.x86_64-apple-darwin]
|
||||
rustflags = [ "-C", "linker=/usr/bin/clang"]
|
||||
|
||||
[target.aarch64-apple-darwin]
|
||||
rustflags = [ "-C", "linker=/usr/bin/clang"]
|
||||
|
||||
[target.x86_64-unknown-linux-musl]
|
||||
linker = "clang"
|
||||
rustflags = "-Clink-arg=--target=x86_64-unknown-linux-musl -Clink-arg=-fuse-ld=lld"
|
13
espanso/config/default.yml
Normal file
13
espanso/config/default.yml
Normal file
|
@ -0,0 +1,13 @@
|
|||
#
|
||||
# Our espanso config.
|
||||
#
|
||||
|
||||
# Double tapping right alt turns espanso on and off
|
||||
toggle_key: RIGHT_ALT
|
||||
|
||||
# one can try Clipboard or Inject, too
|
||||
backend: Auto
|
||||
|
||||
# Enable/disable the config auto-reload after a file change is detected.
|
||||
auto_restart: true
|
||||
|
4
espanso/config/element.yml
Normal file
4
espanso/config/element.yml
Normal file
|
@ -0,0 +1,4 @@
|
|||
filter_title: "Element"
|
||||
|
||||
includes:
|
||||
- ../match/_messengers.yml
|
4
espanso/config/mattermost.yml
Normal file
4
espanso/config/mattermost.yml
Normal file
|
@ -0,0 +1,4 @@
|
|||
filter_title: "Mattermost"
|
||||
|
||||
includes:
|
||||
- ../match/_messengers.yml
|
4
espanso/config/nheko.yml
Normal file
4
espanso/config/nheko.yml
Normal file
|
@ -0,0 +1,4 @@
|
|||
filter_title: "nheko"
|
||||
|
||||
includes:
|
||||
- ../match/_messengers.yml
|
4
espanso/config/signal.yml
Normal file
4
espanso/config/signal.yml
Normal file
|
@ -0,0 +1,4 @@
|
|||
filter_title: "Signal"
|
||||
|
||||
includes:
|
||||
- ../match/_messengers.yml
|
47
espanso/match/_messengers.yml
Normal file
47
espanso/match/_messengers.yml
Normal file
|
@ -0,0 +1,47 @@
|
|||
#
|
||||
# Matches for Signal.
|
||||
#
|
||||
|
||||
filter_title: "Signal"
|
||||
|
||||
matches:
|
||||
|
||||
- trigger: "o;"
|
||||
word: true
|
||||
replace: "⚪O>"
|
||||
- trigger: "t;"
|
||||
word: true
|
||||
replace: "🔵T>"
|
||||
- trigger: "k;"
|
||||
word: true
|
||||
replace: "🟣K>"
|
||||
- trigger: "w;"
|
||||
word: true
|
||||
replace: "🟢W>"
|
||||
- trigger: "s;"
|
||||
word: true
|
||||
replace: "🔴S>"
|
||||
- trigger: "e;"
|
||||
word: true
|
||||
replace: "⚫E>"
|
||||
|
||||
# keep the non-discord ones, too
|
||||
- trigger: "zo"
|
||||
word: true
|
||||
replace: "⚪O>"
|
||||
- trigger: "zt"
|
||||
word: true
|
||||
replace: "🔵T>"
|
||||
- trigger: "zk"
|
||||
word: true
|
||||
replace: "🟣K>"
|
||||
- trigger: "zw"
|
||||
word: true
|
||||
replace: "🟢W>"
|
||||
- trigger: "zs"
|
||||
word: true
|
||||
replace: "🔴S>"
|
||||
- trigger: "ze"
|
||||
word: true
|
||||
replace: "⚫E>"
|
||||
|
64
espanso/match/base.yml
Normal file
64
espanso/match/base.yml
Normal file
|
@ -0,0 +1,64 @@
|
|||
#
|
||||
# Matches for all programs.
|
||||
#
|
||||
|
||||
matches:
|
||||
|
||||
# つ
|
||||
- trigger: "tsu"
|
||||
word: true
|
||||
replace: "つ"
|
||||
- trigger: "tsu's"
|
||||
word: true
|
||||
replace: "つ's"
|
||||
|
||||
|
||||
# non-discord chats
|
||||
- trigger: "zo"
|
||||
word: true
|
||||
replace: "⚪O>"
|
||||
- trigger: "zt"
|
||||
word: true
|
||||
replace: "🔵つ>"
|
||||
- trigger: "zk"
|
||||
word: true
|
||||
replace: "🟣K>"
|
||||
- trigger: "zw"
|
||||
word: true
|
||||
replace: "🟢W>"
|
||||
- trigger: "zs"
|
||||
word: true
|
||||
replace: "🔴S>"
|
||||
- trigger: "ze"
|
||||
word: true
|
||||
replace: "⚫E>"
|
||||
|
||||
# Puck
|
||||
- trigger: "z1"
|
||||
word: true
|
||||
replace: "⑴"
|
||||
- trigger: "z2"
|
||||
word: true
|
||||
replace: "⑵"
|
||||
- trigger: "z3"
|
||||
word: true
|
||||
replace: "⑶"
|
||||
|
||||
# Dates
|
||||
- trigger: ":ndate"
|
||||
word: true
|
||||
replace: "{{fulldate}}"
|
||||
vars:
|
||||
- name: fulldate
|
||||
type: date
|
||||
params:
|
||||
format: "%A, %B %d, %Y"
|
||||
|
||||
# Emoji
|
||||
- trigger: ":allemoji:"
|
||||
word: true
|
||||
replace: "🤍💙💜💚❤️🩶"
|
||||
- trigger: "zah"
|
||||
word: true
|
||||
replace: "🤍💙💜💚❤️🩶"
|
||||
|
0
espanso/match/packages/__noremove
Normal file
0
espanso/match/packages/__noremove
Normal file
1219
flake.lock
generated
Normal file
1219
flake.lock
generated
Normal file
File diff suppressed because it is too large
Load diff
505
flake.nix
Normal file
505
flake.nix
Normal file
|
@ -0,0 +1,505 @@
|
|||
#
|
||||
# Our system configuration, as a Nix flake.
|
||||
# Now with bonus packages!
|
||||
#
|
||||
# vim: et:ts=2:sw=2:
|
||||
#
|
||||
{
|
||||
#
|
||||
# The sources we depend on.
|
||||
#
|
||||
inputs = {
|
||||
# Core and utilities.
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
|
||||
# Not nix -- lix!
|
||||
lix = {
|
||||
url = "git+https://git@git.lix.systems/lix-project/lix";
|
||||
flake = false;
|
||||
};
|
||||
lix-module = {
|
||||
url = "git+https://git@git.lix.systems/lix-project/nixos-module";
|
||||
inputs.lix.follows = "lix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
inputs.flake-utils.follows = "flake-utils";
|
||||
};
|
||||
|
||||
# Home-manager.
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager/master";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
# Styling!
|
||||
stylix = {
|
||||
url = "github:danth/stylix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
# Attic cache.
|
||||
attic = {
|
||||
url = "github:zhaofengli/attic";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
# For our phone.
|
||||
nix-on-droid = {
|
||||
url = "github:nix-community/nix-on-droid/release-24.05";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
inputs.home-manager.follows = "home-manager";
|
||||
};
|
||||
|
||||
# Flakes for packages.
|
||||
nil.url = "github:oxalica/nil";
|
||||
agenix.url = "github:ryantm/agenix";
|
||||
openxc7.url = "github:openXC7/toolchain-nix";
|
||||
niri.url = "github:sodiboo/niri-flake";
|
||||
waveforms.url = "github:liff/waveforms-flake";
|
||||
esp-dev.url = "github:mirrexagon/nixpkgs-esp-dev";
|
||||
|
||||
# Flatpack support
|
||||
nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=v0.4.1";
|
||||
|
||||
# Various system type support.
|
||||
darwin.url = "github:lnl7/nix-darwin/master";
|
||||
darwin.inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
#
|
||||
# Package definitions for each of our various types.
|
||||
# Used in the outputs section.
|
||||
#
|
||||
|
||||
#
|
||||
# Our various products; mostly machine configurations.
|
||||
#
|
||||
outputs =
|
||||
{
|
||||
self,
|
||||
nixpkgs,
|
||||
flake-utils,
|
||||
home-manager,
|
||||
openxc7,
|
||||
darwin,
|
||||
agenix,
|
||||
nil,
|
||||
lix-module,
|
||||
niri,
|
||||
stylix,
|
||||
waveforms,
|
||||
esp-dev,
|
||||
attic,
|
||||
nix-flatpak,
|
||||
nix-on-droid,
|
||||
...
|
||||
}:
|
||||
|
||||
#
|
||||
# Our various packages; generated for each system.
|
||||
#
|
||||
flake-utils.lib.eachDefaultSystem (
|
||||
system:
|
||||
let
|
||||
pkgs = import nixpkgs { inherit system; config.allowUnfree = true; };
|
||||
callPackage = pkgs.callPackage;
|
||||
deprekages= self.outputs.packages;
|
||||
in
|
||||
{
|
||||
# The packages themselves,
|
||||
packages = rec {
|
||||
# fonts
|
||||
font-monolisa = callPackage ./fonts/monolisa.nix { };
|
||||
font-codicon = callPackage ./fonts/codicon.nix { };
|
||||
font-manrope = callPackage ./fonts/manrope.nix { };
|
||||
|
||||
# scientific things
|
||||
ffts = callPackage ./packages/scopehal-apps/ffts.nix { };
|
||||
libsigrok4DSL = callPackage ./packages/scopehal-apps/libsigrok4DSL.nix { };
|
||||
vulkan-sdk = callPackage ./packages/scopehal-apps/vulkan-sdk.nix { };
|
||||
scopehal-apps = callPackage ./packages/scopehal-apps { deprekages = deprekages.${system}; };
|
||||
scopehal-sigrok-bridge = callPackage ./packages/scopehal-apps/sigrok-bridge.nix {
|
||||
deprekages = deprekages.${system};
|
||||
};
|
||||
|
||||
# apps
|
||||
navit = callPackage ./packages/navit.nix { };
|
||||
navit-with-maps = callPackage ./packages/navit.nix { with_maps = true; };
|
||||
binary-ninja = callPackage ./packages/binary-ninja.nix { };
|
||||
argos = callPackage ./packages/argos.nix { };
|
||||
todoist-electron = callPackage ./packages/todoist-electron.nix { };
|
||||
home-assistant-desktop = callPackage ./packages/home-assistant-desktop/x86_64-linux.nix { };
|
||||
flexbv = callPackage ./packages/flexbv.nix { };
|
||||
glowing-bear-desktop = callPackage ./packages/glowing-bear-desktop.nix { };
|
||||
hrvst-cli = callPackage ./packages/hrvst-cli { };
|
||||
notion-app = callPackage ./packages/notion-app { inherit _7zz; };
|
||||
|
||||
# utilities
|
||||
ykush = callPackage ./packages/ykush.nix { };
|
||||
wsl-gpg-forward = callPackage ./windows/gpg-forward.nix { };
|
||||
oxfs = callPackage ./packages/oxfs.nix { };
|
||||
pcsclite = callPackage ./packages/pcsclite.nix { };
|
||||
age-plugin-yubikey = callPackage ./packages/age-plugin-yubikey.nix { inherit pcsclite; };
|
||||
humanfx = callPackage ./packages/humanfx { };
|
||||
clipboard-sync = callPackage ./packages/clipboard-sync.nix { };
|
||||
vsmartcard = callPackage ./packages/vsmartcard.nix { };
|
||||
pcsc-relay = callPackage ./packages/pcsc-relay.nix { };
|
||||
neard = callPackage ./packages/neard.nix { };
|
||||
libnfc = callPackage ./packages/libnfc.nix { inherit libnfc-nci; };
|
||||
jadx = callPackage ./packages/jadx { };
|
||||
firefox-webserial = callPackage ./packages/firefox-webserial { inherit ws-server; };
|
||||
ryzen-ppd = callPackage ./packages/ryzen-ppd { };
|
||||
avbroot = callPackage ./packages/avbroot { };
|
||||
okc-agents = callPackage ./packages/okc-agents.nix { };
|
||||
_7zz = pkgs._7zz.override { useUasm = true; };
|
||||
|
||||
# libraries
|
||||
libnfc-nci = callPackage ./packages/libnfc-nci { };
|
||||
ws-server = callPackage ./packages/ws-server { };
|
||||
rubyPackages = callPackage ./packages/ruby-gems.nix { };
|
||||
|
||||
# jetbrains products
|
||||
jetbrains-jdk = callPackage ./packages/jetbrains-jdk.nix { };
|
||||
jetbrains = import ./packages/jetbrains.nix {
|
||||
inherit pkgs;
|
||||
jdk = jetbrains-jdk;
|
||||
};
|
||||
|
||||
# kernel modules
|
||||
linuxPackages_i915-sriov = callPackage ./packages/i915-sriov/kernel.nix { };
|
||||
i915-sriov = callPackage ./packages/i915-sriov { linuxPackages = linuxPackages_i915-sriov; };
|
||||
linux-nfc-lenovo = callPackage ./packages/linux-nfc-lenovo { };
|
||||
|
||||
# hw support
|
||||
dell = callPackage ./packages/dell { };
|
||||
|
||||
# udev rules~
|
||||
t5-udev-rules = callPackage ./packages/t5-udev-rules { };
|
||||
ykush-udev-rules = callPackage ./packages/ykush-udev-rules { };
|
||||
dreamsource-udev-rules = callPackage ./packages/dreamsource-udev-rules { };
|
||||
hantek-udev-rules = callPackage ./packages/hantek-udev-rules { };
|
||||
linux-nfc-lenovo-udev-rules = callPackage ./packages/linux-nfc-lenovo/udev.nix { };
|
||||
|
||||
# weechat
|
||||
weechat-discord = callPackage ./packages/weechat-discord { };
|
||||
|
||||
# kakoune
|
||||
kak-tree-sitter = callPackage ./packages/kak-tree-sitter { };
|
||||
|
||||
# xonsh and xontribs
|
||||
xonsh-with-xontribs = pkgs.xonsh.override {
|
||||
extraPackages = pythonPackages: [
|
||||
(callPackage ./packages/xontrib-whole-word-jumping.nix { })
|
||||
(callPackage ./packages/xontrib-term-integrations.nix { })
|
||||
(callPackage ./packages/xontrib-sh.nix { })
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
)
|
||||
|
||||
#
|
||||
# Our per-machine configurations.
|
||||
# Appeneded to the output of the packages generated by eachDefaultSystem.
|
||||
#
|
||||
// rec {
|
||||
|
||||
#
|
||||
# Helpers.
|
||||
#
|
||||
|
||||
# Common to all machines, Linux or macOS.
|
||||
commonModuleSet = [
|
||||
./nixos/packages
|
||||
|
||||
./nixos/configs/stylix
|
||||
./nixos/configs/nix.nix
|
||||
./nixos/configs/dotfiles
|
||||
./nixos/configs/calendar.nix
|
||||
./nixos/configs/include-conf.nix
|
||||
./nixos/configs/flake-registry.nix
|
||||
./nixos/configs/storage-optimization.nix
|
||||
|
||||
./nixos/services/tailscale.nix
|
||||
|
||||
lix-module.nixosModules.default
|
||||
home-manager.nixosModules.home-manager
|
||||
];
|
||||
|
||||
# Modules for all linux machines.
|
||||
linuxModuleSet = [
|
||||
./nixos/configuration.linux.nix
|
||||
|
||||
./nixos/configs/udev.nix
|
||||
./nixos/configs/printing.nix
|
||||
./nixos/configs/virt-host.nix
|
||||
./nixos/configs/mount-rsync-kate.nix
|
||||
./nixos/configs/mount-fastmail-tmllc.nix
|
||||
|
||||
./nixos/services/taskwarrior.nix
|
||||
|
||||
./nixos/overlays/fixup-canon.nix
|
||||
|
||||
#
|
||||
];
|
||||
|
||||
# Modules for Linux machines with Wayland GUIs.
|
||||
linuxGuiModuleSet = [
|
||||
waveforms.nixosModule
|
||||
nix-flatpak.nixosModules.nix-flatpak
|
||||
|
||||
./nixos/packages/gui.nix
|
||||
./nixos/packages/wine.nix
|
||||
./nixos/packages/flatpak.nix
|
||||
./nixos/packages/proprietary.nix
|
||||
|
||||
./nixos/configs/gui
|
||||
./nixos/configs/flatpak.nix
|
||||
./nixos/configs/fonts-linux.nix
|
||||
./nixos/configs/music-server.nix
|
||||
|
||||
#./nixos/overlays/fixup-signal
|
||||
./nixos/overlays/fixup-imhex.nix
|
||||
./nixos/overlays/customize-gajim
|
||||
./nixos/overlays/sddm-no-vnc.nix
|
||||
./nixos/overlays/fixup-armcord.nix
|
||||
./nixos/overlays/jd-gui-wayland.nix
|
||||
./nixos/overlays/fixup-mattermost.nix
|
||||
./nixos/overlays/yubikey-touch-shitpost
|
||||
./nixos/overlays/add-depends-calibre.nix
|
||||
|
||||
./nixos/services/clipboard-sync.nix
|
||||
];
|
||||
|
||||
# Modules for all darwin machines.
|
||||
darwinModuleSet = [
|
||||
./nixos/configuration.darwin.nix
|
||||
|
||||
./nixos/packages/homebrew.nix
|
||||
./nixos/packages/appstore.nix
|
||||
|
||||
./nixos/configs/fonts-darwin.nix
|
||||
./nixos/configs/autosetup-darwin-aarch64.nix
|
||||
];
|
||||
|
||||
# Modules for offline linux machines.
|
||||
linuxOfflineModuleSet = [
|
||||
./nixos/packages/offline.nix
|
||||
|
||||
./nixos/configs/waydroid.nix
|
||||
];
|
||||
|
||||
# Helper functions for creating modules in the defintions below.
|
||||
darwinModules = extraModules: commonModuleSet ++ darwinModuleSet ++ extraModules;
|
||||
linuxModules = extraModules: commonModuleSet ++ linuxModuleSet ++ extraModules;
|
||||
linuxGuiModules = extraModules: linuxModules (linuxGuiModuleSet ++ extraModules);
|
||||
linuxOfflineGuiModules = extraModules: linuxGuiModules (linuxOfflineModuleSet ++ extraModules);
|
||||
|
||||
# Helper that populates all of our special arguments.
|
||||
mkSpecialArgsGeneric = (
|
||||
system: is-hm-standalone: is-droid: {
|
||||
inherit
|
||||
nixpkgs
|
||||
stylix
|
||||
is-hm-standalone
|
||||
is-droid
|
||||
;
|
||||
|
||||
niri = niri.outputs;
|
||||
nil = nil.outputs.packages.${system};
|
||||
deprekages = self.outputs.packages.${system};
|
||||
agenix = agenix.outputs.packages.${system};
|
||||
openxc7 = openxc7.outputs.packages.${system};
|
||||
attic = attic.outputs.packages.${system};
|
||||
esp-dev = esp-dev.outputs.packages.${system};
|
||||
|
||||
# Helper to convert hm modules into NixOS or nix-on-droid modules.
|
||||
callHm = module: (specialArgs: (import module) specialArgs);
|
||||
normalizeModule =
|
||||
if is-hm-standalone then
|
||||
(module: module)
|
||||
else
|
||||
(
|
||||
if is-droid then
|
||||
(
|
||||
module:
|
||||
(
|
||||
{ deprekages, ... }:
|
||||
{
|
||||
home-manager.config =
|
||||
{ pkgs, ... }@specialArgs: (import module) (specialArgs // { inherit deprekages; });
|
||||
}
|
||||
)
|
||||
)
|
||||
else
|
||||
(
|
||||
module:
|
||||
(
|
||||
{ deprekages, ... }:
|
||||
{
|
||||
home-manager.users.deprekated =
|
||||
{ pkgs, ... }@specialArgs: (import module) (specialArgs // { inherit deprekages; });
|
||||
}
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
# Generic mkSpecialArgs for NixOS.
|
||||
mkSpecialArgs = system: (mkSpecialArgsGeneric system false false);
|
||||
|
||||
# Specialized mkSpecialArgs for standalone home-manager.
|
||||
mkSpecialArgsHm = system: pkgs: ((mkSpecialArgsGeneric system true false) // { inherit pkgs; });
|
||||
mkSpecialArgsDroid = system: pkgs: ((mkSpecialArgsGeneric system false true) // { inherit pkgs; });
|
||||
|
||||
#
|
||||
# Hosts!
|
||||
#
|
||||
|
||||
# Trailblazer (main desktop).
|
||||
nixosConfigurations.trailblazer = nixpkgs.lib.nixosSystem rec {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = mkSpecialArgs system;
|
||||
modules = linuxOfflineGuiModules [
|
||||
./nixos/hosts/trailblazer
|
||||
./nixos/configs/looking-glass.nix
|
||||
./nixos/configs/serve-cache.nix
|
||||
];
|
||||
};
|
||||
|
||||
# Valere (powerful laptop).
|
||||
nixosConfigurations.valere = nixpkgs.lib.nixosSystem rec {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = mkSpecialArgs system;
|
||||
|
||||
modules = linuxOfflineGuiModules [
|
||||
./nixos/hosts/valere.nix
|
||||
./nixos/configs/vmware.nix
|
||||
./nixos/configs/power-saving.nix
|
||||
];
|
||||
};
|
||||
|
||||
# Tohru (mid-tier laptop with more ram).
|
||||
nixosConfigurations.tohru = nixpkgs.lib.nixosSystem rec {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = mkSpecialArgs system;
|
||||
|
||||
modules = linuxOfflineGuiModules [
|
||||
./nixos/hosts/tohru.nix
|
||||
./nixos/configs/power-saving.nix
|
||||
./nixos/configs/looking-glass.nix
|
||||
];
|
||||
};
|
||||
|
||||
# Hinata (travel laptop).
|
||||
nixosConfigurations.hinata = nixpkgs.lib.nixosSystem rec {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = mkSpecialArgs system;
|
||||
|
||||
modules = linuxOfflineGuiModules [
|
||||
./nixos/hosts/hinata.nix
|
||||
./nixos/configs/power-saving.nix
|
||||
./nixos/configs/cellular.nix
|
||||
];
|
||||
};
|
||||
|
||||
# Veth (purse laptop).
|
||||
nixosConfigurations.veth = nixpkgs.lib.nixosSystem rec {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = mkSpecialArgs system;
|
||||
|
||||
modules = linuxGuiModules [
|
||||
./nixos/hosts/veth
|
||||
./nixos/configs/power-saving.nix
|
||||
];
|
||||
};
|
||||
|
||||
# Komashi (TMLLC T16 gen2).
|
||||
nixosConfigurations.komashi = nixpkgs.lib.nixosSystem rec {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = mkSpecialArgs system;
|
||||
|
||||
modules = linuxOfflineGuiModules [
|
||||
./nixos/hosts/komashi
|
||||
|
||||
./nixos/configs/vmware.nix
|
||||
./nixos/configs/cellular.nix
|
||||
./nixos/configs/nfc-kernel.nix
|
||||
./nixos/configs/power-saving.nix
|
||||
];
|
||||
};
|
||||
|
||||
# Utol (TMLLC T14 Gen1)
|
||||
nixosConfigurations.utol = nixpkgs.lib.nixosSystem rec {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = mkSpecialArgs system;
|
||||
|
||||
modules = linuxGuiModules [
|
||||
./nixos/hosts/utol
|
||||
|
||||
./nixos/configs/vmware.nix
|
||||
./nixos/configs/cellular.nix
|
||||
./nixos/configs/power-saving.nix
|
||||
|
||||
./nixos/packages/offline.nix
|
||||
];
|
||||
};
|
||||
|
||||
# Salas (TMLLC aarch64-linux, apple-silicon, build machine).
|
||||
nixosConfigurations.salas = nixpkgs.lib.nixosSystem rec {
|
||||
system = "aarch64-linux";
|
||||
specialArgs = mkSpecialArgs system;
|
||||
|
||||
modules = linuxModules [ ./nixos/hosts/salas.nix ];
|
||||
};
|
||||
|
||||
# Nomon (TMLLC aarch64-linux, broadcom-silicon, test machine).
|
||||
nixosConfigurations.nomon = nixpkgs.lib.nixosSystem rec {
|
||||
system = "aarch64-linux";
|
||||
specialArgs = mkSpecialArgs system;
|
||||
|
||||
modules = linuxModules [ ./nixos/hosts/salas.nix ];
|
||||
};
|
||||
|
||||
# Roshar (TMLLC aarch64-darwin, apple-silicon build machine).
|
||||
darwinConfigurations.roshar = darwin.lib.darwinSystem rec {
|
||||
system = "aarch64-darwin";
|
||||
specialArgs = mkSpecialArgs system;
|
||||
|
||||
modules = darwinModules [ ./nixos/hosts/roshar.nix ];
|
||||
};
|
||||
|
||||
# Mako (x86_64-darwin, apple-silicon build machine).
|
||||
darwinConfigurations.mako = darwin.lib.darwinSystem rec {
|
||||
system = "x86_64-darwin";
|
||||
specialArgs = mkSpecialArgs system;
|
||||
|
||||
modules = darwinModules [ ./nixos/hosts/mako.nix ];
|
||||
};
|
||||
|
||||
# Design, our phone.
|
||||
nixOnDroidConfigurations.design = nix-on-droid.lib.nixOnDroidConfiguration rec {
|
||||
pkgs = import nixpkgs {
|
||||
system = "aarch64-linux";
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
extraSpecialArgs = mkSpecialArgsDroid "aarch64-linux" pkgs;
|
||||
|
||||
modules = [
|
||||
./nixos/hosts/design.nix
|
||||
./nixos/configuration.droid.nix
|
||||
|
||||
./nixos/configs/nix.droid.nix
|
||||
./nixos/configs/droid-gui.nix
|
||||
./nixos/configs/dotfiles/droid.nix
|
||||
./nixos/configs/flake-registry.nix
|
||||
|
||||
./nixos/packages/droid.nix
|
||||
./nixos/packages/offline.droid.nix
|
||||
];
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
}
|
BIN
flipper/.dolphin.state
Normal file
BIN
flipper/.dolphin.state
Normal file
Binary file not shown.
8
flipper/openocd-jtag.cfg
Normal file
8
flipper/openocd-jtag.cfg
Normal file
|
@ -0,0 +1,8 @@
|
|||
adapter driver cmsis-dap
|
||||
adapter speed 4000
|
||||
|
||||
transport select jtag
|
||||
|
||||
cmsis_dap_backend usb_bulk
|
||||
|
||||
source [find interface/cmsis-dap.cfg]
|
8
flipper/openocd-swd.cfg
Normal file
8
flipper/openocd-swd.cfg
Normal file
|
@ -0,0 +1,8 @@
|
|||
adapter driver cmsis-dap
|
||||
adapter speed 4000
|
||||
|
||||
transport select swd
|
||||
|
||||
cmsis_dap_backend usb_bulk
|
||||
|
||||
source [find interface/cmsis-dap.cfg]
|
21
fonts/MonoLisa/README.md
Normal file
21
fonts/MonoLisa/README.md
Normal file
|
@ -0,0 +1,21 @@
|
|||
# MonoLisa - Font follows function
|
||||
|
||||
Congratulations for purchasing MonoLisa. I hope you have as much fun using it as we had creating the typeface.
|
||||
|
||||
## Installation
|
||||
|
||||
To install the font, please see [the FAQ online](https://monolisa.dev/faq) or consider the quick guides below:
|
||||
|
||||
- macOS - 1. Select and open the otf versions of the font 2. Select "install font"
|
||||
- Windows - Refer to https://support.microsoft.com/en-us/help/314960/how-to-install-or-remove-a-font-in-windows
|
||||
- Linux and other systems - Please consult the documentation of your distribution.
|
||||
|
||||
## Support
|
||||
|
||||
You can reach us through `info@monolisa.dev`. Send us your questions, comments, and perhaps testimonials.
|
||||
|
||||
If you have public feedback about the font, [please use the issue tracker](https://github.com/MonoLisaFont/feedback/issues).
|
||||
|
||||
## License
|
||||
|
||||
See the attached `license.md` file for the licensing terms.
|
185
fonts/MonoLisa/license.md
Normal file
185
fonts/MonoLisa/license.md
Normal file
|
@ -0,0 +1,185 @@
|
|||
# FaceType – End User License Agreement (EULA)
|
||||
|
||||
FaceType says thank you for reading this and taking the time to understand this License Agreement! Your support makes this foundry possible.
|
||||
|
||||
## Acknowledgments
|
||||
|
||||
FaceType is willing to license the licensed product to Licensees only on the condition that the Licensee accepts the terms and conditions contained in this agreement. By placing an order for and accepting FaceType font software (electronic data), or by downloading the software accompanying this license, the Licensee acknowledges that he has read all of the terms and conditions of this agreement, understands them, and agrees to be bound by them.
|
||||
|
||||
If the Licensee does not agree to these terms and conditions, he must promptly cease download or use of the licensed product and return the licensed product to FaceType or its reseller for a full refund of the license fee which the Licensee paid for the licensed product, and the Licensee must immediately delete any portion of the font software installed on Licensee’s computer(s).
|
||||
|
||||
If you intend to create a trademark, logo, brand or corporate identy, a multinational campaign using any of FaceType’s typefaces or if the number of prints for large commercial projects exceeds 250,000, a special font license solely issued by FaceType is needed. Please contact us for more information: welcome@facetype.org
|
||||
|
||||
## Types of Font Licenses
|
||||
|
||||
Most font license distributors offer default font licenses. If not, please contact FaceType directly: welcome@facetype.org
|
||||
|
||||
## 1. Desktop License
|
||||
|
||||
### 1.a Definition
|
||||
|
||||
With a desktop license, you may install a font into your computer’s operating system and use it in any of your applications that contain a fonts menu such as TextEdit, Microsoft Word Adobe Photoshop or Indesign.
|
||||
|
||||
### 1.b The Licensee May
|
||||
|
||||
Create personal or commercial print documents, posters, business cards, goods for sale, (such as clothing apparel and accessories), physical goods, static images, and other objects like stationery, mugs, T-shirts and the like. Desktop licenses are based on the number of computers (= computers) the fonts are installed onto. If more people intend to use the fonts, just add additional licenses. See ‘Multi-User Licenses’ below for more infos.
|
||||
|
||||
### 1.c Embedding Restrictions
|
||||
|
||||
PDF embedding of the font software into PDF documents is only permitted in a secured read-only mode that allows only printing and viewing, and prohibits editing, selecting, enhancing or modifying the text.
|
||||
|
||||
Licensee must ensure that recipients of PDF documents cannot extract the FaceType font software from such PDF documents or use the embedded font software for editing purposes or for the creation of new documents.
|
||||
|
||||
If you are unable to limit access to the document to ‘printing and viewing’ only, the electronic document(s) may not be used on computers that are not Licensed Computers. Examples of non-commercial, not-for-profit permitted usage include PDF documents supplied to Service Bureaus, printers, or any documents that disseminate personal, internal or business information.
|
||||
|
||||
### 1.d Number of Users
|
||||
|
||||
This electronic data may be installed on up to one (1) computer. If you are using this product with more than one (1) computers, the Licensee requires to obtain a Multi-User License for the appropriate number of computers (see Multi-User Licenses section below).
|
||||
|
||||
### 1.e Multi-User Licenses
|
||||
|
||||
FaceType calculates Multi-User Licenses based on the chart below. The price FaceType charges the Licensee will be calculated based on the number of computers the fonts will be installed onto:
|
||||
|
||||
- 1-2 computers: single License x 1
|
||||
- 3–5 computers: single License x 2
|
||||
- 6–15 computers: single License x 3
|
||||
- 16–30 computers: single License x 4
|
||||
- 31–50 computers: single License x 5
|
||||
- 51–75 computers: single License x 6
|
||||
- 76–100 computers: single License x 7
|
||||
- 101–120 computers: single License x 8
|
||||
- 121–145 computers: single License x 9
|
||||
- 146–160 computers: single License x 10
|
||||
- 161–180 computers: single License x 11
|
||||
- 181–195 computers: single License x 12
|
||||
- 196–215 computers: single License x 13
|
||||
- 216–230 computers: single License x 14
|
||||
- 231–260 computers: single License x 15
|
||||
- 261–300 computers: single License x 16
|
||||
- 301–335 computers: single License x 17
|
||||
- 336–375 computers: single License x 18
|
||||
- 376–415 computers: single License x 19
|
||||
- 416–460 computers: single License x 20
|
||||
- 461–520 computers: single License x 21
|
||||
- 521–580 computers: single License x 22
|
||||
- 581–640 computers: single License x 23
|
||||
- 641–700 computers: single License x 24
|
||||
- 701–760 computers: single License x 25
|
||||
- 761–820 computers: single License x 26
|
||||
- 821–880 computers: single License x 27
|
||||
- 881–940 computers: single License x 28
|
||||
- 941–1000 computers: single License x 29
|
||||
|
||||
## 2. Webfont License
|
||||
|
||||
A webfont license allows you to embed the purchased webfont into your website (a group of pages related to one domain, including sub-domains). If you only use static images with one of our fonts on your website a desktop license is sufficient.
|
||||
|
||||
FaceType is not responsible for installing, embedding, hosting or updating the webfonts. Web design agencies or hosting providers are not allowed to share a single webfont license across their clients’ websites. The price FaceType charges the Licensee will be calculated based on the number of pageviews per month:
|
||||
|
||||
- 10 000 pageviews per month or less: single License x 1
|
||||
- 100 000 pageviews per month or less: single License x 2
|
||||
- More than 100 000 pageviews per month: single License x 10
|
||||
|
||||
## 3. App License
|
||||
|
||||
Select this license type when you are developing an app for iOS, Android, or Windows Phone or any other mobile OS, and you intend to embed the font files in your mobile application’s code. This license does not cover web apps. The amount of installations across the platforms (i. g. iOS, Android, …) is unlimited.
|
||||
|
||||
An Apps License is also required when incorporating the font software into your hardware, software or any other products, such as application programs, interfaces, EPOS, WEPOS, POSReady, operating systems, electronics, electronic games, entertainment products, video on demand, gaming devices.
|
||||
|
||||
## 4. Server License
|
||||
|
||||
Select a server license when you need to install the font on Web Servers that will allow the generation of items such as PDF invoices, custom business cards, or other personalized products using Web to Print technologies. This license allows your customers to utilize the fonts you have purchased in order to customize the products that you offer, but the fonts can not be distributed or downloaded from the server.
|
||||
|
||||
## 5. ePub License
|
||||
|
||||
Choose one of our fonts available with an ePub license when creating layouts for publications intended for Kindles, iPads or other eReaders, ePublishing, ePub, eBooks, eZines, proprietary reader devices. If you just need a font to create a cover image, purchase a desktop license. An ePub license is valid for file formats such as PDF, EPUB 2.01, EPUB 3, and KF8.
|
||||
|
||||
## General
|
||||
|
||||
You agree to inform your employees or any other person having access to the FaceType software and copies thereof, of the terms and conditions of this Standard License Agreement and to ensure that they shall strictly abide by these terms and conditions.
|
||||
|
||||
You agree that you will not export or re-export the Software in any form without the appropriate United States, European, and worldwide government licenses.
|
||||
|
||||
You agree not to sublicense, sell, lease or otherwise transfer the electronic data without the prior written consent of FaceType.
|
||||
|
||||
## Grant of License
|
||||
|
||||
In consideration of payment of the license fee, included in the price paid by the Licensee for this product, the Licensor grants to the Licensee a non-exclusive right to use this product, which consists of electronic data to display and output PostScript®, TrueType® or OpenType® typefaces. The terms of this Agreement are contractual in nature and not mere recitations.
|
||||
|
||||
## Prohibited Usage
|
||||
|
||||
This product is licensed only to the Licensee, and may not be transferred to any third party at any time without the prior written consent of FaceType.
|
||||
|
||||
The Licensee may not modify, translate, adapt, alter, decompile, disassemble, decrypt, reverse engineer, change or alter the embedding bits, the font name, legal notices contained in the font software, nor seek to discover the source code of the font data, convert into another font format, create bitmaps, add or subtract any glyphs, symbols or accents, or any other derivative works based on the electronic data in this product.
|
||||
|
||||
The Licensee may not supply, directly or indirectly, any FaceType font data to any other firm, business or individual for any type of modifications or updates whatsoever.
|
||||
|
||||
If the Licensee needs to modify or update the font data in anyway in the future, FaceType solely will perform and invoice this additional work at its normal prevailing rates.
|
||||
|
||||
The Licensee may not duplicate, modify, adapt, translate or create derivative works based on the printed materials that may have been supplied with this product. It is a breach of this license agreement to use the product in any way that infringes the rights of any third party under copyright, trademark, patent or any other laws.
|
||||
|
||||
In the event of infringing uses by the Licensee, this license immediately terminates and the Licensee is solely responsible for any such infringing uses including all legal and other damages that may be incurred.
|
||||
|
||||
## Ownership
|
||||
|
||||
FaceType retains intellectual property rights, title and ownership of any of its electronic data provided. This title and ownership extends to copies of the data installed on any computer, downloaded to any output device, or retained on other media by the Licensee as a backup.
|
||||
|
||||
This license does not constitute an exclusive sale of the original product to the Licensee. This Agreement does not grant you any right to patents, copyrights, trade secrets, trade names, trademarks (whether registered or unregistered), or any other rights, franchises or licenses in respect of the electronic data.
|
||||
|
||||
No rights are granted to you other than a License to use the electronic data on the terms expressly set forth in this Agreement. The Licensee further acknowledges and agrees that the structure, organisation and code of the font software are valuable trade secrets and confidential information of FaceType.
|
||||
|
||||
The font software is protected by copyright including without limitation, by Austrian, and United States Copyright Law, international treaty provisions, and applicable laws in the jurisdiction of use.
|
||||
|
||||
## Copy Restrictions
|
||||
|
||||
This product is copyrighted and contains proprietary information and trade secrets of FaceType. Unauthorised copying of this product is expressly forbidden.
|
||||
|
||||
You are permitted to create backups of the font software, provided that: (a) they are stored only at the site where this product is licensed, and (b) the full copyright information is included with each backup copy.
|
||||
|
||||
You may be held legally responsible for any infringement of FaceType’s intellectual property rights that is caused or encouraged by your failure to abide by the terms of this Agreement.
|
||||
|
||||
## Limited Warranty
|
||||
|
||||
If the media or the font software contained in this FaceType product is found to be defective within 90 days of the date of delivery to the Licensee, FaceType will provide suitable replacements at no charge to the Licensee, provided the Licensee can provide proof of purchase. The entire risk of performance and quality of this product is with the Licensee.
|
||||
|
||||
FaceType does not warrant that this product will operate with all other software products, or that it will satisfy your requirements. FaceType’s entire liability to the Licensee will not extend beyond replacement of defective media or refund of the purchase price.
|
||||
|
||||
## Disclaimer
|
||||
|
||||
Except as expressly provided above, this product is provided ‘as is’. FaceType does not make any warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose.
|
||||
|
||||
No oral or written information or advice given by FaceType, its dealers, distributors, agents, or employees will create a warranty or in any way increase the scope of this warranty, and Licensee may not rely upon any such information or advice.
|
||||
|
||||
FaceType shall not be liable for any direct, indirect, consequential, or incidental damages or any other damages of any kind whatsoever (including damages from loss of business profits, business interruption and loss of business information) arising out of the use or inability to use this product.
|
||||
|
||||
Because laws governing the exclusion or limitation of liability for consequential or incidental damages vary, the above limitation may not be applicable.
|
||||
|
||||
## Update Registration
|
||||
|
||||
At its option, FaceType will, from time to time, provide updates of this product to Licensees who have opted into receiving updates in their user profile.
|
||||
|
||||
## Termination
|
||||
|
||||
This Agreement is effective until terminated. This Agreement will terminate automatically without notice from FaceType, if the Licensee fails to comply with any provision contained herein.
|
||||
|
||||
Upon termination of this Agreement, the Licensee must: (a) destroy all copies of the electronic data, including the copy on the disk media originally provided in this product, (b) destroy all written materials provided with this product, if any, and (c) provide FaceType with written verification that the product has been destroyed.
|
||||
|
||||
## Severability
|
||||
|
||||
If any provisions of this Agreement are held to be invalid, illegal or unenforceable, then such provision(s) shall be severed from it, and the validity, legality and enforceability of its remaining provisions shall not be affected or impaired.
|
||||
|
||||
## Waiver
|
||||
|
||||
Waiver of any right(s) at any time shall not constitute waiver of any right(s) at any future time.
|
||||
|
||||
## License Agreement
|
||||
|
||||
This Agreement may only be modified by FaceType. FaceType expressly reserves the right to amend, modify or change this Standard License Agreement at any time without prior notification.
|
||||
|
||||
## Jurisdiction
|
||||
|
||||
This Agreement represents the entire agreement between the Licensor and Licensee. FaceType may only modify this Agreement. The laws of Austria govern this License Agreement. If you have any questions concerning this Agreement or any matters regarding our products, please write to: welcome@facetype.org
|
||||
|
||||
The FaceType collections are the brands and trademarks of FaceType. PostScript and Flash are registered trademark of Adobe Systems, Inc. TrueType®, OpenType® and Silverlight® are registered trademarks of Microsoft Corporation. All other brand or product names are the trademarks or registered trademarks of their respective holders and are duly recognised.
|
||||
|
||||
© Copyright September 30th, 2019 – Georg Herold-Wildfellner, Marcus Sterz.
|
BIN
fonts/MonoLisa/otf/MonoLisa-Bold.otf
Normal file
BIN
fonts/MonoLisa/otf/MonoLisa-Bold.otf
Normal file
Binary file not shown.
BIN
fonts/MonoLisa/otf/MonoLisa-BoldItalic.otf
Normal file
BIN
fonts/MonoLisa/otf/MonoLisa-BoldItalic.otf
Normal file
Binary file not shown.
BIN
fonts/MonoLisa/otf/MonoLisa-Light.otf
Normal file
BIN
fonts/MonoLisa/otf/MonoLisa-Light.otf
Normal file
Binary file not shown.
BIN
fonts/MonoLisa/otf/MonoLisa-LightItalic.otf
Normal file
BIN
fonts/MonoLisa/otf/MonoLisa-LightItalic.otf
Normal file
Binary file not shown.
BIN
fonts/MonoLisa/otf/MonoLisa-Medium.otf
Normal file
BIN
fonts/MonoLisa/otf/MonoLisa-Medium.otf
Normal file
Binary file not shown.
BIN
fonts/MonoLisa/otf/MonoLisa-MediumItalic.otf
Normal file
BIN
fonts/MonoLisa/otf/MonoLisa-MediumItalic.otf
Normal file
Binary file not shown.
BIN
fonts/MonoLisa/otf/MonoLisa-Regular.otf
Normal file
BIN
fonts/MonoLisa/otf/MonoLisa-Regular.otf
Normal file
Binary file not shown.
BIN
fonts/MonoLisa/otf/MonoLisa-RegularItalic.otf
Normal file
BIN
fonts/MonoLisa/otf/MonoLisa-RegularItalic.otf
Normal file
Binary file not shown.
BIN
fonts/MonoLisa/ttf/MonoLisa-Bold.ttf
Normal file
BIN
fonts/MonoLisa/ttf/MonoLisa-Bold.ttf
Normal file
Binary file not shown.
BIN
fonts/MonoLisa/ttf/MonoLisa-BoldItalic.ttf
Normal file
BIN
fonts/MonoLisa/ttf/MonoLisa-BoldItalic.ttf
Normal file
Binary file not shown.
BIN
fonts/MonoLisa/ttf/MonoLisa-Light.ttf
Normal file
BIN
fonts/MonoLisa/ttf/MonoLisa-Light.ttf
Normal file
Binary file not shown.
BIN
fonts/MonoLisa/ttf/MonoLisa-LightItalic.ttf
Normal file
BIN
fonts/MonoLisa/ttf/MonoLisa-LightItalic.ttf
Normal file
Binary file not shown.
BIN
fonts/MonoLisa/ttf/MonoLisa-Medium.ttf
Normal file
BIN
fonts/MonoLisa/ttf/MonoLisa-Medium.ttf
Normal file
Binary file not shown.
BIN
fonts/MonoLisa/ttf/MonoLisa-MediumItalic.ttf
Normal file
BIN
fonts/MonoLisa/ttf/MonoLisa-MediumItalic.ttf
Normal file
Binary file not shown.
BIN
fonts/MonoLisa/ttf/MonoLisa-Regular.ttf
Normal file
BIN
fonts/MonoLisa/ttf/MonoLisa-Regular.ttf
Normal file
Binary file not shown.
BIN
fonts/MonoLisa/ttf/MonoLisa-RegularItalic.ttf
Normal file
BIN
fonts/MonoLisa/ttf/MonoLisa-RegularItalic.ttf
Normal file
Binary file not shown.
BIN
fonts/MonoLisa/woff/MonoLisa-Bold.woff
Normal file
BIN
fonts/MonoLisa/woff/MonoLisa-Bold.woff
Normal file
Binary file not shown.
BIN
fonts/MonoLisa/woff/MonoLisa-BoldItalic.woff
Normal file
BIN
fonts/MonoLisa/woff/MonoLisa-BoldItalic.woff
Normal file
Binary file not shown.
BIN
fonts/MonoLisa/woff/MonoLisa-Light.woff
Normal file
BIN
fonts/MonoLisa/woff/MonoLisa-Light.woff
Normal file
Binary file not shown.
BIN
fonts/MonoLisa/woff/MonoLisa-LightItalic.woff
Normal file
BIN
fonts/MonoLisa/woff/MonoLisa-LightItalic.woff
Normal file
Binary file not shown.
BIN
fonts/MonoLisa/woff/MonoLisa-Medium.woff
Normal file
BIN
fonts/MonoLisa/woff/MonoLisa-Medium.woff
Normal file
Binary file not shown.
BIN
fonts/MonoLisa/woff/MonoLisa-MediumItalic.woff
Normal file
BIN
fonts/MonoLisa/woff/MonoLisa-MediumItalic.woff
Normal file
Binary file not shown.
BIN
fonts/MonoLisa/woff/MonoLisa-Regular.woff
Normal file
BIN
fonts/MonoLisa/woff/MonoLisa-Regular.woff
Normal file
Binary file not shown.
BIN
fonts/MonoLisa/woff/MonoLisa-RegularItalic.woff
Normal file
BIN
fonts/MonoLisa/woff/MonoLisa-RegularItalic.woff
Normal file
Binary file not shown.
BIN
fonts/MonoLisa/woff2/MonoLisa-Bold.woff2
Normal file
BIN
fonts/MonoLisa/woff2/MonoLisa-Bold.woff2
Normal file
Binary file not shown.
BIN
fonts/MonoLisa/woff2/MonoLisa-BoldItalic.woff2
Normal file
BIN
fonts/MonoLisa/woff2/MonoLisa-BoldItalic.woff2
Normal file
Binary file not shown.
BIN
fonts/MonoLisa/woff2/MonoLisa-Light.woff2
Normal file
BIN
fonts/MonoLisa/woff2/MonoLisa-Light.woff2
Normal file
Binary file not shown.
BIN
fonts/MonoLisa/woff2/MonoLisa-LightItalic.woff2
Normal file
BIN
fonts/MonoLisa/woff2/MonoLisa-LightItalic.woff2
Normal file
Binary file not shown.
BIN
fonts/MonoLisa/woff2/MonoLisa-Medium.woff2
Normal file
BIN
fonts/MonoLisa/woff2/MonoLisa-Medium.woff2
Normal file
Binary file not shown.
BIN
fonts/MonoLisa/woff2/MonoLisa-MediumItalic.woff2
Normal file
BIN
fonts/MonoLisa/woff2/MonoLisa-MediumItalic.woff2
Normal file
Binary file not shown.
BIN
fonts/MonoLisa/woff2/MonoLisa-Regular.woff2
Normal file
BIN
fonts/MonoLisa/woff2/MonoLisa-Regular.woff2
Normal file
Binary file not shown.
BIN
fonts/MonoLisa/woff2/MonoLisa-RegularItalic.woff2
Normal file
BIN
fonts/MonoLisa/woff2/MonoLisa-RegularItalic.woff2
Normal file
Binary file not shown.
17
fonts/codicon.nix
Normal file
17
fonts/codicon.nix
Normal file
|
@ -0,0 +1,17 @@
|
|||
#
|
||||
# Codicon package for Nix.
|
||||
#
|
||||
|
||||
{ pkgs }:
|
||||
pkgs.stdenv.mkDerivation {
|
||||
pname = "codicon";
|
||||
meta.description = "the codiconfont set";
|
||||
version = "0.1.0";
|
||||
|
||||
src = ./codicon;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/share/fonts
|
||||
cp -R $src $out/share/fonts/truetype
|
||||
'';
|
||||
}
|
BIN
fonts/codicon/codicon.ttf
Normal file
BIN
fonts/codicon/codicon.ttf
Normal file
Binary file not shown.
25
fonts/manrope.nix
Normal file
25
fonts/manrope.nix
Normal file
|
@ -0,0 +1,25 @@
|
|||
#
|
||||
# Manrope font, with italics.
|
||||
#
|
||||
{
|
||||
stdenv,
|
||||
fetchFromGitHub
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "manrope";
|
||||
meta.description = "the Manrope font set, with italics";
|
||||
version = "0.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "malte-v";
|
||||
repo = "manrope-italic";
|
||||
rev = "8bfff2a5f0ba40ff8b793fe39e919c60380312b2";
|
||||
hash = "sha256-gWw+R/Qy3yIanA7C/UrmyDScd3DfaIHgN5aFDxqM6mY=";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/share/fonts
|
||||
cp -R $src $out/share/fonts/opentype/
|
||||
'';
|
||||
}
|
17
fonts/monolisa.nix
Normal file
17
fonts/monolisa.nix
Normal file
|
@ -0,0 +1,17 @@
|
|||
#
|
||||
# MonoLisa package for Nix.
|
||||
#
|
||||
|
||||
{ pkgs }:
|
||||
pkgs.stdenv.mkDerivation rec {
|
||||
pname = "monolisa";
|
||||
meta.description = "the MonoLisa font set";
|
||||
version = "0.1.0";
|
||||
|
||||
src = ./MonoLisa/otf;
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/share/fonts
|
||||
cp -R $src $out/share/fonts/opentype/
|
||||
'';
|
||||
}
|
3
grc/grc.conf
Normal file
3
grc/grc.conf
Normal file
|
@ -0,0 +1,3 @@
|
|||
# lsusb
|
||||
(^|[/\w\.]+/)lsusb\s
|
||||
lsusb.conf
|
21
grc/lsusb.conf
Normal file
21
grc/lsusb.conf
Normal file
|
@ -0,0 +1,21 @@
|
|||
regexp=.*:$
|
||||
colors=bold blue underline
|
||||
-
|
||||
regexp=^ (.*) (.*?)$
|
||||
colors=,blue,cyan
|
||||
-
|
||||
regexp=^ +(.*)( )(.*?):$
|
||||
colors=bold, underline, underline, underline
|
||||
-
|
||||
regexp=^ (.*): (.*)
|
||||
colors=,magenta
|
||||
-
|
||||
regexp=(Bus )(\d+) (Device) (\d+): (ID) ([0-9a-f]+:[0-9a-f]+) (.*)
|
||||
colors=, bold, blue, bold, blue, bold, green, yellow
|
||||
-
|
||||
regexp=.*root hub.*
|
||||
colors=dark dark white
|
||||
-
|
||||
regexp=(Bus )(\d+) (Device) (\d+): (ID) (1d50:60e6) (.*)
|
||||
colors=underline, bold underline, blue underline, bold underline, blue underline, bold underline, green underline, yellow underline
|
||||
|
116
kak/colors/solarized-darker.kak
Normal file
116
kak/colors/solarized-darker.kak
Normal file
|
@ -0,0 +1,116 @@
|
|||
# Solarized Darker
|
||||
|
||||
evaluate-commands %sh{
|
||||
base03='rgb:002b36'
|
||||
base02='rgb:073642'
|
||||
base01='rgb:586e75'
|
||||
base00='rgb:657b83'
|
||||
base0='rgb:839496'
|
||||
base1='rgb:93a1a1'
|
||||
base2='rgb:eee8d5'
|
||||
base3='rgb:fdf6e3'
|
||||
yellow='rgb:b58900'
|
||||
orange='rgb:cb4b16'
|
||||
red='rgb:dc322f'
|
||||
magenta='rgb:d33682'
|
||||
violet='rgb:6c71c4'
|
||||
blue='rgb:268bd2'
|
||||
cyan='rgb:2aa198'
|
||||
green='rgb:859900'
|
||||
|
||||
echo "
|
||||
# markup
|
||||
face global title ${blue}+b
|
||||
face global header ${blue}
|
||||
face global mono ${base1}
|
||||
face global block ${cyan}
|
||||
face global link ${base1}
|
||||
face global bullet ${yellow}
|
||||
face global list ${green}
|
||||
|
||||
# builtin
|
||||
face global Default ${base0},default
|
||||
face global PrimarySelection ${base03},${blue}+fg
|
||||
face global SecondarySelection ${base01},${base1}+fg
|
||||
face global PrimaryCursor ${base03},${base0}+fg
|
||||
face global SecondaryCursor ${base03},${base01}+fg
|
||||
face global PrimaryCursorEol ${base03},${base2}+fg
|
||||
face global SecondaryCursorEol ${base03},${base3}+fg
|
||||
face global LineNumbers ${base01},default
|
||||
face global LineNumberCursor ${base0},${base03}
|
||||
face global LineNumbersWrapped ${base02},default
|
||||
face global MenuForeground ${base03},${yellow}
|
||||
face global MenuBackground ${base1},${base02}
|
||||
face global MenuInfo ${base01}
|
||||
face global Information ${base02},${base1}
|
||||
face global Error ${red},default+b
|
||||
face global DiagnosticError ${red}
|
||||
face global DiagnosticWarning ${yellow}
|
||||
face global StatusLine ${base1},${base02}+b
|
||||
face global StatusLineMode ${orange}
|
||||
face global StatusLineInfo ${cyan}
|
||||
face global StatusLineValue ${green}
|
||||
face global StatusCursor ${base00},${base3}
|
||||
face global Prompt ${yellow}+b
|
||||
face global MatchingChar ${red},${base01}+b
|
||||
face global BufferPadding ${base01},default
|
||||
face global Whitespace ${base01}+f
|
||||
|
||||
# code
|
||||
face global value ${cyan}
|
||||
face global type ${yellow}
|
||||
face global variable ${blue}
|
||||
face global module ${cyan}
|
||||
face global function ${blue}
|
||||
face global string ${cyan}
|
||||
face global keyword ${green}
|
||||
face global operator ${green}
|
||||
face global attribute ${violet}
|
||||
face global comment ${base01}
|
||||
face global documentation comment
|
||||
face global meta ${orange}
|
||||
face global builtin default+b
|
||||
|
||||
# tree-sitter
|
||||
face global ts_attribute ${violet}
|
||||
face global ts_comment ${base01}+i
|
||||
face global ts_constant ${yellow}
|
||||
face global ts_constructor ${cyan}
|
||||
face global ts_diff_plus ${green}
|
||||
face global ts_diff_minus ${red}
|
||||
face global ts_diff_delta ${yellow}
|
||||
face global ts_error ${red}
|
||||
face global ts_function ${blue}
|
||||
face global ts_hint ${violet}
|
||||
face global ts_info ${violet}
|
||||
face global ts_keyword ${green}
|
||||
face global ts_label ${blue}+b
|
||||
face global ts_markup_bold default+b
|
||||
face global ts_markup_heading ${blue}+b
|
||||
face global ts_markup_italic default+i
|
||||
face global ts_list_checked ${blue}
|
||||
face global ts_list_numbered ${cyan}
|
||||
face global ts_list_unchecked ${green}
|
||||
face global ts_label ${violet}
|
||||
face global ts_url ${cyan}
|
||||
face global ts_uri ${cyan}
|
||||
face global ts_text default
|
||||
face global ts_quote ${magenta}
|
||||
face global ts_raw ${magenta}
|
||||
face global ts_markup_strikethrough default+s
|
||||
face global ts_namespace ${cyan}+b
|
||||
face global ts_operator operator
|
||||
face global ts_property ${violet}
|
||||
face global ts_punctuation default
|
||||
face global ts_special ${orange}
|
||||
face global ts_spell ${red}
|
||||
face global ts_string ${cyan}
|
||||
face global ts_symbol ${cyan}
|
||||
face global ts_tag ${violet}
|
||||
face global ts_tag_error ${red}
|
||||
face global ts_text default
|
||||
face global ts_type ${violet}
|
||||
face global ts_variable ${blue}
|
||||
face global ts_warning ${yellow}
|
||||
"
|
||||
}
|
511
kak/kak-lsp.toml
Normal file
511
kak/kak-lsp.toml
Normal file
|
@ -0,0 +1,511 @@
|
|||
file_watch_support = false
|
||||
snippet_support = true
|
||||
verbosity = 2
|
||||
|
||||
[server]
|
||||
# exit session if no requests were received during given period in seconds
|
||||
# set to 0 to disable
|
||||
timeout = 1800 # seconds = 30 minutes
|
||||
|
||||
# This section overrides language IDs.
|
||||
# By default, kakoune-lsp uses filetypes for the IDs.
|
||||
# See https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocumentItem
|
||||
[language_ids]
|
||||
c = "c_cpp"
|
||||
cpp = "c_cpp"
|
||||
javascript = "javascriptreact"
|
||||
typescript = "typescriptreact"
|
||||
protobuf = "proto"
|
||||
sh = "shellscript"
|
||||
|
||||
[language_server.bash-language-server]
|
||||
filetypes = ["sh"]
|
||||
roots = [".git", ".hg"]
|
||||
command = "bash-language-server"
|
||||
args = ["start"]
|
||||
|
||||
[language_server.clangd]
|
||||
filetypes = ["c", "cpp"]
|
||||
roots = ["compile_commands.json", ".clangd", ".git", ".hg"]
|
||||
command = "clangd"
|
||||
|
||||
[language_server.clojure-lsp]
|
||||
filetypes = ["clojure"]
|
||||
roots = ["project.clj", ".git", ".hg"]
|
||||
command = "clojure-lsp"
|
||||
settings_section = "_"
|
||||
[language_server.clojure-lsp.settings._]
|
||||
# See https://clojure-lsp.io/settings/#all-settings
|
||||
# source-paths-ignore-regex = ["resources.*", "target.*"]
|
||||
|
||||
[language_server.cmake-language-server]
|
||||
filetypes = ["cmake"]
|
||||
roots = ["CMakeLists.txt", ".git", ".hg"]
|
||||
command = "cmake-language-server"
|
||||
|
||||
[language_server.crystalline]
|
||||
filetypes = ["crystal"]
|
||||
roots = ["shard.yml"]
|
||||
command = "crystalline"
|
||||
|
||||
[language_server.css-language-server]
|
||||
filetypes = ["css"]
|
||||
roots = ["package.json", ".git", ".hg"]
|
||||
command = "vscode-css-language-server"
|
||||
args = ["--stdio"]
|
||||
|
||||
# [language_server.deno-lsp]
|
||||
# filetypes = ["javascript", "typescript"]
|
||||
# roots = ["package.json", "tsconfig.json", ".git", ".hg"]
|
||||
# command = "deno"
|
||||
# args = ["lsp"]
|
||||
# settings_section = "deno"
|
||||
# [language_server.deno-lsp.settings.deno]
|
||||
# enable = true
|
||||
# lint = true
|
||||
|
||||
[language_server.less-language-server]
|
||||
filetypes = ["less"]
|
||||
roots = ["package.json", ".git", ".hg"]
|
||||
command = "vscode-css-language-server"
|
||||
args = ["--stdio"]
|
||||
|
||||
|
||||
# See https://scalameta.org/metals/docs/integrations/new-editor
|
||||
[language_server.metals]
|
||||
filetypes = ["scala"]
|
||||
roots = ["build.sbt", ".scala-build"]
|
||||
command = "metals"
|
||||
args = ["-Dmetals.extensions=false"]
|
||||
settings_section = "metals"
|
||||
[language_server.metals.settings.metals]
|
||||
icons = "unicode"
|
||||
isHttpEnabled = true
|
||||
statusBarProvider = "show-message"
|
||||
compilerOptions = { overrideDefFormat = "unicode" }
|
||||
inlayHints.hintsInPatternMatch.enable = true
|
||||
inlayHints.implicitArguments.enable = true
|
||||
inlayHints.implicitConversions.enable = true
|
||||
inlayHints.inferredTypes.enable = true
|
||||
inlayHints.typeParameters.enable = true
|
||||
|
||||
[language_server.nil]
|
||||
filetypes = ["nix"]
|
||||
command = "nil"
|
||||
roots = ["flake.nix", "shell.nix", ".git", ".hg"]
|
||||
|
||||
[language_server.scss-language-server]
|
||||
filetypes = ["scss"]
|
||||
roots = ["package.json", ".git", ".hg"]
|
||||
command = "vscode-css-language-server"
|
||||
args = ["--stdio"]
|
||||
|
||||
[language_server.dls]
|
||||
filetypes = ["d", "di"]
|
||||
roots = [".git", "dub.sdl", "dub.json"]
|
||||
command = "dls"
|
||||
|
||||
[language_server.dart-lsp]
|
||||
# start shell to find path to dart analysis server source
|
||||
filetypes = ["dart"]
|
||||
roots = ["pubspec.yaml", ".git", ".hg"]
|
||||
command = "sh"
|
||||
args = ["-c", "dart $(dirname $(command -v dart))/snapshots/analysis_server.dart.snapshot --lsp"]
|
||||
|
||||
[language_server.jdtls]
|
||||
filetypes = ["java"]
|
||||
roots = ["mvnw", "gradlew", ".git", ".hg"]
|
||||
command = "jdtls"
|
||||
[language_server.jdtls.settings]
|
||||
# See https://github.dev/eclipse/eclipse.jdt.ls
|
||||
# "java.format.insertSpaces" = true
|
||||
|
||||
[language_server.elixir-ls]
|
||||
filetypes = ["elixir"]
|
||||
roots = ["mix.exs"]
|
||||
command = "elixir-ls"
|
||||
settings_section = "elixirLS"
|
||||
[language_server.elixir-ls.settings.elixirLS]
|
||||
# See https://github.com/elixir-lsp/elixir-ls/blob/master/apps/language_server/lib/language_server/server.ex
|
||||
# dialyzerEnable = true
|
||||
|
||||
[language_server.elm-language-server]
|
||||
filetypes = ["elm"]
|
||||
roots = ["elm.json"]
|
||||
command = "elm-language-server"
|
||||
args = ["--stdio"]
|
||||
settings_section = "elmLS"
|
||||
[language_server.elm-language-server.settings.elmLS]
|
||||
# See https://github.com/elm-tooling/elm-language-server#server-settings
|
||||
runtime = "node"
|
||||
elmPath = "elm"
|
||||
elmFormatPath = "elm-format"
|
||||
elmTestPath = "elm-test"
|
||||
|
||||
[language_server.elvish]
|
||||
filetypes = ["elvish"]
|
||||
roots = [".git", ".hg"]
|
||||
command = "elvish"
|
||||
args = ["-lsp"]
|
||||
|
||||
[language_server.erlang-ls]
|
||||
filetypes = ["erlang"]
|
||||
# See https://github.com/erlang-ls/erlang_ls.git for more information and
|
||||
# how to configure. This default config should work in most cases though.
|
||||
roots = ["rebar.config", "erlang.mk", ".git", ".hg"]
|
||||
command = "erlang_ls"
|
||||
|
||||
[language_server.gopls]
|
||||
filetypes = ["go"]
|
||||
roots = ["Gopkg.toml", "go.mod", ".git", ".hg"]
|
||||
command = "gopls"
|
||||
[language_server.gopls.settings.gopls]
|
||||
# See https://github.com/golang/tools/blob/master/gopls/doc/settings.md
|
||||
# "build.buildFlags" = []
|
||||
hints.assignVariableTypes = true
|
||||
hints.compositeLiteralFields = true
|
||||
hints.compositeLiteralTypes = true
|
||||
hints.constantValues = true
|
||||
hints.functionTypeParameters = true
|
||||
hints.parameterNames = true
|
||||
hints.rangeVariableTypes = true
|
||||
"ui.completion.usePlaceholders" = true
|
||||
|
||||
[language_server.haskell-language-server]
|
||||
filetypes = ["haskell"]
|
||||
roots = ["hie.yaml", "cabal.project", "Setup.hs", "stack.yaml", "*.cabal"]
|
||||
command = "haskell-language-server-wrapper"
|
||||
args = ["--lsp"]
|
||||
settings_section = "_"
|
||||
[language_server.haskell-language-server.settings._]
|
||||
# See https://haskell-language-server.readthedocs.io/en/latest/configuration.html
|
||||
# haskell.formattingProvider = "ormolu"
|
||||
|
||||
[language_server.html-language-server]
|
||||
filetypes = ["html"]
|
||||
roots = ["package.json"]
|
||||
command = "vscode-html-language-server"
|
||||
args = ["--stdio"]
|
||||
settings_section = "_"
|
||||
[language_server.html-language-server.settings._]
|
||||
# quotePreference = "single"
|
||||
# javascript.format.semicolons = "insert"
|
||||
|
||||
[language_server.intelephense]
|
||||
filetypes = ["php"]
|
||||
roots = [".htaccess", "composer.json"]
|
||||
command = "intelephense"
|
||||
args = ["--stdio"]
|
||||
settings_section = "intelephense"
|
||||
[language_server.intelephense.settings.intelephense]
|
||||
storagePath = "/tmp/intelephense"
|
||||
|
||||
[language_server.json-language-server]
|
||||
filetypes = ["json"]
|
||||
roots = ["package.json"]
|
||||
command = "vscode-json-language-server"
|
||||
args = ["--stdio"]
|
||||
|
||||
# Requires Julia package "LanguageServer"
|
||||
# Run: `julia --project=@kak-lsp -e 'import Pkg; Pkg.add("LanguageServer")'` to install it
|
||||
# Configuration adapted from https://github.com/neovim/nvim-lspconfig/blob/bcebfac7429cd8234960197dca8de1767f3ef5d3/lua/lspconfig/julials.lua
|
||||
[language_server.julia-language-server]
|
||||
filetypes = ["julia"]
|
||||
roots = ["Project.toml", ".git", ".hg"]
|
||||
command = "julia"
|
||||
args = [
|
||||
"--startup-file=no",
|
||||
"--history-file=no",
|
||||
"-e",
|
||||
"""
|
||||
ls_install_path = joinpath(get(DEPOT_PATH, 1, joinpath(homedir(), ".julia")), "environments", "kak-lsp");
|
||||
pushfirst!(LOAD_PATH, ls_install_path);
|
||||
using LanguageServer;
|
||||
popfirst!(LOAD_PATH);
|
||||
depot_path = get(ENV, "JULIA_DEPOT_PATH", "");
|
||||
buffer_file = ENV["kak_buffile"];
|
||||
project_path = let
|
||||
dirname(something(
|
||||
# 1. Check if there is an explicitly set project
|
||||
Base.load_path_expand((
|
||||
p = get(ENV, "JULIA_PROJECT", nothing);
|
||||
p === nothing ? nothing : isempty(p) ? nothing : p
|
||||
)),
|
||||
# 2. Check for Project.toml in current working directory
|
||||
Base.current_project(pwd()),
|
||||
# 3. Check for Project.toml from buffer's full file path excluding the file name
|
||||
Base.current_project(dirname(buffer_file)),
|
||||
# 4. Fallback to global environment
|
||||
Base.active_project()
|
||||
))
|
||||
end
|
||||
server = LanguageServer.LanguageServerInstance(stdin, stdout, project_path, depot_path);
|
||||
server.runlinter = true;
|
||||
run(server);
|
||||
""",
|
||||
]
|
||||
[language_server.julia-language-server.settings]
|
||||
# See https://github.com/julia-vscode/LanguageServer.jl/blob/master/src/requests/workspace.jl
|
||||
# Format options. See https://github.com/julia-vscode/DocumentFormat.jl/blob/master/src/DocumentFormat.jl
|
||||
# "julia.format.indent" = 4
|
||||
# Lint options. See https://github.com/julia-vscode/StaticLint.jl/blob/master/src/linting/checks.jl
|
||||
# "julia.lint.call" = true
|
||||
# Other options, see https://github.com/julia-vscode/LanguageServer.jl/blob/master/src/requests/workspace.jl
|
||||
# "julia.lint.run" = "true"
|
||||
|
||||
[language_server.lua-language-server]
|
||||
filetypes = ["lua"]
|
||||
roots = [".git", ".hg"]
|
||||
command = "lua-language-server"
|
||||
settings_section = "Lua"
|
||||
[language_server.lua-language-server.settings.Lua]
|
||||
# See https://github.com/sumneko/vscode-lua/blob/master/setting/schema.json
|
||||
# diagnostics.enable = true
|
||||
|
||||
[language_server.markdown]
|
||||
filetypes = ["markdown"]
|
||||
roots = [".marksman.toml"]
|
||||
command = "marksman"
|
||||
args = ["server"]
|
||||
|
||||
# [language_server.zk]
|
||||
# filetypes = ["markdown"]
|
||||
# roots = [".zk"]
|
||||
# command = "zk"
|
||||
# args = ["lsp"]
|
||||
|
||||
[language_server.nimlsp]
|
||||
filetypes = ["nim"]
|
||||
roots = ["*.nimble", ".git", ".hg"]
|
||||
command = "nimlsp"
|
||||
|
||||
[language_server.ocamllsp]
|
||||
filetypes = ["ocaml"]
|
||||
# Often useful to simply do a `touch dune-workspace` in your project root folder if you have problems with root detection
|
||||
roots = ["dune-workspace", "dune-project", "Makefile", "opam", "*.opam", "esy.json", ".git", ".hg", "dune"]
|
||||
command = "ocamllsp"
|
||||
|
||||
[language_server.pls]
|
||||
filetypes = ["protobuf"]
|
||||
roots = [".git", ".hg"]
|
||||
command = "pls" # https://github.com/lasorda/protobuf-language-server
|
||||
|
||||
[language_server.purescript-language-server]
|
||||
filetypes = ["purescript"]
|
||||
roots = ["spago.dhall", "spago.yaml", "package.json", ".git", ".hg"]
|
||||
command = "purescript-language-server"
|
||||
args = ["--stdio"]
|
||||
|
||||
[language_server.pylsp]
|
||||
filetypes = ["python"]
|
||||
roots = ["requirements.txt", "setup.py", ".git", ".hg"]
|
||||
command = "pylsp"
|
||||
settings_section = "_"
|
||||
[language_server.pylsp.settings._]
|
||||
# See https://github.com/python-lsp/python-lsp-server#configuration
|
||||
# pylsp.configurationSources = ["flake8"]
|
||||
pylsp.plugins.jedi_completion.include_params = true
|
||||
|
||||
# [language_server.pyright]
|
||||
# filetypes = ["python"]
|
||||
# roots = ["requirements.txt", "setup.py", "pyrightconfig.json", ".git", ".hg"]
|
||||
# command = "pyright-langserver"
|
||||
# args = ["--stdio"]
|
||||
|
||||
# [language_server.ruff]
|
||||
# filetypes = ["python"]
|
||||
# roots = ["requirements.txt", "setup.py", ".git", ".hg"]
|
||||
# command = "ruff-lsp"
|
||||
# settings_section = "_"
|
||||
# [language_server.ruff.settings._.globalSettings]
|
||||
# organizeImports = true
|
||||
# fixAll = true
|
||||
|
||||
[language_server.r-language-server]
|
||||
filetypes = ["r"]
|
||||
roots = ["DESCRIPTION", ".git", ".hg"]
|
||||
command = "R"
|
||||
args = ["--slave", "-e", "languageserver::run()"]
|
||||
|
||||
[language_server.racket-language-server]
|
||||
filetypes = ["racket"]
|
||||
roots = ["info.rkt"]
|
||||
command = "racket"
|
||||
args = ["-l", "racket-langserver"]
|
||||
|
||||
[language_server.reason-ocamllsp]
|
||||
filetypes = ["reason"]
|
||||
roots = ["package.json", "Makefile", ".git", ".hg"]
|
||||
command = "ocamllsp"
|
||||
|
||||
# [language_server.rls]
|
||||
# filetypes = ["rust"]
|
||||
# roots = ["Cargo.toml"]
|
||||
# command = "sh"
|
||||
# args = [
|
||||
# "-c",
|
||||
# """
|
||||
# if path=$(rustup which rls 2>/dev/null); then
|
||||
# exec "$path"
|
||||
# else
|
||||
# exec rls
|
||||
# fi
|
||||
# """,
|
||||
# ]
|
||||
# settings_section = "rust"
|
||||
# [language_server.rls.settings.rust]
|
||||
# # See https://github.com/rust-lang/rls#configuration
|
||||
# # features = []
|
||||
|
||||
|
||||
[language_server.rust-analyzer]
|
||||
filetypes = ["rust"]
|
||||
roots = ["Cargo.toml"]
|
||||
command = "sh"
|
||||
args = [
|
||||
"-c",
|
||||
"""
|
||||
if path=$(rustup which rust-analyzer 2>/dev/null); then
|
||||
exec "$path"
|
||||
else
|
||||
exec rust-analyzer
|
||||
fi
|
||||
""",
|
||||
]
|
||||
[language_server.rust-analyzer.settings.rust-analyzer]
|
||||
# See https://rust-analyzer.github.io/manual.html#configuration
|
||||
# cargo.features = []
|
||||
check.command = "clippy"
|
||||
|
||||
[language_server.solargraph]
|
||||
filetypes = ["ruby"]
|
||||
roots = ["Gemfile"]
|
||||
command = "solargraph"
|
||||
args = ["stdio"]
|
||||
settings_section = "_"
|
||||
[language_server.solargraph.settings._]
|
||||
# See https://github.com/castwide/solargraph/blob/master/lib/solargraph/language_server/host.rb
|
||||
# diagnostics = false
|
||||
|
||||
[language_server.svelte-language-server]
|
||||
filetypes = ["svelte"]
|
||||
roots = ["package.json", "tsconfig.json", "jsconfig.json", ".git", ".hg"]
|
||||
command = "svelteserver"
|
||||
args = ["--stdio"]
|
||||
|
||||
[language_server.taplo]
|
||||
filetypes = ["toml"]
|
||||
roots = [".git", ".hg"]
|
||||
command = "taplo"
|
||||
args = ["lsp", "stdio"]
|
||||
|
||||
[language_server.terraform-ls]
|
||||
filetypes = ["terraform"]
|
||||
roots = ["*.tf"]
|
||||
command = "terraform-ls"
|
||||
args = ["serve"]
|
||||
[language_server.terraform-ls.settings.terraform-ls]
|
||||
# See https://github.com/hashicorp/terraform-ls/blob/main/docs/SETTINGS.md
|
||||
# rootModulePaths = []
|
||||
|
||||
[language_server.texlab]
|
||||
filetypes = ["latex"]
|
||||
roots = [".git", ".hg"]
|
||||
command = "texlab"
|
||||
[language_server.texlab.settings.texlab]
|
||||
# See https://github.com/latex-lsp/texlab/wiki/Configuration
|
||||
#
|
||||
# Preview configuration for zathura with SyncTeX search.
|
||||
# For other PDF viewers see https://github.com/latex-lsp/texlab/wiki/Previewing
|
||||
forwardSearch.executable = "zathura"
|
||||
forwardSearch.args = [
|
||||
"%p",
|
||||
"--synctex-forward", # Support texlab-forward-search
|
||||
"%l:1:%f",
|
||||
"--synctex-editor-command", # Inverse search: use Control+Left-Mouse-Button to jump to source.
|
||||
"""
|
||||
sh -c '
|
||||
echo "
|
||||
evaluate-commands -client %%opt{texlab_client} %%{
|
||||
evaluate-commands -try-client %%opt{jumpclient} %%{
|
||||
edit -- %%{input} %%{line}
|
||||
}
|
||||
}
|
||||
" | kak -p $kak_session
|
||||
'
|
||||
""",
|
||||
]
|
||||
|
||||
[language_server.typescript-language-server]
|
||||
filetypes = ["javascript", "typescript"]
|
||||
roots = ["package.json", "tsconfig.json", "jsconfig.json", ".git", ".hg"]
|
||||
command = "typescript-language-server"
|
||||
args = ["--stdio"]
|
||||
settings_section = "_"
|
||||
[language_server.typescript-language-server.settings._]
|
||||
# quotePreference = "double"
|
||||
# typescript.format.semicolons = "insert"
|
||||
|
||||
# [language_server.biome]
|
||||
# filetypes = ["typescript", "javascript"]
|
||||
# roots = ["biome.json", "package.json", "tsconfig.json", "jsconfig.json", ".git", ".hg"]
|
||||
# command = "biome"
|
||||
# args = ["lsp-proxy"]
|
||||
|
||||
# [language_server.eslint]
|
||||
# filetypes = ["javascript", "typescript"]
|
||||
# roots = [".eslintrc", ".eslintrc.json"]
|
||||
# command = "eslint-language-server"
|
||||
# args = ["--stdio"]
|
||||
# workaround_eslint = true
|
||||
# [language_server.eslint.settings]
|
||||
# codeActionsOnSave = { mode = "all", "source.fixAll.eslint" = true }
|
||||
# format = { enable = true }
|
||||
# quiet = false
|
||||
# rulesCustomizations = []
|
||||
# run = "onType"
|
||||
# validate = "on"
|
||||
# experimental = {}
|
||||
# problems = { shortenToSingleLine = false }
|
||||
# codeAction.disableRuleComment = { enable = true, location = "separateLine" }
|
||||
# codeAction.showDocumentation = { enable = false }
|
||||
|
||||
[language_server.yaml-language-server]
|
||||
filetypes = ["yaml"]
|
||||
roots = [".git", ".hg"]
|
||||
command = "yaml-language-server"
|
||||
args = ["--stdio"]
|
||||
settings_section = "yaml"
|
||||
[language_server.yaml-language-server.settings.yaml]
|
||||
# See https://github.com/redhat-developer/yaml-language-server#language-server-settings
|
||||
# Defaults are at https://github.com/redhat-developer/yaml-language-server/blob/master/src/yamlSettings.ts
|
||||
# format.enable = true
|
||||
|
||||
[language_server.zls]
|
||||
filetypes = ["zig"]
|
||||
roots = ["build.zig"]
|
||||
command = "zls"
|
||||
|
||||
# Semantic tokens support
|
||||
# See https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_semanticTokens
|
||||
# for the default list of tokens and modifiers.
|
||||
# However, many language servers implement their own values.
|
||||
# Make sure to check the output of `lsp-capabilities` and each server's documentation and source code as well.
|
||||
# Examples:
|
||||
# - TypeScript: https://github.com/microsoft/vscode-languageserver-node/blob/main/client/src/common/semanticTokens.ts
|
||||
# - Rust Analyzer: https://github.com/rust-analyzer/rust-analyzer/blob/master/crates/ide/src/syntax_highlighting.rs
|
||||
[semantic_tokens]
|
||||
faces = [
|
||||
{face="documentation", token="comment", modifiers=["documentation"]},
|
||||
{face="comment", token="comment"},
|
||||
{face="function", token="function"},
|
||||
{face="keyword", token="keyword"},
|
||||
{face="module", token="namespace"},
|
||||
{face="operator", token="operator"},
|
||||
{face="string", token="string"},
|
||||
{face="type", token="type"},
|
||||
{face="default+d", token="variable", modifiers=["readonly"]},
|
||||
{face="default+d", token="variable", modifiers=["constant"]},
|
||||
{face="variable", token="variable"},
|
||||
]
|
||||
|
1482
kak/kak-tree-sitter.toml
Normal file
1482
kak/kak-tree-sitter.toml
Normal file
File diff suppressed because it is too large
Load diff
2
kak/kakrc
Normal file
2
kak/kakrc
Normal file
|
@ -0,0 +1,2 @@
|
|||
NOTE: This is not the kakrc file! That's generated by Nix.
|
||||
The subfolders here are what's included.
|
71
kak/sudo-write.kak
Normal file
71
kak/sudo-write.kak
Normal file
|
@ -0,0 +1,71 @@
|
|||
# save the current buffer to its file as root using `sudo`
|
||||
# (optionally pass the user password to sudo if not cached)
|
||||
|
||||
define-command -hidden sudo-write-cached-password %{
|
||||
# easy case: the password was already cached, so we don't need any tricky handling
|
||||
eval -save-regs f %{
|
||||
reg f %sh{ mktemp -t XXXXXX }
|
||||
write! %reg{f}
|
||||
eval %sh{
|
||||
sudo -n -- dd if="$kak_main_reg_f" of="$kak_buffile" >/dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "edit!"
|
||||
else
|
||||
echo 'fail "Unknown failure"'
|
||||
fi
|
||||
rm -f "$kak_main_reg_f"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
define-command -hidden sudo-write-prompt-password %{
|
||||
prompt -password 'Password:' %{
|
||||
eval -save-regs r %{
|
||||
eval -draft -save-regs 'tf|"' %{
|
||||
reg t %val{buffile}
|
||||
reg f %sh{ mktemp -t XXXXXX }
|
||||
write! %reg{f}
|
||||
|
||||
# write the password in a buffer in order to pass it through STDIN to sudo
|
||||
# somewhat dangerous, but better than passing the password
|
||||
# through the shell scope's environment or interpolating it inside the shell string
|
||||
# 'exec |' is pretty much the only way to pass data over STDIN
|
||||
edit -scratch '*sudo-password-tmp*'
|
||||
reg '"' "%val{text}"
|
||||
exec <a-P>
|
||||
reg | %{
|
||||
sudo -S -- dd if="$kak_main_reg_f" of="$kak_main_reg_t" > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
printf 'edit!'
|
||||
else
|
||||
printf 'fail "Incorrect password?"'
|
||||
fi
|
||||
rm -f "$kak_main_reg_f"
|
||||
}
|
||||
exec '|<ret>'
|
||||
exec -save-regs '' '%"ry'
|
||||
delete-buffer! '*sudo-password-tmp*'
|
||||
}
|
||||
eval %reg{r}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
define-command sudo-write -docstring "Write the content of the buffer using sudo" %{
|
||||
eval %sh{
|
||||
# tricky posix-way of getting the first character of a variable
|
||||
# no subprocess!
|
||||
if [ "${kak_buffile%"${kak_buffile#?}"}" != "/" ]; then
|
||||
# not entirely foolproof as a scratch buffer may start with '/', but good enough
|
||||
printf 'fail "Not a file"'
|
||||
exit
|
||||
fi
|
||||
# check if the password is cached
|
||||
if sudo -n true > /dev/null 2>&1; then
|
||||
printf sudo-write-cached-password
|
||||
else
|
||||
printf sudo-write-prompt-password
|
||||
fi
|
||||
}
|
||||
}
|
||||
|
70
kak/wezterm-tab.kak
Normal file
70
kak/wezterm-tab.kak
Normal file
|
@ -0,0 +1,70 @@
|
|||
# https://wezfurlong.org/wezterm/index.html
|
||||
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
|
||||
|
||||
|
||||
provide-module wezterm-tab %{
|
||||
|
||||
# ensure that we're running under screen
|
||||
evaluate-commands %sh{
|
||||
[ -z "${kak_opt_windowing_modules}" ] || [ -n "$WEZTERM_UNIX_SOCKET" ] || echo 'fail wezterm not detected'
|
||||
}
|
||||
|
||||
define-command wezterm-tab-terminal-impl -hidden -params 2.. %{
|
||||
nop %sh{
|
||||
wezterm cli "$@"
|
||||
}
|
||||
}
|
||||
|
||||
define-command wezterm-tab-terminal-vertical -params 1.. -docstring '
|
||||
wezterm-terminal-vertical <program> [<arguments>]: create a new terminal as a wezterm pane
|
||||
The current pane is split into two, top and bottom
|
||||
The program passed as argument will be executed in the new terminal' \
|
||||
%{
|
||||
wezterm-tab-terminal-impl split-pane --cwd "%val{client_env_PWD}" --bottom --pane-id "%val{client_env_WEZTERM_PANE}" -- %arg{@}
|
||||
}
|
||||
complete-command wezterm-tab-terminal-vertical shell
|
||||
|
||||
define-command wezterm-tab-terminal-horizontal -params 1.. -docstring '
|
||||
wezterm-terminal-horizontal <program> [<arguments>]: create a new terminal as a wezterm pane
|
||||
The current pane is split into two, left and right
|
||||
The program passed as argument will be executed in the new terminal' \
|
||||
%{
|
||||
wezterm-tab-terminal-impl split-pane --cwd "%val{client_env_PWD}" --right --pane-id "%val{client_env_WEZTERM_PANE}" -- %arg{@}
|
||||
}
|
||||
complete-command wezterm-tab-terminal-horizontal shell
|
||||
|
||||
define-command wezterm-tab-terminal-tab -params 1.. -docstring '
|
||||
wezterm-terminal-tab <program> [<arguments>]: create a new terminal as a wezterm tab
|
||||
The program passed as argument will be executed in the new terminal' \
|
||||
%{
|
||||
wezterm-tab-terminal-impl spawn --cwd "%val{client_env_PWD}" --pane-id "%val{client_env_WEZTERM_PANE}" -- %arg{@}
|
||||
}
|
||||
complete-command wezterm-tab-terminal-tab shell
|
||||
|
||||
define-command wezterm-tab-terminal-window -params 1.. -docstring '
|
||||
wezterm-terminal-window <program> [<arguments>]: create a new terminal as a wezterm window
|
||||
The program passed as argument will be executed in the new terminal' \
|
||||
%{
|
||||
wezterm-tab-terminal-impl spawn --cwd "%val{client_env_PWD}" --pane-id "%val{client_env_WEZTERM_PANE}" -- %arg{@}
|
||||
}
|
||||
complete-command wezterm-tab-terminal-window shell
|
||||
|
||||
define-command wezterm-tab-focus -params ..1 -docstring '
|
||||
wezterm-focus [<client>]: focus the given client
|
||||
If no client is passed then the current one is used' \
|
||||
%{
|
||||
evaluate-commands %sh{
|
||||
if [ $# -eq 1 ]; then
|
||||
printf %s\\n "
|
||||
evaluate-commands -client '$1' focus
|
||||
"
|
||||
elif [ -n "${kak_client_env_WEZTERM_PANE}" ]; then
|
||||
wezterm cli activate-pane --pane-id "${kak_client_env_WEZTERM_PANE}" > /dev/null 2>&1
|
||||
fi
|
||||
}
|
||||
}
|
||||
complete-command -menu wezterm-tab-focus client
|
||||
|
||||
alias global focus wezterm-tab-focus
|
||||
|
||||
}
|
|
@ -0,0 +1,67 @@
|
|||
{
|
||||
"title": "Use mouse buttons to move workspaces",
|
||||
"rules": [
|
||||
{
|
||||
"description": "Switch workspaces using trackball buttons (1+3), (2+4), and 4",
|
||||
"manipulators": [
|
||||
{
|
||||
"type": "basic",
|
||||
"from": {
|
||||
"simultaneous": [
|
||||
{ "pointing_button": "button3" },
|
||||
{ "pointing_button": "button1" }
|
||||
],
|
||||
"simultaneous_options": {
|
||||
"detect_key_down_uninterruptedly": true,
|
||||
"key_down_order": "insensitive",
|
||||
"key_up_order": "insensitive",
|
||||
"key_up_when": "any"
|
||||
}
|
||||
},
|
||||
"to": {
|
||||
"key_code": "left_arrow",
|
||||
"modifiers": [ "control" ]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "basic",
|
||||
"from": {
|
||||
"simultaneous": [
|
||||
{ "pointing_button": "button4" },
|
||||
{ "pointing_button": "button2" }
|
||||
],
|
||||
|
||||
"simultaneous_options": {
|
||||
"key_down_order": "insensitive",
|
||||
"key_up_order": "insensitive",
|
||||
"key_up_when": "any"
|
||||
}
|
||||
|
||||
},
|
||||
"to": {
|
||||
"key_code": "right_arrow",
|
||||
"modifiers": [ "control" ]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "basic",
|
||||
"from": {
|
||||
"pointing_button": "button3"
|
||||
},
|
||||
"to": {
|
||||
"key_code": "mission_control"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "basic",
|
||||
"from": {
|
||||
"pointing_button": "button4"
|
||||
},
|
||||
"to": {
|
||||
"key_code": "mission_control"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
15
khal/config
Normal file
15
khal/config
Normal file
|
@ -0,0 +1,15 @@
|
|||
[calendars]
|
||||
|
||||
[[metrology_calendar_local]]
|
||||
path = ~/.local/share/calendars/*
|
||||
type = discover
|
||||
|
||||
[locale]
|
||||
timeformat = %H:%M
|
||||
dateformat = %Y-%m-%d
|
||||
longdateformat = %Y-%m-%d
|
||||
datetimeformat = %Y-%m-%d %H:%M
|
||||
longdatetimeformat = %Y-%m-%d %H:%M
|
||||
|
||||
[default]
|
||||
default_calendar = kate@metrolo.gy
|
BIN
kinesis/active/do_not_edit.txt
Executable file
BIN
kinesis/active/do_not_edit.txt
Executable file
Binary file not shown.
0
kinesis/active/dvorak.txt
Executable file
0
kinesis/active/dvorak.txt
Executable file
7
kinesis/active/qwerty.txt
Executable file
7
kinesis/active/qwerty.txt
Executable file
|
@ -0,0 +1,7 @@
|
|||
[pause]>[play]
|
||||
[caps]>[delete]
|
||||
[lctrl]>[lwin]
|
||||
[rwin]>[rctrl]
|
||||
[rctrl]>[lwin]
|
||||
[delete]>[escape]
|
||||
{intl-\}>{speed9}{-lshift}{`}{+lshift}
|
10
kinesis/active/state.txt
Executable file
10
kinesis/active/state.txt
Executable file
|
@ -0,0 +1,10 @@
|
|||
startup_file=qwerty.txt
|
||||
key_click_tone=ON
|
||||
toggle_tone=ON
|
||||
macro_disable=OFF
|
||||
macro_speed=9
|
||||
status_play_speed=3
|
||||
power_user=true
|
||||
program_key_lock=OFF
|
||||
|
||||
v_drive_open_on_startup=ON
|
3
kinesis/active/version.txt
Executable file
3
kinesis/active/version.txt
Executable file
|
@ -0,0 +1,3 @@
|
|||
Model name: Advantage2 Keyboard
|
||||
Firmware version: 1.0.521.us (4MB), 06/25/2020
|
||||
Bootloader version: 1.0.1
|
BIN
looking-glass-contrib/IddSampleDriver.zip
Normal file
BIN
looking-glass-contrib/IddSampleDriver.zip
Normal file
Binary file not shown.
BIN
looking-glass-contrib/nvfbcwrp32.dll
Normal file
BIN
looking-glass-contrib/nvfbcwrp32.dll
Normal file
Binary file not shown.
BIN
looking-glass-contrib/nvfbcwrp64.dll
Normal file
BIN
looking-glass-contrib/nvfbcwrp64.dll
Normal file
Binary file not shown.
3
looking-glass/client.ini
Normal file
3
looking-glass/client.ini
Normal file
|
@ -0,0 +1,3 @@
|
|||
[input]
|
||||
escapeKey=KEY_F12
|
||||
captureOnFocus=yes
|
48
macos/USB Prober.app/Contents/Info.plist
Normal file
48
macos/USB Prober.app/Contents/Info.plist
Normal file
|
@ -0,0 +1,48 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>BuildMachineOSBuild</key>
|
||||
<string>13E28</string>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>USB Prober</string>
|
||||
<key>CFBundleGetInfoString</key>
|
||||
<string>666.4.0, Copyright © 2002-2014 Apple Inc. All rights reserved.</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>USBProberIcon.icns</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.apple.USBProber</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>USB Prober</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>666.4.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>USBP</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>666.4.0</string>
|
||||
<key>DTCompiler</key>
|
||||
<string>com.apple.compilers.llvm.clang.1_0</string>
|
||||
<key>DTPlatformBuild</key>
|
||||
<string>5A3005</string>
|
||||
<key>DTPlatformVersion</key>
|
||||
<string>GM</string>
|
||||
<key>DTSDKBuild</key>
|
||||
<string>13E28</string>
|
||||
<key>DTSDKName</key>
|
||||
<string></string>
|
||||
<key>DTXcode</key>
|
||||
<string>0502</string>
|
||||
<key>DTXcodeBuild</key>
|
||||
<string>5A3005</string>
|
||||
<key>NSMainNibFile</key>
|
||||
<string>MainMenu</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string>NSApplication</string>
|
||||
</dict>
|
||||
</plist>
|
BIN
macos/USB Prober.app/Contents/MacOS/USB Prober
Executable file
BIN
macos/USB Prober.app/Contents/MacOS/USB Prober
Executable file
Binary file not shown.
1
macos/USB Prober.app/Contents/PkgInfo
Normal file
1
macos/USB Prober.app/Contents/PkgInfo
Normal file
|
@ -0,0 +1 @@
|
|||
APPLUSBP
|
Binary file not shown.
BIN
macos/USB Prober.app/Contents/Resources/English.lproj/MainMenu.nib
generated
Normal file
BIN
macos/USB Prober.app/Contents/Resources/English.lproj/MainMenu.nib
generated
Normal file
Binary file not shown.
|
@ -0,0 +1,71 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>BuildMachineOSBuild</key>
|
||||
<string>13E28</string>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>KLog</string>
|
||||
<key>CFBundleGetInfoString</key>
|
||||
<string>650.4.0, Copyright © 2000-2012 Apple Inc. All rights reserved.</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.apple.iokit.KLog</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>Extension to log USB events</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>KEXT</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>650.4.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>650.4.0</string>
|
||||
<key>DTCompiler</key>
|
||||
<string>com.apple.compilers.llvm.clang.1_0</string>
|
||||
<key>DTPlatformBuild</key>
|
||||
<string>5A3005</string>
|
||||
<key>DTPlatformVersion</key>
|
||||
<string>GM</string>
|
||||
<key>DTSDKBuild</key>
|
||||
<string>13E28</string>
|
||||
<key>DTSDKName</key>
|
||||
<string></string>
|
||||
<key>DTXcode</key>
|
||||
<string>0502</string>
|
||||
<key>DTXcodeBuild</key>
|
||||
<string>5A3005</string>
|
||||
<key>IOKitPersonalities</key>
|
||||
<dict>
|
||||
<key>KLog</key>
|
||||
<dict>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.apple.iokit.KLog</string>
|
||||
<key>IOClass</key>
|
||||
<string>com_apple_iokit_KLog</string>
|
||||
<key>IOMatchCategory</key>
|
||||
<string>com_apple_iokit_KLog</string>
|
||||
<key>IOProviderClass</key>
|
||||
<string>IOResources</string>
|
||||
<key>IOResourceMatch</key>
|
||||
<string>IOKit</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>OSBundleCompatibleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>OSBundleLibraries</key>
|
||||
<dict>
|
||||
<key>com.apple.iokit.IOUSBFamily</key>
|
||||
<string>3.0.0</string>
|
||||
<key>com.apple.kpi.bsd</key>
|
||||
<string>9.0.0</string>
|
||||
<key>com.apple.kpi.iokit</key>
|
||||
<string>9.0.0</string>
|
||||
<key>com.apple.kpi.libkern</key>
|
||||
<string>9.0.0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
BIN
macos/USB Prober.app/Contents/Resources/KLog.kext/Contents/MacOS/KLog
Executable file
BIN
macos/USB Prober.app/Contents/Resources/KLog.kext/Contents/MacOS/KLog
Executable file
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,4 @@
|
|||
cd /System/Library/Extensions/
|
||||
/usr/sbin/chown -R root:wheel KLog.kext
|
||||
find KLog.kext -type d -exec /bin/chmod 0755 {} \;
|
||||
find KLog.kext -type f -exec /bin/chmod 0644 {} \;
|
BIN
macos/USB Prober.app/Contents/Resources/USBProberIcon.icns
Normal file
BIN
macos/USB Prober.app/Contents/Resources/USBProberIcon.icns
Normal file
Binary file not shown.
2229
macos/USB Prober.app/Contents/Resources/USBVendors.txt
Normal file
2229
macos/USB Prober.app/Contents/Resources/USBVendors.txt
Normal file
File diff suppressed because it is too large
Load diff
BIN
macos/USB Prober.app/Contents/Resources/clean.tiff
Normal file
BIN
macos/USB Prober.app/Contents/Resources/clean.tiff
Normal file
Binary file not shown.
BIN
macos/USB Prober.app/Contents/Resources/detail.tiff
Normal file
BIN
macos/USB Prober.app/Contents/Resources/detail.tiff
Normal file
Binary file not shown.
BIN
macos/USB Prober.app/Contents/Resources/mark.tiff
Normal file
BIN
macos/USB Prober.app/Contents/Resources/mark.tiff
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue