From a1c1aff60cd559bf2283136aafe9a893c94516b8 Mon Sep 17 00:00:00 2001 From: sanua356 Date: Sun, 26 Jul 2026 14:46:03 +0300 Subject: [PATCH 01/34] add search field in 'open with' dialog --- i18n/af/cosmic_files.ftl | 1 + i18n/ar/cosmic_files.ftl | 1 + i18n/be/cosmic_files.ftl | 1 + i18n/bg/cosmic_files.ftl | 1 + i18n/ca/cosmic_files.ftl | 1 + i18n/cs/cosmic_files.ftl | 1 + i18n/da/cosmic_files.ftl | 1 + i18n/de/cosmic_files.ftl | 1 + i18n/el/cosmic_files.ftl | 1 + i18n/en/cosmic_files.ftl | 1 + i18n/es-419/cosmic_files.ftl | 1 + i18n/es/cosmic_files.ftl | 1 + i18n/et/cosmic_files.ftl | 1 + i18n/fa/cosmic_files.ftl | 1 + i18n/fi/cosmic_files.ftl | 1 + i18n/fr/cosmic_files.ftl | 1 + i18n/fy/cosmic_files.ftl | 1 + i18n/ga/cosmic_files.ftl | 1 + i18n/hi/cosmic_files.ftl | 1 + i18n/hu/cosmic_files.ftl | 1 + i18n/id/cosmic_files.ftl | 1 + i18n/is/cosmic_files.ftl | 1 + i18n/it/cosmic_files.ftl | 1 + i18n/ja/cosmic_files.ftl | 1 + i18n/kab/cosmic_files.ftl | 1 + i18n/kk/cosmic_files.ftl | 1 + i18n/kmr/cosmic_files.ftl | 1 + i18n/kn/cosmic_files.ftl | 1 + i18n/ko/cosmic_files.ftl | 1 + i18n/lt/cosmic_files.ftl | 1 + i18n/nb-NO/cosmic_files.ftl | 1 + i18n/nl/cosmic_files.ftl | 1 + i18n/pa/cosmic_files.ftl | 1 + i18n/pl/cosmic_files.ftl | 1 + i18n/pt-BR/cosmic_files.ftl | 1 + i18n/pt/cosmic_files.ftl | 1 + i18n/ro/cosmic_files.ftl | 1 + i18n/ru/cosmic_files.ftl | 1 + i18n/sk/cosmic_files.ftl | 1 + i18n/sr/cosmic_files.ftl | 1 + i18n/sv/cosmic_files.ftl | 1 + i18n/th/cosmic_files.ftl | 1 + i18n/tr/cosmic_files.ftl | 1 + i18n/uk/cosmic_files.ftl | 1 + i18n/zh-CN/cosmic_files.ftl | 1 + i18n/zh-TW/cosmic_files.ftl | 1 + src/app.rs | 30 +++++++++++++++++++++++++++++- 47 files changed, 75 insertions(+), 1 deletion(-) diff --git a/i18n/af/cosmic_files.ftl b/i18n/af/cosmic_files.ftl index 610548b..d4a9306 100644 --- a/i18n/af/cosmic_files.ftl +++ b/i18n/af/cosmic_files.ftl @@ -41,3 +41,4 @@ default-size = Standaardgrootte zoom-out = Zoem uit zoom-in = Zoem in menu-settings = Instellings… +search-application = Soek volgens programnaam diff --git a/i18n/ar/cosmic_files.ftl b/i18n/ar/cosmic_files.ftl index c4e3292..78af675 100644 --- a/i18n/ar/cosmic_files.ftl +++ b/i18n/ar/cosmic_files.ftl @@ -73,6 +73,7 @@ copy_noun = نسخ menu-open-with = افتح ب‍استخدام... default-app = { $name } (المبدئي) +search-application = البحث حسب اسم التطبيق ## Properties diff --git a/i18n/be/cosmic_files.ftl b/i18n/be/cosmic_files.ftl index ca4a4e9..243f909 100644 --- a/i18n/be/cosmic_files.ftl +++ b/i18n/be/cosmic_files.ftl @@ -317,6 +317,7 @@ unknown-folder = невядомая папка menu-open-with = Адкрыць праз... default-app = { $name } (па змаўчанні) +search-application = Пошук па назве праграмы ## Show details diff --git a/i18n/bg/cosmic_files.ftl b/i18n/bg/cosmic_files.ftl index fc2be4e..be0d860 100644 --- a/i18n/bg/cosmic_files.ftl +++ b/i18n/bg/cosmic_files.ftl @@ -322,6 +322,7 @@ unknown-folder = неизвестна папка menu-open-with = Отваряне с... default-app = { $name } (стандартно) +search-application = Търсене по име на приложението ## Show details diff --git a/i18n/ca/cosmic_files.ftl b/i18n/ca/cosmic_files.ftl index f37cc18..27c3c6c 100644 --- a/i18n/ca/cosmic_files.ftl +++ b/i18n/ca/cosmic_files.ftl @@ -265,6 +265,7 @@ unknown-folder = carpeta desconeguda menu-open-with = Obre amb... default-app = { $name } (per defecte) +search-application = Cerca pel nom de l'aplicació ## Show details diff --git a/i18n/cs/cosmic_files.ftl b/i18n/cs/cosmic_files.ftl index fac1794..1424c8c 100644 --- a/i18n/cs/cosmic_files.ftl +++ b/i18n/cs/cosmic_files.ftl @@ -73,6 +73,7 @@ copy_noun = Kopie menu-open-with = Otevřít pomocí... default-app = { $name } (výchozí) +search-application = Hledat podle názvu aplikace ## Properties diff --git a/i18n/da/cosmic_files.ftl b/i18n/da/cosmic_files.ftl index 82e7f27..4df6a42 100644 --- a/i18n/da/cosmic_files.ftl +++ b/i18n/da/cosmic_files.ftl @@ -219,6 +219,7 @@ unknown-folder = ukendt mappe menu-open-with = Åbn med... default-app = { $name } (standardindstilling) +search-application = Søg efter appnavn ## Show details diff --git a/i18n/de/cosmic_files.ftl b/i18n/de/cosmic_files.ftl index 65a5ebf..8ce9d63 100644 --- a/i18n/de/cosmic_files.ftl +++ b/i18n/de/cosmic_files.ftl @@ -301,6 +301,7 @@ unknown-folder = unbekannter Ordner menu-open-with = Öffnen mit... default-app = { $name } (Standard) +search-application = Nach App-Namen suchen ## Details anzeigen diff --git a/i18n/el/cosmic_files.ftl b/i18n/el/cosmic_files.ftl index c75e419..3fab5cb 100644 --- a/i18n/el/cosmic_files.ftl +++ b/i18n/el/cosmic_files.ftl @@ -135,6 +135,7 @@ menu-about = Σχετικά με τα Αρχεία COSMIC... setting-executable-and-launching = Ορισμός του «{ $name }» ως εκτελέσιμου και εκκίνηση open-multiple-files = Άνοιγμα πολλαπλών αρχείων menu-open-with = Άνοιγμα με... +search-application = Αναζήτηση με όνομα εφαρμογής extracted = Έγινε αποσυμπίεση { $items } { $items -> [one] στοιχείου diff --git a/i18n/en/cosmic_files.ftl b/i18n/en/cosmic_files.ftl index 44ff788..ea01f7e 100644 --- a/i18n/en/cosmic_files.ftl +++ b/i18n/en/cosmic_files.ftl @@ -293,6 +293,7 @@ unknown-folder = unknown folder ## Open with menu-open-with = Open with... default-app = {$name} (default) +search-application = Search by app name ## Show details show-details = Show details diff --git a/i18n/es-419/cosmic_files.ftl b/i18n/es-419/cosmic_files.ftl index 9f8ef72..d1dc0c9 100644 --- a/i18n/es-419/cosmic_files.ftl +++ b/i18n/es-419/cosmic_files.ftl @@ -204,6 +204,7 @@ unknown-folder = carpeta desconocida menu-open-with = Abrir con... default-app = { $name } (predeterminado) +search-application = Buscar por nombre de la aplicación ## Show details diff --git a/i18n/es/cosmic_files.ftl b/i18n/es/cosmic_files.ftl index 4794c10..41d9096 100644 --- a/i18n/es/cosmic_files.ftl +++ b/i18n/es/cosmic_files.ftl @@ -311,6 +311,7 @@ unknown-folder = carpeta desconocida menu-open-with = Abrir con... default-app = { $name } (predeterminado) +search-application = Buscar por nombre de la aplicación ## Show details diff --git a/i18n/et/cosmic_files.ftl b/i18n/et/cosmic_files.ftl index c4a8785..5a898df 100644 --- a/i18n/et/cosmic_files.ftl +++ b/i18n/et/cosmic_files.ftl @@ -123,6 +123,7 @@ progress-failed = { $percent }%, ebaõnnestus progress-paused = { $percent }%, peatatud unknown-folder = tundmatu kaust menu-open-with = Ava rakendusega… +search-application = Otsi rakenduse nime järgi default-app = { $name } (vaikimisi) show-details = Näita üksikasju type = Tüüp: { $mime } diff --git a/i18n/fa/cosmic_files.ftl b/i18n/fa/cosmic_files.ftl index 972e3c9..ed94f47 100644 --- a/i18n/fa/cosmic_files.ftl +++ b/i18n/fa/cosmic_files.ftl @@ -247,6 +247,7 @@ unknown-folder = پوشه ناشناس menu-open-with = باز کردن با... default-app = { $name } (پیش‌فرض) +search-application = جستجو بر اساس نام برنامه ## Show details diff --git a/i18n/fi/cosmic_files.ftl b/i18n/fi/cosmic_files.ftl index 6000bc7..06b11e3 100644 --- a/i18n/fi/cosmic_files.ftl +++ b/i18n/fi/cosmic_files.ftl @@ -212,6 +212,7 @@ unknown-folder = tuntematon kansio menu-open-with = Avaa sovelluksella… default-app = { $name } (oletus) +search-application = Hae sovelluksen nimellä ## Show details diff --git a/i18n/fr/cosmic_files.ftl b/i18n/fr/cosmic_files.ftl index 7301596..d619b31 100644 --- a/i18n/fr/cosmic_files.ftl +++ b/i18n/fr/cosmic_files.ftl @@ -305,6 +305,7 @@ unknown-folder = Dossier inconnu menu-open-with = Ouvrir avec... default-app = { $name } (défaut) +search-application = Rechercher par nom d’application ## Show details diff --git a/i18n/fy/cosmic_files.ftl b/i18n/fy/cosmic_files.ftl index 1e2942e..a626675 100644 --- a/i18n/fy/cosmic_files.ftl +++ b/i18n/fy/cosmic_files.ftl @@ -9,3 +9,4 @@ cosmic-files = COSMIC Bestannen empty-folder = Lege map empty-folder-hidden = Lege map (mei ferburgen bestannen) no-results = Gjin resultaten fûn +search-application = Sykje op appnamme diff --git a/i18n/ga/cosmic_files.ftl b/i18n/ga/cosmic_files.ftl index 773c2fa..2001e38 100644 --- a/i18n/ga/cosmic_files.ftl +++ b/i18n/ga/cosmic_files.ftl @@ -288,6 +288,7 @@ unknown-folder = Fillteán anaithnid menu-open-with = Oscail le... default-app = { $name } (réamhshocraithe) +search-application = Cuardaigh de réir ainm na haipe ## Show details diff --git a/i18n/hi/cosmic_files.ftl b/i18n/hi/cosmic_files.ftl index 03e0db4..ca80c32 100644 --- a/i18n/hi/cosmic_files.ftl +++ b/i18n/hi/cosmic_files.ftl @@ -204,6 +204,7 @@ unknown-folder = अज्ञात फ़ोल्डर menu-open-with = इसके साथ खोलें default-app = { $name } (डिफ़ॉल्ट) +search-application = ऐप के नाम से खोजें ## Show details diff --git a/i18n/hu/cosmic_files.ftl b/i18n/hu/cosmic_files.ftl index dfdbf44..76802d3 100644 --- a/i18n/hu/cosmic_files.ftl +++ b/i18n/hu/cosmic_files.ftl @@ -321,6 +321,7 @@ unknown-folder = ismeretlen mappa menu-open-with = Megnyitás mással… default-app = { $name } (alapértelmezett) +search-application = Keresés alkalmazásnév alapján ## Show details diff --git a/i18n/id/cosmic_files.ftl b/i18n/id/cosmic_files.ftl index 3300d25..57f8a54 100644 --- a/i18n/id/cosmic_files.ftl +++ b/i18n/id/cosmic_files.ftl @@ -198,6 +198,7 @@ set-executable-and-launched = Atur "{ $name }" sebagai dijalankan dan diluncurka setting-permissions = Mengatur izin untuk "{ $name }" ke { $mode } set-permissions = Atur izin untuk "{ $name }" ke { $mode } menu-open-with = Buka dengan... +search-application = Cari berdasarkan nama aplikasi unknown-folder = map yang tidak diketahui default-app = { $name } (bawaan) show-details = Tampilkan rincian diff --git a/i18n/is/cosmic_files.ftl b/i18n/is/cosmic_files.ftl index 300f1fb..4457f50 100644 --- a/i18n/is/cosmic_files.ftl +++ b/i18n/is/cosmic_files.ftl @@ -205,6 +205,7 @@ set-executable-and-launched = Stilla „{ $name }“ sem keyranlega og ræst setting-permissions = Stilli heimildir fyrir „{ $name }“ á { $mode } unknown-folder = óþekkt mappa menu-open-with = Opna með... +search-application = Leita eftir heiti forrits default-app = { $name } (sjálfgefið) show-details = Sýna upplýsingar type = Gerð: { $mime } diff --git a/i18n/it/cosmic_files.ftl b/i18n/it/cosmic_files.ftl index e3766e5..5812239 100644 --- a/i18n/it/cosmic_files.ftl +++ b/i18n/it/cosmic_files.ftl @@ -301,6 +301,7 @@ unknown-folder = cartella sconosciuta menu-open-with = Apri con... default-app = { $name } (predefinito) +search-application = Cerca per nome dell'app ## Show details diff --git a/i18n/ja/cosmic_files.ftl b/i18n/ja/cosmic_files.ftl index 5534a72..6041778 100644 --- a/i18n/ja/cosmic_files.ftl +++ b/i18n/ja/cosmic_files.ftl @@ -163,6 +163,7 @@ unknown-folder = 不明なフォルダー menu-open-with = 別のアプリケーションで開く... default-app = { $name } (デフォルト) +search-application = アプリ名で検索 ## Properties diff --git a/i18n/kab/cosmic_files.ftl b/i18n/kab/cosmic_files.ftl index 233c47d..44466d5 100644 --- a/i18n/kab/cosmic_files.ftl +++ b/i18n/kab/cosmic_files.ftl @@ -140,6 +140,7 @@ renaming = Asnifel n yisem "{ $from }" ɣer "{ $to }" renamed = Yettwasenfel yisem n "{ $from }" ɣer "{ $to }" unknown-folder = akaram arussin menu-open-with = Ldi s… +search-application = Nadi s yisem n usnas default-app = { $name } (amezwer) show-details = Sken talqayt type = Anaw: { $mime } diff --git a/i18n/kk/cosmic_files.ftl b/i18n/kk/cosmic_files.ftl index 0ee3ffe..ca16230 100644 --- a/i18n/kk/cosmic_files.ftl +++ b/i18n/kk/cosmic_files.ftl @@ -235,6 +235,7 @@ restored = } { trash } ішінен қалпына келтірілді unknown-folder = белгісіз бума menu-open-with = Көмегімен ашу... +search-application = Қолданба атауы бойынша іздеу default-app = { $name } (әдепкі) show-details = Мәліметтерді көрсету type = Түрі: { $mime } diff --git a/i18n/kmr/cosmic_files.ftl b/i18n/kmr/cosmic_files.ftl index 6c08bd0..fb12586 100644 --- a/i18n/kmr/cosmic_files.ftl +++ b/i18n/kmr/cosmic_files.ftl @@ -264,6 +264,7 @@ restoring = icon-size-and-spacing = Mezinahiya îkonan û valahiya di navbera wan de type-to-search-enter-path = Riya rêgehê yan jî pelê têdixîne menu-open-with = Veke bi... +search-application = Li gorî navê sepanê bigere original-file = Pelê resen read-write-execute = Xwendin, nivîsandin û xebitandin calculating = Tê jimartin... diff --git a/i18n/kn/cosmic_files.ftl b/i18n/kn/cosmic_files.ftl index cf7a71d..3d8f35c 100644 --- a/i18n/kn/cosmic_files.ftl +++ b/i18n/kn/cosmic_files.ftl @@ -204,6 +204,7 @@ unknown-folder = ಅಜ್ಞಾತ ಫೋಲ್ಡರ್ menu-open-with = ಇದರೊಂದಿಗೆ ತೆರೆಯಿರಿ default-app = { $name } (ಸ್ಥೂಲ) +search-application = ಅಪ್ಲಿಕೇಶನ್ ಹೆಸರಿನಿಂದ ಹುಡುಕಿ ## Show details diff --git a/i18n/ko/cosmic_files.ftl b/i18n/ko/cosmic_files.ftl index 5683c39..3ba9ee4 100644 --- a/i18n/ko/cosmic_files.ftl +++ b/i18n/ko/cosmic_files.ftl @@ -51,6 +51,7 @@ complete = 완료 menu-open-with = 다른 앱으로 열기 default-app = { $name } (기본) +search-application = 앱 이름으로 검색 ## Properties diff --git a/i18n/lt/cosmic_files.ftl b/i18n/lt/cosmic_files.ftl index 2a8e36f..1757631 100644 --- a/i18n/lt/cosmic_files.ftl +++ b/i18n/lt/cosmic_files.ftl @@ -235,6 +235,7 @@ restored = } iš { trash } unknown-folder = nežinomas aplankas menu-open-with = Atidaryti su... +search-application = Ieškoti pagal programėlės pavadinimą default-app = { $name } (numatytas) show-details = Rodyti išsamią informaciją type = Tipas: { $mime } diff --git a/i18n/nb-NO/cosmic_files.ftl b/i18n/nb-NO/cosmic_files.ftl index cae2b5b..36741d7 100644 --- a/i18n/nb-NO/cosmic_files.ftl +++ b/i18n/nb-NO/cosmic_files.ftl @@ -255,6 +255,7 @@ restored = } fra { trash } unknown-folder = ukjent mappe menu-open-with = Åpne med… +search-application = Søk etter appnavn default-app = { $name } (standard) show-details = Vis detaljer type = Type: { $mime } diff --git a/i18n/nl/cosmic_files.ftl b/i18n/nl/cosmic_files.ftl index 2be219f..9c996c2 100644 --- a/i18n/nl/cosmic_files.ftl +++ b/i18n/nl/cosmic_files.ftl @@ -309,6 +309,7 @@ unknown-folder = Onbekende map menu-open-with = Openen met… default-app = { $name } (standaard) +search-application = Zoeken op appnaam ## Show details diff --git a/i18n/pa/cosmic_files.ftl b/i18n/pa/cosmic_files.ftl index be7163e..ee3a2f3 100644 --- a/i18n/pa/cosmic_files.ftl +++ b/i18n/pa/cosmic_files.ftl @@ -105,6 +105,7 @@ history = ਅਤੀਤ pending = ਬਕਾਇਆ progress = { $percent }% menu-open-with = Open with...ਨਾਲ ਖੋਲ੍ਹੋ +search-application = ਐਪ ਦੇ ਨਾਮ ਨਾਲ ਖੋਜੋ default-app = { $name } (ਮੂਲ) show-details = ਵੇਰਵਿਆਂ ਨੂੰ ਵੇਖੋ type = ਕਿਸਮ: { $mime } diff --git a/i18n/pl/cosmic_files.ftl b/i18n/pl/cosmic_files.ftl index 2f58d64..bed1ae9 100644 --- a/i18n/pl/cosmic_files.ftl +++ b/i18n/pl/cosmic_files.ftl @@ -325,6 +325,7 @@ unknown-folder = nieznany katalog menu-open-with = Otwórz za pomocą… default-app = { $name } (domyślnie) +search-application = Wyszukaj według nazwy aplikacji ## Show details diff --git a/i18n/pt-BR/cosmic_files.ftl b/i18n/pt-BR/cosmic_files.ftl index 6309e46..3e7ab2d 100644 --- a/i18n/pt-BR/cosmic_files.ftl +++ b/i18n/pt-BR/cosmic_files.ftl @@ -323,6 +323,7 @@ unknown-folder = pasta desconhecida menu-open-with = Abrir com... default-app = { $name } (padrão) +search-application = Pesquisar pelo nome do aplicativo ## Show details diff --git a/i18n/pt/cosmic_files.ftl b/i18n/pt/cosmic_files.ftl index b0c7e30..e7a9deb 100644 --- a/i18n/pt/cosmic_files.ftl +++ b/i18n/pt/cosmic_files.ftl @@ -130,6 +130,7 @@ unknown-folder = pasta desconhecida menu-open-with = Abrir com... default-app = { $name } (predefinição) +search-application = Pesquisar pelo nome da aplicação ## Show details diff --git a/i18n/ro/cosmic_files.ftl b/i18n/ro/cosmic_files.ftl index 9a903f5..4248086 100644 --- a/i18n/ro/cosmic_files.ftl +++ b/i18n/ro/cosmic_files.ftl @@ -280,6 +280,7 @@ unknown-folder = dosar necunoscut menu-open-with = Deschide cu... default-app = { $name } (implicit) +search-application = Caută după numele aplicației ## Show details diff --git a/i18n/ru/cosmic_files.ftl b/i18n/ru/cosmic_files.ftl index f34a377..9d1d9f7 100644 --- a/i18n/ru/cosmic_files.ftl +++ b/i18n/ru/cosmic_files.ftl @@ -174,6 +174,7 @@ unknown-folder = неизвестная папка menu-open-with = Открыть с помощью… default-app = { $name } (по умолчанию) +search-application = Поиск по названию приложения ## Show details diff --git a/i18n/sk/cosmic_files.ftl b/i18n/sk/cosmic_files.ftl index 5a183d7..3784752 100644 --- a/i18n/sk/cosmic_files.ftl +++ b/i18n/sk/cosmic_files.ftl @@ -357,6 +357,7 @@ unknown-folder = neznámy priečinok menu-open-with = Otvoriť pomocou... default-app = { $name } (predvolené) +search-application = Hľadať podľa názvu aplikácie ## Show details diff --git a/i18n/sr/cosmic_files.ftl b/i18n/sr/cosmic_files.ftl index 98a9e35..f039815 100644 --- a/i18n/sr/cosmic_files.ftl +++ b/i18n/sr/cosmic_files.ftl @@ -66,6 +66,7 @@ setting-executable-and-launching = Подешавање „{ $name }“ као open-multiple-files = Отвори више датотека default-size = Подразумевана величина menu-open-with = Отвори програмом... +search-application = Претражи по називу апликације extracted = Извлачено { $items } { $items -> [one] ставка diff --git a/i18n/sv/cosmic_files.ftl b/i18n/sv/cosmic_files.ftl index 506be0b..a8606eb 100644 --- a/i18n/sv/cosmic_files.ftl +++ b/i18n/sv/cosmic_files.ftl @@ -234,6 +234,7 @@ unknown-folder = okänd mapp menu-open-with = Öppna med... default-app = { $name } (standard) +search-application = Sök efter appnamn ## Visa detaljer diff --git a/i18n/th/cosmic_files.ftl b/i18n/th/cosmic_files.ftl index c0da7bc..031eef2 100644 --- a/i18n/th/cosmic_files.ftl +++ b/i18n/th/cosmic_files.ftl @@ -219,6 +219,7 @@ unknown-folder = แฟ้มที่ไม่รู้จัก menu-open-with = เปิดด้วย... default-app = { $name } (ค่าเริ่มต้น) +search-application = ค้นหาตามชื่อแอป ## Show details diff --git a/i18n/tr/cosmic_files.ftl b/i18n/tr/cosmic_files.ftl index c27767d..91745bc 100644 --- a/i18n/tr/cosmic_files.ftl +++ b/i18n/tr/cosmic_files.ftl @@ -227,6 +227,7 @@ unknown-folder = bilinmeyen klasör menu-open-with = Birlikte aç... default-app = { $name } (varsayılan) +search-application = Uygulama adına göre ara ## Show details diff --git a/i18n/uk/cosmic_files.ftl b/i18n/uk/cosmic_files.ftl index 31b4103..2fdbf5e 100644 --- a/i18n/uk/cosmic_files.ftl +++ b/i18n/uk/cosmic_files.ftl @@ -121,6 +121,7 @@ unknown-folder = невідома тека menu-open-with = Відкрити за допомогою... default-app = { $name } (звичайний) +search-application = Пошук за назвою застосунку ## Properties diff --git a/i18n/zh-CN/cosmic_files.ftl b/i18n/zh-CN/cosmic_files.ftl index 4807c4a..d9344a5 100644 --- a/i18n/zh-CN/cosmic_files.ftl +++ b/i18n/zh-CN/cosmic_files.ftl @@ -319,6 +319,7 @@ unknown-folder = 未知文件夹 menu-open-with = 打开方式… default-app = { $name }(默认) +search-application = 按应用名称搜索 ## Show details diff --git a/i18n/zh-TW/cosmic_files.ftl b/i18n/zh-TW/cosmic_files.ftl index 294ed2a..39eb31f 100644 --- a/i18n/zh-TW/cosmic_files.ftl +++ b/i18n/zh-TW/cosmic_files.ftl @@ -179,6 +179,7 @@ unknown-folder = 不明資料夾 menu-open-with = 開啟檔案... default-app = { $name } (預設) +search-application = 依應用程式名稱搜尋 ## Show details diff --git a/src/app.rs b/src/app.rs index fe7404b..3d85777 100644 --- a/src/app.rs +++ b/src/app.rs @@ -566,6 +566,7 @@ pub enum DialogPage { mime: mime_guess::Mime, selected: usize, store_opt: Option>, + search_app_name: String, }, PermanentlyDelete { paths: Box<[PathBuf]>, @@ -3845,6 +3846,7 @@ impl Application for App { .and_then(|mime| { self.mime_app_cache.get(&mime).first().cloned() }), + search_app_name: String::new(), }, Some(CONFIRM_OPEN_WITH_BUTTON_ID.clone()), ); @@ -5110,6 +5112,7 @@ impl Application for App { .and_then(|mime| { self.mime_app_cache.get(&mime).first().cloned() }), + search_app_name: String::new(), }, None, ); @@ -5966,6 +5969,7 @@ impl Application for App { mime, selected, store_opt, + search_app_name, .. } => { let name = match path.file_name() { @@ -5974,7 +5978,13 @@ impl Application for App { }; let mut column = widget::list_column(); - let available_apps = self.mime_app_cache.get_apps_for_mime(mime, true); + let mut available_apps = self.mime_app_cache.get_apps_for_mime(mime, true); + available_apps.retain(|(app, _)| { + app.name + .to_lowercase() + .trim() + .contains(search_app_name.to_lowercase().as_str().trim()) + }); let item_height = 32.0; let mut displayed_default = false; let mut last_kind = MimeAppMatch::Exact; @@ -6038,6 +6048,24 @@ impl Application for App { .secondary_action( widget::button::standard(fl!("cancel")).on_press(Message::DialogCancel), ) + .control( + widget::column::with_children([ + widget::text::body(fl!("search-application")).into(), + widget::text_input("", search_app_name) + .id(self.dialog_text_input.clone()) + .on_input(move |search_app_name| { + Message::DialogUpdate(DialogPage::OpenWith { + path: path.clone(), + mime: mime.clone(), + selected: *selected, + store_opt: store_opt.clone(), + search_app_name, + }) + }) + .into(), + ]) + .spacing(space_xxs), + ) .control(widget::scrollable(column).height({ let max_size = self .size From 9a4f78aa75cb8e3fe543e87fcb7c0c21ae18103e Mon Sep 17 00:00:00 2001 From: sanua356 Date: Sun, 26 Jul 2026 17:36:56 +0300 Subject: [PATCH 02/34] remove extra translations --- i18n/af/cosmic_files.ftl | 1 - i18n/ar/cosmic_files.ftl | 1 - i18n/be/cosmic_files.ftl | 1 - i18n/bg/cosmic_files.ftl | 1 - i18n/ca/cosmic_files.ftl | 1 - i18n/cs/cosmic_files.ftl | 1 - i18n/da/cosmic_files.ftl | 1 - i18n/de/cosmic_files.ftl | 1 - i18n/el/cosmic_files.ftl | 1 - i18n/es-419/cosmic_files.ftl | 1 - i18n/es/cosmic_files.ftl | 1 - i18n/et/cosmic_files.ftl | 1 - i18n/fa/cosmic_files.ftl | 1 - i18n/fi/cosmic_files.ftl | 1 - i18n/fr/cosmic_files.ftl | 1 - i18n/fy/cosmic_files.ftl | 1 - i18n/ga/cosmic_files.ftl | 1 - i18n/hi/cosmic_files.ftl | 1 - i18n/hu/cosmic_files.ftl | 1 - i18n/id/cosmic_files.ftl | 1 - i18n/is/cosmic_files.ftl | 1 - i18n/it/cosmic_files.ftl | 1 - i18n/ja/cosmic_files.ftl | 1 - i18n/kab/cosmic_files.ftl | 1 - i18n/kk/cosmic_files.ftl | 1 - i18n/kmr/cosmic_files.ftl | 1 - i18n/kn/cosmic_files.ftl | 1 - i18n/ko/cosmic_files.ftl | 1 - i18n/lt/cosmic_files.ftl | 1 - i18n/nb-NO/cosmic_files.ftl | 1 - i18n/nl/cosmic_files.ftl | 1 - i18n/pa/cosmic_files.ftl | 1 - i18n/pl/cosmic_files.ftl | 1 - i18n/pt-BR/cosmic_files.ftl | 1 - i18n/pt/cosmic_files.ftl | 1 - i18n/ro/cosmic_files.ftl | 1 - i18n/sk/cosmic_files.ftl | 1 - i18n/sr/cosmic_files.ftl | 1 - i18n/sv/cosmic_files.ftl | 1 - i18n/th/cosmic_files.ftl | 1 - i18n/tr/cosmic_files.ftl | 1 - i18n/uk/cosmic_files.ftl | 1 - i18n/zh-CN/cosmic_files.ftl | 1 - i18n/zh-TW/cosmic_files.ftl | 1 - 44 files changed, 44 deletions(-) diff --git a/i18n/af/cosmic_files.ftl b/i18n/af/cosmic_files.ftl index d4a9306..610548b 100644 --- a/i18n/af/cosmic_files.ftl +++ b/i18n/af/cosmic_files.ftl @@ -41,4 +41,3 @@ default-size = Standaardgrootte zoom-out = Zoem uit zoom-in = Zoem in menu-settings = Instellings… -search-application = Soek volgens programnaam diff --git a/i18n/ar/cosmic_files.ftl b/i18n/ar/cosmic_files.ftl index 78af675..c4e3292 100644 --- a/i18n/ar/cosmic_files.ftl +++ b/i18n/ar/cosmic_files.ftl @@ -73,7 +73,6 @@ copy_noun = نسخ menu-open-with = افتح ب‍استخدام... default-app = { $name } (المبدئي) -search-application = البحث حسب اسم التطبيق ## Properties diff --git a/i18n/be/cosmic_files.ftl b/i18n/be/cosmic_files.ftl index 243f909..ca4a4e9 100644 --- a/i18n/be/cosmic_files.ftl +++ b/i18n/be/cosmic_files.ftl @@ -317,7 +317,6 @@ unknown-folder = невядомая папка menu-open-with = Адкрыць праз... default-app = { $name } (па змаўчанні) -search-application = Пошук па назве праграмы ## Show details diff --git a/i18n/bg/cosmic_files.ftl b/i18n/bg/cosmic_files.ftl index be0d860..fc2be4e 100644 --- a/i18n/bg/cosmic_files.ftl +++ b/i18n/bg/cosmic_files.ftl @@ -322,7 +322,6 @@ unknown-folder = неизвестна папка menu-open-with = Отваряне с... default-app = { $name } (стандартно) -search-application = Търсене по име на приложението ## Show details diff --git a/i18n/ca/cosmic_files.ftl b/i18n/ca/cosmic_files.ftl index 27c3c6c..f37cc18 100644 --- a/i18n/ca/cosmic_files.ftl +++ b/i18n/ca/cosmic_files.ftl @@ -265,7 +265,6 @@ unknown-folder = carpeta desconeguda menu-open-with = Obre amb... default-app = { $name } (per defecte) -search-application = Cerca pel nom de l'aplicació ## Show details diff --git a/i18n/cs/cosmic_files.ftl b/i18n/cs/cosmic_files.ftl index 1424c8c..fac1794 100644 --- a/i18n/cs/cosmic_files.ftl +++ b/i18n/cs/cosmic_files.ftl @@ -73,7 +73,6 @@ copy_noun = Kopie menu-open-with = Otevřít pomocí... default-app = { $name } (výchozí) -search-application = Hledat podle názvu aplikace ## Properties diff --git a/i18n/da/cosmic_files.ftl b/i18n/da/cosmic_files.ftl index 4df6a42..82e7f27 100644 --- a/i18n/da/cosmic_files.ftl +++ b/i18n/da/cosmic_files.ftl @@ -219,7 +219,6 @@ unknown-folder = ukendt mappe menu-open-with = Åbn med... default-app = { $name } (standardindstilling) -search-application = Søg efter appnavn ## Show details diff --git a/i18n/de/cosmic_files.ftl b/i18n/de/cosmic_files.ftl index 8ce9d63..65a5ebf 100644 --- a/i18n/de/cosmic_files.ftl +++ b/i18n/de/cosmic_files.ftl @@ -301,7 +301,6 @@ unknown-folder = unbekannter Ordner menu-open-with = Öffnen mit... default-app = { $name } (Standard) -search-application = Nach App-Namen suchen ## Details anzeigen diff --git a/i18n/el/cosmic_files.ftl b/i18n/el/cosmic_files.ftl index 3fab5cb..c75e419 100644 --- a/i18n/el/cosmic_files.ftl +++ b/i18n/el/cosmic_files.ftl @@ -135,7 +135,6 @@ menu-about = Σχετικά με τα Αρχεία COSMIC... setting-executable-and-launching = Ορισμός του «{ $name }» ως εκτελέσιμου και εκκίνηση open-multiple-files = Άνοιγμα πολλαπλών αρχείων menu-open-with = Άνοιγμα με... -search-application = Αναζήτηση με όνομα εφαρμογής extracted = Έγινε αποσυμπίεση { $items } { $items -> [one] στοιχείου diff --git a/i18n/es-419/cosmic_files.ftl b/i18n/es-419/cosmic_files.ftl index d1dc0c9..9f8ef72 100644 --- a/i18n/es-419/cosmic_files.ftl +++ b/i18n/es-419/cosmic_files.ftl @@ -204,7 +204,6 @@ unknown-folder = carpeta desconocida menu-open-with = Abrir con... default-app = { $name } (predeterminado) -search-application = Buscar por nombre de la aplicación ## Show details diff --git a/i18n/es/cosmic_files.ftl b/i18n/es/cosmic_files.ftl index 41d9096..4794c10 100644 --- a/i18n/es/cosmic_files.ftl +++ b/i18n/es/cosmic_files.ftl @@ -311,7 +311,6 @@ unknown-folder = carpeta desconocida menu-open-with = Abrir con... default-app = { $name } (predeterminado) -search-application = Buscar por nombre de la aplicación ## Show details diff --git a/i18n/et/cosmic_files.ftl b/i18n/et/cosmic_files.ftl index 5a898df..c4a8785 100644 --- a/i18n/et/cosmic_files.ftl +++ b/i18n/et/cosmic_files.ftl @@ -123,7 +123,6 @@ progress-failed = { $percent }%, ebaõnnestus progress-paused = { $percent }%, peatatud unknown-folder = tundmatu kaust menu-open-with = Ava rakendusega… -search-application = Otsi rakenduse nime järgi default-app = { $name } (vaikimisi) show-details = Näita üksikasju type = Tüüp: { $mime } diff --git a/i18n/fa/cosmic_files.ftl b/i18n/fa/cosmic_files.ftl index ed94f47..972e3c9 100644 --- a/i18n/fa/cosmic_files.ftl +++ b/i18n/fa/cosmic_files.ftl @@ -247,7 +247,6 @@ unknown-folder = پوشه ناشناس menu-open-with = باز کردن با... default-app = { $name } (پیش‌فرض) -search-application = جستجو بر اساس نام برنامه ## Show details diff --git a/i18n/fi/cosmic_files.ftl b/i18n/fi/cosmic_files.ftl index 06b11e3..6000bc7 100644 --- a/i18n/fi/cosmic_files.ftl +++ b/i18n/fi/cosmic_files.ftl @@ -212,7 +212,6 @@ unknown-folder = tuntematon kansio menu-open-with = Avaa sovelluksella… default-app = { $name } (oletus) -search-application = Hae sovelluksen nimellä ## Show details diff --git a/i18n/fr/cosmic_files.ftl b/i18n/fr/cosmic_files.ftl index d619b31..7301596 100644 --- a/i18n/fr/cosmic_files.ftl +++ b/i18n/fr/cosmic_files.ftl @@ -305,7 +305,6 @@ unknown-folder = Dossier inconnu menu-open-with = Ouvrir avec... default-app = { $name } (défaut) -search-application = Rechercher par nom d’application ## Show details diff --git a/i18n/fy/cosmic_files.ftl b/i18n/fy/cosmic_files.ftl index a626675..1e2942e 100644 --- a/i18n/fy/cosmic_files.ftl +++ b/i18n/fy/cosmic_files.ftl @@ -9,4 +9,3 @@ cosmic-files = COSMIC Bestannen empty-folder = Lege map empty-folder-hidden = Lege map (mei ferburgen bestannen) no-results = Gjin resultaten fûn -search-application = Sykje op appnamme diff --git a/i18n/ga/cosmic_files.ftl b/i18n/ga/cosmic_files.ftl index 2001e38..773c2fa 100644 --- a/i18n/ga/cosmic_files.ftl +++ b/i18n/ga/cosmic_files.ftl @@ -288,7 +288,6 @@ unknown-folder = Fillteán anaithnid menu-open-with = Oscail le... default-app = { $name } (réamhshocraithe) -search-application = Cuardaigh de réir ainm na haipe ## Show details diff --git a/i18n/hi/cosmic_files.ftl b/i18n/hi/cosmic_files.ftl index ca80c32..03e0db4 100644 --- a/i18n/hi/cosmic_files.ftl +++ b/i18n/hi/cosmic_files.ftl @@ -204,7 +204,6 @@ unknown-folder = अज्ञात फ़ोल्डर menu-open-with = इसके साथ खोलें default-app = { $name } (डिफ़ॉल्ट) -search-application = ऐप के नाम से खोजें ## Show details diff --git a/i18n/hu/cosmic_files.ftl b/i18n/hu/cosmic_files.ftl index 76802d3..dfdbf44 100644 --- a/i18n/hu/cosmic_files.ftl +++ b/i18n/hu/cosmic_files.ftl @@ -321,7 +321,6 @@ unknown-folder = ismeretlen mappa menu-open-with = Megnyitás mással… default-app = { $name } (alapértelmezett) -search-application = Keresés alkalmazásnév alapján ## Show details diff --git a/i18n/id/cosmic_files.ftl b/i18n/id/cosmic_files.ftl index 57f8a54..3300d25 100644 --- a/i18n/id/cosmic_files.ftl +++ b/i18n/id/cosmic_files.ftl @@ -198,7 +198,6 @@ set-executable-and-launched = Atur "{ $name }" sebagai dijalankan dan diluncurka setting-permissions = Mengatur izin untuk "{ $name }" ke { $mode } set-permissions = Atur izin untuk "{ $name }" ke { $mode } menu-open-with = Buka dengan... -search-application = Cari berdasarkan nama aplikasi unknown-folder = map yang tidak diketahui default-app = { $name } (bawaan) show-details = Tampilkan rincian diff --git a/i18n/is/cosmic_files.ftl b/i18n/is/cosmic_files.ftl index 4457f50..300f1fb 100644 --- a/i18n/is/cosmic_files.ftl +++ b/i18n/is/cosmic_files.ftl @@ -205,7 +205,6 @@ set-executable-and-launched = Stilla „{ $name }“ sem keyranlega og ræst setting-permissions = Stilli heimildir fyrir „{ $name }“ á { $mode } unknown-folder = óþekkt mappa menu-open-with = Opna með... -search-application = Leita eftir heiti forrits default-app = { $name } (sjálfgefið) show-details = Sýna upplýsingar type = Gerð: { $mime } diff --git a/i18n/it/cosmic_files.ftl b/i18n/it/cosmic_files.ftl index 5812239..e3766e5 100644 --- a/i18n/it/cosmic_files.ftl +++ b/i18n/it/cosmic_files.ftl @@ -301,7 +301,6 @@ unknown-folder = cartella sconosciuta menu-open-with = Apri con... default-app = { $name } (predefinito) -search-application = Cerca per nome dell'app ## Show details diff --git a/i18n/ja/cosmic_files.ftl b/i18n/ja/cosmic_files.ftl index 6041778..5534a72 100644 --- a/i18n/ja/cosmic_files.ftl +++ b/i18n/ja/cosmic_files.ftl @@ -163,7 +163,6 @@ unknown-folder = 不明なフォルダー menu-open-with = 別のアプリケーションで開く... default-app = { $name } (デフォルト) -search-application = アプリ名で検索 ## Properties diff --git a/i18n/kab/cosmic_files.ftl b/i18n/kab/cosmic_files.ftl index 44466d5..233c47d 100644 --- a/i18n/kab/cosmic_files.ftl +++ b/i18n/kab/cosmic_files.ftl @@ -140,7 +140,6 @@ renaming = Asnifel n yisem "{ $from }" ɣer "{ $to }" renamed = Yettwasenfel yisem n "{ $from }" ɣer "{ $to }" unknown-folder = akaram arussin menu-open-with = Ldi s… -search-application = Nadi s yisem n usnas default-app = { $name } (amezwer) show-details = Sken talqayt type = Anaw: { $mime } diff --git a/i18n/kk/cosmic_files.ftl b/i18n/kk/cosmic_files.ftl index ca16230..0ee3ffe 100644 --- a/i18n/kk/cosmic_files.ftl +++ b/i18n/kk/cosmic_files.ftl @@ -235,7 +235,6 @@ restored = } { trash } ішінен қалпына келтірілді unknown-folder = белгісіз бума menu-open-with = Көмегімен ашу... -search-application = Қолданба атауы бойынша іздеу default-app = { $name } (әдепкі) show-details = Мәліметтерді көрсету type = Түрі: { $mime } diff --git a/i18n/kmr/cosmic_files.ftl b/i18n/kmr/cosmic_files.ftl index fb12586..6c08bd0 100644 --- a/i18n/kmr/cosmic_files.ftl +++ b/i18n/kmr/cosmic_files.ftl @@ -264,7 +264,6 @@ restoring = icon-size-and-spacing = Mezinahiya îkonan û valahiya di navbera wan de type-to-search-enter-path = Riya rêgehê yan jî pelê têdixîne menu-open-with = Veke bi... -search-application = Li gorî navê sepanê bigere original-file = Pelê resen read-write-execute = Xwendin, nivîsandin û xebitandin calculating = Tê jimartin... diff --git a/i18n/kn/cosmic_files.ftl b/i18n/kn/cosmic_files.ftl index 3d8f35c..cf7a71d 100644 --- a/i18n/kn/cosmic_files.ftl +++ b/i18n/kn/cosmic_files.ftl @@ -204,7 +204,6 @@ unknown-folder = ಅಜ್ಞಾತ ಫೋಲ್ಡರ್ menu-open-with = ಇದರೊಂದಿಗೆ ತೆರೆಯಿರಿ default-app = { $name } (ಸ್ಥೂಲ) -search-application = ಅಪ್ಲಿಕೇಶನ್ ಹೆಸರಿನಿಂದ ಹುಡುಕಿ ## Show details diff --git a/i18n/ko/cosmic_files.ftl b/i18n/ko/cosmic_files.ftl index 3ba9ee4..5683c39 100644 --- a/i18n/ko/cosmic_files.ftl +++ b/i18n/ko/cosmic_files.ftl @@ -51,7 +51,6 @@ complete = 완료 menu-open-with = 다른 앱으로 열기 default-app = { $name } (기본) -search-application = 앱 이름으로 검색 ## Properties diff --git a/i18n/lt/cosmic_files.ftl b/i18n/lt/cosmic_files.ftl index 1757631..2a8e36f 100644 --- a/i18n/lt/cosmic_files.ftl +++ b/i18n/lt/cosmic_files.ftl @@ -235,7 +235,6 @@ restored = } iš { trash } unknown-folder = nežinomas aplankas menu-open-with = Atidaryti su... -search-application = Ieškoti pagal programėlės pavadinimą default-app = { $name } (numatytas) show-details = Rodyti išsamią informaciją type = Tipas: { $mime } diff --git a/i18n/nb-NO/cosmic_files.ftl b/i18n/nb-NO/cosmic_files.ftl index 36741d7..cae2b5b 100644 --- a/i18n/nb-NO/cosmic_files.ftl +++ b/i18n/nb-NO/cosmic_files.ftl @@ -255,7 +255,6 @@ restored = } fra { trash } unknown-folder = ukjent mappe menu-open-with = Åpne med… -search-application = Søk etter appnavn default-app = { $name } (standard) show-details = Vis detaljer type = Type: { $mime } diff --git a/i18n/nl/cosmic_files.ftl b/i18n/nl/cosmic_files.ftl index 9c996c2..2be219f 100644 --- a/i18n/nl/cosmic_files.ftl +++ b/i18n/nl/cosmic_files.ftl @@ -309,7 +309,6 @@ unknown-folder = Onbekende map menu-open-with = Openen met… default-app = { $name } (standaard) -search-application = Zoeken op appnaam ## Show details diff --git a/i18n/pa/cosmic_files.ftl b/i18n/pa/cosmic_files.ftl index ee3a2f3..be7163e 100644 --- a/i18n/pa/cosmic_files.ftl +++ b/i18n/pa/cosmic_files.ftl @@ -105,7 +105,6 @@ history = ਅਤੀਤ pending = ਬਕਾਇਆ progress = { $percent }% menu-open-with = Open with...ਨਾਲ ਖੋਲ੍ਹੋ -search-application = ਐਪ ਦੇ ਨਾਮ ਨਾਲ ਖੋਜੋ default-app = { $name } (ਮੂਲ) show-details = ਵੇਰਵਿਆਂ ਨੂੰ ਵੇਖੋ type = ਕਿਸਮ: { $mime } diff --git a/i18n/pl/cosmic_files.ftl b/i18n/pl/cosmic_files.ftl index bed1ae9..2f58d64 100644 --- a/i18n/pl/cosmic_files.ftl +++ b/i18n/pl/cosmic_files.ftl @@ -325,7 +325,6 @@ unknown-folder = nieznany katalog menu-open-with = Otwórz za pomocą… default-app = { $name } (domyślnie) -search-application = Wyszukaj według nazwy aplikacji ## Show details diff --git a/i18n/pt-BR/cosmic_files.ftl b/i18n/pt-BR/cosmic_files.ftl index 3e7ab2d..6309e46 100644 --- a/i18n/pt-BR/cosmic_files.ftl +++ b/i18n/pt-BR/cosmic_files.ftl @@ -323,7 +323,6 @@ unknown-folder = pasta desconhecida menu-open-with = Abrir com... default-app = { $name } (padrão) -search-application = Pesquisar pelo nome do aplicativo ## Show details diff --git a/i18n/pt/cosmic_files.ftl b/i18n/pt/cosmic_files.ftl index e7a9deb..b0c7e30 100644 --- a/i18n/pt/cosmic_files.ftl +++ b/i18n/pt/cosmic_files.ftl @@ -130,7 +130,6 @@ unknown-folder = pasta desconhecida menu-open-with = Abrir com... default-app = { $name } (predefinição) -search-application = Pesquisar pelo nome da aplicação ## Show details diff --git a/i18n/ro/cosmic_files.ftl b/i18n/ro/cosmic_files.ftl index 4248086..9a903f5 100644 --- a/i18n/ro/cosmic_files.ftl +++ b/i18n/ro/cosmic_files.ftl @@ -280,7 +280,6 @@ unknown-folder = dosar necunoscut menu-open-with = Deschide cu... default-app = { $name } (implicit) -search-application = Caută după numele aplicației ## Show details diff --git a/i18n/sk/cosmic_files.ftl b/i18n/sk/cosmic_files.ftl index 3784752..5a183d7 100644 --- a/i18n/sk/cosmic_files.ftl +++ b/i18n/sk/cosmic_files.ftl @@ -357,7 +357,6 @@ unknown-folder = neznámy priečinok menu-open-with = Otvoriť pomocou... default-app = { $name } (predvolené) -search-application = Hľadať podľa názvu aplikácie ## Show details diff --git a/i18n/sr/cosmic_files.ftl b/i18n/sr/cosmic_files.ftl index f039815..98a9e35 100644 --- a/i18n/sr/cosmic_files.ftl +++ b/i18n/sr/cosmic_files.ftl @@ -66,7 +66,6 @@ setting-executable-and-launching = Подешавање „{ $name }“ као open-multiple-files = Отвори више датотека default-size = Подразумевана величина menu-open-with = Отвори програмом... -search-application = Претражи по називу апликације extracted = Извлачено { $items } { $items -> [one] ставка diff --git a/i18n/sv/cosmic_files.ftl b/i18n/sv/cosmic_files.ftl index a8606eb..506be0b 100644 --- a/i18n/sv/cosmic_files.ftl +++ b/i18n/sv/cosmic_files.ftl @@ -234,7 +234,6 @@ unknown-folder = okänd mapp menu-open-with = Öppna med... default-app = { $name } (standard) -search-application = Sök efter appnamn ## Visa detaljer diff --git a/i18n/th/cosmic_files.ftl b/i18n/th/cosmic_files.ftl index 031eef2..c0da7bc 100644 --- a/i18n/th/cosmic_files.ftl +++ b/i18n/th/cosmic_files.ftl @@ -219,7 +219,6 @@ unknown-folder = แฟ้มที่ไม่รู้จัก menu-open-with = เปิดด้วย... default-app = { $name } (ค่าเริ่มต้น) -search-application = ค้นหาตามชื่อแอป ## Show details diff --git a/i18n/tr/cosmic_files.ftl b/i18n/tr/cosmic_files.ftl index 91745bc..c27767d 100644 --- a/i18n/tr/cosmic_files.ftl +++ b/i18n/tr/cosmic_files.ftl @@ -227,7 +227,6 @@ unknown-folder = bilinmeyen klasör menu-open-with = Birlikte aç... default-app = { $name } (varsayılan) -search-application = Uygulama adına göre ara ## Show details diff --git a/i18n/uk/cosmic_files.ftl b/i18n/uk/cosmic_files.ftl index 2fdbf5e..31b4103 100644 --- a/i18n/uk/cosmic_files.ftl +++ b/i18n/uk/cosmic_files.ftl @@ -121,7 +121,6 @@ unknown-folder = невідома тека menu-open-with = Відкрити за допомогою... default-app = { $name } (звичайний) -search-application = Пошук за назвою застосунку ## Properties diff --git a/i18n/zh-CN/cosmic_files.ftl b/i18n/zh-CN/cosmic_files.ftl index d9344a5..4807c4a 100644 --- a/i18n/zh-CN/cosmic_files.ftl +++ b/i18n/zh-CN/cosmic_files.ftl @@ -319,7 +319,6 @@ unknown-folder = 未知文件夹 menu-open-with = 打开方式… default-app = { $name }(默认) -search-application = 按应用名称搜索 ## Show details diff --git a/i18n/zh-TW/cosmic_files.ftl b/i18n/zh-TW/cosmic_files.ftl index 39eb31f..294ed2a 100644 --- a/i18n/zh-TW/cosmic_files.ftl +++ b/i18n/zh-TW/cosmic_files.ftl @@ -179,7 +179,6 @@ unknown-folder = 不明資料夾 menu-open-with = 開啟檔案... default-app = { $name } (預設) -search-application = 依應用程式名稱搜尋 ## Show details From 6273fe6505ff47ac6253ed1641b2648b696547ff Mon Sep 17 00:00:00 2001 From: sanua356 Date: Sun, 16 Aug 2026 10:30:57 +0300 Subject: [PATCH 03/34] add autofocus, move label to placeholder, add search and clear icons --- src/app.rs | 68 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 38 insertions(+), 30 deletions(-) diff --git a/src/app.rs b/src/app.rs index 3d85777..15abbd5 100644 --- a/src/app.rs +++ b/src/app.rs @@ -395,6 +395,7 @@ pub enum Message { OpenWithBrowse, OpenWithDialog(Option), OpenWithSelection(usize), + OpenWithSearchClear, #[cfg(all(feature = "wayland", feature = "desktop-applet"))] Overlap(window::Id, OverlapNotifyEvent), Paste(Option), @@ -3835,21 +3836,24 @@ impl Application for App { let Some(path) = item.path_opt() else { continue; }; - return self.push_dialog( - DialogPage::OpenWith { - path: path.clone(), - mime: item.mime.clone(), - selected: 0, - store_opt: "x-scheme-handler/mime" - .parse::() - .ok() - .and_then(|mime| { - self.mime_app_cache.get(&mime).first().cloned() - }), - search_app_name: String::new(), - }, - Some(CONFIRM_OPEN_WITH_BUTTON_ID.clone()), - ); + return Task::batch([ + self.push_dialog( + DialogPage::OpenWith { + path: path.clone(), + mime: item.mime.clone(), + selected: 0, + store_opt: "x-scheme-handler/mime" + .parse::() + .ok() + .and_then(|mime| { + self.mime_app_cache.get(&mime).first().cloned() + }), + search_app_name: String::new(), + }, + Some(CONFIRM_OPEN_WITH_BUTTON_ID.clone()), + ), + widget::text_input::focus(self.dialog_text_input.clone()), + ]); } } } @@ -3858,6 +3862,14 @@ impl Application for App { *selected = index; } } + Message::OpenWithSearchClear => { + if let Some(DialogPage::OpenWith { + search_app_name, .. + }) = self.dialog_pages.front_mut() + { + *search_app_name = String::new(); + } + } Message::Paste(entity_opt) => { let entity = entity_opt.unwrap_or_else(|| self.tab_model.active()); if let Some(tab) = self.tab_model.data_mut::(entity) @@ -6049,22 +6061,18 @@ impl Application for App { widget::button::standard(fl!("cancel")).on_press(Message::DialogCancel), ) .control( - widget::column::with_children([ - widget::text::body(fl!("search-application")).into(), - widget::text_input("", search_app_name) - .id(self.dialog_text_input.clone()) - .on_input(move |search_app_name| { - Message::DialogUpdate(DialogPage::OpenWith { - path: path.clone(), - mime: mime.clone(), - selected: *selected, - store_opt: store_opt.clone(), - search_app_name, - }) + widget::search_input(fl!("search-application"), search_app_name) + .id(self.dialog_text_input.clone()) + .on_clear(Message::OpenWithSearchClear) + .on_input(move |search_app_name| { + Message::DialogUpdate(DialogPage::OpenWith { + path: path.clone(), + mime: mime.clone(), + selected: *selected, + store_opt: store_opt.clone(), + search_app_name, }) - .into(), - ]) - .spacing(space_xxs), + }), ) .control(widget::scrollable(column).height({ let max_size = self From e3aa2a0ec5c35242a62ecf09dc42aa00c89c9426 Mon Sep 17 00:00:00 2001 From: sanua356 Date: Sun, 16 Aug 2026 11:14:10 +0300 Subject: [PATCH 04/34] fix incorrect search --- src/app.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/app.rs b/src/app.rs index 15abbd5..4caea29 100644 --- a/src/app.rs +++ b/src/app.rs @@ -37,7 +37,7 @@ use cosmic::widget::menu::action::MenuAction; use cosmic::widget::menu::key_bind::KeyBind; use cosmic::widget::segmented_button::{self, Entity, ReorderEvent}; use cosmic::widget::{self, icon, settings, space}; -use cosmic::{Application, ApplicationExt, Element, cosmic_theme, executor, style, surface, theme}; +use cosmic::{Application, ApplicationExt, Element, cosmic_theme, executor, surface, theme}; use mime_guess::Mime; use notify_debouncer_full::notify::{self, RecommendedWatcher}; use notify_debouncer_full::{DebouncedEvent, Debouncer, RecommendedCache, new_debouncer}; @@ -3207,9 +3207,17 @@ impl Application for App { path, mime, selected, + search_app_name, .. } => { - let available_apps = self.mime_app_cache.get_apps_for_mime(&mime, true); + let mut available_apps = + self.mime_app_cache.get_apps_for_mime(&mime, true); + available_apps.retain(|(app, _)| { + app.name + .to_lowercase() + .trim() + .contains(search_app_name.to_lowercase().as_str().trim()) + }); if let Some((app, _)) = available_apps.get(selected) { if let Some(mut command) = From 9bdba47514015c3bfda7a177611545a5cdc4e207 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Wed, 19 Aug 2026 06:51:30 +0200 Subject: [PATCH 05/34] i18n: translation updates from weblate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Alex Co-authored-by: Andi Chandler Co-authored-by: CYAXXX <85353920+CYAXXX@users.noreply.github.com> Co-authored-by: Geeson Wan Co-authored-by: Hosted Weblate Co-authored-by: Jens Peter Nielsen Co-authored-by: Jiri Grönroos Co-authored-by: Kartik Nayak <65574961+kodebarista@users.noreply.github.com> Co-authored-by: Martin Meizoso Co-authored-by: Michael Millet Co-authored-by: Prasanta-Hembram Co-authored-by: Quentin PAGÈS Co-authored-by: Sproston Co-authored-by: Steen Rabol Co-authored-by: Walter William Beckerleg Bruckman Co-authored-by: Wilbur Lindqvist Co-authored-by: sicKat Co-authored-by: the-forest-watches Co-authored-by: therealmate Co-authored-by: 김유빈 Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/da/ Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/en_GB/ Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/fi/ Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/gl/ Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/hu/ Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/it/ Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/kmr/ Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/ko/ Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/nl/ Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/oc/ Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/pt_BR/ Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/ru/ Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/sat/ Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/zh_Hans/ Translation: Pop OS/COSMIC Files --- i18n/da/cosmic_files.ftl | 189 +++++++++++++++----- i18n/en-GB/cosmic_files.ftl | 100 +++++++++++ i18n/fi/cosmic_files.ftl | 5 +- i18n/gl/cosmic_files.ftl | 333 ++++++++++++++++++++++++++++++++++++ i18n/hu/cosmic_files.ftl | 2 +- i18n/it/cosmic_files.ftl | 6 +- i18n/kmr/cosmic_files.ftl | 10 +- i18n/ko/cosmic_files.ftl | 9 + i18n/nl/cosmic_files.ftl | 2 +- i18n/oc/cosmic_files.ftl | 6 + i18n/pt-BR/cosmic_files.ftl | 2 +- i18n/ru/cosmic_files.ftl | 2 +- i18n/sat/cosmic_files.ftl | 2 + i18n/zh-CN/cosmic_files.ftl | 14 +- 14 files changed, 621 insertions(+), 61 deletions(-) create mode 100644 i18n/gl/cosmic_files.ftl diff --git a/i18n/da/cosmic_files.ftl b/i18n/da/cosmic_files.ftl index 82e7f27..5666fdb 100644 --- a/i18n/da/cosmic_files.ftl +++ b/i18n/da/cosmic_files.ftl @@ -1,35 +1,43 @@ -cosmic-files = COSMIC Filer +cosmic-files = COSMIC Filhåndtering empty-folder = Tom mappe -empty-folder-hidden = Tom mappe (har skjulte filer) -no-results = Ingen resultater +empty-folder-hidden = Tom mappe (har skjulte emner) +no-results = Fandt ingen resultater filesystem = Filsystem home = Hjem networks = Netværk -notification-in-progress = Filoperationer er igangværende. -trash = Skraldespand +notification-in-progress = Fil-operationer er igang +trash = Papirkurv recents = Seneste undo = Fortryd today = I dag # Desktop view options -desktop-view-options = Indstillinger for skrivebordsudseende... -show-on-desktop = Vis på Skrivebordet -desktop-folder-content = Indhold på Skrivebordet +desktop-view-options = Valgmuligheder for skrivebordsvisning... +show-on-desktop = Vis på Skrivebord +desktop-folder-content = Skrivebords-mappeindhold mounted-drives = Monterede drev -trash-folder-icon = Skraldespandsikon -icon-size-and-spacing = Ikonstørrelse og afstand +trash-folder-icon = Papirkurv-ikon +icon-size-and-spacing = Ikonstørrelse og -afstand icon-size = Ikonstørrelse # List view name = Navn modified = Ændret -trashed-on = Smidt ud +trashed-on = Kasseret size = Størrelse # Progress footer details = Detaljer -dismiss = Afvis besked -operations-running = { $running } operationer er i gang ({ $percent }%)... -operations-running-finished = { $running } operationer er i gang ({ $percent }%), { $finished } færdiggjort... +dismiss = Luk meddelelse +operations-running = + { $running } { $running -> + [one] operation + *[other] operationer + } kører ({ $percent }%)... +operations-running-finished = + { $running } { $running -> + [one] operation + *[other] operationer + } kører ({ $percent }%), { $finished } færdig... pause = Pause -resume = Fortsæt +resume = Genoptag # Dialogs @@ -40,12 +48,12 @@ create-archive = Opret arkiv ## Empty Trash Dialog -empty-trash = Tøm skraldespand -empty-trash-warning = Er du sikker på du vil slette alle objekter i Skraldespanden permanent? +empty-trash = Tøm papirkurv +empty-trash-warning = Emner i Papirkurv-mappen vil blive slettet permanent ## Mount Error Dialog -mount-error = Kan ikke tilgå drev +mount-error = Ude af stand til at tilgå drev ## New File/Folder Dialog @@ -53,22 +61,22 @@ create-new-file = Opret ny fil create-new-folder = Opret ny mappe file-name = Filnavn folder-name = Mappenavn -file-already-exists = En fil med det navn eksisterer allerede. -folder-already-exists = En mappe med det navn eksisterer allerede. -name-hidden = Navne begyndende med "." vil blive skjult. -name-invalid = Navn kan ikke være "{ $filename }". -name-no-slashes = Navn kan ikke indeholde skråstreg. +file-already-exists = En fil med det navn eksisterer allerede +folder-already-exists = En mappe med det navn eksisterer allerede +name-hidden = Navne begyndende med "." vil være skjulte +name-invalid = Navn må ikke være "{ $filename }" +name-no-slashes = Navn må ikke indeholde skråstreger ## Open/Save Dialog -cancel = Annullér +cancel = Afbryd create = Opret open = Åbn open-file = Åbn fil open-folder = Åbn mappe -open-in-new-tab = Åbn i ny fane +open-in-new-tab = Åbn i nyt faneblad open-in-new-window = Åbn i nyt vindue -open-item-location = Åbn placering for objekt +open-item-location = Åbn emne-placering open-multiple-files = Åbn flere filer open-multiple-folders = Åbn flere mapper save = Gem @@ -87,20 +95,20 @@ rename-folder = Omdøb mappe ## Replace Dialog replace = Erstat -replace-title = "{ $filename }" eksisterer allerede på denne placering. -replace-warning = Vil du erstatte den med den du er ved at gemme? Hvis du erstatter den, overskriver du dens indhold. -replace-warning-operation = Vil du erstatte den? Hvis du erstatter den, overskriver du dens indhold. +replace-title = "{ $filename }" eksisterer allerede i denne placering +replace-warning = Ønsker du at erstatte den med den, du er ved at gemme? Erstatning af den vil overskrive dens indhold. +replace-warning-operation = Ønsker du at erstatte den? Erstatning af den vil overskrive dens indhold. original-file = Original fil replace-with = Erstat med -apply-to-all = Anvend for alle +apply-to-all = Anvend på alle keep-both = Behold begge skip = Spring over ## Set as Executable and Launch Dialog -set-executable-and-launch = Indstil som eksekverbar fil og start -set-executable-and-launch-description = Vil du indstille "{ $name }" som en eksekverbar fil og starte den? -set-and-launch = Indstil og start +set-executable-and-launch = Angiv som eksekverbar og start +set-executable-and-launch-description = Vil du angive "{ $name }" som eksekverbar og starte den? +set-and-launch = Angiv og start ## Metadata Dialog @@ -239,13 +247,13 @@ settings = Indstillinger appearance = Udseende theme = Tema -match-desktop = Match skrivebord -dark = Mørk -light = Lys +match-desktop = Følg skrivebordets indstillinger +dark = Mørkt +light = Lyst # Context menu add-to-sidebar = Tilføj til sidebjælke -compress = Komprimér -extract-here = Extract +compress = Komprimer… +extract-here = Uddrag new-file = Ny fil... new-folder = Ny mappe... open-in-terminal = Åbn i terminal @@ -280,15 +288,15 @@ quit = Afslut edit = Redigér cut = Klip copy = Kopiér -paste = Sæt ind -select-all = Vælg alt +paste = Indsæt +select-all = Vælg alle ## View zoom-in = Zoom ind default-size = Standardstørrelse zoom-out = Zoom ud -view = Visning +view = Vis grid-view = Gitter-visning list-view = Liste-visning show-hidden-files = Vis skjulte filer @@ -306,3 +314,102 @@ sort-newest-first = Nyeste først sort-oldest-first = Ældste først sort-smallest-to-largest = Mindste til største sort-largest-to-smallest = Største til mindste +delete = Slet +run = Kør +repository = Pakkearkiv +grid-spacing = Gitter-afstand +extract-password-required = Adgangskode påkrævet +extract-to = Udpak Til... +extract-to-title = Udpak til mappe +empty-trash-title = Tøm papirkurv? +keywords = Mappe;Håndtering; +comment = Filhåndteringsprogram til COSMIC-skrivebordet +copy-to-title = Vælg kopi destination +copy-to-button-label = Kopier +move-to-title = Vælg flytte destination +move-to-button-label = Flyt +deleted = + Slettede { $items } { $items -> + [one] element + *[other] elementer + } fra { trash } +removing-from-recents = + Fjerner { $items } { $items -> + [one] element + *[other] elementer + } fra { recents } +type-to-search-enter-path = Indtast stien til mappen eller filen +permanently-deleting = + Sletter permanent { $items } { $items -> + [one] element + *[other] elementer + } +execute-only = Kun kørsel +removed-from-recents = + Fjernede { $items } { $items -> + [one] element + *[other] elementer + } fra { recents } +permanently-deleted = + Slettede permanent { $items } { $items -> + [one] element + *[other] elementer + } +write-only = Kun skrivning +remove = Fjern +context-action = Konteksthandling +context-action-confirm-title = Kør “{ $name }”? +context-action-confirm-warning = + Dette vil køre på { $items } { $items -> + [one] item + *[other] items + }. +selected-items = De { $items } valgte elementer +mixed = Blandet +none = Ingen +write-execute = Skriv og kør +read-only = Kun læsning +read-execute = Læs og kør +read-write = Læs og skriv +read-write-execute = Læs, skriv og kør +keep = Behold +support = Support +progress-failed = { $percent } %, mislykkedes +pasted-image = Indsat billede +pasted-text = Indsat tekst +pasted-video = Indsat video +deleting = + Sletter { $items } { $items -> + [one] element + *[other] elementer + } fra { trash } ({ $progress })... +setting-permissions = Indstiller tilladelser for “{ $name }” til { $mode } +set-permissions = Sæt tilladelser for “{ $name }” til { $mode } +show-recents = Seneste-mappe i sidepanelet +type-to-search = Skriv for at søge +type-to-search-recursive = Søger i den aktuelle mappe og alle undermapper +type-to-search-select = Vælger den første matchende fil eller mappe +clear-recents-history = Ryd seneste historik +copy-to = Kopiér til… +delete-permanently = Slet permanent +eject = Skub ud +move-to = Flyt til… +remove-from-recents = Fjern fra seneste +reload-folder = Genindlæs mappe +copy-path = Kopiér sti +rename-confirm = Omdøb +calculate = Udregn +error = Fejl +checksum = { $kind }-kontrolsum +other-apps = Andre applikationer +related-apps = Relaterede applikationer +permanently-delete-question = Slet permanent? +permanently-delete-warning = { $target } vil blive slettet permanent. Denne handling kan ikke fortrydes. +open-with = Åbn med +favorite-path-error = Fejl ved åbning af sti +favorite-path-error-description = + Ude af stand til at åbne "{ $path }" + "{ $path }" Eksisterer muligvis ikke, eller du har måske ikketilladelse til at åbne den + + Ønsker du at fjerne den fra sidebjælken? +single-click = Enkelt klik for at åbne diff --git a/i18n/en-GB/cosmic_files.ftl b/i18n/en-GB/cosmic_files.ftl index e69de29..62d9b75 100644 --- a/i18n/en-GB/cosmic_files.ftl +++ b/i18n/en-GB/cosmic_files.ftl @@ -0,0 +1,100 @@ +save = Save +quit = Quit +name = Name +delete = Delete +cancel = Cancel +run = Run +new-window = New window +theme = Theme +appearance = Appearance +light = Light +repository = Repository +support = Support +dark = Dark +match-desktop = Match desktop +settings = Settings +replace = Replace +file = File +zoom-in = Zoom in +select-all = Select all +zoom-out = Zoom out +default-size = Default size +edit = Edit +copy = Copy +paste = Paste +view = View +undo = Undo +cut = Cut +icon-size-and-spacing = Icon size and spacing +cosmic-files = COSMIC Files +trash = Rubbish +empty-folder-hidden = Empty folder (has hidden items) +no-results = No results found +empty-folder = Empty folder +menu-settings = Settings... +recents = Recents +mounted-drives = Mounted drives +filesystem = Filesystem +home = Home +desktop-view-options = Desktop view options... +show-on-desktop = Show on Desktop +trash-folder-icon = Bin folder icon +desktop-folder-content = Desktop folder content +networks = Networks +today = Today +notification-in-progress = File operations are in progress +comment = File manager for the COSMIC desktop +keywords = Folder;Manager; +size = Size +dismiss = Dismiss message +trashed-on = Binned +create-archive = Create archive +pause = Pause +resume = Resume +grid-spacing = Grid spacing +details = Details +operations-running-finished = + { $running } { $running -> + [one] operation + *[other] operations + } running ({ $percent }%), { $finished } finished... +icon-size = Icon size +modified = Modified +operations-running = + { $running } { $running -> + [one] operation + *[other] operations + } running ({ $percent }%)... +copy-to-title = Select copy destination +open-file = Open file +open-multiple-files = Open multiple files +create-new-folder = Create new folder +create = Create +other-apps = Other applications +open-multiple-folders = Open multiple folders +extract-to = Extract To... +create-new-file = Create new file +open-in-new-window = Open in new window +folder-name = Folder name +browse-store = Browse { $store } +open-item-location = Open item location +mount-error = Unable to access drive +open = Open +extract-to-title = Extract to folder +open-with-title = How do you want to open "{ $name }"? +extract-password-required = Password required +open-folder = Open folder +open-in-new-tab = Open in new tab +file-name = File name +save-file = Save file +file-already-exists = A file with that name already exists +name-hidden = Names starting with "." will be hidden +folder-already-exists = A folder with that name already exists +empty-trash = Empty bin +empty-trash-title = Empty bin? +name-no-slashes = Name cannot contain slashes +name-invalid = Name cannot be "{ $filename }" +copy-to-button-label = Copy +move-to-title = Select move destination +move-to-button-label = Move +context-action = Context action diff --git a/i18n/fi/cosmic_files.ftl b/i18n/fi/cosmic_files.ftl index 6000bc7..f0bf682 100644 --- a/i18n/fi/cosmic_files.ftl +++ b/i18n/fi/cosmic_files.ftl @@ -225,7 +225,7 @@ settings = Asetukset appearance = Ulkoasu theme = Teema -match-desktop = Sovita työpöytään +match-desktop = Sama kuin työpöytä dark = Tumma light = Vaalea @@ -415,3 +415,6 @@ context-action-confirm-warning = }. run = Suorita rename-confirm = Nimeä uudelleen +checksum = { $kind }-tarkistussumma +calculate = Laske +error = Virhe diff --git a/i18n/gl/cosmic_files.ftl b/i18n/gl/cosmic_files.ftl new file mode 100644 index 0000000..77a5757 --- /dev/null +++ b/i18n/gl/cosmic_files.ftl @@ -0,0 +1,333 @@ +name = Nome +save = Gardar +cancel = Cancelar +run = Executar +delete = Eliminar +repository = Repositorio +support = Soporte +settings = Axustes +appearance = Apariencia +theme = Tema +match-desktop = Axustar ao escritorio +dark = Escuro +light = Claro +replace = Remplazar +file = Ficheiro +new-window = Nova xanela +quit = Pechar +edit = Editar +undo = Desfacer +cut = Cortar +copy = Copiar +paste = Pegar +select-all = Seleccionar todo +view = Ver +zoom-in = Aumentar Zoom +default-size = Tamaño por defecto +zoom-out = Afastar Zoom +menu-settings = Axustes... +cosmic-files = Ficheiros COSMIC +comment = Xestor de ficheiros para o escritorio COSMIC +keywords = Cartafol;Xestor; +empty-folder = Cartafol baleiro +empty-folder-hidden = Cartafol baleiro (contén elementos agochados) +no-results = Non se atoparon resultados +filesystem = Sistema de ficheiros +home = Inicio +networks = Redes +notification-in-progress = Operacións de ficheiros en progreso +trash = Lixo +recents = Recentes +today = Hoxe +desktop-view-options = Axustes da vista do escritorio… +show-on-desktop = Amosar no Escritorio +desktop-folder-content = Contido do cartafol Escritorio +mounted-drives = Unidades montadas +trash-folder-icon = Icona do cartafol do Lixo +icon-size-and-spacing = Tamaño e espazado das iconas +icon-size = Tamaño de icona +grid-spacing = Espazado da grella +modified = Modificado +trashed-on = No lixo +size = Tamaño +details = Detalles +dismiss = Descartar a mensaxe +operations-running = + { $running } { $executandose -> + [unha] operacion + *[outra] operacions + } executandose ({ $percent }%)... +operations-running-finished = + { $running } { $executandose -> + [unha] operacion + *[outra] operacions + } executandose ({ $percent }%), { $finished } rematadas... +pause = Pausa +resume = Retomar +create-archive = Crear arquivo comprimido +copy-to-title = Seleccionar o destino da copia +copy-to-button-label = Copiar +extract-password-required = Contrasinal necesario +extract-to = Extraer en… +extract-to-title = Extraer a cartafol +empty-trash = Baleirar Lixo +empty-trash-title = Baleirar o lixo? +empty-trash-warning = Os elementos do cartafol do lixo eliminaranse de forma permanente +mount-error = Non é posible acceder a unidade +move-to-title = Seleccionar o destino do movemento +move-to-button-label = Mover +create-new-file = Crear un novo ficheiro +create-new-folder = Crear novo cartafol +file-name = Nome do ficheiro +folder-name = Nome do cartafol +file-already-exists = Existe un ficheiro co mesmo nome +folder-already-exists = Existe un cartafol co mesmo nome +name-hidden = Os nomes que comecen por "." agocharanse +name-invalid = O nome non pode ser "{ $filename }" +name-no-slashes = O nome non pode conter barras +create = Crear +open = Abrir +open-file = Abrir ficheiro +open-folder = Abrir cartafol +open-in-new-tab = Abrir nunha nova lapela +open-in-new-window = Abrir nunha nova xanela +open-item-location = Abrir ubicación do ítem +open-multiple-files = Abrir multiples ficheiros +open-multiple-folders = Abrir multiples cartafoles +save-file = Gardar ficheiro +open-with-title = Como queres abrir «{ $name }»? +browse-store = Atopar { $store } +other-apps = Outras aplicacións +related-apps = Aplicacións relacionadas +context-action = Acción contextual +context-action-confirm-title = Executar "{ $name }"? +context-action-confirm-warning = + Esto vaise executar en { $items } { $items -> + [un] item + *[outro] items + }. +selected-items = Os { $items } elementos seleccionados +permanently-delete-question = Eliminar permanentemente? +permanently-delete-warning = { $target } será eliminado permanentemente. Esta acción non se poderá desfacer. +rename-file = Renomear ficheiro +rename-folder = Renomear cartafol +rename-confirm = Renomear +replace-title = "{ $filename }" xa existe nesta ubicación +replace-warning = Queres substituílo polo que estás a gardar? Ao substituílo sobrescribirase o seu contido. +replace-warning-operation = Queres substituílo? Ao substituílo sobrescribirase o seu contido. +original-file = Ficheiro orixinal +replace-with = Remplazar con +apply-to-all = Aplicar a todo +keep-both = Manter ambos +skip = Saltar +set-executable-and-launch = Marcar como executable e lanzalo +set-executable-and-launch-description = Queres marcar «{ $name }» como executábel e lanzalo? +set-and-launch = Marcar e executar +open-with = Abrir con +owner = Propietario +group = Grupo +other = Outro +mixed = Mesturar +none = Ningún +execute-only = Só execución +write-only = Só escritura +write-execute = Escritura e execución +read-only = Só lectura +read-execute = Lectura e execución +read-write = Lectura e escritura +read-write-execute = Lectura, escritura e execución +favorite-path-error = Erro abrindo o directorio +favorite-path-error-description = + Non foi posíbel abrir «{ $path }». + É posíbel que «{ $path }» non exista ou que non teñas permisos para abrilo. + + Queres retiralo da barra lateral? +remove = Eliminar +keep = Manter +add-network-drive = Engadir unidade de rede +connect = Conectar +connect-anonymously = Conectar de xeito anonimo +connecting = Conectando... +domain = Dominio +enter-server-address = Introducir a dirección do servidor +network-drive-description = + Os enderezos dos servidores inclúen un prefixo de protocolo e un enderezo. + Exemplos: ssh://192.168.0.1, ftp://[2001:db8::1] +network-drive-schemes = + Protocolos dispoñíbeis,Prefixo + AppleTalk,afp:// + Protocolo de transferencia de ficheiros,ftp:// ou ftps:// + Sistema de ficheiros en rede,nfs:// + Server Message Block,smb:// + Protocolo de transferencia de ficheiros por SSH,sftp:// ou ssh:// + WebDAV,dav:// ou davs:// +network-drive-error = Non foi posible acceder a unidade de rede +password = Contrasinal +remember-password = Recordar o contrasinal +try-again = Voltar a intentar +username = Nome de usuario +cancelled = Cancelado +edit-history = Editar historial +history = Historial +no-history = Non hai elementos no historial. +pending = Pendente +progress = { $percent }% +progress-cancelled = { $percent }%, cancelado +progress-failed = { $percent }%, fallou +progress-paused = { $percent }%, pausado +failed = Fallou +complete = Completado +compressing = + Comprimindo { $items } { $items -> + [one] elemento + *[other] elementos + } de «{ $from }» a «{ $to }» ({ $progress })... +compressed = + Comprimidos { $items } { $items -> + [one] elemento + *[other] elementos + } de «{ $from }» a «{ $to }» +copy_noun = Copiar +pasted-image = Imaxe pegada +pasted-text = Texto Pegado +pasted-video = Video pegado +creating = Creando "{ $name }" en "{ $parent }" +created = Creado "{ $name }" en "{ $parent }" +copying = + Copiando { $items } { $items -> + [one] elemento + *[other] elementos + } de «{ $from }» a «{ $to }» ({ $progress })... +copied = + Copiados { $items } { $items -> + [one] elemento + *[other] elementos + } de «{ $from }» a «{ $to }» +deleted = + Eliminando { $items } { $items -> + [one] elemento + *[other] elementos + } do lixo ({ $progress }) +emptying-trash = Baleirando { trash } ({ $progress })... +emptied-trash = Baleirado o { trash } +extracting = + Extraendo { $items } { $items -> + [one] elemento + *[other] elementos + } de «{ $from }» a «{ $to }» ({ $progress })... +extracted = + Extraídos { $items } { $items -> + [one] elemento + *[other] elementos + } de «{ $from }» a «{ $to }» +setting-executable-and-launching = Marcando «{ $name }» como executábel e executándoo +set-executable-and-launched = «{ $name }» marcouse como executábel e executouse +setting-permissions = Establecendo os permisos de «{ $name }» en { $mode } +set-permissions = Establecéronse os permisos de «{ $name }» en { $mode } +moving = + Movendo { $items } { $items -> + [one] elemento + *[other] elementos + } de «{ $from }» a «{ $to }» ({ $progress })... +moved = + Movidos { $items } { $items -> + [one] elemento + *[other] elementos + } de «{ $from }» a «{ $to }» +permanently-deleting = + Eliminando permanentemente { $items } { $items -> + [one] elemento + *[other] elementos + } +permanently-deleted = + Eliminados permanentemente { $items } { $items -> + [one] elemento + *[other] elementos + } +removing-from-recents = + Retirando { $items } { $items -> + [one] elemento + *[other] elementos + } dos { recents } +removed-from-recents = + Retirado { $items } { $items -> + [one] elemento + *[other] elementos + } de { recents } +renaming = Renomeando "{ $from }" a "{ $to }" +renamed = Renomeado "{ $from }" a "{ $to }" +restoring = + Restaurando { $items } { $items -> + [one] elemento + *[other] elementos + } de { trash } ({ $progress })... +restored = + Restaurado { $items } { $items -> + [one] elemento + *[other] elementos + } de { trash } +unknown-folder = cartafol descoñecido +menu-open-with = Abrir con... +default-app = { $name } (por defecto) +show-details = Amosar detalles +type = Tipo: { $mime } +items = Elementos: { $items } +item-size = Tamaño: { $size } +item-created = Creado: { $created } +item-modified = Modificado: { $modified } +item-accessed = Accedido: { $accessed } +calculating = Calculando... +checksum = { $kind } checksum +calculate = Calculado +error = Erro +single-click = Clic único para abrir +show-recents = Cartafol de recentes no panel lateral +type-to-search = Escribe para atopar +type-to-search-recursive = Busca no cartafol actual e en todos os subcartafoles +type-to-search-enter-path = Introduce a ruta do cartafol ou ficheiro +type-to-search-select = Selecciona o primeiro ficheiro ou cartafol coincidente +add-to-sidebar = Engadir o panel lateral +clear-recents-history = Limpar historial de recentes +compress = Comprimir... +copy-to = Copiar a... +delete-permanently = Eliminar permanentemente +eject = Expulsar +extract-here = Extraer +new-file = Novo ficheiro... +new-folder = Novo cartafol... +open-in-terminal = Abrir no terminal +move-to = Mover a... +move-to-trash = Mover ao lixo +restore-from-trash = Recuperar do lixo +remove-from-sidebar = Eliminar do panel lateral +sort-by-name = Ordenar por nome +sort-by-modified = Ordenar por modificación +sort-by-size = Ordenar por tamaño +sort-by-trashed = Ordenar pola data de eliminación +remove-from-recents = Eliminar de recentes +change-wallpaper = Cambiar fondo de pantalla... +desktop-appearance = Apariencia do Escritorio... +display-settings = Axustes de pantalla... +new-tab = Nova lapela +reload-folder = Recargar cartafol +rename = Renomear... +close-tab = Pechar lapela +copy-path = Copiar ruta +grid-view = Vista de grella +list-view = Vista de lista +show-hidden-files = Amosar ficheiros ocultos +list-directories-first = Listar primeiro os directorios +gallery-preview = Vista previa da galería +menu-about = Sobre Ficheiros COSMIC... +sort = Ordenar +sort-a-z = A-Z +sort-z-a = Z-A +sort-newest-first = Novos primeiro +sort-oldest-first = Antigos primeiro +sort-smallest-to-largest = Do máis pequeno ao máis grande +sort-largest-to-smallest = Do máis grande ao máis pequeno +deleting = + Eliminando { $items } { $items -> + [one] elemento + *[other] elementos + } da { trash } ({ $progress })... diff --git a/i18n/hu/cosmic_files.ftl b/i18n/hu/cosmic_files.ftl index 76bed29..827bfa1 100644 --- a/i18n/hu/cosmic_files.ftl +++ b/i18n/hu/cosmic_files.ftl @@ -386,7 +386,7 @@ new-window = Új ablak reload-folder = Mappa újratöltése rename = Átnevezés… close-tab = Lap bezárása -quit = Leállítás +quit = Kilépés ## Edit diff --git a/i18n/it/cosmic_files.ftl b/i18n/it/cosmic_files.ftl index 946507b..17abad0 100644 --- a/i18n/it/cosmic_files.ftl +++ b/i18n/it/cosmic_files.ftl @@ -1,5 +1,5 @@ cosmic-files = COSMIC Files -comment = File manager di COSMIC +comment = File manager per il desktop COSMIC keywords = File;Archivi;Cartelle;Explorer; empty-folder = Cartella vuota empty-folder-hidden = Cartella vuota (con elementi nascosti) @@ -7,7 +7,7 @@ no-results = Nessun risultato trovato filesystem = Filesystem home = Home networks = Reti -notification-in-progress = Operazioni sui file in corso. +notification-in-progress = Operazioni sui file in corso trash = Cestino recents = Recenti undo = Annulla @@ -322,7 +322,7 @@ single-click = Click singolo per aprire appearance = Aspetto theme = Tema -match-desktop = Sistema +match-desktop = Abbina al desktop dark = Scuro light = Chiaro diff --git a/i18n/kmr/cosmic_files.ftl b/i18n/kmr/cosmic_files.ftl index a6e3aeb..f45eaeb 100644 --- a/i18n/kmr/cosmic_files.ftl +++ b/i18n/kmr/cosmic_files.ftl @@ -158,7 +158,7 @@ progress-paused = { $percent }%, hate rawestandin desktop-view-options = Vebijêrkên dîtina sermaseyê... show-on-desktop = Li ser sermaseyê nîşan bide cancelled = Têkbirî -new-folder = Peldankan nû... +new-folder = Peldanka nû... match-desktop = Bi sermaseyê re li hev bîne name-no-slashes = Nav nabe ku "/" tê de hebe operations-running-finished = @@ -220,7 +220,7 @@ trash = Jêbirdank undo = Vegerîne today = Îro name = Nav -modified = Guhertî +modified = Guhertin size = Mezinahî details = Hûrgilî pause = Rawestîne @@ -229,7 +229,7 @@ copy-to-title = Rêgeha jêgirtinê hilbijêre copy-to-button-label = Jê bigire move-to-title = Rêgeha livandinê hilbijêre move-to-button-label = Bilivîne -create = Biafrîne +create = Afirandin save = Tomar bike context-action = Çalakiya naverokê context-action-confirm-title = "{ $name }" bixebtîne? @@ -263,7 +263,7 @@ restoring = } ji { trash } ({ $progress })... icon-size-and-spacing = Mezinahiya îkonan û valahiya di navbera wan de type-to-search-enter-path = Riya rêgehê yan jî pelê têdixîne -menu-open-with = Veke bi... +menu-open-with = Veke bi riya... original-file = Pelê resen read-write-execute = Xwendin, nivîsandin û xebitandin calculating = Tê jimartin... @@ -311,7 +311,7 @@ restored = domain = Navper sort = Rêz bike item-accessed = Gihîştin: { $accessed } -open-with = Veke bi +open-with = Veke bi riya keep-both = Herduyan bihêle permanently-deleted = { $items } bi mayînde hate jêbirin{ $items -> diff --git a/i18n/ko/cosmic_files.ftl b/i18n/ko/cosmic_files.ftl index 5683c39..0441da5 100644 --- a/i18n/ko/cosmic_files.ftl +++ b/i18n/ko/cosmic_files.ftl @@ -278,3 +278,12 @@ move-to-button-label = 이동 clear-recents-history = 최근 기록 비우기 copy-path = 복사 경로 move-to-title = 이동 위치 선택 +copy-to-title = 복사 경로 선택 +run = 실행 +rename-confirm = 이름 변경 +mixed = 혼합됨 +pasted-image = 붙여넣은 이미지 +pasted-text = 붙여넣은 텍스트 +pasted-video = 붙여넣은 영상 +copy-to = 복사하기... +move-to = 이동하기... diff --git a/i18n/nl/cosmic_files.ftl b/i18n/nl/cosmic_files.ftl index 2be219f..aa4ef5a 100644 --- a/i18n/nl/cosmic_files.ftl +++ b/i18n/nl/cosmic_files.ftl @@ -425,7 +425,7 @@ removed-from-recents = } uit { recents } verwijderd remove-from-recents = Uit recente verwijderen type-to-search-select = Dit selecteert het eerst overeenkomende bestand of map -comment = Bestandsbeheerder voor COSMIC desktop +comment = Bestandsbeheerder voor COSMIC copy-to-title = Kopieerbestemming aanwijzen copy-to-button-label = Kopiëren move-to-button-label = Verplaatsen diff --git a/i18n/oc/cosmic_files.ftl b/i18n/oc/cosmic_files.ftl index e69de29..aa7bd53 100644 --- a/i18n/oc/cosmic_files.ftl +++ b/i18n/oc/cosmic_files.ftl @@ -0,0 +1,6 @@ +appearance = Aparéncia +theme = Tèma +match-desktop = Assortir al burèu +dark = Fosc +light = Clar +file = Fichièr diff --git a/i18n/pt-BR/cosmic_files.ftl b/i18n/pt-BR/cosmic_files.ftl index e725da3..75b071d 100644 --- a/i18n/pt-BR/cosmic_files.ftl +++ b/i18n/pt-BR/cosmic_files.ftl @@ -388,7 +388,7 @@ new-window = Nova janela reload-folder = Recarregar pasta rename = Renomear... close-tab = Fechar aba -quit = Sair +quit = Encerrar ## Edit diff --git a/i18n/ru/cosmic_files.ftl b/i18n/ru/cosmic_files.ftl index 78ce654..d3dd432 100644 --- a/i18n/ru/cosmic_files.ftl +++ b/i18n/ru/cosmic_files.ftl @@ -272,7 +272,7 @@ extract-to-title = Распаковать в папку mount-error = Не удалось получить доступ к диску create = Создать open-with-title = Как хотите открыть «{ $name }»? -browse-store = Искать в { $store } +browse-store = Перейти в { $store } other-apps = Другие приложения related-apps = Связанные приложения selected-items = { $items } выделенных элем. diff --git a/i18n/sat/cosmic_files.ftl b/i18n/sat/cosmic_files.ftl index 67f522a..61dcbc2 100644 --- a/i18n/sat/cosmic_files.ftl +++ b/i18n/sat/cosmic_files.ftl @@ -1 +1,3 @@ cancel = ᱵᱟᱹᱛᱤᱞ +name = ᱧᱩᱛᱩᱢ +save = ᱥᱟᱧᱪᱟᱣ diff --git a/i18n/zh-CN/cosmic_files.ftl b/i18n/zh-CN/cosmic_files.ftl index a2a96a9..432c875 100644 --- a/i18n/zh-CN/cosmic_files.ftl +++ b/i18n/zh-CN/cosmic_files.ftl @@ -169,8 +169,8 @@ read-write-execute = 读取、写入和执行 favorite-path-error = 打开目录时出错 favorite-path-error-description = - 无法打开 "{ $path }" 。 - "{ $path }" 可能不存在或您没有权限打开它。 + 无法打开“{ $path }” 。 + “{ $path }”可能不存在或您没有权限打开它。 您想要从侧边栏中移除它吗? remove = 移除 @@ -267,10 +267,10 @@ extracted = [one] 项目 *[other] 项目 }到“{ $to }” -setting-executable-and-launching = 设置 "{ $name }" 为可执行文件并启动 -set-executable-and-launched = 已设 "{ $name }" 为可执行文件并且启动 -setting-permissions = 正在设置 "{ $name }" 的权限为 { $mode } -set-permissions = 设置 "{ $name }" 的权限为 { $mode } +setting-executable-and-launching = 设置 “{ $name }” 为可执行文件并启动 +set-executable-and-launched = 已设 “{ $name }” 为可执行文件并且启动 +setting-permissions = 正在设置 “{ $name }” 的权限为 { $mode } +set-permissions = 设置 “{ $name }” 的权限为 { $mode } moving = 正在从“{ $from }”移动 { $items } { $items -> [one] 项目 @@ -302,7 +302,7 @@ removed-from-recents = *[other] 项目 } renaming = 正在将“{ $from }”重命名为“{ $to }” -renamed = 已重命名"{ $from }"为"{ $to }" +renamed = 已重命名 “{ $from }” 为 “{ $to }” restoring = 正在从{ trash }中还原 { $items } { $items -> [one] 项目 From fd6d4523cd6b5fb40aa58c010811fcf64201b27e Mon Sep 17 00:00:00 2001 From: sanua356 Date: Wed, 19 Aug 2026 09:35:15 +0300 Subject: [PATCH 06/34] add submit form on focus search input, change import search_input --- src/app.rs | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/src/app.rs b/src/app.rs index 4caea29..c489e64 100644 --- a/src/app.rs +++ b/src/app.rs @@ -6069,18 +6069,22 @@ impl Application for App { widget::button::standard(fl!("cancel")).on_press(Message::DialogCancel), ) .control( - widget::search_input(fl!("search-application"), search_app_name) - .id(self.dialog_text_input.clone()) - .on_clear(Message::OpenWithSearchClear) - .on_input(move |search_app_name| { - Message::DialogUpdate(DialogPage::OpenWith { - path: path.clone(), - mime: mime.clone(), - selected: *selected, - store_opt: store_opt.clone(), - search_app_name, - }) - }), + widget::text_input::search_input( + fl!("search-application"), + search_app_name, + ) + .id(self.dialog_text_input.clone()) + .on_clear(Message::OpenWithSearchClear) + .on_input(move |search_app_name| { + Message::DialogUpdate(DialogPage::OpenWith { + path: path.clone(), + mime: mime.clone(), + selected: *selected, + store_opt: store_opt.clone(), + search_app_name, + }) + }) + .on_submit(|_| Message::DialogComplete), ) .control(widget::scrollable(column).height({ let max_size = self From a5422167cfcf8aaf92d3f65b720411167d082ccf Mon Sep 17 00:00:00 2001 From: norepro Date: Wed, 5 Aug 2026 22:26:52 -0700 Subject: [PATCH 07/34] Return None on mtime overflow --- src/tab.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tab.rs b/src/tab.rs index 0da0db2..89ad3c0 100644 --- a/src/tab.rs +++ b/src/tab.rs @@ -1909,7 +1909,7 @@ impl ItemMetadata { Self::Path { metadata, .. } => metadata.modified().ok(), #[cfg(feature = "gvfs")] Self::GvfsPath { mtime, .. } => { - Some(SystemTime::UNIX_EPOCH + Duration::from_secs(*mtime)) + SystemTime::UNIX_EPOCH.checked_add(Duration::from_secs(*mtime)) } _ => None, } From eebf5a9d4c458a40e5cb558519a483834ac118e3 Mon Sep 17 00:00:00 2001 From: Will Sheehan Date: Wed, 19 Aug 2026 21:46:45 -0700 Subject: [PATCH 08/34] do not panic in truly invalid timestamps --- src/tab.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/tab.rs b/src/tab.rs index 89ad3c0..d11a170 100644 --- a/src/tab.rs +++ b/src/tab.rs @@ -437,7 +437,9 @@ impl<'a> FormatTime<'a> { impl Display for FormatTime<'_> { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - let zoned = jiff::Zoned::try_from(self.time).unwrap(); + let Ok(zoned) = jiff::Zoned::try_from(self.time) else { + return Ok(()); + }; let now = jiff::Zoned::now(); let icu_datetime = DateTime::convert_from(zoned.datetime()); if zoned.date() == now.date() { From cca10d2fd3217da37acde79c186c4dece286c34b Mon Sep 17 00:00:00 2001 From: Paul K Date: Thu, 20 Aug 2026 17:11:10 +0200 Subject: [PATCH 09/34] detect remote filesystems so SFTP browsing is not slow --- src/mounter/gvfs.rs | 40 ++++++++-- src/tab.rs | 176 ++++++++++++++++++++++++++++++++++++-------- 2 files changed, 179 insertions(+), 37 deletions(-) diff --git a/src/mounter/gvfs.rs b/src/mounter/gvfs.rs index 1b7af76..b675dd0 100644 --- a/src/mounter/gvfs.rs +++ b/src/mounter/gvfs.rs @@ -18,6 +18,15 @@ use crate::tab::{self, ChecksumState, DirSize, ItemMetadata, ItemThumbnail, Loca const TARGET_URI_ATTRIBUTE: &str = "standard::target-uri"; +// Attributes requested when listing a network directory. +const SCAN_ATTRIBUTES: &str = "standard::name,\ +standard::display-name,\ +standard::type,\ +standard::size,\ +standard::icon,\ +standard::is-hidden,\ +time::modified"; + fn resolve_uri(uri: &str) -> (String, gio::File) { let file = gio::File::for_uri(uri); // Resolve the target-uri if it exists @@ -119,9 +128,27 @@ fn network_scan(uri: &str, sizes: IconSizes) -> Result, String> { Box::from([]) }; + // `filesystem::remote` belongs to the filesystem namespace, which `enumerate_children` + // never fills in, so it has to be queried once for the directory being listed. + let remote = file + .query_filesystem_info( + gio::FILE_ATTRIBUTE_FILESYSTEM_REMOTE, + gio::Cancellable::NONE, + ) + .map(|info| info.boolean(gio::FILE_ATTRIBUTE_FILESYSTEM_REMOTE)) + .unwrap_or_else(|err| { + log::warn!("failed to get GIO filesystem info for {uri}: {err}"); + // Assume remote, so per-entry work is skipped rather than retried + true + }); + let mut items = Vec::new(); for info_res in file - .enumerate_children("*", gio::FileQueryInfoFlags::NONE, gio::Cancellable::NONE) + .enumerate_children( + SCAN_ATTRIBUTES, + gio::FileQueryInfoFlags::NONE, + gio::Cancellable::NONE, + ) .map_err(err_str)? { let info = info_res.map_err(err_str)?; @@ -133,13 +160,17 @@ fn network_scan(uri: &str, sizes: IconSizes) -> Result, String> { //TODO: what is the best way to resolve shortcuts? let location = Location::Network(uri, display_name.clone(), file.child(&name).path()); - let metadata = if !force_dir && !info.boolean(gio::FILE_ATTRIBUTE_FILESYSTEM_REMOTE) { + let metadata = if force_dir { + ItemMetadata::SimpleDir { entries: 0 } + } else { let mtime = info.attribute_uint64(gio::FILE_ATTRIBUTE_TIME_MODIFIED); let is_dir = matches!(info.file_type(), gio::FileType::Directory); let size_opt = (!is_dir).then_some(info.size() as u64); let mut children_opt = None; - if is_dir { + // Counting children costs a directory listing per entry, which is far too + // expensive on a remote filesystem + if is_dir && !remote { if let Some(path) = file.child(&name).path() { //TODO: calculate children in the background (and make it cancellable?) match std::fs::read_dir(&path) { @@ -159,9 +190,8 @@ fn network_scan(uri: &str, sizes: IconSizes) -> Result, String> { mtime, size_opt, children_opt, + is_dir, } - } else { - ItemMetadata::SimpleDir { entries: 0 } }; let (mime, icon_handle_grid, icon_handle_list, icon_handle_list_condensed) = { diff --git a/src/tab.rs b/src/tab.rs index 0da0db2..6de11e7 100644 --- a/src/tab.rs +++ b/src/tab.rs @@ -640,6 +640,41 @@ fn display_name_for_file(path: &Path, name: &str, get_from_gvfs: bool, is_deskto Item::display_name(name) } +// Whether a dir lives on a remote filesystem, according to GIO. +#[cfg(feature = "gvfs")] +fn gvfs_dir_is_remote(dir: &Path) -> bool { + static REMOTE_CACHE: LazyLock>> = + LazyLock::new(|| RwLock::new(FxHashMap::default())); + + if let Some(remote) = REMOTE_CACHE.read().unwrap().get(dir) { + return *remote; + } + + let remote = match gio::prelude::FileExt::query_filesystem_info( + &gio::File::for_path(dir), + gio::FILE_ATTRIBUTE_FILESYSTEM_REMOTE, + gio::Cancellable::NONE, + ) { + Ok(info) => info.boolean(gio::FILE_ATTRIBUTE_FILESYSTEM_REMOTE), + Err(err) => { + log::warn!( + "failed to get GIO filesystem info for {}: {}", + dir.display(), + err + ); + + //Assume remote so that the "expensive tasks" are rather skipped then actually executed. + true + } + }; + + REMOTE_CACHE + .write() + .unwrap() + .insert(dir.to_path_buf(), remote); + remote +} + #[cfg(feature = "gvfs")] pub fn item_from_gvfs_info(path: PathBuf, file_info: gio::FileInfo, sizes: IconSizes) -> Item { let file_name = file_info @@ -647,7 +682,7 @@ pub fn item_from_gvfs_info(path: PathBuf, file_info: gio::FileInfo, sizes: IconS .unwrap_or_default(); let mtime = file_info.attribute_uint64(gio::FILE_ATTRIBUTE_TIME_MODIFIED); let mut is_desktop = false; - let remote = file_info.boolean(gio::FILE_ATTRIBUTE_FILESYSTEM_REMOTE); + let remote = path.parent().is_none_or(gvfs_dir_is_remote); let is_dir = matches!(file_info.file_type(), gio::FileType::Directory); let size_opt = (!is_dir).then_some(file_info.size() as u64); @@ -715,6 +750,7 @@ pub fn item_from_gvfs_info(path: PathBuf, file_info: gio::FileInfo, sizes: IconS mtime, size_opt, children_opt, + is_dir, }, hidden, image_dimensions: (!remote && mime.type_() == mime::IMAGE) @@ -766,23 +802,7 @@ pub fn item_from_entry( #[cfg(feature = "gvfs")] FsKind::Gvfs => { is_gvfs = true; - let file = gio::File::for_path(&path); - - match gio::prelude::FileExt::query_filesystem_info( - &file, - gio::FILE_ATTRIBUTE_FILESYSTEM_REMOTE, - gio::Cancellable::NONE, - ) { - Ok(info) => info.boolean(gio::FILE_ATTRIBUTE_FILESYSTEM_REMOTE), - Err(err) => { - log::warn!( - "failed to get GIO filesystem info for {}: {}", - path.display(), - err - ); - true - } - } + path.parent().is_none_or(gvfs_dir_is_remote) } #[cfg(not(feature = "gvfs"))] FsKind::Gvfs => { @@ -1009,7 +1029,6 @@ pub fn scan_path(tab_path: &PathBuf, sizes: IconSizes) -> Vec { // gio crate expects a comma delimited string let attr_string = [ gio::FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME.as_str(), - gio::FILE_ATTRIBUTE_FILESYSTEM_REMOTE.as_str(), gio::FILE_ATTRIBUTE_TIME_MODIFIED.as_str(), gio::FILE_ATTRIBUTE_STANDARD_SIZE.as_str(), gio::FILE_ATTRIBUTE_STANDARD_TYPE.as_str(), @@ -1818,6 +1837,8 @@ pub enum Message { HighlightDeactivate(usize), HighlightActivate(usize), DirectorySize(PathBuf, DirSize), + #[cfg(feature = "gvfs")] + DirectoryChildren(PathBuf, usize), Checksums(PathBuf, ChecksumState), CalculateChecksums(PathBuf), CopyChecksum(String), @@ -1886,6 +1907,7 @@ pub enum ItemMetadata { mtime: u64, size_opt: Option, children_opt: Option, + is_dir: bool, }, } @@ -1900,7 +1922,7 @@ impl ItemMetadata { Self::SimpleDir { .. } => true, Self::SimpleFile { .. } => false, #[cfg(feature = "gvfs")] - Self::GvfsPath { children_opt, .. } => children_opt.is_some(), + Self::GvfsPath { is_dir, .. } => *is_dir, } } @@ -4827,6 +4849,20 @@ impl Tab { } } } + #[cfg(feature = "gvfs")] + Message::DirectoryChildren(path, children) => { + if let Some(ref mut items) = self.items_opt { + for item in items.iter_mut() { + if item.path_opt() == Some(&path) { + if let ItemMetadata::GvfsPath { children_opt, .. } = &mut item.metadata + { + *children_opt = Some(children); + } + break; + } + } + } + } Message::Checksums(path, checksum_state) => { let location = Location::Path(path); if let Some(ref mut item) = self.parent_item_opt @@ -4988,11 +5024,15 @@ impl Tab { ItemMetadata::GvfsPath { size_opt, children_opt, + is_dir, .. - } => match children_opt { - Some(child_count) => (true, *child_count as u64), - None => (false, size_opt.unwrap_or_default()), - }, + } => { + if *is_dir { + (true, children_opt.unwrap_or_default() as u64) + } else { + (false, size_opt.unwrap_or_default()) + } + } }; let (a_is_entry, a_size) = get_size(a.1); let (b_is_entry, b_size) = get_size(b.1); @@ -6170,17 +6210,21 @@ impl Tab { ItemMetadata::GvfsPath { size_opt, children_opt, + is_dir, .. - } => match children_opt { - Some(child_count) => { - if *child_count == 1 { - format!("{child_count} item") - } else { - format!("{child_count} items") + } => { + if *is_dir { + // Children are not counted on remote filesystems + match children_opt { + //TODO: translate + Some(1) => "1 item".to_string(), + Some(child_count) => format!("{child_count} items"), + None => String::new(), } + } else { + format_size(size_opt.unwrap_or_default()) } - None => format_size(size_opt.unwrap_or_default()), - }, + } }; let row = if condensed { @@ -6946,6 +6990,74 @@ impl Tab { Rectangle::new(point, size) }; + // Count the children of visible directories in the background. Doing it while + // scanning costs one directory listing per entry, which stalls remote filesystems. + #[cfg(feature = "gvfs")] + for item in items { + let ItemMetadata::GvfsPath { + children_opt: None, + is_dir: true, + .. + } = &item.metadata + else { + continue; + }; + + // Skip items that are not visible, or have no determined rect + match item.rect_opt.get() { + Some(rect) if rect.intersects(&visible_rect) => {} + _ => continue, + } + + let Some(path) = item.path_opt().cloned() else { + continue; + }; + + struct ChildrenWrapper(PathBuf); + impl Hash for ChildrenWrapper { + fn hash(&self, state: &mut H) { + self.0.hash(state); + } + } + + subscriptions.push(Subscription::run_with( + ChildrenWrapper(path), + |ChildrenWrapper(path)| { + let path = path.clone(); + stream::channel( + 1, + move |mut output: futures::channel::mpsc::Sender<_>| async move { + let message = { + let path = path.clone(); + tokio::task::spawn_blocking(move || { + let children = match fs::read_dir(&path) { + Ok(entries) => entries.count(), + Err(err) => { + log::warn!( + "failed to read directory {}: {}", + path.display(), + err + ); + 0 + } + }; + Message::DirectoryChildren(path, children) + }) + .await + .unwrap() + }; + + if let Err(err) = output.send(message).await { + log::warn!("failed to send directory children: {err}"); + } + + std::future::pending().await + }, + ) + }, + )); + } + for item in items { if item.thumbnail_opt.is_some() { // Skip items that already have a mime type and thumbnail From 3d520858f388a140ad8565145637e8224ccd3b9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9sar=20Mendon=C3=A7a?= Date: Thu, 9 Jul 2026 09:09:52 -0300 Subject: [PATCH 10/34] feat: allow renaming sidebar favorites to custom names Co-Authored-By: Claude Fable 5 --- i18n/en/cosmic_files.ftl | 4 ++ i18n/pt-BR/cosmic_files.ftl | 5 ++ src/app.rs | 124 +++++++++++++++++++++++++++++++----- src/config.rs | 100 +++++++++++++++++++++++++++++ src/dialog.rs | 12 +--- 5 files changed, 218 insertions(+), 27 deletions(-) diff --git a/i18n/en/cosmic_files.ftl b/i18n/en/cosmic_files.ftl index ea01f7e..2c1a6f5 100644 --- a/i18n/en/cosmic_files.ftl +++ b/i18n/en/cosmic_files.ftl @@ -118,6 +118,10 @@ rename-file = Rename file rename-folder = Rename folder rename-confirm = Rename +## Rename Favorite Dialog +rename-favorite = Rename sidebar item +favorite-name = Item name + ## Replace Dialog replace = Replace replace-title = "{$filename}" already exists in this location diff --git a/i18n/pt-BR/cosmic_files.ftl b/i18n/pt-BR/cosmic_files.ftl index 75b071d..38d2b79 100644 --- a/i18n/pt-BR/cosmic_files.ftl +++ b/i18n/pt-BR/cosmic_files.ftl @@ -109,6 +109,11 @@ permanently-delete-warning = Deseja realmente excluir permanentemente { $target rename-file = Renomear arquivo rename-folder = Renomear pasta +## Rename Favorite Dialog + +rename-favorite = Renomear item da barra lateral +favorite-name = Nome do item + ## Replace Dialog replace = Substituir diff --git a/src/app.rs b/src/app.rs index afc22f4..6009089 100644 --- a/src/app.rs +++ b/src/app.rs @@ -321,6 +321,7 @@ pub enum NavMenuAction { Preview(segmented_button::Entity), RunContextAction(segmented_button::Entity, usize), RemoveFromSidebar(segmented_button::Entity), + RenameFavorite(segmented_button::Entity), } impl MenuAction for NavMenuAction { @@ -575,6 +576,10 @@ pub enum DialogPage { DeleteTrash { items: Vec, }, + RenameFavorite { + entity: Entity, + name: String, + }, RenameItem { from: PathBuf, parent: PathBuf, @@ -1769,15 +1774,9 @@ impl App { for (favorite_i, favorite) in self.config.favorites.iter().enumerate() { if let Some(path) = favorite.path_opt() { - let name = if matches!(favorite, Favorite::Home) { - fl!("home") - } else if let Favorite::Network { name, .. } = favorite { - name.clone() - } else if let Some(file_name) = path.file_name().and_then(|x| x.to_str()) { - file_name.to_string() - } else { - fl!("filesystem") - }; + let name = favorite + .display_name() + .unwrap_or_else(|| fl!("filesystem")); nav_model = nav_model.insert(move |b| { b.text(name.clone()) .icon( @@ -2290,15 +2289,33 @@ impl App { .favorites .iter() .map(|favorite| { - if let Favorite::Path(path) = favorite { - for (from, to) in path_changes.iter().map(|(f, t)| (f.as_ref(), t.as_ref())) { - if path.starts_with(from) - && let Ok(relative) = path.strip_prefix(from) + match favorite { + Favorite::Path(path) => { + for (from, to) in path_changes.iter().map(|(f, t)| (f.as_ref(), t.as_ref())) { - favorites_changed = true; - return Favorite::from_path(to.join(relative)); + if path.starts_with(from) + && let Ok(relative) = path.strip_prefix(from) + { + favorites_changed = true; + return Favorite::from_path(to.join(relative)); + } } } + Favorite::Named { path, name } => { + for (from, to) in path_changes.iter().map(|(f, t)| (f.as_ref(), t.as_ref())) + { + if path.starts_with(from) + && let Ok(relative) = path.strip_prefix(from) + { + favorites_changed = true; + return Favorite::Named { + path: to.join(relative), + name: name.clone(), + }; + } + } + } + _ => {} } favorite.clone() }) @@ -2613,6 +2630,11 @@ impl Application for App { } items.push(cosmic::widget::menu::Item::Divider); if favorite_index_opt.is_some() { + items.push(cosmic::widget::menu::Item::Button( + fl!("rename-confirm"), + None, + NavMenuAction::RenameFavorite(entity), + )); items.push(cosmic::widget::menu::Item::Button( fl!("remove-from-sidebar"), None, @@ -2904,7 +2926,8 @@ impl Application for App { } else { Favorite::from_path(path) }; - if !favorites.contains(&favorite) { + let favorite_path = favorite.path_opt(); + if !favorites.iter().any(|f| f.path_opt() == favorite_path) { favorites.push(favorite); } } @@ -3262,6 +3285,18 @@ impl Application for App { DialogPage::DeleteTrash { items } => { tasks.push(self.operation(Operation::DeleteTrash { items })); } + DialogPage::RenameFavorite { entity, name } => { + if let Some(FavoriteIndex(favorite_i)) = + self.nav_model.data::(entity) + { + let mut favorites = self.config.favorites.clone(); + if let Some(favorite) = favorites.get_mut(*favorite_i) { + *favorite = favorite.with_name(name.trim()); + config_set!(favorites, favorites); + tasks.push(self.update_config()); + } + } + } DialogPage::RenameItem { from, parent, name, .. } => { @@ -4487,7 +4522,8 @@ impl Application for App { tab::Command::AddToSidebar(path) => { let mut favorites = self.config.favorites.clone(); let favorite = Favorite::from_path(path); - if !favorites.contains(&favorite) { + let favorite_path = favorite.path_opt(); + if !favorites.iter().any(|f| f.path_opt() == favorite_path) { favorites.push(favorite); } config_set!(favorites, favorites); @@ -5271,6 +5307,26 @@ impl Application for App { return self.update_config(); } } + + NavMenuAction::RenameFavorite(entity) => { + if let Some(favorite) = self + .nav_model + .data::(entity) + .and_then(|FavoriteIndex(favorite_i)| { + self.config.favorites.get(*favorite_i) + }) + { + let name = favorite + .display_name() + .unwrap_or_else(|| fl!("filesystem")); + return Task::batch([ + self.dialog_pages + .push_back(DialogPage::RenameFavorite { entity, name }), + widget::text_input::focus(self.dialog_text_input.clone()), + widget::text_input::select_all(self.dialog_text_input.clone()), + ]); + } + } }, Message::Recents => { if self.config.show_recents { @@ -6164,6 +6220,40 @@ impl Application for App { target = target ))) } + DialogPage::RenameFavorite { entity, name } => { + let entity = *entity; + let complete_maybe = if name.trim().is_empty() { + None + } else { + Some(Message::DialogComplete) + }; + + widget::dialog() + .title(fl!("rename-favorite")) + .primary_action( + widget::button::suggested(fl!("rename-confirm")) + .on_press_maybe(complete_maybe.clone()), + ) + .secondary_action( + widget::button::standard(fl!("cancel")).on_press(Message::DialogCancel), + ) + .control( + widget::column::with_children([ + widget::text::body(fl!("favorite-name")).into(), + widget::text_input("", name.as_str()) + .id(self.dialog_text_input.clone()) + .on_input(move |name| { + Message::DialogUpdate(DialogPage::RenameFavorite { + entity, + name, + }) + }) + .on_submit_maybe(complete_maybe.map(|maybe| move |_| maybe.clone())) + .into(), + ]) + .spacing(space_xxs), + ) + } DialogPage::RenameItem { from, parent, diff --git a/src/config.rs b/src/config.rs index 2138d83..bb8631e 100644 --- a/src/config.rs +++ b/src/config.rs @@ -70,6 +70,11 @@ pub enum Favorite { name: String, path: PathBuf, }, + /// A path with a custom name chosen by the user + Named { + path: PathBuf, + name: String, + }, } impl Favorite { @@ -98,6 +103,38 @@ impl Favorite { Self::Videos => dirs::video_dir(), Self::Path(path) => Some(path.clone()), Self::Network { path, .. } => Some(path.clone()), + Self::Named { path, .. } => Some(path.clone()), + } + } + + /// Name shown in the sidebar, or `None` if the path has no usable file name + pub fn display_name(&self) -> Option { + match self { + Self::Home => Some(crate::fl!("home")), + Self::Named { name, .. } | Self::Network { name, .. } => Some(name.clone()), + _ => self + .path_opt()? + .file_name() + .and_then(|x| x.to_str()) + .map(ToString::to_string), + } + } + + /// Return this favorite renamed with a custom name chosen by the user + pub fn with_name(&self, name: &str) -> Self { + match self { + Self::Network { uri, path, .. } => Self::Network { + uri: uri.clone(), + name: name.to_string(), + path: path.clone(), + }, + other => match other.path_opt() { + Some(path) => Self::Named { + path, + name: name.to_string(), + }, + None => other.clone(), + }, } } } @@ -385,3 +422,66 @@ pub const TIME_CONFIG_ID: &str = "com.system76.CosmicAppletTime"; pub struct TimeConfig { pub military_time: bool, } + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn favorite_with_name_converts_path_to_named() { + let favorite = Favorite::Path(PathBuf::from("/some/dir")); + assert_eq!( + favorite.with_name("Custom"), + Favorite::Named { + path: PathBuf::from("/some/dir"), + name: "Custom".to_string(), + } + ); + } + + #[test] + fn favorite_with_name_updates_network_in_place() { + let favorite = Favorite::Network { + uri: "sftp://example.com/".to_string(), + name: "example.com".to_string(), + path: PathBuf::from("/run/mount/example"), + }; + assert_eq!( + favorite.with_name("Custom"), + Favorite::Network { + uri: "sftp://example.com/".to_string(), + name: "Custom".to_string(), + path: PathBuf::from("/run/mount/example"), + } + ); + } + + #[test] + fn favorite_with_name_converts_special_folder_to_named() { + let home = dirs::home_dir().unwrap(); + assert_eq!( + Favorite::Home.with_name("Custom"), + Favorite::Named { + path: home, + name: "Custom".to_string(), + } + ); + } + + #[test] + fn favorite_display_name() { + assert_eq!( + Favorite::Path(PathBuf::from("/some/dir")).display_name(), + Some("dir".to_string()) + ); + assert_eq!(Favorite::Path(PathBuf::from("/")).display_name(), None); + assert_eq!( + Favorite::Named { + path: PathBuf::from("/some/dir"), + name: "Custom".to_string(), + } + .display_name(), + Some("Custom".to_string()) + ); + } +} diff --git a/src/dialog.rs b/src/dialog.rs index b369b73..315691a 100644 --- a/src/dialog.rs +++ b/src/dialog.rs @@ -32,9 +32,7 @@ use std::{env, fmt, fs}; use crate::app::{ Action, ContextPage, Message as AppMessage, PreviewItem, PreviewKind, REPLACE_BUTTON_ID, }; -use crate::config::{ - Config, DialogConfig, Favorite, TIME_CONFIG_ID, ThumbCfg, TimeConfig, TypeToSearch, -}; +use crate::config::{Config, DialogConfig, TIME_CONFIG_ID, ThumbCfg, TimeConfig, TypeToSearch}; use crate::key_bind::key_binds; use crate::localize::LANGUAGE_SORTER; use crate::mounter::{MOUNTERS, MounterItem, MounterItems, MounterKey, MounterMessage}; @@ -889,13 +887,7 @@ impl App { for favorite in &self.flags.config.favorites { if let Some(path) = favorite.path_opt() { - let name = if matches!(favorite, Favorite::Home) { - fl!("home") - } else if let Favorite::Network { name, .. } = favorite { - name.clone() - } else if let Some(file_name) = path.file_name().and_then(|x| x.to_str()) { - file_name.to_string() - } else { + let Some(name) = favorite.display_name() else { continue; }; nav_model = nav_model.insert(move |b| { From 08a637767d43fa1d7521f142213708c64b8ff651 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9sar=20Mendon=C3=A7a?= Date: Thu, 20 Aug 2026 13:53:47 -0300 Subject: [PATCH 11/34] refactor: rename favorite renaming action to "Change sidebar label" Address review feedback on the sidebar favorite renaming feature: - Context menu item and dialog title now share the same "change-sidebar-label" translation key - Rename NavMenuAction::RenameFavorite and DialogPage::RenameFavorite to ChangeSidebarLabel, with the dialog field renamed to "label" - Rename Favorite::with_name to Favorite::with_label - Dialog confirm button now uses the existing "save" key instead of "rename-confirm" - Replace the "rename-favorite"/"favorite-name" keys with "sidebar-label" in en and pt-BR translations Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01YRJDQDBKhCqipbcZm7U1v9 --- i18n/en/cosmic_files.ftl | 6 +++--- i18n/pt-BR/cosmic_files.ftl | 6 +++--- src/app.rs | 38 ++++++++++++++++++------------------- src/config.rs | 16 ++++++++-------- 4 files changed, 33 insertions(+), 33 deletions(-) diff --git a/i18n/en/cosmic_files.ftl b/i18n/en/cosmic_files.ftl index 2c1a6f5..2c57b53 100644 --- a/i18n/en/cosmic_files.ftl +++ b/i18n/en/cosmic_files.ftl @@ -118,9 +118,8 @@ rename-file = Rename file rename-folder = Rename folder rename-confirm = Rename -## Rename Favorite Dialog -rename-favorite = Rename sidebar item -favorite-name = Item name +## Change Sidebar Label Dialog +sidebar-label = Sidebar label ## Replace Dialog replace = Replace @@ -345,6 +344,7 @@ move-to = Move to... move-to-trash = Move to trash restore-from-trash = Restore from trash remove-from-sidebar = Remove from sidebar +change-sidebar-label = Change sidebar label sort-by-name = Sort by name sort-by-modified = Sort by modified sort-by-size = Sort by size diff --git a/i18n/pt-BR/cosmic_files.ftl b/i18n/pt-BR/cosmic_files.ftl index 38d2b79..83986f2 100644 --- a/i18n/pt-BR/cosmic_files.ftl +++ b/i18n/pt-BR/cosmic_files.ftl @@ -109,10 +109,9 @@ permanently-delete-warning = Deseja realmente excluir permanentemente { $target rename-file = Renomear arquivo rename-folder = Renomear pasta -## Rename Favorite Dialog +## Change Sidebar Label Dialog -rename-favorite = Renomear item da barra lateral -favorite-name = Nome do item +sidebar-label = Rótulo da barra lateral ## Replace Dialog @@ -370,6 +369,7 @@ open-in-terminal = Abrir no terminal move-to-trash = Mover para a lixeira restore-from-trash = Restaurar da lixeira remove-from-sidebar = Remover da barra lateral +change-sidebar-label = Alterar rótulo na barra lateral sort-by-name = Ordenar por nome sort-by-modified = Ordenar por data de modificação sort-by-size = Ordenar por tamanho diff --git a/src/app.rs b/src/app.rs index 6009089..6a7bf63 100644 --- a/src/app.rs +++ b/src/app.rs @@ -321,7 +321,7 @@ pub enum NavMenuAction { Preview(segmented_button::Entity), RunContextAction(segmented_button::Entity, usize), RemoveFromSidebar(segmented_button::Entity), - RenameFavorite(segmented_button::Entity), + ChangeSidebarLabel(segmented_button::Entity), } impl MenuAction for NavMenuAction { @@ -576,9 +576,9 @@ pub enum DialogPage { DeleteTrash { items: Vec, }, - RenameFavorite { + ChangeSidebarLabel { entity: Entity, - name: String, + label: String, }, RenameItem { from: PathBuf, @@ -2631,9 +2631,9 @@ impl Application for App { items.push(cosmic::widget::menu::Item::Divider); if favorite_index_opt.is_some() { items.push(cosmic::widget::menu::Item::Button( - fl!("rename-confirm"), + fl!("change-sidebar-label"), None, - NavMenuAction::RenameFavorite(entity), + NavMenuAction::ChangeSidebarLabel(entity), )); items.push(cosmic::widget::menu::Item::Button( fl!("remove-from-sidebar"), @@ -3285,13 +3285,13 @@ impl Application for App { DialogPage::DeleteTrash { items } => { tasks.push(self.operation(Operation::DeleteTrash { items })); } - DialogPage::RenameFavorite { entity, name } => { + DialogPage::ChangeSidebarLabel { entity, label } => { if let Some(FavoriteIndex(favorite_i)) = self.nav_model.data::(entity) { let mut favorites = self.config.favorites.clone(); if let Some(favorite) = favorites.get_mut(*favorite_i) { - *favorite = favorite.with_name(name.trim()); + *favorite = favorite.with_label(label.trim()); config_set!(favorites, favorites); tasks.push(self.update_config()); } @@ -5308,7 +5308,7 @@ impl Application for App { } } - NavMenuAction::RenameFavorite(entity) => { + NavMenuAction::ChangeSidebarLabel(entity) => { if let Some(favorite) = self .nav_model .data::(entity) @@ -5316,12 +5316,12 @@ impl Application for App { self.config.favorites.get(*favorite_i) }) { - let name = favorite + let label = favorite .display_name() .unwrap_or_else(|| fl!("filesystem")); return Task::batch([ self.dialog_pages - .push_back(DialogPage::RenameFavorite { entity, name }), + .push_back(DialogPage::ChangeSidebarLabel { entity, label }), widget::text_input::focus(self.dialog_text_input.clone()), widget::text_input::select_all(self.dialog_text_input.clone()), ]); @@ -6220,18 +6220,18 @@ impl Application for App { target = target ))) } - DialogPage::RenameFavorite { entity, name } => { + DialogPage::ChangeSidebarLabel { entity, label } => { let entity = *entity; - let complete_maybe = if name.trim().is_empty() { + let complete_maybe = if label.trim().is_empty() { None } else { Some(Message::DialogComplete) }; widget::dialog() - .title(fl!("rename-favorite")) + .title(fl!("change-sidebar-label")) .primary_action( - widget::button::suggested(fl!("rename-confirm")) + widget::button::suggested(fl!("save")) .on_press_maybe(complete_maybe.clone()), ) .secondary_action( @@ -6239,13 +6239,13 @@ impl Application for App { ) .control( widget::column::with_children([ - widget::text::body(fl!("favorite-name")).into(), - widget::text_input("", name.as_str()) + widget::text::body(fl!("sidebar-label")).into(), + widget::text_input("", label.as_str()) .id(self.dialog_text_input.clone()) - .on_input(move |name| { - Message::DialogUpdate(DialogPage::RenameFavorite { + .on_input(move |label| { + Message::DialogUpdate(DialogPage::ChangeSidebarLabel { entity, - name, + label, }) }) .on_submit_maybe(complete_maybe.map(|maybe| move |_| maybe.clone())) diff --git a/src/config.rs b/src/config.rs index bb8631e..f064076 100644 --- a/src/config.rs +++ b/src/config.rs @@ -120,8 +120,8 @@ impl Favorite { } } - /// Return this favorite renamed with a custom name chosen by the user - pub fn with_name(&self, name: &str) -> Self { + /// Return this favorite with a custom sidebar label chosen by the user + pub fn with_label(&self, name: &str) -> Self { match self { Self::Network { uri, path, .. } => Self::Network { uri: uri.clone(), @@ -428,10 +428,10 @@ mod tests { use super::*; #[test] - fn favorite_with_name_converts_path_to_named() { + fn favorite_with_label_converts_path_to_named() { let favorite = Favorite::Path(PathBuf::from("/some/dir")); assert_eq!( - favorite.with_name("Custom"), + favorite.with_label("Custom"), Favorite::Named { path: PathBuf::from("/some/dir"), name: "Custom".to_string(), @@ -440,14 +440,14 @@ mod tests { } #[test] - fn favorite_with_name_updates_network_in_place() { + fn favorite_with_label_updates_network_in_place() { let favorite = Favorite::Network { uri: "sftp://example.com/".to_string(), name: "example.com".to_string(), path: PathBuf::from("/run/mount/example"), }; assert_eq!( - favorite.with_name("Custom"), + favorite.with_label("Custom"), Favorite::Network { uri: "sftp://example.com/".to_string(), name: "Custom".to_string(), @@ -457,10 +457,10 @@ mod tests { } #[test] - fn favorite_with_name_converts_special_folder_to_named() { + fn favorite_with_label_converts_special_folder_to_named() { let home = dirs::home_dir().unwrap(); assert_eq!( - Favorite::Home.with_name("Custom"), + Favorite::Home.with_label("Custom"), Favorite::Named { path: home, name: "Custom".to_string(), From bb8b61f48b51ff0fee034c4d9749b91a6dffe87b Mon Sep 17 00:00:00 2001 From: David Carvalho Date: Sat, 22 Aug 2026 23:03:05 +0200 Subject: [PATCH 12/34] i18n(pt-BR): update translations from Weblate Currently translated at 100.0% (244 of 244 strings) Translation: Pop OS/COSMIC Files Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/pt_BR/ --- i18n/pt-BR/cosmic_files.ftl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/pt-BR/cosmic_files.ftl b/i18n/pt-BR/cosmic_files.ftl index 75b071d..ca2507f 100644 --- a/i18n/pt-BR/cosmic_files.ftl +++ b/i18n/pt-BR/cosmic_files.ftl @@ -350,7 +350,7 @@ light = Estilo claro ### Type to Search -type-to-search = Digite para pesquisar +type-to-search = Digitar para pesquisar type-to-search-recursive = Pesquisa na pasta atual e em todas as subpastas type-to-search-enter-path = Insere o caminho do diretório ou arquivo # Context menu From b46b77f3a7a162a0ea625fa156ea4d7df4e9d062 Mon Sep 17 00:00:00 2001 From: Konstantinos Date: Tue, 25 Aug 2026 00:13:24 +0300 Subject: [PATCH 13/34] Align center for text on items in grid view. fixes #754 --- src/tab.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/tab.rs b/src/tab.rs index 60d9bf2..79a5091 100644 --- a/src/tab.rs +++ b/src/tab.rs @@ -2355,6 +2355,7 @@ impl Item { ) -> widget::Text<'a, cosmic::Theme, cosmic::Renderer> { widget::text::body(name) .wrapping(text::Wrapping::WordOrGlyph) + .align_x(text::Alignment::Center) .ellipsize(text::Ellipsize::Middle(text::EllipsizeHeightLimit::Lines( 3, ))) From 67af455898d7ee6098c98083a330c883272b7734 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Tue, 25 Aug 2026 09:20:29 -0600 Subject: [PATCH 14/34] Epoch 1.7.0 version update Generated by cosmic-epoch scripts/version-update.sh --- Cargo.lock | 172 ++++++++++++++++----------------- Cargo.toml | 2 +- cosmic-files-applet/Cargo.toml | 2 +- debian/changelog | 6 ++ 4 files changed, 94 insertions(+), 88 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a463d07..291cf93 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -535,7 +535,7 @@ checksum = "82f6aeea286b8eb4dd3431a1be1b59d290ace00f5bfd8e2a159bc2a05e2c1667" dependencies = [ "proc-macro2", "quote", - "syn 3.0.3", + "syn 3.0.4", ] [[package]] @@ -606,7 +606,7 @@ dependencies = [ "derive_utils", "proc-macro2", "quote", - "syn 3.0.3", + "syn 3.0.4", ] [[package]] @@ -763,9 +763,9 @@ dependencies = [ [[package]] name = "blocking" -version = "1.6.2" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e83f8d02be6967315521be875afa792a316e28d57b5a2d401897e2a7921b7f21" +checksum = "a70e4329df6cb94385eed412ec92375c3cdd8a6e502493d1229b6414e4036dfa" dependencies = [ "async-channel", "async-task", @@ -826,7 +826,7 @@ dependencies = [ [[package]] name = "build_helpers" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#c1897c01aa8a25776ceadeddcb161bb59ccffd79" +source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" dependencies = [ "cfg_aliases", ] @@ -866,7 +866,7 @@ checksum = "fc0e56a716f1e132ff6bf4bdac1c944a3fcdc1cae65f70a4a2a1ac3b401d2d1f" dependencies = [ "proc-macro2", "quote", - "syn 3.0.3", + "syn 3.0.4", ] [[package]] @@ -933,9 +933,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.4.3" +version = "1.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "509591b7bcd67f4ef775afad7662703b4935daaa6ec0e5605cfb1090b32a2b6d" +checksum = "0ad534f4357a5264cce5019c989cf66a4f0dc4e0d1b1d15f8aacec0ff7360273" dependencies = [ "find-msvc-tools", "jobserver", @@ -956,9 +956,9 @@ dependencies = [ [[package]] name = "cfg-expr" -version = "0.20.8" +version = "0.20.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb693542bcafa528e198be0ebd9d3632ca5b7c93dbe7237460e199910835997c" +checksum = "fe4ece8474b5f766c63426647e7b4b316b67431ade1036a8313cee24a03ae917" dependencies = [ "smallvec", "target-lexicon", @@ -1359,7 +1359,7 @@ dependencies = [ [[package]] name = "cosmic-config" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#c1897c01aa8a25776ceadeddcb161bb59ccffd79" +source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" dependencies = [ "atomicwrites", "cosmic-config-derive", @@ -1380,7 +1380,7 @@ dependencies = [ [[package]] name = "cosmic-config-derive" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#c1897c01aa8a25776ceadeddcb161bb59ccffd79" +source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" dependencies = [ "quote", "syn 2.0.119", @@ -1388,7 +1388,7 @@ dependencies = [ [[package]] name = "cosmic-files" -version = "1.6.0" +version = "1.7.0" dependencies = [ "anyhow", "atomic_float", @@ -1457,7 +1457,7 @@ dependencies = [ [[package]] name = "cosmic-files-applet" -version = "1.6.0" +version = "1.7.0" dependencies = [ "cosmic-files", "log", @@ -1506,7 +1506,7 @@ dependencies = [ [[package]] name = "cosmic-settings-config" version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-settings-daemon#e4d2a74f5115091940f6ea09f730863f74f34758" +source = "git+https://github.com/pop-os/cosmic-settings-daemon#617af3feb74dcf551a7c99b2396b4c9ac22568b3" dependencies = [ "cosmic-config", "ron 0.11.0", @@ -1551,7 +1551,7 @@ dependencies = [ [[package]] name = "cosmic-theme" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#c1897c01aa8a25776ceadeddcb161bb59ccffd79" +source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" dependencies = [ "almost", "configparser", @@ -1592,9 +1592,9 @@ dependencies = [ [[package]] name = "crc32fast" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +checksum = "8498c871161e1742aaa9d52551b2d6ebdd4c3d45a3be423e3728f33b955be550" dependencies = [ "cfg-if", ] @@ -1678,9 +1678,9 @@ checksum = "42aaeae719fd78ce501d77c6cdf01f7e96f26bcd5617a4903a1c2b97e388543a" [[package]] name = "csscolorparser" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "199f851bd3cb5004c09474252c7f74e7c047441ed0979bf3688a7106a13da952" +checksum = "168dbdf4dced8f57fa4246ac9080598452b49d70bb2d0e46422142f113140dd8" dependencies = [ "num-traits", "phf", @@ -1853,7 +1853,7 @@ checksum = "dc05a5d33db20c784f873e84934ad94bb209a090987ac5f62fede2c178234f23" dependencies = [ "proc-macro2", "quote", - "syn 3.0.3", + "syn 3.0.4", ] [[package]] @@ -1962,7 +1962,7 @@ checksum = "c6232dd377dcc64799954cbd3a9bb882e9cdc1308ccd87b1c098f1fb2eaf82a8" dependencies = [ "proc-macro2", "quote", - "syn 3.0.3", + "syn 3.0.4", ] [[package]] @@ -2059,9 +2059,9 @@ checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" [[package]] name = "either" -version = "1.17.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e5e8f6c15a24b9a3ee5efec809ccd006d3b30e8b3bb63c39af737c7f87daa1d" +checksum = "252afb9ae5eaa683babdc6a068b3f5726eb19e05070c731f9b2a23a7c3e8ed34" [[package]] name = "endi" @@ -2391,9 +2391,9 @@ dependencies = [ [[package]] name = "font-types" -version = "0.12.3" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75382bc7392ef10aad10935f92fc3db36d2d4dad0e5d96d8d65e04f89a07ec39" +checksum = "e64eb721ca85a34323425f4041adc5d82704d3782d5f8f03793bc012419dce23" dependencies = [ "bytemuck", ] @@ -2439,7 +2439,7 @@ checksum = "ea5190182e6915eb873ddbc16e23b711b6eb1f9c00a0d0a3a91b5f6228475225" dependencies = [ "proc-macro2", "quote", - "syn 3.0.3", + "syn 3.0.4", ] [[package]] @@ -2569,7 +2569,7 @@ checksum = "9fb9654ba8355388abeb8dcb4fc62f511300867002afc858860463bdd9fe0c44" dependencies = [ "proc-macro2", "quote", - "syn 3.0.3", + "syn 3.0.4", ] [[package]] @@ -2992,7 +2992,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d37f101bf4c633f7ca2e4b5e136050314503dd198e78e325ea602c327c484ef0" dependencies = [ "arrayvec", - "rand 0.8.7", + "rand 0.8.8", "serde", ] @@ -3114,7 +3114,7 @@ dependencies = [ [[package]] name = "iced" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#c1897c01aa8a25776ceadeddcb161bb59ccffd79" +source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" dependencies = [ "build_helpers", "dnd", @@ -3136,7 +3136,7 @@ dependencies = [ [[package]] name = "iced_accessibility" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic.git#c1897c01aa8a25776ceadeddcb161bb59ccffd79" +source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" dependencies = [ "accesskit", "accesskit_winit", @@ -3145,7 +3145,7 @@ dependencies = [ [[package]] name = "iced_core" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#c1897c01aa8a25776ceadeddcb161bb59ccffd79" +source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" dependencies = [ "bitflags 2.13.1", "build_helpers", @@ -3171,7 +3171,7 @@ dependencies = [ [[package]] name = "iced_debug" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#c1897c01aa8a25776ceadeddcb161bb59ccffd79" +source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" dependencies = [ "iced_core", "iced_futures", @@ -3181,7 +3181,7 @@ dependencies = [ [[package]] name = "iced_futures" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#c1897c01aa8a25776ceadeddcb161bb59ccffd79" +source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" dependencies = [ "futures", "iced_core", @@ -3195,7 +3195,7 @@ dependencies = [ [[package]] name = "iced_graphics" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#c1897c01aa8a25776ceadeddcb161bb59ccffd79" +source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" dependencies = [ "bitflags 2.13.1", "bytemuck", @@ -3216,7 +3216,7 @@ dependencies = [ [[package]] name = "iced_program" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#c1897c01aa8a25776ceadeddcb161bb59ccffd79" +source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" dependencies = [ "iced_graphics", "iced_runtime", @@ -3225,7 +3225,7 @@ dependencies = [ [[package]] name = "iced_renderer" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#c1897c01aa8a25776ceadeddcb161bb59ccffd79" +source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" dependencies = [ "iced_graphics", "iced_tiny_skia", @@ -3237,7 +3237,7 @@ dependencies = [ [[package]] name = "iced_runtime" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#c1897c01aa8a25776ceadeddcb161bb59ccffd79" +source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" dependencies = [ "build_helpers", "bytes", @@ -3253,7 +3253,7 @@ dependencies = [ [[package]] name = "iced_tiny_skia" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#c1897c01aa8a25776ceadeddcb161bb59ccffd79" +source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" dependencies = [ "bytemuck", "cosmic-text", @@ -3270,7 +3270,7 @@ dependencies = [ [[package]] name = "iced_wgpu" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#c1897c01aa8a25776ceadeddcb161bb59ccffd79" +source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" dependencies = [ "as-raw-xcb-connection", "bitflags 2.13.1", @@ -3302,7 +3302,7 @@ dependencies = [ [[package]] name = "iced_widget" version = "0.14.2" -source = "git+https://github.com/pop-os/libcosmic.git#c1897c01aa8a25776ceadeddcb161bb59ccffd79" +source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" dependencies = [ "build_helpers", "cosmic-client-toolkit", @@ -3321,7 +3321,7 @@ dependencies = [ [[package]] name = "iced_winit" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#c1897c01aa8a25776ceadeddcb161bb59ccffd79" +source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" dependencies = [ "build_helpers", "cosmic-client-toolkit", @@ -3353,9 +3353,9 @@ dependencies = [ [[package]] name = "icu" -version = "2.3.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d5080b89807979ab05f8b6f3c6bbd580ece1512a6cf4cf800baa76937e488b3" +checksum = "4867dd3a39b9d48632416cc7fc3dfa1913d89fd36cc02fe7bfc1dddc6fda3cde" dependencies = [ "icu_calendar", "icu_casemap", @@ -3423,9 +3423,9 @@ checksum = "059fcda0fc8d33effc6633a8cf0d8a3c17caf7d7c91918fba9918744f501e4e8" [[package]] name = "icu_collator" -version = "2.3.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59eea194d189ca897bcb960fd2130f9e7d53998460d4d32e85a60b10d5507cf4" +checksum = "08984ed58ac439ebf3e13d2cf26b0c46a60afcd21721c1d14087c0b240344dda" dependencies = [ "icu_collator_data", "icu_collections", @@ -3578,9 +3578,9 @@ checksum = "4ffef91ee351bd195a803115615a034dfb9f02bb48850980548c31cb78568a91" [[package]] name = "icu_locale" -version = "2.3.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "250ec6d4ac288584d1d0ba29dbfad7737635b7b0e822441f4026a523e3fdb147" +checksum = "785f595c61ef57169a467eeed7b4b6936a66f6cacbb116a96ee86da983251bf4" dependencies = [ "icu_collections", "icu_locale_core", @@ -3711,9 +3711,9 @@ checksum = "e590f038c1464a96894fd6d10127e90a8be4509f56ff7ecef851b15cee0b7caa" [[package]] name = "icu_provider" -version = "2.3.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92a7ed671a6aad807a8651a2e1782a6598fda9ce5185dd8158549e95a91c6428" +checksum = "d27bbb9d3abbefac45d55f647c9de1d44aafcd1186eb91879afef17c396c3e73" dependencies = [ "displaydoc", "icu_locale_core", @@ -4466,7 +4466,7 @@ checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" [[package]] name = "libcosmic" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#c1897c01aa8a25776ceadeddcb161bb59ccffd79" +source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" dependencies = [ "apply", "ashpd 0.12.3", @@ -4553,7 +4553,7 @@ dependencies = [ "bitflags 2.13.1", "libc", "plain", - "redox_syscall 0.9.2", + "redox_syscall 0.9.3", ] [[package]] @@ -4625,9 +4625,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.33" +version = "0.4.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad" +checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6" [[package]] name = "loom" @@ -5381,9 +5381,9 @@ checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" [[package]] name = "open" -version = "5.4.1" +version = "5.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9cfef937e9c486488c7e3d949ae31c0f1d06bdacd75b99c086cb35356e30408" +checksum = "ade3be4664bc1ef537ce133015f04c176b737815c2ba9fd60edf212d6e90dd55" dependencies = [ "is-wsl", "libc", @@ -5407,9 +5407,9 @@ dependencies = [ [[package]] name = "ordered-float" -version = "5.3.0" +version = "5.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7d950ca161dc355eaf28f82b11345ed76c6e1f6eb1f4f4479e0323b9e2fbd0e" +checksum = "8c7c9e0d9b23589f26070720bac724174bfec1083e82f7854cdd0267518343c0" dependencies = [ "num-traits", ] @@ -5799,7 +5799,7 @@ dependencies = [ "proc-macro-error-attr3", "proc-macro2", "quote", - "syn 3.0.3", + "syn 3.0.4", ] [[package]] @@ -5962,9 +5962,9 @@ checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" [[package]] name = "rand" -version = "0.8.7" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22f6172bdec972074665ed81ed53b71da00bfc44b65a753cfde883ec4c702a1a" +checksum = "e058c7de0b26af77780c769414d6257830bb240f3c38477dbc2c16e5f54d6d4c" dependencies = [ "libc", "rand_chacha 0.3.1", @@ -6134,7 +6134,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "046a7d674daf459825b32f5062056d6882db0d2f5a479fbd76ccfc870ac18709" dependencies = [ "bytemuck", - "font-types 0.12.3", + "font-types 0.12.4", "once_cell", ] @@ -6181,9 +6181,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.9.2" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1c93da5bb2c5d4e6c0ef7abeead62c89169a0a4882bfb83ac892f2423aea2fe" +checksum = "d678d17679829e73d371e96880897e98fee2ded7acc0a50bdf8af2affa4b2fe5" dependencies = [ "bitflags 2.13.1", ] @@ -6212,22 +6212,22 @@ dependencies = [ [[package]] name = "ref-cast" -version = "1.0.26" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "216e8f773d7923bcba9ceb86a86c93cabb3903a11872fc3f138c49630e50b96d" +checksum = "7e440fb4e4b4147295338efb76001ab9e4efc0e5839df2c47fc5ac2381d365c3" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.26" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c9283685feec7d69af75fb0e858d5e7378f33fe4fc699383b2916ab9273e03c" +checksum = "92ecd8964f8453721699a1ed72037b0db49ce2f5a5138486ee89bed6f67cdf3a" dependencies = [ "proc-macro2", "quote", - "syn 3.0.3", + "syn 3.0.4", ] [[package]] @@ -6551,7 +6551,7 @@ checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" dependencies = [ "proc-macro2", "quote", - "syn 3.0.3", + "syn 3.0.4", ] [[package]] @@ -6576,7 +6576,7 @@ checksum = "8d3b1629de253c70a0508c3899572da79ca359fdab27c7920ff00406df418906" dependencies = [ "proc-macro2", "quote", - "syn 3.0.3", + "syn 3.0.4", ] [[package]] @@ -6959,9 +6959,9 @@ dependencies = [ [[package]] name = "syn" -version = "3.0.3" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53e9bae58849f64dfa4f5d5ae372c8341f7305f82a3868709269343628b659a3" +checksum = "e6275cddf4610d1775e6d1fe9469b2e77d0f39fd98fb7450901b821e0c53649f" dependencies = [ "proc-macro2", "quote", @@ -7154,7 +7154,7 @@ checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af" dependencies = [ "proc-macro2", "quote", - "syn 3.0.3", + "syn 3.0.4", ] [[package]] @@ -7346,7 +7346,7 @@ checksum = "78773a2a397f451582ce068015985c33193cf6dea8b74d2a639fe457b2f07b0e" dependencies = [ "proc-macro2", "quote", - "syn 3.0.3", + "syn 3.0.4", ] [[package]] @@ -7707,9 +7707,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.24.1" +version = "1.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cefc03fd367c0c6d4305de1b312cf00248c4114f4a0418ce6a6af769e3b0bd9" +checksum = "f053576934f05a761a402421fbbe3d425d9366f75f978806a037b3ca481abecc" dependencies = [ "getrandom 0.4.3", "js-sys", @@ -9201,7 +9201,7 @@ dependencies = [ "hex", "nix", "ordered-stream", - "rand 0.8.7", + "rand 0.8.8", "serde", "serde_repr", "sha1 0.10.7", @@ -9297,7 +9297,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 3.0.3", + "syn 3.0.4", "zbus_names 4.3.4", "zvariant 5.15.0", "zvariant_utils 4.2.0", @@ -9413,9 +9413,9 @@ dependencies = [ [[package]] name = "zerovec" -version = "0.11.7" +version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94b5c6b5976d66c1d703c4fd17d3f5e43c8cedaacf604961b171adc7130896d8" +checksum = "bb0464e17806c1d976d5cba29399c7f08e516e279e2ba493f63123b5fca67dd8" dependencies = [ "serde", "yoke", @@ -9425,13 +9425,13 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.11.5" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f212a141d820099d57ffafb9569be9617a6f27d3dc881fbee8fb56642f917a9" +checksum = "34df6fc39dbd26ddc9c10e6a2984476e13acce22e64e4487636ef494369225da" dependencies = [ "proc-macro2", "quote", - "syn 3.0.3", + "syn 3.0.4", ] [[package]] @@ -9603,7 +9603,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 3.0.3", + "syn 3.0.4", "zvariant_utils 4.2.0", ] @@ -9627,6 +9627,6 @@ dependencies = [ "proc-macro2", "quote", "serde", - "syn 3.0.3", + "syn 3.0.4", "winnow", ] diff --git a/Cargo.toml b/Cargo.toml index 68002b9..d46796c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cosmic-files" -version = "1.6.0" +version = "1.7.0" authors = ["Jeremy Soller "] edition = "2024" license = "GPL-3.0-only" diff --git a/cosmic-files-applet/Cargo.toml b/cosmic-files-applet/Cargo.toml index cc632ae..8d396ae 100644 --- a/cosmic-files-applet/Cargo.toml +++ b/cosmic-files-applet/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cosmic-files-applet" -version = "1.6.0" +version = "1.7.0" edition = "2024" [dependencies] diff --git a/debian/changelog b/debian/changelog index 65f6401..6cbee03 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +cosmic-files (1.7.0) noble; urgency=medium + + * Epoch 1.7.0 version update + + -- Jeremy Soller Tue, 25 Aug 2026 09:20:22 -0600 + cosmic-files (1.6.0) noble; urgency=medium * Epoch 1.6.0 version update From 35334ba93b035f7e05977627cfacb275c90845f3 Mon Sep 17 00:00:00 2001 From: Lionel DARNIS Date: Thu, 27 Aug 2026 07:58:51 +0200 Subject: [PATCH 15/34] chore: fige Cargo.lock tel que resolu apres le merge 1.7.0 Co-Authored-By: Claude Opus 5 (1M context) --- Cargo.lock | 277 +++++++++++------------------------------------------ 1 file changed, 58 insertions(+), 219 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 291cf93..a78228e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -334,12 +334,6 @@ version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56" -[[package]] -name = "as-raw-xcb-connection" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "175571dd1d178ced59193a6fc02dde1b972eb0bc56c892cde9beeceac5bf0f6b" - [[package]] name = "as-slice" version = "0.2.1" @@ -826,7 +820,6 @@ dependencies = [ [[package]] name = "build_helpers" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" dependencies = [ "cfg_aliases", ] @@ -1012,7 +1005,6 @@ dependencies = [ [[package]] name = "clipboard_macos" version = "0.1.0" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=sctk-0.20#f68595ee0e62fbd6589f4709b5aaa5c3c7ea5f6c" dependencies = [ "objc", "objc-foundation", @@ -1022,22 +1014,12 @@ dependencies = [ [[package]] name = "clipboard_wayland" version = "0.2.2" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=sctk-0.20#f68595ee0e62fbd6589f4709b5aaa5c3c7ea5f6c" dependencies = [ "dnd", "mime 0.1.0", "smithay-clipboard", ] -[[package]] -name = "clipboard_x11" -version = "0.4.2" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=sctk-0.20#f68595ee0e62fbd6589f4709b5aaa5c3c7ea5f6c" -dependencies = [ - "thiserror 1.0.69", - "x11rb", -] - [[package]] name = "cmov" version = "0.5.4" @@ -1343,13 +1325,25 @@ dependencies = [ "libm", ] +[[package]] +name = "cosmic-client-toolkit" +version = "0.2.0" +dependencies = [ + "bitflags 2.13.1", + "cosmic-protocols 0.2.0", + "libc", + "smithay-client-toolkit", + "wayland-client", + "wayland-protocols", +] + [[package]] name = "cosmic-client-toolkit" version = "0.2.0" source = "git+https://github.com/pop-os/cosmic-protocols?rev=32283d7#32283d76a8d0342da74c4cc022a533c52dcf378f" dependencies = [ "bitflags 2.13.1", - "cosmic-protocols", + "cosmic-protocols 0.2.0 (git+https://github.com/pop-os/cosmic-protocols?rev=32283d7)", "libc", "smithay-client-toolkit", "wayland-client", @@ -1359,7 +1353,6 @@ dependencies = [ [[package]] name = "cosmic-config" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" dependencies = [ "atomicwrites", "cosmic-config-derive", @@ -1380,7 +1373,6 @@ dependencies = [ [[package]] name = "cosmic-config-derive" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" dependencies = [ "quote", "syn 2.0.119", @@ -1395,7 +1387,7 @@ dependencies = [ "bstr", "bzip2", "compio", - "cosmic-client-toolkit", + "cosmic-client-toolkit 0.2.0 (git+https://github.com/pop-os/cosmic-protocols?rev=32283d7)", "cosmic-mime-apps", "dirs 6.0.0", "fastrand", @@ -1414,7 +1406,7 @@ dependencies = [ "jiff-icu", "jxl-oxide", "libc", - "libcosmic", + "libcosmic-yoda", "log", "lzma-rust2", "md-5", @@ -1467,7 +1459,6 @@ dependencies = [ [[package]] name = "cosmic-freedesktop-icons" version = "0.4.0" -source = "git+https://github.com/pop-os/freedesktop-icons#ab4c57b8e416c6af9297cb04d101889896fd9a92" dependencies = [ "bstr", "btoi", @@ -1489,6 +1480,19 @@ dependencies = [ "xdg", ] +[[package]] +name = "cosmic-protocols" +version = "0.2.0" +dependencies = [ + "bitflags 2.13.1", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-protocols-wlr", + "wayland-scanner", + "wayland-server", +] + [[package]] name = "cosmic-protocols" version = "0.2.0" @@ -1506,7 +1510,6 @@ dependencies = [ [[package]] name = "cosmic-settings-config" version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-settings-daemon#617af3feb74dcf551a7c99b2396b4c9ac22568b3" dependencies = [ "cosmic-config", "ron 0.11.0", @@ -1518,8 +1521,7 @@ dependencies = [ [[package]] name = "cosmic-settings-daemon" -version = "0.1.0" -source = "git+https://github.com/pop-os/dbus-settings-bindings#eed01dd3609e90e3c8cd043656734c500956c793" +version = "0.1.1-yoda.1" dependencies = [ "zbus 5.19.0", ] @@ -1527,8 +1529,6 @@ dependencies = [ [[package]] name = "cosmic-text" version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be17b688510d934ce13f48a2beba700e11583e281e0fda99c22bb256a14eda73" dependencies = [ "bitflags 2.13.1", "fontdb", @@ -1546,12 +1546,12 @@ dependencies = [ "unicode-linebreak", "unicode-script", "unicode-segmentation", + "unicode-width", ] [[package]] name = "cosmic-theme" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" dependencies = [ "almost", "configparser", @@ -1642,7 +1642,6 @@ checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" [[package]] name = "cryoglyph" version = "0.1.0" -source = "git+https://github.com/iced-rs/cryoglyph.git?rev=e429a025df36ab8145708acb309080ae3deec17a#e429a025df36ab8145708acb309080ae3deec17a" dependencies = [ "cosmic-text", "etagere", @@ -1688,15 +1687,6 @@ dependencies = [ "uncased", ] -[[package]] -name = "ctor" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83cf0d42651b16c6dfe68685716d18480d18a9c39c62d76e8cf3eb6ed5d8bcbf" -dependencies = [ - "dtor", -] - [[package]] name = "ctutils" version = "0.4.2" @@ -1977,7 +1967,6 @@ dependencies = [ [[package]] name = "dnd" version = "0.1.0" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=sctk-0.20#f68595ee0e62fbd6589f4709b5aaa5c3c7ea5f6c" dependencies = [ "bitflags 2.13.1", "mime 0.1.0", @@ -2004,52 +1993,6 @@ checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" [[package]] name = "dpi" version = "0.1.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" - -[[package]] -name = "drm" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0f8a69e60d75ae7dab4ef26a59ca99f2a89d4c142089b537775ae0c198bdcde" -dependencies = [ - "bitflags 2.13.1", - "bytemuck", - "drm-ffi", - "drm-fourcc", - "rustix 0.38.44", -] - -[[package]] -name = "drm-ffi" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41334f8405792483e32ad05fbb9c5680ff4e84491883d2947a4757dc54cb2ac6" -dependencies = [ - "drm-sys", - "rustix 0.38.44", -] - -[[package]] -name = "drm-fourcc" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0aafbcdb8afc29c1a7ee5fbe53b5d62f4565b35a042a662ca9fecd0b54dae6f4" - -[[package]] -name = "drm-sys" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d09ff881f92f118b11105ba5e34ff8f4adf27b30dae8f12e28c193af1c83176" -dependencies = [ - "libc", - "linux-raw-sys 0.6.5", -] - -[[package]] -name = "dtor" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edf234dd1594d6dd434a8fb8cada51ddbbc593e40e4a01556a0b31c62da2775b" [[package]] name = "dyn-clone" @@ -2626,16 +2569,6 @@ dependencies = [ "version_check", ] -[[package]] -name = "gethostname" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bd49230192a3797a9a4d6abe9b3eed6f7fa4c8a8a4947977c6f80025f92cbd8" -dependencies = [ - "rustix 1.1.4", - "windows-link 0.2.1", -] - [[package]] name = "getrandom" version = "0.2.17" @@ -3114,7 +3047,6 @@ dependencies = [ [[package]] name = "iced" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" dependencies = [ "build_helpers", "dnd", @@ -3136,7 +3068,6 @@ dependencies = [ [[package]] name = "iced_accessibility" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" dependencies = [ "accesskit", "accesskit_winit", @@ -3145,12 +3076,11 @@ dependencies = [ [[package]] name = "iced_core" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" dependencies = [ "bitflags 2.13.1", "build_helpers", "bytes", - "cosmic-client-toolkit", + "cosmic-client-toolkit 0.2.0", "dnd", "glam", "lilt", @@ -3171,7 +3101,6 @@ dependencies = [ [[package]] name = "iced_debug" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" dependencies = [ "iced_core", "iced_futures", @@ -3181,7 +3110,6 @@ dependencies = [ [[package]] name = "iced_futures" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" dependencies = [ "futures", "iced_core", @@ -3195,7 +3123,6 @@ dependencies = [ [[package]] name = "iced_graphics" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" dependencies = [ "bitflags 2.13.1", "bytemuck", @@ -3216,7 +3143,6 @@ dependencies = [ [[package]] name = "iced_program" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" dependencies = [ "iced_graphics", "iced_runtime", @@ -3225,7 +3151,6 @@ dependencies = [ [[package]] name = "iced_renderer" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" dependencies = [ "iced_graphics", "iced_tiny_skia", @@ -3237,11 +3162,10 @@ dependencies = [ [[package]] name = "iced_runtime" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" dependencies = [ "build_helpers", "bytes", - "cosmic-client-toolkit", + "cosmic-client-toolkit 0.2.0", "dnd", "iced_core", "iced_futures", @@ -3253,7 +3177,6 @@ dependencies = [ [[package]] name = "iced_tiny_skia" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" dependencies = [ "bytemuck", "cosmic-text", @@ -3270,13 +3193,11 @@ dependencies = [ [[package]] name = "iced_wgpu" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" dependencies = [ - "as-raw-xcb-connection", "bitflags 2.13.1", "build_helpers", "bytemuck", - "cosmic-client-toolkit", + "cosmic-client-toolkit 0.2.0", "cryoglyph", "futures", "glam", @@ -3290,22 +3211,19 @@ dependencies = [ "rustc-hash 2.1.3", "rustix 0.38.44", "thiserror 2.0.20", - "tiny-xlib", "wayland-backend", "wayland-client", "wayland-protocols", "wayland-sys", "wgpu", - "x11rb", ] [[package]] name = "iced_widget" version = "0.14.2" -source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" dependencies = [ "build_helpers", - "cosmic-client-toolkit", + "cosmic-client-toolkit 0.2.0", "dnd", "iced_renderer", "iced_runtime", @@ -3321,10 +3239,9 @@ dependencies = [ [[package]] name = "iced_winit" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" dependencies = [ "build_helpers", - "cosmic-client-toolkit", + "cosmic-client-toolkit 0.2.0", "cursor-icon", "dnd", "iced_debug", @@ -4464,15 +4381,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" [[package]] -name = "libcosmic" -version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" +name = "libcosmic-yoda" +version = "0.1.0-yoda.2" dependencies = [ "apply", "ashpd 0.12.3", "auto_enums", "build_helpers", - "cosmic-client-toolkit", + "cosmic-client-toolkit 0.2.0", "cosmic-config", "cosmic-freedesktop-icons", "cosmic-settings-config", @@ -4577,12 +4493,6 @@ version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" -[[package]] -name = "linux-raw-sys" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a385b1be4e5c3e362ad2ffa73c392e53f031eaa5b7d648e64cd87f27f6063d7" - [[package]] name = "linux-raw-sys" version = "0.12.1" @@ -4822,7 +4732,6 @@ dependencies = [ [[package]] name = "mime" version = "0.1.0" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=sctk-0.20#f68595ee0e62fbd6589f4709b5aaa5c3c7ea5f6c" dependencies = [ "smithay-clipboard", ] @@ -6816,7 +6725,6 @@ dependencies = [ [[package]] name = "smithay-clipboard" version = "0.8.0" -source = "git+https://github.com/pop-os/smithay-clipboard?tag=sctk-0.20#859b02c88f45c554049a67c6ddeec1692ce0e20b" dependencies = [ "libc", "raw-window-handle", @@ -6847,31 +6755,26 @@ dependencies = [ [[package]] name = "softbuffer" version = "0.4.1" -source = "git+https://github.com/pop-os/softbuffer?tag=cosmic-4.0#c2b2c19ddb38ff17495643699f97cb1f2064a1be" dependencies = [ - "as-raw-xcb-connection", "bytemuck", "cfg_aliases", "cocoa", "core-graphics", - "drm", "fastrand", "foreign-types", "js-sys", + "libredox", "log", "memmap2 0.9.11", "objc", "raw-window-handle", - "redox_syscall 0.5.18", "rustix 0.38.44", - "tiny-xlib", "wasm-bindgen", "wayland-backend", "wayland-client", "wayland-sys", "web-sys", "windows-sys 0.52.0", - "x11rb", ] [[package]] @@ -7282,19 +7185,6 @@ dependencies = [ "strict-num", ] -[[package]] -name = "tiny-xlib" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a90a0ca3ee6a69f2ad28fd11621a4c3f03b371f366be500b64df260c4ffbafb4" -dependencies = [ - "as-raw-xcb-connection", - "ctor", - "libloading", - "pkg-config", - "tracing", -] - [[package]] name = "tinystr" version = "0.8.4" @@ -8216,12 +8106,10 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "window_clipboard" version = "0.4.1" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=sctk-0.20#f68595ee0e62fbd6589f4709b5aaa5c3c7ea5f6c" dependencies = [ "clipboard-win", "clipboard_macos", "clipboard_wayland", - "clipboard_x11", "dnd", "mime 0.1.0", "raw-window-handle", @@ -8723,7 +8611,6 @@ checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" [[package]] name = "winit" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "bitflags 2.13.1", "cfg_aliases", @@ -8743,13 +8630,11 @@ dependencies = [ "winit-wayland", "winit-web", "winit-win32", - "winit-x11", ] [[package]] name = "winit-android" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "android-activity", "bitflags 2.13.1", @@ -8764,7 +8649,6 @@ dependencies = [ [[package]] name = "winit-appkit" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "bitflags 2.13.1", "block2 0.6.2", @@ -8786,7 +8670,6 @@ dependencies = [ [[package]] name = "winit-common" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "memmap2 0.9.11", "objc2 0.6.4", @@ -8794,14 +8677,12 @@ dependencies = [ "smol_str", "tracing", "winit-core", - "x11-dl", "xkbcommon-dl", ] [[package]] name = "winit-core" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "bitflags 2.13.1", "cursor-icon", @@ -8815,7 +8696,6 @@ dependencies = [ [[package]] name = "winit-orbital" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "bitflags 2.13.1", "dpi", @@ -8831,7 +8711,6 @@ dependencies = [ [[package]] name = "winit-uikit" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "bitflags 2.13.1", "block2 0.6.2", @@ -8851,7 +8730,6 @@ dependencies = [ [[package]] name = "winit-wayland" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "ahash", "bitflags 2.13.1", @@ -8877,7 +8755,6 @@ dependencies = [ [[package]] name = "winit-web" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "atomic-waker", "bitflags 2.13.1", @@ -8899,7 +8776,6 @@ dependencies = [ [[package]] name = "winit-win32" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "bitflags 2.13.1", "cursor-icon", @@ -8912,29 +8788,6 @@ dependencies = [ "winit-core", ] -[[package]] -name = "winit-x11" -version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" -dependencies = [ - "bitflags 2.13.1", - "bytemuck", - "calloop", - "cursor-icon", - "dpi", - "libc", - "percent-encoding", - "raw-window-handle", - "rustix 1.1.4", - "smol_str", - "tracing", - "winit-common", - "winit-core", - "x11-dl", - "x11rb", - "xkbcommon-dl", -] - [[package]] name = "winnow" version = "1.0.4" @@ -8965,39 +8818,6 @@ dependencies = [ "either", ] -[[package]] -name = "x11-dl" -version = "2.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" -dependencies = [ - "libc", - "once_cell", - "pkg-config", -] - -[[package]] -name = "x11rb" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9993aa5be5a26815fe2c3eacfc1fde061fc1a1f094bf1ad2a18bf9c495dd7414" -dependencies = [ - "as-raw-xcb-connection", - "gethostname", - "libc", - "libloading", - "once_cell", - "rustix 1.1.4", - "x11rb-protocol", - "xcursor", -] - -[[package]] -name = "x11rb-protocol" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea6fc2961e4ef194dcbfe56bb845534d0dc8098940c7e5c012a258bfec6701bd" - [[package]] name = "xattr" version = "1.6.1" @@ -9630,3 +9450,22 @@ dependencies = [ "syn 3.0.4", "winnow", ] + +[[patch.unused]] +name = "winit-x11" +version = "0.31.0-beta.2" + +[[patch.unused]] +name = "dnd" +version = "0.1.0" +source = "git+https://forge.aditua.com/leyoda/window_clipboard.git?branch=yoda-x11-optional#af8e6a872d8ac4956e044b9cb05a615a48261a57" + +[[patch.unused]] +name = "mime" +version = "0.1.0" +source = "git+https://forge.aditua.com/leyoda/window_clipboard.git?branch=yoda-x11-optional#af8e6a872d8ac4956e044b9cb05a615a48261a57" + +[[patch.unused]] +name = "window_clipboard" +version = "0.4.1" +source = "git+https://forge.aditua.com/leyoda/window_clipboard.git?branch=yoda-x11-optional#af8e6a872d8ac4956e044b9cb05a615a48261a57" From de739425cb41d13fd3f0636017101889cbaba0e7 Mon Sep 17 00:00:00 2001 From: Hojjat Date: Wed, 26 Aug 2026 17:25:53 -0600 Subject: [PATCH 16/34] fix: rubber band selection not redrawing on mouse movement --- src/mouse_area.rs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/mouse_area.rs b/src/mouse_area.rs index 73bd710..8f52546 100644 --- a/src/mouse_area.rs +++ b/src/mouse_area.rs @@ -563,6 +563,16 @@ fn update( state.last_position = position_in; } + if state.drag_initiated.is_some() + && matches!( + event, + Event::Mouse(mouse::Event::CursorMoved { .. }) + | Event::Touch(touch::Event::FingerMoved { .. }) + ) + { + shell.request_redraw(); + } + if let Event::Mouse(mouse::Event::CursorMoved { position }) = event { let virtual_position = Point::new( viewport.x - layout_bounds.x + position.x, @@ -639,6 +649,7 @@ fn update( { state.drag_initiated = None; state.prev_click = None; + shell.request_redraw(); if let Some(message) = widget.on_drag_end.as_ref() { shell.publish(message(cursor.position_in(layout_bounds))); } @@ -658,7 +669,9 @@ fn update( state.prev_click = None; return; } - state.drag_initiated = None; + if state.drag_initiated.take().is_some() { + shell.request_redraw(); + } if let Some(message) = widget.on_release.as_ref() { shell.publish(message(cursor.position_in(layout_bounds))); From f3b8f6f5859919603b77fe1da74c41d505e90b22 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Tue, 1 Sep 2026 19:00:05 +0200 Subject: [PATCH 17/34] i18n: translation updates from weblate Co-authored-by: Alex Co-authored-by: CYAXXX <85353920+CYAXXX@users.noreply.github.com> Co-authored-by: Dan Co-authored-by: David Carvalho Co-authored-by: Geeson Wan Co-authored-by: Hosted Weblate Co-authored-by: Jim Spentzos Co-authored-by: Julien Brouillard Co-authored-by: Kurt Harren Catindig Co-authored-by: Mattias Eriksson Co-authored-by: VandaL Co-authored-by: Walter William Beckerleg Bruckman Co-authored-by: Zahid Rizky Fakhri Co-authored-by: lorduskordus Co-authored-by: therealmate Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/cs/ Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/el/ Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/fr/ Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/hu/ Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/id/ Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/kmr/ Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/pl/ Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/pt_BR/ Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/ru/ Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/sv/ Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/uk/ Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/zh_Hans/ Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/zh_Hant/ Translation: Pop OS/COSMIC Files --- i18n/cs/cosmic_files.ftl | 3 +++ i18n/el/cosmic_files.ftl | 3 +++ i18n/fil/cosmic_files.ftl | 0 i18n/fr/cosmic_files.ftl | 3 +++ i18n/hu/cosmic_files.ftl | 5 ++++- i18n/id/cosmic_files.ftl | 3 +++ i18n/kmr/cosmic_files.ftl | 3 +++ i18n/pl/cosmic_files.ftl | 3 +++ i18n/pt-BR/cosmic_files.ftl | 5 +++-- i18n/ru/cosmic_files.ftl | 6 ++++-- i18n/sv/cosmic_files.ftl | 3 +++ i18n/uk/cosmic_files.ftl | 3 +++ i18n/zh-CN/cosmic_files.ftl | 3 +++ i18n/zh-TW/cosmic_files.ftl | 3 +++ 14 files changed, 41 insertions(+), 5 deletions(-) create mode 100644 i18n/fil/cosmic_files.ftl diff --git a/i18n/cs/cosmic_files.ftl b/i18n/cs/cosmic_files.ftl index 81f34f5..b5b1c00 100644 --- a/i18n/cs/cosmic_files.ftl +++ b/i18n/cs/cosmic_files.ftl @@ -431,3 +431,6 @@ rename-confirm = Přejmenovat checksum = Kontrolní součet { $kind } calculate = Vypočítat error = Chyba +search-application = Hledat podle názvu aplikace +sidebar-label = Popisek v postranním panelu +change-sidebar-label = Změnit popisek v postranním panelu diff --git a/i18n/el/cosmic_files.ftl b/i18n/el/cosmic_files.ftl index f8ff7cd..6443d4b 100644 --- a/i18n/el/cosmic_files.ftl +++ b/i18n/el/cosmic_files.ftl @@ -331,3 +331,6 @@ rename-confirm = Μετονομασία checksum = Άθροισμα ελέγχου { $kind } calculate = Υπολογισμός error = Σφάλμα +sidebar-label = Ετικέτα πλαϊνής στήλης +search-application = Αναζήτηση με όνομα εφαρμογής +change-sidebar-label = Αλλαγή ετικέτας πλαϊνής στήλης diff --git a/i18n/fil/cosmic_files.ftl b/i18n/fil/cosmic_files.ftl new file mode 100644 index 0000000..e69de29 diff --git a/i18n/fr/cosmic_files.ftl b/i18n/fr/cosmic_files.ftl index 7815257..13862bc 100644 --- a/i18n/fr/cosmic_files.ftl +++ b/i18n/fr/cosmic_files.ftl @@ -449,3 +449,6 @@ rename-confirm = Renommer calculate = Calculer error = Erreur checksum = Somme de contrôle { $kind } +sidebar-label = Libellé de la barre latérale +search-application = Chercher par nom d'appli +change-sidebar-label = Changer le libellé de la barre latérale diff --git a/i18n/hu/cosmic_files.ftl b/i18n/hu/cosmic_files.ftl index 827bfa1..fa15499 100644 --- a/i18n/hu/cosmic_files.ftl +++ b/i18n/hu/cosmic_files.ftl @@ -446,6 +446,9 @@ context-action-confirm-warning = } fog lefutni. run = Futtatás rename-confirm = Átnevezés -checksum = { $kind } ellenőrzőösszeg +checksum = { $kind }-ellenőrzőösszeg calculate = Számítás error = Hiba +sidebar-label = Oldalsávcímke +search-application = Keresés alkalmazásnév alapján +change-sidebar-label = Oldalsávcímke módosítása diff --git a/i18n/id/cosmic_files.ftl b/i18n/id/cosmic_files.ftl index 5bce181..f1203e7 100644 --- a/i18n/id/cosmic_files.ftl +++ b/i18n/id/cosmic_files.ftl @@ -331,3 +331,6 @@ rename-confirm = Ganti nama checksum = { $kind } checksum calculate = Hitung error = Galat +sidebar-label = Label bilah sisi +search-application = Cari berdasarkan nama aplikasi +change-sidebar-label = Ubah label bilah sisi diff --git a/i18n/kmr/cosmic_files.ftl b/i18n/kmr/cosmic_files.ftl index f45eaeb..bc61984 100644 --- a/i18n/kmr/cosmic_files.ftl +++ b/i18n/kmr/cosmic_files.ftl @@ -331,3 +331,6 @@ type-to-search-select = Pel an peldanka yekem a lihevhatî hildibijêre calculate = Bijmêre error = Şaşetî checksum = Tevahiya { $kind } kontrol bike +sidebar-label = Nîşanka benda kêlekê +search-application = Li gorî navê sepanê bigere +change-sidebar-label = Nîşanka benda kêlekê biguhêrîne diff --git a/i18n/pl/cosmic_files.ftl b/i18n/pl/cosmic_files.ftl index c92546a..b6ab357 100644 --- a/i18n/pl/cosmic_files.ftl +++ b/i18n/pl/cosmic_files.ftl @@ -450,3 +450,6 @@ rename-confirm = Zmień nazwę checksum = { $kind } suma kontrolna calculate = Oblicz error = Błąd +sidebar-label = Etykieta panelu bocznego +search-application = Wyszukaj po nazwie aplikacji +change-sidebar-label = Zmień etykietę panelu bocznego diff --git a/i18n/pt-BR/cosmic_files.ftl b/i18n/pt-BR/cosmic_files.ftl index b47214a..fd10ac3 100644 --- a/i18n/pt-BR/cosmic_files.ftl +++ b/i18n/pt-BR/cosmic_files.ftl @@ -111,7 +111,7 @@ rename-folder = Renomear pasta ## Change Sidebar Label Dialog -sidebar-label = Rótulo da barra lateral +sidebar-label = Legenda da barra lateral ## Replace Dialog @@ -369,7 +369,7 @@ open-in-terminal = Abrir no terminal move-to-trash = Mover para a lixeira restore-from-trash = Restaurar da lixeira remove-from-sidebar = Remover da barra lateral -change-sidebar-label = Alterar rótulo na barra lateral +change-sidebar-label = Alterar legenda da barra lateral sort-by-name = Ordenar por nome sort-by-modified = Ordenar por data de modificação sort-by-size = Ordenar por tamanho @@ -454,3 +454,4 @@ rename-confirm = Renomear checksum = Soma de verificação { $kind } calculate = Calcular error = Erro +search-application = Pesquisar por nome de aplicativo diff --git a/i18n/ru/cosmic_files.ftl b/i18n/ru/cosmic_files.ftl index 8b1f7f2..185421f 100644 --- a/i18n/ru/cosmic_files.ftl +++ b/i18n/ru/cosmic_files.ftl @@ -383,14 +383,16 @@ clear-recents-history = Очистить историю недавних copy-path = Копировать путь mixed = Смешанные context-action = Контекстная команда -context-action-confirm-title = Выполнить «{ $name }»? +context-action-confirm-title = Запустить «{ $name }»? context-action-confirm-warning = Команда затронет { $items } { $items -> [one] элемент *[other] элем. }. -run = Выполнить +run = Запустить rename-confirm = Переименовать checksum = Хеш-сумма { $kind } calculate = Вычислить error = Ошибка +sidebar-label = Подпись в боковой панели +change-sidebar-label = Изменить подпись diff --git a/i18n/sv/cosmic_files.ftl b/i18n/sv/cosmic_files.ftl index 12f9646..4714773 100644 --- a/i18n/sv/cosmic_files.ftl +++ b/i18n/sv/cosmic_files.ftl @@ -422,3 +422,6 @@ rename-confirm = Byt namn checksum = { $kind }-kontrollsumma calculate = Beräkna error = Fel +sidebar-label = Sidofältsetikett +search-application = Sök på programnamn +change-sidebar-label = Ändra sidofältsetikett diff --git a/i18n/uk/cosmic_files.ftl b/i18n/uk/cosmic_files.ftl index 58fdfb5..8a9c9d6 100644 --- a/i18n/uk/cosmic_files.ftl +++ b/i18n/uk/cosmic_files.ftl @@ -392,3 +392,6 @@ mixed = Змішано checksum = контрольна сума { $kind } calculate = Вирахувати error = Помилка +sidebar-label = Назва бічної панелі +search-application = Пошук за назвою застосунку +change-sidebar-label = Змінити назву бічної панелі diff --git a/i18n/zh-CN/cosmic_files.ftl b/i18n/zh-CN/cosmic_files.ftl index 432c875..cc674a3 100644 --- a/i18n/zh-CN/cosmic_files.ftl +++ b/i18n/zh-CN/cosmic_files.ftl @@ -449,3 +449,6 @@ rename-confirm = 重命名 calculate = 计算 error = 错误 checksum = { $kind } 校验和 +sidebar-label = 侧边栏标签 +search-application = 使用应用名称搜索 +change-sidebar-label = 更改侧边栏标签 diff --git a/i18n/zh-TW/cosmic_files.ftl b/i18n/zh-TW/cosmic_files.ftl index 4fc7cb7..de98d85 100644 --- a/i18n/zh-TW/cosmic_files.ftl +++ b/i18n/zh-TW/cosmic_files.ftl @@ -396,3 +396,6 @@ rename-confirm = 重新命名 checksum = { $kind } 核對和 calculate = 計算 error = 錯誤 +sidebar-label = 側邊欄標籤 +search-application = 依應用程式名稱搜尋 +change-sidebar-label = 變更側邊欄標籤 From 06278ee7f178a974d79e9603264fefaab1756882 Mon Sep 17 00:00:00 2001 From: Josh Megnauth Date: Fri, 31 Jul 2026 22:20:17 -0400 Subject: [PATCH 18/34] Change focus only if selected tab is closed Closes: #1921 Closing a tab other than the focused tab shouldn't change the focus. --- src/app.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/app.rs b/src/app.rs index 6a7bf63..48f70bb 100644 --- a/src/app.rs +++ b/src/app.rs @@ -4466,7 +4466,9 @@ impl Application for App { tasks.push(Task::future(async move { cosmic::action::app(Message::WindowClose) })); - } else if let Some(position) = self.tab_model.position(entity) { + } else if entity == self.tab_model.active() + && let Some(position) = self.tab_model.position(entity) + { let new_position = if position > 0 { position - 1 } else { From 1761b9b84ba1b30e6889f8a88bd1199f973d791f Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Wed, 2 Sep 2026 08:14:58 -0600 Subject: [PATCH 19/34] Epoch 1.8.0 version update Generated by cosmic-epoch scripts/version-update.sh --- Cargo.lock | 180 +++++++++++++++++---------------- Cargo.toml | 2 +- cosmic-files-applet/Cargo.toml | 2 +- debian/changelog | 6 ++ 4 files changed, 103 insertions(+), 87 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 291cf93..757d1bf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -109,13 +109,13 @@ checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" [[package]] name = "aes" -version = "0.9.2" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8eb277bec05f56a0e0591f155a484cbd0f4f07ff2905051a48c72f004f7ed58" +checksum = "35f0f96ce78e38c3dc6d8948aa8163d06385be74000f3c7a95bf1eef35d3ea32" dependencies = [ "cipher", "cpubits", - "cpufeatures 0.3.0", + "cpufeatures 0.3.1", ] [[package]] @@ -776,9 +776,9 @@ dependencies = [ [[package]] name = "borsh" -version = "1.8.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a88b7ea17d208c4193f2c1e6de3c35fe71f98c96982d5ced308bdcc749ff6e1f" +checksum = "553c5d846a6ba5150c65e3b1b8ec073bcf1abc20f9b7220de384a4443ea4e20a" dependencies = [ "bytes", "cfg_aliases", @@ -826,7 +826,7 @@ dependencies = [ [[package]] name = "build_helpers" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" +source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" dependencies = [ "cfg_aliases", ] @@ -1099,9 +1099,9 @@ checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" [[package]] name = "combine" -version = "4.6.7" +version = "4.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +checksum = "cfc320937d09e6de266b31b9afb480f197d7a861be86be7cb2ea7e5d1bfffc5e" dependencies = [ "bytes", "memchr", @@ -1359,7 +1359,7 @@ dependencies = [ [[package]] name = "cosmic-config" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" +source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" dependencies = [ "atomicwrites", "cosmic-config-derive", @@ -1380,7 +1380,7 @@ dependencies = [ [[package]] name = "cosmic-config-derive" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" +source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" dependencies = [ "quote", "syn 2.0.119", @@ -1388,7 +1388,7 @@ dependencies = [ [[package]] name = "cosmic-files" -version = "1.7.0" +version = "1.8.0" dependencies = [ "anyhow", "atomic_float", @@ -1457,7 +1457,7 @@ dependencies = [ [[package]] name = "cosmic-files-applet" -version = "1.7.0" +version = "1.8.0" dependencies = [ "cosmic-files", "log", @@ -1506,7 +1506,7 @@ dependencies = [ [[package]] name = "cosmic-settings-config" version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-settings-daemon#617af3feb74dcf551a7c99b2396b4c9ac22568b3" +source = "git+https://github.com/pop-os/cosmic-settings-daemon#67c995d5e659173352ca0adfb22108ac1bf91f5a" dependencies = [ "cosmic-config", "ron 0.11.0", @@ -1551,7 +1551,7 @@ dependencies = [ [[package]] name = "cosmic-theme" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" +source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" dependencies = [ "almost", "configparser", @@ -1583,9 +1583,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" +checksum = "5ca28b0ae3115b884660db4118d803791fd6756b6e88f39c0f3f7859060d7566" dependencies = [ "libc", ] @@ -2202,7 +2202,7 @@ dependencies = [ "bit_field", "half", "lebe", - "miniz_oxide", + "miniz_oxide 0.8.9", "num-complex", "pulp", "rayon-core", @@ -2278,12 +2278,12 @@ dependencies = [ [[package]] name = "flate2" -version = "1.1.9" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" +checksum = "6e634e2e0ebac1ee034020da1ca582e17ffe4e0f5e985823721e168928136dcb" dependencies = [ "crc32fast", - "miniz_oxide", + "miniz_oxide 0.9.1", "zlib-rs", ] @@ -2468,9 +2468,9 @@ dependencies = [ [[package]] name = "freedesktop-desktop-entry" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28273c5c6b97a5f07724f6652f064c0c7f637f9aa5e7c09c83bc3bc4ad4ea245" +checksum = "1f805583a11d4b14f17370a74731e93433c5740d8c401ca8605d3476f4d31fc0" dependencies = [ "bstr", "gettext-rs", @@ -2487,7 +2487,7 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc6d3a3635983a889f065aa9ce760384713f23a9b4a04f696f86c39a5d7a6a5a" dependencies = [ - "indexmap 2.14.0", + "indexmap 2.14.1", "nom 8.0.0", ] @@ -2674,9 +2674,9 @@ dependencies = [ [[package]] name = "gettext-rs" -version = "0.7.7" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d5857dc1b7f0fee86961de833f434e29494d72af102ce5355738c0664222bdf" +checksum = "9df5e3fa8c077b15fdfa8ce130e2bc73d663b8aaa6d51b71421b8659980b1d80" dependencies = [ "gettext-sys", "locale_config", @@ -2684,9 +2684,9 @@ dependencies = [ [[package]] name = "gettext-sys" -version = "0.26.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ea859ab0dd7e70ff823032b3e077d03d39c965d68c6c10775add60e999d8ee9" +checksum = "4caa7e4460b196107cc1bb2629488e8b6dbb7f34f6683ea6753c4ac22f590785" dependencies = [ "cc", "temp-dir", @@ -2975,9 +2975,9 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hermit-abi" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" +checksum = "e17592d60ebacc7d5e169f4663c5f84f9161cc90328abcfe8456f41e4dfcb284" [[package]] name = "hex" @@ -3114,7 +3114,7 @@ dependencies = [ [[package]] name = "iced" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" +source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" dependencies = [ "build_helpers", "dnd", @@ -3136,7 +3136,7 @@ dependencies = [ [[package]] name = "iced_accessibility" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" +source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" dependencies = [ "accesskit", "accesskit_winit", @@ -3145,7 +3145,7 @@ dependencies = [ [[package]] name = "iced_core" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" +source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" dependencies = [ "bitflags 2.13.1", "build_helpers", @@ -3171,7 +3171,7 @@ dependencies = [ [[package]] name = "iced_debug" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" +source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" dependencies = [ "iced_core", "iced_futures", @@ -3181,7 +3181,7 @@ dependencies = [ [[package]] name = "iced_futures" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" +source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" dependencies = [ "futures", "iced_core", @@ -3195,7 +3195,7 @@ dependencies = [ [[package]] name = "iced_graphics" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" +source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" dependencies = [ "bitflags 2.13.1", "bytemuck", @@ -3216,7 +3216,7 @@ dependencies = [ [[package]] name = "iced_program" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" +source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" dependencies = [ "iced_graphics", "iced_runtime", @@ -3225,7 +3225,7 @@ dependencies = [ [[package]] name = "iced_renderer" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" +source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" dependencies = [ "iced_graphics", "iced_tiny_skia", @@ -3237,7 +3237,7 @@ dependencies = [ [[package]] name = "iced_runtime" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" +source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" dependencies = [ "build_helpers", "bytes", @@ -3253,7 +3253,7 @@ dependencies = [ [[package]] name = "iced_tiny_skia" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" +source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" dependencies = [ "bytemuck", "cosmic-text", @@ -3270,7 +3270,7 @@ dependencies = [ [[package]] name = "iced_wgpu" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" +source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" dependencies = [ "as-raw-xcb-connection", "bitflags 2.13.1", @@ -3302,7 +3302,7 @@ dependencies = [ [[package]] name = "iced_widget" version = "0.14.2" -source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" +source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" dependencies = [ "build_helpers", "cosmic-client-toolkit", @@ -3321,7 +3321,7 @@ dependencies = [ [[package]] name = "iced_winit" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" +source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" dependencies = [ "build_helpers", "cosmic-client-toolkit", @@ -3867,9 +3867,9 @@ checksum = "edcd27d72f2f071c64249075f42e205ff93c9a4c5f6c6da53e79ed9f9832c285" [[package]] name = "imgref" -version = "1.12.2" +version = "1.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89194689a993ab15268672e99e7b0e19da2da3268ac682e8f02d29d4d1434cd7" +checksum = "6e44b0a4eaa4c82f441d50a963f2d5f05a787240aeee097597033e72accfd22f" [[package]] name = "indexmap" @@ -3884,9 +3884,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.14.0" +version = "2.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" +checksum = "07aa2048142242915a31d35844fb311e0e53fcca590c3a0a40dcf1b841fa09eb" dependencies = [ "equivalent", "hashbrown 0.17.1", @@ -4466,7 +4466,7 @@ checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" [[package]] name = "libcosmic" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#2a73fbc0edfe1525381bf999e241d73def79b222" +source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" dependencies = [ "apply", "ashpd 0.12.3", @@ -4546,9 +4546,9 @@ checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" [[package]] name = "libredox" -version = "0.1.20" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d0a00925a9f930d679b6789b721e3a7f9ed110f41b86d2497caa780c3a070a" +checksum = "8d8f1ea3f21fd3405dcaf6c9b5c1630af9afc422d9073ea39c5f6d6c772e08ed" dependencies = [ "bitflags 2.13.1", "libc", @@ -4670,9 +4670,9 @@ dependencies = [ [[package]] name = "lyon_algorithms" -version = "1.0.20" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8575c0d003ae459399623c4def180c63b77f343b1a7fee64f249b349e7699a31" +checksum = "cdfa8785f95e57914ddb35e3b59994aeba6f5e79e9cfd03da1c269f010f36009" dependencies = [ "lyon_path", "num-traits", @@ -4701,9 +4701,9 @@ dependencies = [ [[package]] name = "lyon_tessellation" -version = "1.0.20" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e43b7e44161571868f5c931d12583592c223c5583eef86b08aa02b7048a3552" +checksum = "dabea159dc6eea9171a541b458134b70ca95e3162d068132b2b3b9bc01aad06e" dependencies = [ "float_next_after", "lyon_path", @@ -4860,10 +4860,20 @@ dependencies = [ ] [[package]] -name = "mio" -version = "1.2.2" +name = "miniz_oxide" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d65c71f1ce40ab09135ce117d742b9f8a19ff91a41a8b57ed50bc2de59c427" +checksum = "b63fbc4a50860e98e7b2aa7804ded1db5cbc3aff9193adaff57a6931bf7c4b4c" +dependencies = [ + "adler2", + "simd-adler32", +] + +[[package]] +name = "mio" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b18443e9c262bfe8fa82f51666e2642c53393f7e5c27b3e1aeab922cff5b9d8" dependencies = [ "libc", "log", @@ -4902,7 +4912,7 @@ dependencies = [ "half", "hashbrown 0.16.1", "hexf-parse", - "indexmap 2.14.0", + "indexmap 2.14.1", "libm", "log", "num-traits", @@ -5381,9 +5391,9 @@ checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" [[package]] name = "open" -version = "5.4.2" +version = "5.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ade3be4664bc1ef537ce133015f04c176b737815c2ba9fd60edf212d6e90dd55" +checksum = "7c603ab8300cf18bc3b14146b19fe3dfcc4843ae5a400cd0e7a30b95aa366634" dependencies = [ "is-wsl", "libc", @@ -5426,11 +5436,11 @@ dependencies = [ [[package]] name = "ordermap" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7476a5b122ff1fce7208e7ee9dccd0a516e835f5b8b19b8f3c98a34cf757c1" +checksum = "b1288aecc871a8edf4d48083fb911efe2716700ba47bee1854c03466ff3627de" dependencies = [ - "indexmap 2.14.0", + "indexmap 2.14.1", "serde", "serde_core", ] @@ -5682,7 +5692,7 @@ dependencies = [ "crc32fast", "fdeflate", "flate2", - "miniz_oxide", + "miniz_oxide 0.8.9", ] [[package]] @@ -5695,7 +5705,7 @@ dependencies = [ "crc32fast", "fdeflate", "flate2", - "miniz_oxide", + "miniz_oxide 0.8.9", ] [[package]] @@ -5752,9 +5762,9 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppmd-rust" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efca4c95a19a79d1c98f791f10aebd5c1363b473244630bb7dbde1dc98455a24" +checksum = "9e9219bcb9d7aca6b2f63c83cf100cf78bcd619ac46e6ecbd0dd90869a39345d" [[package]] name = "ppv-lite86" @@ -5782,9 +5792,9 @@ dependencies = [ [[package]] name = "proc-macro-error-attr3" -version = "3.1.0" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0084e6206a967a2dad822180626b2f6b07a3b379325e8f1ec0438e33a469ba7" +checksum = "9e564d14133360e1ae169ffde5da25881b5fa47261665b8e5713c212c27799da" dependencies = [ "proc-macro2", "quote", @@ -5792,9 +5802,9 @@ dependencies = [ [[package]] name = "proc-macro-error3" -version = "3.1.0" +version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cf066225f2373bc711684792b69bdeac0356019b007e721090c24d92d5d5a50" +checksum = "8f0d4471b3436c22106b21913b1dda531558918ae9b7ec55d58aa84b43552233" dependencies = [ "proc-macro-error-attr3", "proc-macro2", @@ -6560,7 +6570,7 @@ version = "1.0.151" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14" dependencies = [ - "indexmap 2.14.0", + "indexmap 2.14.1", "itoa", "memchr", "serde", @@ -6599,7 +6609,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.14.0", + "indexmap 2.14.1", "jiff", "schemars 0.9.0", "schemars 1.2.2", @@ -6639,7 +6649,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aacc4cc499359472b4abe1bf11d0b12e688af9a805fa5e3016f9a386dc2d0214" dependencies = [ "cfg-if", - "cpufeatures 0.3.0", + "cpufeatures 0.3.1", "digest 0.11.3", ] @@ -6661,7 +6671,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "446ba717509524cb3f22f17ecc096f10f4822d76ab5c0b9822c5f9c284e825f4" dependencies = [ "cfg-if", - "cpufeatures 0.3.0", + "cpufeatures 0.3.1", "digest 0.11.3", ] @@ -6779,9 +6789,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.15.2" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90" +checksum = "b9be42f50aa861c555654aa3a37f52f4b1074bacf4e48fe0ef7fa584e80f1f0f" [[package]] name = "smithay-client-toolkit" @@ -7007,7 +7017,7 @@ dependencies = [ "cfg-expr", "heck 0.5.0", "pkg-config", - "toml 1.1.4+spec-1.1.0", + "toml 1.1.5+spec-1.1.0", "version-compare", ] @@ -7371,11 +7381,11 @@ dependencies = [ [[package]] name = "toml" -version = "1.1.4+spec-1.1.0" +version = "1.1.5+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3aace63f4bbcdfc2c965b059de67119c89c4017a70d633be6c104910f67056f5" +checksum = "12c0ba9680044b4ce98d391a62094047eada0d64860b80166c39f4a6b5640785" dependencies = [ - "indexmap 2.14.0", + "indexmap 2.14.1", "serde_core", "serde_spanned", "toml_datetime", @@ -7399,7 +7409,7 @@ version = "0.25.13+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6975367e4d2ef766d86af01ffad14b622fecc8d4357a998fbc4deb6e9bacaf9b" dependencies = [ - "indexmap 2.14.0", + "indexmap 2.14.1", "toml_datetime", "toml_parser", "winnow", @@ -7707,9 +7717,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.25.0" +version = "1.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f053576934f05a761a402421fbbe3d425d9366f75f978806a037b3ca481abecc" +checksum = "b5772d71c9be8a8a6ac2117d949c5b224c1b72241bb611d9a3012edcf8af7812" dependencies = [ "getrandom 0.4.3", "js-sys", @@ -8070,7 +8080,7 @@ dependencies = [ "cfg_aliases", "document-features", "hashbrown 0.16.1", - "indexmap 2.14.0", + "indexmap 2.14.1", "log", "naga", "once_cell", @@ -9448,7 +9458,7 @@ dependencies = [ "flate2", "getrandom 0.4.3", "hmac", - "indexmap 2.14.0", + "indexmap 2.14.1", "lzma-rust2", "memchr", "pbkdf2", diff --git a/Cargo.toml b/Cargo.toml index d46796c..363ed44 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cosmic-files" -version = "1.7.0" +version = "1.8.0" authors = ["Jeremy Soller "] edition = "2024" license = "GPL-3.0-only" diff --git a/cosmic-files-applet/Cargo.toml b/cosmic-files-applet/Cargo.toml index 8d396ae..ea90c47 100644 --- a/cosmic-files-applet/Cargo.toml +++ b/cosmic-files-applet/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cosmic-files-applet" -version = "1.7.0" +version = "1.8.0" edition = "2024" [dependencies] diff --git a/debian/changelog b/debian/changelog index 6cbee03..81751e5 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +cosmic-files (1.8.0) noble; urgency=medium + + * Epoch 1.8.0 version update + + -- Jeremy Soller Wed, 02 Sep 2026 08:14:53 -0600 + cosmic-files (1.7.0) noble; urgency=medium * Epoch 1.7.0 version update From dd57647ceddb8bf5244fd3edc91f6376ec0b1fae Mon Sep 17 00:00:00 2001 From: Lionel DARNIS Date: Fri, 4 Sep 2026 10:48:53 +0200 Subject: [PATCH 20/34] chore: fige Cargo.lock (reordonnancement patch.unused par cargo) --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a78228e..51f3695 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -9451,10 +9451,6 @@ dependencies = [ "winnow", ] -[[patch.unused]] -name = "winit-x11" -version = "0.31.0-beta.2" - [[patch.unused]] name = "dnd" version = "0.1.0" @@ -9469,3 +9465,7 @@ source = "git+https://forge.aditua.com/leyoda/window_clipboard.git?branch=yoda-x name = "window_clipboard" version = "0.4.1" source = "git+https://forge.aditua.com/leyoda/window_clipboard.git?branch=yoda-x11-optional#af8e6a872d8ac4956e044b9cb05a615a48261a57" + +[[patch.unused]] +name = "winit-x11" +version = "0.31.0-beta.2" From 98159d317c1003c99fbe424d358b58b29ba690ed Mon Sep 17 00:00:00 2001 From: Lionel DARNIS Date: Thu, 10 Sep 2026 18:12:37 +0200 Subject: [PATCH 21/34] chore: fige Cargo.lock --- Cargo.lock | 277 +++++++++++------------------------------------------ 1 file changed, 58 insertions(+), 219 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 757d1bf..51ba139 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -334,12 +334,6 @@ version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56" -[[package]] -name = "as-raw-xcb-connection" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "175571dd1d178ced59193a6fc02dde1b972eb0bc56c892cde9beeceac5bf0f6b" - [[package]] name = "as-slice" version = "0.2.1" @@ -826,7 +820,6 @@ dependencies = [ [[package]] name = "build_helpers" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" dependencies = [ "cfg_aliases", ] @@ -1012,7 +1005,6 @@ dependencies = [ [[package]] name = "clipboard_macos" version = "0.1.0" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=sctk-0.20#f68595ee0e62fbd6589f4709b5aaa5c3c7ea5f6c" dependencies = [ "objc", "objc-foundation", @@ -1022,22 +1014,12 @@ dependencies = [ [[package]] name = "clipboard_wayland" version = "0.2.2" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=sctk-0.20#f68595ee0e62fbd6589f4709b5aaa5c3c7ea5f6c" dependencies = [ "dnd", "mime 0.1.0", "smithay-clipboard", ] -[[package]] -name = "clipboard_x11" -version = "0.4.2" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=sctk-0.20#f68595ee0e62fbd6589f4709b5aaa5c3c7ea5f6c" -dependencies = [ - "thiserror 1.0.69", - "x11rb", -] - [[package]] name = "cmov" version = "0.5.4" @@ -1343,13 +1325,25 @@ dependencies = [ "libm", ] +[[package]] +name = "cosmic-client-toolkit" +version = "0.2.0" +dependencies = [ + "bitflags 2.13.1", + "cosmic-protocols 0.2.0", + "libc", + "smithay-client-toolkit", + "wayland-client", + "wayland-protocols", +] + [[package]] name = "cosmic-client-toolkit" version = "0.2.0" source = "git+https://github.com/pop-os/cosmic-protocols?rev=32283d7#32283d76a8d0342da74c4cc022a533c52dcf378f" dependencies = [ "bitflags 2.13.1", - "cosmic-protocols", + "cosmic-protocols 0.2.0 (git+https://github.com/pop-os/cosmic-protocols?rev=32283d7)", "libc", "smithay-client-toolkit", "wayland-client", @@ -1359,7 +1353,6 @@ dependencies = [ [[package]] name = "cosmic-config" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" dependencies = [ "atomicwrites", "cosmic-config-derive", @@ -1380,7 +1373,6 @@ dependencies = [ [[package]] name = "cosmic-config-derive" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" dependencies = [ "quote", "syn 2.0.119", @@ -1395,7 +1387,7 @@ dependencies = [ "bstr", "bzip2", "compio", - "cosmic-client-toolkit", + "cosmic-client-toolkit 0.2.0 (git+https://github.com/pop-os/cosmic-protocols?rev=32283d7)", "cosmic-mime-apps", "dirs 6.0.0", "fastrand", @@ -1414,7 +1406,7 @@ dependencies = [ "jiff-icu", "jxl-oxide", "libc", - "libcosmic", + "libcosmic-yoda", "log", "lzma-rust2", "md-5", @@ -1467,7 +1459,6 @@ dependencies = [ [[package]] name = "cosmic-freedesktop-icons" version = "0.4.0" -source = "git+https://github.com/pop-os/freedesktop-icons#ab4c57b8e416c6af9297cb04d101889896fd9a92" dependencies = [ "bstr", "btoi", @@ -1489,6 +1480,19 @@ dependencies = [ "xdg", ] +[[package]] +name = "cosmic-protocols" +version = "0.2.0" +dependencies = [ + "bitflags 2.13.1", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-protocols-wlr", + "wayland-scanner", + "wayland-server", +] + [[package]] name = "cosmic-protocols" version = "0.2.0" @@ -1506,7 +1510,6 @@ dependencies = [ [[package]] name = "cosmic-settings-config" version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-settings-daemon#67c995d5e659173352ca0adfb22108ac1bf91f5a" dependencies = [ "cosmic-config", "ron 0.11.0", @@ -1518,8 +1521,7 @@ dependencies = [ [[package]] name = "cosmic-settings-daemon" -version = "0.1.0" -source = "git+https://github.com/pop-os/dbus-settings-bindings#eed01dd3609e90e3c8cd043656734c500956c793" +version = "0.1.1-yoda.1" dependencies = [ "zbus 5.19.0", ] @@ -1527,8 +1529,6 @@ dependencies = [ [[package]] name = "cosmic-text" version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be17b688510d934ce13f48a2beba700e11583e281e0fda99c22bb256a14eda73" dependencies = [ "bitflags 2.13.1", "fontdb", @@ -1546,12 +1546,12 @@ dependencies = [ "unicode-linebreak", "unicode-script", "unicode-segmentation", + "unicode-width", ] [[package]] name = "cosmic-theme" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" dependencies = [ "almost", "configparser", @@ -1642,7 +1642,6 @@ checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" [[package]] name = "cryoglyph" version = "0.1.0" -source = "git+https://github.com/iced-rs/cryoglyph.git?rev=e429a025df36ab8145708acb309080ae3deec17a#e429a025df36ab8145708acb309080ae3deec17a" dependencies = [ "cosmic-text", "etagere", @@ -1688,15 +1687,6 @@ dependencies = [ "uncased", ] -[[package]] -name = "ctor" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83cf0d42651b16c6dfe68685716d18480d18a9c39c62d76e8cf3eb6ed5d8bcbf" -dependencies = [ - "dtor", -] - [[package]] name = "ctutils" version = "0.4.2" @@ -1977,7 +1967,6 @@ dependencies = [ [[package]] name = "dnd" version = "0.1.0" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=sctk-0.20#f68595ee0e62fbd6589f4709b5aaa5c3c7ea5f6c" dependencies = [ "bitflags 2.13.1", "mime 0.1.0", @@ -2004,52 +1993,6 @@ checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" [[package]] name = "dpi" version = "0.1.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" - -[[package]] -name = "drm" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0f8a69e60d75ae7dab4ef26a59ca99f2a89d4c142089b537775ae0c198bdcde" -dependencies = [ - "bitflags 2.13.1", - "bytemuck", - "drm-ffi", - "drm-fourcc", - "rustix 0.38.44", -] - -[[package]] -name = "drm-ffi" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41334f8405792483e32ad05fbb9c5680ff4e84491883d2947a4757dc54cb2ac6" -dependencies = [ - "drm-sys", - "rustix 0.38.44", -] - -[[package]] -name = "drm-fourcc" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0aafbcdb8afc29c1a7ee5fbe53b5d62f4565b35a042a662ca9fecd0b54dae6f4" - -[[package]] -name = "drm-sys" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d09ff881f92f118b11105ba5e34ff8f4adf27b30dae8f12e28c193af1c83176" -dependencies = [ - "libc", - "linux-raw-sys 0.6.5", -] - -[[package]] -name = "dtor" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edf234dd1594d6dd434a8fb8cada51ddbbc593e40e4a01556a0b31c62da2775b" [[package]] name = "dyn-clone" @@ -2626,16 +2569,6 @@ dependencies = [ "version_check", ] -[[package]] -name = "gethostname" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bd49230192a3797a9a4d6abe9b3eed6f7fa4c8a8a4947977c6f80025f92cbd8" -dependencies = [ - "rustix 1.1.4", - "windows-link 0.2.1", -] - [[package]] name = "getrandom" version = "0.2.17" @@ -3114,7 +3047,6 @@ dependencies = [ [[package]] name = "iced" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" dependencies = [ "build_helpers", "dnd", @@ -3136,7 +3068,6 @@ dependencies = [ [[package]] name = "iced_accessibility" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" dependencies = [ "accesskit", "accesskit_winit", @@ -3145,12 +3076,11 @@ dependencies = [ [[package]] name = "iced_core" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" dependencies = [ "bitflags 2.13.1", "build_helpers", "bytes", - "cosmic-client-toolkit", + "cosmic-client-toolkit 0.2.0", "dnd", "glam", "lilt", @@ -3171,7 +3101,6 @@ dependencies = [ [[package]] name = "iced_debug" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" dependencies = [ "iced_core", "iced_futures", @@ -3181,7 +3110,6 @@ dependencies = [ [[package]] name = "iced_futures" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" dependencies = [ "futures", "iced_core", @@ -3195,7 +3123,6 @@ dependencies = [ [[package]] name = "iced_graphics" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" dependencies = [ "bitflags 2.13.1", "bytemuck", @@ -3216,7 +3143,6 @@ dependencies = [ [[package]] name = "iced_program" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" dependencies = [ "iced_graphics", "iced_runtime", @@ -3225,7 +3151,6 @@ dependencies = [ [[package]] name = "iced_renderer" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" dependencies = [ "iced_graphics", "iced_tiny_skia", @@ -3237,11 +3162,10 @@ dependencies = [ [[package]] name = "iced_runtime" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" dependencies = [ "build_helpers", "bytes", - "cosmic-client-toolkit", + "cosmic-client-toolkit 0.2.0", "dnd", "iced_core", "iced_futures", @@ -3253,7 +3177,6 @@ dependencies = [ [[package]] name = "iced_tiny_skia" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" dependencies = [ "bytemuck", "cosmic-text", @@ -3270,13 +3193,11 @@ dependencies = [ [[package]] name = "iced_wgpu" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" dependencies = [ - "as-raw-xcb-connection", "bitflags 2.13.1", "build_helpers", "bytemuck", - "cosmic-client-toolkit", + "cosmic-client-toolkit 0.2.0", "cryoglyph", "futures", "glam", @@ -3290,22 +3211,19 @@ dependencies = [ "rustc-hash 2.1.3", "rustix 0.38.44", "thiserror 2.0.20", - "tiny-xlib", "wayland-backend", "wayland-client", "wayland-protocols", "wayland-sys", "wgpu", - "x11rb", ] [[package]] name = "iced_widget" version = "0.14.2" -source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" dependencies = [ "build_helpers", - "cosmic-client-toolkit", + "cosmic-client-toolkit 0.2.0", "dnd", "iced_renderer", "iced_runtime", @@ -3321,10 +3239,9 @@ dependencies = [ [[package]] name = "iced_winit" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" dependencies = [ "build_helpers", - "cosmic-client-toolkit", + "cosmic-client-toolkit 0.2.0", "cursor-icon", "dnd", "iced_debug", @@ -4464,15 +4381,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" [[package]] -name = "libcosmic" -version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" +name = "libcosmic-yoda" +version = "0.1.0-yoda.2" dependencies = [ "apply", "ashpd 0.12.3", "auto_enums", "build_helpers", - "cosmic-client-toolkit", + "cosmic-client-toolkit 0.2.0", "cosmic-config", "cosmic-freedesktop-icons", "cosmic-settings-config", @@ -4577,12 +4493,6 @@ version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" -[[package]] -name = "linux-raw-sys" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a385b1be4e5c3e362ad2ffa73c392e53f031eaa5b7d648e64cd87f27f6063d7" - [[package]] name = "linux-raw-sys" version = "0.12.1" @@ -4822,7 +4732,6 @@ dependencies = [ [[package]] name = "mime" version = "0.1.0" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=sctk-0.20#f68595ee0e62fbd6589f4709b5aaa5c3c7ea5f6c" dependencies = [ "smithay-clipboard", ] @@ -6826,7 +6735,6 @@ dependencies = [ [[package]] name = "smithay-clipboard" version = "0.8.0" -source = "git+https://github.com/pop-os/smithay-clipboard?tag=sctk-0.20#859b02c88f45c554049a67c6ddeec1692ce0e20b" dependencies = [ "libc", "raw-window-handle", @@ -6857,31 +6765,26 @@ dependencies = [ [[package]] name = "softbuffer" version = "0.4.1" -source = "git+https://github.com/pop-os/softbuffer?tag=cosmic-4.0#c2b2c19ddb38ff17495643699f97cb1f2064a1be" dependencies = [ - "as-raw-xcb-connection", "bytemuck", "cfg_aliases", "cocoa", "core-graphics", - "drm", "fastrand", "foreign-types", "js-sys", + "libredox", "log", "memmap2 0.9.11", "objc", "raw-window-handle", - "redox_syscall 0.5.18", "rustix 0.38.44", - "tiny-xlib", "wasm-bindgen", "wayland-backend", "wayland-client", "wayland-sys", "web-sys", "windows-sys 0.52.0", - "x11rb", ] [[package]] @@ -7292,19 +7195,6 @@ dependencies = [ "strict-num", ] -[[package]] -name = "tiny-xlib" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a90a0ca3ee6a69f2ad28fd11621a4c3f03b371f366be500b64df260c4ffbafb4" -dependencies = [ - "as-raw-xcb-connection", - "ctor", - "libloading", - "pkg-config", - "tracing", -] - [[package]] name = "tinystr" version = "0.8.4" @@ -8226,12 +8116,10 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "window_clipboard" version = "0.4.1" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=sctk-0.20#f68595ee0e62fbd6589f4709b5aaa5c3c7ea5f6c" dependencies = [ "clipboard-win", "clipboard_macos", "clipboard_wayland", - "clipboard_x11", "dnd", "mime 0.1.0", "raw-window-handle", @@ -8733,7 +8621,6 @@ checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" [[package]] name = "winit" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "bitflags 2.13.1", "cfg_aliases", @@ -8753,13 +8640,11 @@ dependencies = [ "winit-wayland", "winit-web", "winit-win32", - "winit-x11", ] [[package]] name = "winit-android" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "android-activity", "bitflags 2.13.1", @@ -8774,7 +8659,6 @@ dependencies = [ [[package]] name = "winit-appkit" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "bitflags 2.13.1", "block2 0.6.2", @@ -8796,7 +8680,6 @@ dependencies = [ [[package]] name = "winit-common" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "memmap2 0.9.11", "objc2 0.6.4", @@ -8804,14 +8687,12 @@ dependencies = [ "smol_str", "tracing", "winit-core", - "x11-dl", "xkbcommon-dl", ] [[package]] name = "winit-core" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "bitflags 2.13.1", "cursor-icon", @@ -8825,7 +8706,6 @@ dependencies = [ [[package]] name = "winit-orbital" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "bitflags 2.13.1", "dpi", @@ -8841,7 +8721,6 @@ dependencies = [ [[package]] name = "winit-uikit" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "bitflags 2.13.1", "block2 0.6.2", @@ -8861,7 +8740,6 @@ dependencies = [ [[package]] name = "winit-wayland" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "ahash", "bitflags 2.13.1", @@ -8887,7 +8765,6 @@ dependencies = [ [[package]] name = "winit-web" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "atomic-waker", "bitflags 2.13.1", @@ -8909,7 +8786,6 @@ dependencies = [ [[package]] name = "winit-win32" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "bitflags 2.13.1", "cursor-icon", @@ -8922,29 +8798,6 @@ dependencies = [ "winit-core", ] -[[package]] -name = "winit-x11" -version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" -dependencies = [ - "bitflags 2.13.1", - "bytemuck", - "calloop", - "cursor-icon", - "dpi", - "libc", - "percent-encoding", - "raw-window-handle", - "rustix 1.1.4", - "smol_str", - "tracing", - "winit-common", - "winit-core", - "x11-dl", - "x11rb", - "xkbcommon-dl", -] - [[package]] name = "winnow" version = "1.0.4" @@ -8975,39 +8828,6 @@ dependencies = [ "either", ] -[[package]] -name = "x11-dl" -version = "2.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" -dependencies = [ - "libc", - "once_cell", - "pkg-config", -] - -[[package]] -name = "x11rb" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9993aa5be5a26815fe2c3eacfc1fde061fc1a1f094bf1ad2a18bf9c495dd7414" -dependencies = [ - "as-raw-xcb-connection", - "gethostname", - "libc", - "libloading", - "once_cell", - "rustix 1.1.4", - "x11rb-protocol", - "xcursor", -] - -[[package]] -name = "x11rb-protocol" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea6fc2961e4ef194dcbfe56bb845534d0dc8098940c7e5c012a258bfec6701bd" - [[package]] name = "xattr" version = "1.6.1" @@ -9640,3 +9460,22 @@ dependencies = [ "syn 3.0.4", "winnow", ] + +[[patch.unused]] +name = "dnd" +version = "0.1.0" +source = "git+https://forge.aditua.com/leyoda/window_clipboard.git?branch=yoda-x11-optional#af8e6a872d8ac4956e044b9cb05a615a48261a57" + +[[patch.unused]] +name = "mime" +version = "0.1.0" +source = "git+https://forge.aditua.com/leyoda/window_clipboard.git?branch=yoda-x11-optional#af8e6a872d8ac4956e044b9cb05a615a48261a57" + +[[patch.unused]] +name = "window_clipboard" +version = "0.4.1" +source = "git+https://forge.aditua.com/leyoda/window_clipboard.git?branch=yoda-x11-optional#af8e6a872d8ac4956e044b9cb05a615a48261a57" + +[[patch.unused]] +name = "winit-x11" +version = "0.31.0-beta.2" From 00233428b39dd73c30337bdf482f04a5e85ada2e Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sun, 13 Sep 2026 01:56:28 +0200 Subject: [PATCH 22/34] i18n: translation updates from weblate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Amadɣas Co-authored-by: CYAXXX <85353920+CYAXXX@users.noreply.github.com> Co-authored-by: Ettore Atalan Co-authored-by: Hosted Weblate Co-authored-by: Jiri Grönroos Co-authored-by: Quentin PAGÈS Co-authored-by: Satakun Utama Co-authored-by: Thomas Worofsky Co-authored-by: VandaL Co-authored-by: lorduskordus Co-authored-by: taijuin Lee Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/cs/ Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/de/ Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/fi/ Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/kab/ Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/kmr/ Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/oc/ Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/pl/ Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/th/ Translate-URL: https://hosted.weblate.org/projects/pop-os/cosmic-files/zh_Hant/ Translation: Pop OS/COSMIC Files --- i18n/cs/cosmic_files.ftl | 2 +- i18n/de/cosmic_files.ftl | 4 +++- i18n/fi/cosmic_files.ftl | 3 +++ i18n/kab/cosmic_files.ftl | 10 +++++----- i18n/kmr/cosmic_files.ftl | 4 ++-- i18n/oc/cosmic_files.ftl | 29 ++++++++++++++++++++++++++++- i18n/pl/cosmic_files.ftl | 2 +- i18n/th/cosmic_files.ftl | 19 ++++++------------- i18n/zh-TW/cosmic_files.ftl | 2 +- 9 files changed, 50 insertions(+), 25 deletions(-) diff --git a/i18n/cs/cosmic_files.ftl b/i18n/cs/cosmic_files.ftl index b5b1c00..d544dc8 100644 --- a/i18n/cs/cosmic_files.ftl +++ b/i18n/cs/cosmic_files.ftl @@ -433,4 +433,4 @@ calculate = Vypočítat error = Chyba search-application = Hledat podle názvu aplikace sidebar-label = Popisek v postranním panelu -change-sidebar-label = Změnit popisek v postranním panelu +change-sidebar-label = Změnit popisek diff --git a/i18n/de/cosmic_files.ftl b/i18n/de/cosmic_files.ftl index d7393e9..87ba8b8 100644 --- a/i18n/de/cosmic_files.ftl +++ b/i18n/de/cosmic_files.ftl @@ -341,7 +341,7 @@ new-folder = Neuer Ordner ... open-in-terminal = Im Terminal öffnen move-to-trash = In den Papierkorb verschieben restore-from-trash = Aus dem Papierkorb wiederherstellen -remove-from-sidebar = Von der Seitenleiste entfernen +remove-from-sidebar = Aus der Seitenleiste entfernen sort-by-name = Nach Name sortieren sort-by-modified = Nach Änderung sortieren sort-by-size = Nach Größe sortieren @@ -441,3 +441,5 @@ rename-confirm = Umbenennen checksum = { $kind } Prüfsumme calculate = Berechnen error = Fehler +sidebar-label = Bezeichnung in der Seitenleiste +search-application = Nach App-Name suchen diff --git a/i18n/fi/cosmic_files.ftl b/i18n/fi/cosmic_files.ftl index f0bf682..ce1f7ff 100644 --- a/i18n/fi/cosmic_files.ftl +++ b/i18n/fi/cosmic_files.ftl @@ -418,3 +418,6 @@ rename-confirm = Nimeä uudelleen checksum = { $kind }-tarkistussumma calculate = Laske error = Virhe +search-application = Hae sovelluksen nimellä +sidebar-label = Sivupalkin nimike +change-sidebar-label = Muuta sivupalkin nimikettä diff --git a/i18n/kab/cosmic_files.ftl b/i18n/kab/cosmic_files.ftl index 233c47d..f0f776e 100644 --- a/i18n/kab/cosmic_files.ftl +++ b/i18n/kab/cosmic_files.ftl @@ -20,7 +20,7 @@ name = Isem modified = Ittusnifel trashed-on = Yettwakkes ɣer tqecwalt n yiḍumman size = Tiddi -details = Talqayt +details = Ifatusen pause = Serǧu resume = Kemmel create-archive = Snulfu-d aɣbaṛ @@ -40,7 +40,7 @@ file-already-exists = Afaylu s yisem-agi yella yakan folder-already-exists = Akaram s yisem-agi yella yakan name-hidden = Ismawen ibeddun s "." ad ttwaffren name-invalid = Isem ur yezmir ara ad yili "{ $filename }" -cancel = Sefsex +cancel = Semmet create = Snulfu-d open = Ldi open-file = Ldi afaylu @@ -72,7 +72,7 @@ comment = Amsefrak n yifuyla i tnarit COSMIC keywords = Akaram;Amsefrak; delete = kkes replace = Semselsi -support = Tallalt +support = Tallelt settings = Iɣewwaṛen appearance = Timeẓri theme = Asentel @@ -86,10 +86,10 @@ zoom-out = Asemẓi view = Wali menu-settings = Iɣewwaṛen… save = Sekles -match-desktop = Amṣada d tnarit +match-desktop = Semṣada akked tnarit file = Afaylu new-window = Asfaylu amaynut -quit = Tuffɣa +quit = Ffeɣ edit = Ẓreg cut = Gzem copy = Nɣel diff --git a/i18n/kmr/cosmic_files.ftl b/i18n/kmr/cosmic_files.ftl index bc61984..b15e92d 100644 --- a/i18n/kmr/cosmic_files.ftl +++ b/i18n/kmr/cosmic_files.ftl @@ -117,7 +117,7 @@ list-directories-first = Pêşî rêgehan lîste bike folder-name = Navê peldankê browse-store = { $store } bigere remove-from-recents = Ji dawiyê rake -paste = Pêve bike +paste = Pê ve bike empty-trash-title = Jêbirdankê vala bike? menu-settings = Sazkarî... moving = @@ -325,7 +325,7 @@ replace = Biguhêrîne replace-title = "{ $filename }" jixwe di vê cihê de heye unknown-folder = Peldanka nenas write-only = Tenê nivîsandin -trashed-on = Li Jêbirdankê hatiye avêtin +trashed-on = Jêbirî mixed = Tevlihev type-to-search-select = Pel an peldanka yekem a lihevhatî hildibijêre calculate = Bijmêre diff --git a/i18n/oc/cosmic_files.ftl b/i18n/oc/cosmic_files.ftl index aa7bd53..71afc45 100644 --- a/i18n/oc/cosmic_files.ftl +++ b/i18n/oc/cosmic_files.ftl @@ -1,6 +1,33 @@ appearance = Aparéncia theme = Tèma match-desktop = Assortir al burèu -dark = Fosc +dark = Escur light = Clar file = Fichièr +details = Detalhs +name = Nom +cancel = Anullar +repository = Depaus +settings = Configuracion +menu-settings = Configuracion... +quit = Quitar +cosmic-files = Fichièrs de COSMIC +comment = Gestionari de fichièrs pel burèu COSMIC +save-file = Enregistrar lo fichièr +open-with-title = Cossí volètz dobrir « { $name } » ? +other-apps = Autras aplicacions +context-action-confirm-title = Executar « { $name } » ? +run = Executar +delete = Suprimir +replace = Remplaçar +owner = Propietari +group = Grop +write-execute = Escritura e execucion +read-only = Lectura sola +read-execute = Lectura e execucion +read-write = Lectura e execucion +read-write-execute = Lectura, escritura e execucion +remove = Suprimir +connecting = Connexion... +domain = Domeni +password = Senhal diff --git a/i18n/pl/cosmic_files.ftl b/i18n/pl/cosmic_files.ftl index b6ab357..e8d6ab2 100644 --- a/i18n/pl/cosmic_files.ftl +++ b/i18n/pl/cosmic_files.ftl @@ -1,5 +1,5 @@ cosmic-files = Pliki COSMIC -comment = Menedżer plików pulpitu COSMIC +comment = Menedżer plików dla środowiska COSMIC keywords = Katalogi;Pliki;Menedżer; empty-folder = Pusty katalog empty-folder-hidden = Pusty katalog (z ukrytymi plikami) diff --git a/i18n/th/cosmic_files.ftl b/i18n/th/cosmic_files.ftl index c0da7bc..86a20b3 100644 --- a/i18n/th/cosmic_files.ftl +++ b/i18n/th/cosmic_files.ftl @@ -202,17 +202,9 @@ moved = *[other] ไฟล์ } จาก "{ $from }" สู่ "{ $to }" renaming = กำลังเปลี่ยนชื่อจาก "{ $from }" เป็น "{ $to }" -renamed = Renamed "{ $from }" to "{ $to }" -restoring = - Restoring { $items } { $items -> - [one] item - *[other] items - } from { trash } ({ $progress })... -restored = - Restored { $items } { $items -> - [one] item - *[other] items - } from { trash } +renamed = เปลี่ยนชื่อจาก "{ $from }" เป็น "{ $to }" แล้ว +restoring = กำลังกู้คืน { $items } รายการจาก { trash } ({ $progress })... +restored = กู้คืน { $items } รายการจาก { trash } แล้ว unknown-folder = แฟ้มที่ไม่รู้จัก ## Open with @@ -240,8 +232,8 @@ settings = การตั้งค่า appearance = ลักษณะ theme = ธีม match-desktop = ใช้ตามธีมหน้าจอหลัก -dark = ธีมมืด -light = ธีมสว่าง +dark = มืด +light = สว่าง # Context menu add-to-sidebar = เพิ่มเข้าแถบด้านข้าง compress = บีบอัด @@ -306,3 +298,4 @@ sort-newest-first = ไฟล์ใหม่ก่อน sort-oldest-first = ไฟล์เก่าก่อน sort-smallest-to-largest = ขนาดเล็กก่อน sort-largest-to-smallest = ขนาดใหญ่ก่อน +remove = ลบ diff --git a/i18n/zh-TW/cosmic_files.ftl b/i18n/zh-TW/cosmic_files.ftl index de98d85..36badae 100644 --- a/i18n/zh-TW/cosmic_files.ftl +++ b/i18n/zh-TW/cosmic_files.ftl @@ -42,7 +42,7 @@ name-no-slashes = 名稱不能包含斜線 ## Open/Save Dialog cancel = 取消 -create = 建立 +create = 創作 open = 開啟 open-file = 開啟檔案 open-folder = 開啟資料夾 From 77f062647c427417e145f03d40ee6b52fe4f7145 Mon Sep 17 00:00:00 2001 From: Hojjat Date: Wed, 2 Sep 2026 19:07:32 -0600 Subject: [PATCH 23/34] feat: use libcosmic's context_menu widget for the file context menu --- src/app.rs | 159 +++---------------------- src/dialog.rs | 99 +--------------- src/menu.rs | 323 ++++++++++++++++++++++---------------------------- src/tab.rs | 180 +++++++++++----------------- 4 files changed, 229 insertions(+), 532 deletions(-) diff --git a/src/app.rs b/src/app.rs index 48f70bb..048d600 100644 --- a/src/app.rs +++ b/src/app.rs @@ -17,12 +17,10 @@ use cosmic::iced::widget::button::focus; use cosmic::iced::widget::scrollable; use cosmic::iced::widget::scrollable::AbsoluteOffset; use cosmic::iced::window::{self, Event as WindowEvent, Id as WindowId}; -use cosmic::iced::{ - self, Alignment, Event, Length, Rectangle, Size, Subscription, event, mouse, stream, -}; +use cosmic::iced::{self, Alignment, Event, Length, Size, Subscription, event, mouse, stream}; #[cfg(all(feature = "wayland", feature = "desktop-applet"))] use cosmic::iced::{ - Limits, Point, + Limits, Point, Rectangle, event::wayland::{Event as WaylandEvent, OutputEvent, OverlapNotifyEvent}, platform_specific::runtime::wayland::layer_surface::{ IcedMargin, IcedOutput, SctkLayerSurfaceSettings, @@ -672,7 +670,6 @@ pub struct MounterData(MounterKey, MounterItem); #[derive(Clone, Debug)] pub enum WindowKind { - ContextMenu(Entity, widget::Id), Desktop(Entity), DesktopViewOptions, Dialogs(widget::Id), @@ -1457,12 +1454,6 @@ impl App { fn remove_window(&mut self, id: &window::Id) { if let Some(window) = self.windows.remove(id) { match window.kind { - WindowKind::ContextMenu(entity, _) => { - // Close context menu - if let Some(tab) = self.tab_model.data_mut::(entity) { - tab.context_menu = None; - } - } WindowKind::Desktop(entity) => { // Remove the tab from the tab model self.tab_model.remove(entity); @@ -1750,12 +1741,6 @@ impl App { let active = self.tab_model.active(); if let Some(tab) = self.tab_model.data_mut::(active) { tab.location_context_menu_index = None; - if tab.context_menu.is_some() { - return self.update(Message::TabMessage( - Some(active), - tab::Message::ContextMenu(None, None), - )); - } } Task::none() @@ -1774,9 +1759,7 @@ impl App { for (favorite_i, favorite) in self.config.favorites.iter().enumerate() { if let Some(path) = favorite.path_opt() { - let name = favorite - .display_name() - .unwrap_or_else(|| fl!("filesystem")); + let name = favorite.display_name().unwrap_or_else(|| fl!("filesystem")); nav_model = nav_model.insert(move |b| { b.text(name.clone()) .icon( @@ -2824,13 +2807,6 @@ impl Application for App { return Task::none(); } - if tab.context_menu.is_some() { - return self.update(Message::TabMessage( - Some(entity), - tab::Message::ContextMenu(None, None), - )); - } - if tab.edit_location.is_some() { tab.edit_location = None; return Task::none(); @@ -4505,6 +4481,8 @@ impl Application for App { } Message::TabMessage(entity_opt, tab_message) => { let entity = entity_opt.unwrap_or_else(|| self.tab_model.active()); + // The context menu opens on right-button release, so refresh paste availability now + let right_click = matches!(tab_message, tab::Message::RightClick(..)); let tab_commands = match self.tab_model.data_mut::(entity) { Some(tab) => tab.update(tab_message, self.modifiers), @@ -4512,6 +4490,9 @@ impl Application for App { }; let mut commands = Vec::new(); + if right_click { + commands.push(self.update(Message::CheckClipboard)); + } for tab_command in tab_commands { match tab_command { tab::Command::Action(action) => { @@ -4552,93 +4533,8 @@ impl Application for App { self.update_tab(entity, tab_path, selection_paths), ])); } - tab::Command::ContextMenu(point_opt, parent_id) => { - #[cfg(feature = "wayland")] - if let Some(point) = point_opt { - if crate::is_wayland() { - // Open context menu - use cctk::wayland_protocols::xdg::shell::client::xdg_positioner::{ - Anchor, Gravity, - }; - use cosmic::{iced::runtime::platform_specific::wayland::popup::{ - SctkPopupSettings, SctkPositioner, - }, widget::menu::StyleSheet as _}; - - let window_id = WindowId::unique(); - self.windows.insert( - window_id, - Window::new(WindowKind::ContextMenu( - entity, - widget::Id::unique(), - )), - ); - commands.push(self.update(Message::CheckClipboard)); - let t = self.core.system_theme(); - let styling = t.appearance( - &cosmic::theme::menu_bar::MenuBarStyle::Default, - false, - ); - let rad = styling.menu_border_radius; - - commands.push(self.update(Message::Surface( - cosmic::surface::action::app_popup( - move |_| cosmic::surface::action::LiveSettings { - corners: Some(iced::runtime::platform_specific::wayland::CornerRadius { - top_left: rad[0] as u32, - top_right: rad[1] as u32, - bottom_left: rad[2] as u32, - bottom_right: rad[3] as u32, - }), - ..Default::default() - }, move |app: &mut Self| -> SctkPopupSettings { - let anchor_rect = Rectangle { - x: point.x as i32, - y: point.y as i32, - width: 1, - height: 1, - }; - let positioner = SctkPositioner { - size: None, - anchor_rect, - anchor: Anchor::None, - gravity: Gravity::BottomRight, - reactive: true, - ..Default::default() - }; - SctkPopupSettings { - parent: parent_id.unwrap_or( - app.core - .main_window_id() - .unwrap_or(WindowId::NONE), - ), - id: window_id, - positioner, - parent_size: None, - grab: true, - close_with_children: false, - input_zone: None, - } - }, - None, - ), - ))); - } - } else { - // Destroy previous popup - let mut window_ids = Vec::new(); - for (window_id, window) in &self.windows { - if let WindowKind::ContextMenu(e, _) = &window.kind - && *e == entity - { - window_ids.push(*window_id); - } - } - for window_id in window_ids { - commands.push(self.update(Message::Surface( - cosmic::surface::action::destroy_popup(window_id), - ))); - } - } + tab::Command::Surface(action) => { + commands.push(self.update(Message::Surface(action))); } tab::Command::Delete(paths) => commands.push(self.delete(paths)), tab::Command::DropFiles(to, from) => { @@ -5127,10 +5023,6 @@ impl Application for App { tab.edit_location = None; // Close other context menus. tab.location_context_menu_index = None; - return Task::done(cosmic::Action::App(Message::TabMessage( - Some(tab_entity), - tab::Message::ContextMenu(None, None), - ))); } } Message::NavMenuAction(action) => match action { @@ -5311,16 +5203,10 @@ impl Application for App { } NavMenuAction::ChangeSidebarLabel(entity) => { - if let Some(favorite) = self - .nav_model - .data::(entity) - .and_then(|FavoriteIndex(favorite_i)| { - self.config.favorites.get(*favorite_i) - }) - { - let label = favorite - .display_name() - .unwrap_or_else(|| fl!("filesystem")); + if let Some(favorite) = self.nav_model.data::(entity).and_then( + |FavoriteIndex(favorite_i)| self.config.favorites.get(*favorite_i), + ) { + let label = favorite.display_name().unwrap_or_else(|| fl!("filesystem")); return Task::batch([ self.dialog_pages .push_back(DialogPage::ChangeSidebarLabel { entity, label }), @@ -6672,23 +6558,6 @@ impl Application for App { fn view_window(&self, id: WindowId) -> Element<'_, Self::Message> { let content = match self.windows.get(&id) { Some(window) => match &window.kind { - WindowKind::ContextMenu(entity, id) => match self.tab_model.data::(*entity) { - Some(tab) => { - return widget::autosize::autosize( - menu::context_menu( - tab, - &self.key_binds, - &window.modifiers, - self.clipboard_has_content(), - &self.config.context_actions, - ) - .map(|x| Message::TabMessage(Some(*entity), x)), - id.clone(), - ) - .into(); - } - None => widget::text("Unknown tab ID").into(), - }, WindowKind::Desktop(entity) => { let mut tab_column = widget::column::with_capacity(3); diff --git a/src/dialog.rs b/src/dialog.rs index 315691a..8f5cd5d 100644 --- a/src/dialog.rs +++ b/src/dialog.rs @@ -541,7 +541,6 @@ struct App { title: String, accept_label: DialogLabel, choices: Vec, - context_menu_window: Option, context_page: ContextPage, dialog_pages: VecDeque, dialog_text_input: widget::Id, @@ -867,9 +866,6 @@ impl App { fn close_context_menus(&mut self) -> Task { self.tab.location_context_menu_index = None; - if self.tab.context_menu.is_some() { - return self.update(Message::TabMessage(tab::Message::ContextMenu(None, None))); - } Task::none() } @@ -1048,7 +1044,6 @@ impl Application for App { title, accept_label: DialogLabel::from(accept_label), choices: Vec::new(), - context_menu_window: None, context_page: ContextPage::Preview(None, PreviewKind::Selected), dialog_pages: VecDeque::new(), dialog_text_input: widget::Id::new("Dialog Text Input"), @@ -1324,10 +1319,6 @@ impl Application for App { return Task::none(); } - if self.tab.context_menu.is_some() { - return self.update(Message::TabMessage(tab::Message::ContextMenu(None, None))); - } - if self.tab.edit_location.is_some() { // Close location editing if enabled self.tab.edit_location = None; @@ -1769,94 +1760,8 @@ impl Application for App { self.rescan_tab(selection_paths), ])); } - tab::Command::ContextMenu(point_opt, parent_id) => { - #[cfg(feature = "wayland")] - match point_opt { - Some(point) => { - if crate::is_wayland() { - // Open context menu - use cctk::wayland_protocols::xdg::shell::client::xdg_positioner::{ - Anchor, Gravity, - }; - use cosmic::iced::runtime::platform_specific::wayland::popup::{ - SctkPopupSettings, SctkPositioner, - }; - use cosmic::iced::Rectangle; - use cosmic::widget::menu::StyleSheet as _; - - let window_id = window::Id::unique(); - self.context_menu_window = Some(window_id); - let autosize_id = widget::Id::unique(); - let t = self.core.system_theme(); - let styling = t.appearance( - &cosmic::theme::menu_bar::MenuBarStyle::Default, - false, - ); - let rad = styling.menu_border_radius; - commands.push(self.update(Message::Surface( - cosmic::surface::action::app_popup( - move |_| cosmic::surface::action::LiveSettings { - corners: Some(iced::runtime::platform_specific::wayland::CornerRadius { - top_left: rad[0] as u32, - top_right: rad[1] as u32, - bottom_left: rad[2] as u32, - bottom_right: rad[3] as u32, - }), - ..Default::default() - }, - move |app: &mut Self| -> SctkPopupSettings { - let anchor_rect = Rectangle { - x: point.x as i32, - y: point.y as i32, - width: 1, - height: 1, - }; - let positioner = SctkPositioner { - size: None, - anchor_rect, - anchor: Anchor::None, - gravity: Gravity::BottomRight, - reactive: true, - ..Default::default() - }; - SctkPopupSettings { - parent: parent_id - .unwrap_or(app.flags.window_id), - id: window_id, - positioner, - parent_size: None, - grab: true, - close_with_children: false, - input_zone: None, - } - }, - Some(Box::new(move |app: &Self| { - widget::autosize::autosize( - menu::context_menu( - &app.tab, - &app.key_binds, - &app.modifiers, - false, // Paste not used in dialogs - &app.flags.config.context_actions, - ) - .map(Message::TabMessage) - .map(cosmic::Action::App), - autosize_id.clone(), - ) - .into() - })), - ), - ))); - } - } - None => { - if let Some(window_id) = self.context_menu_window.take() { - commands.push(self.update(Message::Surface( - cosmic::surface::action::destroy_popup(window_id), - ))); - } - } - } + tab::Command::Surface(action) => { + commands.push(self.update(Message::Surface(action))); } tab::Command::Iced(iced_command) => { commands.push(iced_command.0.map(|tab_message| { diff --git a/src/menu.rs b/src/menu.rs index 86db158..fc7584c 100644 --- a/src/menu.rs +++ b/src/menu.rs @@ -1,14 +1,12 @@ // SPDX-License-Identifier: GPL-3.0-only use cosmic::app::Core; -use cosmic::iced::advanced::widget::text::Style as TextStyle; use cosmic::iced::keyboard::Modifiers; use cosmic::iced::{Alignment, Background, Border, Length}; +use cosmic::widget::menu::action::MenuAction; use cosmic::widget::menu::key_bind::KeyBind; use cosmic::widget::menu::{self, ItemHeight, ItemWidth, MenuBar}; -use cosmic::widget::{ - self, Row, button, column, container, divider, responsive_menu_bar, space, text, -}; +use cosmic::widget::{self, Row, button, column, container, divider, responsive_menu_bar, text}; use cosmic::{Element, theme}; use i18n_embed::LanguageLoader; use mime_guess::Mime; @@ -53,82 +51,46 @@ const fn menu_button_optional( } } +/// A menu action dispatched to the tab the menu was opened on. +#[derive(Clone, Copy, Debug, Eq, PartialEq)] +pub struct TabAction(pub Action); + +impl MenuAction for TabAction { + type Message = tab::Message; + + fn message(&self) -> tab::Message { + tab::Message::ContextAction(self.0) + } +} + pub fn context_menu<'a>( tab: &Tab, key_binds: &HashMap, modifiers: &Modifiers, clipboard_paste_available: bool, context_actions: &[ContextActionPreset], -) -> Element<'a, tab::Message> { - let find_key = |action: &Action| -> String { - for (key_bind, key_action) in key_binds { - if action == key_action { - return key_bind.to_string(); - } - } - String::new() - }; - fn key_style(theme: &cosmic::Theme) -> TextStyle { - let mut color = theme.cosmic().background(theme.transparent).component.on; - color.alpha *= 0.75; - TextStyle { - color: Some(color.into()), - ..Default::default() - } - } - fn disabled_style(theme: &cosmic::Theme) -> TextStyle { - let mut color = theme.cosmic().background(theme.transparent).component.on; - color.alpha *= 0.5; - TextStyle { - color: Some(color.into()), - ..Default::default() - } - } - - let menu_item = |label, action| { - let key = find_key(&action); - menu_button!( - text::body(label), - space::horizontal(), - text::body(key).class(theme::Text::Custom(key_style)) - ) - .on_press(tab::Message::ContextAction(action)) - }; - - let menu_item_disabled = |label, action: Action| { - let key = find_key(&action); - menu_button!( - text::body(label).class(theme::Text::Custom(disabled_style)), - space::horizontal(), - text::body(key).class(theme::Text::Custom(disabled_style)) - ) - }; +) -> Vec> { + let menu_item = + |label: String, action: Action| menu::Item::Button(label, None, TabAction(action)); + let menu_item_disabled = + |label: String, action: Action| menu::Item::ButtonDisabled(label, None, TabAction(action)); // Allow paste when clipboard has data and we're in a location that supports it let can_paste = clipboard_paste_available && tab.location.supports_paste(); let (sort_name, sort_direction, _) = tab.sort_options(); - let sort_item = |label, variant| { - let key = find_key(&Action::ToggleSort(variant)); - let leading: Element<'a, tab::Message> = if sort_name == variant { + let sort_item = |label: String, variant| { + let entry = menu::Entry::new(label, TabAction(Action::ToggleSort(variant))); + menu::Item::Entry(if sort_name == variant { let icon_name = if sort_direction { "view-sort-ascending-symbolic" } else { "view-sort-descending-symbolic" }; - widget::icon::from_name(icon_name).size(14).into() + entry.icon(widget::icon::from_name(icon_name).size(14).handle()) } else { - space::horizontal().width(Length::Fixed(14.0)).into() - }; - menu_button!( - leading, - space::horizontal().width(Length::Fixed(theme::spacing().space_xxs.into())), - text::body(label), - space::horizontal(), - text::body(key).class(theme::Text::Custom(key_style)) - ) - .on_press(tab::Message::ContextAction(Action::ToggleSort(variant))) - .into() + entry.reserve_icon() + }) }; let mut selected_dir = 0; @@ -173,8 +135,8 @@ pub fn context_menu<'a>( .iter() .enumerate() .filter(|(_, action)| action.matches_selection(selected, selected_dir)) - .map(|(i, action)| menu_item(action.name.clone(), Action::RunContextAction(i)).into()) - .collect::>>() + .map(|(i, action)| menu_item(action.name.clone(), Action::RunContextAction(i))) + .collect::>() }; // Parse the desktop entry if it is the only selection #[cfg(feature = "desktop")] @@ -189,7 +151,7 @@ pub fn context_menu<'a>( } }); - let mut children: Vec> = Vec::new(); + let mut children: Vec> = Vec::new(); match (&tab.mode, &tab.location) { ( tab::Mode::App | tab::Mode::Desktop, @@ -201,106 +163,113 @@ pub fn context_menu<'a>( | Location::Network(_, _, Some(_)), ) => { if selected_trash_only { - children.push(menu_item(fl!("open"), Action::Open).into()); + children.push(menu_item(fl!("open"), Action::Open)); if !Trash::is_empty() { - children.push(menu_item(fl!("empty-trash"), Action::EmptyTrash).into()); + children.push(menu_item(fl!("empty-trash"), Action::EmptyTrash)); } } else if let Some(entry) = selected_desktop_entry { - children.push(menu_item(fl!("open"), Action::Open).into()); + children.push(menu_item(fl!("open"), Action::Open)); #[cfg(feature = "desktop")] { - children.extend(entry.desktop_actions.into_iter().enumerate().map( - |(i, action)| menu_item(action.name, Action::ExecEntryAction(i)).into(), - )); + children.extend( + entry + .desktop_actions + .into_iter() + .enumerate() + .map(|(i, action)| menu_item(action.name, Action::ExecEntryAction(i))), + ); } - children.push(divider::horizontal::light().into()); - children.push(menu_item(fl!("rename"), Action::Rename).into()); - children.push(menu_item(fl!("cut"), Action::Cut).into()); + children.push(menu::Item::Divider); + children.push(menu_item(fl!("rename"), Action::Rename)); + children.push(menu_item(fl!("cut"), Action::Cut)); if modifiers.shift() && !modifiers.control() { - children.push(menu_item(fl!("copy-path"), Action::CopyPath).into()); + children.push(menu_item(fl!("copy-path"), Action::CopyPath)); } else { - children.push(menu_item(fl!("copy"), Action::Copy).into()); + children.push(menu_item(fl!("copy"), Action::Copy)); } // Should this simply bypass trash and remove the shortcut? - children.push(menu_item(fl!("move-to-trash"), Action::Delete).into()); + children.push(menu_item(fl!("move-to-trash"), Action::Delete)); let action_items = context_action_items(selected, selected_dir); if !action_items.is_empty() { - children.push(divider::horizontal::light().into()); + children.push(menu::Item::Divider); children.extend(action_items); } } else if selected > 0 { if selected_dir == 1 && selected == 1 || selected_dir == 0 { - children.push(menu_item(fl!("open"), Action::Open).into()); + children.push(menu_item(fl!("open"), Action::Open)); } if selected == 1 { - children.push(menu_item(fl!("menu-open-with"), Action::OpenWith).into()); + children.push(menu_item(fl!("menu-open-with"), Action::OpenWith)); if selected_dir == 1 { - children - .push(menu_item(fl!("open-in-terminal"), Action::OpenTerminal).into()); + children.push(menu_item(fl!("open-in-terminal"), Action::OpenTerminal)); } } if tab.location.is_recents() || matches!(tab.location, Location::Search(..)) { - children.push( - menu_item(fl!("open-item-location"), Action::OpenItemLocation).into(), - ); + children.push(menu_item( + fl!("open-item-location"), + Action::OpenItemLocation, + )); } // All selected items are directories if selected == selected_dir && matches!(tab.mode, tab::Mode::App) { - children.push(menu_item(fl!("open-in-new-tab"), Action::OpenInNewTab).into()); - children - .push(menu_item(fl!("open-in-new-window"), Action::OpenInNewWindow).into()); + children.push(menu_item(fl!("open-in-new-tab"), Action::OpenInNewTab)); + children.push(menu_item( + fl!("open-in-new-window"), + Action::OpenInNewWindow, + )); } let action_items = context_action_items(selected, selected_dir); if !action_items.is_empty() { - children.push(divider::horizontal::light().into()); + children.push(menu::Item::Divider); children.extend(action_items); } - children.push(divider::horizontal::light().into()); + children.push(menu::Item::Divider); if selected_mount_point == 0 { - children.push(menu_item(fl!("rename"), Action::Rename).into()); - children.push(menu_item(fl!("cut"), Action::Cut).into()); + children.push(menu_item(fl!("rename"), Action::Rename)); + children.push(menu_item(fl!("cut"), Action::Cut)); } if modifiers.shift() && !modifiers.control() { - children.push(menu_item(fl!("copy-path"), Action::CopyPath).into()); + children.push(menu_item(fl!("copy-path"), Action::CopyPath)); } else { - children.push(menu_item(fl!("copy"), Action::Copy).into()); + children.push(menu_item(fl!("copy"), Action::Copy)); } if selected_mount_point == 0 { - children.push(menu_item(fl!("move-to"), Action::MoveTo).into()); + children.push(menu_item(fl!("move-to"), Action::MoveTo)); } - children.push(menu_item(fl!("copy-to"), Action::CopyTo).into()); + children.push(menu_item(fl!("copy-to"), Action::CopyTo)); - children.push(divider::horizontal::light().into()); + children.push(menu::Item::Divider); let supported_archive_types = crate::archive::SUPPORTED_ARCHIVE_TYPES; selected_types.retain(|t| supported_archive_types.iter().copied().all(|m| *t != m)); if selected_types.is_empty() { - children.push(menu_item(fl!("extract-here"), Action::ExtractHere).into()); - children.push(menu_item(fl!("extract-to"), Action::ExtractTo).into()); + children.push(menu_item(fl!("extract-here"), Action::ExtractHere)); + children.push(menu_item(fl!("extract-to"), Action::ExtractTo)); } - children.push(menu_item(fl!("compress"), Action::Compress).into()); - children.push(divider::horizontal::light().into()); + children.push(menu_item(fl!("compress"), Action::Compress)); + children.push(menu::Item::Divider); //TODO: Print? - children.push(menu_item(fl!("show-details"), Action::Preview).into()); + children.push(menu_item(fl!("show-details"), Action::Preview)); if any_trash_item { - children.push(divider::horizontal::light().into()); - children.push( - menu_item(fl!("restore-from-trash"), Action::RestoreFromTrash).into(), - ); - children.push(divider::horizontal::light().into()); - children.push(menu_item(fl!("delete-permanently"), Action::Delete).into()); + children.push(menu::Item::Divider); + children.push(menu_item( + fl!("restore-from-trash"), + Action::RestoreFromTrash, + )); + children.push(menu::Item::Divider); + children.push(menu_item(fl!("delete-permanently"), Action::Delete)); } else { if matches!(tab.mode, tab::Mode::App) { - children.push(divider::horizontal::light().into()); - children - .push(menu_item(fl!("add-to-sidebar"), Action::AddToSidebar).into()); + children.push(menu::Item::Divider); + children.push(menu_item(fl!("add-to-sidebar"), Action::AddToSidebar)); } - children.push(divider::horizontal::light().into()); + children.push(menu::Item::Divider); if tab.location.is_recents() { - children.push( - menu_item(fl!("remove-from-recents"), Action::RemoveFromRecents).into(), - ); - children.push(divider::horizontal::light().into()); + children.push(menu_item( + fl!("remove-from-recents"), + Action::RemoveFromRecents, + )); + children.push(menu::Item::Divider); } if selected_mount_point == 0 { if modifiers.shift() && !modifiers.control() { @@ -309,55 +278,59 @@ pub fn context_menu<'a>( .into(), ); } else { - children.push(menu_item(fl!("move-to-trash"), Action::Delete).into()); + children.push(menu_item(fl!("move-to-trash"), Action::Delete)); } } else if selected == 1 { - children.push(menu_item(fl!("eject"), Action::Eject).into()); + children.push(menu_item(fl!("eject"), Action::Eject)); } } } else { //TODO: need better designs for menu with no selection //TODO: have things like properties but they apply to the folder? if tab.location != Location::Recents { - children.push(menu_item(fl!("new-folder"), Action::NewFolder).into()); - children.push(menu_item(fl!("new-file"), Action::NewFile).into()); - children.push(menu_item(fl!("open-in-terminal"), Action::OpenTerminal).into()); - children.push(divider::horizontal::light().into()); + children.push(menu_item(fl!("new-folder"), Action::NewFolder)); + children.push(menu_item(fl!("new-file"), Action::NewFile)); + children.push(menu_item(fl!("open-in-terminal"), Action::OpenTerminal)); + children.push(menu::Item::Divider); } if tab.mode.multiple() { - children.push(menu_item(fl!("select-all"), Action::SelectAll).into()); + children.push(menu_item(fl!("select-all"), Action::SelectAll)); } if can_paste { - children.push(menu_item(fl!("paste"), Action::Paste).into()); + children.push(menu_item(fl!("paste"), Action::Paste)); } else { - children.push(menu_item_disabled(fl!("paste"), Action::Paste).into()); + children.push(menu_item_disabled(fl!("paste"), Action::Paste)); } //TODO: only show if cosmic-settings is found? if matches!(tab.mode, tab::Mode::Desktop) { - children.push(divider::horizontal::light().into()); - children.push( - menu_item(fl!("change-wallpaper"), Action::CosmicSettingsWallpaper).into(), - ); - children.push( - menu_item(fl!("desktop-appearance"), Action::CosmicSettingsDesktop).into(), - ); - children.push( - menu_item(fl!("display-settings"), Action::CosmicSettingsDisplays).into(), - ); + children.push(menu::Item::Divider); + children.push(menu_item( + fl!("change-wallpaper"), + Action::CosmicSettingsWallpaper, + )); + children.push(menu_item( + fl!("desktop-appearance"), + Action::CosmicSettingsDesktop, + )); + children.push(menu_item( + fl!("display-settings"), + Action::CosmicSettingsDisplays, + )); } - children.push(divider::horizontal::light().into()); + children.push(menu::Item::Divider); // TODO: Nested menu children.push(sort_item(fl!("sort-by-name"), HeadingOptions::Name)); children.push(sort_item(fl!("sort-by-modified"), HeadingOptions::Modified)); children.push(sort_item(fl!("sort-by-size"), HeadingOptions::Size)); if matches!(tab.location, Location::Desktop(..)) { - children.push(divider::horizontal::light().into()); - children.push( - menu_item(fl!("desktop-view-options"), Action::DesktopViewOptions).into(), - ); + children.push(menu::Item::Divider); + children.push(menu_item( + fl!("desktop-view-options"), + Action::DesktopViewOptions, + )); } } } @@ -372,24 +345,25 @@ pub fn context_menu<'a>( ) => { if selected > 0 { if selected_dir == 1 && selected == 1 || selected_dir == 0 { - children.push(menu_item(fl!("open"), Action::Open).into()); + children.push(menu_item(fl!("open"), Action::Open)); } if matches!(tab.location, Location::Search(..)) || tab.location.is_recents() { - children.push( - menu_item(fl!("open-item-location"), Action::OpenItemLocation).into(), - ); + children.push(menu_item( + fl!("open-item-location"), + Action::OpenItemLocation, + )); } - children.push(divider::horizontal::light().into()); - children.push(menu_item(fl!("show-details"), Action::Preview).into()); + children.push(menu::Item::Divider); + children.push(menu_item(fl!("show-details"), Action::Preview)); } else { if dialog_kind.save() { - children.push(menu_item(fl!("new-folder"), Action::NewFolder).into()); + children.push(menu_item(fl!("new-folder"), Action::NewFolder)); } if tab.mode.multiple() { - children.push(menu_item(fl!("select-all"), Action::SelectAll).into()); + children.push(menu_item(fl!("select-all"), Action::SelectAll)); } if !children.is_empty() { - children.push(divider::horizontal::light().into()); + children.push(menu::Item::Divider); } children.push(sort_item(fl!("sort-by-name"), HeadingOptions::Name)); children.push(sort_item(fl!("sort-by-modified"), HeadingOptions::Modified)); @@ -399,14 +373,14 @@ pub fn context_menu<'a>( (_, Location::Network(..)) => { if selected > 0 { if selected_dir == 1 && selected == 1 || selected_dir == 0 { - children.push(menu_item(fl!("open"), Action::Open).into()); + children.push(menu_item(fl!("open"), Action::Open)); } } else { if tab.mode.multiple() { - children.push(menu_item(fl!("select-all"), Action::SelectAll).into()); + children.push(menu_item(fl!("select-all"), Action::SelectAll)); } if !children.is_empty() { - children.push(divider::horizontal::light().into()); + children.push(menu::Item::Divider); } children.push(sort_item(fl!("sort-by-name"), HeadingOptions::Name)); children.push(sort_item(fl!("sort-by-modified"), HeadingOptions::Modified)); @@ -415,18 +389,20 @@ pub fn context_menu<'a>( } (_, Location::Trash | Location::Search(SearchLocation::Trash, ..)) => { if tab.mode.multiple() { - children.push(menu_item(fl!("select-all"), Action::SelectAll).into()); + children.push(menu_item(fl!("select-all"), Action::SelectAll)); } if !children.is_empty() { - children.push(divider::horizontal::light().into()); + children.push(menu::Item::Divider); } if selected > 0 { - children.push(menu_item(fl!("show-details"), Action::Preview).into()); - children.push(divider::horizontal::light().into()); - children - .push(menu_item(fl!("restore-from-trash"), Action::RestoreFromTrash).into()); - children.push(divider::horizontal::light().into()); - children.push(menu_item(fl!("delete-permanently"), Action::Delete).into()); + children.push(menu_item(fl!("show-details"), Action::Preview)); + children.push(menu::Item::Divider); + children.push(menu_item( + fl!("restore-from-trash"), + Action::RestoreFromTrash, + )); + children.push(menu::Item::Divider); + children.push(menu_item(fl!("delete-permanently"), Action::Delete)); } else { // TODO: Nested menu children.push(sort_item(fl!("sort-by-name"), HeadingOptions::Name)); @@ -436,26 +412,11 @@ pub fn context_menu<'a>( } } - container(cosmic::widget::menu::menu_column::MenuColumn::with_children(children)) - .padding(1) - //TODO: move style to libcosmic - .style(|theme| { - let cosmic = theme.cosmic(); - let component = &cosmic.background(theme.transparent); - container::Style { - icon_color: Some(component.on.into()), - text_color: Some(component.on.into()), - background: Some(Background::Color(component.base.into())), - border: Border { - radius: cosmic.radius_s().map(|x| x + 1.0).into(), - width: 1.0, - color: component.divider.into(), - }, - ..Default::default() - } - }) - .width(Length::Fixed(360.0)) - .into() + let key_binds: HashMap = key_binds + .iter() + .map(|(key_bind, action)| (key_bind.clone(), TabAction(*action))) + .collect(); + menu::items(&key_binds, children) } pub fn dialog_menu( diff --git a/src/tab.rs b/src/tab.rs index 79a5091..3b1a361 100644 --- a/src/tab.rs +++ b/src/tab.rs @@ -1742,11 +1742,11 @@ impl fmt::Debug for TaskWrapper { #[derive(Debug)] pub enum Command { Action(Action), + Surface(cosmic::surface::Action), AddNetworkDrive, AddToSidebar(PathBuf), AutoScroll(Option), ChangeLocation(String, Location, Option>), - ContextMenu(Option, Option), Delete(Vec), DropFiles(PathBuf, ClipboardPaste), ClearRecents, @@ -1777,7 +1777,8 @@ pub enum Message { ClickRelease(Option), Config(TabConfig), ContextAction(Action), - ContextMenu(Option, Option), + RightClickBackground, + Surface(cosmic::surface::Action), LocationContextMenuPoint(Option), LocationContextMenuIndex(Option, Option), LocationMenuAction(LocationMenuAction), @@ -2807,7 +2808,6 @@ pub struct Tab { pub location_title: String, pub location_context_menu_point: Option, pub location_context_menu_index: Option, - pub context_menu: Option, pub mode: Mode, pub scroll_opt: Option, pub size_opt: Cell>, @@ -2952,7 +2952,6 @@ impl Tab { location, location_ancestors, location_title, - context_menu: None, location_context_menu_point: None, location_context_menu_index: None, mode: Mode::App, @@ -3495,7 +3494,6 @@ impl Tab { self.location = location.normalize(); self.location_ancestors = self.location.ancestors(); self.location_title = self.location.title(); - self.context_menu = None; self.edit_location = None; self.items_opt = None; //TODO: remember scroll by location? @@ -3540,7 +3538,6 @@ impl Tab { let mut history_i_opt = None; let mod_ctrl = modifiers.contains(Modifiers::CTRL) && self.mode.multiple(); let mod_shift = modifiers.contains(Modifiers::SHIFT) && self.mode.multiple(); - let last_context_menu = self.context_menu; match message { Message::AddNetworkDrive => { commands.push(Command::AddNetworkDrive); @@ -3575,7 +3572,6 @@ impl Tab { } if click_i_opt != self.clicked.take() { - self.context_menu = None; self.location_context_menu_index = None; if let Some(ref mut items) = self.items_opt { for (i, item) in items.iter_mut().enumerate() { @@ -3618,7 +3614,6 @@ impl Tab { } Message::Click(click_i_opt) => { self.selected_clicked = false; - self.context_menu = None; self.edit_location = None; self.location_context_menu_index = None; if click_i_opt.is_none() { @@ -3762,24 +3757,17 @@ impl Tab { } } Message::ContextAction(action) => { - // Close context menu - self.context_menu = None; - commands.push(Command::Action(action)); } Message::RunContextAction(action) => { - self.context_menu = None; - commands.push(Command::RunContextAction(action)); } - Message::ContextMenu(point_opt, _) => { + Message::RightClickBackground => { self.edit_location = None; - self.context_menu = point_opt; self.location_context_menu_index = None; //TODO: hack for clearing selecting when right clicking empty space - if self.context_menu.is_some() - && self.last_right_click.take().is_none() + if self.last_right_click.take().is_none() && let Some(ref mut items) = self.items_opt { for item in items.iter_mut() { @@ -3787,12 +3775,13 @@ impl Tab { } } } + Message::Surface(action) => { + commands.push(Command::Surface(action)); + } Message::LocationContextMenuPoint(point_opt) => { - self.context_menu = None; self.location_context_menu_point = point_opt; } Message::LocationContextMenuIndex(p, index_opt) => { - self.context_menu = None; self.location_context_menu_point = p; self.location_context_menu_index = index_opt; } @@ -3849,7 +3838,6 @@ impl Tab { Message::Drag(rect_opt) => { self.watch_drag = false; if let Some(rect) = rect_opt { - self.context_menu = None; self.location_context_menu_index = None; if self.mode.multiple() { self.select_rect(rect, mod_ctrl, mod_shift); @@ -4972,16 +4960,6 @@ impl Tab { } } - // Update context menu popup - if self.context_menu != last_context_menu { - if last_context_menu.is_some() { - commands.push(Command::ContextMenu(None, self.window_id)); - } - if let Some(point) = self.context_menu { - commands.push(Command::ContextMenu(Some(point), self.window_id)); - } - } - commands } @@ -5878,18 +5856,13 @@ impl Tab { .height(Length::Fixed(item_height as f32)) .width(Length::Fixed(item_width as f32)); for button in buttons { - if self.context_menu.is_some() { - column = column.push(button); - } else { - column = column.push( - mouse_area::MouseArea::new(button) - .on_right_press_no_capture() - .wayland_on_right_press_window_position() - .on_right_press(move |point_opt| { - Message::RightClick(point_opt, Some(i)) - }), - ); - } + column = column.push( + mouse_area::MouseArea::new(button) + .on_right_press_no_capture() + .on_right_press(move |point_opt| { + Message::RightClick(point_opt, Some(i)) + }), + ); } let column: Element = @@ -6294,39 +6267,33 @@ impl Tab { .spacing(space_xxs) }; - let button = |row| { - let mouse_area = crate::mouse_area::MouseArea::new( - widget::button::custom(row) - .width(Length::Fill) - .id(item.button_id.clone()) - .padding([0, space_xxs]) - .class(button_style( - item.selected, - item.highlighted, - item.cut, - true, - true, - false, - )), - ) - .on_press(move |_| Message::Click(Some(i))) - .on_double_click(move |_| Message::DoubleClick(Some(i))) - .on_release(move |_| Message::ClickRelease(Some(i))) - .on_middle_press(move |_| Message::MiddleClick(i)) - .on_enter(move || Message::HighlightActivate(i)) - .on_exit(move || Message::HighlightDeactivate(i)); + let button = + |row| { + let mouse_area = crate::mouse_area::MouseArea::new( + widget::button::custom(row) + .width(Length::Fill) + .id(item.button_id.clone()) + .padding([0, space_xxs]) + .class(button_style( + item.selected, + item.highlighted, + item.cut, + true, + true, + false, + )), + ) + .on_press(move |_| Message::Click(Some(i))) + .on_double_click(move |_| Message::DoubleClick(Some(i))) + .on_release(move |_| Message::ClickRelease(Some(i))) + .on_middle_press(move |_| Message::MiddleClick(i)) + .on_enter(move || Message::HighlightActivate(i)) + .on_exit(move || Message::HighlightDeactivate(i)); - if self.context_menu.is_some() { - mouse_area - } else { - mouse_area - .on_right_press_no_capture() - .wayland_on_right_press_window_position() - .on_right_press(move |point_opt| { - Message::RightClick(point_opt, Some(i)) - }) - } - }; + mouse_area.on_right_press_no_capture().on_right_press( + move |point_opt| Message::RightClick(point_opt, Some(i)), + ) + }; let button_row = button(row.into()); let button_row: Element<_> = if item.metadata.is_dir() @@ -6550,51 +6517,47 @@ impl Tab { .on_back_press(move |_point_opt| Message::GoPrevious) .on_forward_press(move |_point_opt| Message::GoNext) .on_scroll(|delta| respond_to_scroll_direction(delta, modifiers)) - .on_right_press(move |p| { - Message::ContextMenu( - if self.context_menu.is_some() { None } else { p }, - self.window_id, - ) - }) - .wayland_on_right_press_window_position(); + .on_right_press(|_| Message::RightClickBackground); - let mut popover = widget::popover(mouse_area); - if let Some(point) = self.context_menu - && (!cfg!(feature = "wayland") || !crate::is_wayland()) - { - let context_menu = menu::context_menu( + let items_area: Element<'_, Message> = if can_scroll { + // FIXME: new responsive widget will remove the state from the scrollable + // id_container with custom id forces the state to be extracted in a diff + // pre-processing step + widget::id_container( + widget::scrollable(mouse_area) + .id(self.scrollable_id.clone()) + .on_scroll(Message::Scroll) + .width(Length::Fill) + .height(Length::Fill), + widget::Id::new(format!("{}-scrollable", self.scrollable_id)), + ) + .into() + } else { + mouse_area.into() + }; + + // Wrap the scrollable, not its content, so the popup anchors in window coordinates + let mut context_menu = widget::context_menu( + items_area, + Some(menu::context_menu( self, key_binds, modifiers, clipboard_paste_available, context_actions, - ); - popover = popover - .popup(context_menu) - .position(widget::popover::Position::Point(point)); + )), + ) + .item_width(cosmic::widget::menu::ItemWidth::Uniform(360)) + .on_surface_action(Message::Surface); + if let Some(window_id) = self.window_id { + context_menu = context_menu.window_id(window_id); } let mut tab_column = widget::column::with_capacity(3); if let Some(location_view) = location_view_opt { tab_column = tab_column.push(location_view); } - if can_scroll { - tab_column = tab_column.push( - // FIXME: new responsive widget will remove the state from the scrollable - // id_container with custom id forces the state to be extracted in a diff - // pre-processing step - widget::id_container( - widget::scrollable(popover) - .id(self.scrollable_id.clone()) - .on_scroll(Message::Scroll) - .width(Length::Fill) - .height(Length::Fill), - widget::Id::new(format!("{}-scrollable", self.scrollable_id)), - ), - ); - } else { - tab_column = tab_column.push(popover); - } + tab_column = tab_column.push(context_menu); match &self.location { Location::Trash | Location::Search(SearchLocation::Trash, ..) => { if let Some(items) = self.items_opt() @@ -7156,8 +7119,7 @@ impl Tab { let path = path.clone(); // Acquire semaphore permit - let _permit = - THUMB_SEMAPHORE.acquire().await.unwrap(); + let _permit = THUMB_SEMAPHORE.acquire().await.unwrap(); tokio::task::spawn_blocking(move || { let start = Instant::now(); From b7005660f15eff35250daea7e0aff372737858a9 Mon Sep 17 00:00:00 2001 From: Hojjat Date: Wed, 2 Sep 2026 19:20:30 -0600 Subject: [PATCH 24/34] feat: use libcosmic's context_menu widget for the breadcrumb menu --- src/app.rs | 27 +++------------- src/dialog.rs | 17 ++--------- src/menu.rs | 85 ++++++++++++++++----------------------------------- src/tab.rs | 68 +++++++++++++---------------------------- 4 files changed, 55 insertions(+), 142 deletions(-) diff --git a/src/app.rs b/src/app.rs index 048d600..55c27a7 100644 --- a/src/app.rs +++ b/src/app.rs @@ -1737,15 +1737,6 @@ impl App { } } - fn close_context_menus(&mut self) -> Task { - let active = self.tab_model.active(); - if let Some(tab) = self.tab_model.data_mut::(active) { - tab.location_context_menu_index = None; - } - - Task::none() - } - fn update_nav_model(&mut self) { let mut nav_model = segmented_button::ModelBuilder::default(); @@ -2802,11 +2793,6 @@ impl Application for App { return cosmic::task::message(cosmic::action::app(Message::SetShowDetails(false))); } if let Some(tab) = self.tab_model.data_mut::(entity) { - if tab.location_context_menu_index.is_some() { - tab.location_context_menu_index = None; - return Task::none(); - } - if tab.edit_location.is_some() { tab.edit_location = None; return Task::none(); @@ -3558,7 +3544,7 @@ impl Application for App { Message::Mouse(window_id, _button) => { // Close context menu when clicking outside. if self.core.main_window_id() == Some(window_id) { - return self.close_context_menus(); + return Task::none(); } } Message::MoveTo(entity_opt) => { @@ -4348,7 +4334,7 @@ impl Application for App { )); } Message::SearchActivate => { - let mut tasks = vec![self.close_context_menus()]; + let mut tasks = vec![]; if self.search_get().is_none() { tasks.push(self.search_set_active(Some(String::new()))); @@ -4359,7 +4345,7 @@ impl Application for App { return Task::batch(tasks); } Message::SearchClear => { - return Task::batch([self.close_context_menus(), self.search_set_active(None)]); + return self.search_set_active(None); } Message::SearchInput(input) => { return self.search_set_active(Some(input)); @@ -4380,7 +4366,7 @@ impl Application for App { return self.update_config(); } Message::TabActivate(entity) => { - let mut tasks = vec![self.close_context_menus()]; + let mut tasks = vec![]; // Activate new tab self.tab_model.activate(entity); @@ -4584,7 +4570,6 @@ impl Application for App { } tab::Command::OpenFile(paths) => commands.push(self.open_file(&paths)), tab::Command::OpenInNewTab(path) => { - commands.push(self.close_context_menus()); commands.push(self.open_tab(Location::Path(path), false, None)); } tab::Command::OpenInNewWindow(path) => match env::current_exe() { @@ -5021,8 +5006,6 @@ impl Application for App { if let Some(tab) = self.tab_model.data_mut::(tab_entity) { // Close location editing if enabled tab.edit_location = None; - // Close other context menus. - tab.location_context_menu_index = None; } } Message::NavMenuAction(action) => match action { @@ -5120,7 +5103,7 @@ impl Application for App { _ => Task::none(), }; - return Task::batch([self.close_context_menus(), open_task]); + return open_task; } // Open the selected path in a new cosmic-files window. diff --git a/src/dialog.rs b/src/dialog.rs index 8f5cd5d..bebbef4 100644 --- a/src/dialog.rs +++ b/src/dialog.rs @@ -864,12 +864,6 @@ impl App { } } - fn close_context_menus(&mut self) -> Task { - self.tab.location_context_menu_index = None; - - Task::none() - } - fn update_nav_model(&mut self) { let mut nav_model = segmented_button::ModelBuilder::default(); @@ -1314,11 +1308,6 @@ impl Application for App { return Task::none(); } - if self.tab.location_context_menu_index.is_some() { - self.tab.location_context_menu_index = None; - return Task::none(); - } - if self.tab.edit_location.is_some() { // Close location editing if enabled self.tab.edit_location = None; @@ -1553,7 +1542,7 @@ impl Application for App { Message::Mouse(window_id, _button) => { // Close context menu when clicking outside. if self.core.main_window_id() == Some(window_id) { - return self.close_context_menus(); + return Task::none(); } } Message::NewFolder => { @@ -1713,7 +1702,7 @@ impl Application for App { ))); } Message::SearchActivate => { - let mut tasks = vec![self.close_context_menus()]; + let mut tasks = vec![]; if self.search_get().is_none() { tasks.push(self.search_set(Some(String::new()))); @@ -1724,7 +1713,7 @@ impl Application for App { return Task::batch(tasks); } Message::SearchClear => { - return Task::batch([self.close_context_menus(), self.search_set(None)]); + return self.search_set(None); } Message::SearchInput(input) => { return self.search_set(Some(input)); diff --git a/src/menu.rs b/src/menu.rs index fc7584c..4caa701 100644 --- a/src/menu.rs +++ b/src/menu.rs @@ -1,13 +1,12 @@ // SPDX-License-Identifier: GPL-3.0-only +use cosmic::{Element, theme}; use cosmic::app::Core; use cosmic::iced::keyboard::Modifiers; -use cosmic::iced::{Alignment, Background, Border, Length}; use cosmic::widget::menu::action::MenuAction; use cosmic::widget::menu::key_bind::KeyBind; use cosmic::widget::menu::{self, ItemHeight, ItemWidth, MenuBar}; -use cosmic::widget::{self, Row, button, column, container, divider, responsive_menu_bar, text}; -use cosmic::{Element, theme}; +use cosmic::widget::{self, responsive_menu_bar}; use i18n_embed::LanguageLoader; use mime_guess::Mime; use std::collections::HashMap; @@ -24,21 +23,6 @@ use crate::trash::{Trash, TrashExt}; static MENU_ID: LazyLock = LazyLock::new(|| cosmic::widget::Id::new("responsive-menu")); -macro_rules! menu_button { - ($($x:expr),+ $(,)?) => ( - button::custom( - Row::with_children( - [$(Element::from($x)),+] - ) - .height(Length::Fixed(24.0)) - .align_y(Alignment::Center) - ) - .padding([theme::spacing().space_xxs, 16]) - .width(Length::Fill) - .class(theme::Button::MenuItem) - ); -} - const fn menu_button_optional( label: String, action: Action, @@ -765,50 +749,33 @@ pub fn menu_bar<'a>( ) } -pub fn location_context_menu<'a>(ancestor_index: usize) -> Element<'a, tab::Message> { +pub fn location_context_menu(ancestor_index: usize) -> Vec> { //TODO: only add some of these when in App mode - let children = [ - menu_button!(text::body(fl!("open-in-new-tab"))) - .on_press(tab::Message::LocationMenuAction( + menu::items( + &HashMap::new(), + vec![ + menu::Item::Button( + fl!("open-in-new-tab"), + None, LocationMenuAction::OpenInNewTab(ancestor_index), - )) - .into(), - menu_button!(text::body(fl!("open-in-new-window"))) - .on_press(tab::Message::LocationMenuAction( + ), + menu::Item::Button( + fl!("open-in-new-window"), + None, LocationMenuAction::OpenInNewWindow(ancestor_index), - )) - .into(), - divider::horizontal::light().into(), - menu_button!(text::body(fl!("show-details"))) - .on_press(tab::Message::LocationMenuAction( + ), + menu::Item::Divider, + menu::Item::Button( + fl!("show-details"), + None, LocationMenuAction::Preview(ancestor_index), - )) - .into(), - divider::horizontal::light().into(), - menu_button!(text::body(fl!("add-to-sidebar"))) - .on_press(tab::Message::LocationMenuAction( + ), + menu::Item::Divider, + menu::Item::Button( + fl!("add-to-sidebar"), + None, LocationMenuAction::AddToSidebar(ancestor_index), - )) - .into(), - ]; - - container(column::with_children(children)) - .padding(1) - .style(|theme| { - let cosmic = theme.cosmic(); - let component = &cosmic.background(theme.transparent).component; - container::Style { - icon_color: Some(component.on.into()), - text_color: Some(component.on.into()), - background: Some(Background::Color(component.base.into())), - border: Border { - radius: cosmic.radius_s().map(|x| x + 1.0).into(), - width: 1.0, - color: component.divider.into(), - }, - ..Default::default() - } - }) - .width(Length::Fixed(360.0)) - .into() + ), + ], + ) } diff --git a/src/tab.rs b/src/tab.rs index 3b1a361..28a20f7 100644 --- a/src/tab.rs +++ b/src/tab.rs @@ -1779,8 +1779,7 @@ pub enum Message { ContextAction(Action), RightClickBackground, Surface(cosmic::surface::Action), - LocationContextMenuPoint(Option), - LocationContextMenuIndex(Option, Option), + LocationContextMenuIndex(Option), LocationMenuAction(LocationMenuAction), Drag(Option), DragEnd, @@ -2806,7 +2805,7 @@ pub struct Tab { pub location: Location, pub location_ancestors: Vec<(Location, String)>, pub location_title: String, - pub location_context_menu_point: Option, + /// Breadcrumb whose context menu is open, drawn as active while it shows pub location_context_menu_index: Option, pub mode: Mode, pub scroll_opt: Option, @@ -2952,7 +2951,6 @@ impl Tab { location, location_ancestors, location_title, - location_context_menu_point: None, location_context_menu_index: None, mode: Mode::App, scroll_opt: None, @@ -3572,7 +3570,6 @@ impl Tab { } if click_i_opt != self.clicked.take() { - self.location_context_menu_index = None; if let Some(ref mut items) = self.items_opt { for (i, item) in items.iter_mut().enumerate() { if mod_ctrl { @@ -3615,7 +3612,6 @@ impl Tab { Message::Click(click_i_opt) => { self.selected_clicked = false; self.edit_location = None; - self.location_context_menu_index = None; if click_i_opt.is_none() { self.clicked = click_i_opt; } @@ -3764,7 +3760,6 @@ impl Tab { } Message::RightClickBackground => { self.edit_location = None; - self.location_context_menu_index = None; //TODO: hack for clearing selecting when right clicking empty space if self.last_right_click.take().is_none() @@ -3778,15 +3773,10 @@ impl Tab { Message::Surface(action) => { commands.push(Command::Surface(action)); } - Message::LocationContextMenuPoint(point_opt) => { - self.location_context_menu_point = point_opt; - } - Message::LocationContextMenuIndex(p, index_opt) => { - self.location_context_menu_point = p; - self.location_context_menu_index = index_opt; + Message::LocationContextMenuIndex(index) => { + self.location_context_menu_index = index; } Message::LocationMenuAction(action) => { - self.location_context_menu_index = None; let path_for_index = |ancestor_index| { self.location .path_opt() @@ -3838,7 +3828,6 @@ impl Tab { Message::Drag(rect_opt) => { self.watch_drag = false; if let Some(rect) = rect_opt { - self.location_context_menu_index = None; if self.mode.multiple() { self.select_rect(rect, mod_ctrl, mod_shift); } @@ -5570,10 +5559,14 @@ impl Tab { } let location = self.location.with_path(ancestor.to_path_buf()); - let mut mouse_area = crate::mouse_area::MouseArea::new( + let mouse_area = crate::mouse_area::MouseArea::new( widget::button::custom(row) .padding(space_xxxs) - .class(theme::Button::Link) + .class(if self.location_context_menu_index == Some(index) { + theme::Button::LinkActive + } else { + theme::Button::Link + }) .on_press(if ancestor == path { Message::EditLocation(Some(self.location.clone().into())) } else { @@ -5581,21 +5574,6 @@ impl Tab { }), ); - if self.location_context_menu_index.is_some() { - mouse_area = mouse_area - .on_right_press(move |point_opt| { - Message::LocationContextMenuIndex(point_opt, None) - }) - .wayland_on_right_press_window_position(); - } else { - mouse_area = mouse_area - .on_right_press_no_capture() - .on_right_press(move |point_opt| { - Message::LocationContextMenuIndex(point_opt, Some(index)) - }) - .wayland_on_right_press_window_position(); - } - let mouse_area = if let Location::Path(_) = &self.location { mouse_area .on_middle_press(move |_| Message::OpenInNewTab(ancestor.to_path_buf())) @@ -5603,7 +5581,16 @@ impl Tab { mouse_area }; - children.push(self.dnd_dest(&location, mouse_area)); + // Each breadcrumb carries the menu for its own ancestor index + let mut context_menu = + widget::context_menu(mouse_area, Some(menu::location_context_menu(index))) + .on_open(Message::LocationContextMenuIndex(Some(index))) + .on_close(Message::LocationContextMenuIndex(None)) + .on_surface_action(Message::Surface); + if let Some(window_id) = self.window_id { + context_menu = context_menu.window_id(window_id); + } + children.push(self.dnd_dest(&location, context_menu)); if found_home || overflow { break; @@ -5654,20 +5641,7 @@ impl Tab { column = column.push(heading_rule); } - let mouse_area = crate::mouse_area::MouseArea::new(column) - .on_right_press(Message::LocationContextMenuPoint); - - let mut popover = widget::popover(mouse_area); - if let (Some(point), Some(index)) = ( - self.location_context_menu_point, - self.location_context_menu_index, - ) { - popover = popover - .popup(menu::location_context_menu(index)) - .position(widget::popover::Position::Point(point)); - } - - popover.into() + column.into() } pub fn empty_view(&self, has_hidden: bool) -> Element<'_, Message> { From 7ba55f66cc7b86670877307e908447d805e5cbf8 Mon Sep 17 00:00:00 2001 From: Hojjat Date: Tue, 8 Sep 2026 12:32:11 -0600 Subject: [PATCH 25/34] chore: adopt typed surface actions from libcosmic --- src/app.rs | 64 +++++++++++++++++++++++++-------------------------- src/dialog.rs | 9 ++++---- src/tab.rs | 4 ++-- 3 files changed, 37 insertions(+), 40 deletions(-) diff --git a/src/app.rs b/src/app.rs index 55c27a7..4ca8e86 100644 --- a/src/app.rs +++ b/src/app.rs @@ -481,7 +481,7 @@ pub enum Message { OutputEvent(OutputEvent, WlOutput), Cosmic(app::Action), None, - Surface(surface::Action), + Surface(surface::Action), CutPaths(Vec), } @@ -2525,7 +2525,7 @@ impl Application for App { { nav = nav .window_id_maybe(self.core().main_window_id()) - .on_surface_action(|m| cosmic::Action::Cosmic(cosmic::app::Action::Surface(m))) + .on_surface_action(|action| cosmic::Action::Surface(action.flatten())) } let mut nav = nav.into_container(); @@ -4520,6 +4520,9 @@ impl Application for App { ])); } tab::Command::Surface(action) => { + // re-type the tab's surface action the way its messages are re-typed + let action = action + .map(move |message| Message::TabMessage(Some(entity), message)); commands.push(self.update(Message::Surface(action))); } tab::Command::Delete(paths) => commands.push(self.delete(paths)), @@ -5249,35 +5252,31 @@ impl Application for App { .insert(surface_id, Window::new(WindowKind::Desktop(entity))); return Task::batch([ command, - cosmic::task::message(cosmic::action::cosmic( - cosmic::app::Action::Surface( - cosmic::surface::action::app_layer_shell( - |_| Default::default(), - move |_: &mut App| SctkLayerSurfaceSettings { - id: surface_id, - layer: Layer::Bottom, - keyboard_interactivity: KeyboardInteractivity::OnDemand, - input_zone: None, - anchor: Anchor::TOP - | Anchor::BOTTOM - | Anchor::LEFT - | Anchor::RIGHT, - output: IcedOutput::Output(output.clone()), - namespace: "cosmic-files-applet".into(), - size: Some((None, None)), - margin: IcedMargin { - top: 0, - bottom: 0, - left: 0, - right: 0, - }, - exclusive_zone: 0, - size_limits: Limits::NONE - .min_width(1.0) - .min_height(1.0), + cosmic::task::message(cosmic::Action::Surface( + cosmic::surface::action::app_layer_shell( + |_| Default::default(), + move |_: &mut App| SctkLayerSurfaceSettings { + id: surface_id, + layer: Layer::Bottom, + keyboard_interactivity: KeyboardInteractivity::OnDemand, + input_zone: None, + anchor: Anchor::TOP + | Anchor::BOTTOM + | Anchor::LEFT + | Anchor::RIGHT, + output: IcedOutput::Output(output.clone()), + namespace: "cosmic-files-applet".into(), + size: Some((None, None)), + margin: IcedMargin { + top: 0, + bottom: 0, + left: 0, + right: 0, }, - None, - ), + exclusive_zone: 0, + size_limits: Limits::NONE.min_width(1.0).min_height(1.0), + }, + None, ), )), #[cfg(all(feature = "wayland", feature = "desktop-applet"))] @@ -5372,9 +5371,7 @@ impl Application for App { }); } Message::Surface(action) => { - return cosmic::task::message(cosmic::Action::Cosmic( - cosmic::app::Action::Surface(action), - )); + return cosmic::task::message(cosmic::Action::Surface(action)); } Message::SaveSortNames => { self.must_save_sort_names = false; @@ -6600,6 +6597,7 @@ impl Application for App { return self.view_main().map(|message| match message { cosmic::Action::App(app) => app, cosmic::Action::Cosmic(cosmic) => Message::Cosmic(cosmic), + cosmic::Action::Surface(action) => Message::Surface(action), cosmic::Action::None => Message::None, }); } diff --git a/src/dialog.rs b/src/dialog.rs index bebbef4..aba4d00 100644 --- a/src/dialog.rs +++ b/src/dialog.rs @@ -468,7 +468,7 @@ enum Message { SearchActivate, SearchClear, SearchInput(String), - Surface(cosmic::surface::Action), + Surface(cosmic::surface::Action), #[allow(clippy::enum_variant_names)] TabMessage(tab::Message), TabRescan( @@ -501,7 +501,7 @@ impl From for Message { AppMessage::ZoomIn(_entity_opt) => Self::ZoomIn, AppMessage::ZoomOut(_entity_opt) => Self::ZoomOut, AppMessage::NewItem(_entity_opt, true) => Self::NewFolder, - AppMessage::Surface(action) => Self::Surface(action), + AppMessage::Surface(action) => Self::Surface(action.map(Self::from)), unsupported => { log::warn!("{unsupported:?} not supported in dialog mode"); Self::None @@ -1750,6 +1750,7 @@ impl Application for App { ])); } tab::Command::Surface(action) => { + let action = action.map(Message::TabMessage); commands.push(self.update(Message::Surface(action))); } tab::Command::Iced(iced_command) => { @@ -1905,9 +1906,7 @@ impl Application for App { }); } Message::Surface(action) => { - return cosmic::task::message(cosmic::Action::Cosmic( - cosmic::app::Action::Surface(action), - )); + return cosmic::task::message(cosmic::Action::Surface(action)); } } diff --git a/src/tab.rs b/src/tab.rs index 28a20f7..6d7831a 100644 --- a/src/tab.rs +++ b/src/tab.rs @@ -1742,7 +1742,7 @@ impl fmt::Debug for TaskWrapper { #[derive(Debug)] pub enum Command { Action(Action), - Surface(cosmic::surface::Action), + Surface(cosmic::surface::Action), AddNetworkDrive, AddToSidebar(PathBuf), AutoScroll(Option), @@ -1778,7 +1778,7 @@ pub enum Message { Config(TabConfig), ContextAction(Action), RightClickBackground, - Surface(cosmic::surface::Action), + Surface(cosmic::surface::Action), LocationContextMenuIndex(Option), LocationMenuAction(LocationMenuAction), Drag(Option), From 762fc8fb48ce07d435a98fbd647f8e0ae4075bf8 Mon Sep 17 00:00:00 2001 From: Hojjat Date: Wed, 9 Sep 2026 12:24:11 -0600 Subject: [PATCH 26/34] chore: update libcosmic & `cargo +nightly fmt` --- Cargo.lock | 37 +++++++++++++++++++------------------ src/operation/recursive.rs | 4 +++- 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 757d1bf..084cccf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -826,7 +826,7 @@ dependencies = [ [[package]] name = "build_helpers" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" +source = "git+https://github.com/pop-os/libcosmic.git#a401af8b1c54a8abd393b8c5b7c8809402f83850" dependencies = [ "cfg_aliases", ] @@ -1359,7 +1359,7 @@ dependencies = [ [[package]] name = "cosmic-config" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" +source = "git+https://github.com/pop-os/libcosmic.git#a401af8b1c54a8abd393b8c5b7c8809402f83850" dependencies = [ "atomicwrites", "cosmic-config-derive", @@ -1380,7 +1380,7 @@ dependencies = [ [[package]] name = "cosmic-config-derive" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" +source = "git+https://github.com/pop-os/libcosmic.git#a401af8b1c54a8abd393b8c5b7c8809402f83850" dependencies = [ "quote", "syn 2.0.119", @@ -1551,7 +1551,7 @@ dependencies = [ [[package]] name = "cosmic-theme" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" +source = "git+https://github.com/pop-os/libcosmic.git#a401af8b1c54a8abd393b8c5b7c8809402f83850" dependencies = [ "almost", "configparser", @@ -3114,7 +3114,7 @@ dependencies = [ [[package]] name = "iced" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" +source = "git+https://github.com/pop-os/libcosmic.git#a401af8b1c54a8abd393b8c5b7c8809402f83850" dependencies = [ "build_helpers", "dnd", @@ -3136,7 +3136,7 @@ dependencies = [ [[package]] name = "iced_accessibility" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" +source = "git+https://github.com/pop-os/libcosmic.git#a401af8b1c54a8abd393b8c5b7c8809402f83850" dependencies = [ "accesskit", "accesskit_winit", @@ -3145,7 +3145,7 @@ dependencies = [ [[package]] name = "iced_core" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" +source = "git+https://github.com/pop-os/libcosmic.git#a401af8b1c54a8abd393b8c5b7c8809402f83850" dependencies = [ "bitflags 2.13.1", "build_helpers", @@ -3171,7 +3171,7 @@ dependencies = [ [[package]] name = "iced_debug" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" +source = "git+https://github.com/pop-os/libcosmic.git#a401af8b1c54a8abd393b8c5b7c8809402f83850" dependencies = [ "iced_core", "iced_futures", @@ -3181,7 +3181,7 @@ dependencies = [ [[package]] name = "iced_futures" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" +source = "git+https://github.com/pop-os/libcosmic.git#a401af8b1c54a8abd393b8c5b7c8809402f83850" dependencies = [ "futures", "iced_core", @@ -3195,7 +3195,7 @@ dependencies = [ [[package]] name = "iced_graphics" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" +source = "git+https://github.com/pop-os/libcosmic.git#a401af8b1c54a8abd393b8c5b7c8809402f83850" dependencies = [ "bitflags 2.13.1", "bytemuck", @@ -3216,7 +3216,7 @@ dependencies = [ [[package]] name = "iced_program" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" +source = "git+https://github.com/pop-os/libcosmic.git#a401af8b1c54a8abd393b8c5b7c8809402f83850" dependencies = [ "iced_graphics", "iced_runtime", @@ -3225,7 +3225,7 @@ dependencies = [ [[package]] name = "iced_renderer" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" +source = "git+https://github.com/pop-os/libcosmic.git#a401af8b1c54a8abd393b8c5b7c8809402f83850" dependencies = [ "iced_graphics", "iced_tiny_skia", @@ -3237,7 +3237,7 @@ dependencies = [ [[package]] name = "iced_runtime" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" +source = "git+https://github.com/pop-os/libcosmic.git#a401af8b1c54a8abd393b8c5b7c8809402f83850" dependencies = [ "build_helpers", "bytes", @@ -3253,7 +3253,7 @@ dependencies = [ [[package]] name = "iced_tiny_skia" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" +source = "git+https://github.com/pop-os/libcosmic.git#a401af8b1c54a8abd393b8c5b7c8809402f83850" dependencies = [ "bytemuck", "cosmic-text", @@ -3270,7 +3270,7 @@ dependencies = [ [[package]] name = "iced_wgpu" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" +source = "git+https://github.com/pop-os/libcosmic.git#a401af8b1c54a8abd393b8c5b7c8809402f83850" dependencies = [ "as-raw-xcb-connection", "bitflags 2.13.1", @@ -3302,7 +3302,7 @@ dependencies = [ [[package]] name = "iced_widget" version = "0.14.2" -source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" +source = "git+https://github.com/pop-os/libcosmic.git#a401af8b1c54a8abd393b8c5b7c8809402f83850" dependencies = [ "build_helpers", "cosmic-client-toolkit", @@ -3321,7 +3321,7 @@ dependencies = [ [[package]] name = "iced_winit" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" +source = "git+https://github.com/pop-os/libcosmic.git#a401af8b1c54a8abd393b8c5b7c8809402f83850" dependencies = [ "build_helpers", "cosmic-client-toolkit", @@ -4466,7 +4466,7 @@ checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" [[package]] name = "libcosmic" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#9cc82abd9ca5601bb0341edd12a9acbc97e77801" +source = "git+https://github.com/pop-os/libcosmic.git#a401af8b1c54a8abd393b8c5b7c8809402f83850" dependencies = [ "apply", "ashpd 0.12.3", @@ -4504,6 +4504,7 @@ dependencies = [ "palette", "phf", "rfd", + "roxmltree", "rust-embed", "rustix 1.1.4", "serde", diff --git a/src/operation/recursive.rs b/src/operation/recursive.rs index f43e8bb..84e4cc9 100644 --- a/src/operation/recursive.rs +++ b/src/operation/recursive.rs @@ -479,7 +479,9 @@ impl Op { #[cfg(not(feature = "gvfs"))] Err(why) => { _ = from_file.close().await; - return Err(why).with_context(|| format!("failed to open {} for writing", self.to.display())).map_err(Into::into); + return Err(why) + .with_context(|| format!("failed to open {} for writing", self.to.display())) + .map_err(Into::into); } #[cfg(feature = "gvfs")] Err(_why) => { From c576bbcd60872e6a6bcfc81fc9a9f470bb6d953c Mon Sep 17 00:00:00 2001 From: Michael Aaron Murphy Date: Mon, 14 Sep 2026 20:35:45 +0200 Subject: [PATCH 27/34] Epoch 1.9.0 version update Generated by cosmic-epoch scripts/version-update.sh --- Cargo.lock | 584 ++++++++++++++++----------------- Cargo.toml | 2 +- cosmic-files-applet/Cargo.toml | 2 +- debian/changelog | 6 + debian/source/options | 6 +- 5 files changed, 290 insertions(+), 310 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 084cccf..718248c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -198,7 +198,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f2a1bb052857d5dd49572219344a7332b31b76405648eabac5bc68978251bcd" dependencies = [ "android-properties", - "bitflags 2.13.1", + "bitflags 2.13.2", "cc", "jni", "libc", @@ -535,7 +535,7 @@ checksum = "82f6aeea286b8eb4dd3431a1be1b59d290ace00f5bfd8e2a159bc2a05e2c1667" dependencies = [ "proc-macro2", "quote", - "syn 3.0.4", + "syn 3.0.5", ] [[package]] @@ -606,7 +606,7 @@ dependencies = [ "derive_utils", "proc-macro2", "quote", - "syn 3.0.4", + "syn 3.0.5", ] [[package]] @@ -664,6 +664,12 @@ version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" +[[package]] +name = "base64" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac07cdecf99051d9a5238b80f35af32cdeba5b336e55d957b318b50137e18da5" + [[package]] name = "basic-toml" version = "0.1.10" @@ -702,9 +708,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.13.1" +version = "2.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b588b76d00fde79687d7646a9b5bdf3cc0f655e0bbd080335a95d7e96f3587da" +checksum = "3ded4057c258ba199e2d26386d3af3780957ecaee6c4ef4041c6b4b8b97c0b06" dependencies = [ "serde_core", ] @@ -826,7 +832,7 @@ dependencies = [ [[package]] name = "build_helpers" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#a401af8b1c54a8abd393b8c5b7c8809402f83850" +source = "git+https://github.com/pop-os/libcosmic.git#e793c4552b75b9ced6a69bc7ff565d6a07477137" dependencies = [ "cfg_aliases", ] @@ -860,13 +866,13 @@ dependencies = [ [[package]] name = "bytemuck_derive" -version = "1.12.0" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0e56a716f1e132ff6bf4bdac1c944a3fcdc1cae65f70a4a2a1ac3b401d2d1f" +checksum = "6a1f896587b6f2c069c73d2f0913e2d590c3990285cd2f0b6aa02b786b4c679c" dependencies = [ "proc-macro2", "quote", - "syn 3.0.4", + "syn 3.0.5", ] [[package]] @@ -912,7 +918,7 @@ version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dbf9978365bac10f54d1d4b04f7ce4427e51f71d61f2fe15e3fed5166474df7" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "polling", "rustix 1.1.4", "slab", @@ -933,9 +939,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.4.4" +version = "1.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ad534f4357a5264cce5019c989cf66a4f0dc4e0d1b1d15f8aacec0ff7360273" +checksum = "a3eb0f42d6c360dc3f8a821f6bf2fdea7f72bfd36b3076eb0e6d1e9e0752fff4" dependencies = [ "find-msvc-tools", "jobserver", @@ -1246,9 +1252,9 @@ dependencies = [ [[package]] name = "configparser" -version = "3.2.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b46dec724fd22199ebde05033a0cbae453bc3b1ecff11eb6a6bb3eec4b90c6a4" +checksum = "031ad3d167622974ed636505ae4556267ed4aa2aea0464122fa6bc9698a32825" [[package]] name = "const-oid" @@ -1318,7 +1324,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "core-foundation 0.10.1", "libc", ] @@ -1348,8 +1354,21 @@ name = "cosmic-client-toolkit" version = "0.2.0" source = "git+https://github.com/pop-os/cosmic-protocols?rev=32283d7#32283d76a8d0342da74c4cc022a533c52dcf378f" dependencies = [ - "bitflags 2.13.1", - "cosmic-protocols", + "bitflags 2.13.2", + "cosmic-protocols 0.2.0 (git+https://github.com/pop-os/cosmic-protocols?rev=32283d7)", + "libc", + "smithay-client-toolkit", + "wayland-client", + "wayland-protocols", +] + +[[package]] +name = "cosmic-client-toolkit" +version = "0.2.0" +source = "git+https://github.com/pop-os/cosmic-protocols?rev=c0cff4d#c0cff4db14c37ed954983158e4055aa94c7741d9" +dependencies = [ + "bitflags 2.13.2", + "cosmic-protocols 0.2.0 (git+https://github.com/pop-os/cosmic-protocols?rev=c0cff4d)", "libc", "smithay-client-toolkit", "wayland-client", @@ -1359,7 +1378,7 @@ dependencies = [ [[package]] name = "cosmic-config" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#a401af8b1c54a8abd393b8c5b7c8809402f83850" +source = "git+https://github.com/pop-os/libcosmic.git#e793c4552b75b9ced6a69bc7ff565d6a07477137" dependencies = [ "atomicwrites", "cosmic-config-derive", @@ -1380,7 +1399,7 @@ dependencies = [ [[package]] name = "cosmic-config-derive" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#a401af8b1c54a8abd393b8c5b7c8809402f83850" +source = "git+https://github.com/pop-os/libcosmic.git#e793c4552b75b9ced6a69bc7ff565d6a07477137" dependencies = [ "quote", "syn 2.0.119", @@ -1388,14 +1407,14 @@ dependencies = [ [[package]] name = "cosmic-files" -version = "1.8.0" +version = "1.9.0" dependencies = [ "anyhow", "atomic_float", "bstr", "bzip2", "compio", - "cosmic-client-toolkit", + "cosmic-client-toolkit 0.2.0 (git+https://github.com/pop-os/cosmic-protocols?rev=32283d7)", "cosmic-mime-apps", "dirs 6.0.0", "fastrand", @@ -1457,7 +1476,7 @@ dependencies = [ [[package]] name = "cosmic-files-applet" -version = "1.8.0" +version = "1.9.0" dependencies = [ "cosmic-files", "log", @@ -1494,7 +1513,21 @@ name = "cosmic-protocols" version = "0.2.0" source = "git+https://github.com/pop-os/cosmic-protocols?rev=32283d7#32283d76a8d0342da74c4cc022a533c52dcf378f" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-protocols-wlr", + "wayland-scanner", + "wayland-server", +] + +[[package]] +name = "cosmic-protocols" +version = "0.2.0" +source = "git+https://github.com/pop-os/cosmic-protocols?rev=c0cff4d#c0cff4db14c37ed954983158e4055aa94c7741d9" +dependencies = [ + "bitflags 2.13.2", "wayland-backend", "wayland-client", "wayland-protocols", @@ -1530,7 +1563,7 @@ version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be17b688510d934ce13f48a2beba700e11583e281e0fda99c22bb256a14eda73" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "fontdb", "harfrust", "linebender_resource_handle", @@ -1551,7 +1584,7 @@ dependencies = [ [[package]] name = "cosmic-theme" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#a401af8b1c54a8abd393b8c5b7c8809402f83850" +source = "git+https://github.com/pop-os/libcosmic.git#e793c4552b75b9ced6a69bc7ff565d6a07477137" dependencies = [ "almost", "configparser", @@ -1592,18 +1625,18 @@ dependencies = [ [[package]] name = "crc32fast" -version = "1.5.1" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8498c871161e1742aaa9d52551b2d6ebdd4c3d45a3be423e3728f33b955be550" +checksum = "01a7799fd6b852db0e61728dde9a204c423b44d689dbd432522543614b490e78" dependencies = [ "cfg-if", ] [[package]] name = "crossbeam-deque" -version = "0.8.7" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5181e0de7b61eb03a81e347d6dd8797bae9da5146707b51077e2d71a54ec0ceb" +checksum = "622f3fc73690be383c7214310406f28a90e6edeadc3cea882f9d71e495b9711a" dependencies = [ "crossbeam-epoch", "crossbeam-utils", @@ -1611,27 +1644,27 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.20" +version = "0.9.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d6914041f254d6e9176c01941b21115dcfb7089e55135a35411081bd106ef3f" +checksum = "dc74980687109a3b14c72fd458107bf0baa1da1a1a805e178d15501ba9b86d9d" dependencies = [ "crossbeam-utils", ] [[package]] name = "crossbeam-queue" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "803d13fb3b09d88be9f4dbc29062c66b19bf7170867ceb746d2a8689bf6c7a26" +checksum = "03e8bd762f7479489c70ed6c768ddca99d7296857de437a68dcb2a94365b3fae" dependencies = [ "crossbeam-utils", ] [[package]] name = "crossbeam-utils" -version = "0.8.22" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61803da095bee82a81bb1a452ecc25d3b2f1416d1897eb86430c6159ef717c17" +checksum = "a31eee39dddec8330830986fcd7625edb5a24ec90ea038215273bbc3adb08ac6" [[package]] name = "crunchy" @@ -1724,12 +1757,12 @@ dependencies = [ [[package]] name = "darling" -version = "0.23.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" +checksum = "ed17f5901b6630b993ca003def43f2f8ef4014fc13b047b57aad617ff32bc2ec" dependencies = [ - "darling_core 0.23.0", - "darling_macro 0.23.0", + "darling_core 0.24.1", + "darling_macro 0.24.1", ] [[package]] @@ -1748,15 +1781,15 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.23.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" +checksum = "6837e2cf7485aaae18f86181d2f0e9a7ed297a025e220aeabf63fdebd3a2ddff" dependencies = [ "ident_case", "proc-macro2", "quote", "strsim", - "syn 2.0.119", + "syn 3.0.5", ] [[package]] @@ -1772,13 +1805,13 @@ dependencies = [ [[package]] name = "darling_macro" -version = "0.23.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" +checksum = "2ac7135c3ef02b2f7833bbeb1be5ba7f966dcde8a87c6b87f65a778d71a02785" dependencies = [ - "darling_core 0.23.0", + "darling_core 0.24.1", "quote", - "syn 2.0.119", + "syn 3.0.5", ] [[package]] @@ -1853,7 +1886,7 @@ checksum = "dc05a5d33db20c784f873e84934ad94bb209a090987ac5f62fede2c178234f23" dependencies = [ "proc-macro2", "quote", - "syn 3.0.4", + "syn 3.0.5", ] [[package]] @@ -1948,7 +1981,7 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "block2 0.6.2", "libc", "objc2 0.6.4", @@ -1962,7 +1995,7 @@ checksum = "c6232dd377dcc64799954cbd3a9bb882e9cdc1308ccd87b1c098f1fb2eaf82a8" dependencies = [ "proc-macro2", "quote", - "syn 3.0.4", + "syn 3.0.5", ] [[package]] @@ -1979,7 +2012,7 @@ name = "dnd" version = "0.1.0" source = "git+https://github.com/pop-os/window_clipboard.git?tag=sctk-0.20#f68595ee0e62fbd6589f4709b5aaa5c3c7ea5f6c" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "mime 0.1.0", "raw-window-handle", "smithay-client-toolkit", @@ -2012,7 +2045,7 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a0f8a69e60d75ae7dab4ef26a59ca99f2a89d4c142089b537775ae0c198bdcde" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "bytemuck", "drm-ffi", "drm-fourcc", @@ -2261,9 +2294,9 @@ dependencies = [ [[package]] name = "find-msvc-tools" -version = "0.1.11" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d45db016d36b838f563236e9193d0ee6ce38f3f68b6c94e914b4929c96bbb890" +checksum = "3e0f1c7c3a72c66fd80abe965175f7523475c0489a87d3ff9d6e8c87d87a9d2d" [[package]] name = "fixed_decimal" @@ -2391,9 +2424,9 @@ dependencies = [ [[package]] name = "font-types" -version = "0.12.4" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e64eb721ca85a34323425f4041adc5d82704d3782d5f8f03793bc012419dce23" +checksum = "b8eb065f3251655b3c90e22e5e363f310fc5332fb3402e37bbc94752283248f6" dependencies = [ "bytemuck", ] @@ -2439,7 +2472,7 @@ checksum = "ea5190182e6915eb873ddbc16e23b711b6eb1f9c00a0d0a3a91b5f6228475225" dependencies = [ "proc-macro2", "quote", - "syn 3.0.4", + "syn 3.0.5", ] [[package]] @@ -2468,9 +2501,9 @@ dependencies = [ [[package]] name = "freedesktop-desktop-entry" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f805583a11d4b14f17370a74731e93433c5740d8c401ca8605d3476f4d31fc0" +checksum = "9cfa09933e03f1ced380ad639822d65cb59a1914217da6c72aa8db3563e94214" dependencies = [ "bstr", "gettext-rs", @@ -2487,7 +2520,7 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc6d3a3635983a889f065aa9ce760384713f23a9b4a04f696f86c39a5d7a6a5a" dependencies = [ - "indexmap 2.14.1", + "indexmap 2.14.2", "nom 8.0.0", ] @@ -2569,7 +2602,7 @@ checksum = "9fb9654ba8355388abeb8dcb4fc62f511300867002afc858860463bdd9fe0c44" dependencies = [ "proc-macro2", "quote", - "syn 3.0.4", + "syn 3.0.5", ] [[package]] @@ -2765,7 +2798,7 @@ version = "0.21.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16de123c2e6c90ce3b573b7330de19be649080ec612033d397d72da265f1bd8b" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "futures-channel", "futures-core", "futures-executor", @@ -2874,7 +2907,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b89c83349105e3732062a895becfc71a8f921bb71ecbbdd8ff99263e3b53a0ca" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "gpu-descriptor-types", "hashbrown 0.15.5", ] @@ -2885,7 +2918,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdf242682df893b86f33a73828fb09ca4b2d3bb6cc95249707fc684d27484b91" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", ] [[package]] @@ -2922,7 +2955,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9da2e5ae821f6e96664977bf974d6d6a2d6682f9ccee23e62ec1d134246845f9" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "bytemuck", "core_maths", "read-fonts 0.37.0", @@ -3013,9 +3046,9 @@ dependencies = [ [[package]] name = "hybrid-array" -version = "0.4.14" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "707114b52a152fa7bdb290cd7cd5912d9467273b6d74e21b8d81aca1f8533f6b" +checksum = "27f864f10dfb56725ce5ce5472bc52252c8f93a4ab86327122cebf62c5f59a17" dependencies = [ "typenum", ] @@ -3114,7 +3147,7 @@ dependencies = [ [[package]] name = "iced" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#a401af8b1c54a8abd393b8c5b7c8809402f83850" +source = "git+https://github.com/pop-os/libcosmic.git#e793c4552b75b9ced6a69bc7ff565d6a07477137" dependencies = [ "build_helpers", "dnd", @@ -3136,7 +3169,7 @@ dependencies = [ [[package]] name = "iced_accessibility" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic.git#a401af8b1c54a8abd393b8c5b7c8809402f83850" +source = "git+https://github.com/pop-os/libcosmic.git#e793c4552b75b9ced6a69bc7ff565d6a07477137" dependencies = [ "accesskit", "accesskit_winit", @@ -3145,12 +3178,12 @@ dependencies = [ [[package]] name = "iced_core" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#a401af8b1c54a8abd393b8c5b7c8809402f83850" +source = "git+https://github.com/pop-os/libcosmic.git#e793c4552b75b9ced6a69bc7ff565d6a07477137" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "build_helpers", "bytes", - "cosmic-client-toolkit", + "cosmic-client-toolkit 0.2.0 (git+https://github.com/pop-os/cosmic-protocols?rev=c0cff4d)", "dnd", "glam", "lilt", @@ -3171,7 +3204,7 @@ dependencies = [ [[package]] name = "iced_debug" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#a401af8b1c54a8abd393b8c5b7c8809402f83850" +source = "git+https://github.com/pop-os/libcosmic.git#e793c4552b75b9ced6a69bc7ff565d6a07477137" dependencies = [ "iced_core", "iced_futures", @@ -3181,7 +3214,7 @@ dependencies = [ [[package]] name = "iced_futures" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#a401af8b1c54a8abd393b8c5b7c8809402f83850" +source = "git+https://github.com/pop-os/libcosmic.git#e793c4552b75b9ced6a69bc7ff565d6a07477137" dependencies = [ "futures", "iced_core", @@ -3195,9 +3228,9 @@ dependencies = [ [[package]] name = "iced_graphics" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#a401af8b1c54a8abd393b8c5b7c8809402f83850" +source = "git+https://github.com/pop-os/libcosmic.git#e793c4552b75b9ced6a69bc7ff565d6a07477137" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "bytemuck", "cosmic-text", "half", @@ -3216,7 +3249,7 @@ dependencies = [ [[package]] name = "iced_program" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#a401af8b1c54a8abd393b8c5b7c8809402f83850" +source = "git+https://github.com/pop-os/libcosmic.git#e793c4552b75b9ced6a69bc7ff565d6a07477137" dependencies = [ "iced_graphics", "iced_runtime", @@ -3225,7 +3258,7 @@ dependencies = [ [[package]] name = "iced_renderer" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#a401af8b1c54a8abd393b8c5b7c8809402f83850" +source = "git+https://github.com/pop-os/libcosmic.git#e793c4552b75b9ced6a69bc7ff565d6a07477137" dependencies = [ "iced_graphics", "iced_tiny_skia", @@ -3237,11 +3270,11 @@ dependencies = [ [[package]] name = "iced_runtime" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#a401af8b1c54a8abd393b8c5b7c8809402f83850" +source = "git+https://github.com/pop-os/libcosmic.git#e793c4552b75b9ced6a69bc7ff565d6a07477137" dependencies = [ "build_helpers", "bytes", - "cosmic-client-toolkit", + "cosmic-client-toolkit 0.2.0 (git+https://github.com/pop-os/cosmic-protocols?rev=c0cff4d)", "dnd", "iced_core", "iced_futures", @@ -3253,7 +3286,7 @@ dependencies = [ [[package]] name = "iced_tiny_skia" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#a401af8b1c54a8abd393b8c5b7c8809402f83850" +source = "git+https://github.com/pop-os/libcosmic.git#e793c4552b75b9ced6a69bc7ff565d6a07477137" dependencies = [ "bytemuck", "cosmic-text", @@ -3270,13 +3303,13 @@ dependencies = [ [[package]] name = "iced_wgpu" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#a401af8b1c54a8abd393b8c5b7c8809402f83850" +source = "git+https://github.com/pop-os/libcosmic.git#e793c4552b75b9ced6a69bc7ff565d6a07477137" dependencies = [ "as-raw-xcb-connection", - "bitflags 2.13.1", + "bitflags 2.13.2", "build_helpers", "bytemuck", - "cosmic-client-toolkit", + "cosmic-client-toolkit 0.2.0 (git+https://github.com/pop-os/cosmic-protocols?rev=c0cff4d)", "cryoglyph", "futures", "glam", @@ -3302,10 +3335,10 @@ dependencies = [ [[package]] name = "iced_widget" version = "0.14.2" -source = "git+https://github.com/pop-os/libcosmic.git#a401af8b1c54a8abd393b8c5b7c8809402f83850" +source = "git+https://github.com/pop-os/libcosmic.git#e793c4552b75b9ced6a69bc7ff565d6a07477137" dependencies = [ "build_helpers", - "cosmic-client-toolkit", + "cosmic-client-toolkit 0.2.0 (git+https://github.com/pop-os/cosmic-protocols?rev=c0cff4d)", "dnd", "iced_renderer", "iced_runtime", @@ -3321,10 +3354,10 @@ dependencies = [ [[package]] name = "iced_winit" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#a401af8b1c54a8abd393b8c5b7c8809402f83850" +source = "git+https://github.com/pop-os/libcosmic.git#e793c4552b75b9ced6a69bc7ff565d6a07477137" dependencies = [ "build_helpers", - "cosmic-client-toolkit", + "cosmic-client-toolkit 0.2.0 (git+https://github.com/pop-os/cosmic-protocols?rev=c0cff4d)", "cursor-icon", "dnd", "iced_debug", @@ -3884,9 +3917,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.14.1" +version = "2.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07aa2048142242915a31d35844fb311e0e53fcca590c3a0a40dcf1b841fa09eb" +checksum = "cc4e190f5d26ca7051642629da2c52fc03bde85a03197c99408dcd291734c855" dependencies = [ "equivalent", "hashbrown 0.17.1", @@ -3909,7 +3942,7 @@ version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4cc00ea907cab49550b7da656f80ebb97be1b997d931fbcd28d39734e17ce592" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "inotify-sys", "libc", ] @@ -3964,11 +3997,11 @@ dependencies = [ [[package]] name = "io-uring" -version = "0.7.14" +version = "0.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d64d8ca234d152948ceaede1f419b6a83983a5ecccaac05fb337a809c96d3aa6" +checksum = "ed3bd0ecfbb87805f538bb7b32e5239ca0763890c623e349860ecba69469f2bb" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "cfg-if", "libc", ] @@ -4032,9 +4065,9 @@ checksum = "4d3667095d64c3ecffc96463a21157b04bf3e252f6e8d5750b20c02e33c194e3" [[package]] name = "jiff" -version = "0.2.35" +version = "0.2.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "668b7183bd07af9a4885f5c35b0cc5c83c4607a913c16b7e17291832910d2dcc" +checksum = "0ab1baf72f08796de0260609515130699b890ac25f30e610ad894bc5856cafdb" dependencies = [ "defmt", "jiff-core", @@ -4049,11 +4082,12 @@ dependencies = [ [[package]] name = "jiff-core" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7feca88439efe53da3754500c1851dedf3cb36c524dd5cf8225cc0794de95d09" +checksum = "5e52fe76043ccecc9005d2305ebaadf7d7fc0cc89ca6baa10a94d6bc68c7128c" dependencies = [ "defmt", + "log", ] [[package]] @@ -4069,9 +4103,9 @@ dependencies = [ [[package]] name = "jiff-static" -version = "0.2.35" +version = "0.2.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a69dcb3a21cfb32ce1cd056169337ca284af0766dd766e7878819b251a49204" +checksum = "378268a1116ad67ae6228701118ac9f491d78fda38a40a1f1a9e1348de6f7212" dependencies = [ "jiff-core", "proc-macro2", @@ -4164,9 +4198,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.104" +version = "0.3.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e0c1080212aad755ea003d18543e8768dd432c48819efd73a7bf1e39b7a5a3a" +checksum = "ce57d20d1ea864ce2ac172ab472d409214f4fd359f0b2a2775abdf522e2af99e" dependencies = [ "cfg-if", "futures-util", @@ -4368,7 +4402,7 @@ version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fbe853b403ae61a04233030ae8a79d94975281ed9770a1f9e246732b534b28d" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "serde", ] @@ -4414,7 +4448,7 @@ version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07293a4e297ac234359b510362495713f75ea345d5307140414f20c69ffeb087" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "libc", ] @@ -4466,13 +4500,13 @@ checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" [[package]] name = "libcosmic" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#a401af8b1c54a8abd393b8c5b7c8809402f83850" +source = "git+https://github.com/pop-os/libcosmic.git#e793c4552b75b9ced6a69bc7ff565d6a07477137" dependencies = [ "apply", "ashpd 0.12.3", "auto_enums", "build_helpers", - "cosmic-client-toolkit", + "cosmic-client-toolkit 0.2.0 (git+https://github.com/pop-os/cosmic-protocols?rev=32283d7)", "cosmic-config", "cosmic-freedesktop-icons", "cosmic-settings-config", @@ -4547,14 +4581,14 @@ checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" [[package]] name = "libredox" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d8f1ea3f21fd3405dcaf6c9b5c1630af9afc422d9073ea39c5f6d6c772e08ed" +checksum = "6480ccc157a1389bb2e4891b24751b0f798ba640d22386f23143fbcc89da195a" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "libc", "plain", - "redox_syscall 0.9.3", + "redox_syscall 0.9.4", ] [[package]] @@ -4702,9 +4736,9 @@ dependencies = [ [[package]] name = "lyon_tessellation" -version = "1.0.21" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dabea159dc6eea9171a541b458134b70ca95e3162d068132b2b3b9bc01aad06e" +checksum = "43b8dcf906637ecef61b3c0740c7a4e7f27caeb31257cfac0cc579ce15be6005" dependencies = [ "float_next_after", "lyon_path", @@ -4811,7 +4845,7 @@ version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7047791b5bc903b8cd963014b355f71dc9864a9a0b727057676c1dcae5cbc15" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "block", "core-graphics-types 0.2.0", "foreign-types", @@ -4906,14 +4940,14 @@ checksum = "618f667225063219ddfc61251087db8a9aec3c3f0950c916b614e403486f1135" dependencies = [ "arrayvec", "bit-set", - "bitflags 2.13.1", + "bitflags 2.13.2", "cfg-if", "cfg_aliases", "codespan-reporting", "half", "hashbrown 0.16.1", "hexf-parse", - "indexmap 2.14.1", + "indexmap 2.14.2", "libm", "log", "num-traits", @@ -4930,7 +4964,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "jni-sys 0.3.1", "log", "ndk-sys", @@ -4966,7 +5000,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "cfg-if", "cfg_aliases", "libc", @@ -5013,7 +5047,7 @@ version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "fsevent-sys", "inotify", "kqueue", @@ -5058,7 +5092,7 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42b8cfee0e339a0337359f3c88165702ac6e600dc01c0cc9579a92d62b08477a" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", ] [[package]] @@ -5220,7 +5254,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "block2 0.5.1", "libc", "objc2 0.5.2", @@ -5236,7 +5270,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "block2 0.6.2", "objc2 0.6.4", "objc2-core-foundation", @@ -5249,7 +5283,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "block2 0.5.1", "objc2 0.5.2", "objc2-foundation 0.2.2", @@ -5261,7 +5295,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "block2 0.6.2", "dispatch2", "objc2 0.6.4", @@ -5273,7 +5307,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "libc", "objc2-core-foundation", ] @@ -5296,7 +5330,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d425caf1df73233f29fd8a5c3e5edbc30d2d4307870f802d18f00d83dc5141a6" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "objc2-core-foundation", "objc2-core-graphics", ] @@ -5313,7 +5347,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "block2 0.5.1", "libc", "objc2 0.5.2", @@ -5325,7 +5359,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "block2 0.6.2", "libc", "objc2 0.6.4", @@ -5338,7 +5372,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "block2 0.5.1", "objc2 0.5.2", "objc2-foundation 0.2.2", @@ -5350,7 +5384,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "block2 0.5.1", "objc2 0.5.2", "objc2-foundation 0.2.2", @@ -5363,7 +5397,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d87d638e33c06f577498cbcc50491496a3ed4246998a7fbba7ccb98b1e7eab22" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "objc2 0.6.4", "objc2-core-foundation", "objc2-foundation 0.3.2", @@ -5392,9 +5426,9 @@ checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" [[package]] name = "open" -version = "5.4.3" +version = "5.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c603ab8300cf18bc3b14146b19fe3dfcc4843ae5a400cd0e7a30b95aa366634" +checksum = "aa576c76302b7b808eecc68061e67336c47833ef9d22caa74dda10fa9675eebc" dependencies = [ "is-wsl", "libc", @@ -5437,11 +5471,11 @@ dependencies = [ [[package]] name = "ordermap" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1288aecc871a8edf4d48083fb911efe2716700ba47bee1854c03466ff3627de" +checksum = "16a756ddcdeb6c0efc8927bdf0ed112885815a35ba350472a467be5104f01ca1" dependencies = [ - "indexmap 2.14.1", + "indexmap 2.14.2", "serde", "serde_core", ] @@ -5702,7 +5736,7 @@ version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60769b8b31b2a9f263dae2776c37b1b28ae246943cf719eb6946a1db05128a61" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "crc32fast", "fdeflate", "flate2", @@ -5737,9 +5771,9 @@ checksum = "05c8b63e8d9609db387f0324918f81d68fe27748f084ef092fb35954d0539a85" [[package]] name = "portable-atomic-util" -version = "0.2.7" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2a106d1259c23fac8e543272398ae0e3c0b8d33c88ed73d0cc71b0f1d902618" +checksum = "10ab3eb7f3becc3a1cbc4f2c6f20267996cfc1a6467a873763411b136a122715" dependencies = [ "portable-atomic", ] @@ -5763,9 +5797,9 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppmd-rust" -version = "1.4.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e9219bcb9d7aca6b2f63c83cf100cf78bcd619ac46e6ecbd0dd90869a39345d" +checksum = "196a7c80b9a7652aba7cc070827516c2abe4ccdf53d128e1944003cf5726cff1" [[package]] name = "ppv-lite86" @@ -5810,7 +5844,7 @@ dependencies = [ "proc-macro-error-attr3", "proc-macro2", "quote", - "syn 3.0.4", + "syn 3.0.5", ] [[package]] @@ -5841,7 +5875,7 @@ version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "25485360a54d6861439d60facef26de713b1e126bf015ec8f98239467a2b82f7" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "chrono", "flate2", "procfs-core", @@ -5854,7 +5888,7 @@ version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6401bf7b6af22f78b563665d15a22e9aef27775b79b149a66ca022468a4e405" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "chrono", "hex", ] @@ -6098,7 +6132,7 @@ version = "11.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "498cd0dc59d73224351ee52a95fee0f1a617a2eae0e7d9d720cc622c73a54186" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", ] [[package]] @@ -6145,7 +6179,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "046a7d674daf459825b32f5062056d6882db0d2f5a479fbd76ccfc870ac18709" dependencies = [ "bytemuck", - "font-types 0.12.4", + "font-types 0.12.5", "once_cell", ] @@ -6177,7 +6211,7 @@ version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c5018d583d6d2f5499352aea8d177e9067d1eb03ab17c78169d5ba7a30001b15" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "libredox", ] @@ -6187,16 +6221,16 @@ version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", ] [[package]] name = "redox_syscall" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d678d17679829e73d371e96880897e98fee2ded7acc0a50bdf8af2affa4b2fe5" +checksum = "737970939a87c6fa31e7acad13307bccbb017a073b695b6089a2c484f929e20e" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", ] [[package]] @@ -6238,7 +6272,7 @@ checksum = "92ecd8964f8453721699a1ed72037b0db49ce2f5a5138486ee89bed6f67cdf3a" dependencies = [ "proc-macro2", "quote", - "syn 3.0.4", + "syn 3.0.5", ] [[package]] @@ -6332,8 +6366,8 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "db09040cc89e461f1a265139777a2bde7f8d8c67c4936f700c63ce3e2904d468" dependencies = [ - "base64", - "bitflags 2.13.1", + "base64 0.22.1", + "bitflags 2.13.2", "serde", "serde_derive", "unicode-ident", @@ -6345,7 +6379,7 @@ version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81116b9531d61eabc41aeb228e4b6b2435bcca3233b98cf3b3077d4e6e9debb3" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "once_cell", "serde", "serde_derive", @@ -6421,7 +6455,7 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "errno", "libc", "linux-raw-sys 0.4.15", @@ -6434,7 +6468,7 @@ version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "errno", "libc", "linux-raw-sys 0.12.1", @@ -6453,7 +6487,7 @@ version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd3c7c96f8a08ee34eff8857b11b49b07d71d1c3f4e88f8a88d4c9e9f90b1702" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "bytemuck", "core_maths", "log", @@ -6562,7 +6596,7 @@ checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" dependencies = [ "proc-macro2", "quote", - "syn 3.0.4", + "syn 3.0.5", ] [[package]] @@ -6571,7 +6605,7 @@ version = "1.0.151" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14" dependencies = [ - "indexmap 2.14.1", + "indexmap 2.14.2", "itoa", "memchr", "serde", @@ -6587,7 +6621,7 @@ checksum = "8d3b1629de253c70a0508c3899572da79ca359fdab27c7920ff00406df418906" dependencies = [ "proc-macro2", "quote", - "syn 3.0.4", + "syn 3.0.5", ] [[package]] @@ -6601,16 +6635,16 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.22.0" +version = "3.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee78f1fbe43ac4a0e47aadb3dbd357b69eb0d3793e948624cd03dd2750ab1c0a" +checksum = "935177bb8c0cd8ca1a4e6d1a2ac8988bea69cab4f9d3a31311e012ad27868ea4" dependencies = [ - "base64", + "base64 0.23.1", "bs58", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.14.1", + "indexmap 2.14.2", "jiff", "schemars 0.9.0", "schemars 1.2.2", @@ -6622,14 +6656,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.22.0" +version = "3.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8705578779c2b6bd90d84d66eb2e206b708b1a4d7b9f17641b293545bf1c7e46" +checksum = "1d607aa01a3cb0ad757d6fd216136910db3c97b102fe686585689615a02dbcdc" dependencies = [ - "darling 0.23.0", + "darling 0.24.1", "proc-macro2", "quote", - "syn 2.0.119", + "syn 3.0.5", ] [[package]] @@ -6790,9 +6824,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.16.0" +version = "1.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9be42f50aa861c555654aa3a37f52f4b1074bacf4e48fe0ef7fa584e80f1f0f" +checksum = "ba467056f1b547ed52077911161fc86985becbc60e8e1857c8a144dab0def891" [[package]] name = "smithay-client-toolkit" @@ -6800,7 +6834,7 @@ version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0512da38f5e2b31201a93524adb8d3136276fa4fe4aafab4e1f727a82b534cc0" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "bytemuck", "calloop", "calloop-wayland-source", @@ -6900,7 +6934,7 @@ version = "0.3.0+sdk-1.3.268.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eda41003dc44290527a59b13432d4a0379379fa074b70174882adfbdfd917844" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", ] [[package]] @@ -6970,9 +7004,9 @@ dependencies = [ [[package]] name = "syn" -version = "3.0.4" +version = "3.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6275cddf4610d1775e6d1fe9469b2e77d0f39fd98fb7450901b821e0c53649f" +checksum = "12df2e0110f65b775f769bb17ef989067a1d931b2eb822bd4346631eeada89f9" dependencies = [ "proc-macro2", "quote", @@ -7018,7 +7052,7 @@ dependencies = [ "cfg-expr", "heck 0.5.0", "pkg-config", - "toml 1.1.5+spec-1.1.0", + "toml 1.1.6+spec-1.1.0", "version-compare", ] @@ -7165,7 +7199,7 @@ checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af" dependencies = [ "proc-macro2", "quote", - "syn 3.0.4", + "syn 3.0.5", ] [[package]] @@ -7319,18 +7353,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.12.0" +version = "1.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb4ebadaa0af04fab11ae01eb5f9fdb5f9c5b875506e210e71c07873528baa7f" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" +checksum = "fd3ca314f692efd6c868f8408f53fe444634a845f96c028b97d35f6a1f79f0ee" [[package]] name = "tokio" @@ -7357,7 +7382,7 @@ checksum = "78773a2a397f451582ce068015985c33193cf6dea8b74d2a639fe457b2f07b0e" dependencies = [ "proc-macro2", "quote", - "syn 3.0.4", + "syn 3.0.5", ] [[package]] @@ -7382,11 +7407,11 @@ dependencies = [ [[package]] name = "toml" -version = "1.1.5+spec-1.1.0" +version = "1.1.6+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12c0ba9680044b4ce98d391a62094047eada0d64860b80166c39f4a6b5640785" +checksum = "920602543f0911ab71da12c50d59701da54c196d1a2bf5cb4b75667f137a406a" dependencies = [ - "indexmap 2.14.1", + "indexmap 2.14.2", "serde_core", "serde_spanned", "toml_datetime", @@ -7406,11 +7431,11 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.25.13+spec-1.1.0" +version = "0.25.15+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6975367e4d2ef766d86af01ffad14b622fecc8d4357a998fbc4deb6e9bacaf9b" +checksum = "1340ea94a5856333492c9064b02c778b191dd2c853778d9609debdcdfea3a614" dependencies = [ - "indexmap 2.14.1", + "indexmap 2.14.2", "toml_datetime", "toml_parser", "winnow", @@ -7495,9 +7520,9 @@ dependencies = [ [[package]] name = "trash" -version = "5.2.6" +version = "5.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7602e0c7d66ec2d92a8c917219fbc7894039efa2063b9064260110828a356f46" +checksum = "be89b3fe156965d29ac4f8522f3a640c655affdd9f21cb4f36857f0c92c00317" dependencies = [ "chrono", "libc", @@ -7508,7 +7533,7 @@ dependencies = [ "percent-encoding", "scopeguard", "urlencoding", - "windows 0.56.0", + "windows 0.62.2", ] [[package]] @@ -7677,7 +7702,7 @@ version = "0.45.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "80be9b06fbae3b8b303400ab20778c80bbaf338f563afe567cf3c9eea17b47ef" dependencies = [ - "base64", + "base64 0.22.1", "data-url", "flate2", "fontdb", @@ -7718,9 +7743,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.26.0" +version = "1.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5772d71c9be8a8a6ac2117d949c5b224c1b72241bb611d9a3012edcf8af7812" +checksum = "2ef6dac1e96601b4fb3acccccff2139741fcb757cb9a36089bf5be91cfb285ce" dependencies = [ "getrandom 0.4.3", "js-sys", @@ -7794,9 +7819,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.127" +version = "0.2.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b70935747edd64d89de3efa29d73789b806c15798f8e7dca4d8ac356b50ce70" +checksum = "aecb87a33d3b0c5e3b7aa46336eaf486cffafbd281b195e4c8b80d50df2351bf" dependencies = [ "cfg-if", "once_cell", @@ -7807,9 +7832,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.77" +version = "0.4.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b7777d5cc23d0e91404e53ce2d5e8ec7acae3026b16233dba62cd3246457950" +checksum = "6ef4c5d3d2cdf5c54f4231181768f5510842e350db025faf1f7163b1030ed928" dependencies = [ "js-sys", "wasm-bindgen", @@ -7817,9 +7842,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.127" +version = "0.2.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77775f8f3f7217702089053b94958f8f54061a3f663417df76e19cbdcca29bc1" +checksum = "a690d511e3c1a8b3a55e33511e3c2c00c78415cd23650f32b808627f5696b9ed" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -7827,22 +7852,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.127" +version = "0.2.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e11d33f857dc2fb11b8bc75aee111aa9cbeb12cd9f25efd3d4c2a3dd4e235284" +checksum = "411e4887f0071ef2d2164a9d5fdf2d20efbef78fccd3a78b0c10a1dc5295e48a" dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 2.0.119", + "syn 3.0.5", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.127" +version = "0.2.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef64dbcc55df09c7e5a46182d181c2cfa3e925f3da937ea764728b4bbb9dcbf" +checksum = "81941cd78d0c92026c33e5e01312845a4cb1e9af3407f9134b100dd03144103e" dependencies = [ "unicode-ident", ] @@ -7881,7 +7906,7 @@ version = "0.31.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3c36a0f861ad76d0901f2800b46321410d9f73f2ea88aac0650d86c32688073" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "rustix 1.1.4", "wayland-backend", "wayland-scanner", @@ -7893,7 +7918,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "cursor-icon", "wayland-backend", ] @@ -7915,7 +7940,7 @@ version = "0.32.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23d0c813de3daa2ed6520af85a3bd49b0e722a3078506899aa9686fea58dc4b6" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "wayland-backend", "wayland-client", "wayland-scanner", @@ -7928,7 +7953,7 @@ version = "20250721.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "40a1f863128dcaaec790d7b4b396cc9b9a7a079e878e18c47e6c2d2c5a8dcbb1" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "wayland-backend", "wayland-client", "wayland-protocols", @@ -7941,7 +7966,7 @@ version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e9567599ef23e09b8dad6e429e5738d4509dfc46b3b21f32841a304d16b29c8" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "wayland-backend", "wayland-client", "wayland-protocols", @@ -7954,7 +7979,7 @@ version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b6d8cf1eb2c1c31ed1f5643c88a6e53538129d4af80030c8cabd1f9fa884d91" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "wayland-backend", "wayland-client", "wayland-protocols", @@ -7967,7 +7992,7 @@ version = "0.3.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eb04e52f7836d7c7976c78ca0250d61e33873c34156a2a1fc9474828ec268234" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "wayland-backend", "wayland-client", "wayland-protocols", @@ -7992,7 +8017,7 @@ version = "0.31.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dde9c29be0f723a573977de51ee455bf3dfa03652730a74f9dd3b337e374d75" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "downcast-rs", "rustix 1.1.4", "wayland-backend", @@ -8013,9 +8038,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.104" +version = "0.3.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c435338968042f4f59a557f690a253676d47ce13ceb55d70100e7facf6620a30" +checksum = "9fbddc4a036f00ec4f18c83445bd3115cb306a91da554919a099d9222fe4a7f8" dependencies = [ "js-sys", "wasm-bindgen", @@ -8044,7 +8069,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9cb534d5ffd109c7d1135f34cdae29e60eab94855a625dcfe1705f8bc7ad79f" dependencies = [ "arrayvec", - "bitflags 2.13.1", + "bitflags 2.13.2", "bytemuck", "cfg-if", "cfg_aliases", @@ -8076,12 +8101,12 @@ dependencies = [ "arrayvec", "bit-set", "bit-vec", - "bitflags 2.13.1", + "bitflags 2.13.2", "bytemuck", "cfg_aliases", "document-features", "hashbrown 0.16.1", - "indexmap 2.14.1", + "indexmap 2.14.2", "log", "naga", "once_cell", @@ -8136,7 +8161,7 @@ dependencies = [ "arrayvec", "ash", "bit-set", - "bitflags 2.13.1", + "bitflags 2.13.2", "block", "bytemuck", "cfg-if", @@ -8180,7 +8205,7 @@ version = "28.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e18308757e594ed2cd27dddbb16a139c42a683819d32a2e0b1b0167552f5840c" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "bytemuck", "js-sys", "log", @@ -8239,16 +8264,6 @@ dependencies = [ "thiserror 1.0.69", ] -[[package]] -name = "windows" -version = "0.56.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1de69df01bdf1ead2f4ac895dc77c9351aefff65b2f3db429a343f9cbf05e132" -dependencies = [ - "windows-core 0.56.0", - "windows-targets 0.52.6", -] - [[package]] name = "windows" version = "0.61.3" @@ -8292,26 +8307,14 @@ dependencies = [ "windows-core 0.62.2", ] -[[package]] -name = "windows-core" -version = "0.56.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4698e52ed2d08f8658ab0c39512a7c00ee5fe2688c65f8c0a4f06750d729f2a6" -dependencies = [ - "windows-implement 0.56.0", - "windows-interface 0.56.0", - "windows-result 0.1.2", - "windows-targets 0.52.6", -] - [[package]] name = "windows-core" version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" dependencies = [ - "windows-implement 0.60.2", - "windows-interface 0.59.3", + "windows-implement", + "windows-interface", "windows-link 0.1.3", "windows-result 0.3.4", "windows-strings 0.4.2", @@ -8323,8 +8326,8 @@ version = "0.62.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" dependencies = [ - "windows-implement 0.60.2", - "windows-interface 0.59.3", + "windows-implement", + "windows-interface", "windows-link 0.2.1", "windows-result 0.4.1", "windows-strings 0.5.1", @@ -8352,17 +8355,6 @@ dependencies = [ "windows-threading 0.2.1", ] -[[package]] -name = "windows-implement" -version = "0.56.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6fc35f58ecd95a9b71c4f2329b911016e6bec66b3f2e6a4aad86bd2e99e2f9b" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.119", -] - [[package]] name = "windows-implement" version = "0.60.2" @@ -8374,17 +8366,6 @@ dependencies = [ "syn 2.0.119", ] -[[package]] -name = "windows-interface" -version = "0.56.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08990546bf4edef8f431fa6326e032865f27138718c587dc21bc0265bbcb57cc" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.119", -] - [[package]] name = "windows-interface" version = "0.59.3" @@ -8428,15 +8409,6 @@ dependencies = [ "windows-link 0.2.1", ] -[[package]] -name = "windows-result" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" -dependencies = [ - "windows-targets 0.52.6", -] - [[package]] name = "windows-result" version = "0.3.4" @@ -8736,7 +8708,7 @@ name = "winit" version = "0.31.0-beta.2" source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "cfg_aliases", "cursor-icon", "dpi", @@ -8763,7 +8735,7 @@ version = "0.31.0-beta.2" source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "android-activity", - "bitflags 2.13.1", + "bitflags 2.13.2", "dpi", "ndk", "raw-window-handle", @@ -8777,7 +8749,7 @@ name = "winit-appkit" version = "0.31.0-beta.2" source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "block2 0.6.2", "dispatch2", "dpi", @@ -8814,7 +8786,7 @@ name = "winit-core" version = "0.31.0-beta.2" source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "cursor-icon", "dpi", "keyboard-types", @@ -8828,7 +8800,7 @@ name = "winit-orbital" version = "0.31.0-beta.2" source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "dpi", "libredox", "orbclient", @@ -8844,7 +8816,7 @@ name = "winit-uikit" version = "0.31.0-beta.2" source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "block2 0.6.2", "dispatch2", "dpi", @@ -8865,7 +8837,7 @@ version = "0.31.0-beta.2" source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "ahash", - "bitflags 2.13.1", + "bitflags 2.13.2", "calloop", "cursor-icon", "dpi", @@ -8891,7 +8863,7 @@ version = "0.31.0-beta.2" source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ "atomic-waker", - "bitflags 2.13.1", + "bitflags 2.13.2", "concurrent-queue", "cursor-icon", "dpi", @@ -8912,7 +8884,7 @@ name = "winit-win32" version = "0.31.0-beta.2" source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "cursor-icon", "dpi", "raw-window-handle", @@ -8928,7 +8900,7 @@ name = "winit-x11" version = "0.31.0-beta.2" source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "bytemuck", "calloop", "cursor-icon", @@ -9104,7 +9076,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5" dependencies = [ - "bitflags 2.13.1", + "bitflags 2.13.2", "dlib", "log", "once_cell", @@ -9308,7 +9280,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 3.0.4", + "syn 3.0.5", "zbus_names 4.3.4", "zvariant 5.15.0", "zvariant_utils 4.2.0", @@ -9365,18 +9337,18 @@ checksum = "6df3dc4292935e51816d896edcd52aa30bc297907c26167fec31e2b0c6a32524" [[package]] name = "zerocopy" -version = "0.8.56" +version = "0.8.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "556764e583adb45a9f8d413c2a147fa7e8d821e48e12b14fd560b607998b75eb" +checksum = "d35102a9f36d089ccae9e4c6802bc118be4487b80aaffc0ab4e0cf5ce92d2873" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.56" +version = "0.8.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2ab42fc20575779bd240faa45f94a74256f755c0fa9e89f0ede20d91d0cdfc1" +checksum = "146c01f5ab44258da43cf276c74a2763db2ff3969c9c652c3f2de07041d0b2bc" dependencies = [ "proc-macro2", "quote", @@ -9442,7 +9414,7 @@ checksum = "34df6fc39dbd26ddc9c10e6a2984476e13acce22e64e4487636ef494369225da" dependencies = [ "proc-macro2", "quote", - "syn 3.0.4", + "syn 3.0.5", ] [[package]] @@ -9459,7 +9431,7 @@ dependencies = [ "flate2", "getrandom 0.4.3", "hmac", - "indexmap 2.14.1", + "indexmap 2.14.2", "lzma-rust2", "memchr", "pbkdf2", @@ -9507,18 +9479,18 @@ dependencies = [ [[package]] name = "zstd-safe" -version = "7.2.4" +version = "7.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d" +checksum = "64d80649ab6db9d9f6f9c80a40becd948eda4714a0a5ac8c4d157a32231c7882" dependencies = [ "zstd-sys", ] [[package]] name = "zstd-sys" -version = "2.0.16+zstd.1.5.7" +version = "2.1.0+zstd.1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748" +checksum = "0ef0a8027ec3ee71300ab3bcbcd0393f434aa72b91ca6d635a39941deae8eea0" dependencies = [ "cc", "pkg-config", @@ -9614,7 +9586,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 3.0.4", + "syn 3.0.5", "zvariant_utils 4.2.0", ] @@ -9638,6 +9610,6 @@ dependencies = [ "proc-macro2", "quote", "serde", - "syn 3.0.4", + "syn 3.0.5", "winnow", ] diff --git a/Cargo.toml b/Cargo.toml index 363ed44..7a6a3e7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cosmic-files" -version = "1.8.0" +version = "1.9.0" authors = ["Jeremy Soller "] edition = "2024" license = "GPL-3.0-only" diff --git a/cosmic-files-applet/Cargo.toml b/cosmic-files-applet/Cargo.toml index ea90c47..f188eea 100644 --- a/cosmic-files-applet/Cargo.toml +++ b/cosmic-files-applet/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cosmic-files-applet" -version = "1.8.0" +version = "1.9.0" edition = "2024" [dependencies] diff --git a/debian/changelog b/debian/changelog index 81751e5..48a34d7 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +cosmic-files (1.9.0) noble; urgency=medium + + * Epoch 1.9.0 version update + + -- Michael Murphy Mon, 14 Sep 2026 20:35:19 +0200 + cosmic-files (1.8.0) noble; urgency=medium * Epoch 1.8.0 version update diff --git a/debian/source/options b/debian/source/options index 5d4ff73..2f8c4a1 100644 --- a/debian/source/options +++ b/debian/source/options @@ -1,4 +1,6 @@ tar-ignore=.github -tar-ignore=.vscode +tar-ignore=target/.rustc_info.json +tar-ignore=target/CACHEDIR.TAG +tar-ignore=target/debug +tar-ignore=target/release tar-ignore=vendor -tar-ignore=target \ No newline at end of file From d6e7618b76e52a12bccc3c2adf5cad0820ff7101 Mon Sep 17 00:00:00 2001 From: Michael Aaron Murphy Date: Tue, 15 Sep 2026 17:38:38 +0200 Subject: [PATCH 28/34] chore: update pinned cosmic-protocols --- Cargo.lock | 83 ++++++++++++++++++------------------------------------ Cargo.toml | 2 +- 2 files changed, 29 insertions(+), 56 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 718248c..b274284 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -832,7 +832,7 @@ dependencies = [ [[package]] name = "build_helpers" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#e793c4552b75b9ced6a69bc7ff565d6a07477137" +source = "git+https://github.com/pop-os/libcosmic.git#d9431dc3670575602385e1e2523600ba5315508c" dependencies = [ "cfg_aliases", ] @@ -1349,26 +1349,13 @@ dependencies = [ "libm", ] -[[package]] -name = "cosmic-client-toolkit" -version = "0.2.0" -source = "git+https://github.com/pop-os/cosmic-protocols?rev=32283d7#32283d76a8d0342da74c4cc022a533c52dcf378f" -dependencies = [ - "bitflags 2.13.2", - "cosmic-protocols 0.2.0 (git+https://github.com/pop-os/cosmic-protocols?rev=32283d7)", - "libc", - "smithay-client-toolkit", - "wayland-client", - "wayland-protocols", -] - [[package]] name = "cosmic-client-toolkit" version = "0.2.0" source = "git+https://github.com/pop-os/cosmic-protocols?rev=c0cff4d#c0cff4db14c37ed954983158e4055aa94c7741d9" dependencies = [ "bitflags 2.13.2", - "cosmic-protocols 0.2.0 (git+https://github.com/pop-os/cosmic-protocols?rev=c0cff4d)", + "cosmic-protocols", "libc", "smithay-client-toolkit", "wayland-client", @@ -1378,7 +1365,7 @@ dependencies = [ [[package]] name = "cosmic-config" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#e793c4552b75b9ced6a69bc7ff565d6a07477137" +source = "git+https://github.com/pop-os/libcosmic.git#d9431dc3670575602385e1e2523600ba5315508c" dependencies = [ "atomicwrites", "cosmic-config-derive", @@ -1399,7 +1386,7 @@ dependencies = [ [[package]] name = "cosmic-config-derive" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#e793c4552b75b9ced6a69bc7ff565d6a07477137" +source = "git+https://github.com/pop-os/libcosmic.git#d9431dc3670575602385e1e2523600ba5315508c" dependencies = [ "quote", "syn 2.0.119", @@ -1414,7 +1401,7 @@ dependencies = [ "bstr", "bzip2", "compio", - "cosmic-client-toolkit 0.2.0 (git+https://github.com/pop-os/cosmic-protocols?rev=32283d7)", + "cosmic-client-toolkit", "cosmic-mime-apps", "dirs 6.0.0", "fastrand", @@ -1508,20 +1495,6 @@ dependencies = [ "xdg", ] -[[package]] -name = "cosmic-protocols" -version = "0.2.0" -source = "git+https://github.com/pop-os/cosmic-protocols?rev=32283d7#32283d76a8d0342da74c4cc022a533c52dcf378f" -dependencies = [ - "bitflags 2.13.2", - "wayland-backend", - "wayland-client", - "wayland-protocols", - "wayland-protocols-wlr", - "wayland-scanner", - "wayland-server", -] - [[package]] name = "cosmic-protocols" version = "0.2.0" @@ -1584,7 +1557,7 @@ dependencies = [ [[package]] name = "cosmic-theme" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#e793c4552b75b9ced6a69bc7ff565d6a07477137" +source = "git+https://github.com/pop-os/libcosmic.git#d9431dc3670575602385e1e2523600ba5315508c" dependencies = [ "almost", "configparser", @@ -3147,7 +3120,7 @@ dependencies = [ [[package]] name = "iced" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#e793c4552b75b9ced6a69bc7ff565d6a07477137" +source = "git+https://github.com/pop-os/libcosmic.git#d9431dc3670575602385e1e2523600ba5315508c" dependencies = [ "build_helpers", "dnd", @@ -3169,7 +3142,7 @@ dependencies = [ [[package]] name = "iced_accessibility" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic.git#e793c4552b75b9ced6a69bc7ff565d6a07477137" +source = "git+https://github.com/pop-os/libcosmic.git#d9431dc3670575602385e1e2523600ba5315508c" dependencies = [ "accesskit", "accesskit_winit", @@ -3178,12 +3151,12 @@ dependencies = [ [[package]] name = "iced_core" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#e793c4552b75b9ced6a69bc7ff565d6a07477137" +source = "git+https://github.com/pop-os/libcosmic.git#d9431dc3670575602385e1e2523600ba5315508c" dependencies = [ "bitflags 2.13.2", "build_helpers", "bytes", - "cosmic-client-toolkit 0.2.0 (git+https://github.com/pop-os/cosmic-protocols?rev=c0cff4d)", + "cosmic-client-toolkit", "dnd", "glam", "lilt", @@ -3204,7 +3177,7 @@ dependencies = [ [[package]] name = "iced_debug" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#e793c4552b75b9ced6a69bc7ff565d6a07477137" +source = "git+https://github.com/pop-os/libcosmic.git#d9431dc3670575602385e1e2523600ba5315508c" dependencies = [ "iced_core", "iced_futures", @@ -3214,7 +3187,7 @@ dependencies = [ [[package]] name = "iced_futures" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#e793c4552b75b9ced6a69bc7ff565d6a07477137" +source = "git+https://github.com/pop-os/libcosmic.git#d9431dc3670575602385e1e2523600ba5315508c" dependencies = [ "futures", "iced_core", @@ -3228,7 +3201,7 @@ dependencies = [ [[package]] name = "iced_graphics" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#e793c4552b75b9ced6a69bc7ff565d6a07477137" +source = "git+https://github.com/pop-os/libcosmic.git#d9431dc3670575602385e1e2523600ba5315508c" dependencies = [ "bitflags 2.13.2", "bytemuck", @@ -3249,7 +3222,7 @@ dependencies = [ [[package]] name = "iced_program" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#e793c4552b75b9ced6a69bc7ff565d6a07477137" +source = "git+https://github.com/pop-os/libcosmic.git#d9431dc3670575602385e1e2523600ba5315508c" dependencies = [ "iced_graphics", "iced_runtime", @@ -3258,7 +3231,7 @@ dependencies = [ [[package]] name = "iced_renderer" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#e793c4552b75b9ced6a69bc7ff565d6a07477137" +source = "git+https://github.com/pop-os/libcosmic.git#d9431dc3670575602385e1e2523600ba5315508c" dependencies = [ "iced_graphics", "iced_tiny_skia", @@ -3270,11 +3243,11 @@ dependencies = [ [[package]] name = "iced_runtime" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#e793c4552b75b9ced6a69bc7ff565d6a07477137" +source = "git+https://github.com/pop-os/libcosmic.git#d9431dc3670575602385e1e2523600ba5315508c" dependencies = [ "build_helpers", "bytes", - "cosmic-client-toolkit 0.2.0 (git+https://github.com/pop-os/cosmic-protocols?rev=c0cff4d)", + "cosmic-client-toolkit", "dnd", "iced_core", "iced_futures", @@ -3286,7 +3259,7 @@ dependencies = [ [[package]] name = "iced_tiny_skia" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#e793c4552b75b9ced6a69bc7ff565d6a07477137" +source = "git+https://github.com/pop-os/libcosmic.git#d9431dc3670575602385e1e2523600ba5315508c" dependencies = [ "bytemuck", "cosmic-text", @@ -3303,13 +3276,13 @@ dependencies = [ [[package]] name = "iced_wgpu" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#e793c4552b75b9ced6a69bc7ff565d6a07477137" +source = "git+https://github.com/pop-os/libcosmic.git#d9431dc3670575602385e1e2523600ba5315508c" dependencies = [ "as-raw-xcb-connection", "bitflags 2.13.2", "build_helpers", "bytemuck", - "cosmic-client-toolkit 0.2.0 (git+https://github.com/pop-os/cosmic-protocols?rev=c0cff4d)", + "cosmic-client-toolkit", "cryoglyph", "futures", "glam", @@ -3335,10 +3308,10 @@ dependencies = [ [[package]] name = "iced_widget" version = "0.14.2" -source = "git+https://github.com/pop-os/libcosmic.git#e793c4552b75b9ced6a69bc7ff565d6a07477137" +source = "git+https://github.com/pop-os/libcosmic.git#d9431dc3670575602385e1e2523600ba5315508c" dependencies = [ "build_helpers", - "cosmic-client-toolkit 0.2.0 (git+https://github.com/pop-os/cosmic-protocols?rev=c0cff4d)", + "cosmic-client-toolkit", "dnd", "iced_renderer", "iced_runtime", @@ -3354,10 +3327,10 @@ dependencies = [ [[package]] name = "iced_winit" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#e793c4552b75b9ced6a69bc7ff565d6a07477137" +source = "git+https://github.com/pop-os/libcosmic.git#d9431dc3670575602385e1e2523600ba5315508c" dependencies = [ "build_helpers", - "cosmic-client-toolkit 0.2.0 (git+https://github.com/pop-os/cosmic-protocols?rev=c0cff4d)", + "cosmic-client-toolkit", "cursor-icon", "dnd", "iced_debug", @@ -4500,13 +4473,13 @@ checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" [[package]] name = "libcosmic" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#e793c4552b75b9ced6a69bc7ff565d6a07477137" +source = "git+https://github.com/pop-os/libcosmic.git#d9431dc3670575602385e1e2523600ba5315508c" dependencies = [ "apply", "ashpd 0.12.3", "auto_enums", "build_helpers", - "cosmic-client-toolkit 0.2.0 (git+https://github.com/pop-os/cosmic-protocols?rev=32283d7)", + "cosmic-client-toolkit", "cosmic-config", "cosmic-freedesktop-icons", "cosmic-settings-config", @@ -9446,9 +9419,9 @@ dependencies = [ [[package]] name = "zlib-rs" -version = "0.6.7" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34b31d188d9d685a4f9c7b46d6e36631b07058d2cfe190267adce54dc230bf12" +checksum = "b268e58e7c693d7c271f93ffc4ba3b380412554231c85bf61ca7af91042a4112" [[package]] name = "zmij" diff --git a/Cargo.toml b/Cargo.toml index 7a6a3e7..92fca4a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,7 @@ anyhow = "1" jiff = "0.2" jiff-icu = "0.2" icu = { version = "2.2.0", features = ["compiled_data"] } -cctk = { git = "https://github.com/pop-os/cosmic-protocols", package = "cosmic-client-toolkit", rev = "32283d7", optional = true } +cctk = { git = "https://github.com/pop-os/cosmic-protocols", package = "cosmic-client-toolkit", rev = "c0cff4d", optional = true } cosmic-mime-apps = { git = "https://github.com/pop-os/cosmic-mime-apps.git", optional = true } dirs = "6.0.0" gio = { version = "0.21", optional = true } From c0b8a8c60a693cd81f20a108a6da60bb51921167 Mon Sep 17 00:00:00 2001 From: Jason Rodney Hansen Date: Wed, 16 Sep 2026 19:04:51 -0600 Subject: [PATCH 29/34] fix: drag selection Fixes bug where drag selection only worked if the pointer passed through an item. --- src/mouse_area.rs | 20 +++++++++++--------- src/tab.rs | 32 +++++++++++++++++--------------- 2 files changed, 28 insertions(+), 24 deletions(-) diff --git a/src/mouse_area.rs b/src/mouse_area.rs index 8f52546..cbb7bbb 100644 --- a/src/mouse_area.rs +++ b/src/mouse_area.rs @@ -214,8 +214,9 @@ impl<'a, Message, F> OnAutoScroll<'a, Message> for F where F: Fn(Option) -> pub trait OnMouseButton<'a, Message>: Fn(Option) -> Message + 'a {} impl<'a, Message, F> OnMouseButton<'a, Message> for F where F: Fn(Option) -> Message + 'a {} -pub trait OnDrag<'a, Message>: Fn(Option) -> Message + 'a {} -impl<'a, Message, F> OnDrag<'a, Message> for F where F: Fn(Option) -> Message + 'a {} +pub trait OnDrag<'a, Message>: Fn(Option) -> Option + 'a {} +impl<'a, Message, F> OnDrag<'a, Message> for F where F: Fn(Option) -> Option + 'a +{} pub trait OnResize<'a, Message>: Fn(Rectangle) -> Message + 'a {} impl<'a, Message, F> OnResize<'a, Message> for F where F: Fn(Rectangle) -> Message + 'a {} @@ -798,12 +799,13 @@ fn update( } if let Some((message, drag_rect)) = widget.on_drag.as_ref().zip(state.drag_rect(cursor)) { - shell.publish(message(drag_rect.intersection(&layout_bounds).map( - |mut rect| { - rect.x -= layout_bounds.x; - rect.y -= layout_bounds.y; - rect - }, - ))); + let rect_opt = drag_rect.intersection(&layout_bounds).map(|mut rect| { + rect.x -= layout_bounds.x; + rect.y -= layout_bounds.y; + rect + }); + if let Some(message) = message(rect_opt) { + shell.publish(message); + } } } diff --git a/src/tab.rs b/src/tab.rs index 6d7831a..62632c7 100644 --- a/src/tab.rs +++ b/src/tab.rs @@ -2834,7 +2834,6 @@ pub struct Tab { search_context: Option, date_time_formatter: DateTimeFormatter, time_formatter: DateTimeFormatter, - watch_drag: bool, window_id: Option, large_image_manager: LargeImageManager, } @@ -2979,7 +2978,6 @@ impl Tab { search_context: None, date_time_formatter: date_time_formatter(config.military_time), time_formatter: time_formatter(config.military_time), - watch_drag: true, window_id, large_image_manager: LargeImageManager::new(), } @@ -3586,7 +3584,6 @@ impl Tab { } Message::DragEnd => { self.clicked = None; - self.watch_drag = true; } Message::DoubleClick(click_i_opt) => { if let Some(clicked_item) = self @@ -3826,7 +3823,6 @@ impl Tab { } } Message::Drag(rect_opt) => { - self.watch_drag = false; if let Some(rect) = rect_opt { if self.mode.multiple() { self.select_rect(rect, mod_ctrl, mod_shift); @@ -4464,13 +4460,11 @@ impl Tab { } } Message::HighlightDeactivate(i) => { - self.watch_drag = true; if let Some(item) = self.items_opt.as_mut().and_then(|f| f.get_mut(i)) { item.highlighted = false; } } Message::HighlightActivate(i) => { - self.watch_drag = true; if let Some(item) = self.items_opt.as_mut().and_then(|f| f.get_mut(i)) { item.highlighted = true; } @@ -4496,7 +4490,6 @@ impl Tab { } Message::Scroll(viewport) => { self.scroll_opt = Some(viewport.absolute_offset()); - self.watch_drag = true; } Message::ScrollTab(scroll_speed) => { commands.push(Command::Iced( @@ -6003,15 +5996,13 @@ impl Tab { Element::from(dnd_grid) }); - let mut mouse_area = mouse_area::MouseArea::new(column.width(Length::Fill)) + let mouse_area = mouse_area::MouseArea::new(column.width(Length::Fill)) .on_press(|_| Message::Click(None)) .on_auto_scroll(Message::AutoScroll) + .on_drag(move |rect_opt| self.on_drag(rect_opt)) .on_drag_end(|_| Message::DragEnd) .show_drag_rect(self.mode.multiple()) .on_release(|_| Message::ClickRelease(None)); - if self.watch_drag { - mouse_area = mouse_area.on_drag(Message::Drag); - } (drag_list, mouse_area.into(), true) } @@ -6395,16 +6386,14 @@ impl Tab { let drag_col = (!drag_items.is_empty()) .then(|| Element::from(widget::column::with_children(drag_items))); - let mut mouse_area = mouse_area::MouseArea::new(column.padding([0, space_s])) + let mouse_area = mouse_area::MouseArea::new(column.padding([0, space_s])) .with_id(Id::new("list-view")) .on_press(|_| Message::Click(None)) .on_auto_scroll(Message::AutoScroll) + .on_drag(move |rect_opt| self.on_drag(rect_opt)) .on_drag_end(|_| Message::DragEnd) .show_drag_rect(self.mode.multiple()) .on_release(|_| Message::ClickRelease(None)); - if self.watch_drag { - mouse_area = mouse_area.on_drag(Message::Drag); - } (drag_col, mouse_area.into(), true) } @@ -7397,6 +7386,19 @@ impl Tab { const fn format_time(&self, time: SystemTime) -> FormatTime<'_> { format_time(time, &self.date_time_formatter, &self.time_formatter) } + + fn on_drag<'a>(&self, rect_opt: Option) -> Option { + let rect = rect_opt?; + // We only want to publish a drag message if the overlapped items of the drag rect change, + // otherwise a view rebuild is triggered on every drag event. + let changed = self.items_opt.as_ref().is_some_and(|items| { + items.iter().any(|item| { + let overlaps = item.rect_opt.get().is_some_and(|r| r.intersects(&rect)); + overlaps != item.overlaps_drag_rect + }) + }); + changed.then_some(Message::Drag(Some(rect))) + } } pub fn respond_to_scroll_direction(delta: ScrollDelta, modifiers: &Modifiers) -> Option { From b326e48cf6d8f859a6e4aa123d8db92da49c9ee0 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Mon, 21 Sep 2026 13:25:53 -0600 Subject: [PATCH 30/34] Make Cosmic Files show .exe icons (#2070) * [Feature Request] Make Cosmic Files show .exe icons like Dolphin * Sped Up Icon Extraction * Compacted Code * Replace wrestool with pelite crate for .exe icon extraction * Run PE icon extraction as external thumbnailer * Use dedicated external EXE thumbnailer * Remove embedded EXE thumbnailer * Move cosmic-files-thumbnailer to new crate --------- Co-authored-by: ZlordHUN <137647604+ZlordHUN@users.noreply.github.com> --- Cargo.lock | 48 +++++ Cargo.toml | 10 +- cosmic-files-applet/Cargo.toml | 2 +- cosmic-files-thumbnailer/Cargo.toml | 8 + cosmic-files-thumbnailer/src/main.rs | 254 +++++++++++++++++++++++ justfile | 17 +- res/com.system76.CosmicFiles.thumbnailer | 4 + src/thumbnailer.rs | 22 ++ 8 files changed, 356 insertions(+), 9 deletions(-) create mode 100644 cosmic-files-thumbnailer/Cargo.toml create mode 100644 cosmic-files-thumbnailer/src/main.rs create mode 100644 res/com.system76.CosmicFiles.thumbnailer diff --git a/Cargo.lock b/Cargo.lock index b274284..6e86a27 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1470,6 +1470,14 @@ dependencies = [ "zbus 4.4.0", ] +[[package]] +name = "cosmic-files-thumbnailer" +version = "1.9.0" +dependencies = [ + "image", + "pelite", +] + [[package]] name = "cosmic-freedesktop-icons" version = "0.4.0" @@ -1793,6 +1801,15 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be1e0bca6c3637f992fc1cc7cbc52a78c1ef6db076dbf1059c4323d6a2048376" +[[package]] +name = "dataview" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daba87f72c730b508641c9fb6411fc9bba73939eed2cab611c399500511880d0" +dependencies = [ + "derive_pod", +] + [[package]] name = "deflate64" version = "0.1.12" @@ -1839,6 +1856,12 @@ dependencies = [ "serde_core", ] +[[package]] +name = "derive_pod" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2ea6706d74fca54e15f1d40b5cf7fe7f764aaec61352a9fcec58fe27e042fc8" + [[package]] name = "derive_setters" version = "0.1.9" @@ -4980,6 +5003,12 @@ dependencies = [ "memoffset", ] +[[package]] +name = "no-std-compat" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c" + [[package]] name = "no_std_io2" version = "0.9.4" @@ -5578,6 +5607,25 @@ dependencies = [ "hmac", ] +[[package]] +name = "pelite" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88dccf4bd32294364aeb7bd55d749604450e9db54605887551f21baea7617685" +dependencies = [ + "dataview", + "libc", + "no-std-compat", + "pelite-macros", + "winapi", +] + +[[package]] +name = "pelite-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a7cf3f8ecebb0f4895f4892a8be0a0dc81b498f9d56735cb769dc31bf00815b" + [[package]] name = "percent-encoding" version = "2.3.2" diff --git a/Cargo.toml b/Cargo.toml index 92fca4a..64a8606 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,9 +18,9 @@ gio = { version = "0.21", optional = true } glib = { version = "0.21", optional = true } glob = "0.3" ignore = "0.4" -image = "0.25" +image.workspace = true libc = "0.2" -log = "0.4" +log.workspace = true mime_guess = "2" notify-debouncer-full = "0.7" notify-rust = { version = "4", optional = true } @@ -162,4 +162,8 @@ tokio = { version = "1", features = ["rt", "macros"] } # smithay-clipboard = { path = "../smithay-clipboard" } [workspace] -members = ["cosmic-files-applet"] +members = ["cosmic-files-applet", "cosmic-files-thumbnailer"] + +[workspace.dependencies] +image = "0.25" +log = "0.4" diff --git a/cosmic-files-applet/Cargo.toml b/cosmic-files-applet/Cargo.toml index f188eea..3cf3264 100644 --- a/cosmic-files-applet/Cargo.toml +++ b/cosmic-files-applet/Cargo.toml @@ -4,7 +4,7 @@ version = "1.9.0" edition = "2024" [dependencies] -log = "0.4" +log.workspace = true zbus = "4" # Blocking connection in zbus 5 hangs [dependencies.cosmic-files] diff --git a/cosmic-files-thumbnailer/Cargo.toml b/cosmic-files-thumbnailer/Cargo.toml new file mode 100644 index 0000000..53cf47b --- /dev/null +++ b/cosmic-files-thumbnailer/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "cosmic-files-thumbnailer" +version = "1.9.0" +edition = "2024" + +[dependencies] +image.workspace = true +pelite = "0.10" diff --git a/cosmic-files-thumbnailer/src/main.rs b/cosmic-files-thumbnailer/src/main.rs new file mode 100644 index 0000000..2463849 --- /dev/null +++ b/cosmic-files-thumbnailer/src/main.rs @@ -0,0 +1,254 @@ +// SPDX-License-Identifier: GPL-3.0-only + +use image::{DynamicImage, ImageFormat, RgbaImage}; +use std::error::Error; +use std::ffi::{OsStr, OsString}; +use std::io; +use std::path::Path; + +fn main() -> Result<(), Box> { + thumbnail_from_args(std::env::args_os().skip(1)) +} + +#[allow(dead_code)] +pub fn thumbnail_from_args(mut args: impl Iterator) -> Result<(), Box> { + let usage = || { + io::Error::new( + io::ErrorKind::InvalidInput, + "usage: cosmic-files-thumbnailer OUTPUT --size SIZE INPUT", + ) + }; + let output = args.next().ok_or_else(usage)?; + if args.next().as_deref() != Some(OsStr::new("--size")) { + return Err(usage().into()); + } + let size = args + .next() + .and_then(|arg| arg.into_string().ok()) + .and_then(|arg| arg.parse::().ok()) + .filter(|size| *size > 0) + .ok_or_else(usage)?; + let input = args.next().ok_or_else(usage)?; + if args.next().is_some() { + return Err(usage().into()); + } + + thumbnail(Path::new(&input), Path::new(&output), size) +} + +#[allow(dead_code)] +pub fn thumbnail(input: &Path, output: &Path, size: u32) -> Result<(), Box> { + let icon = thumbnail_image(input, size)?; + DynamicImage::ImageRgba8(icon).save_with_format(output, ImageFormat::Png)?; + + Ok(()) +} + +pub fn thumbnail_image(input: &Path, size: u32) -> Result> { + if size == 0 { + return Err(io::Error::new( + io::ErrorKind::InvalidInput, + "thumbnail size must be positive", + ) + .into()); + } + + // Map the PE so only the headers and resource pages touched by pelite are read. + let data = pelite::FileMap::open(input)?; + let bytes = data.as_ref(); + if bytes.len() < 64 || !bytes.starts_with(b"MZ") { + return Err(io::Error::new(io::ErrorKind::InvalidData, "input is not a PE file").into()); + } + + let file = pelite::PeFile::from_bytes(bytes).map_err(invalid_data)?; + let resources = file.resources().map_err(invalid_data)?; + let (_name, group) = resources + .icons() + .next() + .ok_or_else(|| io::Error::new(io::ErrorKind::InvalidData, "PE file has no icon group"))? + .map_err(invalid_data)?; + + let mut ico = Vec::new(); + group.write(&mut ico).map_err(invalid_data)?; + + Ok( + DynamicImage::ImageRgba8(largest_icon(&ico).map_err(invalid_data)?) + .thumbnail(size, size) + .into_rgba8(), + ) +} + +fn invalid_data(error: impl std::fmt::Display) -> io::Error { + io::Error::new(io::ErrorKind::InvalidData, error.to_string()) +} + +fn largest_icon(ico: &[u8]) -> Result { + if ico.len() < 6 { + return Err("ICO header is truncated".to_string()); + } + let count = usize::from(u16::from_le_bytes([ico[4], ico[5]])); + let mut best: Option<(u64, RgbaImage)> = None; + let mut errors = Vec::new(); + + for i in 0..count.min(32) { + let entry = 6 + i * 16; + if ico.len() < entry + 16 { + break; + } + let size = u32::from_le_bytes([ + ico[entry + 8], + ico[entry + 9], + ico[entry + 10], + ico[entry + 11], + ]) as usize; + let offset = u32::from_le_bytes([ + ico[entry + 12], + ico[entry + 13], + ico[entry + 14], + ico[entry + 15], + ]) as usize; + let Some(end) = offset.checked_add(size) else { + continue; + }; + let Some(data) = ico.get(offset..end) else { + continue; + }; + + match decode_icon(&ico[entry..entry + 16], data) { + Ok(image) => { + let pixels = u64::from(image.width()) * u64::from(image.height()); + if best + .as_ref() + .is_none_or(|(best_pixels, _)| pixels > *best_pixels) + { + best = Some((pixels, image)); + } + } + Err(err) => errors.push(format!("frame {i}: {err}")), + } + } + + best.map(|(_, image)| image).ok_or_else(|| { + if errors.is_empty() { + "PE icon contains no complete frames".to_string() + } else { + format!("PE icon could not be decoded ({})", errors.join("; ")) + } + }) +} + +fn decode_icon(entry: &[u8], data: &[u8]) -> Result { + if data.starts_with(b"\x89PNG\r\n\x1a\n") { + return image::ImageReader::with_format(io::Cursor::new(data), ImageFormat::Png) + .decode() + .map(DynamicImage::into_rgba8) + .map_err(|err| err.to_string()); + } + + let capacity = 22usize + .checked_add(data.len()) + .ok_or_else(|| "frame is too large".to_string())?; + let data_len = u32::try_from(data.len()).map_err(|_| "frame is too large".to_string())?; + let mut ico = Vec::with_capacity(capacity); + ico.extend_from_slice(&[0, 0, 1, 0, 1, 0]); + ico.extend_from_slice(entry); + ico[14..18].copy_from_slice(&data_len.to_le_bytes()); + ico[18..22].copy_from_slice(&22u32.to_le_bytes()); + ico.extend_from_slice(data); + + image::ImageReader::with_format(io::Cursor::new(ico), ImageFormat::Ico) + .decode() + .map(DynamicImage::into_rgba8) + .map_err(|err| err.to_string()) +} + +#[cfg(test)] +mod tests { + use super::{largest_icon, thumbnail_from_args}; + use image::{DynamicImage, ImageFormat, Rgb, RgbImage, Rgba, RgbaImage}; + use std::ffi::OsString; + use std::io::Cursor; + + #[test] + fn malformed_thumbnail_request_returns_an_error() { + let args = [OsString::from("output.png")]; + assert!(thumbnail_from_args(args.into_iter()).is_err()); + } + + #[test] + fn largest_icon_skips_invalid_entries() { + let image = RgbaImage::from_pixel(2, 2, Rgba([1, 2, 3, 255])); + let mut png = Cursor::new(Vec::new()); + DynamicImage::ImageRgba8(image) + .write_to(&mut png, ImageFormat::Png) + .unwrap(); + let png = png.into_inner(); + + let mut ico = vec![0, 0, 1, 0, 2, 0]; + let mut invalid_entry = [0; 16]; + invalid_entry[8..12].copy_from_slice(&4u32.to_le_bytes()); + invalid_entry[12..16].copy_from_slice(&u32::MAX.to_le_bytes()); + ico.extend_from_slice(&invalid_entry); + + let mut valid_entry = [0; 16]; + valid_entry[..8].copy_from_slice(&[2, 2, 0, 0, 1, 0, 32, 0]); + valid_entry[8..12].copy_from_slice(&u32::try_from(png.len()).unwrap().to_le_bytes()); + valid_entry[12..16].copy_from_slice(&38u32.to_le_bytes()); + ico.extend_from_slice(&valid_entry); + ico.extend_from_slice(&png); + + let decoded = largest_icon(&ico).expect("valid icon after malformed entry"); + assert_eq!(decoded.dimensions(), (2, 2)); + assert_eq!(decoded.get_pixel(0, 0), &Rgba([1, 2, 3, 255])); + } + + #[test] + fn dib_and_mask_is_applied() { + let mut dib = vec![0; 40]; + dib[0..4].copy_from_slice(&40u32.to_le_bytes()); + dib[4..8].copy_from_slice(&2i32.to_le_bytes()); + dib[8..12].copy_from_slice(&4i32.to_le_bytes()); + dib[12..14].copy_from_slice(&1u16.to_le_bytes()); + dib[14..16].copy_from_slice(&24u16.to_le_bytes()); + + // Two bottom-up BGR rows, padded to four-byte boundaries. + dib.extend_from_slice(&[0, 0, 255, 0, 0, 255, 0, 0]); + dib.extend_from_slice(&[0, 0, 255, 0, 0, 255, 0, 0]); + // The first mask row is the bottom image row; its first pixel is transparent. + dib.extend_from_slice(&[0b1000_0000, 0, 0, 0]); + dib.extend_from_slice(&[0, 0, 0, 0]); + + let mut ico = vec![0, 0, 1, 0, 1, 0]; + let mut entry = [0; 16]; + entry[..8].copy_from_slice(&[2, 2, 0, 0, 1, 0, 24, 0]); + entry[8..12].copy_from_slice(&u32::try_from(dib.len()).unwrap().to_le_bytes()); + entry[12..16].copy_from_slice(&22u32.to_le_bytes()); + ico.extend_from_slice(&entry); + ico.extend_from_slice(&dib); + + let decoded = largest_icon(&ico).expect("valid DIB icon"); + assert_eq!(decoded.get_pixel(0, 0), &Rgba([255, 0, 0, 255])); + assert_eq!(decoded.get_pixel(0, 1), &Rgba([255, 0, 0, 0])); + } + + #[test] + fn rgb_png_icon_is_decoded() { + let image = RgbImage::from_pixel(2, 2, Rgb([1, 2, 3])); + let mut png = Cursor::new(Vec::new()); + DynamicImage::ImageRgb8(image) + .write_to(&mut png, ImageFormat::Png) + .unwrap(); + let png = png.into_inner(); + + let mut ico = vec![0, 0, 1, 0, 1, 0]; + let mut entry = [0; 16]; + entry[..8].copy_from_slice(&[2, 2, 0, 0, 1, 0, 24, 0]); + entry[8..12].copy_from_slice(&u32::try_from(png.len()).unwrap().to_le_bytes()); + entry[12..16].copy_from_slice(&22u32.to_le_bytes()); + ico.extend_from_slice(&entry); + ico.extend_from_slice(&png); + + let decoded = largest_icon(&ico).expect("valid RGB PNG icon"); + assert_eq!(decoded.get_pixel(0, 0), &Rgba([1, 2, 3, 255])); + } +} diff --git a/justfile b/justfile index 5e8d024..004854d 100644 --- a/justfile +++ b/justfile @@ -12,6 +12,10 @@ cargo-target-dir := env('CARGO_TARGET_DIR', 'target') bin-src := cargo-target-dir / 'release' / name bin-dst := base-dir / 'bin' / name +thumbnailer-bin-name := name + '-thumbnailer' +thumbnailer-bin-src := cargo-target-dir / 'release' / thumbnailer-bin-name +thumbnailer-bin-dst := base-dir / 'bin' / thumbnailer-bin-name + applet-name := name + '-applet' applet-src := cargo-target-dir / 'release' / applet-name applet-dst := base-dir / 'bin' / applet-name @@ -24,6 +28,10 @@ metainfo := APPID + '.metainfo.xml' metainfo-src := 'target/xdgen' / metainfo metainfo-dst := clean(rootdir / prefix) / 'share' / 'metainfo' / metainfo +thumbnailer := APPID + '.thumbnailer' +thumbnailer-src := 'res' / thumbnailer +thumbnailer-dst := clean(rootdir / prefix) / 'share' / 'thumbnailers' / thumbnailer + icons-src := 'res' / 'icons' / 'hicolor' icons-dst := clean(rootdir / prefix) / 'share' / 'icons' / 'hicolor' @@ -45,14 +53,11 @@ clean-dist: clean clean-vendor build-debug *args: cargo build {{args}} cargo build --package {{applet-name}} {{args}} + cargo build --package {{thumbnailer-bin-name}} {{args}} # Compiles with release profile build-release *args: (build-debug '--release' args) -# Compiles applet with release profile -build-release-applet *args: - cargo build --package {{applet-name}} --release {{args}} - # Compiles release profile with vendored dependencies build-vendored *args: vendor-extract (build-release '--frozen --offline' args) @@ -92,9 +97,11 @@ heaptrack *args: # Installs files install: install -Dm0755 {{bin-src}} {{bin-dst}} + install -Dm0755 {{thumbnailer-bin-src}} {{thumbnailer-bin-dst}} install -Dm0755 {{applet-src}} {{applet-dst}} install -Dm0644 {{desktop-src}} {{desktop-dst}} install -Dm0644 {{metainfo-src}} {{metainfo-dst}} + install -Dm0644 {{thumbnailer-src}} {{thumbnailer-dst}} for size in `ls {{icons-src}}`; do \ install -Dm0644 "{{icons-src}}/$size/apps/{{APPID}}.svg" "{{icons-dst}}/$size/apps/{{APPID}}.svg"; \ done @@ -105,7 +112,7 @@ install-applet: # Uninstalls installed files uninstall: - rm -f {{bin-dst}} {{applet-dst}} + rm -f {{bin-dst}} {{thumbnailer-bin-dst}} {{applet-dst}} {{thumbnailer-dst}} # Vendor dependencies locally vendor: diff --git a/res/com.system76.CosmicFiles.thumbnailer b/res/com.system76.CosmicFiles.thumbnailer new file mode 100644 index 0000000..4c936cc --- /dev/null +++ b/res/com.system76.CosmicFiles.thumbnailer @@ -0,0 +1,4 @@ +[Thumbnailer Entry] +TryExec=cosmic-files-thumbnailer +Exec=cosmic-files-thumbnailer %o --size %s %i +MimeType=application/vnd.microsoft.portable-executable;application/x-msdownload; diff --git a/src/thumbnailer.rs b/src/thumbnailer.rs index b9de821..233766f 100644 --- a/src/thumbnailer.rs +++ b/src/thumbnailer.rs @@ -172,3 +172,25 @@ pub fn thumbnailer(mime: &Mime) -> Vec { let thumbnailer_cache = THUMBNAILER_CACHE.lock().unwrap(); thumbnailer_cache.get(mime) } + +#[cfg(all(test, feature = "desktop"))] +mod tests { + use super::Thumbnailer; + use std::path::Path; + + #[test] + fn command_expands_thumbnailer_arguments() { + let thumbnailer = Thumbnailer { + exec: "cosmic-files-thumbnailer %o --size %s %i".to_string(), + }; + + let command = thumbnailer + .command(Path::new("input.exe"), Path::new("output.png"), 128) + .expect("valid thumbnailer command"); + assert_eq!(command.get_program(), "cosmic-files-thumbnailer"); + assert_eq!( + command.get_args().collect::>(), + ["output.png", "--size", "128", "input.exe"] + ); + } +} From e2cad979ce49f2c362f0d0111137363317fb8452 Mon Sep 17 00:00:00 2001 From: Huy Nguyen Date: Tue, 22 Sep 2026 23:06:06 +0700 Subject: [PATCH 31/34] feat(dialog): persist global sort option (#2039) Add dialog_sort_name field to State to track the dialog sort option. Add state_handler and state fields to Dialog to load saved state. Implement tab::Command::SetSort for Dialog to apply and persist sort options. --- src/config.rs | 2 ++ src/dialog.rs | 26 ++++++++++++++++++++++---- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/src/config.rs b/src/config.rs index f064076..617c459 100644 --- a/src/config.rs +++ b/src/config.rs @@ -150,6 +150,7 @@ pub enum TypeToSearch { #[serde(default)] pub struct State { pub sort_names: FxOrderMap, + pub dialog_sort_name: (HeadingOptions, bool), } impl Default for State { @@ -161,6 +162,7 @@ impl Default for State { (HeadingOptions::Modified, false), ) })), + dialog_sort_name: (HeadingOptions::Modified, false), } } } diff --git a/src/dialog.rs b/src/dialog.rs index aba4d00..d0037d2 100644 --- a/src/dialog.rs +++ b/src/dialog.rs @@ -3,6 +3,7 @@ use cosmic::app::cosmic::Cosmic; use cosmic::app::{Core, Task, context_drawer}; +use cosmic::cosmic_config::ConfigSet; use cosmic::iced::core::SmolStr; use cosmic::iced::core::widget::operation; use cosmic::iced::futures::{self, SinkExt}; @@ -32,11 +33,13 @@ use std::{env, fmt, fs}; use crate::app::{ Action, ContextPage, Message as AppMessage, PreviewItem, PreviewKind, REPLACE_BUTTON_ID, }; -use crate::config::{Config, DialogConfig, TIME_CONFIG_ID, ThumbCfg, TimeConfig, TypeToSearch}; +use crate::config::{ + Config, DialogConfig, State, TIME_CONFIG_ID, ThumbCfg, TimeConfig, TypeToSearch, +}; use crate::key_bind::key_binds; use crate::localize::LANGUAGE_SORTER; use crate::mounter::{MOUNTERS, MounterItem, MounterItems, MounterKey, MounterMessage}; -use crate::tab::{self, ItemMetadata, Location, SearchLocation, Tab}; +use crate::tab::{self, HeadingOptions, ItemMetadata, Location, SearchLocation, Tab}; use crate::zoom::{zoom_in_view, zoom_out_view, zoom_to_default}; use crate::{fl, home_dir, menu, mime_icon}; @@ -251,6 +254,7 @@ impl Dialog { crate::localize::localize(); let (config_handler, config) = Config::load(); + let (state_handler, state) = State::load(); let mut settings = window::Settings { decorations: false, @@ -285,6 +289,8 @@ impl Dialog { window_id, config_handler, config, + state_handler, + state, }; let (cosmic, cosmic_command) = Cosmic::::init((core, flags)); @@ -439,6 +445,8 @@ struct Flags { #[allow(dead_code)] config_handler: Option, config: Config, + state_handler: Option, + state: State, } /// Messages that are used specifically by our [`App`]. @@ -1027,8 +1035,7 @@ impl Application for App { None, ); tab.mode = tab::Mode::Dialog(flags.kind.clone()); - tab.sort_name = tab::HeadingOptions::Modified; - tab.sort_direction = false; + (tab.sort_name, tab.sort_direction) = flags.state.dialog_sort_name; let key_binds = key_binds(&tab.mode); @@ -1786,6 +1793,17 @@ impl Application for App { self.auto_scroll_speed = None; } } + tab::Command::SetSort(_, heading_options, direction) => { + self.flags.state.dialog_sort_name = (heading_options, direction); + if let Some(state_handler) = self.flags.state_handler.as_ref() + && let Err(err) = state_handler.set::<&(HeadingOptions, bool)>( + "dialog_sort_name", + &self.flags.state.dialog_sort_name, + ) + { + log::warn!("Failed to save dialog sort name: {err:?}"); + } + } unsupported => { log::warn!("{unsupported:?} not supported in dialog mode"); } From 87f407e3edcb5c5116006b0b4115df30b6996885 Mon Sep 17 00:00:00 2001 From: Hojjat Date: Mon, 21 Sep 2026 17:53:03 -0600 Subject: [PATCH 32/34] chore: update libcosmic to fix shift+right-click --- Cargo.lock | 78 +++++++++++++++++++++++++++--------------------------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6e86a27..54ee8e2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -21,7 +21,7 @@ checksum = "366ffbaa4442f4684d91e2cd7c5ea7c4ed8add41959a31447066e279e432b618" [[package]] name = "accesskit" version = "0.22.0" -source = "git+https://github.com/wash2/accesskit?tag=cosmic-0.14#f0599eed5f18111228266fe3f28991cc48b5964f" +source = "git+https://github.com/wash2/accesskit?rev=6c20249#6c20249d3b9fd45e7002efad9f6b6171a9257912" dependencies = [ "uuid", ] @@ -29,7 +29,7 @@ dependencies = [ [[package]] name = "accesskit_atspi_common" version = "0.15.0" -source = "git+https://github.com/wash2/accesskit?tag=cosmic-0.14#f0599eed5f18111228266fe3f28991cc48b5964f" +source = "git+https://github.com/wash2/accesskit?rev=6c20249#6c20249d3b9fd45e7002efad9f6b6171a9257912" dependencies = [ "accesskit", "accesskit_consumer", @@ -41,7 +41,7 @@ dependencies = [ [[package]] name = "accesskit_consumer" version = "0.32.0" -source = "git+https://github.com/wash2/accesskit?tag=cosmic-0.14#f0599eed5f18111228266fe3f28991cc48b5964f" +source = "git+https://github.com/wash2/accesskit?rev=6c20249#6c20249d3b9fd45e7002efad9f6b6171a9257912" dependencies = [ "accesskit", "hashbrown 0.16.1", @@ -50,7 +50,7 @@ dependencies = [ [[package]] name = "accesskit_macos" version = "0.23.0" -source = "git+https://github.com/wash2/accesskit?tag=cosmic-0.14#f0599eed5f18111228266fe3f28991cc48b5964f" +source = "git+https://github.com/wash2/accesskit?rev=6c20249#6c20249d3b9fd45e7002efad9f6b6171a9257912" dependencies = [ "accesskit", "accesskit_consumer", @@ -63,7 +63,7 @@ dependencies = [ [[package]] name = "accesskit_unix" version = "0.18.0" -source = "git+https://github.com/wash2/accesskit?tag=cosmic-0.14#f0599eed5f18111228266fe3f28991cc48b5964f" +source = "git+https://github.com/wash2/accesskit?rev=6c20249#6c20249d3b9fd45e7002efad9f6b6171a9257912" dependencies = [ "accesskit", "accesskit_atspi_common", @@ -78,7 +78,7 @@ dependencies = [ [[package]] name = "accesskit_windows" version = "0.30.0" -source = "git+https://github.com/wash2/accesskit?tag=cosmic-0.14#f0599eed5f18111228266fe3f28991cc48b5964f" +source = "git+https://github.com/wash2/accesskit?rev=6c20249#6c20249d3b9fd45e7002efad9f6b6171a9257912" dependencies = [ "accesskit", "accesskit_consumer", @@ -91,7 +91,7 @@ dependencies = [ [[package]] name = "accesskit_winit" version = "0.30.0" -source = "git+https://github.com/wash2/accesskit?tag=cosmic-0.14#f0599eed5f18111228266fe3f28991cc48b5964f" +source = "git+https://github.com/wash2/accesskit?rev=6c20249#6c20249d3b9fd45e7002efad9f6b6171a9257912" dependencies = [ "accesskit", "accesskit_macos", @@ -832,7 +832,7 @@ dependencies = [ [[package]] name = "build_helpers" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#d9431dc3670575602385e1e2523600ba5315508c" +source = "git+https://github.com/pop-os/libcosmic.git#03c8f93b294ad239ea935f6dd3c14a15acde8d0d" dependencies = [ "cfg_aliases", ] @@ -1365,7 +1365,7 @@ dependencies = [ [[package]] name = "cosmic-config" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#d9431dc3670575602385e1e2523600ba5315508c" +source = "git+https://github.com/pop-os/libcosmic.git#03c8f93b294ad239ea935f6dd3c14a15acde8d0d" dependencies = [ "atomicwrites", "cosmic-config-derive", @@ -1386,7 +1386,7 @@ dependencies = [ [[package]] name = "cosmic-config-derive" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#d9431dc3670575602385e1e2523600ba5315508c" +source = "git+https://github.com/pop-os/libcosmic.git#03c8f93b294ad239ea935f6dd3c14a15acde8d0d" dependencies = [ "quote", "syn 2.0.119", @@ -1519,8 +1519,8 @@ dependencies = [ [[package]] name = "cosmic-settings-config" -version = "0.1.0" -source = "git+https://github.com/pop-os/cosmic-settings-daemon#67c995d5e659173352ca0adfb22108ac1bf91f5a" +version = "1.9.0" +source = "git+https://github.com/pop-os/cosmic-settings-daemon#ac6190062c67dd687c2c1ea66e6cbea4dc9261b9" dependencies = [ "cosmic-config", "ron 0.11.0", @@ -1565,7 +1565,7 @@ dependencies = [ [[package]] name = "cosmic-theme" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#d9431dc3670575602385e1e2523600ba5315508c" +source = "git+https://github.com/pop-os/libcosmic.git#03c8f93b294ad239ea935f6dd3c14a15acde8d0d" dependencies = [ "almost", "configparser", @@ -2033,7 +2033,7 @@ checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" [[package]] name = "dpi" version = "0.1.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" +source = "git+https://github.com/pop-os/winit.git?rev=9567503#9567503d34130113e36b0167a2b8829c3756e429" [[package]] name = "drm" @@ -3143,7 +3143,7 @@ dependencies = [ [[package]] name = "iced" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#d9431dc3670575602385e1e2523600ba5315508c" +source = "git+https://github.com/pop-os/libcosmic.git#03c8f93b294ad239ea935f6dd3c14a15acde8d0d" dependencies = [ "build_helpers", "dnd", @@ -3165,7 +3165,7 @@ dependencies = [ [[package]] name = "iced_accessibility" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic.git#d9431dc3670575602385e1e2523600ba5315508c" +source = "git+https://github.com/pop-os/libcosmic.git#03c8f93b294ad239ea935f6dd3c14a15acde8d0d" dependencies = [ "accesskit", "accesskit_winit", @@ -3174,7 +3174,7 @@ dependencies = [ [[package]] name = "iced_core" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#d9431dc3670575602385e1e2523600ba5315508c" +source = "git+https://github.com/pop-os/libcosmic.git#03c8f93b294ad239ea935f6dd3c14a15acde8d0d" dependencies = [ "bitflags 2.13.2", "build_helpers", @@ -3200,7 +3200,7 @@ dependencies = [ [[package]] name = "iced_debug" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#d9431dc3670575602385e1e2523600ba5315508c" +source = "git+https://github.com/pop-os/libcosmic.git#03c8f93b294ad239ea935f6dd3c14a15acde8d0d" dependencies = [ "iced_core", "iced_futures", @@ -3210,7 +3210,7 @@ dependencies = [ [[package]] name = "iced_futures" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#d9431dc3670575602385e1e2523600ba5315508c" +source = "git+https://github.com/pop-os/libcosmic.git#03c8f93b294ad239ea935f6dd3c14a15acde8d0d" dependencies = [ "futures", "iced_core", @@ -3224,7 +3224,7 @@ dependencies = [ [[package]] name = "iced_graphics" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#d9431dc3670575602385e1e2523600ba5315508c" +source = "git+https://github.com/pop-os/libcosmic.git#03c8f93b294ad239ea935f6dd3c14a15acde8d0d" dependencies = [ "bitflags 2.13.2", "bytemuck", @@ -3245,7 +3245,7 @@ dependencies = [ [[package]] name = "iced_program" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#d9431dc3670575602385e1e2523600ba5315508c" +source = "git+https://github.com/pop-os/libcosmic.git#03c8f93b294ad239ea935f6dd3c14a15acde8d0d" dependencies = [ "iced_graphics", "iced_runtime", @@ -3254,7 +3254,7 @@ dependencies = [ [[package]] name = "iced_renderer" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#d9431dc3670575602385e1e2523600ba5315508c" +source = "git+https://github.com/pop-os/libcosmic.git#03c8f93b294ad239ea935f6dd3c14a15acde8d0d" dependencies = [ "iced_graphics", "iced_tiny_skia", @@ -3266,7 +3266,7 @@ dependencies = [ [[package]] name = "iced_runtime" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#d9431dc3670575602385e1e2523600ba5315508c" +source = "git+https://github.com/pop-os/libcosmic.git#03c8f93b294ad239ea935f6dd3c14a15acde8d0d" dependencies = [ "build_helpers", "bytes", @@ -3282,7 +3282,7 @@ dependencies = [ [[package]] name = "iced_tiny_skia" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#d9431dc3670575602385e1e2523600ba5315508c" +source = "git+https://github.com/pop-os/libcosmic.git#03c8f93b294ad239ea935f6dd3c14a15acde8d0d" dependencies = [ "bytemuck", "cosmic-text", @@ -3299,7 +3299,7 @@ dependencies = [ [[package]] name = "iced_wgpu" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#d9431dc3670575602385e1e2523600ba5315508c" +source = "git+https://github.com/pop-os/libcosmic.git#03c8f93b294ad239ea935f6dd3c14a15acde8d0d" dependencies = [ "as-raw-xcb-connection", "bitflags 2.13.2", @@ -3331,7 +3331,7 @@ dependencies = [ [[package]] name = "iced_widget" version = "0.14.2" -source = "git+https://github.com/pop-os/libcosmic.git#d9431dc3670575602385e1e2523600ba5315508c" +source = "git+https://github.com/pop-os/libcosmic.git#03c8f93b294ad239ea935f6dd3c14a15acde8d0d" dependencies = [ "build_helpers", "cosmic-client-toolkit", @@ -3350,7 +3350,7 @@ dependencies = [ [[package]] name = "iced_winit" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#d9431dc3670575602385e1e2523600ba5315508c" +source = "git+https://github.com/pop-os/libcosmic.git#03c8f93b294ad239ea935f6dd3c14a15acde8d0d" dependencies = [ "build_helpers", "cosmic-client-toolkit", @@ -4496,7 +4496,7 @@ checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" [[package]] name = "libcosmic" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#d9431dc3670575602385e1e2523600ba5315508c" +source = "git+https://github.com/pop-os/libcosmic.git#03c8f93b294ad239ea935f6dd3c14a15acde8d0d" dependencies = [ "apply", "ashpd 0.12.3", @@ -8727,7 +8727,7 @@ checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" [[package]] name = "winit" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" +source = "git+https://github.com/pop-os/winit.git?rev=9567503#9567503d34130113e36b0167a2b8829c3756e429" dependencies = [ "bitflags 2.13.2", "cfg_aliases", @@ -8753,7 +8753,7 @@ dependencies = [ [[package]] name = "winit-android" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" +source = "git+https://github.com/pop-os/winit.git?rev=9567503#9567503d34130113e36b0167a2b8829c3756e429" dependencies = [ "android-activity", "bitflags 2.13.2", @@ -8768,7 +8768,7 @@ dependencies = [ [[package]] name = "winit-appkit" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" +source = "git+https://github.com/pop-os/winit.git?rev=9567503#9567503d34130113e36b0167a2b8829c3756e429" dependencies = [ "bitflags 2.13.2", "block2 0.6.2", @@ -8790,7 +8790,7 @@ dependencies = [ [[package]] name = "winit-common" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" +source = "git+https://github.com/pop-os/winit.git?rev=9567503#9567503d34130113e36b0167a2b8829c3756e429" dependencies = [ "memmap2 0.9.11", "objc2 0.6.4", @@ -8805,7 +8805,7 @@ dependencies = [ [[package]] name = "winit-core" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" +source = "git+https://github.com/pop-os/winit.git?rev=9567503#9567503d34130113e36b0167a2b8829c3756e429" dependencies = [ "bitflags 2.13.2", "cursor-icon", @@ -8819,7 +8819,7 @@ dependencies = [ [[package]] name = "winit-orbital" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" +source = "git+https://github.com/pop-os/winit.git?rev=9567503#9567503d34130113e36b0167a2b8829c3756e429" dependencies = [ "bitflags 2.13.2", "dpi", @@ -8835,7 +8835,7 @@ dependencies = [ [[package]] name = "winit-uikit" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" +source = "git+https://github.com/pop-os/winit.git?rev=9567503#9567503d34130113e36b0167a2b8829c3756e429" dependencies = [ "bitflags 2.13.2", "block2 0.6.2", @@ -8855,7 +8855,7 @@ dependencies = [ [[package]] name = "winit-wayland" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" +source = "git+https://github.com/pop-os/winit.git?rev=9567503#9567503d34130113e36b0167a2b8829c3756e429" dependencies = [ "ahash", "bitflags 2.13.2", @@ -8881,7 +8881,7 @@ dependencies = [ [[package]] name = "winit-web" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" +source = "git+https://github.com/pop-os/winit.git?rev=9567503#9567503d34130113e36b0167a2b8829c3756e429" dependencies = [ "atomic-waker", "bitflags 2.13.2", @@ -8903,7 +8903,7 @@ dependencies = [ [[package]] name = "winit-win32" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" +source = "git+https://github.com/pop-os/winit.git?rev=9567503#9567503d34130113e36b0167a2b8829c3756e429" dependencies = [ "bitflags 2.13.2", "cursor-icon", @@ -8919,7 +8919,7 @@ dependencies = [ [[package]] name = "winit-x11" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?tag=cosmic-0.14#71ce08c043814514a8fd92d9d0599f115ae854e8" +source = "git+https://github.com/pop-os/winit.git?rev=9567503#9567503d34130113e36b0167a2b8829c3756e429" dependencies = [ "bitflags 2.13.2", "bytemuck", From d1f0af78e64f9e8ddb52c486913d53a234ce3cf2 Mon Sep 17 00:00:00 2001 From: Hojjat Date: Tue, 22 Sep 2026 14:19:48 -0600 Subject: [PATCH 33/34] chore: update libcosmic to fix esc on context-menu --- Cargo.lock | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 54ee8e2..090b4d8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -832,7 +832,7 @@ dependencies = [ [[package]] name = "build_helpers" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#03c8f93b294ad239ea935f6dd3c14a15acde8d0d" +source = "git+https://github.com/pop-os/libcosmic.git#08a09e3dfa1f729d52585fcedd6e731130235363" dependencies = [ "cfg_aliases", ] @@ -1365,7 +1365,7 @@ dependencies = [ [[package]] name = "cosmic-config" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#03c8f93b294ad239ea935f6dd3c14a15acde8d0d" +source = "git+https://github.com/pop-os/libcosmic.git#08a09e3dfa1f729d52585fcedd6e731130235363" dependencies = [ "atomicwrites", "cosmic-config-derive", @@ -1386,7 +1386,7 @@ dependencies = [ [[package]] name = "cosmic-config-derive" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#03c8f93b294ad239ea935f6dd3c14a15acde8d0d" +source = "git+https://github.com/pop-os/libcosmic.git#08a09e3dfa1f729d52585fcedd6e731130235363" dependencies = [ "quote", "syn 2.0.119", @@ -1565,7 +1565,7 @@ dependencies = [ [[package]] name = "cosmic-theme" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#03c8f93b294ad239ea935f6dd3c14a15acde8d0d" +source = "git+https://github.com/pop-os/libcosmic.git#08a09e3dfa1f729d52585fcedd6e731130235363" dependencies = [ "almost", "configparser", @@ -3143,7 +3143,7 @@ dependencies = [ [[package]] name = "iced" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#03c8f93b294ad239ea935f6dd3c14a15acde8d0d" +source = "git+https://github.com/pop-os/libcosmic.git#08a09e3dfa1f729d52585fcedd6e731130235363" dependencies = [ "build_helpers", "dnd", @@ -3165,7 +3165,7 @@ dependencies = [ [[package]] name = "iced_accessibility" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic.git#03c8f93b294ad239ea935f6dd3c14a15acde8d0d" +source = "git+https://github.com/pop-os/libcosmic.git#08a09e3dfa1f729d52585fcedd6e731130235363" dependencies = [ "accesskit", "accesskit_winit", @@ -3174,7 +3174,7 @@ dependencies = [ [[package]] name = "iced_core" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#03c8f93b294ad239ea935f6dd3c14a15acde8d0d" +source = "git+https://github.com/pop-os/libcosmic.git#08a09e3dfa1f729d52585fcedd6e731130235363" dependencies = [ "bitflags 2.13.2", "build_helpers", @@ -3200,7 +3200,7 @@ dependencies = [ [[package]] name = "iced_debug" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#03c8f93b294ad239ea935f6dd3c14a15acde8d0d" +source = "git+https://github.com/pop-os/libcosmic.git#08a09e3dfa1f729d52585fcedd6e731130235363" dependencies = [ "iced_core", "iced_futures", @@ -3210,7 +3210,7 @@ dependencies = [ [[package]] name = "iced_futures" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#03c8f93b294ad239ea935f6dd3c14a15acde8d0d" +source = "git+https://github.com/pop-os/libcosmic.git#08a09e3dfa1f729d52585fcedd6e731130235363" dependencies = [ "futures", "iced_core", @@ -3224,7 +3224,7 @@ dependencies = [ [[package]] name = "iced_graphics" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#03c8f93b294ad239ea935f6dd3c14a15acde8d0d" +source = "git+https://github.com/pop-os/libcosmic.git#08a09e3dfa1f729d52585fcedd6e731130235363" dependencies = [ "bitflags 2.13.2", "bytemuck", @@ -3245,7 +3245,7 @@ dependencies = [ [[package]] name = "iced_program" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#03c8f93b294ad239ea935f6dd3c14a15acde8d0d" +source = "git+https://github.com/pop-os/libcosmic.git#08a09e3dfa1f729d52585fcedd6e731130235363" dependencies = [ "iced_graphics", "iced_runtime", @@ -3254,7 +3254,7 @@ dependencies = [ [[package]] name = "iced_renderer" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#03c8f93b294ad239ea935f6dd3c14a15acde8d0d" +source = "git+https://github.com/pop-os/libcosmic.git#08a09e3dfa1f729d52585fcedd6e731130235363" dependencies = [ "iced_graphics", "iced_tiny_skia", @@ -3266,7 +3266,7 @@ dependencies = [ [[package]] name = "iced_runtime" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#03c8f93b294ad239ea935f6dd3c14a15acde8d0d" +source = "git+https://github.com/pop-os/libcosmic.git#08a09e3dfa1f729d52585fcedd6e731130235363" dependencies = [ "build_helpers", "bytes", @@ -3282,7 +3282,7 @@ dependencies = [ [[package]] name = "iced_tiny_skia" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#03c8f93b294ad239ea935f6dd3c14a15acde8d0d" +source = "git+https://github.com/pop-os/libcosmic.git#08a09e3dfa1f729d52585fcedd6e731130235363" dependencies = [ "bytemuck", "cosmic-text", @@ -3299,7 +3299,7 @@ dependencies = [ [[package]] name = "iced_wgpu" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#03c8f93b294ad239ea935f6dd3c14a15acde8d0d" +source = "git+https://github.com/pop-os/libcosmic.git#08a09e3dfa1f729d52585fcedd6e731130235363" dependencies = [ "as-raw-xcb-connection", "bitflags 2.13.2", @@ -3331,7 +3331,7 @@ dependencies = [ [[package]] name = "iced_widget" version = "0.14.2" -source = "git+https://github.com/pop-os/libcosmic.git#03c8f93b294ad239ea935f6dd3c14a15acde8d0d" +source = "git+https://github.com/pop-os/libcosmic.git#08a09e3dfa1f729d52585fcedd6e731130235363" dependencies = [ "build_helpers", "cosmic-client-toolkit", @@ -3350,7 +3350,7 @@ dependencies = [ [[package]] name = "iced_winit" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#03c8f93b294ad239ea935f6dd3c14a15acde8d0d" +source = "git+https://github.com/pop-os/libcosmic.git#08a09e3dfa1f729d52585fcedd6e731130235363" dependencies = [ "build_helpers", "cosmic-client-toolkit", @@ -4496,7 +4496,7 @@ checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" [[package]] name = "libcosmic" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#03c8f93b294ad239ea935f6dd3c14a15acde8d0d" +source = "git+https://github.com/pop-os/libcosmic.git#08a09e3dfa1f729d52585fcedd6e731130235363" dependencies = [ "apply", "ashpd 0.12.3", From 20842026d7ea184b7eb572dccc813d7532798bef Mon Sep 17 00:00:00 2001 From: Lionel DARNIS Date: Thu, 24 Sep 2026 21:03:54 +0200 Subject: [PATCH 34/34] chore: fige Cargo.lock (epoch-1.9.0, [patch] locaux) Co-Authored-By: Claude Opus 5.5 (1M context) --- Cargo.lock | 277 +++++++++++------------------------------------------ 1 file changed, 58 insertions(+), 219 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 090b4d8..92d1d9c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -334,12 +334,6 @@ version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3fb67a6e08acf24fdeccbac2cb6ac4305825bd1f117462e0e6f2f193345ad56" -[[package]] -name = "as-raw-xcb-connection" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "175571dd1d178ced59193a6fc02dde1b972eb0bc56c892cde9beeceac5bf0f6b" - [[package]] name = "as-slice" version = "0.2.1" @@ -832,7 +826,6 @@ dependencies = [ [[package]] name = "build_helpers" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#08a09e3dfa1f729d52585fcedd6e731130235363" dependencies = [ "cfg_aliases", ] @@ -1018,7 +1011,6 @@ dependencies = [ [[package]] name = "clipboard_macos" version = "0.1.0" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=sctk-0.20#f68595ee0e62fbd6589f4709b5aaa5c3c7ea5f6c" dependencies = [ "objc", "objc-foundation", @@ -1028,22 +1020,12 @@ dependencies = [ [[package]] name = "clipboard_wayland" version = "0.2.2" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=sctk-0.20#f68595ee0e62fbd6589f4709b5aaa5c3c7ea5f6c" dependencies = [ "dnd", "mime 0.1.0", "smithay-clipboard", ] -[[package]] -name = "clipboard_x11" -version = "0.4.2" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=sctk-0.20#f68595ee0e62fbd6589f4709b5aaa5c3c7ea5f6c" -dependencies = [ - "thiserror 1.0.69", - "x11rb", -] - [[package]] name = "cmov" version = "0.5.4" @@ -1349,13 +1331,25 @@ dependencies = [ "libm", ] +[[package]] +name = "cosmic-client-toolkit" +version = "0.2.0" +dependencies = [ + "bitflags 2.13.2", + "cosmic-protocols 0.2.0", + "libc", + "smithay-client-toolkit", + "wayland-client", + "wayland-protocols", +] + [[package]] name = "cosmic-client-toolkit" version = "0.2.0" source = "git+https://github.com/pop-os/cosmic-protocols?rev=c0cff4d#c0cff4db14c37ed954983158e4055aa94c7741d9" dependencies = [ "bitflags 2.13.2", - "cosmic-protocols", + "cosmic-protocols 0.2.0 (git+https://github.com/pop-os/cosmic-protocols?rev=c0cff4d)", "libc", "smithay-client-toolkit", "wayland-client", @@ -1365,7 +1359,6 @@ dependencies = [ [[package]] name = "cosmic-config" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#08a09e3dfa1f729d52585fcedd6e731130235363" dependencies = [ "atomicwrites", "cosmic-config-derive", @@ -1386,7 +1379,6 @@ dependencies = [ [[package]] name = "cosmic-config-derive" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#08a09e3dfa1f729d52585fcedd6e731130235363" dependencies = [ "quote", "syn 2.0.119", @@ -1401,7 +1393,7 @@ dependencies = [ "bstr", "bzip2", "compio", - "cosmic-client-toolkit", + "cosmic-client-toolkit 0.2.0 (git+https://github.com/pop-os/cosmic-protocols?rev=c0cff4d)", "cosmic-mime-apps", "dirs 6.0.0", "fastrand", @@ -1420,7 +1412,7 @@ dependencies = [ "jiff-icu", "jxl-oxide", "libc", - "libcosmic", + "libcosmic-yoda", "log", "lzma-rust2", "md-5", @@ -1481,7 +1473,6 @@ dependencies = [ [[package]] name = "cosmic-freedesktop-icons" version = "0.4.0" -source = "git+https://github.com/pop-os/freedesktop-icons#ab4c57b8e416c6af9297cb04d101889896fd9a92" dependencies = [ "bstr", "btoi", @@ -1503,6 +1494,19 @@ dependencies = [ "xdg", ] +[[package]] +name = "cosmic-protocols" +version = "0.2.0" +dependencies = [ + "bitflags 2.13.2", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-protocols-wlr", + "wayland-scanner", + "wayland-server", +] + [[package]] name = "cosmic-protocols" version = "0.2.0" @@ -1520,7 +1524,6 @@ dependencies = [ [[package]] name = "cosmic-settings-config" version = "1.9.0" -source = "git+https://github.com/pop-os/cosmic-settings-daemon#ac6190062c67dd687c2c1ea66e6cbea4dc9261b9" dependencies = [ "cosmic-config", "ron 0.11.0", @@ -1532,8 +1535,7 @@ dependencies = [ [[package]] name = "cosmic-settings-daemon" -version = "0.1.0" -source = "git+https://github.com/pop-os/dbus-settings-bindings#eed01dd3609e90e3c8cd043656734c500956c793" +version = "0.1.1-yoda.1" dependencies = [ "zbus 5.19.0", ] @@ -1541,8 +1543,6 @@ dependencies = [ [[package]] name = "cosmic-text" version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be17b688510d934ce13f48a2beba700e11583e281e0fda99c22bb256a14eda73" dependencies = [ "bitflags 2.13.2", "fontdb", @@ -1560,12 +1560,12 @@ dependencies = [ "unicode-linebreak", "unicode-script", "unicode-segmentation", + "unicode-width", ] [[package]] name = "cosmic-theme" version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#08a09e3dfa1f729d52585fcedd6e731130235363" dependencies = [ "almost", "configparser", @@ -1656,7 +1656,6 @@ checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" [[package]] name = "cryoglyph" version = "0.1.0" -source = "git+https://github.com/iced-rs/cryoglyph.git?rev=e429a025df36ab8145708acb309080ae3deec17a#e429a025df36ab8145708acb309080ae3deec17a" dependencies = [ "cosmic-text", "etagere", @@ -1702,15 +1701,6 @@ dependencies = [ "uncased", ] -[[package]] -name = "ctor" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83cf0d42651b16c6dfe68685716d18480d18a9c39c62d76e8cf3eb6ed5d8bcbf" -dependencies = [ - "dtor", -] - [[package]] name = "ctutils" version = "0.4.2" @@ -2006,7 +1996,6 @@ dependencies = [ [[package]] name = "dnd" version = "0.1.0" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=sctk-0.20#f68595ee0e62fbd6589f4709b5aaa5c3c7ea5f6c" dependencies = [ "bitflags 2.13.2", "mime 0.1.0", @@ -2033,52 +2022,6 @@ checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" [[package]] name = "dpi" version = "0.1.2" -source = "git+https://github.com/pop-os/winit.git?rev=9567503#9567503d34130113e36b0167a2b8829c3756e429" - -[[package]] -name = "drm" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0f8a69e60d75ae7dab4ef26a59ca99f2a89d4c142089b537775ae0c198bdcde" -dependencies = [ - "bitflags 2.13.2", - "bytemuck", - "drm-ffi", - "drm-fourcc", - "rustix 0.38.44", -] - -[[package]] -name = "drm-ffi" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41334f8405792483e32ad05fbb9c5680ff4e84491883d2947a4757dc54cb2ac6" -dependencies = [ - "drm-sys", - "rustix 0.38.44", -] - -[[package]] -name = "drm-fourcc" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0aafbcdb8afc29c1a7ee5fbe53b5d62f4565b35a042a662ca9fecd0b54dae6f4" - -[[package]] -name = "drm-sys" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d09ff881f92f118b11105ba5e34ff8f4adf27b30dae8f12e28c193af1c83176" -dependencies = [ - "libc", - "linux-raw-sys 0.6.5", -] - -[[package]] -name = "dtor" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edf234dd1594d6dd434a8fb8cada51ddbbc593e40e4a01556a0b31c62da2775b" [[package]] name = "dyn-clone" @@ -2655,16 +2598,6 @@ dependencies = [ "version_check", ] -[[package]] -name = "gethostname" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bd49230192a3797a9a4d6abe9b3eed6f7fa4c8a8a4947977c6f80025f92cbd8" -dependencies = [ - "rustix 1.1.4", - "windows-link 0.2.1", -] - [[package]] name = "getrandom" version = "0.2.17" @@ -3143,7 +3076,6 @@ dependencies = [ [[package]] name = "iced" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#08a09e3dfa1f729d52585fcedd6e731130235363" dependencies = [ "build_helpers", "dnd", @@ -3165,7 +3097,6 @@ dependencies = [ [[package]] name = "iced_accessibility" version = "0.1.0" -source = "git+https://github.com/pop-os/libcosmic.git#08a09e3dfa1f729d52585fcedd6e731130235363" dependencies = [ "accesskit", "accesskit_winit", @@ -3174,12 +3105,11 @@ dependencies = [ [[package]] name = "iced_core" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#08a09e3dfa1f729d52585fcedd6e731130235363" dependencies = [ "bitflags 2.13.2", "build_helpers", "bytes", - "cosmic-client-toolkit", + "cosmic-client-toolkit 0.2.0", "dnd", "glam", "lilt", @@ -3200,7 +3130,6 @@ dependencies = [ [[package]] name = "iced_debug" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#08a09e3dfa1f729d52585fcedd6e731130235363" dependencies = [ "iced_core", "iced_futures", @@ -3210,7 +3139,6 @@ dependencies = [ [[package]] name = "iced_futures" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#08a09e3dfa1f729d52585fcedd6e731130235363" dependencies = [ "futures", "iced_core", @@ -3224,7 +3152,6 @@ dependencies = [ [[package]] name = "iced_graphics" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#08a09e3dfa1f729d52585fcedd6e731130235363" dependencies = [ "bitflags 2.13.2", "bytemuck", @@ -3245,7 +3172,6 @@ dependencies = [ [[package]] name = "iced_program" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#08a09e3dfa1f729d52585fcedd6e731130235363" dependencies = [ "iced_graphics", "iced_runtime", @@ -3254,7 +3180,6 @@ dependencies = [ [[package]] name = "iced_renderer" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#08a09e3dfa1f729d52585fcedd6e731130235363" dependencies = [ "iced_graphics", "iced_tiny_skia", @@ -3266,11 +3191,10 @@ dependencies = [ [[package]] name = "iced_runtime" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#08a09e3dfa1f729d52585fcedd6e731130235363" dependencies = [ "build_helpers", "bytes", - "cosmic-client-toolkit", + "cosmic-client-toolkit 0.2.0", "dnd", "iced_core", "iced_futures", @@ -3282,7 +3206,6 @@ dependencies = [ [[package]] name = "iced_tiny_skia" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#08a09e3dfa1f729d52585fcedd6e731130235363" dependencies = [ "bytemuck", "cosmic-text", @@ -3299,13 +3222,11 @@ dependencies = [ [[package]] name = "iced_wgpu" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#08a09e3dfa1f729d52585fcedd6e731130235363" dependencies = [ - "as-raw-xcb-connection", "bitflags 2.13.2", "build_helpers", "bytemuck", - "cosmic-client-toolkit", + "cosmic-client-toolkit 0.2.0", "cryoglyph", "futures", "glam", @@ -3319,22 +3240,19 @@ dependencies = [ "rustc-hash 2.1.3", "rustix 0.38.44", "thiserror 2.0.20", - "tiny-xlib", "wayland-backend", "wayland-client", "wayland-protocols", "wayland-sys", "wgpu", - "x11rb", ] [[package]] name = "iced_widget" version = "0.14.2" -source = "git+https://github.com/pop-os/libcosmic.git#08a09e3dfa1f729d52585fcedd6e731130235363" dependencies = [ "build_helpers", - "cosmic-client-toolkit", + "cosmic-client-toolkit 0.2.0", "dnd", "iced_renderer", "iced_runtime", @@ -3350,10 +3268,9 @@ dependencies = [ [[package]] name = "iced_winit" version = "0.14.0" -source = "git+https://github.com/pop-os/libcosmic.git#08a09e3dfa1f729d52585fcedd6e731130235363" dependencies = [ "build_helpers", - "cosmic-client-toolkit", + "cosmic-client-toolkit 0.2.0", "cursor-icon", "dnd", "iced_debug", @@ -4494,15 +4411,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" [[package]] -name = "libcosmic" -version = "1.0.0" -source = "git+https://github.com/pop-os/libcosmic.git#08a09e3dfa1f729d52585fcedd6e731130235363" +name = "libcosmic-yoda" +version = "0.1.0-yoda.2" dependencies = [ "apply", "ashpd 0.12.3", "auto_enums", "build_helpers", - "cosmic-client-toolkit", + "cosmic-client-toolkit 0.2.0", "cosmic-config", "cosmic-freedesktop-icons", "cosmic-settings-config", @@ -4608,12 +4524,6 @@ version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" -[[package]] -name = "linux-raw-sys" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a385b1be4e5c3e362ad2ffa73c392e53f031eaa5b7d648e64cd87f27f6063d7" - [[package]] name = "linux-raw-sys" version = "0.12.1" @@ -4853,7 +4763,6 @@ dependencies = [ [[package]] name = "mime" version = "0.1.0" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=sctk-0.20#f68595ee0e62fbd6589f4709b5aaa5c3c7ea5f6c" dependencies = [ "smithay-clipboard", ] @@ -6882,7 +6791,6 @@ dependencies = [ [[package]] name = "smithay-clipboard" version = "0.8.0" -source = "git+https://github.com/pop-os/smithay-clipboard?tag=sctk-0.20#859b02c88f45c554049a67c6ddeec1692ce0e20b" dependencies = [ "libc", "raw-window-handle", @@ -6913,31 +6821,26 @@ dependencies = [ [[package]] name = "softbuffer" version = "0.4.1" -source = "git+https://github.com/pop-os/softbuffer?tag=cosmic-4.0#c2b2c19ddb38ff17495643699f97cb1f2064a1be" dependencies = [ - "as-raw-xcb-connection", "bytemuck", "cfg_aliases", "cocoa", "core-graphics", - "drm", "fastrand", "foreign-types", "js-sys", + "libredox", "log", "memmap2 0.9.11", "objc", "raw-window-handle", - "redox_syscall 0.5.18", "rustix 0.38.44", - "tiny-xlib", "wasm-bindgen", "wayland-backend", "wayland-client", "wayland-sys", "web-sys", "windows-sys 0.52.0", - "x11rb", ] [[package]] @@ -7348,19 +7251,6 @@ dependencies = [ "strict-num", ] -[[package]] -name = "tiny-xlib" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a90a0ca3ee6a69f2ad28fd11621a4c3f03b371f366be500b64df260c4ffbafb4" -dependencies = [ - "as-raw-xcb-connection", - "ctor", - "libloading", - "pkg-config", - "tracing", -] - [[package]] name = "tinystr" version = "0.8.4" @@ -8273,12 +8163,10 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "window_clipboard" version = "0.4.1" -source = "git+https://github.com/pop-os/window_clipboard.git?tag=sctk-0.20#f68595ee0e62fbd6589f4709b5aaa5c3c7ea5f6c" dependencies = [ "clipboard-win", "clipboard_macos", "clipboard_wayland", - "clipboard_x11", "dnd", "mime 0.1.0", "raw-window-handle", @@ -8727,7 +8615,6 @@ checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" [[package]] name = "winit" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?rev=9567503#9567503d34130113e36b0167a2b8829c3756e429" dependencies = [ "bitflags 2.13.2", "cfg_aliases", @@ -8747,13 +8634,11 @@ dependencies = [ "winit-wayland", "winit-web", "winit-win32", - "winit-x11", ] [[package]] name = "winit-android" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?rev=9567503#9567503d34130113e36b0167a2b8829c3756e429" dependencies = [ "android-activity", "bitflags 2.13.2", @@ -8768,7 +8653,6 @@ dependencies = [ [[package]] name = "winit-appkit" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?rev=9567503#9567503d34130113e36b0167a2b8829c3756e429" dependencies = [ "bitflags 2.13.2", "block2 0.6.2", @@ -8790,7 +8674,6 @@ dependencies = [ [[package]] name = "winit-common" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?rev=9567503#9567503d34130113e36b0167a2b8829c3756e429" dependencies = [ "memmap2 0.9.11", "objc2 0.6.4", @@ -8798,14 +8681,12 @@ dependencies = [ "smol_str", "tracing", "winit-core", - "x11-dl", "xkbcommon-dl", ] [[package]] name = "winit-core" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?rev=9567503#9567503d34130113e36b0167a2b8829c3756e429" dependencies = [ "bitflags 2.13.2", "cursor-icon", @@ -8819,7 +8700,6 @@ dependencies = [ [[package]] name = "winit-orbital" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?rev=9567503#9567503d34130113e36b0167a2b8829c3756e429" dependencies = [ "bitflags 2.13.2", "dpi", @@ -8835,7 +8715,6 @@ dependencies = [ [[package]] name = "winit-uikit" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?rev=9567503#9567503d34130113e36b0167a2b8829c3756e429" dependencies = [ "bitflags 2.13.2", "block2 0.6.2", @@ -8855,7 +8734,6 @@ dependencies = [ [[package]] name = "winit-wayland" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?rev=9567503#9567503d34130113e36b0167a2b8829c3756e429" dependencies = [ "ahash", "bitflags 2.13.2", @@ -8881,7 +8759,6 @@ dependencies = [ [[package]] name = "winit-web" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?rev=9567503#9567503d34130113e36b0167a2b8829c3756e429" dependencies = [ "atomic-waker", "bitflags 2.13.2", @@ -8903,7 +8780,6 @@ dependencies = [ [[package]] name = "winit-win32" version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?rev=9567503#9567503d34130113e36b0167a2b8829c3756e429" dependencies = [ "bitflags 2.13.2", "cursor-icon", @@ -8916,29 +8792,6 @@ dependencies = [ "winit-core", ] -[[package]] -name = "winit-x11" -version = "0.31.0-beta.2" -source = "git+https://github.com/pop-os/winit.git?rev=9567503#9567503d34130113e36b0167a2b8829c3756e429" -dependencies = [ - "bitflags 2.13.2", - "bytemuck", - "calloop", - "cursor-icon", - "dpi", - "libc", - "percent-encoding", - "raw-window-handle", - "rustix 1.1.4", - "smol_str", - "tracing", - "winit-common", - "winit-core", - "x11-dl", - "x11rb", - "xkbcommon-dl", -] - [[package]] name = "winnow" version = "1.0.4" @@ -8969,39 +8822,6 @@ dependencies = [ "either", ] -[[package]] -name = "x11-dl" -version = "2.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" -dependencies = [ - "libc", - "once_cell", - "pkg-config", -] - -[[package]] -name = "x11rb" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9993aa5be5a26815fe2c3eacfc1fde061fc1a1f094bf1ad2a18bf9c495dd7414" -dependencies = [ - "as-raw-xcb-connection", - "gethostname", - "libc", - "libloading", - "once_cell", - "rustix 1.1.4", - "x11rb-protocol", - "xcursor", -] - -[[package]] -name = "x11rb-protocol" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea6fc2961e4ef194dcbfe56bb845534d0dc8098940c7e5c012a258bfec6701bd" - [[package]] name = "xattr" version = "1.6.1" @@ -9634,3 +9454,22 @@ dependencies = [ "syn 3.0.5", "winnow", ] + +[[patch.unused]] +name = "winit-x11" +version = "0.31.0-beta.2" + +[[patch.unused]] +name = "dnd" +version = "0.1.0" +source = "git+https://forge.aditua.com/leyoda/window_clipboard.git?branch=yoda-x11-optional#af8e6a872d8ac4956e044b9cb05a615a48261a57" + +[[patch.unused]] +name = "mime" +version = "0.1.0" +source = "git+https://forge.aditua.com/leyoda/window_clipboard.git?branch=yoda-x11-optional#af8e6a872d8ac4956e044b9cb05a615a48261a57" + +[[patch.unused]] +name = "window_clipboard" +version = "0.4.1" +source = "git+https://forge.aditua.com/leyoda/window_clipboard.git?branch=yoda-x11-optional#af8e6a872d8ac4956e044b9cb05a615a48261a57"