Coder Social home page Coder Social logo

wayst's Introduction

screenshot

About

Simple terminal emulator for Wayland and X11 with OpenGL rendering and minimal dependencies.

This is roughly alpha quality, expect bugs!

Features

  • Unicode support
  • Text reflow
  • 24-bit colors
  • Dynamic colors
  • All text properties (squiggly underline, blinking, overline etc.)
  • Resizable font
  • Subpixel antialiasing
  • Mouse reporting
  • Scrollback
  • Mouse text selection
  • Clipboard
  • Configurable keybindings
  • Clickable links, OSC 8 links
  • Command history and marks*
  • Terminal image protocol and sixel graphics (experimental)

Limitations

  • UTF8 mode only
  • No Bidi support
  • No font ligatures

To-Do

  • Search
  • Ibus support
  • Single instance multi window mode
  • All xterm and vte control sequences

Building

make
make install

Dependencies:

  • OpenGL >= 2.1/ES 2.0
  • freetype >= 2.10
  • fontconfig
  • xkbcommon [wayland]
  • xrandr [X11]
  • utf8proc [optional]
  • notify-send [optional]

Build options

To build without X11 or Wayland support set window_protocol=wayland or window_protocol=x11 respectively. With both backends enabled wayst will default to wayland. You can force X11 mode with the xorg-only option.

To target OpenGL ES 2.0 instead of OpenGL 2.1 set renderer=gles20.

To build without libutf8proc set libutf8proc=off.

To build with debuging symbols set mode=debug or mode=debugoptimized.

Installation from AUR

You can install wayst-git from AUR (arch user repository)

yay -S wayst-git

Usage

Configuration file

All option can be set in a configuration file or passed as command line arguments. To see all supported options run wayst --help.

Wayst will look for: $XDG_CONFIG_HOME/wayst/config or $HOME/.config/wayst/config. For an example configuration file see config.example.

Shell integration

Wayst can use iTerm2 shell integration sequences or VTE prompt notifications to track command history.

Default Keybindings

Keys Action
Ctrl+Shift+c Copy to clipboard
Ctrl+Shift+x Copy output of last command to clipboard*
Ctrl+Shift+v Paste from clipboard
Ctrl+Shift+= Increase font size
Ctrl+Shift+- Decrease font size
Ctrl+Shift+Up/Down Scroll
Ctrl+Shift+Page Up/Down Scroll by page
Ctrl+Shift+Left/Right Jump to previous/next command output or mark*
Ctrl+Shift+u Enter unicode character by hex code
Ctrl+Shift+k Enter vi-like keyboard select mode
Ctrl+Shift+d Start new instance in active work directory (set by OSC 7)
Ctrl+Shift+F12 HTML screen dump
Ctrl+Shift+\ Pipe to external program
LMB Select text
RMB Change selected region
MMB Paste from primary selection
Shift+LMB Select text in mouse reporting mode
Ctrl + LMB Open link/Box select

License

MIT

wayst's People

Contributors

91861 avatar freed00m avatar mawww avatar narrat avatar qiu-x avatar samek-h avatar uks2 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

wayst's Issues

Incorrect rendering of unicode characters and powerline glyphs

Some unicode characters don't render at all, or do so incorrectly with lines dissecting them. Also, powerline glyphs don't render correctly, instead with a line separating some adjacent glyphs. Aside from this, an exciting project. Keep up the good work

Resizing wayst window size, happens only if focused

Using a tiling WM, users can resize window without having a focus on it. (Like active window shrinks then non active window expands.)

Wayst if not focused wont expand content, but onlyu if it was previously focused.

Reproduction:
Open two wayst terminals in Tiling WM, make focus on both windows ( so they write their last know sizes ), then shrink the active wayst window and observe the non-focused terminal not size adjusted.

2020-07-14-232011_grim

Broken characters after running htop

Hi, nice project ๐Ÿ‘

I was trying it out and wanted to see my system stats and simply ran htop. It looks like it broke the terminal characters/font.

t

t

My default terminal on the left and wayst on the right.

Is it a font issue?

Font awesome 5 rendering issues

Hi,

Cannot make the Font awesome 5 to work on wayst.

The top is alacritty and wayst rendering is the other.

2020-07-18-155408_selection

This didn't work in any version so it's not a regression.

Using this.

font="Terminus"
font-fallback="Font Awesome 5 Free Regular"
font-fallback2="Font Awesome 5 Free Brands"
font-size=14

