869e38f3a5
refactor: filter out events in State::subscription
...
this may improve performance, saving update and view calls
2026-08-15 09:49:24 -07:00
65ddef28df
fix: missing svg mime type in desktopItem
2026-08-14 11:36:40 -07:00
85a80346e3
refactor: move svg integration into crate
2026-08-14 11:27:07 -07:00
16e13be214
minor: use name SVG over extension svg to identify errors
...
since the extension could be svg or svgz
2026-08-14 10:53:07 -07:00
a87a7bc0a1
feat: svg support
2026-08-14 10:25:46 -07:00
603678ba34
refactor: move kra to crate
...
in the interest of reusing that code in a gallery app
2026-08-03 23:30:21 -07:00
db457fc4e7
docs: add readme
2026-08-03 11:27:29 -07:00
e57c1c9322
fix: jxls being rotated twice
2026-08-01 10:22:41 -07:00
d3bc84769e
refactor: improve clipboard put code style
2026-07-31 20:17:25 -07:00
cb5e1d837a
feat: image copy and paste
2026-07-31 20:08:58 -07:00
1f909904c2
fix: print error on failed to read metadata
...
this should be very rare, so no need to display it or abort
2026-07-31 17:47:12 -07:00
808a8bf31d
feat: put the bars together
...
this made sense now that I made error messages shorter,
and figured out how to properly align things in a row.
looks good! might even consider keeping the infobar on by default
2026-07-31 17:32:52 -07:00
6fa0e29eae
feat: display file size
2026-07-31 17:23:29 -07:00
18de039e77
feat: make pickers async
2026-07-31 15:53:11 -07:00
9d4e24e809
refactor: apply clippy lints
...
cargo clippy --no-deps -- --deny clippy::nursery --deny clippy::pedantic
(does not quite pass due to unused `&self` in State::subscription)
I am considering ignoring events when the file picker is opened,
but that isn't a very nice solution (should just make it async atp)
2026-07-31 14:39:18 -07:00
94c905db38
build: seperate linux-specific deps
2026-07-31 14:19:53 -07:00
754dd6126d
fix: wrong dbus output (?)
2026-07-31 11:21:37 -07:00
26c17d5cf9
docs: add safety note
2026-07-31 11:14:05 -07:00
5a84b56025
build: use libdbus over zenity
...
I completely misunderstood the RFD doc comments,
thought that save file dialogs were not avaliable on linux outside of gtk
this helps avoid the wrapper, which is nice;
but I imagine it would fail if portals are unavaliable.
2026-07-31 09:55:08 -07:00
e98f268e59
refactor: do not format each ImageError
...
this makes the code much nicer,
but also it reduces the amount of extra fluff in the error messages.
2026-07-31 09:51:57 -07:00
973703726f
feat: guess format from magic numbers as well
...
this allows opening files with extensions that don't match the filetype
2026-07-31 09:16:38 -07:00
fca4577c0f
refactor(kra): factor out error mapping
2026-07-31 00:24:39 -07:00
57ad7dfb1e
build: reduce indirection slightly
2026-07-31 00:05:48 -07:00
b8b4d8698c
build: remove no-op wrapper argument
2026-07-31 00:03:35 -07:00
13976b91ea
fix: add .kra (krita) support to mimeTypes
2026-07-30 23:54:37 -07:00
101adc7a89
refactor: split kra (krita) logic into image hook
...
may further split this into its own crate;
seems quite useful! (albeit somewhat short and easy)
since there aren't any runtime dependancies,
it could even go into image-extras maybe
2026-07-30 23:40:14 -07:00
c96a1cbdd1
feat: default to FilterMethod::Nearest on small image
...
helps make pixelart sharp without the need to change it yourself
2026-07-30 22:54:56 -07:00
fc92ff60e0
feat: kra (krita) support
2026-07-30 22:41:17 -07:00
2e8a6c8546
feat: use single quotes in usage to reduce noise
2026-07-30 21:43:06 -07:00
50b5ed58b0
feat: add to usage reference
2026-07-30 21:40:14 -07:00
b1157474c9
feat: simplify theme
2026-07-30 20:35:45 -07:00
9bdd556c9d
refactor: use newer helper method in State::new
...
this should keep it from printing "no image to allocate"
each time when started without an argument
2026-07-30 20:27:34 -07:00
7ce87e2870
feat: optional infobar
...
literally the title; except on the bottom
2026-07-30 20:17:21 -07:00
97ce6754dd
feat: change scale limits
...
zooming in a lot is sometimes useful,
but zooming out is basically useless and annoying
(when you want to put it back to covering the full window)
if you really need to zoom out, you can always resize the window
2026-07-30 19:21:12 -07:00
f279c3aa15
feat: f to switch FilterMethod
...
useful to scale pixelart images nicely.
This makes me consider expanding the status bar to include info;
partially because I don't use window decorations usually
(so I don't see the info in the title)
2026-07-30 19:19:23 -07:00
e7e1400c3a
style: avoid toml curly braces
...
else it causes messy diffs and is generally less writable and readable
2026-07-29 16:11:48 -07:00
5a83fe39e9
feat: switch to pure-rust jxl decoder
...
this makes the logic drastically simpler;
as it comes with image crate integration.
however, images can no longer be saved as JXL with this version
(as jxl-oxide is decoder-only)
2026-07-29 16:11:35 -07:00
89b4639a69
chore: add license to Cargo.toml
2026-07-27 23:17:18 -07:00
f789271f9e
build: use avif-native
...
this allows it to open (more?) AVIFs
2026-07-27 22:09:25 -07:00
a91cc6b525
refactor: apply clippy lints
2026-07-27 21:42:52 -07:00
c4738ad2c8
feat: display image dimensions in title
2026-07-27 21:37:00 -07:00
e32c18e304
refactor: improve helper function sanity
...
pure(er) functions are so much easier to work with
(see the bug fix in the pior commit)
there's a bit of duplicate code introduced but it's worth it
2026-07-27 21:23:59 -07:00
60717d639c
fix: hidden error
2026-07-27 21:14:22 -07:00
ab24e5f10d
refactor: use Result with a unit type over Option
...
this helps convey intent, and makes it more consistent
2026-07-09 20:58:44 -07:00
dab5f8e09f
refactor: annotate State::allocate_image with must_use
2026-07-09 20:51:06 -07:00
d577fe2e76
refactor: move image logic to utils
2026-07-09 20:48:34 -07:00
c3a5919e87
feat: drag and drop (outside of wayland)
2026-07-09 20:16:56 -07:00
b11264dc4b
build: zenity consistency
2026-07-09 20:16:33 -07:00
ccc2efc21a
feat: display other image missing errors
2026-07-04 11:17:32 -07:00
32f5503ffc
fix: typos in error message
2026-07-04 11:04:10 -07:00