GithubHelp home page GithubHelp logo

blackhole89 / notekit Goto Github PK

View Code? Open in Web Editor NEW
1.4K 33.0 57.0 3.44 MB

A GTK3 hierarchical markdown notetaking application with tablet support.

License: GNU General Public License v3.0

C++ 82.89% CSS 1.24% Makefile 10.03% CMake 3.11% Shell 0.84% Meson 1.78% C 0.11%
markdown-editor vector-graphics notetaking-applications tablet

notekit's Issues

If file is deleted since NoteKit is opened and is attempted to be opened no feedback is given

  1. Create a file (a) with content and save it
  2. Switch to another file (b)
  3. Delete (a) by external means
  4. Try to select (a)

Expected behavior:
Feedback that this file (a) does not exists and removal from file list or recreation of this file (a)

Current behavior:
No visual indication print in to StdOut instead:
what : Fehler beim Öffnen der Datei »/home/joto/Software/notekit-20190907/notesbase/(a).md«: No such file or directory

One might also consider refreshing the file overview sometimes

Pos1 and End key do nothing

Pos1 and End key can not be used to scroll to the respective end of the file.
Page UP and Page DOWN work though.

[Feature request] Show note by the end, instead of beginning

I think most of the time we want to start writing in the end of the file. But when we open a file in notekit, it shows the beginning.
I think the default behavior should show the end of the file.
Ideally, notekit could save the user's position to return to it. But it will be harder to implement, I think.

UX improvement: draw and text in different planes

Many times I have misplaced drawings and it messed up the text or the drawing. I had to do the
drawing again.
I think it would be more useful to have to planes, one for the drawing and other for the text.
So each won't interfere in each other.
Another nice thing about this is that I can place text inside drawings, which currently is very hard.

Checkbox is only matched against uppercase "x"

NoteKit matches & creates checked checkboxes with an uppercase "x". This breaks a lot of compatibility with other tools (e.g. Nextcloud Notes), where the checkbox is lowercase "x".

As far as I know it's common to use the lowercase "x". Is there any reason the uppercase "x" is used and could it be changed?

Drag with capacitive touchscreen scrolls the view and doesn't write

Hi,
Very promising program! As someone who uses Xournal daily, I will be watching development here closely.

I've written a quick and dirty PKGBUILD to test this out. Unfortunately, GTK3, while it does recognize capacitive touch screens, only allows them to scroll - whatever mechanism it uses for writing seems to expect a pen or stylus. Unfortunately, that means that those of us with older/cheaper devices can't use this program.

Xournal++, another GTK3 program, added a touch "workaround mode" that fixed the same problem. Any chance of doing the same? Thanks.

PS: if it helps, my touch screen shows up as "Atmel maXToutch Digitizer." It works as intended with GTK2 programs, such as the original Xournal.

terminate called after throwing an instance of 'Gtk::CssProviderError'

I built the source successfully using CodeLite, since I am on Solus, and running the compiled source from CodeLite gave me the notekit GUI as expected. However I do not want to open CodeLite every time, so I navigated to the /Debug folder and tried to run the notekit executable by doing ./notekit from the Debug folder. The following error is output into the terminal

(process:7133): glibmm-CRITICAL **: 19:23:26.324: Class::register_derived_type(): base_query.type_name is NULL.
== This is notekit, built at Sat Sep 14 16:33:54 2019. ==
Detected paths:
Config: /home/warren/.config/notekit
Active notes path: /home/warren/.local/share/notekit
Default notes path: /home/warren/.local/share/notekit
Resource path: .
terminate called after throwing an instance of 'Gtk::CssProviderError'
Aborted

I have no knowledge in C++ so I'm pretty helpless in debugging this. I then tried chmod +x notekit, however this did not fix my issue. Any help is appreciated.

jsoncpp(1) and Fedora 29

I tried to run the binary on Fedora.
Currently i am missing the libjsoncpp.so.1 shared library which does not exist as libjsoncpp.so.1 in Fedora. I followed the work around: google/flutter-desktop-embedding#227

After installing all jsoncpp related packages (other than mingw packages) the following files were added.
/usr/lib64/cmake/jsoncpp /usr/lib64/cmake/jsoncpp/jsoncppConfig-release.cmake /usr/lib64/cmake/jsoncpp/jsoncppConfig.cmake /usr/lib64/libjsoncpp.so /usr/lib64/pkgconfig/jsoncpp.pc /usr/lib64/libjsoncpp.so.19 /usr/lib64/libjsoncpp.so.1.8.4 /usr/share/licenses/jsoncpp /usr/share/doc/jsoncpp /usr/share/doc/jsoncpp/html/jsoncpp_8dox.html
The version jsoncpp Fedora 29 provides is:

