Commit graph

33 commits

Author SHA1 Message Date
Michael Aaron Murphy
1fcd0dccc8
fix: %F and %U field code handling
Fixes %F path arguments being ignored
2026-04-29 21:52:17 +02:00
Michael Aaron Murphy
d775f3e5e8
fix: improve desktop entry field code handling
- The %f and %u field codes may now be expanded within a word
- Handle field code escapes (%%)
- Support the %c and %k field codes

This will notably fix desktop entries and context menu actions
that pass files as a long argument, such as `--option=%f`.
2026-04-29 17:31:42 +02:00
Vukašin Vojinović
d5dbcc7677 chore: add rustfmt config
Also adds a Zed editor config for automatic formatting with nightly.
2026-04-29 00:53:57 +02:00
Vukašin Vojinović
1e25e7dd69 chore: clippy 2026-01-30 21:05:46 +01:00
Jonatan Pettersson
f0e41d701c Replace freedesktop_entry_parser with cosmic-mime-apps 2025-12-02 11:26:09 -07:00
Cheong Lau
bd1fa1f0a9 perf: general minor performance optimisations
Notably there is some code cleanup with the zooming functionality, I've
created a new module to reduce code duplication.
2025-10-29 08:16:50 +10:00
Cheong Lau
5f729829d7 chore: more pedantic clippy suggestions 2025-10-29 08:10:19 +10:00
Cheong Lau
43a9fca4ec perf: use rustc-hash for HashMap and HashSet
Since we already depend on `rustc-hash` transiently, this doesn't add
any more dependencies. As long as DOS attacks aren't a concern (which I
don't think they are?), this should be free performance.

In my (admittedly naive) testing, this really improved CPU usage in some
cases, which is pretty nice to get for free.
2025-10-19 08:46:12 +10:00
Vukašin Vojinović
909577b364 chore: clippy 2025-10-03 14:36:00 -04:00
Vukašin Vojinović
3ee1a07f09 chore: update dependencies
Updates all dependencies other than ICU.
Enables the `dbus-config` libcosmic feature to fix theming responsiveness.
Also prevents the trash and network drive layer container from touching the edge of the window.
2025-09-11 08:15:26 -06:00
Vukašin Vojinović
f95869a631 chore: migrate to Rust 2024 edition 2025-09-11 08:15:26 -06:00
Jeremy Soller
30a0836018
Fix adding default mime associations when app does not list mime types 2025-08-15 08:54:36 -06:00
Jeremy Soller
3d18d7f390
Update dependencies 2025-05-01 09:19:40 -06:00
Jeremy Soller
8ced8b0551
Show all applications that handle any mime types in open with dialog, fixes #568, fixes #226, fixes #721 2025-04-29 09:53:51 -06:00
luishugo
9856db389b
feat: "Open in terminal" now respects the default terminal application (#948)
This uses the same method as cosmic/settings to determine the default terminal application. This is more of a quick fix for the moment, because it does not yet adhere to the rules of https://github.com/Vladimir-csp/xdg-terminal-exec
2025-04-26 15:39:21 -06:00
Jeremy Soller
4f8d22c120
Format 2025-04-21 13:32:29 -06:00
Ashley Wulber
eea916d783
feat: responsive menu bar (#938) 2025-04-15 18:04:07 -06:00
Joshua Megnauth
b6c033562b
Add tests for exec_to_command (#935) 2025-04-15 09:09:31 -06:00
Joshua Megnauth
5033b9dfed
fix: Handle complex Exec keys in desktop entries (#930)
Closes: #922, #924, #925, #928

My original patch, #891, mishandled Exec keys. The ordering of arguments
matters for the keys, such as for Flatpak apps.
2025-04-10 18:19:07 -06:00
Josh Megnauth
42cad87825
feat: Open multiple files with one/multiple apps
Opening multiple selected paths should:
* Launch one app that supports all of the file paths e.g. an image
  viewer that allows cycling through the selected images
* Launch multiple instances of an app if the app doesn't handle multiple
  URLs, such as nsxiv
* Launch different apps for a heterogeneous mix of URLs while taking
  into account the two rules above. For example, launching a mix of
  paths of images, videos, and text should open the correct apps
2025-03-27 02:08:38 -04:00
Josh Megnauth
cfe045827d chore(clippy): app.rs, mime_app.rs 2025-01-27 11:51:32 -07:00
Jeremy Soller
ceab7835ad
Clean up mime app handling and make it possible to set default application, part of #325 2025-01-24 11:55:56 -07:00
Josh Megnauth
8ff54d1522 chore(clippy): mime_app, operation, mounter
Fixes Clippy lints for:
* src/mounter/
* src/operation/
* src/mime_app.rs
* src/mouse_area.rs (I missed two of them last time)
2025-01-22 08:10:05 -07:00
Jeremy Soller
7f60a0c710
Support browsing for application in open with dialog 2024-10-03 15:16:17 -06:00
Jeremy Soller
fef57ee031
Improved open with dialog, part of #547 2024-10-03 14:54:18 -06:00
Jeremy Soller
5d596239be Desktop mode 2024-09-11 11:15:53 -06:00
Josh Megnauth
783256fe8b
fix: Panic on long numerical file names
Closes: #258

[lexical_sort](https://github.com/Aloso/lexical-sort) is currently
unmaintained. The author recommends switching to the `icu` crate which
is maintained by the Unicode Consortium.
2024-07-08 02:00:52 -04:00
Jeremy Soller
b72de689e2
Reduce log level for missing mime applications 2024-03-04 12:24:13 -07:00
Jeremy Soller
d7eceaad2e
Ensure default apps are added as associations 2024-03-04 12:22:27 -07:00
Jeremy Soller
3d34e3e49f
Parse desktop specific mimeapps files 2024-03-04 11:46:38 -07:00
Jeremy Soller
a4efff3873
Put default app first in open with list 2024-03-04 11:30:51 -07:00
Jeremy Soller
ef040c4277
Implement open in terminal 2024-03-04 10:28:16 -07:00
Jeremy Soller
26173d6529
Partial open with implementation, parse mimeapps.list files 2024-03-01 16:10:30 -07:00