Files
ltk/debian/copyright
Pedro M. de Echanove Pasquin 9ca3b60f3a
Some checks failed
CI / build + test (push) Has been cancelled
CI / cargo audit (push) Has been cancelled
ltk: responsive padding/spacing and scrolling, expanded theme palette, and bundled Adwaita cursors
A mixed pass over the default theme and the layout/input core, plus the toolkit's own cursor set. Grouped by area below.
== Responsive sizing ==
Add `Length::dp( px )` — a "design pixel". It interprets `px` against a configurable reference vmin (default 412 px, the eydos mobile reference width) and returns `Vmin( px / reference * 100 ).clamp( px * 0.7, px * 1.5 )`, so a value authored against a mock-up scales with the surface without collapsing on tiny screens or ballooning on a 4K desktop. The reference is process-global, set via `set_design_reference()` and read via `design_reference()` (stored as f32 bits in an AtomicU32); both are re-exported from `lib.rs`.
Make container and grid insets relative. `Container`'s four padding fields become `Length` instead of `f32`; every setter (`padding`, `padding_h`, `padding_v`, `padding_top`/`right`/`bottom`/`left`) now takes `impl Into<Length>`, so existing `f32` call sites keep compiling via the `From<f32>` shim. The values are resolved against the viewport in `Container::preferred_size` and in the container draw path (`draw/layout.rs`). `WrapGrid`'s `spacing_x`, `spacing_y` and `padding` get the same treatment, with a `resolved( canvas )` helper funnelling the per-frame resolution and `grid()` seeding `Length::px` defaults. Container tests now compare against `Length::px( … )`.
== Scrolling ==
`Scroll::preferred_size` is now axis-aware. A horizontal-only scroll reports its child's natural height rather than claiming all remaining vertical space, so it no longer steals Y from its siblings when it sits inside a `Column`; vertical and both-axis scrolls keep the spacer-like `( max_width, 0.0 )`. `Column`'s space-distribution correspondingly treats a `Scroll` as a vertical space-claimer only when its axis allows Y.
Disambiguate nested scroll viewports by direction. On press the gesture state now collects every scroll viewport under the point (`scroll_candidates`, innermost first) instead of committing to one; on the first 8 px of motion it locks onto the candidate whose axis matches the dominant direction (`scroll_locked`), so a horizontal scroller nested inside a vertical list no longer grabs the wrong axis. The pointer scroll hit test is aligned to the same innermost-first ordering.
== Theme palette ==
`themes/default/theme.json` gains named colours (green / green-deep, yellow, orange / orange-deep, pink / pink-soft, sky-deep, error / error-soft, neutral-tertiary) and new semantic slots in both light and dark modes: `danger`, `text-tertiary`, `accept`, `chip` / `chip-active` / `chip-active-fg`, and `avatar-1` … `avatar-9`.
== Cursors ==
Bundle GNOME's Adwaita cursor theme — the cursors GNOME Shell uses — into `themes/default/cursors/` so a Wayland compositor can draw consistent, complete pointers for ltk applications without the toolkit rasterising cursors itself and without depending on adwaita-icon-theme being installed on the target. The cursors are copied verbatim in XCursor binary format: 35 image files, one per CSS/freedesktop cursor name (default, text, pointer, *-resize, …), plus 27 customary X11 alias symlinks (arrow → default, hand2 → pointer, …); a sibling `cursor.theme` makes the tree a valid XCursor theme. The existing `ltk-theme-default.install` copies `themes/default` recursively, so the directory ships with no packaging change. Applications keep declaring a `CursorShape` per widget over `wp_cursor_shape_v1`; the compositor resolves it against the active theme's `cursors/` directory by name, and the set covers all 34 `CursorShape` variants.
Document the set in `themes/default/cursors/README.md` (what it is, the XCursor layout, the full shape list, how the compositor consumes it, guidance for forks) and `themes/default/cursors/LICENSE.md` (attribution and licence options, modelled on the icons catalogue LICENSE). `lib.rs` lists the cursors in its third-party-assets section.
Close out licensing in `debian/copyright`: a `Files: themes/default/cursors/*` paragraph records the upstream dual offer (CC-BY-SA-3.0 or LGPL-3, and CC-BY-SA-4.0 for the newer assets) attributed to the GNOME Project, with standalone CC-BY-SA-3.0, CC-BY-SA-4.0 and LGPL-3 paragraphs (summary-plus-canonical-URL for the CC licences, matching the existing CC-BY-4.0 entry; LGPL-3 referencing /usr/share/common-licenses/LGPL-3). The files are unmodified from upstream, so there is nothing to declare under the ShareAlike "indicate if changes were made" clause.
Add `tests/cursor_assets.rs`: every `CursorShape` name resolves to a valid XCursor file (Xcur magic, following symlinks), `cursor.theme` is present, no entry is a dangling symlink, and the expected-name list stays in sync with the enum's 34 variants.
2026-05-28 23:11:14 +02:00

