Compare commits

..

No commits in common. "7f22e7ce730c10dd59044287857425c5a914efba" and "198dd88251ef944e99292fcc23fdfa19958e60c5" have entirely different histories.

29 changed files with 664 additions and 1104 deletions

1514
Cargo.lock generated

File diff suppressed because it is too large Load diff

View file

@ -1,6 +1,6 @@
[package] [package]
name = "cosmic-player" name = "cosmic-player"
version = "1.6.0" version = "1.3.0"
edition = "2024" edition = "2024"
rust-version = "1.93" rust-version = "1.93"

24
debian/changelog vendored
View file

@ -1,27 +1,3 @@
cosmic-player (1.6.0) noble; urgency=medium
* Epoch 1.6.0 version update
-- Jeremy Soller <jeremy@system76.com> Tue, 18 Aug 2026 07:14:20 -0600
cosmic-player (1.5.0) noble; urgency=medium
* Epoch 1.5.0 version update
-- Jeremy Soller <jeremy@system76.com> Tue, 28 Jul 2026 09:14:34 -0600
cosmic-player (1.4.0) noble; urgency=medium
* Epoch 1.4.0 version update
-- Jeremy Soller <jeremy@system76.com> Mon, 20 Jul 2026 14:36:34 -0600
cosmic-player (1.3.0) noble; urgency=medium
* Epoch 1.3.0 version update
-- Jeremy Soller <jeremy@system76.com> Sun, 12 Jul 2026 13:21:52 -0600
cosmic-player (1.2.0) noble; urgency=medium cosmic-player (1.2.0) noble; urgency=medium
* Epoch 1.2.0 version update * Epoch 1.2.0 version update

View file

@ -17,7 +17,7 @@ settings = الإعدادات
### Appearance ### Appearance
appearance = المظهر appearance = المظهر
theme = السمة theme = النسق
match-desktop = طابق سطح المكتب match-desktop = طابق سطح المكتب
dark = داكن dark = داكن
light = فاتح light = فاتح
@ -34,7 +34,7 @@ close-file = أغلِق الملف
open-media-folder = افتح مجلَّد الوسائط... open-media-folder = افتح مجلَّد الوسائط...
open-recent-media-folder = افتح مجلِّد الوسائط الحديثة open-recent-media-folder = افتح مجلِّد الوسائط الحديثة
close-media-folder = أغلِق مجلد الوسائط close-media-folder = أغلِق مجلد الوسائط
quit = إنهِ quit = أنهِ
off = معطّل off = معطّل
clear-recent = امحُ القائمة الحديثة clear-recent = امحُ القائمة الحديثة
repeat-disabled = التكرار مُعطَّل repeat-disabled = التكرار مُعطَّل

View file

@ -1,3 +1,2 @@
quit = Surt quit = Surt
settings = Configuració settings = Configuració
open-file = Obre el fitxer

View file

@ -1,11 +0,0 @@
quit = Afslut
appearance = Udseende
theme = Tema
match-desktop = Følg skrivebordets indstillinger
dark = Mørkt
light = Lyst
close-file = Luk fil
settings = Indstillinger
open-file = Åbn fil
open-folder = Åbn mappe
file = Fil

View file

@ -10,7 +10,7 @@ untitled = Χωρίς τίτλο
theme = Θέμα theme = Θέμα
repeat-track = Επανάληψη κομματιού repeat-track = Επανάληψη κομματιού
appearance = Εμφάνιση appearance = Εμφάνιση
quit = Τερματισμός quit = Έξοδος
album = Άλμπουμ: { $album } album = Άλμπουμ: { $album }
playback = Αναπαραγωγή playback = Αναπαραγωγή
next-frame = Επόμενο καρέ next-frame = Επόμενο καρέ

View file

@ -1,11 +0,0 @@
quit = Quit
settings = Settings
appearance = Appearance
theme = Theme
match-desktop = Match desktop
dark = Dark
light = Light
file = File
close-file = Close file
open-file = Open file
open-folder = Open folder

View file

@ -1 +0,0 @@
quit = خروج

View file

@ -11,7 +11,7 @@ unknown-author = Tuntematon tekijä
untitled = Nimetön untitled = Nimetön
appearance = Ulkoasu appearance = Ulkoasu
theme = Teema theme = Teema
match-desktop = Sama kuin työpöytä match-desktop = Sovita työpöytään
dark = Tumma dark = Tumma
light = Vaalea light = Vaalea
file = Tiedosto file = Tiedosto

