Commit graph

71 commits

Author SHA1 Message Date
Cheong Lau
a27bb5e05d chore: apply clippy suggestions 2025-10-05 04:40:51 +02:00
Vukašin Vojinović
ea349aca82 chore: use std::syncLazyLock
Also migrates workspace members to Rust 2024.
2025-09-03 21:54:46 +02:00
Michael Aaron Murphy
e7b7c3a126 improv: enable dbus-config by default, but only for Linux targets 2025-08-20 17:31:26 +02:00
Michael Aaron Murphy
1af2f4ffe5
chore: format 2025-06-23 17:50:28 +02:00
Michael Aaron Murphy
9b9600a5d6
fix(desktop): matching the wrong desktop enrties and not getting icons 2025-04-04 01:56:19 +02:00
Michael Aaron Murphy
8cf372c9b9
perf: inline public getters/setters, and use non-generic inner functions
To reduce compile-times and avoid some overhead to binary size, this will modify some of our
generic functions to use non-generic inner functions where possible. The inner functions are
marked carefully with `#[inline(never)]` to prevent being inlined by LLVM at their callsites

While looking for generic functions to optimize, I have also taken the opportunity to annotate
public non-generic getters and setters with `#[inline]` to ensure that LLVM will inline them
across crate boundaries. By default, only generic functions are automatically inlined, and
only when enabling fat LTO are constant functions reliably inlined across crate boundaries.
2025-03-21 13:31:34 +01:00
Michael Aaron Murphy
ab887aeeac
feat: add cosmic::theme::spacing() 2025-03-21 13:20:45 +01:00
Michael Aaron Murphy
ab6de5304b
chore(theme): avoid logging errors for unset config parameters 2025-02-19 15:37:59 +01:00
Ashley Wulber
0491c4baaa libcosmic updates 2024-10-18 14:04:39 -04:00
Victoria Brekenfeld
b40839638a fix: Use globals instead of thread-locals
Better support for multi-threaded applications,
especially cosmic-comp rendering in parallel on
multiple threads, each potentially accessing
global configurations such as the active theme,
icon_theme and more...
2024-08-02 20:27:08 +02:00
Ashley Wulber
9292004642 feat: allow preference for dark or light system theme
also converts applet to use preferred system theme
2024-05-14 07:36:08 -04:00
Michael Aaron Murphy
db5d989972 refactor(theme): create Container::ContextDrawer style variant 2024-03-05 08:35:47 -07:00
Ashley Wulber
06b46f455b wip: support desktop portal color-scheme, and accent variables 2024-03-01 21:30:24 -05:00
Ashley Wulber
c390b2614d wip: support desktop portal color-scheme, and accent variables 2024-03-01 21:30:24 -05:00
Ashley Wulber
09cd1a2319 chore(theme): clippy cleanup 2024-02-26 16:50:40 -07:00
Ashley Wulber
efe4ce2f5b refactor: config improvements 2024-01-18 20:19:32 -07:00
Ashley Wulber
06c33dcf06 refactor: optional config subscriptions using dbus 2024-01-02 15:12:14 +01:00
Ashley Wulber
a4d1b1b651 refactor: cosmic-config granular key updates and remove unused generics from cosmic-theme 2024-01-02 15:12:14 +01:00
Ashley Wulber
7cc791a3f5
feat: add support for dark / light mode switching (#178)
* feat: add support for dark / light mode switching and simultaneouscustom light / dark mode themes

* refactor(color-picker): optional initial color and fallback color

* refactor: used FixedPortion for layout of the settings item

This makes sure that the control always has at least the specified portion of the available space

* refactor: make all members of the ThemeBuilder public

* refactor: add and update palette colors

* fix(theme): typo and derive PartialEq for ThemeBuilder

* fix: update color picker usage

* feat: add more variables to the theme

* fix: radius on headerbar

* fix: Theme CosmicConfigEntry impl

* chore: specify rev of taffy

* fix: theme CosmicConfigEntry missing variables

* fix: apply theme type when theme mode changes

* wip: add plus icon to empty color picker button

* chore: fix rev and imports

* refactor(color-picker): allow custom size for the icon

* refactor(color_picker): make color_button public

* update iced
2023-10-16 16:19:04 -04:00
Michael Aaron Murphy
7f0943924a feat(theme): improvements and refactoring of theme module
fix: theme rebase
2023-09-14 01:38:56 +02:00
Michael Aaron Murphy
4e4eeaac12 feat!(widget): rewrite button & icon widget APIs 2023-09-14 01:38:56 +02:00
Michael Aaron Murphy
a387adcb1b chore: improve documentation 2023-08-16 16:59:15 +02:00
Ashley Wulber
20a5227eca refactor: add button components to theme because they have different overlays than others when they are hovered or pressed 2023-08-14 12:31:16 -04:00
Ashley Wulber
1c5a233a98 chore: update toggler colors 2023-08-14 12:31:16 -04:00
Ashley Wulber
ff83f893ef refactor: updates for buttons and checkboxes 2023-08-14 12:31:16 -04:00
Ashley Wulber
f8c25096fd refactor: update existing buttons 2023-08-14 12:31:16 -04:00
Ashley Wulber
6c57e04e36 refactor: introduce thread local THEME variable and distinguish between custom and system theme settings 2023-08-14 12:31:16 -04:00
Ashley Wulber
a618c1b94a wip: calculate theme using new method 2023-08-14 12:31:16 -04:00
Michael Murphy
a223b60a0c
feat!: implement Application API 2023-08-02 11:54:07 +02:00
Ian Douglas Scott
da9b6345d8 Add 'disabled' style for text-input, instead of panicking with todo! 2023-07-26 07:49:28 -06:00
Ashley Wulber
f17d52f37f card widget 2023-07-20 11:11:50 -04:00
Ashley Wulber
850968715c udpate iced to use latest rebase 2023-06-15 20:38:16 +02:00
Ashley Wulber
a8a2e4ad26 feat: theme helper methods 2023-06-12 12:16:31 -04:00
Ashley Wulber
6699aa4756 fix: derive PartialEq for Theme 2023-06-09 18:13:30 -04:00
Ashley Wulber
e056e8c830
Cosmic advanced text (#103)
* wip: update to use cosmic-advanced-text

* use cosmic-advanced-text branch of iced

* fix: line height and spacing for segmented button and update to get svg fix

* fix: spin button styling & spacing

* update iced to fix segmented button border radius

* feat: example improvements

* feat: helper for loading fonts

* feat: add focus style to button

* fix: slider height and iced fixed

* feat: hash icon width and height

* cleanup

* update ci

* refactor: always use lazy feature of iced

* update iced

* update iced

* cleanup & update iced

* update iced: new slider & tiny-skia quad updates

* update iced: fixes for tiny-skia quad rendering with edge case border radius

* re-export iced_runtime & iced_widget

* merge master

* udpate iced

* update iced

* update iced

* update iced

* fix: make rectangle_tracker subscription only return update if there is some

* feat: derive macro for loading a cosmic-config

* feat (cosmic-config): iced subscription

* fix (example): update to rectangle tracker subscription

* fix (cosmic-config)

* refactor(cosmic-config-derive): add support for types with generic parameters

* fix (cosmic-config): feature gate updates for subscription helpers

* feat: support for custom & system themes + move cosmic-theme to libcosmic

* feat: sorta hacky way of creating header bars for libcosmic + update iced to get support for resizable windows in iced-sctk

* update iced

* update and reexport sctk

* fix: applet border radius

* feat (cosmic-theme): add id and name methods

* fix(cosmic-theme): reexport palette from cosmic-theme

* fix(cosmic-config-derive): allow use with reexported cosmic-config

* feat: update iced with fix and refactor applet env vars

* update iced
2023-05-30 12:03:15 -04:00
Ian Douglas Scott
b85c504d72
theme: Use boxed functions instead fn pointers (#99)
This is more general, and necessary if the custom theming is dynamically
generated.

Iced's builtin theme also uses `Box`ed `Fn`, or `Rc` where clone is
required, so this seems reasonable.

Only `Text` is left using `fn`, since it needs to be `Copy`. Hopefully
that can be changed in Iced at some point.

`::custom` methods are added to make these variants a little more
convenient to construct. This replaces a couple `From` implementations,
which are potentially problematic with a generic.
2023-04-28 16:04:57 -07:00
Ashley Wulber
b510b89b98 fix(entry): entry bg alpha typo & border radius fixes 2023-03-03 11:28:32 -05:00
Ashley Wulber
844aeba379 refactor(theme): make Theme Copy 2023-02-28 12:26:38 -07:00
Ashley Wulber
e279566481 fix(button): button link text should be accent color 2023-02-28 12:26:38 -07:00
Ashley Wulber
13aa5f88cb feat(theme): export cosmic-theme & add CosmicContainers to example 2023-02-28 12:26:38 -07:00
Ashley Wulber
cbb21932d8 feat(theme): use cosmic-theme 2023-02-28 12:26:38 -07:00
Ashley Wulber
becdbb6eb3 wip: use CosmicContainer 2023-02-28 12:26:38 -07:00
Ashley Wulber
4eac5c6839 fix(theme): better progress bar colors and update cosmic-theme 2023-02-28 12:26:38 -07:00
Ashley Wulber
d981eb4c4e wip(theme): remove palette 2023-02-28 12:26:38 -07:00
Ashley Wulber
a449a52dee wip(theme): use transparent overlays for component colors where possible 2023-02-28 12:26:38 -07:00
Michael Aaron Murphy
4b7509e1c3 feat(theme): TextInput::Search style 2023-01-30 21:57:24 +01:00
Michael Aaron Murphy
9a095e4d94 feat(divider): add functions for divider style variants of a Rule 2023-01-30 21:57:24 +01:00
13r0ck
59edb3bbf1 Cosmic example: Add Tab navagation 2023-01-06 10:58:42 -07:00
Victoria Brekenfeld
75687acf2f chore: apply cargo fmt 2023-01-04 05:46:24 +01:00
Michael Aaron Murphy
444e389496 refactor!: separate horizontal and vertical segmented button widgets
- Removes the orientation enum in favor of two separate widgets
- Implements the spacing attribute for both widgets
- Demo is updated to display spaced variants of the widgets
2023-01-03 20:29:50 +01:00