A Modern, Open Source GTK4 ebook manager powered by Rust.

Overview

Bookx_github_description

Bookx

An MVP in progress:

  • An ebook reader with .epub support
    • Context menu for each book (delete, rename book, info)
    • On click switch the carousal to the book
  • Ebook editor for .epub files

Main window

Build & Run the project

Building the project

flatpak install org.gnome.Sdk//41 org.freedesktop.Sdk.Extension.rust-stable//21.08 org.gnome.Platform//41
flatpak-builder --user flatpak_app build-aux/com.anuragdhadse.Bookx.Devel.json

To run the project

flatpak-builder --run flatpak_app build-aux/com.anuragdhadse.Bookx.Devel.json bookx

Please note that these commands are just for demonstration purposes. Normally this would be handled by your IDE, such as GNOME Builder or VS Code with the Flatpak extension.

You might also like...
Generic tiling window manager library in Rust

Pop Tiler Generic tiling window manager library for Rust, using an architecture based on GhostCell. License Licensed under the GNU Lesser General Publ

A window manager coded in rust

Tailwin A window manager coded in rust Thanks Victoruler for making the logo under a cc-by licence.

skyWM is an extensible tiling window manager written in Rust
skyWM is an extensible tiling window manager written in Rust

skyWM is an extensible tiling window manager written in Rust. skyWM has a clear and distinct focus adhering to the KISS and Unix philosophy.

skyWM is an extensible tiling window manager written in Rust
skyWM is an extensible tiling window manager written in Rust

skyWM is an extensible tiling window manager written in Rust. skyWM has a clear and distinct focus adhering to the KISS and Unix philosophy.

A tiling window manager for Windows
A tiling window manager for Windows

komorebi Tiling Window Management for Windows. About komorebi is a tiling window manager that works as an extension to Microsoft's Desktop Window Mana

A straightforward stateful input manager for the Bevy game engine.

About A simple but robust input-action manager for Bevy: intended to be useful both as a plugin and a helpful library. Inputs from various input sourc

A cross-platform Mod Manager for RimWorld intended to work with macOS, linux and Windows

TODOs are available here. Discussions, PRs and Issues are open for anyone who is willing to contribute. rrm Inspired by Spoons rmm. This is a cross-pl

Experimental package manager/system configurator for system hoppers

mascara An experimental package manager/config initializer tool for system hoppers. mascara.toml [mascara] feature = "Debian" logs = { stdout = "blue"

An easy to use command line project manager for projects using the ReCT programming language
An easy to use command line project manager for projects using the ReCT programming language

☢️ A powerful project manager for the ReCT programming language! ☢️ ReCTx makes your projects easier to manage by allowing you to configure everything

Comments
  • Write `library/book/book_data.rs`

    Write `library/book/book_data.rs`

    • This will store BookxLibraryBookData struct storing:
      • identifier: id of book
      • _type: the type of book
      • storage: path to book
      • cache: cache dir for book
      • cover_path: cover path for book
      • view_set
      • annotations_map: annotations mapping from cfi to color
      • annotations_list: Liststore.
    • Method to implement:
      • load_data(): function to load data about book
      • add_annotation(): add annotations to book
      • remove_annotation(): remove annotations
      • add_bookmark(): add bookmark
      • remove_bookmark(): remove bookmark
      • add_view(): add view to view_set
      • delete_view(): delete view from view_set
      • save_cover(): save cover as png file to cache dir
    enhancement dev 
    opened by adhadse 2
  • Write ` src/ui/library/library_book_box.rs`

    Write ` src/ui/library/library_book_box.rs`

    opened by adhadse 1
  • Add top section in library to allow a reader to continue reading where he left.

    Add top section in library to allow a reader to continue reading where he left.

    The title says it all.

    • When the user hasn't begun reading anything just provoke him to read with good message.
    • Otherwise, tell user to continue the book where he left.
    enhancement dev 
    opened by adhadse 0
  • Switch to MVC design pattern for `src` directory

    Switch to MVC design pattern for `src` directory

    Currently, the structure looks janky. My engineering skills should help me little bit. Structure right now:

    • library: handles internal state of library
    • settings: global setting module
    • ui: handles everything related to UI.

    Changes afterward:

    • models: module for model/data of individual components or entity here book, annotation, bookmark, how is it structured
    • views: how that model is going to be read to become usable for widgets.
    • widgets: forward facing module interacting with gtk widgets.

    Take Read It Later as inspiration.

    enhancement dev 
    opened by adhadse 0
Owner
Anurag Dhadse
Machine Learning Engineer | Rustacean | Gopher | Pythoneer | Contributor@Keras
Anurag Dhadse
Neovim GUI written in Rust, using relm4 and gtk4-rs

Reovim Neovim GUI written in Rust, using relm4 and gtk4-rs. Thanks Neovide Configuration To setup font add next line to init.vim set guifont=Cascadia\

songww 70 Dec 13, 2022
Unofficial Linux QQ client, based on GTK4 and libadwaita, developed with Rust and Relm4.

GTK QQ (WIP) Unofficial Linux QQ client, based on GTK4 and libadwaita, developed with Rust and Relm4. Screenshots Light Dark Note The two screenshots

Lomírus 198 Dec 24, 2022
An Anime Game Launcher variant written on Rust, GTK4 and libadwaita, using Anime Game Core library

An Anime Game Launcher GTK The launcher variant written on Rust, GTK4 and libadwaita, using Anime Game Core library You could also try the main branch

An Anime Team 77 Jan 9, 2023
Honkers Launcher variant written on Rust, GTK4 and libadwaita, using Anime Game Core library

You could also try the main branch Development Folder Description ui Blueprint UI files ui/.dist UI files compiled by the blueprint src Rust source co

An Anime Team 9 Nov 2, 2022
An idiomatic GUI library inspired by Elm and based on gtk4-rs

An idiomatic GUI library inspired by Elm and based on gtk4-rs. Relm4 is a new version of relm that's built from scratch and is compatible with GTK4 an

Aaron Erhardt 722 Dec 31, 2022
Unsafe bindings and a safe wrapper for gtk4-layer-shell, automatically generated from a .gir file

gtk4-layer-shell: gtk4-layer-shell-sys: gtk4-layer-shell This is the safe wrapper for gtk4-layer-shell, automatically generated from its .gir file. Fo

null 3 Apr 30, 2023
Deno is a simple, modern and secure runtime for JavaScript and TypeScript that uses V8 and is built in Rust.

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,

Derek Jones 2 Aug 13, 2022
A modern Volume Mixer for PulseAudio.

Myxer A modern Volume Mixer for PulseAudio, built with you in mind. Myxer is a lightweight, powerful Volume Mixer built with modern UI design for a se

Auri Collings 192 Dec 30, 2022
A small tool to use along with i3/Sway to add CSS-powered decorations to your focused windows, for better usability.

glimmer What A tool for decorating i3 windows when they get focused, written in Rust. classic.mp4 Why When using i3-gaps I ran into the following prob

Daniel Acuña 26 Dec 17, 2022
A floating, tag-based window manager written in Rust

worm worm is a floating, tag-based window manager for X11. It is written in the Rust programming language, using the X11RB library. Install cargo buil

null 627 Jan 4, 2023