View file

@ -2,7 +2,7 @@ album = Album : { $album }
audio = Audio audio = Audio
no-video-or-audio-file-open = Aucun média sélectionné no-video-or-audio-file-open = Aucun média sélectionné
open-file = Ouvrir le fichier open-file = Ouvrir le fichier
open-folder = Ouvrir le dossier open-folder = Ouvrir dossier
subtitles = Sous-titres subtitles = Sous-titres
unknown-author = Auteur Inconnu unknown-author = Auteur Inconnu
untitled = Sans titre untitled = Sans titre

View file

@ -1,36 +0,0 @@
settings = Axustes
appearance = Apariencia
theme = Tema
match-desktop = Axustar ao escritorio
dark = Escuro
light = Claro
file = Ficheiro
close-file = Pechar ficheiro
quit = Pechar
open-file = Abrir ficheiro
open-folder = Abrir cartafol
album = Álbum: { $album }
audio = Audio
no-video-or-audio-file-open = Non hai ningún ficheiro de vídeo ou audio aberto
off = Desactivado
subtitles = Subtitulos
unknown-author = Autor descoñecido
untitled = Sen titulo
open-media = Abrir multimedia..
open-recent-media = Abrir multimedia recente
clear-recent = Limpar lista de recentes
open-media-folder = Abrir cartafol multimedia...
open-recent-media-folder = Abrir o cartafol de medios recentes
close-media-folder = Pechar carpeta multimedia
repeat-disabled = Repetición desactivada
repeat-track = Repetir pista
playback = Reprodución
next-frame = Seguinte fotograma
previous-frame = Fotograma anterior
ab-repeat = Repetición A-B
ab-repeat-set-a = Repetición A-B (A)
ab-repeat-set-b = Repetición A-B (B)
ab-repeat-clear = Limpar repetición A-B
xdg-name = Reproductor Multimedia COSMIC
xdg-comment = Reprodutor multimedia para o escritorio COSMIC
xdg-keywords = Audio;Película;Filme;Música;Son;Vídeo;

View file

@ -3,13 +3,13 @@
## Settings ## Settings
settings = सेटिंग्स settings = सेटिंग
### Appearance ### Appearance
appearance = रुप-रंग appearance = उपस्थिति
theme = प्रसंग theme = थीम
match-desktop = डेस्कटॉप से मेल खाएँ match-desktop = डेस्कटॉप से मिलाएं
dark = डार्क dark = डार्क
light = लाइट light = लाइट
album = एल्बम: { $album } album = एल्बम: { $album }
@ -24,7 +24,7 @@ close-file = फ़ाइल बंद करें
open-media-folder = मीडिया फ़ोल्डर खोलें… open-media-folder = मीडिया फ़ोल्डर खोलें…
open-recent-media-folder = हाल का मीडिया फ़ोल्डर खोलें open-recent-media-folder = हाल का मीडिया फ़ोल्डर खोलें
close-media-folder = मीडिया फ़ोल्डर बंद करें close-media-folder = मीडिया फ़ोल्डर बंद करें
quit = बाहर जाएँ quit = बंद करें
no-video-or-audio-file-open = कोई वीडियो या ऑडियो फ़ाइल खुली नहीं है no-video-or-audio-file-open = कोई वीडियो या ऑडियो फ़ाइल खुली नहीं है
open-media = मीडिया खोलें… open-media = मीडिया खोलें…
open-recent-media = हाल का मीडिया खोलें open-recent-media = हाल का मीडिया खोलें

View file

@ -11,7 +11,7 @@ settings = Pengaturan
untitled = Tidak Berjudul untitled = Tidak Berjudul
appearance = Tampilan appearance = Tampilan
theme = Tema theme = Tema
match-desktop = Cocok desktop match-desktop = Cocokkan desktop
dark = Gelap dark = Gelap
light = Terang light = Terang
file = Berkas file = Berkas
@ -31,6 +31,3 @@ ab-repeat = Pengulangan A-B
playback = Pemutaran playback = Pemutaran
next-frame = Bagian Selanjutnya next-frame = Bagian Selanjutnya
previous-frame = Bagian Sebelumnya previous-frame = Bagian Sebelumnya
xdg-name = Pemutar Media COSMIC
xdg-comment = Pemutar Media untuk desktop COSMIC
xdg-keywords = Audio;Film;Film;Musik;Suara;Video;