Name : jsoncpp Version : 1.8.4 Release : 5.fc29 Architecture : x86_64 Size : 239 k Quelle : jsoncpp-1.8.4-5.fc29.src.rpm Repository : @System Aus Paketque : fedora Summary : JSON library implemented in C++ URL : https://github.com/open-source-parsers/jsoncpp Lizenz : Public Domain or MIT Description : jsoncpp is an implementation of a JSON (http://json.org) reader : and writer in C++. JSON (JavaScript Object Notation) is a : lightweight data-interchange format. It is easy for humans to : read and write. It is easy for machines to parse and generate.

CMakeLists.txt

When I try to run cmake . within the folder, I get the following error:

CMake Error: The source directory "/home/justin/Downloads/notekit-20190911" does not appear to contain CMakeLists.txt.
Specify --help for usage, or press the help button on the CMake GUI.

I'm running Ubuntu.

Where can you find the data directory for changing fonts?

I have a high-res screen, and finding the default font size very small. I see in the README that we can change the css for the program. Pardon my ignorance, since I'm not familiar with gtk app development, but is this something you change in the source and rebuild (I see the data directory in the source), or can I change this somewhere else and just restart the program and have the new styles applied?

Internationalization

Please provide Gettext localization support. Then I’d be happy to contribute translating this app into Spanish and Catalan!

Markdown Tables

Is it possible to create Tables in Notekit using Markdown? Because relying on LaTeX Tables ($\text{\begin{tabular}{l | l | l} T1 & T2 & T3 \\ \hline B1 & B2 & B3 \\ B4 & B5 & B6 \\ \end{tabular}}$ ) is bad, because it takes to long to type :/.

creating snap package

I have started creating a snap package notekit, but came some trouble with the created build file.
The source is here and it is able to compile and create the snap seemingly without problems.

To build the snap package install snapcraft with snap install snapcraft, change into the cloned repo, run git checkout snap and build the snap using the command snapcraft --debug.
You can install the created snap using sudo snap install notekit_*.snap --devmode --dangerous but there are problems when executing the program.

Simply running simply calling notekit in the console gives the following error:

/snap/notekit/x1/usr/share/notekit/notekit: error while loading shared libraries: libgtkmm-3.0.so.1: cannot open shared object file: No such file or directory

Running the executable directly using /snap/notekit/x1/usr/share/notekit/notekit after setting the data manually using export XDG_DATA_DIRS=/snap/notekit/current/usr/share:/usr/local/share:/usr/share gets the program to launch but parts of the ui are missing and I cannot write stuff.

I have the same problem when compiling the source manually, so it might be a problem with the dependencies.
But all version are at least the version required in the readme (except libfontconfig1-dev which is version 2.12.6-0ubuntu2).
I run the local build on my Linux mint 19.3 computer and the snap package is targeted at ubuntu 18.04 (core18).

Any idea on how to get it to work properly?

Ruler for Freehand Draw

I would like to propose a ruler mode for freehand drawing.

https://github.com/thomaskole/notekit

In this proof of concept, I propose 2 ruler types: A cartesian and a polar ruler.

Cartesian ruler

the Cartesian (x-y) ruler is available under shift.
While holding down shift, the user chooses a direction by drawing left-right or up-down. The cursor is then limited to the start x- or y-value.

Cartesian example

Polar ruler

The polar ruler allows the user to draw arbirary diagonal lines, or circles like a compass. This functionality is available under ctrl.
When you press this button, a center point is placed.
Like the cartesian ruler, the polar ruler chooses a direction based on the first move. Away or towards the center results in a diagonal line, parallel to it results in a circle.

Polar example

It's far from perfect, but it could be a starting point for possible future ruler functionality.

More packages

Just an FYI, I've packaged notekit with cLaTeXMath support for openSUSE (Tumbleweed & Leap 15.2), as AppImage & Arch (AUR).

The AppImage should also solve #24


Also a few things that you should consider are:

  • Provide a .desktop file upstream
  • Provide an icon upstream (@thomaskole icon looks great, please include it officially)
  • Maybe think about creating a Matrix (or irc) channel, for simple questions or packaging requests.

I could also provide my .desktop file that I used for the SuSE & AppImage build if you want.

[Feature request] Hide files sidebar

Hi. I think it will be nice if there's an option to hide the tree view of notes (sidebar).

A lot of space will be gained when using notekit half screen.

BTW, nice app. It's unique!

Setup Travis CI for build AppImage (portable binary package for Linux)

Lets setup Travis CI for auto-build AppImage (portable package for Linux) for each commit:

For example, take a look on LeoCAD .travis.yml implementation:

And here is what resulted builds would look like:

For any support:

Interoperability

One of Markdown strengths is that I can use the same file for pandoc, blog and static site generators.

Therefore, it would be great to have an option to convert to Markdown files with png links.

Markdown restrictions

  • I just can indent lists with 1, 2 or 3 spaces. Neither tabs nor more spaces do work (at least I loose the markup, so I guess it doesn’t work). Also, I cannot start items with the + sign.
  • Headings just work up to a level of ###, as soon as I add a fourth hash sign, these also don’t work.

Do you rely on some markdown parser/library or did you program everything on your own? The first option seems to be the case here, so I would recommend the usage of some popular parser. I also tested quite some other Markdown editors – sadly most of them seem to parse Markdown on their own, which results in a lot of missing features and bugs.

zero byte size files prevent notekit from starting

using portable 64bit exe version notekit-20190911.zip

steps to reproduce

started notekit
created 4 files in left side bar
closed notekit, did not enter anything into any of the files
restart notekit
-> notekit does nto start

workaround

opening an editor like vim and enterring a spacebar into the zero byte files allows starting

Saves only on (successful) closing

So apparently I lost a bit of work, since notekit only saves a note when I change the displayed note or close notekit. I just shut off my pc and an extensive note wasn't saved. It would be nice if ctrl+s would force a save to disk or it would regularily save anyways.

Icon proposal

image

I designed a logo to fit within the general modern Gnome design, without blending in too much.
If you're interested, I can render them down and send the files.

Erasing straight lines is really hard

I find it really hard to erase lines. One has to try to remove it several times before it works.
See Video
Maybe be related to the

The discontinuous lines are due to an optimisation in updating the line that you are currently actively drawing, and should go away once you lift your pointer/pen.

but this is just a guess.

Feature request: allow resizing

Currently, I can only resize notekit so much. It would be nice if the user could resize it further.
Is this simple to implement?

Feature Request: Allow selecting any folder

It would be really cool if you can open up any folder as the base folder from a menu. then you could have different folders for different projects. Would that be possible?

Flatpak/Flathub

It'd be cool if there was a Flatpak manifest to enable building the app with one click in GNOME Builder, it's a really nice workflow for drive-by contributions. Once you have a manifest you could also submit the app to Flathub, which is a great way to get the app in front of more people :)

Better icon for ereaser

I found no way to remove lines i drew. A rubber functionality would be great.
There seems to be something about erasing at (x,y) in the source code.

Hide folder tree

I found no way to hide the folder tree. It takes up significant screen real estate if the window is limited to half a window. The ability to hide it would be good. This is an enhancement.

Asking for clearance to creating a Fedora COPR Repo.

Hi!

I successfully packaged NoteKit for Fedora, at least for X11 (discovered a bug, will report it later. I'm gathering more information) (EDIT: This was just a random error apparently, it just disappeared ¯\_(ツ)_/¯, so it works well on wayland as well). And I wanted to ask for clearance for launching an automated COPR repo (equivalent of AUR) for fedora that will build nightly or weekly NoteKit.

I also wanted you to review some details about the package, as that's the first time that I do something like that 😛:
Summary: A GTK3 hierarchical markdown notetaking application with tablet support.
Description: This program is a structured notetaking application based on GTK+ 3. Write your notes in instantly-formatted Markdown, organise them in a tree of folders that can be instantly navigated from within the program, and add hand-drawn notes by mouse, touchscreen or digitiser.
Desktop File:

[Desktop Entry]
Version=%{current}
Name=NoteKit
GenericName=NoteKit
Comment=Write your notes in instantly-formatted Markdown
Icon=accessories-text-editor
Exec=notekit
Terminal=false
Type=Application
Categories=Office;
Keywords=note;onenote;notetaking;markdown;

Screenshot:
NoteKit

Tablet Mode support on Windows

Please improve support for "Tablet Mode" on Windows. In this app I would expect the top toolbar to autohide unless the area is touched to show the close button. Also the task bar should autohide correctly.

Some apps also increase the size of buttons in Tablet Mode for easier touch screen use, but I think the sidebar buttons are already sufficiently large.

Currently in Tablet Mode the top toolbar stays visible and the already taskbar autohides, but the app's window does not resize to fill the whole screen. Other apps are visible through the empty space at the bottom of the screen. See the bottom of the attached screenshot: attached screenshot.

I really do like the app though! Even though you say Windows is less tested it seems quite usable otherwise.

Arch doesn't build

Hi,
The arch distribution doesn't build for me (installing via AUR https://aur.archlinux.org/packages/notekit-clatexmath-git/)

Some of these packages I think I already have under a different name. For instance

pacman -Ss gtksourceview
extra/gtksourceview2 2.10.5-5
    A text widget adding syntax highlighting and more to GNOME
extra/gtksourceview3 3.24.11+28+g73e57b57-1 [**installed**]
    A text widget adding syntax highlighting and more to GNOME

Currently using the snap package, but it's out of date and would love to be using new features as they come out. I get the following error (only printing out the tail of the logs)

-conda_cos6-linux-gnu/bin/ld: cannot find -latkmm-1.6
/home/ryderb/miniconda3/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: cannot find -lgdkmm-3.0
/home/ryderb/miniconda3/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: cannot find -lgiomm-2.4
/home/ryderb/miniconda3/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: cannot find -lpangomm-1.4
/home/ryderb/miniconda3/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: cannot find -lglibmm-2.4
/home/ryderb/miniconda3/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: cannot find -lcairomm-1.0
/home/ryderb/miniconda3/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: cannot find -lsigc-2.0
/home/ryderb/miniconda3/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: cannot find -lgtksourceviewmm-3.0
/home/ryderb/miniconda3/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: cannot find -lgtksourceview-3.0
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/LaTeX.dir/build.make:1245: LaTeX] Error 1
make[1]: *** [CMakeFiles/Makefile2:124: CMakeFiles/LaTeX.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[100%] Linking CXX static library libclatexmath.a
[100%] Built target clatexmath
make: *** [Makefile:103: all] Error 2
==> ERROR: A failure occurred in build().
    Aborting...
error making: notekit-clatexmath-git

No way to open another folder as base/root folder

Having an option to add folder as root which are not under notekit-*/notesbase would be great. That could be really helpful if you already have an existing folder structure and want to continue using it

  1. I could imagine either having a way to change the base folder above the folder tree
  2. I would even better if you could multiple different folders as base in the side bar at the same time

Feature: flathub.org flatpak package

Hi,

I just recently discovered your application and I must say, it is woooonderful.
I strongly suggest to package a flatpak app for flathub.org. This will make the application so much more discoverable and many many more will see it.

I am 100% sure, it will land on the editors choice very fast.

Renaming File (in Symlinked Directory?) doesn't work correctly

Hi,

i am on the COPR repository and I have symlinked my ~/.local/share/notekit from a syncthing directory to sync my notes. This works fine.

When I open notekit and change the name of a note via the left-hand side tree view, the filename gets changed (correct) but the filename at the top center of the editor stays the same (error). If I now close notekit and reopen it, it tries to reopen the file with the old filename which fails.

I don't know whether the symlinked directory is part of the issue.

I have uploaded a video showcasing the issue to https://maweki.de/files/notekit_renaming_issue.webm

No way to get more space for drawing without using the keyboard

The only way so far to get more drawing space is to add text and press enter to get space to draw. This is not very friendly if your keyboard if folded behind your screen and you ran out of space.
(Sorry for opening so many issues. I am very open to have this software be my daily driver in a few months.)

Snap package

Would be nice to have this software packaged as a Ubuntu Snap. Snaps are very portable between distros so more people could use it.

Tablet Input Broken on Wayland

Hello, so I have just been recently using Notekit; however, I have ran across a bug where the input system does not properly draw from the tablet when using Wayland. I tested on Xorg, and the input works perfectly, but I am wondering why Wayland seems to have an issue.

It seems that a stroke object is created, but the actually drawing does not work with the input from the tablet leaving a blank object. Using a mouse input and draw tool seems to work, however.

Let me know if you need any further details to look into and/or resolve the issue. Thanks!

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.