Wez Furlong
3d7a313e3f
refactor to make TabHost impls look similar
2019-02-24 09:02:49 -08:00
Wez Furlong
5b84b6dfc9
start moving some host functions to guicommon; clipboard first
2019-02-24 08:39:29 -08:00
Wez Furlong
668d456fdf
add some comments to the TerminalWindow trait
2019-02-24 08:06:10 -08:00
Wez Furlong
5f80719306
use self.(width|height) when synth hidpi changes
2019-02-24 07:59:05 -08:00
Wez Furlong
c647b4e87c
When using glutin, scaling fonts resizes the terminal to preserve rows/cols
...
This could be implemented for xcb too, just didn't get around to it
yet.
2019-02-24 00:19:17 -08:00
Wez Furlong
aef26084ef
force re-assessment of sizes when changing font scaling
2019-02-23 23:50:24 -08:00
Wez Furlong
df8b415faa
workaround missing hidpifactor event notification on linux
2019-02-23 23:37:24 -08:00
Wez Furlong
af882a1762
fixup misleading comments
2019-02-23 23:18:01 -08:00
Wez Furlong
3026d0fa16
refactor scaling changed
2019-02-23 23:10:40 -08:00
Wez Furlong
3178082e6a
move tab termination functions to guicommon
2019-02-23 22:48:55 -08:00
Wez Furlong
1b8f8c734f
move resize_surfaces
2019-02-23 22:40:59 -08:00
Wez Furlong
a87487ea30
use get_tabs rather than a local tabs() method in x11.rs
2019-02-23 22:25:43 -08:00
Wez Furlong
8fdf85b4d6
move spawn_tab to guicommon
2019-02-23 22:24:24 -08:00
Wez Furlong
d639ad0ffe
factor out the paint logic
2019-02-23 22:04:58 -08:00
Wez Furlong
315ff45880
start factoring out some common TerminalWindow code
2019-02-23 21:02:44 -08:00
Wez Furlong
46c0c7753f
glium TerminalWindow -> GliumTerminalWindow
2019-02-23 20:43:18 -08:00
Wez Furlong
46cc2cdf99
x11 TerminalWindow -> X11TerminalWindow
2019-02-23 20:42:24 -08:00
Wez Furlong
d489d8466f
make xwindows use the common tabs code
2019-02-23 20:33:42 -08:00
Wez Furlong
a09fcd9c3c
remove unused import
2019-02-23 17:50:04 -08:00
Wez Furlong
3c29d07ee2
factor tabs code out of gliumwindows
2019-02-23 17:40:10 -08:00
Wez Furlong
aa9942e6d4
spawned windows no longer inherit scaling
...
On hidpi displays we'd end up with a window twice the size; whoops!
2019-02-23 17:11:23 -08:00
Wez Furlong
9bc54da406
use Rc<FontSystem> rather than Box
...
This will help with an upcoming change
2019-02-23 17:05:46 -08:00
Wez Furlong
e5e3fa91f8
remove some duplicated code in favor of spawn_window_impl
2019-02-23 17:03:58 -08:00
Wez Furlong
4f73904be4
remove SpawnRequest in favor of using the futurecore
...
This wasn't hooked up right, partly because the glutin backend
bit rotted and I forgot that there was a future core.
This simplifies dispatching of requests that need to happen outside
of the gui loop control.
2019-02-23 16:48:05 -08:00
Wez Furlong
0bae17a8c6
fixup x11 build + warnings
2019-02-23 14:51:12 -08:00
Wez Furlong
7a1d691163
fix unterminated loop when a tab is closed and others remain
...
We weren't detecting EOF reading from the pty
2019-02-23 14:34:17 -08:00
Wez Furlong
db5aac6681
implement tabs in the glutin gui system
...
There's a bunch of code duplication that I want to clean up later.
2019-02-23 13:33:32 -08:00
Wez Furlong
5b126b3f1e
Restore fullscreen toggle hotkey and fixup for macos
2019-02-23 13:27:59 -08:00
Wez Furlong
c5fcfc497c
dirty all of the terminal lines when scaling changes
2019-02-23 13:27:59 -08:00
Wez Furlong
f5d688c941
remove now-unused function
2019-02-23 13:08:47 -08:00
Stephane Fontaine
e986ec99f9
remove non needed non-snake-case attributes
2019-02-23 13:04:39 -08:00
Stephane Fontaine
573c7a1aee
[travis/linux] Build our own harbuzz again
...
Needs 1.0.5 but xenial has 1.0.1 -_-
2019-02-23 13:04:39 -08:00
Stephane Fontaine
41314a0deb
rustfmt
2019-02-23 13:04:39 -08:00
Stephane Fontaine
e0c83597f1
[travis/linux] move to xenial
...
we need non ancient version of harfbuzz & xkbcommon
2019-02-23 13:04:39 -08:00
Stephane Fontaine
81d88f1839
rustfmt
2019-02-23 13:04:39 -08:00
Stephane Fontaine
272bfdfb1a
trim down key translation
2019-02-23 13:04:39 -08:00
Stephane Fontaine
0fda08693f
Return early in process key event
2019-02-23 13:04:39 -08:00
Stephane Fontaine
5dcbd89b9b
refactor locale query
2019-02-23 13:04:39 -08:00
Stephane Fontaine
92fe601151
Keep calm, don't panic!
2019-02-23 13:04:39 -08:00
Stephane Fontaine
d233b0f871
Prevent spurious xkb event dispatching
...
Thnks to the fact that all windows share the same `keyboard` instance
2019-02-23 13:04:39 -08:00
Stephane Fontaine
9981c2d4eb
update .travis.yml with xkbcommon dep
2019-02-23 13:04:39 -08:00
Stephane Fontaine
799b0128f7
Add xkbcommon to dependencies
2019-02-23 13:04:39 -08:00
Stephane Fontaine
b94527664f
Initial xkbcommon support
...
Remove detailed xcb select event hack
Only remove consumed "mod5" for now
which is AltGr.
Get actual modifiers from xkb.
it should enable 1:1 match with user's xmodmad
[clippy] allow keys deadcodes
handle mods & keys separately. Allows passing down `ctrl+2`
state.key_get_utf8 will interpret ctrl+2 (or @, space, ~) to 'ctrl \u{0}'
no need to wait for events.
+ Send delete as enum variant not by char value
Hook XKeysym to termwiz::KeyCode
prefer dealing with chars instead of utf8
Actually this breaks multi unicode characters .. such as J́
Others can be found with
perl -lane '/"\s+#/ && print' < /usr/share/X11/locale/en_US.UTF-8/Compose
Anyway we will need to return a Vec of chars for those.
cleanup
apply rustfmt
query locale via libc
2019-02-23 13:04:39 -08:00
Wez Furlong
826a0df380
add helper for calling from TabHost -> TerminalWindow
2019-02-23 00:35:49 -08:00
Wez Furlong
26d7ed9cbf
add ctrl +/- font size support to x11 backend
...
Closes https://github.com/wez/wezterm/issues/2
2019-02-22 23:53:15 -08:00
Wez Furlong
92bb685c0c
adjust status/features section of the readme
2019-02-22 22:21:40 -08:00
Wez Furlong
0b4ae38417
remove outdated benchmarks
...
I ran some numbers on the current build and we're a bit slower
today than we were when I last ran benchmarks. We've grown
more state in the CellAttributes that we manage so the profiler
shows those as relatively hot spots.
Performance is now on par with iTerm2 (w/ Metal Renderer) on macos
honestly now a little slower than vte based terminals, but still faster
than xterm (everything is faster than xterm!)
Alacritty is impressively holding its own at the front of the pack,
even with scrollback.
There's room for improvement in wezterm, but it still feels fine,
so perf isn't currently top of my list.
Closes https://github.com/wez/wezterm/issues/20
2019-02-22 22:09:34 -08:00
Wez Furlong
819bc247a0
micro optimize clearing a line
...
Turns out to be faster to clear and then resize than it is to
resize down and manually assign the elements
2019-02-22 21:52:18 -08:00
Wez Furlong
a022d3856a
micro optimize setting up the storage length
...
SmallVec::resize showed up as a hot spot in the profiler
2019-02-22 21:14:37 -08:00
Wez Furlong
983eca1209
enable debug symbols in release builds
2019-02-22 20:59:03 -08:00