Skip to content

Instantly share code, notes, and snippets.

View dleslie's full-sized avatar

Dan Leslie dleslie

View GitHub Profile
@dleslie
dleslie / .xbindkeysrc
Created October 15, 2013 19:28
Adds PgUp and PgDn to a keyboard that doesn't have those buttons.
#PgUp
"xvkbd -xsendev -text "\[Prior]""
m:0x8 + c:111
Alt + Up
#PgDown
"xvkbd -xsendev -text "\[Next]""
m:0x8 + c:116
Alt + Down
(test-group "records"
;; Define a record type with setters for each field
(define-record test (setter bit) (setter byte) (setter nibble) (setter bytes))
;; Define a 'bits' conversion function
(define test-bits
(make-bits
(bit test-bit) ; 1 bit
(byte test-byte) ; 8 bits
(nibble test-nibble) ; 4 bits
(bytes 2 test-bytes))) ; 16 bits
(set! video-conf:clear-color (al:make-color-rgb 0 40 70))
(define credits-scene
(scene
(let* ((screen-padding 50) (credit-text "A game by Dan Leslie")
(label-width 200) (label-height 20)
(label-left (+ screen-padding (random (- video-conf:width label-width (* 2 screen-padding)))))
(label-top (+ screen-padding (random (- video-conf:height label-height (* 2 screen-padding)))))
(rect (make-rectangle label-left label-top label-width label-height))
(label (make-label rect credit-text padding-left: 5 padding-right: 5
(define-syntax lazy-wrap
(syntax-rules ()
((_ val)
(lazy-seq (cons val (lazy-seq '()))))))
(assoc 'window-id (frame-parameters (selected-frame)))
@dleslie
dleslie / gist:3230152
Created August 1, 2012 19:56
ex_opengl_pixelshader
(use allegro lolevel)
(require-library allegro)
(import (prefix allegro al:))
(use allegro-glext allegro-c-util)
(define (abort x)
(display x)
(newline)
@dleslie
dleslie / gist:2475945
Created April 24, 2012 03:12
Maybe example
(do <maybe>
(if #t
'Nothing
'(Just First))
'(Just Second))
; Returns: Nothing
((do <state>
(x <- (/m! gets (lambda (s) (+ s 1))))
(return x))
@dleslie
dleslie / custom-scheme.el
Created April 3, 2012 00:43
Dan's Custom Scheme for Emacs
(require 'paredit)
(require 'auto-complete)
(require 'auto-complete-etags)
(require 'yasnippet-bundle)
(require 'scheme)
;; Some utilities of mine
(defun add-font-lock-keywords (modes new-keywords)
(mapc (lambda (mode)
(font-lock-add-keywords mode `((, (concat "(\\(" (regexp-opt (mapcar 'symbol-name (remove-if 'numberp new-keywords)) t) "\\)\\>")
@dleslie
dleslie / load-scheme-tags.el
Created February 25, 2012 23:41
Load Scheme Keywords from TAGS File
(defun load-scheme-tags (scheme-tags-location)
(interactive)
(let ((existing-tags tags-table-list))
(setq tags-table-list nil)
(visit-tags-table scheme-tags-location)
(tags-completion-table)
(add-font-lock-keywords '(scheme-mode inferior-scheme-mode) tags-completion-table)
(setq tags-table-list existing-tags))
t)
@dleslie
dleslie / font-lock-keywords.el
Created February 25, 2012 22:29
Easy add/remove keywords from font lock
(defun add-font-lock-keywords (modes new-keywords)
(mapc (lambda (mode)
(font-lock-add-keywords mode `((, (concat "(\\(" (regexp-opt (mapcar 'symbol-name (remove-if 'numberp new-keywords)) t) "\\)\\>")
(1 font-lock-keyword-face)))))
modes)
t)
(defun remove-font-lock-keywords (modes new-keywords)
(mapc (lambda (mode)
(font-lock-remove-keywords mode `((, (concat "(\\(" (regexp-opt (mapcar 'symbol-name (remove-if 'numberp new-keywords)) t) "\\)\\>")