Giter VIP home page Giter VIP logo

icy_term's Introduction

icy_term

IcyTerm moved to: https://github.com/mkrueger/icy_tools

IcyTERM is a BBS terminal program with allows you to connect to BBSes. Visit https://www.telnetbbsguide.com/ for a start to enter the BBS world.

Features supported so far:

  • Platforms: Linux, macOs, Windows
  • Telnet, SSH, Websockets and Raw connections.
  • Ansi BBS, Avatar, PETSCII, ATASCII, Viewdata and RIPscrip emulation
  • File transfer X/Y/Z Modem and variants (1k/1k-G/8k)
  • Rich set of ansi features
    • Modern engine with extended colors, 24bit fonts, ice support
    • Sixels, loadable fonts, ansi macros, osc8 www links
    • ANSI music
  • Misc features
    • 3D accelerated rendering engine
    • IEMSI autologin
    • Baud emulation
    • Exporting buffer to disk & capture session
    • Copy & Paste
  • And many more. If something is missing open a feature request :)

Get binaries

Get the latest release here: https://github.com/mkrueger/icy_term/releases/latest

Requires

IcyTerm needs a graphics card that can can do opengl 3.3+. (It's the 2010 version but some people have problems starting)

If it doesn't run check if graphics card drivers are up to date.

On Windows: opengl32.dll And VCRUNTIME140.dll is required. Usually these two are installed and it should run out of the box. If you can run any game with 3D graphics it should just work.

Help

Contributions are welcome. But also testing & bug reporting or feature requests.

If you can't/want to contriubte code you can donate via paypal to [email protected]

Screenshots

Code page 437 (aka "DOS") support:

DOS

Petscii screenshot:

Petscii

Atascii screenshot:

Petscii

Viewdata screenshot:

Viewdata

RIPscrip screenshot:

Viewdata

History

I had an own BBS back in the 90'. When I started rust I searched a project and some days earlier I spoke with my wife about the good old days, PCBoard and then I got the idea to improve the PPL decompiler we used these days. That was my first project and it was successful (https://github.com/mkrueger/PPLEngine). Around that time I learned that there are still BBSes in the internet and I started to update my old ansi drawing tool (MysticDraw) however I lost a bit track because of the gtk4 bindings. It's very difficult to write even a mid sized UI application with these.

First I tried to ressurect my old ansi drawing tool (Mystic Draw) using gtk4 bindings. But they didn't really suit my needs. Tried Druid/Egui/Iced and decided to do a smaller project that relies on an ansi engine too.

So I decided to do a terminal program. After a first implementation with iced (cool library, can recommend) I switched to egui because I needed an opengl control and the support in iced for that was lacking at that point of time.

So this was more of a test project for the ansi engine & writing rust UI apps but it got a bit larger than I thought and now IcyTerm is a fully featured terminal app for BBSes.

Build instructions

  • Install rust toolchain: https://www.rust-lang.org/tools/install
  • On linux you need "sudo apt-get install build-essential libgtk-3-dev libasound2-dev libxcb-shape0-dev libxcb-xfixes0-dev"
  • Then you're ready to go "cargo run"

icy_term's People

Contributors

mkrueger avatar nuskooler avatar

Stargazers

Jefte Keller avatar Sam Orlando avatar infl00pLabs avatar Erik E avatar dark_hash ⸸ avatar Jason McLeod avatar Devante Weary avatar Jan Gyldenlykke avatar Brian Hall avatar  avatar Chris Gerlinsky avatar  avatar Chris Costakis avatar Paulo Pereira avatar  avatar  avatar  avatar Nik. avatar  avatar AnonymouX47 avatar Hans Petter Jansson avatar Cody Logan avatar Don Miller avatar  avatar Sadie May avatar digimortal avatar Jonathan Phebus avatar  avatar  avatar José Luis Cruz avatar Brian Peek avatar  avatar Jack Minster avatar Ian Sutherland avatar Jeff Keyzer avatar John D. Rowell avatar  avatar Shaggy avatar Rick Christy avatar  avatar Brian Dorsey avatar Fernando Toledo avatar Fredrik Haglund avatar Joshua Briefman avatar Ryota Sakai avatar Tom avatar Jim Carpenter avatar Joe Campbell avatar xenos avatar Roc Vallès i Domènech avatar Leomar Durán avatar Charles Blackburn avatar Iohann Rabeson avatar Rich Lawrence avatar Travis Owen avatar Nagy Tibor avatar Nathan Byrd avatar Jeff Quast avatar  avatar Thomas Bøvith avatar  avatar Michael J. Ryan avatar  avatar Ganiman avatar Danny Angelo Carminati Grein avatar  avatar Soc Virnyl S. Estela avatar Hunter Beast avatar

Watchers

 avatar  avatar dark_hash ⸸ avatar digimortal avatar Thomas Bøvith avatar Chris Gerlinsky avatar Jan Gyldenlykke avatar  avatar

icy_term's Issues

Shift-arrow keys...

Doesn't work. Unfortunately, I do that a lot... It doesn't do anything, at least on my bbs: shsbbs.net.

Zmodem uploads from win 10 dialog issue

when i start the upload process on my synchro bbs, and i click the "upload" button iin the tool bar... it takes me to "c:\windows\system32".

no biggie, i can navigate from there .... EXCEPT, every time the bbs sends the header, it goes back to that directory and then you have to try and navigate again... kinda awkward when it happens every 5 seconds.

when ii finally managed to get it to try and upload something but it wouldnt go through. but the main thing is the dialog box change on header reception

Support SSH Public Key authentication

Opening this ticket for any discussion before I go on a tangent and put it in.

Allow Public Key Authentication with SSH. This would involve something like:

  1. A place in the UI to insert a public key and/or just read from ~/.ssh/ dir
  2. Boards that support it. I'm happy to enable it in ENiGMA 1/2, and I'm sure other softwares will follow :)
  3. ...of course would work with non-BBSes as well (ie: SSH servers in Linux)