If you feel like reproducing it exactly in LF file manager, there is my custom LF_ICONS variable with a set icons configuration option ~/.config/lf/lfrc

export LF_ICONS="di=๏ป:fi=๏…œ:ln=๏ฅ:or=๏ฑ:*.c=๏ŽŒ:*.cc=๏ˆŠ:*.clj=๏‡‰:*.csv=๏›:*.doc=๏‡‚:*.docx=๏‡‚:*.tex=๏‡‚:*.txt=๏‡‚:*.bib=๏€ฎ:*.bbl=๏€ฎ:*.xls=๏‡ƒ:*.xlsx=๏‡ƒ:*.coffee=๏ƒด:*.cpp=๏ˆŠ:*.cxx=๏ˆŠ:*.cp=๏ˆŠ:*.c++=๏ˆŠ:*.css=๏Ž‹:*.less=๏:*.sass=๏ž:*.scss=๏Ž‹:*.styl=๏Ž‹:*.d=๏‡‰:*.dart=๏‡‰:*.erl=๏‡‰:*.exs=๏‡‰:*.fs=๏‡‰:*.go=๏‡‰:*.h=๏‡‰:*.hh=๏‡‰:*.hpp=๏‡‰:*.hs=๏‡‰:*.html=๏„ป:*.htm=๏„ป:*.slim=๏‡‰:*.sln=๏…บ:*.suo=๏…บ:*.ejs=๏‡‰:*.java=๏“ค:*.jl=๏‡‰:*.js=๏Žน:*.jsx=๏›:*.vue=๏Ÿ:*.json=๏Žน:*.lua=๏‡‰:*.md=๏•ญ:*.markdown=๏•ญ:*.php=๏‘—:*.pl=๏‡‰:*.pro=๏‡‰:*.py=๏ข:*.rb=๏Žฅ:*.rs=๏Žฅ:*.scala=๏‡ฎ:*.ts=๏ :*.vim=๏‰ฝ:*.viminfo=๏‰ฝ:*.vimrc=๏‰ฝ:*.key=๏‚„:*.lock=๏€ฃ:*.pem=๏•ณ:*.pub=๏•ณ:*.pgp=๏‚„:*.gpg=๏‚„:*.sig=๏•ณ:*.kdbx=๏‡€:*.cmd=๏…บ:*.ps1=๏…บ:*.sh=๏„ :*.bin=๏‹›:*.bash=๏„ :*.zsh=๏„ :*.fish=๏„ :*.tar=๏‡†:*.tgz=๏‡†:*.arc=๏‡†:*.arj=๏‡†:*.taz=๏‡†:*.lha=๏‡†:*.lz4=๏‡†:*.lzh=๏‡†:*.lzma=๏‡†:*.tlz=๏‡†:*.txz=๏‡†:*.tzo=๏‡†:*.t7z=๏‡†:*.zip=๏‡†:*.z=๏‡†:*.dz=๏‡†:*.gz=๏‡†:*.lrz=๏‡†:*.lz=๏‡†:*.lzo=๏‡†:*.xz=๏‡†:*.zst=๏‡†:*.tzst=๏‡†:*.bz2=๏‡†:*.bz=๏‡†:*.tbz=๏‡†:*.tbz2=๏‡†:*.tz=๏‡†:*.deb=๏ŸŸ:*.dmg=๏…น:*.rpm=๏ž˜:*.jar=๏‡†:*.war=๏‡†:*.ear=๏‡†:*.sar=๏‡†:*.rar=๏‡†:*.alz=๏‡†:*.ace=๏‡†:*.zoo=๏‡†:*.cpio=๏‡†:*.7z=๏‡†:*.rz=๏‡†:*.cab=๏‡†:*.wim=๏‡ผ:*.swm=๏‡ผ:*.dwm=๏‡ผ:*.esd=๏‡ผ:*.psd=๏‡ผ:*.psb=๏‡ผ:*.xcf=๏‡ผ:*.kra=๏‡ผ:*.jpg=๏‡…:*.jpeg=๏‡…:*.mjpg=๏‡…:*.mjpeg=๏‡…:*.gif=๏‡…:*.bmp=๏‡…:*.pbm=๏‡…:*.pgm=๏‡…:*.ppm=๏‡…:*.tga=๏‡…:*.xbm=๏‡…:*.xpm=๏‡…:*.tif=๏‡…:*.tiff=๏‡…:*.png=๏‡…:*.svg=๏‡…:*.svgz=๏‡…:*.mng=๏‡…:*.pcx=๏‡…:*.mov=๏‡ˆ:*.mpg=๏‡ˆ:*.mpeg=๏‡ˆ:*.m2v=๏‡ˆ:*.mkv=๏‡ˆ:*.webm=๏‡ˆ:*.ogm=๏‡ˆ:*.mp4=๏‡ˆ:*.m4v=๏‡ˆ:*.mp4v=๏‡ˆ:*.vob=๏‡ˆ:*.qt=๏‡ˆ:*.nuv=๏‡ˆ:*.wmv=๏‡ˆ:*.asf=๏‡ˆ:*.rm=๏‡ˆ:*.rmvb=๏‡ˆ:*.flc=๏‡ˆ:*.avi=๏‡ˆ:*.fli=๏‡ˆ:*.flv=๏‡ˆ:*.gl=๏‡ˆ:*.dl=๏‡ˆ:*.xwd=๏‡ˆ:*.yuv=๏‡ˆ:*.cgm=๏‡ˆ:*.emf=๏‡ˆ:*.ogv=๏‡ˆ:*.ogx=๏‡‡:*.aac=๏‡‡:*.au=๏‡‡:*.flac=๏‡‡:*.m4a=๏‡‡:*.mid=๏‡‡:*.midi=๏‡‡:*.mka=๏‡‡:*.mp3=๏‡‡:*.mpc=๏‡‡:*.ogg=๏‡‡:*.ra=๏‡‡:*.wav=๏‡‡:*.oga=๏‡‡:*.opus=๏‡‡:*.spx=๏‡‡:*.xspf=๏‡‡:*.epub=๏”˜:*.pdf=๏‡:*.nix=๏…ผ:"

