error[E0433]: failed to resolve: maybe a missing `extern crate sys;`?
--> C:\Users\Roy\.cargo\registry\src\github.com-1ecc6299db9ec823\termion-1.5.2\src\lib.rs:24:9
|
24 | pub use sys::size::terminal_size;
| ^^^ maybe a missing `extern crate sys;`?
error[E0433]: failed to resolve: maybe a missing `extern crate sys;`?
--> C:\Users\Roy\.cargo\registry\src\github.com-1ecc6299db9ec823\termion-1.5.2\src\lib.rs:25:9
|
25 | pub use sys::tty::{is_tty, get_tty};
| ^^^ maybe a missing `extern crate sys;`?
error[E0433]: failed to resolve: maybe a missing `extern crate sys;`?
--> C:\Users\Roy\.cargo\registry\src\github.com-1ecc6299db9ec823\termion-1.5.2\src\async.rs:5:5
|
5 | use sys::tty::get_tty;
| ^^^ maybe a missing `extern crate sys;`?
error[E0433]: failed to resolve: maybe a missing `extern crate sys;`?
--> C:\Users\Roy\.cargo\registry\src\github.com-1ecc6299db9ec823\termion-1.5.2\src\raw.rs:29:5
|
29 | use sys::attr::{get_terminal_attr, raw_terminal_attr, set_terminal_attr};
| ^^^ maybe a missing `extern crate sys;`?
error[E0432]: unresolved import `sys`
--> C:\Users\Roy\.cargo\registry\src\github.com-1ecc6299db9ec823\termion-1.5.2\src\raw.rs:28:5
|
28 | use sys::Termios;
| ^^^ maybe a missing `extern crate sys;`?
error[E0425]: cannot find function `get_tty` in this scope
--> C:\Users\Roy\.cargo\registry\src\github.com-1ecc6299db9ec823\termion-1.5.2\src\async.rs:14:36
|
14 | thread::spawn(move || for i in get_tty().unwrap().bytes() {
| ^^^^^^^ not found in this scope
error[E0425]: cannot find function `get_tty` in this scope
--> C:\Users\Roy\.cargo\registry\src\github.com-1ecc6299db9ec823\termion-1.5.2\src\async.rs:43:36
|
43 | thread::spawn(move || for i in get_tty().unwrap().bytes() {
| ^^^^^^^ not found in this scope
error[E0425]: cannot find function `set_terminal_attr` in this scope
--> C:\Users\Roy\.cargo\registry\src\github.com-1ecc6299db9ec823\termion-1.5.2\src\raw.rs:45:9
|
45 | set_terminal_attr(&self.prev_ios).unwrap();
| ^^^^^^^^^^^^^^^^^ not found in this scope
error[E0425]: cannot find function `get_terminal_attr` in this scope
--> C:\Users\Roy\.cargo\registry\src\github.com-1ecc6299db9ec823\termion-1.5.2\src\raw.rs:90:23
|
90 | let mut ios = get_terminal_attr()?;
| ^^^^^^^^^^^^^^^^^ not found in this scope
error[E0425]: cannot find function `raw_terminal_attr` in this scope
--> C:\Users\Roy\.cargo\registry\src\github.com-1ecc6299db9ec823\termion-1.5.2\src\raw.rs:93:9
|
93 | raw_terminal_attr(&mut ios);
| ^^^^^^^^^^^^^^^^^ not found in this scope
error[E0425]: cannot find function `set_terminal_attr` in this scope
--> C:\Users\Roy\.cargo\registry\src\github.com-1ecc6299db9ec823\termion-1.5.2\src\raw.rs:95:9
|
95 | set_terminal_attr(&ios)?;
| ^^^^^^^^^^^^^^^^^ not found in this scope
error[E0425]: cannot find function `set_terminal_attr` in this scope
--> C:\Users\Roy\.cargo\registry\src\github.com-1ecc6299db9ec823\termion-1.5.2\src\raw.rs:106:9
|
106 | set_terminal_attr(&self.prev_ios)?;
| ^^^^^^^^^^^^^^^^^ not found in this scope
error[E0425]: cannot find function `get_terminal_attr` in this scope
--> C:\Users\Roy\.cargo\registry\src\github.com-1ecc6299db9ec823\termion-1.5.2\src\raw.rs:111:23
|
111 | let mut ios = get_terminal_attr()?;
| ^^^^^^^^^^^^^^^^^ not found in this scope
error[E0425]: cannot find function `raw_terminal_attr` in this scope
--> C:\Users\Roy\.cargo\registry\src\github.com-1ecc6299db9ec823\termion-1.5.2\src\raw.rs:112:9
|
112 | raw_terminal_attr(&mut ios);
| ^^^^^^^^^^^^^^^^^ not found in this scope
error[E0425]: cannot find function `set_terminal_attr` in this scope
--> C:\Users\Roy\.cargo\registry\src\github.com-1ecc6299db9ec823\termion-1.5.2\src\raw.rs:113:9
|
113 | set_terminal_attr(&ios)?;
| ^^^^^^^^^^^^^^^^^ not found in this scope
error: aborting due to 15 previous errors
Some errors occurred: E0425, E0432, E0433.
For more information about an error, try `rustc --explain E0425`.
error: Could not compile `termion`.
warning: build failed, waiting for other jobs to finish...
@Byron-TW I successfully built
dua-cliv2.2.0 on Windows 10 using stable rustc 1.42.0 and thewindows-supportbranch of termion.In order to do this I added the following before the
[dependencies]inCargo.toml:Building later versions is only possible with rustc nightly. A workaround to build using rustc stable was discussed in the vector project.
Building version 2.6.0 fails due to
src/crossdev.rsnot providing the necessary functions for Windows.It is recommended to execute dua-cli in a modern Terminal, like Alacritty (which is written in Rust).
I have just released [`dua 2.9](https://github.com/Byron/dua-cli/releases/tag/v2.9.0) which should bring full windows support powered by `crossterm`.
Could you have a look and let me know how it works? I would love to close this issue 😃.
It looks like switching to crossterm as TUI backend and adjusting input handling in DUA is the way to go. Unless Termion will one day be ported to Windows.
As a possible solution, I replaced termion with crossterm for a TUI application and it now works on Windows.
Thanks for pushing forward on windows support @Byron! 🎉
I haven’t fully tested it, but it’s now compiling and seems, on first blush, to be working correctly.
As noted,
dua ishows size as0for subdirectories (and all files within those directories are shown as0size). At the same time though, a simpleduadoes seem to show the correct size for files and subdirectories. I’ll follow-up on #53 to see if I can help track down the problem.I created a PR (#60) that fixes a couple of compiler warnings and adds the usually expected wildcard support (for windows).
There is a test error which appears to be some single byte size differences in
EntryData…@Byron-TW https://gitlab.redox-os.org/redox-os/termion/issues/139 this lib doesn’t support windows … Supports Redox, Mac OS X, BSD, and Linux (or, in general, ANSI terminals). aha~