Daniel Eklöf
4c924ab14a
main: verify locale is UTF-8
2019-12-19 07:25:05 +01:00
Daniel Eklöf
caa76bcdea
config: enable user to specify path to configuration file
2019-12-17 19:08:43 +01:00
Daniel Eklöf
d15631e3de
main: remove unused macros
2019-12-17 19:08:04 +01:00
Daniel Eklöf
a0fcec3a3d
log: caller can control syslog level
2019-12-17 19:07:28 +01:00
Daniel Eklöf
44f24b01bc
main: allow server socket path to be set on the command line
...
This adds an optional argument to -s,--server that allows the user to
override the default socket path (XDG_RUNTIME_DIR/foot.sock).
2019-12-14 12:59:54 +01:00
Daniel Eklöf
bafe7cab28
main: stop initializing a default set of fonts
2019-12-04 22:01:39 +01:00
Daniel Eklöf
e9fbb371df
fcft: font_from_name() no longer accepts a tllist
2019-12-01 19:22:25 +01:00
Daniel Eklöf
30335ef32a
fcft: include <fcft/fcft.h>, and use fcft/stride.h instead of local copy
2019-12-01 14:03:24 +01:00
Daniel Eklöf
fd9c28464d
fcft: use fcft instead of local copy of font.c/font.h
2019-12-01 13:43:51 +01:00
Daniel Eklöf
ae91c53fb2
font: pass dpi=96 to fontconfig
...
TODO: use actual output PPI. Question is *which* output...
2019-11-26 19:02:35 +01:00
Daniel Eklöf
55a23a5b29
log: set syslog facility to LOG_DAEMON when run in server mode
2019-11-20 19:43:31 +01:00
Daniel Eklöf
4f4ee5b39d
main: mention why we initialize a font set
...
Since fonts are destroyed and removed from the font cache when the
last instance is destroyed, closing the "last" terminal window in
server mode would destroy the fonts, and their glyph caches.
By instantiating the set in main, we ensure the fonts, and the glyph
caches, remain. This makes launching new terminals (much) faster.
Note that in "normal" (non-server) mode, this isn't really necessary,
but also doesn't have any penalty.
2019-11-20 19:27:16 +01:00
Daniel Eklöf
3c8a87168a
fonts: use 'weight' and 'slant', not 'style' when loading fonts
2019-11-19 17:35:02 +01:00
Daniel Eklöf
15b12f45c6
scan-build: fix a couple of minor warnings from a scan-build run
2019-11-05 10:39:36 +01:00
Daniel Eklöf
1c7fb2869d
main: destroy cached SHM buffers *after* terminals have been destroyed
2019-11-05 09:30:24 +01:00
Daniel Eklöf
567989e9f3
main: usage for --server now hints about 'footclient'
2019-11-03 13:46:09 +01:00
Daniel Eklöf
61dfa1365e
slave: restore signals before calling exec()
2019-11-03 13:24:15 +01:00
Daniel Eklöf
d26c67e589
main: ignore SIGHUP in master process
2019-11-03 13:23:49 +01:00
Daniel Eklöf
32129083bd
main: pre-allocate fonts
...
Since fonts are cached, this adds no additional memory. However, it
makes the first terminal window in --server mode start much faster,
since the (primary) fonts have already been loaded.
Fallback fonts are still loaded on-demand.
2019-11-02 13:50:40 +01:00
Daniel Eklöf
0bd2ddd8ad
term_init(): initialize slave TERM from term_init() argument
2019-11-01 21:03:08 +01:00
Daniel Eklöf
69d62d3cd2
slave: set TERM environment variable in slave process
2019-11-01 21:01:15 +01:00
Daniel Eklöf
a1efd65746
server: implement a --server mode
...
In this mode, foot listens on a UNIX socket and creates terminal
windows when clients connect.
A connecting client sends argc/argv to the server, and the server
instantiates a new terminal window.
When the terminal window is closed, the exit code is sent back to the
client.
2019-11-01 20:39:09 +01:00
Daniel Eklöf
32c6ed7069
main: register signal handlers for SIGINT and SIGTERM
2019-11-01 20:36:55 +01:00
Daniel Eklöf
1e41a25f00
terminal: call user-defined callback when destroying terminal
...
main uses this to get the exit code of the terminal.
2019-11-01 20:34:32 +01:00
Daniel Eklöf
291a928a49
render: call wl_display_flush() after rendering
...
This allows us to remove that call from the main event loop.
2019-11-01 20:01:36 +01:00
Daniel Eklöf
b7546abca9
main: get exit value from wayland struct
2019-10-30 20:26:08 +01:00
Daniel Eklöf
445bbe3469
wayland: track multiple terminals
...
The wayland 'term' member is gone and replaced by a list,
'terms'. This list contains all currently running terminal (windows).
2019-10-30 20:02:06 +01:00
Daniel Eklöf
a853896715
main: free 'config' on command line parse error
2019-10-30 18:06:47 +01:00
Daniel Eklöf
fe974956b0
term: integrate directly with FDM
2019-10-28 18:35:16 +01:00
Daniel Eklöf
0979a0e2e5
terminal: implement term_init() and term_destroy()
2019-10-28 18:25:19 +01:00
Daniel Eklöf
664641104c
main: remove a couple of includes
2019-10-27 19:28:23 +01:00
Daniel Eklöf
3684547fd7
main: kbd repeat FD is handled by the wayland backend
2019-10-27 19:23:22 +01:00
Daniel Eklöf
4a63defeb1
wayland: backend now configures FD as non-blocking, not main
2019-10-27 19:21:36 +01:00
Daniel Eklöf
2eaa258e11
main: cleanup
2019-10-27 19:21:27 +01:00
Daniel Eklöf
251cf98388
wayland: move keyboard repeat handling into wayland
2019-10-27 19:16:12 +01:00
Daniel Eklöf
1e75b89552
wayland: integrate directly with the FDM
2019-10-27 19:11:35 +01:00
Daniel Eklöf
61cc8c3c55
wayland: implement wayl_init()
...
Wayland instantiation is now done by the wayland backend, not in main.
2019-10-27 19:08:48 +01:00
Daniel Eklöf
1adab32906
term: wayland struct is now not a part of the terminal struct
...
We do however need access to it, so provide a pointer. The difference
is that now we can have a *single* wayland instance, but multiple
terminal instances.
2019-10-27 18:51:14 +01:00
Daniel Eklöf
8c534d0520
input: input_repeat() takes a 'struct wayland' pointer
2019-10-27 18:44:58 +01:00
Daniel Eklöf
9f0b1f94c2
wayland: change all wayland callbacks to take a wayland pointer
...
Instead of passing the terminal to the wayland callbacks, pass a
'struct wayland' pointer.
2019-10-27 18:43:07 +01:00
Daniel Eklöf
eda04d0560
wayland: add back-pointer to terminal
...
This can, in the future, be extended to e.g. a list, to support
multiple windows.
2019-10-27 17:13:29 +01:00
Daniel Eklöf
c9455d5f21
kbd: move into wayland
2019-10-27 17:10:32 +01:00
Daniel Eklöf
061bbd7049
kbd: break out XKB kbd struct to a separate file
2019-10-27 16:21:19 +01:00
Daniel Eklöf
5ca1ee701b
wayland: move clipboard/primary structs into the wayland struct
...
These are application global and very wayland specific
2019-10-27 16:15:32 +01:00
Daniel Eklöf
9e6c28f5b6
wayland: implement wayl_win_destroy()
2019-10-27 16:01:44 +01:00
Daniel Eklöf
942ff566a2
wayland: implement wayl_destroy()
2019-10-27 15:57:23 +01:00
Daniel Eklöf
f63458ef33
term: move per-window wayland objects from wayland struct to terminal struct
...
Short term, we want to break out the wayland backend from the terminal
struct. Long term, we might want to support multiple windows.
One step towards both the above is separating global wayland objects
from per-window objects.
2019-10-27 12:57:37 +01:00
Daniel Eklöf
5fefb950b3
fdm: use the FDM's poll loop
2019-10-27 11:46:18 +01:00
Daniel Eklöf
286db002f8
meson: fix version generation from git
...
run_command() was only run at configure time, meaning the generated
version (that was passed on to the sources via -DFUZZEL_VERSION)
became stale.
Fix by implementing a shell script that generates a header file, and
wrap this in a custom target that is run every time (but the generated
file is only updated when the version changes)
2019-10-19 22:09:52 +02:00
Daniel Eklöf
a789230cf9
font: font_from_name() returns an allocated font struct
2019-10-16 21:52:12 +02:00