No description
Find a file
Ashley Wulber 0b74b0e586
Appearance jammy (#78)
* chore(appearance): add interface i18n phrases

* wip: appearance page skeleton

* wip: more work on the skeletop

* wip: appearance

* wip: add icons and more widgets to appearance page

* wip: set the theme on entering and leaving the appearance panel

* cleanup & layout improvements

* wip(appearance): accent buttons

* fixes

fix default schemas, install methods, and appearance page

* use git deps

* clippy and cleanup

* update libcosmic & fix illustration names

* feat: cosmic-comp theme variables

* use git deps

* fix: add dep to control

* fix: install libwayland-dev

* udpate libcosmic

* wip: reset to default button

* refactor: color button improvements

* feat: import / export themes

* refactor: defaults for most color pickers and toggle for window hint

* refactor: use a context drawer for the container background color

* cleanup(appearance): box ThemeBuilder in Message

* cleanup(appearance): clippy

* fix(appearance): window hint toggle handling

* chore: more entries for the default schema

* fix: typo
2023-10-17 17:05:07 -04:00
.github/workflows Appearance jammy (#78) 2023-10-17 17:05:07 -04:00
.vscode feat: settings application architecture 2023-01-26 23:20:45 +01:00
app Appearance jammy (#78) 2023-10-17 17:05:07 -04:00
debian Appearance jammy (#78) 2023-10-17 17:05:07 -04:00
i18n Appearance jammy (#78) 2023-10-17 17:05:07 -04:00
page Appearance jammy (#78) 2023-10-17 17:05:07 -04:00
pages Appearance jammy (#78) 2023-10-17 17:05:07 -04:00
resources Appearance jammy (#78) 2023-10-17 17:05:07 -04:00
.gitignore chore: add nix flake 2023-06-26 18:22:58 +02:00
Cargo.lock Appearance jammy (#78) 2023-10-17 17:05:07 -04:00
Cargo.toml Appearance jammy (#78) 2023-10-17 17:05:07 -04:00
flake.lock chore: add nix flake 2023-06-26 18:22:58 +02:00
flake.nix feat: dock settings pages 2023-09-12 11:31:29 -04:00
justfile Appearance jammy (#78) 2023-10-17 17:05:07 -04:00
LICENSE.md feat: settings application architecture 2023-01-26 23:20:45 +01:00
README.md feat: implement wallpaper settings page 2023-06-23 17:18:05 +02:00
rust-toolchain chore(rust): 1.70.0 2023-06-27 11:29:19 +02:00

COSMIC Settings

The settings application for the COSMIC desktop environment. Developed with libcosmic, using the iced GUI library.

Build & Install

To compile, a stable Rust compiler and just are required.

  • cargo
  • just
  • lld

Some C libraries are also required for font support at the moment.

  • cmake
  • libexpat1-dev
  • libfontconfig-dev
  • libfreetype-dev
  • pkg-config

Then it can be compiled and installed like so.

just
sudo just install

Packagers

If packaging for a Linux distribution, vendor dependencies locally with the vendor rule, and build with the vendored sources using the build-vendored rule.

just vendor
just build-vendored

When installing files, use the rootdir and prefix variables to change installation paths.

just rootdir=debian/cosmic-settings prefix=/usr install

Translators

Translation files may be found in the i18n directory. New translations may copy the English (en) localization of the project and rename en to the desired ISO 639-1 language code. Translations may be submitted through GitHub as an issue or pull request. Submissions by email or other means are also acceptable; with the preferred name and email to associate with the changes.

Developers

Run the cosmic-settings binary with just run so that logs will be emitted to stderr, and crashes will generate detailed backtraces. Applications shouldn't crash, so when writing code, avoid use of unwrap() and expect(). Instead, log errors with tracing::error!() or tracing::warn!().

This project is split across the following workspace members:

  • app: cosmic-settings GUI frontend and binary
  • page: library for creating and handling settings pages
  • pages: libraries for page-specific logic

When creating a new page, UI-specific code will go directly into app, and page-specific logic will go into a crate under the pages directory. This is mainly to isolate page-specific crate dependencies and logic from the UI; so that the source code specific to the UI is easier to maintain and refactor.

Eventually, pages may be separated into plugins, and this will help with that migration.

License

Licensed under the GNU Public License 3.0.

Contribution

Any contribution intentionally submitted for inclusion in the work by you shall be licensed under the GNU Public License 3.0 (GPL-3.0). Each source file should have a SPDX copyright notice at the top of the file:

// SPDX-License-Identifier: GPL-3.0-only