๐Ÿ‘พ Modern and minimalist pixel editor

Overview
        โ–ˆโ–ˆ โ–ˆโ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆ โ–ˆโ–ˆ
         โ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆ  โ–ˆโ–ˆโ–ˆ
         โ–ˆโ–ˆ     โ–ˆโ–ˆ โ–ˆโ–ˆ
         โ–ˆโ–ˆ    โ–ˆโ–ˆ   โ–ˆโ–ˆ


    `rx` is a modern and minimalist pixel editor.

  Designed with great care and love
    with pixel artists and animators in mind.

OVERVIEW

  `rx` is an extensible, modern and minimalist pixel editor implemented
  in rust[0]. rx is free software, licensed under the GPLv3.

  Most of the information on how to use rx is on the website:
  https://rx.cloudhead.io. There, you can also find a user guide
  (https://rx.cloudhead.io/guide.html), installation instructions,
  and binary download links.

  For discussions, join the community: https://rx.cloudhead.io/#community.

  To build rx from source, see the build sections below.

  Once inside rx, enter the `:help` command to get a list of key bindings
  and commands.

  [0]: https://rust-lang.org

REQUIREMENTS

  At a minimum, OpenGL 3.3 support is required.

BUILD DEPENDENCIES

  * rust (https://www.rust-lang.org/tools/install)
  * cmake (https://cmake.org/download/)

  On macOS, `Xcode` and the `Xcode Command Line Tools` are required.
  The latter can be obtained by running `xcode-select --install`
  CMake can be installed with `brew install cmake`.

BUILD & INSTALLATION

  Before proceeding, make sure the BUILD DEPENDENCIES have been installed.

  Then, clone this repository and from its root, run:

    $ cargo install --locked --path .

  This will install rx under `~/.cargo/bin/rx`.  If you prefer a different
  install location, you can specify it via the `--root <prefix>` flag, where
  <prefix> is for example '/usr/local'.

CONTRIBUTING

  See the CONTRIBUTING file for details. Contributions are appreciated.

USAGE

  See the guide at https://rx.cloudhead.io/guide.html.

TROUBLESHOOTING

  If something isn't working like it's supposed to, there are various things
  you can do to debug the problem:

  * Run `rx` with verbose logging, by using the `-v` command-line flag. This
    will log errors from the underlying libraries that are usually suppressed,
    and will show debug output that might indicate what the problem is.
  * If `rx` is crashing, run it with `RUST_BACKTRACE=1` set in your environment
    to show a backtrace on crash.
  * It could be that the issue is related to your configuration - in that case
    the program can be run without loading the initialization script like so:

        rx -u -

LICENSE

  This software is licensed under the GPL. See the LICENSE file for more details.

COPYRIGHT

  (c) 2019 Alexis Sellier
Comments
  • Modifier keys + different keyboard layouts causing issues with keymappings

    Modifier keys + different keyboard layouts causing issues with keymappings

    Related to #18

    Windows 10, compiled with 1.38 stable. (--vulkan feature flag)

    rx does not go into command mode when writing : using a Swedish/Nordic keyboard layout (Shift + Period) and instead zooms in one level.

    It seems to recieve a colon in the RecievedCharacter event, but the KeyboardInput contains a period.

    Logs:

    [2019-09-30T13:57:01Z DEBUG rx] event: KeyboardInput(KeyboardInput { state: Pressed, key: Some(Shift), modifiers: ModifiersState { shift: true, ctrl: false, alt: false, meta: false } })
    [2019-09-30T13:57:01Z DEBUG rx::session] KeyboardInput { state: Pressed, key: Some(Shift), modifiers: ModifiersState { shift: true, ctrl: false, alt: false, meta: false } }
    [2019-09-30T13:57:01Z DEBUG rx::session] command: BrushSet(Multi)
    [2019-09-30T13:57:02Z DEBUG rx] event: KeyboardInput(KeyboardInput { state: Pressed, key: Some(Period), modifiers: ModifiersState { shift: true, ctrl: false, alt: false, meta: false } })
    [2019-09-30T13:57:02Z DEBUG rx] event: ReceivedCharacter(':')
    [2019-09-30T13:57:02Z DEBUG rx::session] KeyboardInput { state: Pressed, key: Some(Period), modifiers: ModifiersState { shift: true, ctrl: false, alt: false, meta: false } }
    [2019-09-30T13:57:02Z DEBUG rx::session] command: Zoom(Incr)
    [2019-09-30T13:57:02Z DEBUG rx::session] zoom: 1 -> 2
    [2019-09-30T13:57:02Z DEBUG rx] event: KeyboardInput(KeyboardInput { state: Released, key: Some(Period), modifiers: ModifiersState { shift: true, ctrl: false, alt: false, meta: false } })
    [2019-09-30T13:57:02Z DEBUG rx::session] KeyboardInput { state: Released, key: Some(Period), modifiers: ModifiersState { shift: true, ctrl: false, alt: false, meta: false } }
    [2019-09-30T13:57:02Z DEBUG rx] event: KeyboardInput(KeyboardInput { state: Released, key: Some(Shift), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } })
    [2019-09-30T13:57:02Z DEBUG rx::session] KeyboardInput { state: Released, key: Some(Shift), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } }
    [2019-09-30T13:57:02Z DEBUG rx::session] command: BrushUnset(Multi)
    
    type:bug 
    opened by tollyx 13
  • Frame cloning and sync editing

    Frame cloning and sync editing

    Full copying and pasting ability would be very useful ofc and I'm sure it's on the roadmap, but in the meantime two features would help a lot with the animation process:

    • Frame cloning: add a new frame at the end (or even in the middle) with contents copied from another frame. Maybe a f/clone command with frame index?
    • Synchronous editing: propagate edits in a single frame to one or more other frames.

    Maybe I can add the features myself and open some PRs if you like the idea? Let me know. Thank you for building and sharing this project, looks really promising and it's pleasing to use.

    type:enhancement 
    opened by fbbdev 13
  • MacOS M1: GLFW Runtime Error

    MacOS M1: GLFW Runtime Error

    Cloning master and building with cargo install --locked --path . and running the resulting binary results in a blank window and the following error: GLFW Error: Cocoa: Failed to find service port for display. Building from the stable branch as on the website using:

    cargo install \
        --git https://github.com/cloudhead/rx \
        --tag v0.4.0
    

    Does not result in this error, the only thing I found related to this issue was the following GLFW issue that was fixed earlier this year: https://github.com/bjornbytes/lovr/pull/357

    opened by DavidCromp 12
  • Implement selection flipping

    Implement selection flipping

    Hi, this is my humble attempt at implementing the functionality to flip a selection. It was once again a pleasant experience as I really like the structure of the code, but I'm not sure if I'm doing it "idiomatically".

    Here is a demonstration of how it looks: flip.gif (yea, the colors are screwed because it's a gif, here's a webm for more pleasant viewing -> flip.webm)

    This is what I did for these changes:

    1. create a command selection/flip which takes one argument of direction, valid values are h or horizontal and v or vertical.
    2. then I created a ViewOp for flip and went to gl/mod.rs to create an implementation. It's pretty much a yank, which also takes direction as an argument and then flips the pixels accordingly
    3. In session.rs, I added appropriate functions taking yank as example. To allow possibly doing a bunch of flips with a hotkey, I figured the easiest would be doing it in the place of selection, so I did this:
                Command::SelectionFlip(dir) => {
                    self.flip_selection(dir);
                    // I think its handy to flip in place for now, hence these commands
                    // 1., 2. prevent overlap and paste
                    // 3.     preserve location so you can flip repeatedly w/ hotkey
                    self.command(Command::SelectionErase);
                    self.command(Command::SelectionPaste);
                    self.command(Command::Mode(Mode::Visual(VisualState::Selecting { dragging: false })));
                }
    

    I'm really unsure if this is the correct way to do it, so I am sorry if I did something wrong, haha :sweat_smile:

    opened by luciusmagn 11
  • "gl" feature seems to be missing.

    thread 'main' panicked at 'No adapters found. Please enable the feature for one of the graphics backends: vulkan, metal, dx12, dx11, gl', src/libcore/option.rs:1166:5

    "gl"

    cargo install --force --git https://github.com/cloudhead/rx --locked --features gl

    Packagerx v0.1.0 (https://github.com/cloudhead/rx#465f95f4)does not have these features:gl``

    topic:backend 
    opened by vi 11
  • crash on open with linux

    crash on open with linux

    cargo install --git https://github.com/cloudhead/rx --locked
    
     โ–ณ ~ RUST_BACKTRACE=full rx -u -
    [2019-11-17T19:15:33Z INFO  rx] framebuffer size: 1280x720
    [2019-11-17T19:15:33Z INFO  rx] hidpi factor: 2.2999980449676514
    [2019-11-17T19:15:33Z INFO  rx::session] rx v0.2.0
    thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', src/libcore/option.rs:378:21
    stack backtrace:
       0:     0x556f5ce1c524 - backtrace::backtrace::libunwind::trace::hda41dbcdfba36aa0
                                   at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.37/src/backtrace/libunwind.rs:88
       1:     0x556f5ce1c524 - backtrace::backtrace::trace_unsynchronized::h1a8d6e1f8cb3f5d4
                                   at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.37/src/backtrace/mod.rs:66
       2:     0x556f5ce1c524 - std::sys_common::backtrace::_print_fmt::h610c4127487e10da
                                   at src/libstd/sys_common/backtrace.rs:76
       3:     0x556f5ce1c524 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h0722dc552e01bd1d
                                   at src/libstd/sys_common/backtrace.rs:60
       4:     0x556f5ce3d21c - core::fmt::write::h01edf6dd68a42c9c
                                   at src/libcore/fmt/mod.rs:1030
       5:     0x556f5ce19087 - std::io::Write::write_fmt::hf15985f193f03c04
                                   at src/libstd/io/mod.rs:1412
       6:     0x556f5ce1e7d5 - std::sys_common::backtrace::_print::hd8d5d08a1795e743
                                   at src/libstd/sys_common/backtrace.rs:64
       7:     0x556f5ce1e7d5 - std::sys_common::backtrace::print::hf89a79e3921a2366
                                   at src/libstd/sys_common/backtrace.rs:49
       8:     0x556f5ce1e7d5 - std::panicking::default_hook::{{closure}}::h3a8f42beb3bb8ae3
                                   at src/libstd/panicking.rs:196
       9:     0x556f5ce1e4c6 - std::panicking::default_hook::h8f803b0bc31a5c37
                                   at src/libstd/panicking.rs:210
      10:     0x556f5ce1ee75 - std::panicking::rust_panic_with_hook::h825f041245da8739
                                   at src/libstd/panicking.rs:473
      11:     0x556f5ce1ea12 - std::panicking::continue_panic_fmt::hbe0378e33481e81b
                                   at src/libstd/panicking.rs:380
      12:     0x556f5ce1e906 - rust_begin_unwind
                                   at src/libstd/panicking.rs:307
      13:     0x556f5ce3931a - core::panicking::panic_fmt::h527855ce0bc891f6
                                   at src/libcore/panicking.rs:85
      14:     0x556f5ce39259 - core::panicking::panic::h2f49f09cf859b728
                                   at src/libcore/panicking.rs:49
      15:     0x556f5cd5f86f - wgpu_request_adapter
      16:     0x556f5cd5a4b7 - wgpu::Adapter::request::hc06a386463c80c30
      17:     0x556f5cc265bc - rx::init::h3fab2ab361ffb234
      18:     0x556f5cc343e8 - rx::main::ha967765a9e31cdfc
      19:     0x556f5cc1d013 - std::rt::lang_start::{{closure}}::hc4ee2151b7bf7afb
      20:     0x556f5ce1e8a3 - std::rt::lang_start_internal::{{closure}}::ha04574f12d97cbe2
                                   at src/libstd/rt.rs:49
      21:     0x556f5ce1e8a3 - std::panicking::try::do_call::h7c2a8488f72db90c
                                   at src/libstd/panicking.rs:292
      22:     0x556f5ce214fa - __rust_maybe_catch_panic
                                   at src/libpanic_unwind/lib.rs:80
      23:     0x556f5ce1f36d - std::panicking::try::hc3a9b5da4250385d
                                   at src/libstd/panicking.rs:271
      24:     0x556f5ce1f36d - std::panic::catch_unwind::hf27600bf8c37809a
                                   at src/libstd/panic.rs:394
      25:     0x556f5ce1f36d - std::rt::lang_start_internal::h409d4f2fe51133b0
                                   at src/libstd/rt.rs:48
      26:     0x556f5cc34a22 - main
      27:     0x7f637cacab97 - __libc_start_main
      28:     0x556f5cc1b2ca - _start
      29:                0x0 - <unknown>
    
    platform:linux topic:backend 
    opened by jedahan 10
  • macOS fullscreen laggy

    macOS fullscreen laggy

    When going fullscreen on macOS moving the cursor becomes super slow. Weirdly this issue doesn't happen while screen recording is happening via QuickTime : D

    Proof.

    The package was built via:

    rx ยป cargo install --git https://github.com/cloudhead/rx --tag v0.2.0 --locked --features metal
        Updating git repository `https://github.com/cloudhead/rx`
      Installing rx v0.2.0 (https://github.com/cloudhead/rx?tag=v0.2.0#a296ebf4)
        Updating git repository `https://github.com/cloudhead/rendy`
        Updating crates.io index
      Downloaded directories v2.0.2
      Downloaded png v0.15.0
      Downloaded raw-window-handle v0.1.2
      Downloaded gif v0.10.2
      Downloaded deflate v0.7.20
      Downloaded dirs-sys v0.3.4
      Downloaded rgx v0.1.5
      Downloaded inflate v0.4.5
      Downloaded glfw v0.32.0
      Downloaded color_quant v1.0.1
      Downloaded snap v0.2.5
      Downloaded lzw v0.10.0
      Downloaded adler32 v1.0.3
      Downloaded objc v0.2.6
      Downloaded glfw-sys v3.3.0
      Downloaded wgpu v0.3.0
      Downloaded malloc_buf v0.0.6
      Downloaded objc_exception v0.1.1
      Downloaded zerocopy v0.2.8
      Downloaded wgpu-native v0.3.3
      Downloaded gcc v0.3.55
      Downloaded cmake v0.1.41
      Downloaded gfx-backend-empty v0.3.0
      Downloaded gfx-backend-metal v0.3.0
      Downloaded gfx-hal v0.3.0
      Downloaded rendy-descriptor v0.4.0
      Downloaded hibitset v0.6.2
      Downloaded backtrace v0.3.34
      Downloaded colorful v0.2.1
      Downloaded derivative v1.0.2
      Downloaded relevant v0.4.2
      Downloaded zerocopy-derive v0.1.4
      Downloaded fxhash v0.2.1
      Downloaded cc v1.0.40
      Downloaded foreign-types v0.3.2
      Downloaded block v0.1.6
      Downloaded cocoa v0.18.4
      Downloaded range-alloc v0.1.0
      Downloaded storage-map v0.2.0
      Downloaded foreign-types-shared v0.1.1
      Downloaded core-graphics v0.17.3
      Downloaded metal v0.15.0
      Downloaded objc-foundation v0.1.1
      Downloaded atom v0.3.5
      Downloaded spirv_cross v0.15.0
      Downloaded objc_id v0.1.1
       Compiling proc-macro2 v0.4.30
       Compiling libc v0.2.62
       Compiling unicode-xid v0.1.0
       Compiling gcc v0.3.55
       Compiling syn v0.15.44
       Compiling cc v1.0.40
       Compiling semver-parser v0.7.0
       Compiling core-foundation-sys v0.6.2
       Compiling bitflags v1.1.0
       Compiling foreign-types-shared v0.1.1
       Compiling byteorder v1.3.2
       Compiling failure_derive v0.1.5
       Compiling rustc-demangle v0.1.16
       Compiling cfg-if v0.1.9
       Compiling log v0.4.8
       Compiling memchr v2.2.1
       Compiling block v0.1.6
       Compiling arrayvec v0.4.11
       Compiling smallvec v0.6.10
       Compiling scopeguard v1.0.0
       Compiling atom v0.3.5
       Compiling nodrop v0.1.13
       Compiling gfx-backend-metal v0.3.0
       Compiling copyless v0.1.4
       Compiling colorful v0.2.1
       Compiling range-alloc v0.1.0
       Compiling slab v0.4.2
       Compiling autocfg v0.1.5
       Compiling lazy_static v1.3.0
       Compiling crc32fast v1.2.0
       Compiling regex-syntax v0.6.11
       Compiling quick-error v1.2.2
       Compiling vec_map v0.8.1
       Compiling adler32 v1.0.3
       Compiling unicode-width v0.1.5
       Compiling termcolor v1.0.5
       Compiling color_quant v1.0.1
       Compiling lzw v0.10.0
       Compiling semver v0.9.0
       Compiling foreign-types v0.3.2
       Compiling cmake v0.1.41
       Compiling lock_api v0.3.1
       Compiling hibitset v0.6.2
       Compiling thread_local v0.3.6
       Compiling humantime v1.2.0
       Compiling inflate v0.4.5
       Compiling textwrap v0.11.0
       Compiling gif v0.10.2
       Compiling rustc_version v0.2.3
       Compiling num-traits v0.2.8
       Compiling storage-map v0.2.0
       Compiling objc_exception v0.1.1
       Compiling parking_lot_core v0.6.2
       Compiling parking_lot v0.9.0
       Compiling clap v2.33.0
       Compiling malloc_buf v0.0.6
       Compiling core-foundation v0.6.4
       Compiling raw-window-handle v0.1.2
       Compiling atty v0.2.13
       Compiling dirs-sys v0.3.4
       Compiling quote v0.6.13
       Compiling fxhash v0.2.1
       Compiling deflate v0.7.20
       Compiling snap v0.2.5
       Compiling aho-corasick v0.7.6
       Compiling directories v2.0.2
       Compiling core-graphics v0.17.3
       Compiling backtrace-sys v0.1.31
       Compiling spirv_cross v0.15.0
       Compiling glfw-sys v3.3.0
       Compiling png v0.15.0
       Compiling regex v1.2.1
       Compiling objc v0.2.6
       Compiling objc_id v0.1.1
       Compiling cocoa v0.18.4
       Compiling env_logger v0.6.2
       Compiling objc-foundation v0.1.1
       Compiling synstructure v0.10.2
       Compiling backtrace v0.3.34
       Compiling metal v0.15.0
       Compiling relevant v0.4.2
       Compiling glfw v0.32.0
       Compiling derivative v1.0.2
       Compiling zerocopy-derive v0.1.4
       Compiling failure v0.1.5
       Compiling gfx-hal v0.3.0
       Compiling zerocopy v0.2.8
       Compiling rendy-memory v0.4.0 (https://github.com/cloudhead/rendy#e08b64fb)
       Compiling rendy-descriptor v0.4.0
       Compiling gfx-backend-empty v0.3.0
       Compiling wgpu-native v0.3.3
       Compiling wgpu v0.3.0
       Compiling rgx v0.1.5
       Compiling rx v0.2.0 (https://github.com/cloudhead/rx?tag=v0.2.0#a296ebf4)
        Finished release [optimized] target(s) in 3m 14s
      Installing /Users/rudolfs/.cargo/bin/rx
       Installed package `rx v0.2.0 (https://github.com/cloudhead/rx?tag=v0.2.0#a296ebf4)` (executable `rx`)
    
    type:bug platform:macOS 
    opened by rudolfs 10
  • Segmentation fault

    Segmentation fault

    Windows 10 build crashes with SegFault:

    rx$ cargo run
        Finished dev [unoptimized + debuginfo] target(s) in 0.14s
         Running `target\debug\rx.exe`
    [2019-11-07T21:23:56Z INFO  rx::session] rx v0.2.0
    error: process didn't exit successfully: `target\debug\rx.exe` (exit code: 0xc0000005, STATUS_ACCESS_VIOLATION)
    Segmentation fault
    

    Windows information

    OS Name:                   Microsoft Windows 10 Home
    OS Version:                10.0.18362 N/A Build 18362
    

    Rust toolchain details

    Default host: x86_64-pc-windows-msvc
    rustup home:  C:\Users\pavlo\.rustup
    
    installed toolchains
    --------------------
    
    stable-x86_64-pc-windows-gnu
    stable-x86_64-pc-windows-msvc (default)
    nightly-x86_64-pc-windows-msvc
    
    active toolchain
    ----------------
    
    stable-x86_64-pc-windows-msvc (default)
    rustc 1.39.0 (4560ea788 2019-11-04)
    
    type:bug platform:windows 
    opened by zzFluke 9
  • Adding the option to save and load .bmp images

    Adding the option to save and load .bmp images

    I saw your project on HN and was inspired to try writing in Rust and making some contributions to your nifty pixel editor.

    Specifically, this PR adds the option to load and save bitmap image files using the image crate library. The way this is handled is that this checks if the file suffix is .bmp during save and load.

    I have ran some quick tests on my system and it seems to work, but let me know what you think.

    Thanks again :)

    opened by rbisewski 9
  • Can't go into command mode due to the way input is received

    Can't go into command mode due to the way input is received

    In my country's layout (and US english too I think) I write colon by shift-. but rx doesn't register it as a colon, but by pressing and releasing shift and period, so I can't enter command mode :(

    • version used: latest from repository
    • target triplet: x86_64-pc-linux-gnu
    • OS: Artix Linux (s6) 64-bit
    • WM: dwm (so Xorg)
    output from verbose logging
    DEBUG [rx::session] command: BrushUnset(Multi)
    DEBUG [rx] event: KeyboardInput(KeyboardInput { state: Pressed, key: Some(Shift), modifiers: ModifiersState { shift: false, ctrl: false, alt: false, meta: false } })
    DEBUG [rx::session] command: BrushSet(Multi)
    DEBUG [rx] event: KeyboardInput(KeyboardInput { state: Pressed, key: Some(Period), modifiers: ModifiersState { shift: true, ctrl: false, alt: false, meta: false } })
    DEBUG [rx] event: ReceivedCharacter(':')
    

    (it says received character :, but it's not switching to command mode)

    type:bug 
    opened by luciusmagn 8
  • Framebuffer size is incorrect on Linux with HiDPI display

    Framebuffer size is incorrect on Linux with HiDPI display

    I've created a new issue so we could figure this one out on here. Could you remind me which line I should edit to better test the cursor positioning bug. I use a wacom intuos 3 tablet btw.

    Issue

    When I move over the canvas with the wacom pencil, there is an offset from the screen position, and the canvas position.

    Screenshot from 2020-01-06 14-42-28@2x

    type:bug platform:linux 
    opened by neauoire 8
  • RX wont open, installed from cargo

    RX wont open, installed from cargo

    This is the rust backtrace thread 'main' panicked at 'called Option::unwrap() on a None value', C:\Users\notar.cargo\registry\src\github.com-1ecc6299db9ec823\wgpu-native-0.4.3\src\instance.rs:474:5 stack backtrace:

    opened by PotBor 1
  • Add status line trimming

    Add status line trimming

    Fix/basic implementation of #112. Automatically pulls characters from the status string and replaces them with "...". This method does have the downside of showing the full status string if the window is resized small enough, however I presume the average user isn't going to be doing this, so it shouldn't matter.

    Important to note that this is not configurable currently, but configurable behavior could be feasibly added on in the future.

    opened by dstettler 0
  • Remove `mutable_borrow_reservation_conflict` allow

    Remove `mutable_borrow_reservation_conflict` allow

    warning: lint `mutable_borrow_reservation_conflict` has been removed: now allowed, see issue #59159 <https://github.com/rust-lang/rust/issues/59159> for more information
        --> src/session.rs:2681:21
         |
    2681 |             #[allow(mutable_borrow_reservation_conflict)]
         |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
         |
         = note: `#[warn(renamed_and_removed_lints)]` on by default
    
    warning: `rx` (lib) generated 1 warning
    

    This lint has been removed. See https://github.com/rust-lang/rust/issues/59159. This removes the allow for this now non-existent lint. ๐Ÿ˜ƒ

    opened by jason-h-35 0
  • Handle delete key in cmdline

    Handle delete key in cmdline

    If there is a character after the cursor delete that, otherwise delete the current character.

    If the deletion should be only delete the character after the cursor these change must be made:

        fn cmdline_handle_delete(&mut self) {
            if self.cmdline.cursor_forward().is_some() {
                self.cmdline.delc();
            }
    
            if self.cmdline.is_empty() {
                self.cmdline_hide();
            }
        }
    
    opened by bynect 0
  • Bump generic-array from 0.12.3 to 0.12.4

    Bump generic-array from 0.12.3 to 0.12.4

    Bumps generic-array from 0.12.3 to 0.12.4.

    Changelog

    Sourced from generic-array's changelog.

    • 0.12.4

      • Fix unsoundness in the arr! macro.
    • 0.12.0

      • Allow trailing commas in arr! macro.
      • BREAKING: Serialize GenericArray using serde tuples, instead of variable-length sequences. This may not be compatible with old serialized data.
    • 0.11.0

      • BREAKING Redesign GenericSequence with an emphasis on use in generic type parameters.
      • Add MappedGenericSequence and FunctionalSequence
        • Implements optimized map, zip and fold for GenericArray, &GenericArray and &mut GenericArray
      • BREAKING Remove map_ref, zip_ref and map_slice
        • map_slice is now equivalent to GenericArray::from_iter(slice.iter().map(...))
    • 0.10.0

      • Add GenericSequence, Lengthen, Shorten, Split and Concat traits.
      • Redefine transmute to avert errors.
    • 0.9.0

      • Rewrite construction methods to be well-defined in panic situations, correctly dropping elements.
      • NoDrop crate replaced by ManuallyDrop as it became stable in Rust core.
      • Add optimized map/map_ref and zip/zip_ref methods to GenericArray
    • 0.8.0

      • Implement AsRef, AsMut, Borrow, BorrowMut, Hash for GenericArray
      • Update serde to 1.0
      • Update typenum
      • Make macro arr! non-cloning
      • Implement From<[T; N]> up to N=32
      • Fix #45
    • 0.7.0

      • Upgrade serde to 0.9
      • Make serde with no_std
      • Implement PartialOrd/Ord for GenericArray
    • 0.6.0

      • Fixed #30
      • Implement Default for GenericArray
      • Implement LowerHex and UpperHex for GenericArray<u8, N>
      • Use precision formatting field in hex representation
      • Add as_slice, as_mut_slice
      • Remove GenericArray::new in favor of Default trait
      • Add from_slice and from_mut_slice
      • no_std and core for crate.
    • 0.5.0

      • Update serde
      • remove no_std feature, fixed #19
    • 0.4.0

      • Re-export typenum
    • 0.3.0

      • Implement IntoIter for GenericArray
      • Add map method
      • Add optional serde (de)serialization support feature.
    • < 0.3.0

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
Owner
Alexis Sellier
/dev/fnord
Alexis Sellier
Distributed compute platform implemented in Rust, and powered by Apache Arrow.

Ballista: Distributed Compute Platform Overview Ballista is a distributed compute platform primarily implemented in Rust, powered by Apache Arrow. It

Ballista 2.3k Jan 3, 2023
A secure JavaScript and TypeScript runtime

Deno Deno is a simple, modern and secure runtime for JavaScript and TypeScript that uses V8 and is built in Rust. Features Secure by default. No file,

Deno Land 87.1k Jan 5, 2023
Provides a single TUI-based registry for drm-free, wine and steam games on linux, accessed through a rofi launch menu.

eidolon A conversion of steam_suite to rust with additional features. Provides a single TUI-based registry for drm-free, wine and steam games on linux

Nico Hickman 113 Dec 27, 2022
A Rust serverless function to retrieve and relay a playlist for Twitch livestreams/VODs.

City17 A Rust serverless function to retrieve and relay a playlist for Twitch livestreams/VODs. By running this in specific countries and using a brow

Malloc Voidstar 5 Dec 15, 2021
Archeum - a minimalist text editor

Archeum About The Project Archeum is a minimalist text editor that is really usefull if you've been in the vim psychosis for to long. Reject plugins,

null 4 Jul 1, 2022
Marko Editor is a simple WYSIWYG editor for note taking.

Marko Editor Marko Editor is a simple WYSIWYG editor for note taking written in Rust and GTK 4. It uses Markdown as storage format and can read simple

Michael 49 Jan 6, 2023
TIF is a terminal_image_format. (theres no TIF editor, so i made TIF images through a hex editor lol)

Colors these are the colors you can use when displaying images on the terminal BYTES: 5A = BLUE 5B = BLACK 5C = RED 5D = GREEN 5E = PURPLE 5F = WHITE

buzz 5 Dec 23, 2022
Dip editor: Multi-platform Text editor purely written in Rust

dip editor Multi-platform Text editor purely written in Rust, supercharged by Bevy game engine and Dioxus UI framework. heavily in development Why Gam

Junichi Sugiura 270 Jan 4, 2023
A modern editor with a backend written in Rust.

Xi Editor (pronounced "Zigh") A modern editor with a backend written in Rust. Maintenance status: The xi-editor project is not currently under active

null 19.7k Jan 5, 2023
Extensible open world rogue like game with pixel art. Players can explore the wilderness and ruins.

Rusted Ruins Extensible open world rogue like game with pixel art. Players can explore the wilderness and ruins. This game is written in Rust. Screens

T. Okubo 427 Dec 13, 2022
A minimalist and safe ECS library for rust!

The full ECS (Entity-Component-System) library. Support an Open Source Developer! โ™ฅ๏ธ Composed of two smaller libraries: world_dispatcher: the System p

Joรซl Lupien 124 Dec 19, 2022
Pixel-Perfect, 2D Renderer for Bevy that Seamlessly Targets Desktop and Web

bevy_retro ( Screenshot of Bounty Bros. game made with Bevy Retro and Skip'n Go ) Bevy Retro is a 2D, pixel-perfect renderer for Bevy that can target

Katharos Technology 224 Dec 23, 2022
A simple command-line utility (and Rust crate!) for converting from a conventional image file (e.g. a PNG file) into a pixel-art version constructed with emoji

EmojiPix This is a simple command-line utility (and Rust crate!) for converting from a conventional image file (e.g. a PNG file) into a pixel-art vers

Michael Milton 22 Dec 6, 2022
Very minimalist tmux status bar that displays used memory and CPU usage.

woot-bar Ultra minimalist status bar that displays used memory and CPU usage woot-bar is made for tmux but it is compatible with anything that eats st

Nicolas Gryman 3 Dec 27, 2022
Sub-pixel precision light spot rendering library for astronomy and video tracking applications.

Planetarium Sub-pixel precision light spot rendering library for astronomy and video tracking applications. Example usage use planetarium::{Canvas, Sp

Sergey Kvachonok 5 Mar 27, 2022
Sandbox is a pixel physics simulator inspired by other such like Sandspiel and Noita

Sandbox Sandbox is a pixel physics simulator inspired by other such like Sandspiel and Noita. It's also a precursor for an ongoing game project. Sandb

Okko Hakola 76 Nov 3, 2022
A framebuffer that takes a `&[bool]` slice and returns 2x4 dot (pixel) braille `char`s

A framebuffer that takes a &[bool] slice and returns 2x4 "dot" (pixel) braille chars.

Odin Dutton 3 Mar 28, 2022
Simple and minimalist forward auth service intended for use with reverse proxies (Traefik, Caddy, nginx, etc)

nforwardauth nforwardauth is an extremely lightweight, blazing fast forward auth service that lets you use a single authentication middleware for all

Tony Duco 22 Apr 7, 2023
Rust low-level minimalist APNG writer and PNG reader with just a few dependencies with all possible formats coverage (including HDR).

project Wiki https://github.com/js29a/micro_png/wiki at glance use micro_png::*; fn main() { // load an image let image = read_png("tmp/test.

jacek SQ6KBQ 8 Aug 30, 2023
Rust bindings to the minimalist, native, cross-platform UI toolkit `libui`

Improved User Interface A cross-platform UI toolkit for Rust based on libui iui: ui-sys: iui is a simple (about 4 kLOC of Rust), small (about 800kb, i

Rust Native UI Group 865 Dec 27, 2022