Skip to content

Select Screen

Linus Mußmächer edited this page Jun 29, 2024 · 2 revisions

The select screen is the screen rucola initially launches in.

Here you will find an (unordered) list overview of all notes currently indexed by rucola, some statistics and a search bar.

Statistics

Environments

At the top, there are two blocks of statistics, referring to two environments:

  • The global environment consists of all notes currently indexed by rucola and can only be changed by restarting the program (or directly changing your files).
  • The local environment consists of all notes currently matching your search query.

Per default, statistics are shown for the local environment if you have an active filter and for the global environment otherwise. You can configure this in the config file, see Configuration.

Global Statistics

  • The number of notes.
  • The total number of words in those notes.
  • The total number of characters in those notes.
  • The total number of (unique) tags used in those notes.
  • The total number of links between notes.
  • The number of those links which are broken, i.e. no valid target file could be found.

Local statistics

  • The number of notes matching your filter.
  • The total number of words in those notes.
  • The total number of characters in those notes.
  • The total number of (unique) tags used in those notes.
  • The number of links is split into four groups:
    • Internal links have both source and target in the local environment.
    • Incoming links have their (valid) target in the local environment and a source in the global environment (may also be in the local environment).
    • Outgoing links have their source in the local environment and a (valid) target in the global environment (may also be in the local environment).
    • Broken links have their source in the local environment and no valid target in any environment.

All values are accompanied by a percentage value comparing it to the equivalent stat of the global environment.

Filter

The filtering works by a default fuzzy matcher, matching your input to the note title. In addition, you can include condition words to search for notes fulfilling certain conditions. A condition always starts with an identifier and goes to the next whitespace.

  • #[tag] declares a tag condition: Only notes with the given tag [tag] will be shown. Here you can use nested tags: A note tagged as #math/topology can be found by both the conditions #math and #math/topology, but not by #topology itself.
  • !#[tag] declares a tag exclusion condition: Only notes without the given tag [tag] will be shown. Nested tags apply as above.
  • >[note] declares a link condition: Only notes that contain a link to the note [note] will be shown. For notes whose name contains a whitespace, replace it with -.
  • !>[note] declares a link exclusion condition: Only notes that do not link to the note [note] will be shown.
  • <[note] declares a backlink condition: Only notes that are linked to from the note [note] will be shown. For notes whose name contains a whitespace, replace it with -.
  • !<[note] declares a backlink exclusion condition: Only notes that are not linked to from the note [note] will be shown.

Only words not starting with any of these identifiers will be used in the title match. The order of these conditions words and title matching words can be freely chosen. All of these conditions and the title match are case insensitive.

Additionally, you can search the full text of your notes. When including the character | in your search string, everything previous to the | will be matched as described above, while everything after will be searched for in the full text content of your files verbatim (without fuzzy matching). Full text searching is case insensitive.

The Any/All conditions setting can be toggled with the A key. For the purposes of this function, the entirety of your input title is treated as a single condition.

For example, the filter string #math !#math/topology >Topology map |discrete with the All conditions setting shows all notes that are tagged as #math (or any nested subtag such as #math/geometry), not tagged with the nested tag #math/topology but still link to the Topology note, whose title contains some variation of map and whose full text contains the word discrete.

List

The list contains all notes matching your current filter. By default, notes will always be ordered in descending order of their match score for the title matching. This ordering can be changed by pressing the S key and then selecting a sorting criteria. The key combination S+R will reverse the current sorting.

For every note in the list, the following statistics are shown:

  • The name.
  • The number of words & characters in the note.
  • The number of global outlinks, i.e. links that start in that node and have a valid target.
  • The number of local outlinks, i.e. global outlinks whose target is in the local environment.
  • The number of global inlinks, i.e. links from other notes whose target is that one.
  • The number of local inlinks, i.e. links from other notes within the local environment whose target is that one.

These statistics let you judge how well-connected a note is, and whether it is mostly relevant within the filtered context or in general. You can sort by all of these values, and by the amount of broken links, which is useful for finding and purging these links.

You can freely scroll through the list and open any selected note in the Display Screen or your configured editor or viewer (see below).

File Management

From the select view, you can access a couple of file management options for your notes:

  • Create a new note. If it has a valid note file extension (as defined in your config) and does not fall under the rules of your .gitignore file (if present), the note will then be added to the index.
  • Delete the selected note.
  • Rename the selected note. Your input cannot be a path, i.e. this cannot move the underlying file to a new location but only rename the existing file in its current location. You can however set a new extension, if no new extension is given the old extension will be reused. This will update links in other indexed files to point to the new location. If the new name has a non-note file extension (as defined in your config) or causes the file to fall under the rules of your .gitignore file (if present), the note will be removed from the index.
  • Move the selected to another location relative to your current vault path. Your input will be interpreted as a folder - you cannot rename your notes this way. The name and extension at the new location will be the one the old file had. If the move causes the file to fall under the rules of your .gitignore file (if present), the note will be removed from the index.
  • Edit the note in your text editor (see Configuration).
  • View the currently selected notes HTML representation in an external viewer (see Configuration).

Hot reload

Rucola permanently tracks all file changes made within the vault folder, either through the program itself or externally and tries to keep the index up to date. This includes edits to notes (updates links, word count, ...), moves & renames, creations and deletions. This feature is currently untested on Windows. Feel free to let me know if you are a Windows user on what works and what doesn't.

Clone this wiki locally