Buli Notes

Buli Notes

A note manager plugin for Krita.

What is Buli Notes?

Buli Notes allows to add notes to Krita documents.
As notes are embedded into .kra file, you’re sure to never loose them :slight_smile:

Starting from the idea of being able to put comments on layers, @halla gave me this information concerning annotations :blush:

Result is not exactly what I had in mind, but currently initial idea can only be implemented in Krita and not through a plugin.
Anyway, I’m satisfied of current result :slight_smile:

Also, I used the scratchpad API @scottyp have implemented last year :star_struck:

Screenshots

A screenshot of Krita with Buli Notes docker and a note displayed as post-it

Hand written information post-it Brushes list post-it

Editor - Text note

Editor - Hand written note

Editor - Brushes note

Functionalities

Note management

All notes are available through a docker:

  • List all defined notes
  • Allows to add/edit/remove notes
  • Lock/unlock notes
    • A locked note can’t be edited/deleted
  • Pin/unpin notes
    • By default an opened note is automatically closed when focus is lost; when pinned, note have to be explicitely closed
    • Pinned notes stay visibles in fullscreen mode
  • Right click on list allows to copy/paste selected notes from document to another one.

As a post-it, a note can be moved/resized on desktop.

Notes properties

Notes have the following properties:

  • A Title
  • A description
  • A color

Also, creation and last modification date/time are automatically set on notes.

Text content

A note can have an optional text content, that the minimal thing we can expect for a note :smiley:

Text editor allows rich text content and provides following formatting functions:

  • Font family
  • Font size
  • Text weight (normal, bold)
  • Text style (italic, underline, color)
  • Text alignment (left, center, right, justified)
  • Bullet list

Basic undo/redo and copy/paste actions are available.

Hand written content

It’s possible to set hand written notes on a scratchpad.
Could be interesting to draw small schema to illustrate ideas for example.

Hand written notes allows:

To use scratchpad:

  • Left click: draw
  • Middle click: pan
  • Right click: pick color

Note: undo/redo is not available (and not sure to be able to implement it…)

When a note is displayed as a post-it, clicking on scratchpad will change brush color with picked color

Brushes list

Krita allows to manage presets (bundles, tags).
Usefull for general configuration or to organize brushes.

But when start drawing, don’t want to manage all of this.
Also, don’t want to create a preset for each combination size/opacity used for a specific document.

The brushes list allows you to add the current used brush in list:

  • Brush preset
  • Size
  • Opacity
  • Flow
  • Blending mode

A description can be associated with brush (allows to easily keep in mind for which type of work the brush has been used)

And as note in saved into Krita file, you can do a break and came back few days or few weeks later to finish your drawing, used brushes will be available immediately!

Note: brush preset is not embedded into Krita document, only reference to brush is saved

When a note is displayed as a post-it, clicking on a brush will change current brush with the selected one

Download, Install & Execute

Download

Installation

Plugin installation in Krita is not intuitive and needs some manipulation:

  1. Open Krita and go to ToolsScriptsImport Python Plugins… and select the bulinotes.zip archive and let the software handle it.
  2. Restart Krita
  3. To enable Buli Notes go to SettingsConfigure Krita…Python Plugin Manager and click the checkbox to the left of the field that says Buli Notes.
  4. Restart Krita

Execute

Buli Notes is available as a docker: go to menu SettingsDockers and select Buli Notes.

Tested platforms

Notes:

  • Plugin is not compatible with Krita 4.x.x; you must have at least Krita 5.x.x
  • As currently Krita 5 is still in pre-alpha version, plugin is in alpha version and as long as Krita 5 won’t be available as a stable version, plugin will be provided as alpha version

Plugin has been tested with Krita 5.0.0-prealpha (appimage) on Linux Debian 10.
Plugin hasn’t been tested on Windows and MacOs

Plugin’s life

What’s new?

[2021-03-16] Version 0.1.0a >> Show detailed release content <<

  • First implemented/released version

Bugs

There’s some bugs (early alpha version), and some functionalities are not yet implemented, even if buttons are already here :sweat_smile:

What’s next?

Some ideas currently in mind:

  • Note manager
    • Allow to define notes position in list (currently, sorted by creation order)
    • Export/Import notes
    • Extend clipboad mime type (text + png), allowing to paste information in an editor
  • Note editor - Text content
    • A strikethrough text format
    • Allow to set background color
  • Note editor - Hand written content
    • Allow to import image (from file, from clipboard, from layer)
    • Allow to export image (to file, to clipboard)
    • Fix color chooser (there’s some bug interface)
    • Add brush opacity
  • Tasks
    • Implement tasks list note
  • Link layers
    • Allow to link a note to one or more layers

Grum999

22 Likes

Wow, this is cool! I wouldn’t have thought of having “brush notes”. And scratchpad as “notes” too? And all together in one plugin? Awesome! :smiley:

1 Like

