updating readme and todo

This commit is contained in:
Chris Cochrun 2025-03-17 07:28:51 -05:00
parent 6fcabad45c
commit 40065d2c5a
2 changed files with 59 additions and 10 deletions

View file

@ -1,9 +1,55 @@
#+title: Lumina
#+author: Chris Cochrun
Lumina is a presentation app that works from a cli or a UI. The goal is that through a simple text file, you can describe an entire presentation and then load and control it either from the command line, or a UI. The UI also provides user friendly ways of creating the presentation to allow for flexibility for users to make something that works for developers and nerds as well as regular folk.
Lumina is a presentation app that works from a cli or a UI. The goal is that through a simple text file, you can describe an entire presentation and then load and control it either from the command line, or a UI. The UI also provides user friendly ways of creating the presentation to allow for flexibility for users to make something that works for regular folk as well as developers and nerds.
* Why build this?
Well for one, I want more experience developing things and I don't have a good tool for this kind of thing on Linux.
Primarily, I don't think there is a good tool for this kind of thing on Linux. On Windows and Mac there is ProPresenter or Proclaim. Both amazing presentation software built for churches or worship centers and can be used by others for other things too, but incredible tools. I want to have a similar tool on Linux. The available tools out there now are often old, broken, or very difficult to use. I want something incredibly easy, with very sane or at least very customizable keyboard controls that allow me to quickly build a presentation and make it VERY easy to run it too.
** Features (planned are in parentheses)
- Presents songs lyrics with image and video backgrounds
- Simple song creation with a powerful text parser
- Present Slides (PDF, PowerPoint, and Impress are in not implemented yet)
- (Present Reveal.js slides)
- (Custom slide builder)
- (an intuitive UI) - Still needs A LOT of polish
* Build and Run
First get the source code
Then into the project directory.
#+BEGIN_SRC
cd lumina
#+END_SRC
Then build.
#+BEGIN_SRC
just build
#+END_SRC
Then run.
#+BEGIN_SRC
./target/debug/lumina
#+END_SRC
** Nix
If you are using nix to develop with, which I would suggest since that will make sure all the appropriate dependencies are installed, you'll need to do the following:
#+begin_src
cd lumina
nix develop
#+end_src
This drops you into a shell with all the right dependencies.
*If you have direnv*
#+begin_src sh
cd lumina
direnv allow
#+end_src
Then just as before build and run it the way you would.
* Contact Me
If, for whatever reason, you need to contact me and get something ironed out, please do so at [[mailto:chris@cochrun.xyz][chris@cochrun.xyz]]

View file

@ -1,29 +1,32 @@
#+TITLE: The Task list for Lumina
* TODO Change return type of all components to an Action enum instead of the Task<Message> type [66%] [2/3]
* TODO [#A] Text could be built by using SVG instead of the text element. Maybe I could construct my own text element even
* TODO [#A] Change return type of all components to an Action enum instead of the Task<Message> type [66%] [2/3]
** DONE Library
** DONE SongEditor
** TODO Presenter
* TODO Need to fix tests now that the basic app is working
* TODO [#A] Need to fix tests now that the basic app is working
* TODO Build library to see all available songs, images, videos, presentations, and slides
** DONE Develop ui for libraries
I've got the library basic layer done, I need to develop a way to open the libraries accordion button and then show the list of items in the library
** TODO Develop DnD for library items
** TODO [#A] Develop DnD for library items
This is limited by the fact that I need to develop this in cosmic. I am honestly thinking that I'll need to build my own drag and drop system or at least work with system76 to fix their dnd system on other systems.
* TODO Build editors for each possible item
* TODO [#B] Build editors for each possible item
** TODO Develop ui for editors
* TODO Develop ui for settings
* TODO [#B] Develop ui for settings
* TODO Develop library system for slides that are more than images or video i.e. content
* TODO Functions for text alignments
* TODO [#B] Develop library system for slides that are more than images or video i.e. content
* TODO [#B] Functions for text alignments
This will need to be matched on for the =TextAlignment= from the user
* TODO Figure out why the Video element seems to have problems when moving the mouse around
* TODO Find a way to load and discover every font on the system for slide building
* TODO [#C] Figure out why the Video element seems to have problems when moving the mouse around
* TODO [#B] Find a way to load and discover every font on the system for slide building
This may not be necessary since it is possible to create a font using =Box::leak()=.
#+begin_src rust
let font = self.current_slide.font().into_boxed_str();