Resolution obtenue avec les patchs de chemin du workspace (libcosmic-yoda,
cosmic-protocols, window_clipboard, cosmic-text). Pas de changement de code,
uniquement le verrou remis en coherence avec l'arbre local.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
La file driverless ne relaie pas marker-levels: le backend resout l'URI dnssd en point d'acces IPP via ippfind puis lit marker-names/levels/colors via ipptool (timeout 8 s). Le tiroir affiche pastille de couleur, jauge et pourcentage par cartouche; bloc masque si l'imprimante n'expose rien.
Le tiroir de details expose desormais MediaType et ColorModel en plus de PageSize, cupsPrintQuality et Duplex, avec des libellets localises pour les valeurs usuelles (papier ordinaire, photo brillante/mate/satinee, couleur, niveaux de gris...). Persiste via lpadmin -o comme les autres options.
Le tiroir de details charge les capacites reelles de la file (lpoptions -l) et expose des menus deroulants PageSize, cupsPrintQuality et Duplex. Chaque selection est persistee comme defaut systeme de la file via lpadmin -o puis relue. Les options non supportees par un pilote sont masquees.
Interface: liste unique avec etat vide, details/actions/travaux dans un tiroir lateral au titre court (le nom long debordait sur le bouton Fermer). Backend: exclusion des destinations decouvertes dnssd (bit CUPS_PRINTER_DISCOVERED du printer-type) qui ne sont pas de vraies files, dedoublonnage des peripheriques par libelle avec preference dnssd, noms propres pour tous les schemas, suppression tolere une file deja disparue, page de test via lp (auto-detection du template PDF-BANNER).
La page de test est un template de banniere cups-filters (#PDF-BANNER), pas du PostScript: envoi en application/octet-stream pour laisser CUPS detecter le format. Le sanitiseur supprime crochets/parentheses et compacte les underscores (series [32C998] -> series_32C998). Les actions des details passent en flex_row pour eviter le debordement des boutons; bouton de confirmation du dialogue raccourci.
Nouvelle page Imprimantes: liste et etat des files CUPS, ajout (decouverte lpinfo, pilote driverless IPP Everywhere par defaut), suppression, imprimante par defaut, suspension/reprise, page de test et file des travaux avec annulation. Lectures via cups_rs (FFI libcups serialisee), mutations via lpadmin/cupsenable. i18n en/fr, sous-commande 'cosmic-settings printers'.
Reprend le contenu de 52ce463 (22 avril), present sur local/yoda-main
mais jamais reporte sur local/yoda-main-1.3.0. La branche 1.3.0 a ete
coupee sans ce commit, si bien que le paquet construit le 31 juillet ne
contenait plus l'option : `strings /usr/bin/cosmic-settings` ne trouvait
aucune occurrence de position-start.
Retablit dans Bureau > Gestion des fenetres > Controles des fenetres le
bouton « Placer les boutons a gauche (style macOS) », le variant de
message WindowControlsPositionStart qui ecrit Start ou End dans le
CosmicTk (com.system76.CosmicTk), et la cle fluent
window-controls.position-start en en et fr.
Le Cargo.toml de 52ce463 n'est volontairement pas repris : son override
[patch] vers libcosmic est obsolete depuis a44a022, qui resout la
dependance via libcosmic-yoda sous le nom externe `cosmic`. L'API cote
libcosmic est intacte (WindowControlsPosition exporte par widget,
config::window_controls_position()), cargo check passe.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The local libcosmic fork renamed its package to libcosmic-yoda, but this
workspace still asked for `libcosmic` by path, so the whole workspace
failed to resolve.
Naming the dependency key `libcosmic` with `package = "libcosmic-yoda"`
is not enough: a renamed dependency takes its key as the extern name, so
the 67 source files that `use cosmic::` would stop compiling. Key the
dependency `cosmic` instead, matching every other repo in the local
stack, and update the `libcosmic/*` feature strings accordingly.
Also carried in this commit, from earlier work in the tree: the sctk
workspace dependency pinned back to smithay-client-toolkit 0.20.0.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This PRs diff fixes#2109 such that a VPN username now gets written to
`vpn.data`, where NetworkManager and the VPN plugins actually read it
from. The existing `vpn.data` dict is read and merged rather than
replaced, so unrelated keys like remote and ca survive the update.
Profiles saved by earlier versions already have the username sitting in
the keyring, so the secret agent filters it out on read as well. Without
that, the stale entry keeps getting replayed to NetworkManager and
affected connections stay broken after upgrading.
The 'Add image' dialog previously used 'open_file()', which only
accepted a single selection. Switching to 'open_files()' lets users
select multiple wallpaper images at once.
Changes:
- Rename 'AddFile' to 'AddFiles' to reflect new behavior
- Each selected image is loaded and added as batched via 'Task::batch'
- Introduce 'unwrap_dialog_response<T>' helper.
Closes#2077
Same fix as pop-os/cosmic-bg#142, which was asked for there.
`open_image` has two decoding paths, and neither applies the Exif
orientation:
`ImageReader::decode` for the common formats, and
`DynamicImage::from_decoder` in
`decode_jpegxl`. Cameras store portrait photos with the pixels laid out
landscape
and record the rotation in the Exif metadata, so such a photo is shown
rotated in
the wallpaper page, both in the preview and in the thumbnails.
Both paths now read the orientation from the decoder and apply it to the
decoded
image. `into_decoder` does not check the allocation limit against the
size of the
decoded image the way `decode` does, so that check is kept explicitly.
Tested with the 8 Exif orientation values, with images that carry no
Exif metadata
(unchanged), and with the JPEG XL wallpapers from gnome-backgrounds,
which decode
identically.
cosmic-greeter needs a different change: it does not decode images
itself. It
passes the raw file bytes to `widget::image::Handle::from_bytes`
(src/common.rs),
and those are decoded by `iced_graphics` with `image::load_from_memory`,
which
does not apply the orientation either. So the orientation has to be
applied before
the handle is built, or in the toolkit.
- [x] I have disclosed use of any AI generated code in my commit
messages.
- [x] I understand these changes in full and will be able to respond to
review comments.
- [x] My change is accurately described in the commit message.
- [x] My contribution is tested and working as described.
- [x] I have read the [Developer Certificate of
Origin](https://developercertificate.org/) and certify my contribution
under its conditions.
Signed-off-by: Leandro Pérez G. <leandropatodo@gmail.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
https://github.com/pop-os/cosmic-settings/issues/2097 really should have
been caught by QA. It appears only the standard regression testing
checklist was performed for
https://github.com/pop-os/cosmic-settings/pull/2063, even though that PR
only modified the Sound page, and we had nothing in the standard
checklist for the Sound page.
To rectify that, this adds a few basic smoke tests for the Sound page in
the standard checklist, to hopefully prevent this from happening again.
(I know we've had this particular problem pop up at least once before,
too, so both sliders working independently is a good thing to have in
the checklist.)
---
- [X] I have disclosed use of any AI generated code in my commit
messages.
- If you are using an LLM, and do not fully understand the changes it is
making to the code base, do not create a PR.
- In our experience, AI generated code often results in overly complex
code that lacks enough context for a proper fix or feature inclusion.
This results in considerably longer code reviews. Due to this, AI
authored or partially authored PRs may be closed without comment.
- [X] I understand these changes in full and will be able to respond to
review comments.
- [X] My change is accurately described in the commit message.
- [X] My contribution is tested and working as described.
- [X] I have read the [Developer Certificate of
Origin](https://developercertificate.org/) and certify my contribution
under its conditions.
Switch the networking pages to use nmrs 3.4.0 for NetworkManager
state, device lists, Wi-Fi operations, VPN imports/activation, and
secret-agent handling.
Remove the old cosmic-settings-network-manager-subscription crate,
drop the direct dbus-settings NetworkManager dependencies, and delete
the unused nmcli VPN helper. Keep nm-connection-editor for profile
creation/editing where the UI still depends on it.
Carry Wi-Fi security metadata through the password flow so SAE/WPA3
personal networks can be activated with SAE key management, and make
failed/cancelled auth attempts clear pending connection state
- [x] I have disclosed use of any AI generated code in my commit
messages.
- If you are using an LLM, and do not fully understand the changes it is
making to the code base, do not create a PR.
- In our experience, AI generated code often results in overly complex
code that lacks enough context for a proper fix or feature inclusion.
This results in considerably longer code reviews. Due to this, AI
authored or partially authored PRs may be closed without comment.
- [x] I understand these changes in full and will be able to respond to
review comments.
- [x] My change is accurately described in the commit message.
- [x] My contribution is tested and working as described.
- [x] I have read the [Developer Certificate of
Origin](https://developercertificate.org/) and certify my contribution
under its conditions.
Updated to work with https://github.com/pop-os/cosmic-panel/pull/627 and
should be tested with that to ensure everything works and is backwards
compatible.