Brush notes sounds awesome, whenever you haven’t worked on a piece for a few days it’s hard to remember which brush you actually used, and if you made any tweaks to it.
And handling external notes is a pain, I already got way too many of those for development :dizzy_face:

Btw. I’m also a big fan of palettes embedded into .kra files, for pretty much the same reasons :slight_smile:

1 Like

Ahah yes, I know.
On my side I try to note which brush is used in which case, with which opacity/size but it’s really boring to do it manually.
Current implementation is very basic: you can only add current used brush/size/opacity/… and you can’t modify it once it’s added, but being able to manage brushes here is not the goal.
I think I may had to add a “ADD” button in post-it mode to avoid having to open note editor to add a brush… :thinking:

First time I saw the scratchpad, I wanted to do something with it :grimacing:

I sometime use it too.
Note that as scratchpad allows to pick-up color in post-it mode, it allows to create a “palette” with shapes like example provided by @scottyp in merge request 376


There’s currently just a risk to pick wrong color, as in Buli Notes hand written note image is resized with antialiasing, picking on color edge could return wrong color…

Grum999

Removed note from main post

Important note

Due to Krita’s Bug 434244 - Annotation not loaded, with a document with more than one note, only the last added note will be available when re-opening a document

Wider, problem will occurs if any plugin other than Buli Notes save annotation data: only the latest annotation data saved in file can be opened…

Using plugin is currently not recommended except for testing & feedback purpose

As the bug has been fixed with commit c0775ffa :smiley:

Thanks :slight_smile:

Grum999

1 Like

Hi

Release 0.2.0a is available

[2021-04-04]

  • Linked layers notes - implement functionality
  • Text notes - implement strikethrough & bg colors styles
  • Text notes - implement shortcuts
  • Hand written notes - implement brush opacity
  • Hand written notes - implement import/export
  • Brushes notes - improve post-it mode

For screenshots and functionalities description, you can read the full detailed release content directly on github repository.
And main BuliNote page.

Reminder: plugin is only compatible with Krita 5.0.0

Grum999

3 Likes

Oh wow, I never really thought that comments would be very functional since you can just screenshot everything and paste it as reference pic, until now. the embedded scratchpad is SO usefull and such an awsome idea its also so simple and straightforward to use.

This gives us with numerous of wokflows options like making quick thumbnail composition sketches directly as notes instead of using multiple layers or other documents. I was actually planning to see if i could use the thumbnail plugin which was made for the google summer of code but i wonder about how simple it would be as its aimed for animation, but this… This is gold, the Scratchpad has some limitations but i think its good enough for some simple sketches. Is it possible to copy its content and paste it on the camvas or copy the content of a canvas layer and paste it on a scratchpad?

And also the brush notes is the cherry on top. This is such an awsome idea, that it could actually be packed with krita default’s python plugins lol.

Thank you so much for this!.

edit: I just read your notes on the latest release, copying stuff from clipboard to the scratchpad was exactly what i wanted. and you can even export the scratchpad to a layer. I honestly can’t wait to try it out.

2 Likes

Hi

Thanks :slight_smile:

You can download current Krita 5.0.0-prealpha version to test, but be careful, it will use and probably change your current 4.4.x configuration, and maybe can broke the current database resource.
Make a backup of all your krita settings if you plan to test it.

And as Krita 5.0.0 is not released as final stable version, the plugin can’t be considered as a final stable version too.

Also, with current bugs encountered on Krita 5, on my side I stopped to use it for drawing - I only use it for this plugin development (waiting to see if blocking bugs are fixed before using it again to draw…)

Grum999

2 Likes

Is it just general crashiness or some specific things? I can’t promise anything but I would take it into account when planning future work. I mean it probably needs to be fixed before 5.0.0 release anyway.

Hi @tiar

I already started a topic about this here:

But as I didn’t got answer, I was just waiting for beta to open bug(s), looking regularly if problem are still here or not (because maybe they’re already known and someone is working on them :slight_smile: )

Currently, for what I saw it’s more things that made difficult to use it to work than crashes.
Example:

  • Wrong projection in layers (finally found origin of problem: it occurs with transform mask; layers with a transform mask are rendered and few second after, they disappear from projection…)
  • Missing functionalities (example: in Image menu, Scale image to new size and resize canvas item have disappeared, didn’t found if they’ve been moved in an another place or just if they’re missing :man_shrugging:)

Not able anymore to reproduce problem with vector layers… maybe it has been fixed :upside_down_face:

Grum999

1 Like

Since I’m unfamiliar with the kra file format specifications, here’s a, probably stupid, question from me: “Are the *.kra files created with this also readable by Krita versions WITHOUT the Buli plugin, especially versions prior to 5.x, and is any Krita capable of editing the files created using the plugin, if possible without destroying the data stored in the file by the plugin?” Or asked as simple as possible, can these files be shared with non plugin-users?
I have not read anything about this here or on Github, or did I miss it?

Hi @Michelist

There’s no stupid question here :slight_smile:

Here a small synthesis of situation:

Action Krita 4.x Krita 5.x With Plugin Krita 5.x Without Plugin
Opening document YES YES YES
Reading Buli notes NO YES NO
Saving document Notes are lost Notes are kept Notes are kept

So you can share a Krita 5.0 file with some BuliNote inside, everyone will be able to open the file.
But only users with plugin are of course, able to read them :slight_smile:

Concerning the save action, I can’t do anything for Krita 4.0 (the thing is, I’m just used a functionality implemented in Krita 5.0 to build this plugin)
Notes will be lost if file is saved, because the annotations system is not implemented in Krita 4.x

For a file opened on a Krita 5.0 without plugin, BuliNotes are normally not lost because annotations are part of Krita 5.0 and even if there’s no plugin to read/modify/save them, Krita will internally read and save them without trying to understand content or determinate is annotations are used or not (this is the goal of annotations system in Krita: being able to manage extra data)

After, I said normally because:

  • Another plugin than BuliNote can decide to remove them (but ok, consider that if a plugin start to modify/delete annotations made by another plugin, there’s might be a problem in plugin conception)
  • Krita can have bug and by myself I can’t guarantee that open/save process will always be safe in future: a bug can always occurs, but I think Krita’s team is very attentive to this and then do what is necessary to ensure users don’t loose any data in open/save file process :wink:
    Usually this kind of problem if tehy occurs, will be seen in alpha or beta version testing (so if you use a stable version I think it’s safe)

Just, keep in mind that currently plugin is only available on Krita 5, and Krita 5 is only available as pre-alpha for now. So you can use it for test purpose, but it’s not really recommended to use it for production workflow (or do it at your own risk)

Grum99

3 Likes

Thank you for your really detailed explanatory answer that answered all my questions.

Michelist

Hi

Release 0.3.0a is available

[2021-04-18]

  • Post-it mode - allows to change linked layers properties
  • Color picker - improve color picker for text/hand written notes
  • Docker - add mime type “text/plain” and “text/html” for copy/paste action
  • Docker - allows to change notes positions in list
  • Settings - implement global settings
  • Miscellaneous - improve UI, improve performances, fix bugs

For screenshots and functionalities description, you can read the full detailed release content directly on github repository.
And main BuliNote page.

Reminder: plugin is only compatible with Krita 5.0.0

Grum999

4 Likes

Don’t know if this is the right place, but I want to thank you so much! This plugin is EXACTLY what I wanted to have in Krita. BR, Milan

1 Like

Possibility to document brushes… oh man what a relief!
One idea: possibility to save brush with all current parameters. Is this even possible?

Currently brushes are saved with current:

  • Blending mode
  • Size
  • Opacity
  • Flow

What do you mean by “all current parameters”?

Grum999

1 Like

Thanks, yes I’ve seen that. I’m totally new in Krita so maybe I ask stupid questions, but I will try to explain what I mean. For every brush engine there are different parameters which can be tweaked and I use this functionality quite a lot. The only way for me to save the state of the brush is to create new brush preset, otherwise I forget which tweaks I actually did. It is not complicated, but quickly brush preset library become overhelmed with many brushes which I used. If I want to distinguish them, I need some icon and I need to maintain consistent tagging… So I thought it would be perfect if these brush preset “states” could be saved on file basis with quick descriptions in Buli notes. Again, don’t know if this is possible at all.

PS: So far I found only KritaBrushInfo, which is better than nothing, but again operates only on saved brush presets… If there is a way to get live brush preset info with script, please let me know, it would be much usable for me.

1 Like

Ok, I understand.

I hesitated to store complete brush definition in Krita file, but didn’t implemented it:

  • Storage should be easy
  • Restoration would be very difficult I think as API doesn’t let you to manipulate resources (only read resources)

And I’m currently completely lost with resources manager and not able to understand how to use it :sweat_smile:
So trying to tweak it might be long, hard, with a risk to broke everything :slight_smile:

Also what to do with a restored brush?

  • Remove it if document is closed?
  • Keep it?
  • What if when brush already exists, with or without same properties?
    It start to be complex.

For what I understood of resource management, I think you have to store your brushes in bundles, and activate/deactivate bundle according to your needs.
But don’t ask me how to create a bundle, I already have difficulties to made distinction between active and inactives bundles.
Resources on Krita instance used for testing is in a terrible mess, I don’t touch anything on instance I use for drawing.

The best thing to do maybe is to create a new topic to expose your case and ask what is the best thing to do in your case to manage easily all your brushes.
There’s many people here that are expert with brushes and resources and might be better than me to give you tips :wink:

Grum999

1 Like

You certainly shouldn’t try to save/restore entire brush presets as annotations…
Krita 5.0 does have a concept of document storage for resources, palettes use it already. But as you already noticed, a number of things need to be taken into account before extending it to brushes

The entire versioning and deduplication of resources is something that no matter how you do it, has consequences that are not alway obvious at first but might confuse if not even frustrate users.

To be honest, I’m not even sure what concept we settled with for now.

1 Like