Skip to content

Multiplatform application, currently available for linux, windows, macOS and android, which allows you to take notes in an intelligent way, you can record audio as you write, and listen to it again seeing what you have written for every second of the audio. The application also has many other features, which you can see inside the readme

License

giacomogroppi/writernote-qt

Repository files navigation

Writernote

Snap Linux build qt6 Windows package macos build Android

Linux

writernote writernote

Features:

  • Pen support
    • Zoom in and zoom on
    • Rubber size and type
    • Pen size option and type
    • Move object with the pen
    • Insert image
    • Enter text in pen mode
    • Reposition the page in case the application has encountered a bug
  • Export file as PDF
  • Print file
  • Keyboard support
  • Audio record:
    • Include audio file in writernote file
    • or decide to save the file in a specific location
    • listen to the audio again and visually see what was being written [only keyboard]
  • Create style of sheet
  • Dynamically decide how to create the sheet
  • Extract audio from writernote file
  • When closing the application, the program understands if the user has written something
  • Decrease file size [only in pen mode]
  • Open last open file 3 options:
    • Set the number of recent files to show
    • Disable the option, and show writernote directly
    • Directly open the last opened file
  • Drag and drop:
    • Image
    • Writernote file
  • Draw with mouse
  • In case the application closes unexpectedly it is possible to recover the file, also setting the saving time of the restore file
  • Ready pdf file and take notes

Experimental Features:

  • Android support
  • Insert text into pen mode
  • Preview

To do

  • Convert audio to text
  • Compile for IOS
  • Load file from pdf
  • Create launcher for windows and linux to:
    • Send log information to a server
    • Restart the application
  • Create external program to update writernote, it automatically has to download a zip archive of the latest release on github, extract it, and update the files
  • Group

Supported platforms:

  • GNU/Linux x86 [snap [here]]
  • GNU/Linux arm64 [snap [here]]
  • GNU/Linux armhf [snap [here]]
  • GNU/Linux x86 [flatpak [here]]
  • GNU/Linux arm64 [flatpak [here]]
  • Android armeabi [apk] [beta]
  • Android arm64 [apk] [beta]
  • Android x86 [apk] [beta]
  • Android x86_64 [apk] [beta]
  • IOS [beta]
  • Windows x86 [installer, zip]

Installing

  • Linux:

    Install stable version [from snapd]

    sudo snap install writernote
    sudo snap connect writernote:audio-record

    Install stable version [from flathub]

    flatpak install flathub com.github.giacomogroppi.writernote-qt

    Install unstable version [last] With multipass you can specify how many thread, ram, and disk, for the virtual machine for compilation. Personaly i use 20 thread, 24G ram, and 100G of disk.

    sudo snap install multipass 
    sudo snap install snapcraft --classic
    git clone https://github.com/giacomogroppi/writernote-qt.git
    cd writernote-qt
    multipass launch --name snapcraft-writernote --cpus 20 --mem 24G --disk 100G
    snapcraft
    
    sudo snap install writernote*.snap --devmode --dangerous
    sudo snap connect writernote:audio-record
  • Windows and MacOS: here you can find all the version for windows.

Compiling

  • Linux: dependence: it's raccomend to download qt creator, with all the component, from the official website (with qt 6.3.0) and install in ~/Qt. in case you can install all the dependence by install all the package from build-packages and the stage-packages in snapcraft.yaml [writernote]

    compile:

      mkdir build
      cd build
      cmake ..
      make
    
  • Windows: dependence: mingw:

      pacman -S git
      git clone https://github.com/giacomogroppi/writernote-qt.git
      ./windows/dipendenze.sh
      ./windows/compile.sh
    

    power Shell: [to create an installation file]

      cd windows
      .\package.bat
    
  • Android: In /android you can find all the rule to compile writernote for android. It's an experimental project and a lot of things don't work for android.

File format

The _.writer format is a compressed archive, in which a file `` indice.xml '' can be found, in which all the notebooks and all the audio are saved, whether they are recorded, or whether they are imported by the application.

Directory structure

  • 3rdparty: all script for compile external library that we can't download directly
  • andreoid: all roles for compile writernote for android
  • images: all images
  • language: all translation
  • snap: snapcraft instructions for release the app in the snapstore
  • windows: all script for compile writernote for windows
  • updater: updater Qt project for update writernote [windows]
  • src: [all file for application]
    • audioplay: file for play an audio
    • audiorecord: file for record an audio
    • audiosetting: file for load the setting of the audio
    • autosave: module for manage autosave
    • cloud: cloud file
    • currenttitle: class for the copybook
    • datamanage: file for manage file after stop recording of audio
    • dataread: module for read file .writer
    • datawrite: module for writernote file .writer
    • dropEvent: file for manage drop event:
      • image
      • writernote file
    • frompdf: module for load a pdf
    • image: file for manage image inside writernote
    • last_open: mdule for load the last open file
    • lastedit: module for manage redo and redo
    • log/log_ui: module for manage writernote log
    • pdf: export pdf
    • restore_file: module for restore lost file after crash
    • sheet: style for the sheel
    • utils: some modules
    • windows: manage update
    • touch:
      • copy: files to copy area
      • datastruct: class for manage data
      • event: event for touch, resize event, mouse event ...
      • paintevent: module to draw object to pixmap
      • reduce_size: module to reduce precision of file
      • riascolto: module to load and play audio dynamically
      • rubber: rubber
      • scrollKentic: module for scrolling kinetic [pen mode]
      • square: module to move object with finger
      • text: insert text into file
      • zoom: module to manage zoom

Development

For developing new features, write a Ticket, so others know what you are doing. For development create a fork, and use the test as base. Create a Pull request for each fix. Do not create big pull requests, as long as you don't break anything features also can be merged, even if they are not 100% finished.. To report a problem send an email to the same address [possible with the error log and/or with a photo].

See GitHub:writernote for current development.

Todo

In the code there are some references to TODOs

Third-party

About

Multiplatform application, currently available for linux, windows, macOS and android, which allows you to take notes in an intelligent way, you can record audio as you write, and listen to it again seeing what you have written for every second of the audio. The application also has many other features, which you can see inside the readme

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published