View file

@ -18,7 +18,7 @@ settings = Impostazioni
appearance = Aspetto appearance = Aspetto
theme = Tema theme = Tema
match-desktop = Abbina al desktop match-desktop = Sistema
dark = Scuro dark = Scuro
light = Chiaro light = Chiaro

View file

@ -1,11 +1,11 @@
open-file = Файлды ашу open-file = Файлды ашу
open-folder = Буманы ашу open-folder = Буманы ашу
settings = Баптаулар settings = Баптаулар
appearance = Сыртқы көрініс appearance = Сыртқы түрі
theme = Тема theme = Тақырып
match-desktop = Жұмыс үстеліне сәйкес болу match-desktop = Жұмыс үстеліне сәйкес келу
dark = Қою dark = Қараңғы
light = Ашық light = Жарық
file = Файл file = Файл
quit = Шығу quit = Шығу
close-file = Файлды жабу close-file = Файлды жабу

View file

@ -1,36 +0,0 @@
settings = Sazkarî
appearance = Xuyang
theme = Rûkar
dark = Tarî
light = Ronî
quit = Biqedîne
open-file = Pelê veke
open-folder = Peldankê veke
match-desktop = Bi sermaseyê re li hev bîne
album = Elbum: { $album }
audio = Deng
no-video-or-audio-file-open = Tu pelê vîdiyo yan jî dengê vekirî tune ne
off = Vemirî
subtitles = Jêrnivîs
unknown-author = Hunermendê nenas
untitled = Bê sernav
file = Pel
open-media = Mediyayê veke...
close-file = Pelê bigire
ab-repeat = A-B dûbare bike
open-recent-media = Mediyayên dawî veke
clear-recent = Lîsteya dawî pak bike
open-media-folder = Peldanka mediyayê veke...
open-recent-media-folder = Peldanka mediyayê ya dawî veke
close-media-folder = Peldanka mediyayê bigire
repeat-disabled = Dûbarekirin neçalak e
repeat-track = Stranê dûbare bike
playback = Lîstin
next-frame = Wêneya pêş
previous-frame = Wêneya paş
ab-repeat-set-a = A-B (A) dûbare bike
ab-repeat-set-b = A-B (B) dûbare bike
ab-repeat-clear = Dûbarekirina A-B pak bike
xdg-name = Lîstikvanê mediyayê ya COSMIC
xdg-comment = Lîstikvanê mediyayê ji bo sermaseya COSMIC
xdg-keywords = Deng;Fîlm;Fîlm;Muzîk;Deng;Vîdiyo;

View file

@ -25,11 +25,3 @@ close-file = 파일 닫기
repeat-disabled = 반복 비활성화 repeat-disabled = 반복 비활성화
previous-frame = 이전 프레임 previous-frame = 이전 프레임
next-frame = 다음 프레임 next-frame = 다음 프레임
ab-repeat = A-B 반복
ab-repeat-set-a = A-B 반복 (A)
ab-repeat-set-b = A-B 반복 (B)
ab-repeat-clear = A-B 반복 취소
xdg-name = COSMIC 미디어 플레이어
xdg-comment = COSMIC 데스크톱을 위한 미디어 플레이어
playback = 재생
repeat-track = 트랙 반복

View file

@ -1,5 +1,5 @@
quit = Išjungti quit = Išeiti
settings = Nuostatai settings = Nuostatos
close-file = Uždaryti failą close-file = Uždaryti failą
match-desktop = Pagal darbalaukio temą match-desktop = Pagal darbalaukio temą
appearance = Išvaizda appearance = Išvaizda

View file

