diff --git a/scripts/layouts.sh b/scripts/layouts.sh deleted file mode 100755 index b702947..0000000 --- a/scripts/layouts.sh +++ /dev/null @@ -1,65 +0,0 @@ -#!/usr/bin/env bash -# SPDX-License-Identifier: GPL-3.0-only -# This script produces layout data for the System76 Keyboard Configurator - -set -e - -rm -rf build/layouts -mkdir -p build/layouts -D="$(realpath build/layouts)" - -binary="$D/keymap" -source="$binary.c" -header="src/common/include/common/keymap.h" -echo "#include " > "$source" -echo "#include \"$header\"" >> "$source" -echo "int main(int argc, char **argv) {" >> "$source" -grep '^#define \(K_\|KT_FN\)' "$header" \ -| cut -d ' ' -f2 \ -| while read keycode -do - name="$(echo "$keycode" | cut -d '_' -f2-)" - echo "printf(\"${name},0x%04X\\n\", $keycode);" >> "$source" -done -echo "return 0;" >> "$source" -echo "}" >> "$source" -gcc -I. "$source" -o "$binary" -"$binary" | tee "$D/keymap.csv" - -cd src/board -for board in */* -do - file="$board/include/board/keymap.h" - if [ ! -e "$file" ] - then - continue - fi - echo "# $board" - mkdir -p "$D/$board" - cp "$D/keymap.csv" "$D/$board" - row=0 - rg \ - --multiline \ - --multiline-dotall \ - --regexp '#define LAYOUT\(.*\) \{.*\}' \ - "$file" \ - | grep --only-matching '\{.*\}' \ - | sed 's/^{ //' \ - | sed 's/ }$//' \ - | sed 's/, / /g' \ - | while read line - do - col=0 - for word in $line - do - if [ "$word" != "___" ] - then - echo "$word,$row,$col" - fi - col=$(expr $col + 1) - done - row=$(expr $row + 1) - done \ - | sort -n \ - | tee "$D/${board}/layout.csv" -done