Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/flatpak.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ jobs:
- name: Build Flatpak
uses: flatpak/flatpak-github-actions/flatpak-builder@v6
with:
bundle: cosmic-fprint.flatpak
manifest-path: flatpak/fi.joonastuomi.Fprint.yml
bundle: cosmic-utils-enroll.flatpak
manifest-path: flatpak/org.cosmic_utils.Enroll.yml
cache-key: flatpak-builder-${{ github.sha }}

- name: Get version
Expand All @@ -39,7 +39,7 @@ jobs:
with:
tag_name: ${{ env.VERSION }}
name: ${{ env.VERSION }}
files: cosmic-fprint.flatpak
files: cosmic-utils-enroll.flatpak
draft: false
prerelease: true
env:
Expand Down
4 changes: 4 additions & 0 deletions CHANGES
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,7 @@
0.3.12:
- Performance improvements
- Updated icon
0.4.0:
- Moved project to COSMIC utils
- Renamed from Fprint to Enroll
- Redesigned icon svg
27 changes: 27 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
## Pull requests

Expensive CI is run against every commit to main. That is why I ask you to open pull requests against the versioned branch that is most appropriate. Which at the time of writing is the only branch with version number.

However if you are committing just translations and do those through GitHub or any other reason found yourself opening PR against main then no worries. I will edit it to target the correct release.

## Translators

[Fluent][fluent] is used for localization of the software. Fluent's translation files are found in the [i18n directory](./i18n). New translations may copy the [English (en) localization](./i18n/en) of the project, rename `en` to the desired [ISO 639-1 language code][iso-codes], and then translations can be provided for each [message identifier][fluent-guide]. If no translation is necessary, the message may be omitted.

## Packaging

### Apt

If packaging for a Linux distribution, vendor dependencies locally with the `vendor` rule, and build with the vendored sources using the `build-vendored` rule. When installing files, use the `rootdir` and `prefix` variables to change installation paths.

```sh
just vendor
just build-vendored
just rootdir=debian/cosmic-utils-enroll prefix=/usr install
```

It is recommended to build a source tarball with the vendored dependencies, which can typically be done by running `just vendor` on the host system before it enters the build environment.

### Flatpak

Every build generates a .flatpak artifact.
4 changes: 2 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
[package]
name = "cosmic-ext-fprint"
name = "cosmic-utils-enroll"
version = "0.3.12"
edition = "2024"
license = "MPL-2.0"
description = "GUI for fprintd fingerprint enrolling"
repository = "https://github.com/jotuel/cosmic-ext-fprint"
repository = "https://github.com/cosmic-utils/enroll"

[build-dependencies]
vergen = { version = "8", features = ["git", "gitcl"] }
Expand Down
54 changes: 7 additions & 47 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Fprint for COSMIC™ DE
# COSMIC™ Utils Enroll

GUI for fingerprint management.
GUI for fingerprint management. Designed for COSMIC DE.

## Prerequisites

