Compare commits

...

4 Commits

Author SHA1 Message Date
√(noham)²
28fe82a3bc Update clock.qmd 2026-07-01 19:05:26 +02:00
√(noham)²
86e43a4d8d Update README.md 2026-07-01 17:54:46 +02:00
√(noham)²
e5ffe1a504 Add Vellum package manager integration 2026-07-01 17:52:23 +02:00
√(noham)²
e20ec7ae29 Add 3.27.3.0 QMD extensions and README 2026-07-01 17:45:23 +02:00
14 changed files with 307 additions and 17 deletions

1
.gitignore vendored
View File

@@ -3,3 +3,4 @@ qmldiff
hashchange hashchange
.DS_Store .DS_Store
DOC.md DOC.md
.opencode/skills/qmd-port/SKILL.md

View File

@@ -0,0 +1,14 @@
AFFECT [[16664384747789373392]]
TRAVERSE [[3819512207256720568]] > [[7081645463424]]#[[14500576802168220354]] > [[254494525842443467]] > [[254501558939456351]]#[[16044303013921817534]]
LOCATE AFTER ALL
INSERT {
~&6503165774&~ {
~&6504315758&~: ~&12464413590283098527&~.~&233722187800420&~.~&8399929542203138183&~ + ~&"180910&~
~&214622605608&~: ~&7082020628281&~.~&8399340017235344933&~
~&6503823200&~.~&254543497768871654&~: 24
~&6014474628714890946&~: ~&6503165774&~.~&14019785292674113803&~
~&7081629735527&~.~&254522510204479688&~: ~&5971598&~.~&14019785292674113803&~
}
}
END TRAVERSE
END AFFECT

62
3.27.3.0/clock.qmd Normal file
View File

@@ -0,0 +1,62 @@
; credit for the original clock implementation: https://github.com/StarNumber12046/xovi-qmd-extensions/blob/main/clock.qmd
AFFECT [[4911547370760691430]]
TRAVERSE [[3819512207256720568]] > [[14125623155555875541]]#[[15885405667098360701]]
LOCATE BEFORE [[16385778650434842232]]#[[7709552963638993992]]
INSERT {
~&16385778650434842232&~ {
~&5972374&~: clockSidebarItem
~&8399878573055752961&~: "clockSidebarObject"
~&214642559243&~: ~&5971598&~.~&6460516198169535423&~(getCestTime(), set_Format_Date)
~&8399601734642709923&~: ~&"4628214070783643584&~
~&7082453764421&~: ~&214625660372&~
~&233726547792244&~: ~&6504329801&~
/* 1000 = 1 second / 60000 = 1 minute */
property ~&197088788&~ set_Timer: 60000
property ~&7083178290016&~ set_Format_Date: "dd/MM hh:mm"
function getCestTime() {
~&7083121450889&~ new ~&6502586279&~();
}
~&254480451320573660&~.~&495334332051582499&~: {
~&214642559243&~ = ~&5971598&~.~&6460516198169535423&~(getCestTime(), set_Format_Date);
}
~&254542236275632405&~: {
~&5972376&~ (clockSidebarItem.set_Timer === 60000) {
clockSidebarItem.set_Timer = 1000;
clockSidebarItem.set_Format_Date = "dd/MM hh:mm:ss";
} ~&6503784146&~ {
clockSidebarItem.set_Timer = 60000;
clockSidebarItem.set_Format_Date = "dd/MM hh:mm";
}
~&214642551402&~.~&7713147298280334&~ = clockSidebarItem.set_Timer
clockSidebarItem.~&214642559243&~ = ~&5971598&~.~&6460516198169535423&~(clockSidebarItem.getCestTime(), clockSidebarItem.set_Format_Date);
}
/* Timer for update time */
~&214604601930&~ {
~&5972374&~: ~&214642551402&~
~&7713147298280334&~: clockSidebarItem.set_Timer
~&7083121289162&~: ~&6504329801&~
~&233743626668842&~: ~&6504329801&~
~&495358363329399331&~: {
clockSidebarItem.~&214642559243&~ = ~&5971598&~.~&6460516198169535423&~(clockSidebarItem.getCestTime(), clockSidebarItem.set_Format_Date);
}
}
~&7081629735527&~.~&17520348323745447649&~: ~&7082020628281&~.~&15061686673205541622&~
~&7081629735527&~.~&7797818826744279624&~: ~&7083038346995&~.~&214646099849&~
~&11921478716705041271&~: ~&6504254477&~
function ~&7712792149454042&~() {
~&7083211098251&~();
}
}
}
END TRAVERSE
END AFFECT

