about summary refs log tree commit diff stats
path: root/dwm.h
blob: a6a04cabdb17630a204fae803a02956e92b89947 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.highlight .hll { background-color: #ffffcc }
.highlight .c { color: #888888 } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .k { color: #008800; font-weight: bold } /* Keyword */
.highlight .ch { color: #888888 } /* Comment.Hashbang */
.highlight .cm { color: #888888 } /* Comment.Multiline */
.highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */
.highlight .cpf { color: #888888 } /* Comment.PreprocFile */
.highlight .c1 { color: #888888 } /* Comment.Single */
.highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */
.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */
.highlight .gr { color: #aa0000 } /* Generic.Error */
.highlight .gh { color: #333333 } /* Generic.Heading */
.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #555555 } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #666666 } /* Generic.Subheading */
.highlight .gt { color: #aa0000 } /* Generic.Traceback */
.highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #008800 } /* Keyword.Pseudo */
.highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */
.highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */
.highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */
.highlight .na { color: #336699 } /* Name.Attribute */
.highlight .nb { color: #003388 } /* Name.Builtin */
.highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */
.highlight .no { color: #003366; font-weight: bold } /* Name.Constant */
.highlight .nd { color: #555555 } /* Name.Decorator */
.highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */
.highlight .nl { color: #336699; font-style: italic } /* Name.Label */
.highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */
.highlight .py { color: #336699; font-weight: bold } /* Name.Property */
.highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #336699 } /* Name.Variable */
.highlight .ow { color: #008800 } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */
.highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */
.highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */
.highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */
.highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */
.highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */
.highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */
.highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */
.highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */
.highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */
.highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */
.highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */
.highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */
.highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */
.highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */
.highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */
.highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */
.highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */
.highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */
.highlight .vc { color: #336699 } /* Name.Variable.Class */
.highlight .vg { color: #dd7700 } /* Name.Variable.Global */
.highlight .vi { color: #3333bb } /* Name.Variable.Instance */
.highlight .vm { color: #336699 } /* Name.Variable.Magic */
.highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
# Map

- `algo`, I thought I was gonna do all of the <https://projecteuler.net>
  problems. I am not
- `b`, is a teeny tiny utility function that I like to use for functional programming
- `bird-words`, an exploration of Markov chain generation, sort of migrated to
  <https://git.sr.ht/~eli_oat/beak>
- `blototboot`, irc bot and broken lisp interpreter
- `bookmarklets`, misc. bookmarklets for stuff and things
- `canvas`, an exploration of the HTML canvas, lets you move a little sprite
  around a canvas
- `dither`, Floyd-Steinberg dithering
- `game-frame`, my attempt at creating a generic starting point for HTML/JS game
  dev
- `games`, some games from other people
- `gg`, testing out how to support game controllers from the browser
- `hill`, a demake of Alto's Adventure, also migrated,
  <https://git.sr.ht/~eli_oat/hill>
- `inknswitch`, an interface for drawing and taking typed notes
- `irc`, a better irc bot
- `lut-cam`, a web-based camera application that supports LUT profiles
- `magic-bird`, is a game about a magical bird that needs to get back home to
  lay an egg
- `map-maker`, a little tool for making, and exporting maps for other games
- `mountain`, a companion game to hill, platformer about getting to the top
- `name-gen`, a funny random name generator and HTML canvas shape drawer
- `notes`, really bad note taking surface
- `peep`, a pulsing shape toy...not done, not nearly a complete thought
- `pico-cam`, sort of like the Gameboy Camera but for the web
- `pixel-art`, a pixel-art drawing tool
- `pomo`, a sort of threatening pomodoro timer
- `princess`, an idle game about a princess who maybe wants to over throw a
  kingdom
- `puzzle dungeon`, a dungeon-crawling rogue-like game in desperate need of a new name
- `quest log`, something very much unlike a todo list
- `rotjs`, one day I gotta learn how to use
  [rotjs](https://ondras.github.io/rot.js/hp/)
- `sand`, a sand simulation
- `scripting-lang`, maybe I should make my own scripting language?
- `ship-game`, what Avi has dubbed "LAZER-GATE-1"
- `starting-place`, another/different attempt at making a generic starting point
  for HTML and JS games
- `story-interpreter`, poking at making a text adventure
- `text`, poking at making a text adventure...maybe with a different finger?
- `toadmode`, a visual coding toy about dropping shapes near each other on a
  canvas
- `toy-llm`, exactly what it says on the box, the most basic of toy LLM
  implementations
- `where`, is a simple `where` function implemented in JavaScript. Useful for easy cases in the browser
k">typedef union Arg Arg; typedef struct Client Client; typedef enum Corner Corner; typedef struct DC DC; typedef struct Fnt Fnt; union Arg { const char **argv; int i; }; /* atoms */ enum { NetSupported, NetWMName, NetLast }; enum { WMProtocols, WMDelete, WMLast }; /* cursor */ enum { CurNormal, CurResize, CurMove, CurLast }; enum Corner { TopLeft, TopRight, BotLeft, BotRight }; struct Fnt { int ascent; int descent; int height; XFontSet set; XFontStruct *xfont; }; struct DC { /* draw context */ int x, y, w, h; unsigned long bg; unsigned long fg; unsigned long border; Drawable drawable; Fnt font; GC gc; }; struct Client { char name[256]; char *tags[TLast]; int proto; int x, y, w, h; int tx, ty, tw, th; /* title */ int basew, baseh, incw, inch, maxw, maxh, minw, minh; int grav; unsigned int border; long flags; Bool isfloat; Bool ismax; Client *next; Client *prev; Window win; Window title; }; extern char *tags[TLast], stext[1024]; extern int tsel, screen, sx, sy, sw, sh, bx, by, bw, bh, mw; extern void (*handler[LASTEvent])(XEvent *); extern void (*arrange)(Arg *); extern Atom wmatom[WMLast], netatom[NetLast]; extern Bool running, issel; extern Client *clients, *sel; extern Cursor cursor[CurLast]; extern DC dc; extern Display *dpy; extern Window root, barwin; /* client.c */ extern void ban(Client *c); extern void focus(Client *c); extern void focusnext(Arg *arg); extern void focusprev(Arg *arg); extern Client *getclient(Window w); extern Client *getctitle(Window w); extern void gravitate(Client *c, Bool invert); extern void higher(Client *c); extern void killclient(Arg *arg); extern void lower(Client *c); extern void manage(Window w, XWindowAttributes *wa); extern void resize(Client *c, Bool sizehints, Corner sticky); extern void setsize(Client *c); extern void settitle(Client *c); extern void togglemax(Arg *arg); extern void unmanage(Client *c); extern void zoom(Arg *arg); /* draw.c */ extern void drawall(); extern void drawstatus(); extern void drawtitle(Client *c); extern unsigned long getcolor(const char *colstr); extern void setfont(const char *fontstr); extern unsigned int textw(char *text); /* event.c */ extern void grabkeys(); /* main.c */ extern int getproto(Window w); extern void quit(Arg *arg); extern void sendevent(Window w, Atom a, long value); extern int xerror(Display *dsply, XErrorEvent *ee); /* tag.c */ extern void appendtag(Arg *arg); extern void dofloat(Arg *arg); extern void dotile(Arg *arg); extern Client *getnext(Client *c, unsigned int t); extern Client *getprev(Client *c); extern void replacetag(Arg *arg); extern void settags(Client *c); extern void togglemode(Arg *arg); extern void view(Arg *arg); /* util.c */ extern void *emallocz(unsigned int size); extern void eprint(const char *errstr, ...); extern void spawn(Arg *arg);