You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -12,96 +13,116 @@ Historically this was once possible using [the mozilla sync app](https://github.
12
13
**News:** Floccus v2.0 can now sync all your bookmarks with all of your ginormous folder hierarchy. :weight_lifting_woman:
13
14
14
15
## Install
16
+
15
17
For this to work with your Nextcloud server, you need at least version v0.11 of the Bookmarks app installed. Once you've done that you can continue to install floccus in your browser as follows.
16
18
17
19
**Note:** It is recommended to not enable native bookmark synchronization built into your browser, as it is known to cause issues.
18
20
19
21
### Chrome
22
+
20
23
You can [install it via the Chrome Web store](https://chrome.google.com/webstore/detail/floccus-nextcloud-sync/fnaicdffflnofjppbagibeoednhnbjhg)
21
24
22
25
Alternatively, you can still install it by [downloading the Chrome package from the latest release](https://github.com/marcelklehr/floccus/releases/) and dropping it into Chrome's extension page.
23
26
24
-
25
-
26
27
#### Updating from 1.x to v2.0
28
+
27
29
It is recommended to remove all of your bookmarks from your accounts before updating floccus, deleting them and after updating to reconnect them again, in order to prevent unforeseen problems!
28
30
29
31
### Firefox
32
+
30
33
You can [install it via AMO](https://addons.mozilla.org/en-US/firefox/addon/floccus/).
31
34
32
35
(Note that AMO has to review all new releases, though, so you might need to wait a bit before you can install the latest release on firefox.)
33
36
34
37
#### Updating from 1.x to v2.0
38
+
35
39
It is recommended to remove all of your bookmarks from your accounts before updating floccus, deleting them and after updating to reconnect them again, in order to prevent unforeseen problems!
36
40
37
41
### Firefox for Android
38
-
Floccus is not supported by Firefox for Android, [yet](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/bookmarks#Browser_compatibility).
39
42
43
+
Floccus is not supported by Firefox for Android, [yet](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/bookmarks#Browser_compatibility).
40
44
41
45
## Usage
42
-
***The options panel**; After installation the options pane will pop up allowing you to create accounts and edit their settings. You will be able to access this pane at all times by clicking the floccus icon in the browser tool bar.
43
-
***Your accounts**: You can setup multiple nextcloud accounts and select a bookmark folder for each, that should be synced with that account. Floccus will keep the bookmarks in sync with your nextcloud whenever you add or change them and will also sync periodically to pull the latest changes from the server.
44
-
***Syncing the root folder**: If you want to sync all bookmarks in your browser you need to select the topmost untitled folder in the folder picker. Syncing the root folder across browsers from different vendors is not possible currently, as the main bookmark folders (like "Other bookmarks") are hardcoded and different for each browser vendor.
46
+
47
+
-**The options panel**; After installation the options pane will pop up allowing you to create accounts and edit their settings. You will be able to access this pane at all times by clicking the floccus icon in the browser tool bar.
48
+
-**Your accounts**: You can setup multiple nextcloud accounts and select a folder in your bookmarks for each account, that should be synced with the server. Floccus will keep the bookmarks in sync with your nextcloud whenever you add or change them and will also sync periodically to pull the latest changes from the server.
49
+
-**Syncing all your bookmarks**: If you want to sync all bookmarks in your browser you can select the topmost untitled folder as your sync folder in the folder picker. Syncing the root folder across browsers from different vendors is not possible this way, however, because the main bookmark folders (like "Other bookmarks" and your bookmarks toolbar) are hardcoded and are named differently for each browser vendor. Thus they cannot be synced automatically. Read below how to sync all your bookmarks across browsers anyway.
50
+
51
+
### The server path: Mapping folders
52
+
53
+
You can specify a 'server path' in your floccus account setup. This is like the target folder of a copy or rsync command. While the sync folder you have selected from your browser bookmarks normally will end up being synced to the root path on your server, you can change that to an arbitrary sub-directory, e.g. /Toolbar.
54
+
55
+
To sync all of your bookmarks across browsers from different vendors, you can setup multiple floccus accounts per browser: One for each main bookmarks folder you'd like to sync. You can, for example, create an account, set the server path to `/Toolbar` and select `/Bookmarks Toolbar` as the local folder in your bookmarks to sync. If you want to sync `Other bookmarks`, too, you can create a new account with the same credentials, select `/Other Bookmarks` in the options, but this time you specify a different path in 'server path' , e.g. /Others.
45
56
46
57
### Limitations
47
-
* Note that currently you cannot sync the same folder with multiple nextcloud accounts in order to avoid data corruption. If you sync the root folder with one account and sync a sub folder with a different account, that sub-folder will not be synced with the account connected to the root folder anymore.
48
-
* Floccus yields an error if you attempt to sync a folder with duplicate bookmarks (two or more bookmarks of the same URL). Remove one of the bookmarks for floccus to resume normal functionality.
49
-
* Syncing the root folder across browsers from different vendors is not possible currently, as the main bookmark folders (like "Other bookmarks") are hardcoded and different for each browser vendor.
58
+
59
+
- Note that currently you cannot sync the same folder with multiple nextcloud accounts in order to avoid data corruption. If you sync the root folder with one account and sync a sub folder with a different account, that sub-folder will not be synced with the account connected to the root folder anymore.
60
+
- Floccus yields an error if you attempt to sync a folder with duplicate bookmarks (two or more bookmarks of the same URL). Remove one of the bookmarks for floccus to resume normal functionality.
50
61
51
62
## Goals and Limitations aka. Is this a good idea?
63
+
52
64
As there have been debates about whether this software product is a good idea, I've made a little section here with my considerations.
53
65
54
66
### Goals
55
-
The goals of this piece of software
56
67
57
-
* provide an open cross-platform sync solution for browser data with nextcloud
58
-
* performance is a plus, but not necessary
59
-
* (eventual) consistency is more important than intention preservation (i.e. when ever a mistake happens during sync, it's guaranteed to be eventually consistent on all sites)
68
+
The goals of this piece of software
60
69
70
+
- provide an open cross-platform sync solution for browser data with nextcloud
71
+
- performance is a plus, but not necessary
72
+
- (eventual) consistency is more important than intention preservation (i.e. when ever a mistake happens during sync, it's guaranteed to be eventually consistent on all sites)
61
73
62
74
### Current status and Limitations
75
+
63
76
The WebExtensions bookmarks API has a few limitations:
64
77
65
-
1. No support for batching or transactions
66
-
2. Record GUIDs can change, but are only known to change when Firefox Sync is used.
67
-
3. The data format doesn't represent descriptions, tags or separators
68
-
4. No way to create a per-device folder
69
-
5. It's impossible to express safe operations, because there are no compare-and-set primitives.
70
-
6. Triggering a sync after the first change, causing repeated syncs and inconsistency to spread to other devices.
78
+
1.No support for batching or transactions
79
+
2.Record GUIDs can change, but are only known to change when Firefox Sync is used.
80
+
3.The data format doesn't represent descriptions, tags or separators
81
+
4.No way to create a per-device folder
82
+
5.It's impossible to express safe operations, because there are no compare-and-set primitives.
83
+
6.Triggering a sync after the first change, causing repeated syncs and inconsistency to spread to other devices.
71
84
72
85
Nonetheless, I've chosen to utilize the WebExtensions API for implementing this sync client. As I'm aware, this decision has (at least) the following consequences:
73
-
1. No transaction support (\#1) leads to bad performance
74
-
2. No support for transactions (\#1) also can potentially cause intermediate states to be synced. However, all necessary precautions are taken to prevent this and even in the case that this happens, all sites will be eventually consistent, allowing you to manually resolve possible problems after the fact.
75
-
3. Due to the modification of GUIDs (\#2), usage of Firefox Sync along with Floccus is discouraged.
76
-
4. The incomplete data format (\#3) is an open problem, but doesn't impact the synchronization of the remaining accessible data.
77
-
5. The inability to exclude folders from sync in 3rd-party extensions (\#4) is a problem, but manageable when users are able to manually choose folders to ignore. (Currently not implemented)
78
-
6. The lack of safe write operations (\#5) can be dealt with similarly to the missing transaction support: Changes made during sync could lead to an unintended but consistent state, which can be resolved manually. Additionally, precautions are taken to prevent this.
79
-
7. In order to avoid syncing prematurely (\#6) floccus employs a timeout to wait until all pending bookmarks operations are done.
86
+
87
+
1. No transaction support (\#1) leads to bad performance
88
+
2. No support for transactions (\#1) also can potentially cause intermediate states to be synced. However, all necessary precautions are taken to prevent this and even in the case that this happens, all sites will be eventually consistent, allowing you to manually resolve possible problems after the fact.
89
+
3. Due to the modification of GUIDs (\#2), usage of Firefox Sync along with Floccus is discouraged.
90
+
4. The incomplete data format (\#3) is an open problem, but doesn't impact the synchronization of the remaining accessible data.
91
+
5. The inability to exclude folders from sync in 3rd-party extensions (\#4) is a problem, but manageable when users are able to manually choose folders to ignore. (Currently not implemented)
92
+
6. The lack of safe write operations (\#5) can be dealt with similarly to the missing transaction support: Changes made during sync could lead to an unintended but consistent state, which can be resolved manually. Additionally, precautions are taken to prevent this.
93
+
7. In order to avoid syncing prematurely (\#6) floccus employs a timeout to wait until all pending bookmarks operations are done.
80
94
81
95
## What's with the name?
96
+
82
97
[Cirrus floccus](https://en.wikipedia.org/wiki/Cirrus_floccus) is a type of cloud, that <del>can sync your browser data</del> looks very nice.
83
98
84
99
## Donate
100
+
85
101
If you'd like to support the creation and maintenance of this software, consider donating.
86
102
87
103
<ahref="https://liberapay.com/marcelklehr/donate"><imgalt="Donate using Liberapay"src="https://liberapay.com/assets/widgets/donate.svg"></a>
88
104
89
105
## Contribute
106
+
90
107
All contributions, code, feedback and strategic advice, are welcome. If you have a question you can contact me directly via email or simply [open an issue](https://github.com/marcelklehr/floccus/issues/new) on the repository. I'm also always happy for people helping me test new features -- see the issues for announcements of beta versions.
91
108
92
109
### Setting up a dev environment
93
-
* Clone this repository.
94
-
* Install node.js and npm
95
-
* In the root of your floccus repo, run `npm install && npm install -g gulp`
96
-
* Run `gulp` to build
97
-
* Install firefox developer edition and prepare it as follows: https://developer.mozilla.org/en-US/Add-ons/Setting_up_extension_development_environment
110
+
111
+
- Clone this repository.
112
+
- Install node.js and npm
113
+
- In the root of your floccus repo, run `npm install && npm install -g gulp`
114
+
- Run `gulp` to build
115
+
- Install firefox developer edition and prepare it as follows: https://developer.mozilla.org/en-US/Add-ons/Setting_up_extension_development_environment
98
116
99
117
### Building
100
-
*`gulp`
118
+
119
+
-`gulp`
101
120
102
121
### Releasing
122
+
103
123
Firefox expects a zip, for chrome do the following: https://developer.chrome.com/extensions/packaging (private key necessary!)
0 commit comments