View File

@@ -0,0 +1,11 @@
AFFECT [[3197972396468700595]]
TRAVERSE [[6502786168]]#[[10742505294233322867]]
TRAVERSE [[12395602925408354507]]#[[214642769434]]
REMOVE [[425121728314878811.16765000136167945189.7081261925573]]#[[3012293087768835154]]
END TRAVERSE
END TRAVERSE
END AFFECT
AFFECT [[3513522976947834303]]
REMOVE [[454089850271038938]]
END AFFECT

View File

@@ -0,0 +1,68 @@
; credit for the original clock implementation: https://github.com/StarNumber12046/xovi-qmd-extensions/blob/main/quickSettingsClock.qmd
AFFECT [[12542166428983872557]]
IMPORT [[7082573613689.5972775.6504315758]] [[180922.180921]]
TRAVERSE [[7711468349764991]] > [[6502786168]] > [[8397788359424131273]] > [[14125623155555875541]]#[[233718721544006]]
LOCATE AFTER [[6502786168]] > [[425121728314878811.15389500557572665857]]#[[6026822765657717152]]
INSERT {
~&6502786168&~ {
~&7081629735527&~.~&17520348323745447649&~: ~&7082020628281&~.~&10286380502125731829&~
~&7081629735527&~.~&8399743405844438450&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233740248806464&~.~&7083363878252&~
~&7081629735527&~.~&499747351624466981&~: ~&254477762679831355&~.~&214603824602&~.~&7713684474795983&~.~&7713442318223278&~.~&233740248806464&~.~&7083363878252&~
~&7081629735527&~.~&254529418434902000&~: ~&6504329801&~
~&14397210151462632996&~ {
~&5972374&~: quickSettingsClock
~&233721384511543&~ {
~&6504027668&~: ~&7083038346995&~.~&6504027668&~
~&3441383163516681764&~: ~&7083038346995&~.~&3441383163516681764&~
}
property ~&6503679477&~ showSeconds: ~&214625660372&~
property ~&7083178290016&~ minuteFormat: "dd/MM hh:mm"
property ~&7083178290016&~ secondFormat: "dd/MM hh:mm:ss"
property ~&197088788&~ minuteInterval: 60000
property ~&197088788&~ secondInterval: 1000
~&6504315758&~: ~&5971598&~.~&6460516198169535423&~( new ~&6502586279&~(), minuteFormat)
function updateClock() {
~&6504315758&~ = ~&5971598&~.~&6460516198169535423&~( new ~&6502586279&~(), showSeconds ? secondFormat : minuteFormat);
}
~&254480451320573660&~.~&495334332051582499&~: {
updateClock();
}
onShowSecondsChanged: {
quickSettingsClockTimer.~&233743006639214&~();
updateClock();
}
~&214604601930&~ {
~&5972374&~: quickSettingsClockTimer
~&7713147298280334&~: quickSettingsClock.showSeconds ? quickSettingsClock.secondInterval : quickSettingsClock.minuteInterval
~&7083121289162&~: ~&6504329801&~
~&233743626668842&~: ~&6504329801&~
~&495358363329399331&~: {
quickSettingsClock.updateClock();
}
}
~&254494525842443467&~ {
~&233721384511543&~.~&6503816592&~: ~&7083038346995&~
~&477346538929698200&~: ~&5971598&~.PointingHandCursor
~&254542236275632405&~: {
quickSettingsClock.showSeconds = !quickSettingsClock.showSeconds;
}
}
}
}
}
END TRAVERSE
END AFFECT

