meh / cancer

It's terminal.
GNU General Public License v3.0
130 stars 12 forks source link

Future rebirth. #23

Open meh opened 4 years ago

meh commented 4 years ago

Since this thing bitrot I've been miring libraries to use for the next iteration.

Graphics

Pathfinder + luminance

Makes it simple to add ReGIS support (and then add an extension to draw SVGs using the same protocol).

Makes it simple to add Sixel support (and then add an extension for RGBA colors).

Makes it simple to add fancy shaders or whatever.

I/O

smol and async/await from the start because reasons.

avdb13 commented 1 year ago

Any progress on this? Tried installing this today but got the following error:

error[E0432]: unresolved imports `xkb_context`, `xkb_keymap`, `xkb_state`, `xkb_keymap_compile_flags`
  --> /home/mikoto/.cargo/registry/src/github.com-1ecc6299db9ec823/xkbcommon-sys-0.7.5/src/x11.rs:16:8
   |
16 | use ::{xkb_context, xkb_keymap, xkb_state, xkb_keymap_compile_flags};
   |        ^^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^ no external crate `xkb_keymap_compile_flags`
   |        |            |           |
   |        |            |           no external crate `xkb_state`
   |        |            no external crate `xkb_keymap`
   |        no external crate `xkb_context`
ctrlcctrlv commented 1 year ago

@avdb13 I wasted embarrassing amount of time on this out of sheer curiosity as well. You're right, it's extremely difficult to compile.

I've almost cracked it, but can't figure out why the select! macro is not in nightly-2019-08-01.

error: cannot find macro `select!` in this scope
   --> src/platform/x11/window.rs:171:4
    |
171 |             select! {
    |             ^^^^^^

error: cannot determine resolution for the macro `select`
   --> src/main.rs:306:5
    |
306 |                 select! {
    |                 ^^^^^^
    |
    = note: import resolution is stuck, try simplifying macro imports

If anyone else wants to try I recommend forcing specific versions in Cargo.toml and using rustup to install nightly-2019-08-01-x86_64-unknown-linux-gnu.

diff --git a/Cargo.toml b/Cargo.toml
index 3f51c71..1bf1732 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -18,33 +18,34 @@ panic = "abort"
 pkg-config = "0.3"

 [dependencies]
-log        = "0.4"
-env_logger = "0.5"
-
-libc          = "0.2"
-bitflags      = "0.9"
-bit-vec       = "0.5"
-fnv           = "1.0"
-lru-cache     = "0.1"
-shlex         = "0.1"
-schedule_recv = "0.1"
-itertools     = "0.7"
-picto         = { version = "0.4", default-features = false }
-control-code  = "0.7"
-
-clap     = "2"
-app_dirs = "1.1"
-toml     = "0.4"
-regex    = "1"
-
-unicode-segmentation = "1.0"
-unicode-width        = "0.1"
-tendril              = "0.4"
+log        = "=0.4.2"
+env_logger = "=0.5.0"
+
+libc          = "=0.2.35"
+bitflags      = "=0.9.0"
+bit-vec       = "=0.5.0"
+fnv           = "=1.0.0"
+lru-cache     = "=0.1.0"
+shlex         = "=0.1.0"
+schedule_recv = "=0.1.0"
+itertools     = "=0.7.0"
+picto         = { version = "=0.4.0", default-features = false }
+control-code  = "=0.7.0"
+
+clap     = "=2.21.1"
+app_dirs = "=1.1.0"
+toml     = "=0.4.6"
+regex    = "=0.2.0"
+crossbeam-channel = "0.4"
+
+unicode-segmentation = "=0.1.2"
+unicode-width        = "=0.1.5"
+tendril              = "=0.4.0"

 [target.'cfg(all(unix, not(target_os = "macos")))'.dependencies]
 xcb       = { version = "0.8", features = ["xkb", "thread"] }
 xcb-util  = { version = "0.2", features = ["icccm", "ewmh", "thread"] }
-xkb       = { version = "0.2", features = ["x11"] }
+xkb       = { version = "=0.2.0", features = ["x11"] }

 [target.'cfg(target_os = "macos")'.dependencies]
 objc            = "0.2"