257 lines
12 KiB
Plaintext

Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: ltk
Upstream-Contact: Liberux Labs, S. L. <info@liberux.net>
Source: https://liberux.net
Files: *
Copyright: 2026 Liberux Labs, S. L. <info@liberux.net>
License: LGPL-2.1-only
Files: debian/*
Copyright: 2026 Liberux Labs, S. L. <info@liberux.net>
License: LGPL-2.1-only
Files: themes/default/branding/*
themes/default/icons/apps/*
themes/default/icons/app-default.svg
Copyright: 2026 Liberux Labs, S. L. <info@liberux.net>
License: LGPL-2.1-only
Comment:
Wallpapers, lockscreens, launcher logos (under
themes/default/branding/) and per-application icons (under
themes/default/icons/apps/, plus the `app-default.svg` fallback)
are original artwork by Liberux Labs, distributed under the same
LGPL-2.1-only terms as the rest of the toolkit. Raster variants
(`*.webp` under branding/{light,dark}/{wallpaper,lockscreen}/)
are pre-rendered from the canonical SVGs in the same directory
and inherit the same licence.
Files: themes/default/icons/catalogue/*
Copyright: 2024 Streamline (https://streamlinehq.com)
License: CC-BY-4.0
Comment:
Symbolic glyphs under themes/default/icons/catalogue/{filled,line}/
are sourced from Streamline's *Core Line Free* set, distributed
under Creative Commons Attribution 4.0 International. Some of the
SVG files have been modified from the upstream collection (typical
edits include viewBox normalisation, removal / normalisation of
inline fill / stroke so `theme::tint_symbolic` controls the final
colour at runtime, ID renames, and path simplification at small
chrome sizes); which files were touched and which were not is not
tracked per icon — treat any file in this directory as potentially
differing from the upstream release and fetch from upstream if a
pristine copy is required. This directory-wide declaration satisfies
CC BY 4.0 §3(a)(1)(B); the full text is in
themes/default/icons/catalogue/LICENSE.md. The runtime
`theme::tint_symbolic` pass is a separate transformation of the
rendered RGBA output and is not a modification of the on-disk SVGs.
Upstream collection: https://www.streamlinehq.com/icons/core-line-free
Attribution shorthand: "Icons by Streamline, CC BY 4.0".
Files: src/theme/fallback/Sora-Regular.otf
src/theme/fallback/Sora-LICENSE.txt
Copyright: 2019-2020 The Sora Project Authors
2020 Jonathan Barnbrook <jb@barnbrook.net>
2020 Julián Moncada <julian@moncada.work>
License: OFL-1.1
Comment:
Sora Regular is bundled as the last-resort font fallback used by
`Canvas::new` / `Canvas::new_gles` when no system font from the
candidate chain (`fonts-sora`, `fonts-liberation`, `fonts-dejavu`,
…) is installed. The full OFL 1.1 text is reproduced in the
sibling `Sora-LICENSE.txt`. Upstream:
https://github.com/sora-xor/sora-font
Files: themes/default/cursors/*
Copyright: 2002-2014 The GNOME Project and the Adwaita icon theme authors
License: CC-BY-SA-3.0 or LGPL-3, and CC-BY-SA-4.0
Comment:
Pointer cursors under themes/default/cursors/ are GNOME's *Adwaita*
cursor theme — the cursors GNOME Shell ships — bundled verbatim from
the adwaita-icon-theme distribution so the default ltk theme is
self-contained (it does not depend on adwaita-icon-theme being
installed). The files are in XCursor binary format, one per CSS cursor
name (default, text, pointer, *-resize, …) plus the customary X11 alias
symlinks (arrow → default, hand2 → pointer, …); the sibling
cursor.theme makes the tree a valid XCursor theme. They are unmodified
from upstream. A Wayland compositor draws them in response to
wp_cursor_shape_v1, so ltk applications get them without bundling their
own. Upstream offers the artwork under the disjunction in the License
field; redistributing under any one of the options satisfies the
licence. Attribution shorthand: "Cursors by the GNOME Project". The
full functional and licence notes live in
themes/default/cursors/README.md and themes/default/cursors/LICENSE.md.
Upstream: https://gitlab.gnome.org/GNOME/adwaita-icon-theme
License: LGPL-2.1-only
This library is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; version 2.1 of the License.
.
This library is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser
General Public License for more details.
.
On Debian systems, the full text of the GNU Lesser General Public
License version 2.1 can be found in the file
`/usr/share/common-licenses/LGPL-2.1'.
License: OFL-1.1
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
.
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
.
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
.
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
.
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.
License: CC-BY-4.0
Creative Commons Attribution 4.0 International Public Licence (CC BY 4.0).
.
You are free to:
.
* Share — copy and redistribute the material in any medium or format.
* Adapt — remix, transform, and build upon the material for any
purpose, even commercially.
.
The licensor cannot revoke these freedoms as long as you follow the
licence terms.
.
Under the following terms:
.
* Attribution — You must give appropriate credit, provide a link to
the licence, and indicate if changes were made. You may do so in
any reasonable manner, but not in any way that suggests the
licensor endorses you or your use.
* No additional restrictions — You may not apply legal terms or
technological measures that legally restrict others from doing
anything the licence permits.
.
The full text of this licence is reproduced verbatim at:
https://creativecommons.org/licenses/by/4.0/legalcode
.
A human-readable summary (which is not a substitute for the licence) is
available at:
https://creativecommons.org/licenses/by/4.0/
.
The licence text above is a summary; the canonical legal text at the URL
is what governs use, distribution and modification of the Licensed
Material referenced under `Files: themes/default/icons/catalogue/*`.
License: CC-BY-SA-3.0
Creative Commons Attribution-ShareAlike 3.0 (CC BY-SA 3.0).
.
You are free to share and adapt the material for any purpose, even
commercially, provided you give appropriate credit, provide a link to
the licence, indicate if changes were made, and distribute your
contributions under the same licence as the original (ShareAlike).
.
The canonical legal text is at:
https://creativecommons.org/licenses/by-sa/3.0/legalcode
.
A human-readable summary (which is not a substitute for the licence) is
available at:
https://creativecommons.org/licenses/by-sa/3.0/
.
The summary above governs the Adwaita cursor files referenced under
`Files: themes/default/cursors/*` when distributed under the 3.0 option.
License: CC-BY-SA-4.0
Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0).
.
You are free to share and adapt the material for any purpose, even
commercially, under the same Attribution and ShareAlike terms as the
CC BY-SA 3.0 paragraph above.
.
The canonical legal text is at:
https://creativecommons.org/licenses/by-sa/4.0/legalcode
.
A human-readable summary (which is not a substitute for the licence) is
available at:
https://creativecommons.org/licenses/by-sa/4.0/
License: LGPL-3
The Adwaita cursors are alternatively available under the GNU Lesser
General Public License version 3. On Debian systems the complete text
of the LGPL version 3 is in `/usr/share/common-licenses/LGPL-3`.