View File

@@ -0,0 +1,89 @@
; ported from 3.23.0.64
; In 3.22/3.23 the create buttons were emitted by a C++ Repeater (not QML).
; By 3.27 the firmware migrated to a QML Repeater backed by createWidgets model,
; so this QMD was rewritten: it keeps the Repeater (search, calendar, quick-sheet)
; and inserts the notebook, folder and quick-sheet buttons inline after it.
AFFECT [[13636194074538366841]]
TRAVERSE [[6502786168]]#[[6504254477]]
TRAVERSE [[254501108490678590]]#[[16596251247453125840]] > [[254501558939456351]]#[[6391657810197849963]]
LOCATE AFTER ALL
INSERT {
~&254501108490678590&~ {
~&7081629735527&~.~&8399470807760157065&~: ~&6504329801&~
~&7081629735527&~.~&16239278111605497701&~: 2
~&214622605608&~: ~&"214621299494&~
~&233748328658231&~: ~&6504254477&~.~&6504391364&~ === ~&"233737316206498&~ || ~&6504254477&~.~&6504391364&~ === ~&"7834776425552261693&~
}
~&254494525842443467&~ {
~&5972374&~: _notebookBtn
~&7081629735527&~.~&254522510204479688&~: ~&5971598&~.~&14019785274593562237&~
~&7081629735527&~.~&16239278111605497701&~: 64
~&7081629735527&~.~&8399470807760157065&~: ~&6504329801&~
~&7081629735527&~.~&8399743405844438450&~: 40
~&233748328658231&~: ~&6504254477&~.~&6504391364&~ === ~&"233737316206498&~ || ~&6504254477&~.~&6504391364&~ === ~&"7834776425552261693&~
~&14125623155555875541&~ {
~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~
~&233744706647566&~: 0
~&425121728314878811&~.~&6502767986&~ {
~&7081629735527&~.~&254522510204479688&~: ~&5971598&~.~&14019785274593562237&~
~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&7082925185962&~
~&7083172477658&~: ~&"8609871731041592465&~
}
}
~&254542236275632405&~: {
~&197102514&~ ~&197093806&~ = ~&7083038346995&~.~&7083038346995&~.~&7083038346995&~.~&7083038346995&~;
~&197093806&~.~&11689254259907176254&~();
}
}
~&254494525842443467&~ {
~&5972374&~: _folderBtn
~&7081629735527&~.~&254522510204479688&~: ~&5971598&~.~&14019785274593562237&~
~&7081629735527&~.~&16239278111605497701&~: 64
~&7081629735527&~.~&8399470807760157065&~: ~&6504329801&~
~&7081629735527&~.~&8399743405844438450&~: 40
~&233748328658231&~: ~&6504254477&~.~&6504391364&~ === ~&"233737316206498&~
~&14125623155555875541&~ {
~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~
~&233744706647566&~: 0
~&425121728314878811&~.~&6502767986&~ {
~&7081629735527&~.~&254522510204479688&~: ~&5971598&~.~&14019785274593562237&~
~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&7082925185962&~
~&7083172477658&~: ~&"1888152859110688812&~
}
}
~&254542236275632405&~: {
~&197102514&~ ~&197093806&~ = ~&7083038346995&~.~&7083038346995&~.~&7083038346995&~.~&7083038346995&~;
~&197093806&~.~&1343967321191992457&~(~&"477188259920763378&~);
}
}
~&254494525842443467&~ {
~&5972374&~: _quickSheetBtn
~&7081629735527&~.~&254522510204479688&~: ~&5971598&~.~&14019785274593562237&~
~&7081629735527&~.~&16239278111605497701&~: 64
~&7081629735527&~.~&8399470807760157065&~: ~&6504329801&~
~&7081629735527&~.~&8399743405844438450&~: 40
~&7081629735527&~.~&499747351624466981&~: 40
~&233748328658231&~: ~&6504254477&~.~&6504391364&~ !== ~&"214642862219&~
~&14125623155555875541&~ {
~&233721384511543&~.~&7712879746914881&~: ~&7083038346995&~
~&233744706647566&~: 0
~&425121728314878811&~.~&6502767986&~ {
~&7081629735527&~.~&254522510204479688&~: ~&5971598&~.~&14019785274593562237&~
~&6504284228&~: ~&425121728314878811&~.~&7082020628281&~.~&7713132906001613&~.~&7082925185962&~
~&7083172477658&~: ~&"5726907772531472741&~
}
}
~&254542236275632405&~: {
~&197102514&~ doc = ~&2918312801265623842&~.~&498775298796480658&~();
~&5972376&~ (doc && doc.~&6504337259&~ === 1) {
~&197102514&~ ~&197093806&~ = ~&7083038346995&~.~&7083038346995&~.~&7083038346995&~.~&7083038346995&~;
~&197093806&~.~&2766288418351025740&~.~&6504147419&~(~&"80852525132738217&~, {
~&8399386052748489877&~: doc.~&5972374&~,
~&6504167078&~: doc.~&254543134818768527&~ - 1
});
}
}
}
}
END TRAVERSE
END AFFECT