Ctrl/Alt prefixed shortcuts aren't passed properly

I think this has to do with the to-do item, "all xterm and vte control sequences", but I'm not sure so I figure I should report it anyway.

Keyboard shortcuts like alt+tab, alt+A, alt+backspace, and same with ctrl+*, don't seem to be properly passed through to the application running in the terminal.

Resume key repeat even if new key pressed before previous repeat timeout

I think this behavior is wrong at least I do not observe it in any other terminal.

Problem:
Imagine I press j and let it repeat multiple time.
If I press for example k before the key-repeat timeout (I guess 100ms you hardcoded?) then only single k is put.

If I press it after the timeout, the k repeats correctly.

Major issue for VIM navigation, when you want to quickly change directions.

Tested in both BASH and DASH and even in different emulators, it's wayst thing.

Unknown control sequence: 1@, when dots are used on the line

When trying to put character while there is a dot somewhere, the drawing gets destroyed.

You can reproduce really quickly, type

$ systemctl start shadow.service 

then navigate with arrows to delete the start part and attempt to type,
No character are drawn on display but command still valid and could be run

No italic style found for "Terminus"
Failed to locate font files for "FontAwesome"Failed to locate font files for "NotoColorEmoji"Unknown control sequence: 1@a
Unknown control sequence: 1@s
Unknown control sequence: 1@s
gUnknown control sequence: 1@s
Unknown control sequence: 1@a
Unknown control sequence: 1@o
Unknown control sequence: 1@p
Segmentation fault (core dumped)

Then after while it crashes

Config:

# Additional information:
#	
#	XKB_DEFAULT_LAYOUT=cz
#	XKB_DEFAULT_VARIANT=qwerty
#	XKB_DEFAULT_OPTIONS=ctrl:nocaps
#
font="Terminus"
dpi=96
colorscheme=wayst
dynamic-title=true
term="xterm-256color"

Font options don't seem to respect fontconfig alias families

With this in the wayst configuration:

font="monospace"

and in my fontconfig configuration files,

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
    <match target="pattern"> <!-- "serif" family -->
        <test qual="any"    name="family"><string>serif</string></test>
        <edit name="family" mode="prepend_first"><string>IBM Plex Serif</string></edit>
        <edit name="family" mode="prepend"><string>Noto Serif</string></edit>
        <edit name="family" mode="prepend"><string>Twemoji</string></edit>
    </match>

    <match target="pattern"> <!-- "sans-serif" family -->
        <test qual="any"    name="family"><string>sans-serif</string></test>
        <edit name="family" mode="prepend_first"><string>IBM Plex Sans</string></edit>
        <edit name="family" mode="prepend"><string>Noto Sans</string></edit>
        <edit name="family" mode="prepend"><string>Twemoji</string></edit>
    </match>
    <match target="pattern"> <!-- "monospace" family -->
        <test qual="any"    name="family"><string>monospace</string></test>
        <edit name="family" mode="prepend_first"><string>IBM Plex Mono</string></edit>
        <edit name="family" mode="prepend"><string>Noto Sans Mono</string></edit>
        <edit name="family" mode="prepend"><string>Twemoji</string></edit>
    </match>

    <alias binding="strong"> <!-- "emoji" family -->
        <family>emoji</family>
        <default><family>Twemoji</family></default>
    </alias>