@ -1,33 +1 @@
settings = Paramètres settings = Paramètres
album = Album : { $album }
audio = Àudio
no-video-or-audio-file-open = Cap de fichièr vidèo o àudio pas dobèrt
off = Desactivat
subtitles = Sostítols
unknown-author = Autor desconegut
untitled = Sens títol
appearance = Aparéncia
theme = Tèma
match-desktop = Assortir al burèu
dark = Fosc
light = Clar
file = Fichièr
open-media = Dorbir mèdia...
open-recent-media = Dobrir un mèdia recent
clear-recent = Escafar la lista recenta
close-file = Tampar lo fichièr
open-media-folder = Dobrir un dossièr multimèdia...
open-recent-media-folder = Dobrir lo dossièr del mèdia recent
close-media-folder = Tampar lo dossièr del mèdia
repeat-disabled = Repeticion desactivada
repeat-track = Repetir la pista
playback = Lectura
next-frame = Imatge seguent
previous-frame = Imatge precedent
ab-repeat = Repetir la seccion A-B
ab-repeat-set-a = Repeticion A-B (A)
ab-repeat-set-b = Repeticion A-B (B)
ab-repeat-clear = Escafar la repeticion A-B
xdg-name = Lector multimèdia COSMIC
xdg-comment = Lector multimèdia pel burèu COSMIC
xdg-keywords = Àudio;Musica;Vidèo;Film;Son;

View file

@ -1,10 +1,10 @@
settings = ਸੈਟਿੰਗਾਂ settings = ਸੈਟਿੰਗਾਂ
appearance = ਦਿੱਖ appearance = ਦਿੱਖ
theme = ਥੀਮ theme = ਥੀਮ
match-desktop = ਡੈਸਕਟਾਪ ਨਾਲ ਮਿਲਾਓ match-desktop = ਡੈਸਕਟਾਪ ਨਾਲ ਮਿਲਦਾ
dark = ਗੂੜ੍ਹਾ dark = ਗੂੜ੍ਹਾ
light = ਫਿੱਕਾ light = ਹਲਕਾ
quit = ਸਮਾਪਤ quit = ਬਾਹਰ
open-file = ਫ਼ਾਇਲ ਨੂੰ ਖੋਲ੍ਹੋ open-file = ਫ਼ਾਇਲ ਨੂੰ ਖੋਲ੍ਹੋ
file = ਫ਼ਾਇਲ file = ਫ਼ਾਇਲ
open-folder = ਫੋਲਡਰ ਨੂੰ ਖੋਲ੍ਹੋ open-folder = ਫੋਲਡਰ ਨੂੰ ਖੋਲ੍ਹੋ

View file

@ -34,7 +34,7 @@ close-file = Zamknij plik
open-media-folder = Otwórz katalog z nośnikami… open-media-folder = Otwórz katalog z nośnikami…
open-recent-media-folder = Otwórz poprzedni katalog z nośnikami open-recent-media-folder = Otwórz poprzedni katalog z nośnikami
close-media-folder = Zamknij katalog z nośnikami close-media-folder = Zamknij katalog z nośnikami
quit = Zakończ quit = Zamknij
off = Wyłączone off = Wyłączone
clear-recent = Wyczyść listę poprzednich clear-recent = Wyczyść listę poprzednich
repeat-disabled = Powtarzanie wyłączone repeat-disabled = Powtarzanie wyłączone

View file

@ -34,7 +34,7 @@ close-file = Fechar arquivo
open-media-folder = Abrir pasta de mídias... open-media-folder = Abrir pasta de mídias...
open-recent-media-folder = Abrir pasta recente de mídias open-recent-media-folder = Abrir pasta recente de mídias
close-media-folder = Fechar pasta de mídias close-media-folder = Fechar pasta de mídias
quit = Encerrar quit = Sair
off = Desligado off = Desligado
clear-recent = Limpar lista de recentes clear-recent = Limpar lista de recentes
repeat-track = Repetir faixa repeat-track = Repetir faixa

View file

@ -15,7 +15,7 @@ light = Светлая
open-file = Открыть файл open-file = Открыть файл
album = Альбом: { $album } album = Альбом: { $album }
audio = Аудио audio = Аудио
no-video-or-audio-file-open = Нет открытых медиафайлов no-video-or-audio-file-open = Нет открытых видео или аудио файлов
open-folder = Открыть папку open-folder = Открыть папку
subtitles = Субтитры subtitles = Субтитры
unknown-author = Неизвестный автор unknown-author = Неизвестный автор
@ -27,7 +27,7 @@ close-file = Закрыть файл
open-media-folder = Открыть папку медиафайлов... open-media-folder = Открыть папку медиафайлов...
open-recent-media-folder = Открыть папку недавних медиафайлов open-recent-media-folder = Открыть папку недавних медиафайлов
close-media-folder = Закрыть папку медиафайлов close-media-folder = Закрыть папку медиафайлов
quit = Завершить quit = Выйти
off = Выкл. off = Выкл.
clear-recent = Очистить список недавних clear-recent = Очистить список недавних
repeat-disabled = Повтор отключён repeat-disabled = Повтор отключён