View File

@@ -1,8 +1,14 @@
# Xovi Extensions # Xovi Extensions
This repo consists of multiple xovi (.qmd) extensions that are QoL improvements to the xochitl interface. These require [qt-resource-rebuilder](https://github.com/asivery/rm-xovi-extensions/tree/master/qt-resource-rebuilder) to work. ## Installation
Instructions to install xovi can be found [here](https://github.com/asivery/rmpp-xovi-extensions/blob/master/INSTALL.MD). Installation via the [Vellum package manager](https://github.com/vellum-dev/vellum) is recommended. Dependencies are handled automatically.
### Manual
All extensions require qt-resource-rebuilder, some will require other xovi extensions. See each extension for details.
Instructions to install xovi can be found [here](https://github.com/asivery/rmpp-xovi-extensions).
Download the extensions from the folder matching your reMarkable software version. Download the extensions from the folder matching your reMarkable software version.
@@ -20,41 +26,80 @@ Beta releases are not tested nor supported.
## Extensions ## Extensions
### Version 3.27.3.0
#### `batteryPercentage.qmd`
<!-- [![vellum](https://img.shields.io/badge/vellum-battery--percentage-purple)](https://vellum.delivery/#/package/battery-percentage/) -->
- Shows the battery percentage next to the battery icon in the main view header.
<img src="images/batteryPercentage.png" width="400">
#### `clock.qmd`
[![vellum](https://img.shields.io/badge/vellum-sidebar--clock-purple)](https://vellum.delivery/#/package/sidebar-clock/)
- Adds a live clock to the library sidebar; tap the entry to toggle seconds display.
<img src="images/clock_1.png" width="400">
<img src="images/clock_2.png" width="400">
Note: You have to set the right timezone on the tablet (you can use [reManager](https://github.com/rmitchellscott/reManager) to set it)
#### `convertToText_remover.qmd`
[![vellum](https://img.shields.io/badge/vellum-convert--to--text--remover-purple)](https://vellum.delivery/#/package/convert-to-text-remover/)
- Removes the `Convert to text` option from selection menus and the toolbar (ported from 3.23.0.64).
<img src="images/convertToText_remover.png" width="400">
#### `uncompressDock.qmd`
[![vellum](https://img.shields.io/badge/vellum-uncompress--dock-purple)](https://vellum.delivery/#/package/uncompress-dock/)
- Replaces the widget-based create menu with dedicated buttons for notebook, folder, and quick sheet creation.
- **Rewritten** for the new `HomeScreen.CreateMenu` — the old `Navigator.CreateMenu` is no longer used in 3.27.
- Note: Notebook and Folder use Navigator methods; Quicksheet uses `LibraryController` (experimental).
<img src="images/uncompressDock.png" width="400">
#### `quickSettingsClock.qmd`
- Injects a tappable clock into the Quick Settings header; tap to toggle between minute and second precision.
Use [quicksettings-clock-serif](https://github.com/rmitchellscott) by rmitchellscott instead.
<img src="images/quickSettingsClock.png" width="400">
### `tagButton.qmd` & `favoriteButton.qmd`
- Those tweaks have been implemented by the reMarkable team in the latest update, so they are no longer needed :)
### Version 3.23.0.64 ### Version 3.23.0.64
#### `clock.qmd` #### `clock.qmd`
- Adds a live clock to the library sidebar; tap the entry to toggle seconds display. - Adds a live clock to the library sidebar; tap the entry to toggle seconds display.
![Sidebar clock showing minutes](images/clock_1.png)
![Sidebar clock showing seconds](images/clock_2.png)
Note: You can add a timezone by editing the `clock.qmd` file and changing the timezone string in the line:
```
~&197102514&~ utc = now.getTime() + (now.getTimezoneOffset() * 60000);
```
#### `quickSettingsClock.qmd` #### `quickSettingsClock.qmd`
- Injects a tappable clock into the Quick Settings header; tap to toggle between minute and second precision. - Injects a tappable clock into the Quick Settings header; tap to toggle between minute and second precision.
![Quick settings clock](images/quickSettingsClock.png)
Note: You can add a timezone by editing the `quickSettingsClock.qmd`, see above for details.
#### `forceSync.qmd` #### `forceSync.qmd`
[![vellum](https://img.shields.io/badge/vellum-force--sync-purple)](https://vellum.delivery/#/package/force-sync/)
<img src="images/forceSync.png" width="400">
- Adds a cloud button in Quick Settings that forces a library sync when tapped (need further testing to confirm it works as intended). - Adds a cloud button in Quick Settings that forces a library sync when tapped (need further testing to confirm it works as intended).
![Force sync button in quick settings](images/forceSync.png)
#### `favoriteButton.qmd` #### `favoriteButton.qmd`
[![vellum](https://img.shields.io/badge/vellum-favorite--button-purple)](https://vellum.delivery/#/package/favorite-button/)
- Restores a `Favorite` action in the document list header for faster pinning. - Restores a `Favorite` action in the document list header for faster pinning.
![Favorite button in action bar](images/favoriteButton.png)
<img src="images/favoriteButton.png" width="400">
#### `tagButton.qmd` #### `tagButton.qmd`
[![vellum](https://img.shields.io/badge/vellum-tag--button-purple)](https://vellum.delivery/#/package/tag-button/)
- Puts a `Tag` action next to other list controls to open the tag editor directly. - Puts a `Tag` action next to other list controls to open the tag editor directly.
![Tag button in action bar](images/tagButton.png)
<img src="images/tagButton.png" width="400">
#### `convertToText_remover.qmd` #### `convertToText_remover.qmd`
- Removes the `Convert to text` option from selection menus and the toolbar. - Removes the `Convert to text` option from selection menus and the toolbar.
![Convert to text removed from menu](images/convertToText_remover.png)
#### `uncompressDock.qmd` #### `uncompressDock.qmd`
- Replaces the condensed `More` menu in the new document dock with dedicated buttons for notebook, folder, and quick sheet creation. - Replaces the condensed `More` menu in the new document dock with dedicated buttons for notebook, folder, and quick sheet creation.
![Expanded create menu buttons](images/uncompressDock.png)
<img src="images/uncompressDock_old.png" width="400">
#### `hideDocumentClose.qmd` #### `hideDocumentClose.qmd`
- Hides the close button in the document toolbar to prevent accidental exits. - Hides the close button in the document toolbar to prevent accidental exits.
Use [hide-document-close](https://github.com/ingatellent) by ingatellent instead.

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 188 KiB

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB