# Kaapata User Manual Kaapata is a mobile capture app that runs on Android devices. Users can use the app to capture thoughts and data and deposit those directly into Obsidian in a streamlined way. Kaapata comes in three parts. - **Kaapata is a widget.** The real strength of Kaapata is as an Android widget. It provides a collection of buttons -- both fixed and iser-configurable -- for entering data into Obsidian, often without invoking Obsidian at all. Kaapata can be used as both a home screen widget and a lockscreen widget. - **Kaapata is an Android app.** In the Android app, Kaapata has configuration options that should be done on an Android device and an integrity check on the configuration file. - **Kaapata is a plugin.** The Kaapata plugin for Obsidian is used to configure the mobile capture options for the Android widget. Kaapata works with, in fact, depends on, other Obsidian plugins. Specifically, the Advanced URI plugin must be installed in order for commands to be executed within Obsidian. ## An Overview of Kaapata Kaapata is an Android widget and app that uses configuration built with an Obsidian plugin. An example of the Kaapata user interface can be found below: ![[fig1.png|500]] The top section is "fixed", that is, it cannot be configured by a user. The three top section buttons are, left to right, open a new note, open the daily note, and take a picture. The bottom section is configurable by a user and can have zero to six buttons configured. These buttons can be configured to respond in 4 different action areas: - **Open**: Open Obsidian on a daily or specific note. - **Write**: Write text to a note in Obsidian. Text is gathered using a single or multiline dialog and the input can be written using a template string that can access a variety of info through variables. - **Command**: Execute a command, with parameters augmented with variables, in Obsidian. - **Camera**: Take a picture using the phone's camera, placing the result in Obsidian, with optional link insertion. Button icons correspond to the action areas; they cannot be configured. Button labels are optional and can be configured by the user. ### Start with Configuration To start using Kaapata, the home screen app must be used to configure the location of the main Obsidian vault. - The complete path describing the location of the vault must be specified. - The folder icon on the right of the path specification can be used to find vault and to describe the complete path. - Once this is specified, tap the "Use Path" button to set up this description for the home screen widget. In addition to the location of the vault, the user-configurable buttons must be configured if they are to be used. The Obsidian plugin for Kaapata should be used to configure the rest of the information of the home screen widget. This configuration is started by opening up the "Settings" screen in Obsidian and tapping the "Kaapata Configurator" entry. The following configurations can be specified. - The vault name that each of the fixed buttons works with should be given. These should be prepopulated with the name of your main vault. - Up to six buttons can be configured. Configuration starts by clicking the switch next to the questions "Use Button #1?" where "1" is a number 1 through 6. Once a button is enabled, the section to configure it will be displayed. Different options go with action selections. A note should be made about variables. Variables are designated using double curly brackets (for example: "{{date}}" or "{{input}}"). Variables can be used in note and folder names, and in the format specified for taking and writing user input to a note. Currently, the following variables are used: - {{date:*format*}}: The current date will replace this variable, in the format given. The format is taken from Java; you can find patterns in may places, including [HERE](https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html) and [HERE](https://help.gooddata.com/cloudconnect/manual/date-and-time-format.html). If the format is omitted, the pattern "YYYY-MM-dd" will be used. - {{time:*format*}}: The current time will replace this variable, in the format given. As with "date", the time format is taken from Java; see the links above for patterns. If the format is omitted, the pattern "HH:mm" will be used. - {{gpscoordinates}}/{{longitude}}/{{latitude}}: The GPS coordinates of the current location will be used if that permission has been given to the app. - {{ipaddress}}: The current IP version 4 address will replace this variable, if the device is connected to a network. - {{wifiname}}: The current SSID name of the wireless network will replace this variable, if the device is connected to a wireless network. - {{input}}: This variable represents the text that a user types for the "write" action. A dialog will be presented to the user and the user's input will be gathered. *Note:* If no input variable is used in the "Written?" specification for a "write" action, then the data in the "Written?" specification will be written as directed, but no dialog will be presented for the user to type data into. This is useful for simply entering timestamps into a note. ### Using the widget Once the Kaapata configuration is given, the widget will display the proper buttons. Buttons #1 through #3 are display on the top row with the remaining buttons displayed in the bottom row. The widget is designed to detect when the configuration has been respecified and it will reset the display to correspond to a new configuration. ### Using the Lockscreen widget While lockscreen widgets would seem to be convenient, they were removed from Android starting in version 5.0 (called "Lollipop" when Android version were named after sweets). However, there are ways to get Kaapata on the lockscreen. - Samsung has enabled widgets on the lockscreen through its Good Lock LockStar module. - You can use a 3rd party app to get widgets on the lockscreen. See the article [linked here](https://www.howtogeek.com/811705/how-to-get-lock-screen-widgets-on-android/) for information. In both cases, working with the widget -- especially for user input -- is a bit kludgy and inconvenient. Rumor has it that Google is working to enable widgets on the lockscreen, especially since Apple included this in iOS. ## The integrity check in the app When the app is invoked, it will display a description of the configuration given in the Kaapata configuration file. This is for the user to review. An integrity check will also be run, giving error messages for conflicting configurations. For example, if a vault path is given that does not exist, this will be flagged. ## Future roadmap for Kaapata Kaapata has been released in its alpha version, so its future will definitely include suggestions by users and reviewers and bug fixes. In addition, some larger features are planned. - **Integration with Google Assistant:** It would be very convenient if Google Assistant could be used to enter notes by voice in an automated manner. - **Button chaining with invisible buttons:** Having the ability to chain buttons, that is, to perform more than one action on a button press, would be convenient. For example, one could specify a task entry by voice, enter that task in the daily note, and automatically synchronize that task with a todo-list service like TickTick or Todoist (these have plugins). Invisible buttons would implement actions that are not displayed but are used as chain steps. - **Double tap:** A way of implementing multiple actions on buttons -- like a double tap (here, we must have a *Zombieland* reference) -- would be a great way to add function without adding buttons. We might also be able to do with with "button gestures". - **URL API:** If we are able invoke actions with a URL (like, "kaapata://Grocery"), one could imagine sending a text message to a phone that is intercepted by an automating app (like Macrodroid or Tasker) and entered into Obsidian automatically. - **Google services:** One could also imagine Kaapata integrated with Google apps. Notifications, calendar entries, and reminders could all be done through Google. - **iPhone implementation:** The reason configuration is done through Obsidian is so that the option of an iOS version of Kaapata could be implemented.