Daniel Eklöf
2096753b52
dcs: we have no parent terminal to pass through to
2019-07-21 18:22:26 +02:00
Daniel Eklöf
64135ae365
csi: implement CSI 22t and CSI 23t
...
22;0|1|2t pushes the current window title/icon to the stack, while 23
pops it.
The second parameter, 0|1|2 has the following meaning:
0 - push/pop icon+title
1 - push/pop icon
2 - push/pop title
2019-07-21 17:48:06 +02:00
Daniel Eklöf
97350f6488
term: track current window title in terminal struct
2019-07-21 17:35:53 +02:00
Daniel Eklöf
4109d97263
conf: config now provides the colors (though still only hardcoded colors)
2019-07-21 11:06:28 +02:00
Daniel Eklöf
29d855d7c6
term: prepare for configurable colors; add color variables to terminal
2019-07-21 10:58:09 +02:00
Daniel Eklöf
b953326768
dcs: sort of implement DCS passthrough
...
We now store the passthrough characters in a buffer, and call
dcs_passthrough() on unhook.
However, dcs_passthrough() doesn't do anything.
2019-07-19 09:55:07 +02:00
Daniel Eklöf
153628a217
osc: allocate data buffer dynamically
2019-07-19 08:59:35 +02:00
Daniel Eklöf
7d7af62d84
main: allow TERM to be set on the command line
2019-07-18 14:34:45 +02:00
Daniel Eklöf
7e36027237
conf: TERM can now be set in footrc
2019-07-18 14:29:40 +02:00
Daniel Eklöf
67583540b4
main: use our own terminfo 'foot' by default
2019-07-18 14:14:05 +02:00
Daniel Eklöf
6e69cf9562
glyph-cache: generate at startup, never update while rendering
2019-07-18 13:03:21 +02:00
Daniel Eklöf
6e55be1557
render: cache generated glyphs for regular ASCII characters
...
To avoid having to re-generate glyphs, cache the glyphs.
For now, we only cache ASCII characters, as this allows us to lookup
the cache by simply indexing with the character (into a 256-entry
array).
2019-07-18 10:33:58 +02:00
Daniel Eklöf
de575ac58e
conf: improve configuration file parsing
...
* Strip whitespaces from keys and values
* Detect (and ignore) comments
* Detect syntax errors (no value specified etc)
* Error out on syntax errors and invalid keys
2019-07-17 10:12:14 +02:00
Daniel Eklöf
c11cc2be57
main: allow user to override shell on the command line
2019-07-17 09:55:36 +02:00
Daniel Eklöf
aa87be43ba
slave: report exec() failure back to main process
2019-07-17 09:39:12 +02:00
Daniel Eklöf
519f721577
main: jump to cleanup on failure to load cursor pointer theme
2019-07-17 09:38:54 +02:00
Daniel Eklöf
153894eb73
slave: exec shell from conf
2019-07-17 09:30:39 +02:00
Daniel Eklöf
9ded4b3de2
main: fallback for strikeout positioning seems to work
2019-07-16 16:07:55 +02:00
Daniel Eklöf
06f9495ae2
render: implement strikeout
2019-07-16 15:08:02 +02:00
Daniel Eklöf
d93ca2f654
render: implement 'underline'
2019-07-16 14:20:39 +02:00
Daniel Eklöf
ccc8ef9606
terminal: foreground/background in cell attributes are now uint32_t
...
This reduces the cell size, and thus improves the cache behavour
2019-07-16 13:17:51 +02:00
Daniel Eklöf
0d1b4449b9
conf: initial support for configuration file
...
* Look for configuration file in (in this order):
- XDG_CONFIG_HOME/footrc
- ~/.config/footrc
* Currently supports setting the font
2019-07-16 11:52:22 +02:00
Daniel Eklöf
22115e1cf4
main: default font is 'monospace'
2019-07-16 11:03:48 +02:00
Daniel Eklöf
5597856762
main: set TERM=xterm-direct
2019-07-15 12:36:00 +02:00
Daniel Eklöf
6077b57ca5
rename project to 'foot'
2019-07-11 20:10:59 +02:00
Daniel Eklöf
703aeecb95
selection: add support for pasting *from* primary
2019-07-11 17:38:03 +02:00
Daniel Eklöf
b50ec1a850
selection: initial copy-to-clipboard functionality
2019-07-11 17:38:02 +02:00
Daniel Eklöf
632790d5d8
selection: selections can be made, and are rendered
...
* Start selection on mouse button down
* Update selection on motion
* Button release cancels selection if there were no motion after start
* Renderer detects cells inside the selection and inverts their colors
2019-07-11 17:38:01 +02:00
Daniel Eklöf
1ff1b3a71e
grid: don't pre-allocate the entire grid (with all scrollback lines)
...
The row array may now contain NULL pointers. This means the
corresponding row hasn't yet been allocated and initialized.
On a resize, we explicitly allocate the visible rows.
Uninitialized rows are then allocated the first time they are
referenced.
2019-07-10 16:27:55 +02:00
Daniel Eklöf
94fdde3da7
main: hopefully fix logical error in delayed rendering
...
We want the timeout_ms to *not* be -1 (i.e. someone has requested
delayed rendering), while we're *not* getting client output.
2019-07-10 09:56:15 +02:00
Daniel Eklöf
9b5c044b29
terminal: rename and redefine cursor keys mode and keypad keys mode
2019-07-09 11:07:06 +02:00
Daniel Eklöf
b4fdf51752
input: add support for dead keys (composing)
2019-07-09 10:00:54 +02:00
Daniel Eklöf
0d24fcafd0
render: store frame callback pointer in terminal struct
...
This allows us to free it when exiting
2019-07-09 09:23:32 +02:00
Daniel Eklöf
d7bb83022d
cleanup
2019-07-09 09:18:58 +02:00
Daniel Eklöf
729974492d
main: verify compositor has WL_SHM_FORMAT_ARGB8888
2019-07-08 16:12:02 +02:00
Daniel Eklöf
1e2a7e77f0
rgba: drop alpha channel support
2019-07-08 15:56:15 +02:00
Daniel Eklöf
4e25019ba6
wip: grid is now represented as a grid, not a linear array
...
The grid is now represented with an array of row *pointers*. Each row
contains an array of cells (the row's columns).
The main point of having row pointers is we can now move rows around
almost for free.
This is useful when scrolling with scroll margins for example, where
we previously had to copy the lines in the margins. Now it's just a
matter of swapping two pointers.
2019-07-08 13:57:31 +02:00
Daniel Eklöf
a102ff09f9
input: mouse events
2019-07-05 10:44:57 +02:00
Daniel Eklöf
1a341a56cc
render: load cursor theme from XCURSOR_THEME and XCURSOR_SIZE
2019-07-05 10:44:09 +02:00
Daniel Eklöf
1947d33868
render: break out rendering functions to render.{c,h}
2019-07-05 10:16:56 +02:00
Daniel Eklöf
3ba1721c0f
osc: implement change window title and icon
2019-07-05 09:50:35 +02:00
Daniel Eklöf
998ce52b7e
render: bump number of glyphs we can render in a single call
2019-07-05 09:31:03 +02:00
Daniel Eklöf
19cef74153
main: it's not the terminal emulators job to set LINES and COLUMNS
2019-07-05 09:21:12 +02:00
Daniel Eklöf
28d05a5528
main: initialize colors in VT state
2019-07-05 09:08:58 +02:00
Daniel Eklöf
8091f7c781
render: force a full redraw when we cannot reuse last buffer
2019-07-05 08:55:02 +02:00
Daniel Eklöf
4a35aa9724
resize: cursor reset was off-by-one when cursor was outside new size
2019-07-04 19:56:50 +02:00
Daniel Eklöf
1c737fa7bd
resize: re-align grid offset
2019-07-04 19:56:27 +02:00
Daniel Eklöf
dd5a3b1009
main: handle EINTR in poll()
2019-07-04 19:16:32 +02:00
Daniel Eklöf
ef944933e6
flash mitigation: add a small delay before rendering after receiving client data
...
Simply re-trying to read client data is not enough in many
cases. Re-work the flash mitigation to instead incur a small delay
before rendering.
2019-07-04 09:54:40 +02:00
Daniel Eklöf
03ca7a04ab
main: more zenburn:ish default foreground and background colors
2019-07-04 09:27:06 +02:00