# HG changeset patch # User Steve Losh # Date 1629142750 14400 # Node ID c49f8198d9f3ffd5c744d12e6f2eb48d0de4fe0d # Parent a5375d2875ae30599d23cabc3c196626677e881e# Parent 13111f36fe9610bf1889320630299cfdbf54f551 Merge diff -r a5375d2875ae -r c49f8198d9f3 bin/hl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bin/hl Mon Aug 16 15:39:10 2021 -0400 @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +less -R diff -r a5375d2875ae -r c49f8198d9f3 bin/posix --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bin/posix Mon Aug 16 15:39:10 2021 -0400 @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +if [ -z "$1" ]; then + w3m "$HOME/Dropbox/docs/posix/idx/utilities.html" +else + HTMLFILE="$HOME/Dropbox/docs/posix/utilities/$1.html" + if [ -s "$HTMLFILE" ]; then + w3m "$HTMLFILE" + else + echo "No matching file for '$1'" + fi +fi diff -r a5375d2875ae -r c49f8198d9f3 fish/functions/hl.fish --- a/fish/functions/hl.fish Mon Aug 16 15:38:38 2021 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -function hl -d "Highlighted Less" - less -R -end diff -r a5375d2875ae -r c49f8198d9f3 gnuplot --- a/gnuplot Mon Aug 16 15:38:38 2021 -0400 +++ b/gnuplot Mon Aug 16 15:39:10 2021 -0400 @@ -52,6 +52,16 @@ lrt4(mp, bp) = baselrt(m4, b4, mp, bp) # }}} +# Convenience Wrappers ---------------------------------------------------- {{{ + +csvinput = 'set datafile separator ","' +xrfc3339 = "set xdata time; set timefmt rfc3339" +yrfc3339 = "set ydata time; set timefmt rfc3339" + +y_def = sprintf("set ytics format '%h'") # eval y_def() +y_eng(n) = sprintf("set ytics format '%." . n . "sx10^%S'") # eval y_eng(1) → 100.1 x 10⁶ + +# }}} # Exporting --------------------------------------------------------------- {{{ export(file, terminal) = sprintf( \ diff -r a5375d2875ae -r c49f8198d9f3 hgrc --- a/hgrc Mon Aug 16 15:38:38 2021 -0400 +++ b/hgrc Mon Aug 16 15:39:10 2021 -0400 @@ -22,9 +22,23 @@ fetch = shelve = histedit = +absorb = prompt = ~/src/dotfiles/mercurial/hg-prompt/prompt.py hggit = ~/.hg-git/hggit +[absorb] +# only check 50 recent non-public changesets at most +max-stack-size = 50 +# whether to add noise to new commits to avoid obsolescence cycle +add-noise = 1 +# make `amend --correlated` a shortcut to the main command +amend-flag = correlated + +[color] +absorb.description = yellow +absorb.node = blue bold +absorb.path = bold + [progress] delay = 1.0 diff -r a5375d2875ae -r c49f8198d9f3 lisp/drivethru.lisp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lisp/drivethru.lisp Mon Aug 16 15:39:10 2021 -0400 @@ -0,0 +1,115 @@ +(eval-when (:compile-toplevel :load-toplevel :execute) + (ql:quickload + '(:adopt :with-user-abort :iterate :losh :hunchentoot :lparallel) + :silent t)) + +(defpackage :drivethru + (:use :cl :iterate :losh) + (:export :toplevel :*ui*)) + +(in-package :drivethru) + +;;;; State -------------------------------------------------------------------- +(defvar *acceptor* nil) + +;; in: (req . promise) +;; ↑ +;; out: (status . body) +(defvar *q* (lparallel.queue:make-queue)) + + +;;;; Server ------------------------------------------------------------------- +(defun prompt (message) + (write-string message) + (finish-output)) + +(defun handle () + (let ((p (lparallel:promise))) + (lparallel.queue:push-queue (cons hunchentoot:*request* p) *q*) + (destructuring-bind (status . body) (lparallel:force p) + (setf (hunchentoot:return-code*) status) + body))) + +(defun serve (r) + (destructuring-bind (request . promise) r + (let ((auth (multiple-value-list (hunchentoot:authorization request)))) + (format t "~%~C[1;96m;;;; ~A ~A --------------~%~C[0m" + #\esc + (hunchentoot:request-method request) + (hunchentoot:request-uri request) + #\esc) + (when auth + (format t ";; User: ~S~%;; Pass: ~S~%" (first auth) (second auth)))) + (let ((status (progn (prompt "Reponse code: ") + (parse-integer (read-line)))) + (body (progn (prompt "Reponse body: ") + (read-line)))) + (lparallel:fulfill promise (cons status body))))) + +(defun dispatch (request) + (declare (ignore request)) + #'handle) + + +;;;; Run ---------------------------------------------------------------------- +(defun run (port) + (setf hunchentoot:*dispatch-table* '(dispatch) + *acceptor* (hunchentoot:start (make-instance 'hunchentoot:easy-acceptor + :port port))) + (unwind-protect (loop (serve (lparallel.queue:pop-queue *q*))) + (hunchentoot:stop *acceptor*))) + + +;;;; User Interface ----------------------------------------------------------- +(defparameter *option-help* + (adopt:make-option 'help + :help "Display help and exit." + :long "help" + :short #\h + :reduce (constantly t))) + +(defparameter *option-port* + (adopt:make-option 'port + :help "Listen on port N (default 33455)." + :parameter "N" + :long "port" + :short #\p + :reduce #'adopt:last + :key #'parse-integer + :initial-value 33455)) + +(adopt:define-string *help-text* + "drivethru listens for HTTP requests and lets you give responses by hand on ~ + the fly, as a low-tech mock when testing an API.") + +(defparameter *examples* + '(("Run on port 80:" . "drivethru -p 80"))) + +(defparameter *ui* + (adopt:make-interface + :name "drivethru" + :usage "[OPTIONS]" + :summary "serve HTTP requests by hand" + :help *help-text* + :examples *examples* + :contents (list *option-port* + *option-help*))) + + +(defmacro exit-on-ctrl-c (&body body) + `(handler-case + (with-user-abort:with-user-abort (progn ,@body)) + (with-user-abort:user-abort () (adopt:exit 130)))) + + +(defun toplevel () + (exit-on-ctrl-c + (multiple-value-bind (arguments options) (adopt:parse-options-or-exit *ui*) + (handler-case + (if (gethash 'help options) + (adopt:print-help-and-exit *ui*) + (progn + (assert (null arguments)) + (run (gethash 'port options)))) + (error (e) (adopt:print-error-and-exit e)))))) + diff -r a5375d2875ae -r c49f8198d9f3 lispwords --- a/lispwords Mon Aug 16 15:38:38 2021 -0400 +++ b/lispwords Mon Aug 16 15:39:10 2021 -0400 @@ -87,7 +87,7 @@ (1 if-let* if-let) (1 gathering-vector) (1 multiple-value-bind*) -(1 do-repeat do-range do-irange do-ring-buffer do-vector) +(1 do-repeat do-range do-irange do-ring-buffer do-vector do-file) ; qtools (1 qtenumcase) diff -r a5375d2875ae -r c49f8198d9f3 stumpwmrc --- a/stumpwmrc Mon Aug 16 15:38:38 2021 -0400 +++ b/stumpwmrc Mon Aug 16 15:39:10 2021 -0400 @@ -398,6 +398,9 @@ (defcommand rain () () (message (run-shell-command "weather -H 36" t))) +(defcommand mark (thing) ((:string "Mark: ")) + (run-shell-command (format nil "mark ~A" thing))) + ;;;; Terminal Fonts ----------------------------------------------------------- (defcommand reload-terminal-font-size () @@ -408,8 +411,8 @@ (read f)) 11))) -(defparameter *terminal-font-size* (if (probe-file "~/.terminal-font") - (with-open-file (f "~/.terminal-font") +(defparameter *terminal-font-size* (if (probe-file "/home/sjl/.terminal-font") + (with-open-file (f "/home/sjl/.terminal-font") (read f)) 11)) @@ -527,6 +530,7 @@ (define-top-keys ;; miscellaneous ("H-m" "terminal") + ("H-M" "mark") ("H-SunPageUp" "st-font-up") ("H-SunPageDown" "st-font-down") ("H-Home" "st-font-reset") diff -r a5375d2875ae -r c49f8198d9f3 uhk.json --- a/uhk.json Mon Aug 16 15:38:38 2021 -0400 +++ b/uhk.json Mon Aug 16 15:39:10 2021 -0400 @@ -373,7 +373,48 @@ }, { "id": 2, - "keyActions": [] + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 76 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 42 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 40 + }, + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "middleClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] + }, + { + "id": 4, + "keyActions": [ + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] } ] }, @@ -660,6 +701,51 @@ }, null ] + }, + { + "id": 2, + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 76 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 42 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 40 + }, + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "middleClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] + }, + { + "id": 4, + "keyActions": [ + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] } ] }, @@ -828,6 +914,51 @@ null, null ] + }, + { + "id": 2, + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 76 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 42 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 40 + }, + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "middleClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] + }, + { + "id": 4, + "keyActions": [ + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] } ] }, @@ -999,6 +1130,51 @@ }, null ] + }, + { + "id": 2, + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 76 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 42 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 40 + }, + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "middleClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] + }, + { + "id": 4, + "keyActions": [ + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] } ] } @@ -1358,7 +1534,48 @@ }, { "id": 2, - "keyActions": [] + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 76 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 42 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 40 + }, + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "middleClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] + }, + { + "id": 4, + "keyActions": [ + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] } ] }, @@ -1655,6 +1872,51 @@ }, null ] + }, + { + "id": 2, + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 76 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 42 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 40 + }, + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "middleClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] + }, + { + "id": 4, + "keyActions": [ + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] } ] }, @@ -1822,6 +2084,51 @@ null, null ] + }, + { + "id": 2, + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 76 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 42 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 40 + }, + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "middleClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] + }, + { + "id": 4, + "keyActions": [ + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] } ] }, @@ -1993,6 +2300,51 @@ }, null ] + }, + { + "id": 2, + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 76 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 42 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 40 + }, + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "middleClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] + }, + { + "id": 4, + "keyActions": [ + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] } ] } @@ -2352,7 +2704,48 @@ }, { "id": 2, - "keyActions": [] + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 76 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 42 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 40 + }, + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "middleClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] + }, + { + "id": 4, + "keyActions": [ + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] } ] }, @@ -2639,6 +3032,51 @@ }, null ] + }, + { + "id": 2, + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 76 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 42 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 40 + }, + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "middleClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] + }, + { + "id": 4, + "keyActions": [ + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] } ] }, @@ -2807,6 +3245,51 @@ null, null ] + }, + { + "id": 2, + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 76 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 42 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 40 + }, + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "middleClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] + }, + { + "id": 4, + "keyActions": [ + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] } ] }, @@ -2978,6 +3461,51 @@ }, null ] + }, + { + "id": 2, + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 76 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 42 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 40 + }, + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "middleClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] + }, + { + "id": 4, + "keyActions": [ + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] } ] } @@ -3337,7 +3865,48 @@ }, { "id": 2, - "keyActions": [] + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 76 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 42 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 40 + }, + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "middleClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] + }, + { + "id": 4, + "keyActions": [ + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] } ] }, @@ -3634,6 +4203,51 @@ }, null ] + }, + { + "id": 2, + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 76 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 42 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 40 + }, + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "middleClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] + }, + { + "id": 4, + "keyActions": [ + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] } ] }, @@ -3801,6 +4415,51 @@ null, null ] + }, + { + "id": 2, + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 76 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 42 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 40 + }, + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "middleClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] + }, + { + "id": 4, + "keyActions": [ + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] } ] }, @@ -3972,6 +4631,51 @@ }, null ] + }, + { + "id": 2, + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 76 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 42 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 40 + }, + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "middleClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] + }, + { + "id": 4, + "keyActions": [ + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] } ] } @@ -4331,7 +5035,48 @@ }, { "id": 2, - "keyActions": [] + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 76 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 42 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 40 + }, + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "middleClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] + }, + { + "id": 4, + "keyActions": [ + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] } ] }, @@ -4618,6 +5363,51 @@ }, null ] + }, + { + "id": 2, + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 76 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 42 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 40 + }, + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "middleClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] + }, + { + "id": 4, + "keyActions": [ + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] } ] }, @@ -4786,6 +5576,51 @@ null, null ] + }, + { + "id": 2, + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 76 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 42 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 40 + }, + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "middleClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] + }, + { + "id": 4, + "keyActions": [ + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] } ] }, @@ -4951,6 +5786,51 @@ }, null ] + }, + { + "id": 2, + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 76 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 42 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 40 + }, + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "middleClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] + }, + { + "id": 4, + "keyActions": [ + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] } ] } @@ -5310,7 +6190,48 @@ }, { "id": 2, - "keyActions": [] + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 76 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 42 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 40 + }, + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "middleClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] + }, + { + "id": 4, + "keyActions": [ + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] } ] }, @@ -5607,6 +6528,51 @@ }, null ] + }, + { + "id": 2, + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 76 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 42 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 40 + }, + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "middleClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] + }, + { + "id": 4, + "keyActions": [ + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] } ] }, @@ -5774,6 +6740,51 @@ null, null ] + }, + { + "id": 2, + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 76 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 42 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 40 + }, + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "middleClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] + }, + { + "id": 4, + "keyActions": [ + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] } ] }, @@ -5939,6 +6950,51 @@ }, null ] + }, + { + "id": 2, + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 76 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 42 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 40 + }, + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "middleClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] + }, + { + "id": 4, + "keyActions": [ + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] } ] } @@ -6286,7 +7342,7 @@ { "keyActionType": "keystroke", "type": "basic", - "scancode": 101 + "scancode": 70 }, { "keyActionType": "switchLayer", @@ -6298,7 +7354,48 @@ }, { "id": 2, - "keyActions": [] + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 76 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 42 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 40 + }, + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "middleClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] + }, + { + "id": 4, + "keyActions": [ + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] } ] }, @@ -6428,7 +7525,11 @@ "modifierMask": 32 }, null, - null, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 57 + }, null, { "keyActionType": "switchLayer", @@ -6492,7 +7593,7 @@ }, { "keyActionType": "switchKeymap", - "keymapAbbreviation": "COL" + "keymapAbbreviation": "WIN" }, { "keyActionType": "keystroke", @@ -6612,6 +7713,51 @@ }, null ] + }, + { + "id": 2, + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 76 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 42 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 40 + }, + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "middleClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] + }, + { + "id": 4, + "keyActions": [ + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] } ] }, @@ -6812,6 +7958,51 @@ null, null ] + }, + { + "id": 2, + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 76 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 42 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 40 + }, + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "middleClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] + }, + { + "id": 4, + "keyActions": [ + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] } ] }, @@ -6982,6 +8173,1278 @@ }, null ] + }, + { + "id": 2, + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 76 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 42 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 40 + }, + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "middleClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] + }, + { + "id": 4, + "keyActions": [ + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] + } + ] + } + ] + }, + { + "isDefault": false, + "abbreviation": "WIN", + "name": "SJL Windows", + "description": "My personal mappings.", + "layers": [ + { + "modules": [ + { + "id": 0, + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 36 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 37 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 38 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 39 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 45 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 46 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 42 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 24 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 12 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 18 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 19 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 47 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 48 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 49 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 28 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 13 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 14 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 15 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 51 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 52 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 40 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 11 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 17 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 16 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 54 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 55 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 56 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 32 + }, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 44 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 72 + }, + { + "keyActionType": "switchLayer", + "layer": "mod", + "switchLayerMode": "hold" + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 64 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 8 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 1 + } + ] + }, + { + "id": 1, + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 53 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 30 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 31 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 32 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 33 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 34 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 35 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 43 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 20 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 26 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 8 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 21 + }, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 23 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 41, + "secondaryRoleAction": "leftCtrl" + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 4 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 22 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 7 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 9 + }, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 10 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 2 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 100 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 29 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 27 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 6 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 25 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 5 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 1 + }, + { + "keyActionType": "switchLayer", + "layer": "mouse", + "switchLayerMode": "toggle" + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 8 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 4 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 70 + }, + { + "keyActionType": "switchLayer", + "layer": "mod", + "switchLayerMode": "hold" + }, + null + ] + }, + { + "id": 2, + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 76 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 42 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 40 + }, + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "middleClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] + }, + { + "id": 4, + "keyActions": [ + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] + } + ] + }, + { + "modules": [ + { + "id": 0, + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 64 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 65 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 66 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 67 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 68 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 69 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 76 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 78 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 75 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 77 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 76 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 70 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 71 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 108 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 74 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 81 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 82 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 79 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 73 + }, + null, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 80 + }, + { + "keyActionType": "playMacro", + "macroIndex": 2 + }, + { + "keyActionType": "playMacro", + "macroIndex": 3 + }, + { + "keyActionType": "playMacro", + "macroIndex": 4 + }, + { + "keyActionType": "playMacro", + "macroIndex": 5 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 101 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 32 + }, + null, + null, + null, + { + "keyActionType": "switchLayer", + "layer": "mod", + "switchLayerMode": "hold" + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 64 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 8 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 1 + } + ] + }, + { + "id": 1, + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 41 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 58 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 59 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 60 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 61 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 62 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 63 + }, + { + "keyActionType": "switchKeymap", + "keymapAbbreviation": "SJL" + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 41 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 75, + "modifierMask": 1 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 23, + "modifierMask": 1 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 78, + "modifierMask": 1 + }, + null, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 57 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 57 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 80, + "modifierMask": 5 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 43, + "modifierMask": 4 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 79, + "modifierMask": 5 + }, + null, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 2 + }, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 29, + "modifierMask": 8 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 27, + "modifierMask": 8 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 6, + "modifierMask": 8 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 25, + "modifierMask": 8 + }, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 1 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 8 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 8 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 4 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 1 + }, + { + "keyActionType": "switchLayer", + "layer": "mod", + "switchLayerMode": "hold" + }, + null + ] + }, + { + "id": 2, + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 76 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 42 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 40 + }, + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "middleClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] + }, + { + "id": 4, + "keyActions": [ + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] + } + ] + }, + { + "modules": [ + { + "id": 0, + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 42 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 84 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 85 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 86 + }, + null, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 42 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 95 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 37 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 97 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 87 + }, + null, + null, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 83 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 92 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 93 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 94 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 51 + }, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 88 + }, + null, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 89 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 90 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 91 + }, + null, + null, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 44 + }, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 98 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 99 + }, + null, + null + ] + }, + { + "id": 1, + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 43 + }, + null, + null, + null, + null, + null, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 57 + }, + null, + null, + null, + null, + null, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 2 + }, + null, + null, + null, + null, + null, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 1 + }, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 8 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 4 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 1 + }, + null, + null + ] + }, + { + "id": 2, + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 76 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 42 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 40 + }, + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "middleClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] + }, + { + "id": 4, + "keyActions": [ + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] + } + ] + }, + { + "modules": [ + { + "id": 0, + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + { + "keyActionType": "mouse", + "mouseAction": "scrollDown" + }, + { + "keyActionType": "mouse", + "mouseAction": "scrollUp" + }, + { + "keyActionType": "mouse", + "mouseAction": "scrollRight" + }, + null, + null, + null, + null, + { + "keyActionType": "mouse", + "mouseAction": "scrollLeft" + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 81 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 82 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 79 + }, + null, + null, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 80 + }, + null, + null, + null, + null, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 32 + }, + null, + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + }, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 64 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 8 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 1 + } + ] + }, + { + "id": 1, + "keyActions": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 57 + }, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 27 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 24 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 19 + }, + null, + null, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 2 + }, + null, + null, + null, + null, + null, + null, + null, + { + "keyActionType": "switchLayer", + "layer": "mouse", + "switchLayerMode": "toggle" + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 8 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 4 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "modifierMask": 1 + }, + { + "keyActionType": "mouse", + "mouseAction": "accelerate" + }, + null + ] + }, + { + "id": 2, + "keyActions": [ + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 76 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 42 + }, + { + "keyActionType": "keystroke", + "type": "basic", + "scancode": 40 + }, + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "middleClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] + }, + { + "id": 4, + "keyActions": [ + { + "keyActionType": "mouse", + "mouseAction": "leftClick" + }, + { + "keyActionType": "mouse", + "mouseAction": "rightClick" + } + ] } ] } @@ -7027,6 +9490,110 @@ { "isLooped": false, "isPrivate": true, + "name": "TE:C Emote 1", + "macroActions": [ + { + "macroActionType": "key", + "action": "press", + "type": "basic", + "scancode": 41 + }, + { + "macroActionType": "key", + "action": "press", + "type": "basic", + "scancode": 80, + "modifierMask": 4 + }, + { + "macroActionType": "key", + "action": "release", + "type": "basic", + "scancode": 41 + } + ] + }, + { + "isLooped": false, + "isPrivate": true, + "name": "TE:C Emote 2", + "macroActions": [ + { + "macroActionType": "key", + "action": "press", + "type": "basic", + "scancode": 41 + }, + { + "macroActionType": "key", + "action": "press", + "type": "basic", + "scancode": 79, + "modifierMask": 4 + }, + { + "macroActionType": "key", + "action": "release", + "type": "basic", + "scancode": 41 + } + ] + }, + { + "isLooped": false, + "isPrivate": true, + "name": "TE:C Emote 3", + "macroActions": [ + { + "macroActionType": "key", + "action": "press", + "type": "basic", + "scancode": 41 + }, + { + "macroActionType": "key", + "action": "press", + "type": "basic", + "scancode": 82, + "modifierMask": 4 + }, + { + "macroActionType": "key", + "action": "release", + "type": "basic", + "scancode": 41 + } + ] + }, + { + "isLooped": false, + "isPrivate": true, + "name": "TE:C Emote 4", + "macroActions": [ + { + "macroActionType": "key", + "action": "press", + "type": "basic", + "scancode": 41 + }, + { + "macroActionType": "key", + "action": "press", + "type": "basic", + "scancode": 81, + "modifierMask": 4 + }, + { + "macroActionType": "key", + "action": "release", + "type": "basic", + "scancode": 41 + } + ] + }, + { + "isLooped": false, + "isPrivate": true, "name": "Type Silent Bob's address", "macroActions": [ { diff -r a5375d2875ae -r c49f8198d9f3 vim/custom-dictionary.utf-8.add --- a/vim/custom-dictionary.utf-8.add Mon Aug 16 15:38:38 2021 -0400 +++ b/vim/custom-dictionary.utf-8.add Mon Aug 16 15:39:10 2021 -0400 @@ -314,3 +314,4 @@ reimplementations UUIDs metaclass +async diff -r a5375d2875ae -r c49f8198d9f3 vim/ftdetect/hcl.vim --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vim/ftdetect/hcl.vim Mon Aug 16 15:39:10 2021 -0400 @@ -0,0 +1,7 @@ +" vint: -ProhibitAutocmdWithNoGroup +" By default, Vim associates .tf files with TinyFugue - tell it not to. +silent! autocmd! filetypedetect BufRead,BufNewFile *.tf +autocmd BufRead,BufNewFile *.hcl set filetype=hcl +autocmd BufRead,BufNewFile .terraformrc,terraform.rc set filetype=hcl +autocmd BufRead,BufNewFile *.tf,*.tfvars set filetype=terraform +autocmd BufRead,BufNewFile *.tfstate,*.tfstate.backup set filetype=json diff -r a5375d2875ae -r c49f8198d9f3 vim/plugin/redact_pass.vim --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vim/plugin/redact_pass.vim Mon Aug 16 15:39:10 2021 -0400 @@ -0,0 +1,58 @@ +" +" redact_pass.vim: Switch off the 'viminfo', 'backup', 'writebackup', +" 'swapfile', and 'undofile' globally when editing a password in pass(1). +" +" This is to prevent anyone being able to extract passwords from your Vim +" cache files in the event of a compromise. +" +" Author: Tom Ryder +" License: Same as Vim itself +" +if exists('g:loaded_redact_pass') || &compatible + finish +endif +if !has('autocmd') || v:version < 600 + finish +endif +let g:loaded_redact_pass = 1 + +" Check whether we should set redacting options or not +function! s:CheckArgsRedact() + + " Ensure there's one argument and it's the matched file + if argc() != 1 || fnamemodify(argv(0), ':p') !=# expand(':p') + return + endif + + " Disable all the leaky options globally + set nobackup + set nowritebackup + set noswapfile + set viminfo= + if has('persistent_undo') + set noundofile + endif + + " Tell the user what we're doing so they know this worked, via a message and + " a global variable they can check + redraw + echomsg 'Editing password file--disabled leaky options!' + let g:redact_pass_redacted = 1 + +endfunction + +" Auto function loads only when Vim starts up +augroup redact_pass + autocmd! + autocmd VimEnter + \ /dev/shm/pass.?*/?*.txt + \,$TMPDIR/pass.?*/?*.txt + \,/tmp/pass.?*/?*.txt + \ call s:CheckArgsRedact() + " Work around macOS' dynamic symlink structure for temporary directories + if has('mac') + autocmd VimEnter + \ /private/var/?*/pass.?*/?*.txt + \ call s:CheckArgsRedact() + endif +augroup END diff -r a5375d2875ae -r c49f8198d9f3 vim/syntax/hcl.vim --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vim/syntax/hcl.vim Mon Aug 16 15:39:10 2021 -0400 @@ -0,0 +1,72 @@ +" Forked from Larry Gilbert's syntax file +" github.com/L2G/vim-syntax-terraform +if exists('b:current_syntax') + finish +endif + +let s:cpo_save = &cpoptions +set cpoptions&vim + +" Identifiers are made up of alphanumeric characters, underscores, and +" hyphens. +if has('patch-7.4.1142') + syn iskeyword a-z,A-Z,48-57,_,- +endif + +syn case match + +" A block is introduced by a type, some number of labels - which are either +" strings or identifiers - and an opening curly brace. Match the type. +syn match hclBlockType /^\s*\zs\K\k*\ze\s\+\(\("\K\k*"\|\K\k*\)\s\+\)*{/ + +" An attribute name is an identifier followed by an equals sign. +syn match hclAttributeAssignment /\(\K\k*\.\)*\K\k*\s\+=\s/ contains=hclAttributeName +syn match hclAttributeName /\<\K\k*\>/ contained + +syn keyword hclValueBool true false + +syn keyword hclTodo contained TODO FIXME XXX BUG +syn region hclComment start="/\*" end="\*/" contains=hclTodo,@Spell +syn region hclComment start="#" end="$" contains=hclTodo,@Spell +syn region hclComment start="//" end="$" contains=hclTodo,@Spell + +""" misc. +syn match hclValueDec "\<[0-9]\+\([kKmMgG]b\?\)\?\>" +syn match hclValueHexaDec "\<0x[0-9a-f]\+\([kKmMgG]b\?\)\?\>" +syn match hclBraces "[\[\]]" + +""" skip \" and \\ in strings. +syn region hclValueString start=/"/ skip=/\\\\\|\\"/ end=/"/ contains=hclStringInterp +syn region hclStringInterp matchgroup=hclBraces start=/\(^\|[^$]\)\$\zs{/ end=/}/ contained contains=ALLBUT,hclAttributeName +syn region hclHereDocText start=/<<-\?\z([a-z0-9A-Z]\+\)/ end=/^\s*\z1/ contains=hclStringInterp + +"" Functions. +syn match hclFunction "[a-z0-9]\+(\@=" + +""" HCL2 +syn keyword hclRepeat for in +syn keyword hclConditional if +syn keyword hclValueNull null + +" enable block folding +syn region hclBlockBody matchgroup=hclBraces start="{" end="}" fold transparent + +hi def link hclComment Comment +hi def link hclTodo Todo +hi def link hclBraces Delimiter +hi def link hclAttributeName Identifier +hi def link hclBlockType Type +hi def link hclValueBool Boolean +hi def link hclValueDec Number +hi def link hclValueHexaDec Number +hi def link hclValueString String +hi def link hclHereDocText String +hi def link hclFunction Function +hi def link hclRepeat Repeat +hi def link hclConditional Conditional +hi def link hclValueNull Constant + +let b:current_syntax = 'hcl' + +let &cpoptions = s:cpo_save +unlet s:cpo_save diff -r a5375d2875ae -r c49f8198d9f3 vim/syntax/terraform.vim --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vim/syntax/terraform.vim Mon Aug 16 15:39:10 2021 -0400 @@ -0,0 +1,11 @@ +if exists('b:current_syntax') + finish +endif +runtime! syntax/hcl.vim +unlet b:current_syntax + +syn keyword terraType string bool number object tuple list map set any + +hi def link terraType Type + +let b:current_syntax = 'terraform' diff -r a5375d2875ae -r c49f8198d9f3 vim/vimrc --- a/vim/vimrc Mon Aug 16 15:38:38 2021 -0400 +++ b/vim/vimrc Mon Aug 16 15:39:10 2021 -0400 @@ -694,7 +694,7 @@ call JumpTo("normal! \") endfunction function! JumpToTagInSplit() - call JumpToInSplit("normal! \") + call JumpToInSplit("normal \") endfunction nnoremap :silent! call JumpToTag() @@ -1350,17 +1350,12 @@ augroup END " }}} -" GDL {{{ - -augroup ft_gdl +" Git {{{ + +augroup ft_git au! - au FileType gdl nnoremap = mzvap=`z - - au FileType gdl RainbowParenthesesActivate - au syntax gdl RainbowParenthesesLoadRound - - au FileType gdl call EnableParedit() + au FileType gitcommit nnoremap j /On branch sjlf/l"zyt/gg0P augroup END " }}} @@ -1497,6 +1492,7 @@ au FileType go nnoremap t :GoInfo au FileType go nnoremap h :GoDocBrowser au FileType go nnoremap c :GoBuild + au FileType go nnoremap xc :GoCallers au FileType go inoremap @@ -2038,6 +2034,15 @@ augroup END " }}} +" Terraform {{{ + +augroup ft_terraform + au! + + au FileType terraform setlocal foldmethod=syntax +augroup END + +" }}} " Vagrant {{{ augroup ft_vagrant @@ -2830,6 +2835,16 @@ " Mini-plugins ------------------------------------------------------------ {{{ " Stuff that should probably be broken out into plugins, but hasn't proved to be " worth the time to do so just yet. +" +" HTTP Statuses {{{ + +function! HTTPStatuses() + call termopen('w3m /home/sjl/Dropbox/docs/httpstatuses/httpstatuses.com/index.html') +endfunc + +command! HTTPStatuses call HTTPStatuses() + +" }}} " Synstack {{{