Coder Social home page Coder Social logo

fsrx's Introduction

fsrx

๐Ÿ“š(f)low (s)tate (r)eading e(x)change โ€“ย flow state reading in the terminal

GitHub CI Workflow GitHub Deploy Workflow License Crate Version Github Stars

demo

Inspired by (but not affiliated with) Renato Casutt and his revolutionary work on Bionic Reading.

Usage

For detailed usage run fsrx -h.

fsrx 1.0.2
Colby Thomas <[email protected]>
๐Ÿ“š(f)low (s)tate (r)eading e(x)change
flow state reading in the terminal

USAGE:
    fsrx [OPTIONS] [PATH]

ARGS:
    <PATH>    path to file (or supply input via stdin)

OPTIONS:
    -c, --contrast               high contrast
    -f, --fixation <FIXATION>    fixation intensity [default: m] [possible values: l, m, h]
    -h, --help                   Print help information
    -s, --saccade <SACCADE>      saccade intensity [default: h] [possible values: l, m, h]
    -V, --version                Print version information

Examples

$ echo "the quick brown fox jumps over the lazy dog" | fsrx
$ fsrx input.txt | less
$ fmt -w60 input.txt | fsrx -c -fh -sl

Installation

Cargo

$ cargo install fsrx

Homebrew

incoming @ homebrew-fsrx

Arch Linux

fsrx via the AUR

NetBSD

fsrx from the official repositories

Contributing

All contributions are greatly appreciated. Please keep in mind this project is meant to be as lightweight as possible, so not every idea will be considered.

If you have a suggestion that would make fsrx better, please fork the repo and create a pull request. You can also simply open an issue and select Feature Request

  1. Fork the repo
  2. Create your feature branch (git checkout -b [your_username]/xyz)
  3. Commit your changes (git commit -m 'add some xyz')
  4. Rebase off main (git fetch --all && git rebase origin/main)
  5. Push to your branch (git push origin [your_username]/xyz)
  6. Fill out pull request template

See the open issues for a full list of proposed features (and known issues).

License

Distributed under the MIT License. See LICENSE.md for more information.

Follow

github twitter youtube

fsrx's People

Contributors

0323pin avatar coloradocolby avatar jrnxf avatar micwoj92 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

fsrx's Issues

Nix Package

Hey, first of all I wanted to thank you for this awesome application.
Secondly, I just wanted to let you know that I recently packaged fsrx for nix. Perhaps you could add a small note to the README, so other nix users could know that it is packaged and ready to go.

"thread 'main' panicked at 'failed printing to stdout: Broken pipe (os error 32)" when writing to a pipe

Description

I've worked out how to use fsrx to speed up my reading of manpages. However, intermittently, I get an error when closing the pager.

$ echo "$MANPAGER"
col -bx | fsrx | ifne less -R
$ RUST_BACKTRACE="full" man man
thread 'main' panicked at 'failed printing to stdout: Broken pipe (os error 32)', library/std/src/io/stdio.rs:1016:9
stack backtrace:
   0:        0x10032b60c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::ha610dc96df5533b5
   1:        0x10033dab8 - core::fmt::write::h85a0222d7173f527
   2:        0x100318834 - std::io::Write::write_fmt::h1e81e1aae1f60926
   3:        0x100320564 - std::panicking::default_hook::{{closure}}::hafcdd34daa6aee47
   4:        0x100320228 - std::panicking::default_hook::hbdef0c99978ce86d
   5:        0x100320a78 - std::panicking::rust_panic_with_hook::he857adbde651a96b
   6:        0x10032bbcc - std::panicking::begin_panic_handler::{{closure}}::h78d4b95de3b3c015
   7:        0x10032b720 - std::sys_common::backtrace::__rust_end_short_backtrace::h948efd9d51b5e877
   8:        0x100320678 - _rust_begin_unwind
   9:        0x10034a1d0 - core::panicking::panic_fmt::h4c391ad4ab25a9e0
  10:        0x100312004 - std::io::stdio::_print::hff0a1d2b7e1a5800
  11:        0x10026ab8c - fsrx::main::h55fca34d33cf796a
  12:        0x10026e77c - std::sys_common::backtrace::__rust_begin_short_backtrace::h389c28ebd38b79bf
  13:        0x10026e79c - std::rt::lang_start::{{closure}}::hcd3d64d5e1b5843b
  14:        0x100318288 - std::rt::lang_start_internal::h0a14a326db0de5c9
  15:        0x10026b72c - _main
$

Expected behavior

Everything works as desired except for the error at the end.

Environment

  • OS: macOS-12.4
  • Terminal Emulator: kitty
  • Font: Iosevka Custom
  • fsrx version: 1.0.2

Requesting documentation for some suggested compatible color settings

Problem

Some terminal themes slightly or greatly obscure the effect.

Hoping to request guidance at least for which settings could help replicate the awesome readme image : )

Solution

Examples of color settings, possibly hex codes for font, bold-font, and background for reproducing the readme image.

Newlines stripped when reading STDIN

Description

When the file is provided as an argument, the newlines are handled correctly. But when fsrx reads from standard input the newlines are stripped away.

To Reproduce

$ fsrx .bashrc # as expected
$ cat .bashrc | fsrx # a mess

Expected behavior

The newline handling should be consistent between those two methods.

Screenshots

screenshot_54628065

Additional context

Fixing this would make it possible to use fmt to reflow incoming text to a managable width, like so:

$ fmt -w 60 long_lines.txt | fsrx | less -R

Right now the newlines created by fmt are deleted.

AUR Package

Hello,

I started using the project (thank you!) and also packaged it to Arch User Repository

Arch Linux user can simply;

paru -S fsrx-git

Or using any other AUR helper they use. This can be added to the README.md if you'd like.

The -git tag (sorry if you already know this) says that the package tracks this repository directly. AUR Submission Guidelines says that the fsrx package can be submitted to AUR when there's an official release on upstream (here). On a potential fsrx, the AUR package will download the release .tar.gz (instead of cloning the repository) and build the package using that.

Currently the repository is using prereleases, if you'd like you can start releasing full releases (feedback: as far as I can tell the program is stable and ready for use) and that can be packaged as well

Cheers

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.