Expand All @@ -16,58 +16,18 @@ Choose which finger to register or delete by a tab. Change user from a menu (def

- [x] Improve feedback given to user. Currently prints what daemon returns.
- [x] Add a user dropdown to make it possible for admin to register for other users.
- [ ] Get project into cosmic-utils.
- [x] Get project into cosmic-utils.
- [x] Package & distribute, most likely as a flatpak, but maybe as a deb package also.
- [ ] Sherlock the application by adding all functionality directly into cosmic-settings.


## Installation

A [justfile](./justfile) is included by default for the [casey/just][just] command runner.
Download the .flatpak from latest release or build;


[justfile](./justfile) is included by default for the [casey/just][just] command runner.

- `just` builds the application with the default `just build-release` recipe
- `just run` builds and runs the application
- `just install` installs the project into the system
- `just vendor` creates a vendored tarball
- `just build-vendored` compiles with vendored dependencies from that tarball
- `just check` runs clippy on the project to check for linter warnings
- `just check-json` can be used by IDEs that support LSP

## Translators

[Fluent][fluent] is used for localization of the software. Fluent's translation files are found in the [i18n directory](./i18n). New translations may copy the [English (en) localization](./i18n/en) of the project, rename `en` to the desired [ISO 639-1 language code][iso-codes], and then translations can be provided for each [message identifier][fluent-guide]. If no translation is necessary, the message may be omitted.

## Packaging

If packaging for a Linux distribution, vendor dependencies locally with the `vendor` rule, and build with the vendored sources using the `build-vendored` rule. When installing files, use the `rootdir` and `prefix` variables to change installation paths.

```sh
just vendor
just build-vendored
just rootdir=debian/cosmic-ext-fprint prefix=/usr install
```

It is recommended to build a source tarball with the vendored dependencies, which can typically be done by running `just vendor` on the host system before it enters the build environment.

### Flatpak

A Flatpak manifest is included in the `flatpak` directory. To build and install the Flatpak:

```sh
flatpak-builder --user --install --force-clean build flatpak/fi.joonastuomi.Fprint.yml
```

Note: The included manifest uses network access during build to fetch dependencies. For strict offline builds, you should generate a `cargo-sources.json` file using `flatpak-builder-tools`.

## Developers

Developers should install [rustup][rustup] and configure their editor to use [rust-analyzer][rust-analyzer]. To improve compilation times, disable LTO in the release profile, install the [mold][mold] linker, and configure [sccache][sccache] for use with Rust. The [mold][mold] linker will only improve link times if LTO is disabled.

[fluent]: https://projectfluent.org/
[fluent-guide]: https://projectfluent.org/fluent/guide/hello.html
[iso-codes]: https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
[just]: https://github.com/casey/just
[rustup]: https://rustup.rs/
[rust-analyzer]: https://rust-analyzer.github.io/
[mold]: https://github.com/rui314/mold
[sccache]: https://github.com/mozilla/sccache
2 changes: 1 addition & 1 deletion THIRD_PARTY_LICENSES
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ GPL-3.0 (1): cosmic-protocols
ISC (3): inotify, inotify-sys, libloading
MIT (161): aliasable, android-properties, ashpd, atomicwrites, block, block2, block2, bytes, calloop, calloop-wayland-source, cfg_aliases, cfg_aliases, clipboard_x11, color_quant, com, com_macros, com_macros_support, combine, core_maths, cosmic-freedesktop-icons, crunchy, darling, darling_core, darling_macro, dispatch, dlib, drm, drm-ffi, drm-fourcc, drm-sys, endi, float-cmp, float_next_after, fontconfig-parser, fontdb, fontdb, fsevent-sys, generic-array, grid, hassle-rs, i18n-config, i18n-embed, i18n-embed-fl, i18n-embed-impl, iced, iced_core, iced_futures, iced_graphics, iced_renderer, iced_runtime, iced_tiny_skia, iced_wgpu, iced_widget, iced_winit, imagesize, ini_core, is-docker, is-wsl, kqueue, kqueue-sys, libm, libredox, locale_config, lru, malloc_buf, memoffset, memoffset, mio, nix, nix, objc, objc-foundation, objc-sys, objc2, objc2, objc2-app-kit, objc2-cloud-kit, objc2-contacts, objc2-core-data, objc2-core-image, objc2-core-location, objc2-encode, objc2-foundation, objc2-foundation, objc2-link-presentation, objc2-metal, objc2-quartz-core, objc2-symbols, objc2-ui-kit, objc2-uniform-type-identifiers, objc2-user-notifications, objc_id, open, orbclient, phf, phf_generator, phf_macros, phf_shared, pico-args, quick-xml, redox_syscall, redox_syscall, redox_syscall, redox_users, redox_users, rfd, rgb, rust-embed, rust-embed-impl, rust-embed-utils, rustybuzz, sctk-adwaita, simd-adler32, slab, smithay-client-toolkit, smithay-clipboard, strict-num, strsim, synstructure, taffy, tokio, tokio-macros, tokio-stream, tracing, tracing-attributes, tracing-core, uds_windows, urlencoding, wasm-timer, wayland-backend, wayland-client, wayland-csd-frame, wayland-cursor, wayland-protocols, wayland-protocols-plasma, wayland-protocols-wlr, wayland-scanner, wayland-server, wayland-sys, window_clipboard, winnow, winnow, x11-dl, xcursor, xdg-home, xkbcommon, xkbcommon-dl, xml-rs, xmlwriter, zbus, zbus, zbus_macros, zbus_macros, zbus_names, zbus_names, zvariant, zvariant, zvariant_derive, zvariant_derive, zvariant_utils, zvariant_utils
MIT OR Unlicense (8): aho-corasick, byteorder, byteorder-lite, memchr, same-file, termcolor, walkdir, winapi-util
MPL-2.0 (4): cosmic-ext-fprint, option-ext, resvg, usvg
MPL-2.0 (3): option-ext, resvg, usvg
N/A (9): cosmic-client-toolkit, cosmic-config, cosmic-config-derive, cosmic-settings-daemon, cosmic-theme, dnd, iced_accessibility, libcosmic, mime
Unicode-3.0 (18): icu_collections, icu_locale_core, icu_normalizer, icu_normalizer_data, icu_properties, icu_properties_data, icu_provider, litemap, potential_utf, tinystr, writeable, yoke, yoke-derive, zerofrom, zerofrom-derive, zerotrie, zerovec, zerovec-derive
Zlib (2): foldhash, slotmap
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
app-id: fi.joonastuomi.Fprint
app-id: org.cosmic_utils.Enroll
runtime: org.freedesktop.Platform
runtime-version: '25.08'
sdk: org.freedesktop.Sdk
command: cosmic-ext-fprint
command: cosmic-utils-enroll
finish-args:
- --socket=wayland
- --socket=fallback-x11
Expand All @@ -23,23 +23,23 @@ build-options:
- --share=network

modules:
- name: cosmic-ext-fprint
- name: cosmic-utils-enroll
buildsystem: simple
build-commands:
# Build the application
- cargo build --release

# Install the binary
- install -Dm0755 target/release/cosmic-ext-fprint /app/bin/cosmic-ext-fprint
- install -Dm0755 target/release/cosmic-utils-enroll /app/bin/cosmic-utils-enroll

# Install the desktop file
- install -Dm0644 resources/fi.joonastuomi.Fprint.desktop /app/share/applications/fi.joonastuomi.Fprint.desktop
- install -Dm0644 resources/org.cosmic_utils.Enroll.desktop /app/share/applications/org.cosmic_utils.Enroll.desktop

# Install the AppStream metadata
- install -Dm0644 resources/fi.joonastuomi.Fprint.metainfo.xml /app/share/appdata/fi.joonastuomi.Fprint.metainfo.xml
- install -Dm0644 resources/org.cosmic_utils.Enroll.metainfo.xml /app/share/appdata/org.cosmic_utils.Enroll.metainfo.xml

# Install the icon
- install -Dm0644 resources/icons/hicolor/scalable/apps/icon.svg /app/share/icons/hicolor/scalable/apps/fi.joonastuomi.Fprint.svg
- install -Dm0644 resources/icons/hicolor/scalable/apps/icon.svg /app/share/icons/hicolor/scalable/apps/org.cosmic_utils.Enroll.svg

sources:
- type: dir
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
app-title = Fprint Enroll
app-title = Enroll Fingerprint
about = About
view = View
fprint = Register Fingerprint
fprint = Enroll Fingerprint
welcome = Register and/or delete fingerprints
git-description = Git commit {$hash} on {$date}
register = Register
Expand Down
File renamed without changes.
File renamed without changes.
4 changes: 2 additions & 2 deletions justfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name := 'cosmic-ext-fprint'
appid := 'fi.joonastuomi.Fprint'
name := 'cosmic-utils-enroll'
appid := 'org.cosmic_utils.Enroll'

rootdir := ''
prefix := '/usr'
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
[Desktop Entry]
Name=Fprint
Name=Enroll
Comment=GUI for fprintd fingerprint enrolling
Type=Application
Icon=fi.joonastuomi.Fprint
Exec=cosmic-ext-fprint %F
Icon=org.cosmic_utils.Enroll
Exec=cosmic-utils-enroll %F
Terminal=false
StartupNotify=true
Categories=Utility;System;
Expand Down
33 changes: 23 additions & 10 deletions resources/icons/hicolor/scalable/apps/icon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
11 changes: 11 additions & 0 deletions resources/org.cosmic_utils.Enroll.desktop
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
[Desktop Entry]
Name=Enroll
Comment=GUI for fprintd fingerprint enrolling
Type=Application
Icon=org.cosmic_utils.Enroll
Exec=cosmic-utils-enroll %F
Terminal=false
StartupNotify=true
Categories=Utility;System;
Keywords=Fingerprint;Security;
MimeType=
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop-application">
<id>fi.joonastuomi.Fprint</id>
<id>org.cosmic_utils.Enroll</id>
<metadata_license>CC0-1.0</metadata_license>
<project_license>MPL-2.0</project_license>
<name>Fprint</name>
<name>Enroll</name>
<summary>GUI built with COSMIC toolkit for fprintd fingerprint enrolling</summary>
<description>
<p>
Fprint is an application for enrolling fingerprints using the fprintd daemon. It allows you to register and delete fingerprints for authentication on your Linux system.
Enroll is an application for enrolling fingerprints using the fprintd daemon. It allows you to register and delete fingerprints for authentication on your Linux system.
</p>
</description>
<icon type="remote" width="64" height="64" scale="1">
https://github.com/jotuel/cosmic-ext-fprint/raw/main/resources/icons/hicolor/scalable/apps/icon.svg
https://github.com/cosmic-utils/enroll/raw/main/resources/icons/hicolor/scalable/apps/icon.svg
</icon>
<url type="vcs-browser">https://github.com/jotuel/cosmic-ext-fprint</url>
<launchable type="desktop-id">fi.joonastuomi.Fprint.desktop</launchable>
<url type="vcs-browser">https://github.com/cosmic-utils/enroll</url>
<launchable type="desktop-id">org.cosmic_utils.Enroll.desktop</launchable>
<provides>
<id>fi.joonastuomi.Fprint</id>
<id>org.cosmic_utils.Enroll</id>
<binaries>
<binary>cosmic-ext-fprint</binary>
<binary>cosmic-utils-enroll</binary>
</binaries>
</provides>
<requires>
Expand Down
2 changes: 1 addition & 1 deletion src/app/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ impl cosmic::Application for AppModel {
type Message = Message;

/// Unique identifier in RDNN (reverse domain name notation) format.
const APP_ID: &'static str = "fi.joonastuomi.Fprint";
const APP_ID: &'static str = "org.cosmic_utils.Enroll";

fn core(&self) -> &cosmic::Core {
&self.core
Expand Down