View file

@ -19,7 +19,7 @@ close-file = Закрити файл
open-media-folder = Відкрити теку... open-media-folder = Відкрити теку...
open-recent-media-folder = Відкрити попередню теку open-recent-media-folder = Відкрити попередню теку
close-media-folder = Закрити теку close-media-folder = Закрити теку
quit = Завершити quit = Вийти
off = Вимк. off = Вимк.
clear-recent = Очистити список clear-recent = Очистити список
repeat-disabled = Не повторювати repeat-disabled = Не повторювати

View file

@ -34,7 +34,7 @@ close-file = 關閉檔案
open-media-folder = 開啟媒體資料夾... open-media-folder = 開啟媒體資料夾...
open-recent-media-folder = 開啟最近使用的媒體資料夾 open-recent-media-folder = 開啟最近使用的媒體資料夾
close-media-folder = 關閉媒體資料夾 close-media-folder = 關閉媒體資料夾
quit = 結束 quit = 退出
off = 關閉 off = 關閉
clear-recent = 清除最近使用清單 clear-recent = 清除最近使用清單
repeat-disabled = 重複已經停用 repeat-disabled = 重複已經停用

View file

@ -901,7 +901,7 @@ impl Application for App {
/// Creates the application, and optionally emits command on initialize. /// Creates the application, and optionally emits command on initialize.
fn init(mut core: Core, flags: Self::Flags) -> (Self, Task<Self::Message>) { fn init(mut core: Core, flags: Self::Flags) -> (Self, Task<Self::Message>) {
core.window.border_padding = Some(0); core.window.content_container = false;
#[cfg(feature = "xdg-portal")] #[cfg(feature = "xdg-portal")]
let inhibit = { let inhibit = {
@ -1062,6 +1062,18 @@ impl Application for App {
} }
} }
fn style(&self) -> Option<cosmic::iced::core::theme::Style> {
// This ensures we have a solid background color even when using no content container
let theme = self.core.system_theme();
Some(cosmic::iced::core::theme::Style {
background_color: theme.cosmic().bg_color().into(),
icon_color: theme.cosmic().on_bg_color().into(),
text_color: theme.cosmic().on_bg_color().into(),
})
}
/// Handle application events here. /// Handle application events here.
fn update(&mut self, message: Self::Message) -> Task<Self::Message> { fn update(&mut self, message: Self::Message) -> Task<Self::Message> {
match message { match message {
@ -1745,7 +1757,11 @@ impl Application for App {
.push(widget::button::suggested(fl!("open-file")).on_press(Message::FileOpen)) .push(widget::button::suggested(fl!("open-file")).on_press(Message::FileOpen))
.push(widget::space::vertical()); .push(widget::space::vertical());
return column.into(); return widget::container(column)
.width(Length::Fill)
.height(Length::Fill)
.class(theme::Container::WindowBackground)
.into();
}; };
let muted = video.muted(); let muted = video.muted();
@ -1765,9 +1781,8 @@ impl Application for App {
let mut background_color = Color::BLACK; let mut background_color = Color::BLACK;
let mut text_color_opt = None; let mut text_color_opt = None;
if !video.has_video() { if !video.has_video() {
let bg = theme.cosmic().background(theme.transparent); background_color = theme.cosmic().bg_component_color().into();
background_color = Color::TRANSPARENT; text_color_opt = Some(Color::from(theme.cosmic().on_bg_component_color()));
text_color_opt = Some(Color::from(bg.on));
let mut col = widget::column::with_capacity(10); let mut col = widget::column::with_capacity(10);
col = col.push(widget::space::vertical()); col = col.push(widget::space::vertical());
@ -1959,7 +1974,7 @@ impl Application for App {
//TODO: move style to libcosmic //TODO: move style to libcosmic
.class(theme::Container::custom(|theme| { .class(theme::Container::custom(|theme| {
let cosmic = theme.cosmic(); let cosmic = theme.cosmic();
let component = &cosmic.background(theme.transparent).component; let component = &cosmic.background(false).component;
widget::container::Style { widget::container::Style {
icon_color: Some(component.on.into()), icon_color: Some(component.on.into()),
text_color: Some(component.on.into()), text_color: Some(component.on.into()),