</fontconfig>

wayst will report not being able to resolve the font.

[error] Failed to load font 'monospace'

Cut off text at certain font sizes

At font sizes 10, 12, 17, 25 (slightly) and 28 (slightly), the text will be cut off. Also, the terminal still appears to not incorporate all of the space in the window as previously reported.
8468FF10-18F4-43F8-AD51-FFE0B91552BD

Issues with scrollback buffer

Hi
While checking if #49 is fixed with a build based on commit baab112 I noticed some strange behaviour with the scrollback buffer?
If I run a command which output doesn't fit in the current terminal size, every part which isn't displayed anymore is gone.
The stuff that is displayed will move into the scrollback buffer as it should be.
Worked with 732deea
Hope this explains it. But I will attach some pictures in a few minutes.

Setting app-id seems to be broken

Hi
I noticed today with a wayst build based on commit 732deea that setting the app-id via --title doesn't work anymore. At least the compositor hikari doesn't pick it up anymore. With a build based on 694f45b it worked.
If I get to it later I will bisect this, but maybe you already have an idea what is happening and beat me to it.

Highlighted foreground color remains unchanged

Whether or not I set โ€œh-change-fg=trueโ€ in the config, or launch wayst with the โ€œ-fโ€ option, my foreground color for highlighted text will not correspond with the value in my config. The highlighted text should be green as background, and black for foreground, so black text, but itโ€™s all green.

I tried the following settings.

h-bg-color=โ€œ#0077f7โ€
h-fg-color=โ€œ#000000โ€
h-change-fb=true

Hereโ€™s my config.
https://gist.github.com/shoober420/8a2206ee8472eb0b74aa7dec969f0ccc

11DFA421-51D3-4846-9731-B62CB414B5AC

Complex SGR parsing issue

the following gets parsed incorrectly: CSI ;4;38;2;184;187;38;48;2;62;62;62 m and leads to the following output:

[warning] Unknown SGR code: 38
[warning] Unknown SGR code: 235
[warning] Unknown SGR code: 219
[warning] Unknown SGR code: 178

This is due to vt.c line 2078 that decides to parse 38 with Vt_handle_SGR_code because args[0] is ;4.

Build fails on musl

Aloha,
I am on a musl based distro and the build fails with the following.
Are you planning to add support?

/tmp/wayst$ โžœ  make
gcc -c src/gfx_gl21.c -std=c18 -s -O3 -fomit-frame-pointer -mtune=native -ffast-math -mfpmath=sse -DVERSION=\""0.1.0"\" -Wall -Wextra -Wno-unused-parameter -Wno-address -Wno-unused-function -Werror=implicit-function-declaration -I"/usr/include/freetype2/" -o build/gfx_gl21.o
gcc -c src/main.c -std=c18 -s -O3 -fomit-frame-pointer -mtune=native -ffast-math -mfpmath=sse -DVERSION=\""0.1.0"\" -Wall -Wextra -Wno-unused-parameter -Wno-address -Wno-unused-function -Werror=implicit-function-declaration -I"/usr/include/freetype2/" -o build/main.o
gcc -c src/vt.c -std=c18 -s -O3 -fomit-frame-pointer -mtune=native -ffast-math -mfpmath=sse -DVERSION=\""0.1.0"\" -Wall -Wextra -Wno-unused-parameter -Wno-address -Wno-unused-function -Werror=implicit-function-declaration -I"/usr/include/freetype2/" -o build/vt.o
gcc -c src/wl.c -std=c18 -s -O3 -fomit-frame-pointer -mtune=native -ffast-math -mfpmath=sse -DVERSION=\""0.1.0"\" -Wall -Wextra -Wno-unused-parameter -Wno-address -Wno-unused-function -Werror=implicit-function-declaration -I"/usr/include/freetype2/" -o build/wl.o
In file included from src/wl.c:8:
src/timing.h: In function 'TimePoint_subtract':
src/timing.h:52:9: error: unknown type name '__syscall_slong_t'
   52 |         __syscall_slong_t rest = other.tv_nsec - self->tv_nsec;
      |         ^~~~~~~~~~~~~~~~~
In file included from src/vt.h:26,
                 from src/gfx.h:8,
                 from src/gfx_gl21.h:5,
                 from src/main.c:8:
src/timing.h: In function 'TimePoint_subtract':
In file included from src/vt.h:26,
                 from src/gfx.h:8,
                 from src/gfx_gl21.h:5,
                 from src/gfx_gl21.c:5:
src/timing.h: In function 'TimePoint_subtract':
src/timing.h:52:9: error: unknown type name '__syscall_slong_t'
   52 |         __syscall_slong_t rest = other.tv_nsec - self->tv_nsec;
      |         ^~~~~~~~~~~~~~~~~
src/timing.h:52:9: error: unknown type name '__syscall_slong_t'
   52 |         __syscall_slong_t rest = other.tv_nsec - self->tv_nsec;
      |         ^~~~~~~~~~~~~~~~~
In file included from src/vt.h:26,
                 from src/vt.c:5:
src/timing.h: In function 'TimePoint_subtract':
src/timing.h:52:9: error: unknown type name '__syscall_slong_t'
   52 |         __syscall_slong_t rest = other.tv_nsec - self->tv_nsec;
      |         ^~~~~~~~~~~~~~~~~
In file included from src/vt.c:17:
src/wcwidth/wcwidth.h: At top level:
src/wcwidth/wcwidth.h:6:14: error: expected ';' before 'int'
    6 | __BEGIN_DECLS
      |              ^
      |              ;
    7 |
    8 | int wcwidth(wchar_t ucs);
      | ~~~
src/wcwidth/wcwidth.h:10:1: error: unknown type name '__END_DECLS'
   10 | __END_DECLS
      | ^~~~~~~~~~~
src/vt.c:23:8: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'space'
   23 | VtRune space;
      |        ^~~~~
src/vt.c: In function 'Vt_new':
src/vt.c:842:30: error: 'space' undeclared (first use in this function); did you mean 'isspace'?
  842 |     self.parser.char_state = space = (VtRune) {
      |                              ^~~~~
      |                              isspace
src/vt.c:842:30: note: each undeclared identifier is reported only once for each function it appears in
src/vt.c: In function 'Vt_insert_char_at_cursor':
src/vt.c:2465:70: error: 'space' undeclared (first use in this function); did you mean 'isspace'?
 2465 |         Vector_push_VtRune(&self->lines.buf[self->active_line].data, space);
      |                                                                      ^~~~~
      |                                                                      isspace
make: *** [Makefile:61: build/vt.o] Error 1
make: *** Waiting for unfinished jobs....
src/wl.c: In function 'WindowWl_clipboard_send':
src/wl.c:175:38: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
  175 |     windowWl(self)->data_source_text = text;
      |                                      ^
make: *** [Makefile:61: build/main.o] Error 1
In file included from src/gfx_gl21.c:32:
src/wcwidth/wcwidth.h: At top level:
src/wcwidth/wcwidth.h:6:14: error: expected ';' before 'int'
    6 | __BEGIN_DECLS
      |              ^
      |              ;
    7 |
    8 | int wcwidth(wchar_t ucs);
      | ~~~
src/wcwidth/wcwidth.h:10:12: error: expected ';' before 'typedef'
   10 | __END_DECLS
      |            ^
      |            ;
make: *** [Makefile:61: build/wl.o] Error 1
src/gfx_gl21.c: In function 'create_squiggle_texture':
src/gfx_gl21.c:515:32: warning: comparison of integer expressions of different signedness: 'int_fast32_t' {aka 'int'} and 'uint32_t' {aka 'unsigned int'} [-Wsign-compare]
  515 |     for (int_fast32_t x = 0; x < w; ++x)
      |                                ^
src/gfx_gl21.c:516:36: warning: comparison of integer expressions of different signedness: 'int_fast32_t' {aka 'int'} and 'uint32_t' {aka 'unsigned int'} [-Wsign-compare]
  516 |         for (int_fast32_t y = 0; y < h; ++y) {
      |                                    ^
make: *** [Makefile:61: build/gfx_gl21.o] Error 1

font-symbol bug

I'm currently trying to use font-fallback for certain missing charactors in a font set, but Wayst seems to ignore my desired option. When setting the main font option to PxPlus_IBM_VGA_8x16.ttf, the font will load. But when used for the font-fallback option, no changes are made to the missing glyphs. The font and missing glyphs are loaded when using the main font option.

Config:
https://gist.github.com/shoober420/8a2206ee8472eb0b74aa7dec969f0ccc

Ctrl+Shift+Y pastes clipboard text

When one uses the clipboard method of pasting prior, then chooses to use the vim like yank method afterward, pressing Ctrl+Shift+Y will activate the clipboard paste key combo (Ctrl+Shift+V).

Vim like yank works fine until the clipboard method is used.

Thin black line through cursor

When using font size 11, a thin black line is drawn towards the bottom of the cursor. It doesnโ€™t appear in any other font size that Iโ€™ve seen.
447416B5-CC36-4350-B0C4-0A5219CA0199

Clipboard Pasting Bug

When attempting to copy and paste using the clipboard method (Ctrl+Shift+C-V), the desired output will separate the text oddly and will add a blank column for each string of text.

Bug:
E6D1C32A-A339-4A1E-A377-E79493D0313F

Normal:
3B5C25EB-66BF-41C8-A01A-78A1A7973C8B

Dead keys are unhandled, renders tilde with extra space.

The czech layout relies requires to use dead keys for letters ลฅ ลˆ

Short explanation, when you press dead key for ห‡ a character is not put on display and awaits next character to be chosen, if then type n you'll get ลˆ which does not exist on keyboard as separate key.
When dead key is pressed, the (~) tilde + some extra space is rendered.

For comparsion, Alacritty vs Wayst, Wayst is on top.

2020-06-11-214916_selection

To test dead key, try to pres LSHIFT + (+ sign usually next to backspace), then release and press (n)

Layout options

# Set keyboard layout 
XKB_DEFAULT_LAYOUT=cz
XKB_DEFAULT_VARIANT=qwerty
XKB_DEFAULT_OPTIONS=ctrl:nocaps

Copy and Paste broke

When using copy and paste in wayst, the output is not the same. I remember this was mentioned previously by @freed00m . I tried in both vim and nano, with a lot of junk being outputted.

Also, when using copy and paste outside of a text editor, the output will go beyond the window on the same line, instead of going below to a new line. When hitting โ€œCtrl+Aโ€ to jump to the beginning of the output, the cursor and text jump up a line, resulting in overlapping text.

Continiuous mode for key presses

Hi and thank you for this terminal emulator.
One thing that is currently bothering me: If I want to remove a text I need to press and release backspace for every glyph/char I want to remove, instead of just keep pressing down the backspace key. This example applies for every key.
Can this behaviour be added or is there already a way to configure this and overlooked it?

Best regards

Some aspect ratios of terminal cause padding

Using Terminus font OTB,

2020-07-14-181928_grim

After small resize, the content jumps around. Behavior not happening on version r79.ec0283b

2020-07-14-181938_grim

config

# Additional information:
#	
#	XKB_DEFAULT_LAYOUT=cz
#	XKB_DEFAULT_VARIANT=qwerty
#	XKB_DEFAULT_OPTIONS=ctrl:nocaps
#

title="Terminal"
title-format="%2$s"

font="Terminus"
font-fallback="Font Awesome 5 Free Regular"
font-fallback2="Font Awesome 5 Free Brands"
font-size=12
dpi=96
colorscheme="solarized"
fg-color="#ffffff"
bg-color="#000000ee"
dynamic-title=true
term="xterm-256color"

make menuconfig crash

When launching โ€œmake menuconfigโ€, it will crash when using the arrow keys to navigate the options pressing the enter key.

Suport for OTB (Open Type Bitmap) fonts

I've tried to use terminus-font-otb in wayst without success.

$ fc-match "Terminus"
ter-u12n.otb: "Terminus" "Medium"

 $ fc-list | grep "Terminus"
/usr/share/fonts/misc/ter-u22b.otb: Terminus:style=Bold
/usr/share/fonts/misc/ter-u20b.otb: Terminus:style=Bold
/usr/share/fonts/misc/ter-u24b.otb: Terminus:style=Bold
/usr/share/fonts/misc/ter-u12n.otb: Terminus:style=Medium
/usr/share/fonts/misc/ter-u16n.otb: Terminus:style=Medium
/usr/share/fonts/misc/ter-u18n.otb: Terminus:style=Medium
/usr/share/fonts/misc/ter-u14n.otb: Terminus:style=Medium
/usr/share/fonts/misc/ter-u32n.otb: Terminus:style=Medium
/usr/share/fonts/misc/ter-u28n.otb: Terminus:style=Medium
/usr/share/fonts/misc/ter-u14v.otb: Terminus:style=Bold
/usr/share/fonts/misc/ter-u16v.otb: Terminus:style=Bold
/usr/share/fonts/misc/ter-u22n.otb: Terminus:style=Medium
/usr/share/fonts/misc/ter-u20n.otb: Terminus:style=Medium
/usr/share/fonts/misc/ter-u12b.otb: Terminus:style=Bold
/usr/share/fonts/misc/ter-u24n.otb: Terminus:style=Medium
/usr/share/fonts/misc/ter-u16b.otb: Terminus:style=Bold
/usr/share/fonts/misc/ter-u14b.otb: Terminus:style=Bold
/usr/share/fonts/misc/ter-u18b.otb: Terminus:style=Bold
/usr/share/fonts/misc/ter-u32b.otb: Terminus:style=Bold
/usr/share/fonts/misc/ter-u28b.otb: Terminus:style=Bold

 $ wayst
Failed to locate font files for "Terminus"

also listing standard fontconfs from Arch repos

/etc/fonts/conf.d $ ll
total 4
lrwxrwxrwx 1 root root  44 19.01.2020 11:22 10-hinting-slight.conf -> /etc/fonts/conf.avail/10-hinting-slight.conf
lrwxrwxrwx 1 root root  48 19.01.2020 11:22 10-scale-bitmap-fonts.conf -> /etc/fonts/conf.avail/10-scale-bitmap-fonts.conf
lrwxrwxrwx 1 root root  47 19.01.2020 11:22 20-unhint-small-vera.conf -> /etc/fonts/conf.avail/20-unhint-small-vera.conf
lrwxrwxrwx 1 root root  44 19.01.2020 11:22 30-metric-aliases.conf -> /etc/fonts/conf.avail/30-metric-aliases.conf
lrwxrwxrwx 1 root root  38 19.01.2020 11:22 40-nonlatin.conf -> /etc/fonts/conf.avail/40-nonlatin.conf
lrwxrwxrwx 1 root root  37 19.01.2020 11:22 45-generic.conf -> /etc/fonts/conf.avail/45-generic.conf
lrwxrwxrwx 1 root root  35 19.01.2020 11:22 45-latin.conf -> /etc/fonts/conf.avail/45-latin.conf
lrwxrwxrwx 1 root root  31 11.01.2020 19:32 46-noto-mono.conf -> ../conf.avail/46-noto-mono.conf
lrwxrwxrwx 1 root root  31 11.01.2020 19:32 46-noto-sans.conf -> ../conf.avail/46-noto-sans.conf
lrwxrwxrwx 1 root root  32 11.01.2020 19:32 46-noto-serif.conf -> ../conf.avail/46-noto-serif.conf
lrwxrwxrwx 1 root root  39 19.01.2020 11:22 49-sansserif.conf -> /etc/fonts/conf.avail/49-sansserif.conf
lrwxrwxrwx 1 root root  34 19.01.2020 11:22 50-user.conf -> /etc/fonts/conf.avail/50-user.conf
lrwxrwxrwx 1 root root  35 19.01.2020 11:22 51-local.conf -> /etc/fonts/conf.avail/51-local.conf
lrwxrwxrwx 1 root root  37 19.01.2020 11:22 60-generic.conf -> /etc/fonts/conf.avail/60-generic.conf
lrwxrwxrwx 1 root root  35 19.01.2020 11:22 60-latin.conf -> /etc/fonts/conf.avail/60-latin.conf
lrwxrwxrwx 1 root root  43 19.01.2020 11:22 65-fonts-persian.conf -> /etc/fonts/conf.avail/65-fonts-persian.conf
lrwxrwxrwx 1 root root  38 19.01.2020 11:22 65-nonlatin.conf -> /etc/fonts/conf.avail/65-nonlatin.conf
lrwxrwxrwx 1 root root  31 11.01.2020 19:32 66-noto-mono.conf -> ../conf.avail/66-noto-mono.conf
lrwxrwxrwx 1 root root  31 11.01.2020 19:32 66-noto-sans.conf -> ../conf.avail/66-noto-sans.conf
lrwxrwxrwx 1 root root  32 11.01.2020 19:32 66-noto-serif.conf -> ../conf.avail/66-noto-serif.conf
lrwxrwxrwx 1 root root  37 19.01.2020 11:22 69-unifont.conf -> /etc/fonts/conf.avail/69-unifont.conf
lrwxrwxrwx 1 root root  39 19.01.2020 11:22 80-delicious.conf -> /etc/fonts/conf.avail/80-delicious.conf
lrwxrwxrwx 1 root root  39 19.01.2020 11:22 90-synthetic.conf -> /etc/fonts/conf.avail/90-synthetic.conf
-rw-r--r-- 1 root root 967 19.01.2020 11:22 README

Program messages donโ€™t honor terminal opacity

Certain programs, like ffmpeg for this example, output messages when the task is finalized. The messages do not honor the users opacity settings however. Is this intended by the programs or is this a bug?
0B8A2E3A-8DB1-4C32-9082-0D1FA385FDE9

make nconfig highlighted text bug

When using โ€œmake nconfigโ€, the highlighted text will have a checkered pattern after the text as shown in the picture below.
6F821730-434A-42DA-ACBE-EABC0D5B3F41

Failed to generate keyboard compose table

Hi,
I would like to compile wayst on gentoo under wayland (sway).
I used the following commands:

git clone https://github.com/91861/wayst
cd wayst
make
./wayst

But if I try to run it:

$ ./wayst
[warning] "/home/vasco/.config/wayst/config" - No such file or directory
[warning] LCD filtering not avaliable no error
xkbcommon: ERROR: couldn't find a Compose file for locale "en_GB.UTF8"
[error] Failed to generate keyboard compose table, is locale 'en_GB.UTF8' correct?

Any ideas?

Thanks

PSF Font Support

This might be an impossible request, but is it possible for Wayst to use the PSF fonts that are used in the TTY? On Arch, the fonts are located in the /usr/share/kbd/consolefonts/ directory. Example fonts here would be sun12x22.psfu.gz, drdos8x16.psfu.gz, and default8x16.psfu.gz.

Continuous Cursor Blink

Could an option be added to increase and decrease the cursor blink timeout? Could you also add an option to allow continuous blinking cursor for an unlimited amount of time?

Empty CSI parameters seems to be ignored

A CSI m sequence whose first character is ';' does not reset attributes. This seems to be due to string_split_on that explicitely drops empty entries (if (ret.buf[ret.size - 1].size == 2) line 666). This looks wrong, an empty entry is accepted by most terminal emulators and in the case of CSI m should be interpretted as if the value was 0 (i.e. reset all attributes).

Missing CSI sequences

While running iptraf-ng I get the following messages:

[warning] Freetype has no clear type support 
[warning] Title stack not implemented
[warning] xterm eightBitInput not implemented
[warning] Unknown CSI sequence: 32b
[warning] Unknown CSI sequence: 6b
[warning] Unknown CSI sequence: 12b
[warning] Unknown CSI sequence: 11b
[warning] Unknown CSI sequence: 7b
[warning] Unknown CSI sequence: 19b
[warning] Unknown CSI sequence: 55b
[warning] Unknown CSI sequence: 77b
[warning] Unknown CSI sequence: 7b

I suppose the TUI doesn't look as it should because of those missing sequences. Nothing to important. And maybe this is something you don't want to add or can be solved otherwise. Just wanted to note :)

Pressing Capslock (that function as Ctrl) will put tilde sign

Hi I use the hack for capslock that acts as ctrl key.

# Set keyboard layout 
XKB_DEFAULT_LAYOUT=cz
XKB_DEFAULT_VARIANT=qwerty
XKB_DEFAULT_OPTIONS=ctrl:nocaps

Whenever I press it, it paste ~ in the terminal.

Had no configuration file so using defaults.

Crash using alsamixer

When having alsamixer open, if you press the F5 key to view all volume controls and settings, Wayst will crash.

Can't sustain playback on mpv --no-video , playback resumes on focus

Run mpv --no-video on track longer than 5 minutes without having focus on the windows (or even workspace), can be even remote video.

Comparing to alacritty and kitty, the wayst is the only terminal where mpv --no-video <file/url> get stuck if focus is not on wayst.

It happens in both BASH and DASH shells, so I assume it has to do something with wayst.

my mpv config

Sample 1hr music, youtube-dl is probably dependency for urls to work

$ mpv https://www.youtube.com/watch?v=6a-FnIqM0rI --no-video

Change default debug key combo

The Enter / Return key is used very often to executing a terminal emulator. Could the debug to stderr key combination be changed to something less common, like Ctrl+Shift+D?

Ctrl+Shift+C will trigger enter key

When using the Ctrl+Shift+C for copying to clipboard in the plain terminal, the result will be as if I pressed the enter key. Using Ctrl+Shift+V will not paste the copied text.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.