"A Matrix client focusing primarily on simple, elegant and secure interface. The main goal is to have an instant messaging application that is easy on people and has a modern touch."
This is Cinny packaged for Ubuntu Touch with content hub integration and other changes to make it run as native matrix client. The original work has been done by @nitanmarcel. Many thanks for that! Now the app is maintained by Danfro.
Cinny does not only allow to let you have matrix messages on your UT device. With bridges you can have many more messages available like Signal or Slack. Please check the internet for available matrix bridges.
Cinny source package licensed under GNU AFFERO GENERAL PUBLIC LICENSE Version 3 (c) Ajay Bura (ajbura) and contributors.
Graphics by Ajay Bura (ajbura) licensed under CC BY 4.0 (c) by Ajay Bura (ajbura).
Click packaging was originally done by Marcel Alexandru Nitan GPLv3 (C) 2022 Marcel Alexandru Nitan. Thanks to his work we have this great app available on UT.
The forked app in this repository maintained by me (Danfro).
- Install Clickable
- Get a local copy of this repository with
git clone --recurse-submodules git@github.com:Danfro/cinny-ut.git - Change into the cinny click packaging folder
- Attach an Ubuntu Touch device via usb to your machine
- Run
clickable --cleanfrom the root folder of this repository to build and deploy the app on your attached device, or runclickable desktopto test the app on desktop. You can runclickable logfor debugging information. In my experienceclickable --dirtydoesn't work well and brings funny errors in ciny. - When only modifying the QML/UT part of the app, you can avoid rebuilding Cinny every time you build and run the app by temporarily commenting out the line
prebuild: "bash ${ROOT}/prebuild.sh"inclickable.yaml
The build process does download and install
- nvm
- node
- cinny source
Doing all three steps every time cinny-ut is build is quite cumbersome. To avoid this, the prebuild.sh script has been designed to allow using locally present copies of the three.
nvmneeds to be installed into thecinny-ut/nvmsubfolder, get it here, sincenvmis only used to install node, it doesn't need to be installed when node is installed locally, update with the curl command given on their github pagenodejs(akanpm) needs to be installed into thecinny-ut/npmsubfolder, get it here, generally you need the node_x64 architecture when downloading a prebuild package, update withnvm install 22.15.1- cinny source needs to be in the
cinny-ut/cinnysubfolder, this can be cloned from their github withgit clone https://github.com/cinnyapp/cinny cinny --recurse-submodules --depth=1 --branch="v4.7.0"
For UT integration several patches are applied. Those are located in the /patches folder. Please see the patch description for details.
When Cinny is build, first a fresh copy of Cinny with the version specified in prebuild.sh is downloaded from the originating repository. So if we need to apply changes, we need to use patches, that will be applied after the code has been downloaded.
Before the click packaging, in prebuild.sh the function apply_patches () cycles through all available .patch files and applies the changes. Patches use the git diff magic to create patches and to apply those changes.
To create a patch...
-
enter the folder of the git repository (for Cinny the /cinny subfolder) with
cd cinny -
make sure only the changes are present, that want to go into one patch, discard all other changes OR run
git diffspecifying a single file -
use
git diff > file.patchto create a patch file of all present changes -
for the diff of a single file run
git diff -- ./src/client/state/cons.js -p > ../patches/cons.patch -
cd ..back into the cinny packaging folder -
after each build leave the cinny subfolder, otherwise git will not pick up changes
-
move the patch file from the cinny folder to the patches folder
-
combined command (edit patch file name):
cd cinny && git diff > ../patches/0006-Download-media-using-qml-backend.patch && cd .. -
the
git applycommand is then used in prebuild.sh to apply the diff patches