Ansimation not rendering correctly...

My third bulletin screen (using catfade) renders it's exit animation properly from ftelnet, but not icyterm. It's hard to describe, I believe it deletes from the outside in.

Unable to build...

OS: Ubuntu-Budgie 22.04 fully updated

Default host: x86_64-unknown-linux-gnu
rustup home:  /home/tracker1/.rustup

stable-x86_64-unknown-linux-gnu (default)
rustc 1.66.0 (69f9c33d7 2022-12-12)

Build & Output:

icy_term on  main is 📦 v0.4.0 via 🦀 v1.66.0 took 3s 
❯ cargo build --release
   Compiling icy_term v0.4.0 (/home/tracker1/src/github.com/mkrueger/icy_term)
error[E0432]: unresolved import `rand`
 --> src/ui/phonebook.rs:6:5
  |
6 | use rand::Rng;
  |     ^^^^ use of undeclared crate or module `rand`

error[E0433]: failed to resolve: use of undeclared crate or module `rand`
   --> src/ui/phonebook.rs:185:35
    |
185 |                     let mut rng = rand::thread_rng();
    |                                   ^^^^ use of undeclared crate or module `rand`

warning: crate-level attribute should be in the root module
 --> src/ui/main_window.rs:1:36
  |
1 | #![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] // hide console window on Windows in release
  |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  |
  = note: `#[warn(unused_attributes)]` on by default

Some errors have detailed explanations: E0432, E0433.
For more information about an error, try `rustc --explain E0432`.
warning: `icy_term` (bin "icy_term") generated 1 warning
error: could not compile `icy_term` due to 2 previous errors; 1 warning emitted

Crashes when connecting

Launches fine. Program crashes when connecting to site in address book.

$ RUST_BACKTRACE=full ./icy_term
thread 'main' panicked at 'internal error: entered unreachable code', /Users/xxx/.cargo/registry/src/index.crates.io-6f17d22bba15001f/poll-promise-0.2.0/src/promise.rs:332:49
stack backtrace:
0: 0x10f37a743 - __mh_execute_header
1: 0x10f398d3b - __mh_execute_header
2: 0x10f376e88 - __mh_execute_header
3: 0x10f37a53a - __mh_execute_header
4: 0x10f37b985 - __mh_execute_header
5: 0x10f37b78f - __mh_execute_header
6: 0x10f37be23 - __mh_execute_header
7: 0x10f37bd02 - __mh_execute_header
8: 0x10f37ab49 - __mh_execute_header
9: 0x10f37ba7d - __mh_execute_header
10: 0x10f3cbd33 - __mh_execute_header
11: 0x10f3cbdc7 - __mh_execute_header
12: 0x10ee4a83a - __mh_execute_header
13: 0x10eeec2c7 - __mh_execute_header
14: 0x10f1f278f - __mh_execute_header
15: 0x10f1fbbcf - __mh_execute_header
16: 0x10f1ead83 - __mh_execute_header
17: 0x10f1f4229 - __mh_execute_header
18: 0x10f2954e8 - __mh_execute_header
19: 0x10f2971b7 - __mh_execute_header
20: 0x10f29175f - __mh_execute_header
21: 0x7ff80d4c3444 -
22: 0x7ff80d4c336b -
23: 0x7ff80d4c2a17 -
24: 0x7ff80d4c1f31 -
25: 0x7ff816f42f3d -
26: 0x7ff816f42d4e -
27: 0x7ff816f42aa8 -
28: 0x7ff81055e25c -
29: 0x7ff81055d106 -
30: 0x7ff81054f788 -
31: 0x10f1e9120 - __mh_execute_header
32: 0x10f1f8bb7 - __mh_execute_header
33: 0x10f1fe562 - __mh_execute_header
34: 0x10f1e6b27 - __mh_execute_header
35: 0x10eedca2a - __mh_execute_header
36: 0x10ee35a5f - __mh_execute_header
37: 0x10ee528cf - __mh_execute_header
38: 0x10ee52c16 - __mh_execute_header
39: 0x10eef83cc - __mh_execute_header
40: 0x10f37200a - __mh_execute_header
41: 0x10ee52a2c - __mh_execute_header
42: 0x7ff80d08e41f -

ctrl-]

Doesn't seem to work. I need to use it when I'm telnetting out from a system to disconnect if things to awry.

Crash on Wine

Cannot run on wine-stagins 7.22 due this error

thread 'main' panicked at 'index out of bounds: the len is 1 but the index is 1', src\ui\edit_bbs.rs:23:16
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Gap too large between RIP and text

Here are a few examples. The empty space should not be there. The text should appear immediately below the RIP. RIPterm and SyncTerm both render this properly.
image
image
image
The red box on the screenshots indicate the area that should not be blank.

.6.7 totally breaks zmodem downloads...

shsbbs.net, I can't download from any of my download apps (OLMS2000, the reader or nodeview 2.10) or the files area download protocols. It just dumps straight out of the download to a garbage full screen.

Progress bar for uploading via Zmodem protocol immediately jumps to 100%

When I upload a file to a BBS via Zmodem the progress bar immediately jumps to 100%. After that the application doesn't respond to mouse clicks or keypresses anymore. But in the background IcyTerm is still uploading the file, the Sysop confirms that.

Tested with IcyTerm 0.6.8 under Linux on cpbbs.de:2323.

Invisible Cursor...

I just tried to respond to a message and there was no cursor to show me where I was typing. Not sure if this was normal or not. .6.6

vicII + petscii issues when typing shift+number

Hello,
I noticed that there's an issue when typing shift + number to get the signs like !, %, $, etc.
See this screenshot:

image

First line: the number, second line: shift + number.
This behaviour severely impacts the user experience. Especially when any of those chars are used in the password.

Icy Term won't run on my machine

Hi,

I've tried to run Icy Term on my machine but nothing happens after clicking on the exe. No sign of life, and nothing in the task manager.

This is a Windows 11 Machine with opengl support.

Let me know if you need any other information

Thanks

Tab key UI issue

When connected to a BBS, pressing the TAB key on the terminal (to switch fields on a BBS,) results in both the tab being sent to the BBS (like it should) as well as highlighting the Upload button. Then, when a user hits on the BBS, it actually triggers the Upload button, bringing up the "Select Upload protocol."

I would suggest that these menu buttons not be allowed to get tab focus (though hotkeys would be nice for them) so that it does not interrupt when trying to log into a BBS. Xibalba (xibalba.l33t.codes:44510) is an example of a BBS that is affected by this, as the login sequence makes heavy use of TAB and Enter to navigate.

Version: iCY TERM 0.5.3

Scrolling bug

Scrollarea is bigger than it should be leading to errors at the top on terminal screens - some px. are missing.

