Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 11 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,29 +11,31 @@

<p align="center"><a href='https://flathub.org/apps/com.vkhitrin.cosmicding'><img width='190' alt='Download on Flathub' src='https://flathub.org/api/badge?locale=en'/></a></p>

# cosmicding
# Cosmicding

cosmicding is a [linkding](https://github.com/sissbruecker/linkding) companion app for COSMIC™ Desktop Environment.
It provides an alternative frontend to linkding based on [libcosmic](https://github.com/pop-os/libcosmic).
Cosmicding is a bookmarks companion app for COSMIC™ Desktop Environment.
It allows storing bookmarks locally, and syncing bookmarks with remote providers.

While cosmicding was designed for COSMIC™ Desktop Environment, it may run cross-platform ([#24](https://github.com/vkhitrin/cosmicding/issues/24),
While Cosmicding was designed for COSMIC™ Desktop Environment, it may run cross-platform ([#24](https://github.com/vkhitrin/cosmicding/issues/24),
tested on Linux, and macOS).

Features:

- Support multiple linkding instances (or multiple users on the same instance).
- Aggregate bookmarks locally.
- Store bookmarks locally.
- Support remote bookmarks providers:
- linkding
- Aggregate bookmarks from multiple providers.
- Add/Edit/Remove bookmarks.
- Search bookmarks based on title, URL, tags, description, and notes.
- Import/Export bookmarks.

cosmicding has been tested with linkding releases >= `1.31.0`.
Cosmicding has been tested with linkding releases >= `1.31.0`.

## Installation

### Remote

cosmicding can be installed from remote sources in several ways:
Cosmicding can be installed from remote sources in several ways:

#### Linux

Expand Down Expand Up @@ -112,7 +114,7 @@ flatpak-builder --force-clean \

[cosmic-utils](https://github.com/cosmic-utils) organization for their code examples.
[@sissbruecker](https://github.com/sissbruecker) for creating linkding.
[system76](https://system76.com) for creating COSMIC, and making it fun to develop for.
[system76](https://system76.com) for creating COSMIC, and making it fun to develop for.

Translations:

Expand Down
4 changes: 3 additions & 1 deletion i18n/en/cosmicding.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ cancel = Cancel
cosmicding = Cosmicding
dark = Dark
description = Description
disable = Disable
disabled = Disabled
disabled-account = Disabled account {$acc}
disabled-public-sharing = Public bookmarks sharing disabled
Expand All @@ -30,6 +31,7 @@ display-name = Display Name
edit = Edit
edit-account = Edit Account
edit-bookmark = Edit Bookmark
enable = Enable
enable-favicons = Enable Favicons
enable-favicons-info = Fetched favicons will not be deleted
enabled = Enabled
Expand Down Expand Up @@ -68,14 +70,14 @@ last-sync-time = Last sync time
light = Light
match-desktop = Match Desktop
next = Next
no-accounts = No accounts configured
no-bookmarks = No bookmarks
no-bookmarks-found-for-account = No bookmarks found for account {$acc}
no-file-selected = No file selected
notes = Notes
open-accounts-page = Open Accounts Page
previous = Previous
provided-url-is-not-valid = Provided URL is not valid
public-sharing = Public Sharing
purge-favicons-cache = Purge Favicons Cache
purge-favicons-cache-confirm = Are you sure you wish to delete favicons cache?
quit = Quit
Expand Down
4 changes: 3 additions & 1 deletion i18n/sv/cosmicding.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ cancel = Avbryt
cosmicding = Cosmicding
dark = Mörkt
description = Beskrivning
disable = Inaktivera
disabled = Inaktiverad
disabled-account = Inaktiverat konto {$acc}
disabled-public-sharing = Delning av offentliga bokmärken har inaktiverats
Expand All @@ -30,6 +31,7 @@ display-name = Visningsnamn
edit = Redigera
edit-account = Redigera konto
edit-bookmark = Redigera bokmärke
enable = Aktivera
enable-favicons = Aktivera Favicons
enable-favicons-info = Fetched favicons kommer inte att tas bort
enabled = Aktiverad
Expand Down Expand Up @@ -68,14 +70,14 @@ last-sync-time = Senaste synkroniseringstid
light = Ljust
match-desktop = Matcha skrivbordet
next = Nästa
no-accounts = Inga konton har konfigurerats
no-bookmarks = Inga bokmärken
no-bookmarks-found-for-account = Inga bokmärken hittades för kontot {$acc}
no-file-selected = Ingen fil vald
notes = Anteckningar
open-accounts-page = Öppna kontosidan
previous = Föregående
provided-url-is-not-valid = Den angivna webbadressen är inte giltig
public-sharing = Offentlig delning
purge-favicons-cache = Rensa Cacheminnet För Favicons
purge-favicons-cache-confirm = Är du säker på att du vill radera favicons cache?
quit = Avsluta
Expand Down
149 changes: 149 additions & 0 deletions migrations/20251114222154_Add_Provider_Support.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
CREATE TABLE UserAccounts_new (
id INTEGER PRIMARY KEY NOT NULL,
display_name TEXT NOT NULL,
instance TEXT NOT NULL,
api_token TEXT NOT NULL,
last_sync_status INTEGER NOT NULL,
last_sync_timestamp INTEGER NOT NULL,
trust_invalid_certs INTEGER NOT NULL,
enabled INTEGER NOT NULL DEFAULT 1,
enable_sharing INTEGER NOT NULL DEFAULT 0,
enable_public_sharing INTEGER NOT NULL DEFAULT 0,
provider TEXT NOT NULL,
provider_version TEXT,
CHECK (
trust_invalid_certs IN (0, 1)
AND last_sync_status IN (0, 1)
AND enabled IN (0, 1)
AND enable_sharing IN (0, 1)
AND enable_public_sharing IN (0, 1)
)
);

INSERT INTO UserAccounts_new (
id,
display_name,
instance,
api_token,
last_sync_status,
last_sync_timestamp,
trust_invalid_certs,
enabled,
enable_sharing,
enable_public_sharing,
provider
)
SELECT
id,
display_name,
instance,
api_token,
last_sync_status,
last_sync_timestamp,
trust_invalid_certs,
enabled,
enable_sharing,
enable_public_sharing,
'linkding'
FROM UserAccounts;

INSERT INTO UserAccounts_new (
display_name,
instance,
api_token,
last_sync_status,
last_sync_timestamp,
trust_invalid_certs,
enabled,
enable_sharing,
enable_public_sharing,
provider
)
SELECT
'Cosmicding',
'',
'',
1,
0,
0,
1,
0,
0,
'cosmicding'
WHERE NOT EXISTS (SELECT 1 FROM UserAccounts_new WHERE provider = 'cosmicding');

DROP TABLE UserAccounts;
ALTER TABLE UserAccounts_new RENAME TO UserAccounts;

CREATE TABLE Bookmarks_new (
id INTEGER PRIMARY KEY NOT NULL,
user_account_id INTEGER NOT NULL,
provider_internal_id INTEGER,
url TEXT NOT NULL,
title TEXT NOT NULL,
description TEXT,
notes TEXT,
web_archive_snapshot_url TEXT,
favicon_url TEXT,
preview_image_url TEXT,
is_archived INTEGER NOT NULL,
unread INTEGER NOT NULL,
shared INTEGER NOT NULL,
tag_names TEXT,
date_added INTEGER NOT NULL,
date_modified INTEGER NOT NULL,
website_title TEXT,
website_description TEXT,
is_owner INTEGER DEFAULT 1,
CHECK (
is_archived IN (0, 1)
AND unread IN (0, 1)
AND shared IN (0, 1)
)
);

INSERT INTO Bookmarks_new (
id,
user_account_id,
provider_internal_id,
url,
title,
description,
notes,
web_archive_snapshot_url,
favicon_url,
preview_image_url,
is_archived,
unread,
shared,
tag_names,
date_added,
date_modified,
website_title,
website_description,
is_owner
)
SELECT
id,
user_account_id,
linkding_internal_id,
url,
title,
description,
notes,
web_archive_snapshot_url,
favicon_url,
preview_image_url,
is_archived,
unread,
shared,
tag_names,
date_added,
date_modified,
website_title,
website_description,
is_owner
FROM Bookmarks;

DROP TABLE Bookmarks;
ALTER TABLE Bookmarks_new RENAME TO Bookmarks;
Loading