yxskaft 0.2.0

Tiny X client library

This is an X client library with the KISS philosophy. The intent is to provide a simple framebuffer along with keyboard and mouse input. It's not a complete X client.

Tested with Loko >0.11.0. Porting to other R6RS Schemes is fairly simple, but not yet done

$ akku update
$ akku install yxskaft
$ .akku/env
Authors

Göran Weinholt

Homepage

Information missing.

License

LGPL-3.0-or-later

Dependencies

^1.3.0

Source code

https://gitlab.com/weinholt/yxskaft.git git
bc1e6cb2575fcfde98cef4c16143a13fe64a42e8
Tag: v0.2.0

Package contents

  • (yxskaft client) R6
    • → open-display xconn-default-screen xconn-setup setup-protocol-major-version setup-protocol-minor-version setup-release-number setup-resource-id-base setup-resource-id-mask setup-motion-buffer-size setup-vendor-len setup-maximum-request-length setup-roots-len setup-pixmap-formats-len setup-image-byte-order setup-bitmap-format-bit-order setup-bitmap-format-scanline-unit setup-bitmap-format-scanline-pad setup-min-keycode setup-max-keycode setup-pixmap-formats setup-roots screen-root screen-root-visual screen-root-depth screen-black-pixel xconn-generate-xid! xid-id check send-request poll-for-event wait-for-event flush get-atom-id create-window query-extension query-extension-reply list-extensions list-extensions-reply intern-atom get-atom-name map-window change-property clear-area copy-area query-pointer create-gc get-keyboard-mapping get-keyboard-mapping-reply get-pointer-mapping get-pointer-mapping-reply get-modifier-mapping get-modifier-mapping-reply XCB_IMAGE_ORDER_LSBFIRST XCB_IMAGE_ORDER_MSBFIRST XCB_WINDOW_CLASS_COPY_FROM_PARENT XCB_WINDOW_CLASS_INPUT_OUTPUT XCB_WINDOW_CLASS_INPUT_ONLY XCB_PROP_MODE_REPLACE XCB_PROP_MODE_PREPEND XCB_PROP_MODE_APPEND XCB_MOTION_NORMAL XCB_MOTION_HINT
    • ← (rnrs) R6
    • ← (struct pack)
    • ← (yxskaft events)
    • ← (yxskaft errors)
    • ← (yxskaft private concurrency)
    • ← (yxskaft private connect)
    • ← (yxskaft private xauth)
  • (yxskaft errors) R6
    • → parse-xerror
    • ← (rnrs) R6
    • ← (struct pack)
  • (yxskaft events) R6
    • → event? event-synthetic? event-code event-time input-event? input-event-detail input-event-root input-event-event input-event-child input-event-root-x input-event-root-y input-event-event-x input-event-event-y input-event-state input-event-same-screen? key-press? key-release? button-press? button-release? motion-notify? enter-notify? leave-notify? keymap-notify? keymap-notify-keys expose? expose-window expose-x expose-y expose-width expose-height expose-count no-exposure? no-exposure-drawable no-exposure-minor-opcode no-exposure-major-opcode mapping-notify? mapping-notify-request client-message? client-message-window client-message-type client-message-data XCB_EVENT_MASK_NO_EVENT XCB_EVENT_MASK_KEY_PRESS XCB_EVENT_MASK_KEY_RELEASE XCB_EVENT_MASK_BUTTON_PRESS XCB_EVENT_MASK_BUTTON_RELEASE XCB_EVENT_MASK_ENTER_WINDOW XCB_EVENT_MASK_LEAVE_WINDOW XCB_EVENT_MASK_POINTER_MOTION XCB_EVENT_MASK_POINTER_MOTION_HINT XCB_EVENT_MASK_BUTTON_1MOTION XCB_EVENT_MASK_BUTTON_2MOTION XCB_EVENT_MASK_BUTTON_3MOTION XCB_EVENT_MASK_BUTTON_4MOTION XCB_EVENT_MASK_BUTTON_5MOTION XCB_EVENT_MASK_BUTTON_MOTION XCB_EVENT_MASK_KEYMAP_STATE XCB_EVENT_MASK_EXPOSURE XCB_EVENT_MASK_VISIBILITY_CHANGE XCB_EVENT_MASK_STRUCTURE_NOTIFY XCB_EVENT_MASK_RESIZE_REDIRECT XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT XCB_EVENT_MASK_FOCUS_CHANGE XCB_EVENT_MASK_PROPERTY_CHANGE XCB_EVENT_MASK_COLOR_MAP_CHANGE XCB_EVENT_MASK_OWNER_GRAB_BUTTON parse-xevent
    • ← (rnrs) R6
    • ← (struct pack)
  • (yxskaft private concurrency) R6 Loko Scheme Internal
    • → make-extension-table extension-table-set! extension-table-ref make-atom-table atom-table-set! atom-table-ref cookie? cookie-seqno cookie-value cookie-wait make-comm comm? comm-poll-for-event comm-wait-for-event comm-send-request comm-flush
    • ← (rnrs) R6
    • ← (yxskaft events)
    • ← (yxskaft private wire)
    • ← (loko match) Built-in
    • ← (loko queues) Built-in
    • ← (loko system fibers) Built-in
  • (yxskaft private concurrency) R6 Internal
    • → make-extension-table extension-table-set! extension-table-ref make-atom-table atom-table-set! atom-table-ref cookie? cookie-seqno cookie-value cookie-wait make-comm comm? comm-poll-for-event comm-wait-for-event comm-send-request comm-flush
    • ← (rnrs) R6
    • ← (rnrs mutable-pairs) R6
    • ← (yxskaft events)
    • ← (yxskaft private wire)
  • (yxskaft private connect) R6 Internal
  • (yxskaft private local) R6 GNU Guile Internal
    • → local-connect
    • ← (rnrs) R6
    • ← (guile) Built-in
  • (yxskaft private local) R6 Loko Scheme Internal
    • → local-connect
    • ← (rnrs) R6
    • ← (loko) Built-in
    • ← (loko system fibers) Built-in
    • ← (loko system unsafe) Built-in
    • ← (loko arch amd64 linux-syscalls) Built-in
    • ← (loko arch amd64 linux-numbers) Built-in
  • (yxskaft private shm) R6 Loko Scheme Internal
    • → shmat shmctl shmdt shmget IPC_PRIVATE IPC_CREAT IPC_RMID NULL put-pixel32
    • ← (rnrs) R6
    • ← (loko system unsafe) Built-in
    • ← (loko arch amd64 linux-numbers) Built-in
    • ← (loko arch amd64 linux-syscalls) Built-in
  • (yxskaft private shm) R6 Internal
    • → shmat shmctl shmdt shmget NULL IPC_PRIVATE IPC_CREAT IPC_RMID put-pixel32
    • ← (rnrs) R6
    • ← (pffi)
  • (yxskaft private sleep) R6 GNU Guile Internal
  • (yxskaft private sleep) R6 Loko Scheme Internal
    • → sleep
    • ← (loko system fibers) Built-in
  • (yxskaft private wire) R6 Internal
    • → send-request-raw read-message-raw
    • ← (rnrs) R6
    • ← (struct pack)
    • ← (yxskaft events)
    • ← (yxskaft errors)
  • (yxskaft private xauth) R6 Internal
    • → xauth-read-file xauth-find-file make-xauth xauth? xauth-family xauth-address xauth-number xauth-name xauth-data
    • ← (rnrs) R6
    • ← (struct pack)
    • (srfi :98 os-environment-variables) SRFI
  • (yxskaft shm) R6
    • → shm:attach shm:create-pixmap shm:put-image shmat shmctl shmdt shmget IPC_PRIVATE IPC_CREAT IPC_RMID
    • ← (rnrs) R6
    • ← (struct pack)
    • ← (yxskaft client)
    • ← (yxskaft private shm)
  • (yxskaft simple) R6
    • → create-simple-window simple-window-ptr simple-window-xconn simple-window-depth simple-window-bytes-per-line render-simple-window destroy-simple-window simple-window-hide-cursor simple-window-show-cursor keybutton keybutton-set simple-window-poll-for-event keyboard-event? keyboard-event-event keyboard-event-bare-keysym keyboard-event-modified-keysym keyboard-event-modifiers keyboard-event-char keyboard-event-press? mouse-event? mouse-event-modifiers mouse-event-button mouse-event-x mouse-event-y mouse-event-press? mouse-event-release? mouse-event-motion? delete-window-event? sleep put-pixel32 XKB_KEY_BackSpace XKB_KEY_Tab XKB_KEY_Linefeed XKB_KEY_Clear XKB_KEY_Return XKB_KEY_Pause XKB_KEY_Scroll_Lock XKB_KEY_Sys_Req XKB_KEY_Escape XKB_KEY_Delete XKB_KEY_Home XKB_KEY_Left XKB_KEY_Up XKB_KEY_Right XKB_KEY_Down XKB_KEY_Prior XKB_KEY_Page_Up XKB_KEY_Next XKB_KEY_Page_Down XKB_KEY_End XKB_KEY_Begin XKB_KEY_KP_Space XKB_KEY_KP_Tab XKB_KEY_KP_Enter XKB_KEY_KP_F1 XKB_KEY_KP_F2 XKB_KEY_KP_F3 XKB_KEY_KP_F4 XKB_KEY_KP_Home XKB_KEY_KP_Left XKB_KEY_KP_Up XKB_KEY_KP_Right XKB_KEY_KP_Down XKB_KEY_KP_Prior XKB_KEY_KP_Page_Up XKB_KEY_KP_Next XKB_KEY_KP_Page_Down XKB_KEY_KP_End XKB_KEY_KP_Begin XKB_KEY_KP_Insert XKB_KEY_KP_Delete XKB_KEY_KP_Equal XKB_KEY_KP_Multiply XKB_KEY_KP_Add XKB_KEY_KP_Separator XKB_KEY_KP_Subtract XKB_KEY_KP_Decimal XKB_KEY_KP_Divide XKB_KEY_KP_0 XKB_KEY_KP_1 XKB_KEY_KP_2 XKB_KEY_KP_3 XKB_KEY_KP_4 XKB_KEY_KP_5 XKB_KEY_KP_6 XKB_KEY_KP_7 XKB_KEY_KP_8 XKB_KEY_KP_9 XKB_KEY_F1 XKB_KEY_F2 XKB_KEY_F3 XKB_KEY_F4 XKB_KEY_F5 XKB_KEY_F6 XKB_KEY_F7 XKB_KEY_F8 XKB_KEY_F9 XKB_KEY_F10 XKB_KEY_F11 XKB_KEY_Shift_L XKB_KEY_Shift_R XKB_KEY_Control_L XKB_KEY_Control_R XKB_KEY_Caps_Lock XKB_KEY_Shift_Lock XKB_KEY_Meta_L XKB_KEY_Meta_R XKB_KEY_Alt_L XKB_KEY_Alt_R XKB_KEY_Super_L XKB_KEY_Super_R XKB_KEY_Hyper_L XKB_KEY_Hyper_R
    • ← (rnrs) R6
    • ← (yxskaft client)
    • ← (yxskaft events)
    • ← (yxskaft shm)
    • ← (yxskaft xfixes)
    • ← (yxskaft private shm)
    • ← (yxskaft private sleep)
  • (yxskaft xfixes) R6
    • → xfixes:query-version xfixes:show-cursor xfixes:hide-cursor xfixes:minial-version-for-show/hide
    • ← (rnrs) R6
    • ← (struct pack)
    • ← (yxskaft client)

Version history

  • 2022-06-26 ~ 0.2.0
  • 2021-02-06 ~ 0.1.0