Side effect of the smooth scrolling. The scrollarea was off before but drawing output didn't care to scroll ~6px.

Problem launching 0.6.3 in macOS

Ventura 13.2.1, ARM64 cpu. I downloaded the file: icy_term_osx_0.6.3_aarch64-apple-darwin.zip

If I try to launch the app icon, it bounces once and stops.

Digging into the app bundle, there seems to be a problem running the binary executable:

% pwd
/Applications/Icy Term.app/Contents/MacOS

% ./icy_term
[2023-08-28T06:16:23Z ERROR icy_term::ui::app] Error reading dialing_directory: Error parsing dialing_directory: TOML parse error at line 54, column 24
|
54 | comment = "ENiGMA½ WHQ""
| ^
expected newline, #

thread 'main' panicked at 'index out of bounds: the len is 0 but the index is 0', src/ui/dialogs/dialing_directory_dialog.rs:56:25
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

copy/paste weirdness...

Copy buffer doesn't end up in main copy/paste location. I can't copy/paste from icyterm to host or host to icyterm.

Can't explain this...

Occasionally , the screen will stop updating and there will be no response from the remote side. This happens often with icyterm when I have a bunch of private messages, but not with other clients. Also happens in Clans. I don't know how to trouble-shoot this one...

deb version won't run on debian 11.7

ragnarok@ragnarok:/tmp$ icy_term 
icy_term: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.35' not found (required by icy_term)
icy_term: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by icy_term)
icy_term: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by icy_term)
icy_term: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by icy_term)

ragnarok@ragnarok:~$ cat /etc/debian_version 
11.7

Top of screen missing.

Howdy,

I'm running icyterm on a Mac (Silicon) - and in both videotex and ansi modes, the top of the screen is missing:

(I was using 0.4.1(?) before and it was working great...)

Screenshot 2023-08-26 at 10 04 48 am

Win10 Opening issues

Cannot open latest version in Win10 x64. Click on file, and nothing happens. Same with Icy View. Would like a 32 bit version in the future if possible.

deb package missing standard field

ragnarok@ragnarok:/tmp$ sudo dpkg -i icy_term_0.4.2_amd64.deb
dpkg: atención: parsing file '/var/lib/dpkg/tmp.ci/control' near line 8 package 'icy-term':
missing 'Maintainer' field
Seleccionando el paquete icy-term previamente no seleccionado.
(Leyendo la base de datos ... 756975 ficheros o directorios instalados actualmente.)
Preparando para desempaquetar icy_term_0.4.2_amd64.deb ...

exit on OSX doesn't work

I couldn't close the APP without OSX Error "Icy Term wurde unerwartet beendet" and three Buttons like "Erneut öffnen", "Melden..." and "Ignorieren".

System: Macbook Pro M1
MacOS: Ventura 13.4.1 (c)

Some new ansi issues...

At least on my system (shsbbs.net) with ssh (login bbs password shsbbs). I didn't check telnet. The message/files groups/areas selector is off a bit and in ice edit, when wrapping, there is some weirdness. I don't know how to be more precise, check it out on my system to see it. Both of those problems didn't appear in netrunner or ftelnet. I need to learn how to do video screen captures...

Sixel graphic cannot be over-written

Once a sixel graphic is displayed, it cannot be selectively over-written (as opposed to clearing the entire screen). For an example, run the Chess Club program on my board (dura-bbs.net:6359) and enter the "D)isplay settings" option. It will display a list of options in the right-hand panel, one of which is a sample Sixel graphic. Once you Q)uit out of the Display Settings secreen, the right-hand panel should replaced with the Main Menu. You can see that the sample sixel graphic is still there, covering up part of the Main Menu (it gets cleared normally in SyncTERM).

Features: UI improvements on Dialing Directory

Thank you for making icy_term. It is already my favorite BBS client, and I have a feeling your just getting started! I know you have a lot of other things, but below are a couple of small "quality of life" improvements that would be nice for the Dialing Directory:

  • This is a small item, but it would be great if hitting enter after entering a hostname:port in the would automatically connect rather than having to click the Connect button.
  • When hitting the + sign and creating a new entry, on the left pane the name is white on a very light grey, and barely shows up on my display. And until you enter an address, there is no line below it to show the entry, so new entries look almost invisible. Another color besides white for the title may help make this be a little more obvious (even better may be two different colors for existing entries vs "New BBS")

When pasting...

Oddly, the first space on each line is ignored. At least on shsbbs.net.

Arrow and shift...

Don't ask why I do this so often, but when the shift key is held down, arrow keys don't work.

PETSCII - Xmodem's not working + other transfer protocols needed + Save File naming

Downloading the same file in Xmodem & Xmodem 1k, they both are problematic:

rapidfire.hopto.org:64128 Archive.zip Xmodem_1k worked but Xmodem is 1kb short of completing the file. See attached example.

optical.c64bbs.nu:64128 Archive1.zip Xmodem_1k is 1kb short of completing the file and Xmodem doesn't work at all. See attached example.

optical.c64bbs.nu:64128 Archive3.zip Xmodem_1k worked but Xmodem doesn't work at all. See attached example.

Also would need punter and x-modem CRC protocols as most commodore bbs's are not using y/z modem protocols but mostly any type of x-modem and punter

Also, need either a prompt after receive save-as dialog box for naming the filename with a combobox of selectable extension names or filenames like the attached examples:

x_modem_transferred_file.0
x_modem_1k_transferred_file.0
x_modem_1k_crc_transferred_file.0
punter_transferred_file.0

Compile Error

Trying to compile runs though and will error out:

MacOS Ventura 13.5
rustc 1.71.1 (eb26296b5 2023-08-03)
cargo 1.71.1 (7f1d04c00 2023-07-29)

Output:

Compiling icy_term v0.5.0 (/Users/xxxxxx/Downloads/icy_term/icy_term)
error[E0599]: no method named from_unicode found for struct Box<(dyn BufferParser + 'static)> in the current scope
--> src/ui/main_window_mod.rs:227:50
|
227 | let translated_char = self.buffer_parser.from_unicode(ch);
| ^^^^^^^^^^^^ help: there is a method with a similar name: convert_from_unicode

error[E0599]: no method named from_unicode found for struct Box<(dyn BufferParser + 'static)> in the current scope
--> src/ui/main_window_mod.rs:242:58
|
242 | let translated_char = self.buffer_parser.from_unicode(ch);
| ^^^^^^^^^^^^ help: there is a method with a similar name: convert_from_unicode

error[E0599]: no method named from_unicode found for struct Box<(dyn BufferParser + 'static)> in the current scope
--> src/ui/main_window_mod.rs:249:58
|
249 | let translated_char = self.buffer_parser.from_unicode(ch);
| ^^^^^^^^^^^^ help: there is a method with a similar name: convert_from_unicode

error[E0599]: no method named from_unicode found for struct Box<(dyn BufferParser + 'static)> in the current scope
--> src/ui/main_window_mod.rs:496:42
|
496 | let mut cr = [self.buffer_parser.from_unicode('\r') as u8].to_vec();
| ^^^^^^^^^^^^ help: there is a method with a similar name: convert_from_unicode

error[E0599]: no method named to_unicode found for reference &dyn BufferParser in the current scope
--> src/ui/buffer_view/mod.rs:533:44
|
533 | res.push(buffer_parser.to_unicode(ch.ch));
| ^^^^^^^^^^ help: there is a method with a similar name: convert_to_unicode

error[E0599]: no method named to_unicode found for reference &dyn BufferParser in the current scope
--> src/ui/buffer_view/mod.rs:546:44
|
546 | res.push(buffer_parser.to_unicode(ch.ch));
| ^^^^^^^^^^ help: there is a method with a similar name: convert_to_unicode

error[E0599]: no method named to_unicode found for reference &dyn BufferParser in the current scope
--> src/ui/buffer_view/mod.rs:551:44
|
551 | res.push(buffer_parser.to_unicode(ch.ch));
| ^^^^^^^^^^ help: there is a method with a similar name: convert_to_unicode

error[E0599]: no method named to_unicode found for reference &dyn BufferParser in the current scope
--> src/ui/buffer_view/mod.rs:557:48
|
557 | res.push(buffer_parser.to_unicode(ch.ch));
| ^^^^^^^^^^ help: there is a method with a similar name: convert_to_unicode

error[E0599]: no method named to_unicode found for reference &dyn BufferParser in the current scope
--> src/ui/buffer_view/mod.rs:563:44
|
563 | res.push(buffer_parser.to_unicode(ch.ch));
| ^^^^^^^^^^ help: there is a method with a similar name: convert_to_unicode

error[E0599]: no function or associated item named new found for struct PETSCIIParser in the current scope
--> src/ui/screen_modes.rs:112:69
|
112 | main_window.buffer_parser = Box::new(PETSCIIParser::new());
| ^^^ function or associated item not found in PETSCIIParser

error[E0599]: no function or associated item named new found for struct AtasciiParser in the current scope
--> src/ui/screen_modes.rs:122:69
|
122 | main_window.buffer_parser = Box::new(AtasciiParser::new());
| ^^^ function or associated item not found in AtasciiParser

error[E0599]: no function or associated item named new found for struct PETSCIIParser in the current scope
--> src/address_mod.rs:160:48
|
160 | return Box::new(PETSCIIParser::new());
| ^^^ function or associated item not found in PETSCIIParser

error[E0599]: no function or associated item named new found for struct AtasciiParser in the current scope
--> src/address_mod.rs:163:48
|
163 | return Box::new(AtasciiParser::new());
| ^^^ function or associated item not found in AtasciiParser

For more information about this error, try rustc --explain E0599.
error: could not compile icy_term (bin "icy_term") due to 13 previous errors

No Control Key at C64 Mode?

How to use the Control Key at C64 Mode?

I have to press Control + A or Control + Z at my BBS to use some special commands.

Build errors

i just did git pull, cargo b - and got this. yesterday building worked :)

error[E0061]: this function takes 2 arguments but 1 argument was supplied
  --> src/ui/app.rs:41:24
   |
41 |         let mut view = BufferView::new(gl);
   |                        ^^^^^^^^^^^^^^^---- an argument of type `i32` is missing
   |
note: associated function defined here
  --> /home/groepaz/.cargo/git/checkouts/icy_engine_egui-5ebd6a3dfc87ed57/8a94ac4/src/ui/buffer_view/mod.rs:90:12
   |
90 |     pub fn new(gl: &glow::Context, filter: i32) -> Self {
   |            ^^^
help: provide the argument
   |
41 |         let mut view = BufferView::new(gl, /* i32 */);
   |                                       ~~~~~~~~~~~~~~~

error[E0308]: mismatched types
   --> src/ui/terminal_window.rs:289:41
    |
289 |         monitor_settings.selection_fg = self.screen_mode.get_selection_fg();
    |         -----------------------------   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Color32`, found `Color`
    |         |
    |         expected due to the type of this binding

error[E0308]: mismatched types
   --> src/ui/terminal_window.rs:290:41
    |
290 |         monitor_settings.selection_bg = self.screen_mode.get_selection_bg();
    |         -----------------------------   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Color32`, found `Color`
    |         |
    |         expected due to the type of this binding

Screen sizing issue

Howdy, I'm using 0.4.0, and it seems that the terminal only uses 1/4 of the space (and thus is quite small).

I'm on a MAC - see the pics:
Screenshot 2023-02-19 at 9 33 07 am
Screenshot 2023-02-19 at 9 32 31 am

Sixel raster attributes not recognized.

If I change the "pixels per sixel" attribute in a sixel file from 1 to 2 (doubling the displayed size), it does seem to be recognized in Icy Term. FYI this is the relevant excerpt from the CTerm document (note the " character precedes the attribute fields):
" p1 ; p2 [ ; p3 [ ; p4 ] ]
Raster Attributes
p1 indicates the vertical size in pixels of each
sixel. p2 indicates the horizontal size in pixels.
p3 and p4 define the height and width (in sixels)
respectively of a block to fill with the background
colour. This block may not extend past the current
bottom of the screen. If any pixel data characters
proceed this command, it is ignored.

Feature: 40 column / Wide column

I would love to see a 40 column mode for icy_term, as well as wide terminal support. Maybe settings like:
40x25
132x37 (16:9)
132x52 (5:4)
132x25

(along with maybe others?)

I have to admit I have a unique use case for this, as I'm doing testing on the Enigma BBS software for alternate screen dimensions, and would love to have another terminal with 40 column and wide term support, though I could see this useful for other people as well, especially with the wide terminal mode.

Thanks for the consideration!

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.