Giter VIP home page Giter VIP logo

szyszka's Introduction

Szyszka

Szyszka is a simple but powerful and fast bulk file renamer.

Szyszka

Features

  • Great performance
  • Available for Linux, Mac and Windows
  • Gui created with GTK 4
  • Multiple rules which can be freely combined:
    • Replace text
    • Trim text
    • Add text
    • Add numbers
    • Purge text
    • Change letters to upper/lowercase
    • Custom rules
  • Save rules to be able to use them later
  • Ability to edit, reorder rules and results
  • Handle even hundreds thousands of records

Requirements

Linux

You need to install GTK 4.6 (it should be available by default on most distributions), which is bundled in Ubuntu 22.04 and newer.

sudo apt install libgtk-4-bin

MacOS (not tested)

You need to install GTK using brew

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install gtk4 adwaita-icon-theme librsvg pkg-config

Windows

The released zip file contains all dependencies, so it work out of the box on Windows 10+;

Installation

Precompiled Binaries

Available at https://github.com/qarmin/szyszka/releases

Snap

https://snapcraft.io/szyszka

snap install szyszka
sudo snap connect szyszka:removable-media # Allows to see files on external devices

Flatpak

TODO

Cargo/Crates.io

https://crates.io/crates/szyszka

cargo install szyszka

Gentoo Linux

szyszka is available on Gentoo's GURU overlay

emerge -av gui-apps/szyszka

Alternatives

I tried to use different apps, but they didn't suit my needs.

  • Nautilus Renamer - Quite fast, builtin into nautilus but hang when using it with >10k files and cannot be used with files/folders from different directories
  • Thunar Bulk Rename - Szyszka bases a lot of its features on this app, thunar bulk rename cannot add items recursivelly or rename folders.
  • Bulky - simple, good looking and quite powerfull app, but slow and I had problems in install it

Contribution

Contributions are very welcome - bug reports, pull requests, testing etc.
When creating or modifying existing rules, don't forget about updating/adding tests!
You can also add/improve translations in crowdin - https://crowdin.com/project/szyszka

Name

Szyszka is Polish word which means Pinecone.

Why such a strange name?

Would you remember another app name like Rename Files Ultra?
Probably not.
But will you remember name Szyszka?
Well... probably also not, but when you hear this name, you will instantly think of this app.

License

MIT

szyszka's People

Contributors

0xflotus avatar 184552203997997 avatar atalanttore avatar azadad96 avatar mglolenstine avatar mustafasalih1993 avatar qarmin avatar simbleau avatar sylr avatar theevilskeleton avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

szyszka's Issues

Switch to event-driven model

This will prevent the need to clone your widgets hundreds of times in multiple places, and eliminate the need for shared ownership of application state. Basic idea works as follows:

let (s, r) = async_channel::unbounded();

let mut app = App::new(s);

let event_handler = async move {
    while let Ok(event) = r.recv().await {
        match event {
            Event::ButtonClicked => app.do_task(),
        }
    }
};

glib::MainContext::default().spawn_local(event_handler);
fn block_on<F>(future: F) -> F::Output where F: Future {
    glib::MainContext::default().block_on(future)
}

button.connect_clicked(closure!(clone c, |_| {
    block_on(s.send(Event::ButtonClicked));
});

Linux crash in libcairo.so.2 when changing any radio button selection while using Add Rule dialog

When running the program and using Add Rule dialog the program crash when I try to change any radio button selection. Crash happens in function cairo_surface_map_to_image from file /lib/x86_64-linux-gnu/libcairo.so.2, with full log & backtrace attached.
OS: Ubuntu 22.04 LTS
CPU/Architecture: Pentium(R) Dual-Core CPU E6300 @ 2.80GHz, x86_64 (64 bits)
Graphics: NVIDIA GeForce 210, Binary driver package nvidia-340 version 340.108, from ubuntu ppa (ppa:kelebek333/nvidia-legacy, https://launchpad.net/~kelebek333/+archive/ubuntu/nvidia-legacy)
Desktop: XFCE 4.18 from ubuntu ppa (ppa:xubuntu-dev/ppa, https://launchpad.net/~xubuntu-dev/+archive/ubuntu/ppa), compositing enabled in xfce window manager settings
Affected package (Cairo, libcairo2) version: 1.16.0
Crash log (full log with backtrace including all threads attached below):

(szyszka:3400): Gsk-WARNING **: 09:16:32.856: drawing failure for render node GskTextureNode: invalid matrix (not invertible)

Thread 1 "szyszka" received signal SIGSEGV, Segmentation fault.
0x00007ffff7662f6c in cairo_surface_map_to_image () from /lib/x86_64-linux-gnu/libcairo.so.2
(gdb) bt full
#0  0x00007ffff7662f6c in cairo_surface_map_to_image () at /lib/x86_64-linux-gnu/libcairo.so.2
#1  0x00007ffff7bfd1df in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#2  0x00007ffff7bfcfa5 in gsk_render_node_draw () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#3  0x00007ffff7bfd085 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#4  0x00007ffff7bfcfa5 in gsk_render_node_draw () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#5  0x00007ffff7c05117 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#6  0x00007ffff7bfcfa5 in gsk_render_node_draw () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#7  0x00007ffff7bfd085 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#8  0x00007ffff7bfcfa5 in gsk_render_node_draw () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#9  0x00007ffff7c05117 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#10 0x00007ffff7bfcfa5 in gsk_render_node_draw () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#11 0x00007ffff7bfd085 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#12 0x00007ffff7bfcfa5 in gsk_render_node_draw () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#13 0x00007ffff7c05117 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#14 0x00007ffff7bfcfa5 in gsk_render_node_draw () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#15 0x00007ffff7bfd085 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#16 0x00007ffff7bfcfa5 in gsk_render_node_draw () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#17 0x00007ffff7bfd085 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#18 0x00007ffff7bfcfa5 in gsk_render_node_draw () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#19 0x00007ffff7c05117 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#20 0x00007ffff7bfcfa5 in gsk_render_node_draw () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#21 0x00007ffff7bfd085 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#22 0x00007ffff7bfcfa5 in gsk_render_node_draw () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#23 0x00007ffff7c05117 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#24 0x00007ffff7bfcfa5 in gsk_render_node_draw () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#25 0x00007ffff7bfd085 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#26 0x00007ffff7bfcfa5 in gsk_render_node_draw () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#27 0x00007ffff7bfd085 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#28 0x00007ffff7bfcfa5 in gsk_render_node_draw () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#29 0x00007ffff7c05117 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#30 0x00007ffff7bfcfa5 in gsk_render_node_draw () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#31 0x00007ffff7bfd085 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#32 0x00007ffff7bfcfa5 in gsk_render_node_draw () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#33 0x00007ffff7bfa0a5 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#34 0x00007ffff7c0179a in gsk_renderer_render () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#35 0x00007ffff7aa54c2 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#36 0x00007ffff7aa5e29 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#37 0x00007ffff7b7fb78 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#38 0x00007ffff73e2700 in g_signal_emit_valist () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#39 0x00007ffff73e2863 in g_signal_emit () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#40 0x00007ffff7bab203 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#41 0x00007ffff73e2700 in g_signal_emit_valist () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#42 0x00007ffff73e2863 in g_signal_emit () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#43 0x00007ffff7b9ae67 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#44 0x00007ffff7b9b0c9 in  () at /lib/x86_64-linux-gnu/libgtk-4.so.1
#45 0x00007ffff72ca2c8 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#46 0x00007ffff72c9c44 in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#47 0x00007ffff731f258 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#48 0x00007ffff72c73e3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#49 0x00007ffff74f0fb5 in g_application_run () at /lib/x86_64-linux-gnu/libgio-2.0.so.0
#50 0x00005555555db8ac in gio::application::{impl#0}::run_with_args<gtk4::auto::application::Application, alloc::string::String> (self=0x7fffffffdd68, args=...) at /home/juozas/.cargo/registry/src/index.crates.io-6f17d22bba15001f/gio-0.17.9/src/application.rs:37
        argc = 1
        argv = alloc::vec::Vec<&str, alloc::alloc::Global> {buf: alloc::raw_vec::RawVec<&str, alloc::alloc::Global> {ptr: core::ptr::unique::Unique<&str> {pointer: core::ptr::non_null::NonNull<&str> {pointer: 0x555555aafe70}, _marker: core::marker::PhantomData<&str>}, cap: 1, alloc: alloc::alloc::Global}, len: 1}
#51 0x000055555569fdab in szyszka::main () at src/main.rs:63
        application = gtk4::auto::application::Application {inner: glib::object::TypedObjectRef<*mut core::ffi::c_void, ()> {inner: glib::object::ObjectRef {inner: core::ptr::non_null::NonNull<gobject_sys::GObject> {pointer: 0x555555aad0e0}}, imp: core::marker::PhantomData<*mut core::ffi::c_void>, parent: core::marker::PhantomData<()>}, phantom: core::marker::PhantomData<()>}

GDB log (text file with over 750 lines, size > 100k): gdblog.txt

Exchanging file names for numbering reverses order of files

I would like to use this program to replace the name of files by a sequence of numbers to shorten the file name. Now there is the issue, that the order of the files will be inverted by default and I have to reorder the files by hand. This is feasible for a small number of files, but not if the mount of files goes into the hundreds or thousands. Is there an option to fix this, like ordering the files ascending instead of descending by clicking "current name" in the header?

Bildschirmfoto von 2021-08-11 21-02-49

[FEATURE REQUEST] Nth parent placeholder option

Desired functionality:

  • Similar to current $(PARENT), but it should take a param for the number of desired step-ups (similar to the $(N/K) options), eg. $(PARENT:2) would return the file's parent's parent.

Use case:

  • Batch renaming of media files in streaming servers like Plex/Jellyfin that have a Series folder, containing Season folders, which in turn contain the media files. Having this placeholder would allow taking the series name from the series' folder name and the season number from the season folder's name, making it much easier to tidy up large libraries.

Sample result:

  • For folder Breaking Bad containing seasonal folders Season 00, Season 01, etc., each containing any number of media files.

  • With a combination of rules such as:
    image

  • The result would be:
    image
    With $(PARENT:2) being replaced with Breaking Bad

As you can see, it would make mass renaming of such setups much faster, instead of having to run the process once per series, having to add a rule with the exact series name. Instead, an entire library could be renamed at once.

Purge Only Name rule also removes the . from the extension, and wrongly interacts with other name based rules

Purge Name rule also removes the . from the extension
Example:
S08E01.mkv
Rules:
Purge only name
Result:
mkv
Expected result:
.mkv

When I then want to add stuff after the name, it will not recognize the extension anymore and put stuff after the extension, for example:
S08E01.mkv
Rules:

Purge Only Name
Add Text Before Name Added
Add Number After Name

Expected result:

`S08Emkv01`
Expected result:
`S08E01.mkv`

libatk wrong version?

Reason: Incompatible library version: mac_szyszka requires version 23610.0.0 or later, but libatk-1.0.0.dylib provides version 23010.0.0

Abort trap: 6

I installed Rust & GTK+3 via homebrew as recommended, but this old version still seems to be taking precedence...

Any idea what I can do now?

Linux [Ubuntu 20.04 LTS] Error: Failed to load module “canberra-gtk-module"

When starting the application, stdout alarms:
Failed to load module “canberra-gtk-module”

I fixed this through installing the dependency
sudo apt-get install libcanberra-gtk-module

And restarted bash with a PATH export like such:
LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/gtk-3.0/modules:$LD_LIBRARY_PATH ./szyszka

Escape Characters on Regex Replace

Hello,
thanks for your nice tool!

Can you tell me, if it is possible to escape specific characters in Regex? Normally I would do:

\([0-9]+\)

To match all numbers in parentheses.

Feature request: slugify

Three problems:

  • certain programs break when confronted with file names containing non-ASCII (this is especially visible for Windows - eg. username Michał will lead you in trouble, because some files will end in C:\Users\Micha\ and others will end in C:\Users\Michał\)

  • certain programs break when confronted with file names containing colons (it breaks Windows on OS level and causes trouble for rsync) or spaces (these are just poorly written).

My suggestion is to provide way to normalize file names - using algorithm similar to eg. slug.

Feature request: edit rules

Thanks for this useful tool, I am looking forward to the save/load rule-set feature that you already list as a future goal.
I would also like to suggest that rules could be edited after they are made (this will be useful now, but will come more useful once it is possible to load saved rule-sets).

Bulk rename files using names in a text file or spreadsheet

I have a folder with almost 2000 files in it, all in alphabetical order and I have a text list what I want them all to be named. It would be nice to be able to select all of the files, verify they are in order, and replace them with the names from the names.txt text list.

Or a spreadsheet that has the existing name in the first column, and the replacement name in the second column.

Saving Rule Presets (Feature Request)

It will be a nice feature to save all the settings in the rule section.
Then I never have to setup everything again every time I restart the software. :)

image

Backslash does not show

When creating or editing a rule with Replace > Use regex, there is no way to show the backslash () in order to tell the program to select a string according to a regular expression. In fact, I cannot use this symbol in any text box of the rules settings. What I get is the pointer at the beginning of the box.
The app works smoothly, but it turns out to be useless when you need to make mass changes with a more complex pattern.
I use Ubuntu 22.04.3 LTS, if it helps.
Thank you in advance.

Feature Request: Select 'not in tree'

Thanks for the program, it looks great! Sadly, my random use case that popped up right after I saw it isn't covered.

I'd like to be able to compare duplicates as is, but then, on the selection, have the option to select (and delete) all of the files that are in a selected directory tree. I have multiple copies of the same folder that have diverged and I essentially want to keep one tree as is, and then only keep the files that are different in the second tree.

Change the name of app

I'd be grateful to change the name of the app. Szyszka is my nickname since the day of my birthday.

Especially below fragment of readme hurts my feelings

image
doge

Feature Request - Add option to select files in folder

Currently it is either possible to select a files or folders to rename. For the sake of convenience it would be useful to have an option on right like "Open files in folders".
I know that one can do it by just clicking on the "Add Files" button and then selecting all files, but it would be easier to just click an folder and then have all files listed that are in the folder.

$(MODIF) tag in custom rules does not fully work (Windows version)

I may be your first Windows tester. If that is truly the case, I'm really glad because Rust has recently drawn a lot more attention and this project looks promising. It's nice to see an open source app being also built for Windows :)

Onto the bug I've noticed in the Windows build:
The $(MODIF) tag in the custom rules does not work properly: it is shown in the status view (image 1, below), it tries to rename the file(s) accordingly when I click on the "Start Renaming" button and confirm, but fails, saying "Ignored 1 file(s), because there" (size issues with the results dialog box?) (image 2, below). After this, the same file(s) cannot be added anymore, even after reopening the executable. If the rule is anything other than a custom rule (I've not tested any other tags yet), the batch renaming works perfectly fine and the same file(s) can be re-added without any issues.

image

image

Improvements (in my opinion, at least):

  1. In the Windows build, a command prompt window opens. Perhaps you could hide it from the end user. If not, I personally don't mind.
  2. Bigger text for some elements (e.g. "Status" in the status pane in the lower area)

Other than that, the app is great! Keep on!

I compiled Szyszka on Fedora 38 Cinnamon and it has issues

Issues listed below

  1. The close button doesn't work. I have to close it with pkill or task manager.
  2. Dragging and dropping folders doesn't work

I also compiled Czkawka and it doesn't have this problem. Flatpak version doesn't have this problem either.

Anyhow, Nice app. Szyszka helped me rename my GEGL Gimp plugins presets folder successfully and the duplicate finding tool Czkawka can help me save disk space.

Feature request: Remove a number of characters

I'm missing a basic function, for removing some number of characters.
For example:

q2345This_Is_The_1st_File.txt
rt986This_Is_The_2nd_File.txt
399poThis_Is_The_3rd_File.txt
This_Is_The_1st_File.txt
This_Is_The_2nd_File.txt
This_Is_The_3rd_File.txt

There isn't an easy way to just remove the first 5 characters. As far as I know.

$(CREAT) = $(MODIF)

hello,

these two options appear to give the same result. creation date option does not appear to pull from metadata.

pdf metadata:
screenshot-2021-10-15-10-34

$(creat) result:
screenshot-2021-10-15-10-37

$(modif) result:
screenshot-2021-10-15-10-37_1

Segmentation on Debian 10

On debian 10 + Gnome, using the AppImage (release 2.0.0) i get, as soon as I click "Add Folders":

$ ./linux_szyszka.AppImage 
Gtk-Message: 20:33:04.767: Failed to load module "canberra-gtk-module"
Gtk-Message: 20:33:04.768: Failed to load module "canberra-gtk-module"
/usr/lib/x86_64-linux-gnu/gio/modules/libgioremote-volume-monitor.so: undefined symbol: g_mount_operation_get_is_tcrypt_system_volume
Failed to load module: /usr/lib/x86_64-linux-gnu/gio/modules/libgioremote-volume-monitor.so
/usr/lib/x86_64-linux-gnu/gio/modules/libgioremote-volume-monitor.so: undefined symbol: g_mount_operation_get_is_tcrypt_system_volume
Failed to load module: /usr/lib/x86_64-linux-gnu/gio/modules/libgioremote-volume-monitor.so
Errore di segmentazione

libgioremote-volume-monitor.so is not available.

More, package libgtk3-dev

apt install libgtk3-dev
...
E: Cannot find package libgtk3-dev

I tried installing libgtk3.0-cil-dev but I don't know if is really the same...

Flatpack and Snap versions are working fine.

Thank you,
Riccardo

Feature request - Simple CLI access for specifying files

I'd love to be able to use this as a rename utility from a file browser such as nemo.
In nemo in particular, you can select multiple files to rename, then press F2 and then the list is populated with those files/folders.

It requires something like this command:

szyszka %F

where %F would be a list of N items.

Some examples of other rename utilities which work like this are thunar --bulk-rename, krename and gprename.

I'm not asking for a full CLI interface as I see there currently isn't one.
Instead I was hoping this would be relatively simple to implement.

Thanks!

Make it posible to shortan filenames to a spesific lench

i am switching to another file system and it only allowes 255 characters in a file name. it would be cool if there would be a option to do different stuff with different the file is longer or shorter. or to make it posible to trim a file name to a specific lench.

Add Number description doesn't match result

Expected result:

01
02
03
04

Add number rule description:
Starting with 0 with step 1 and filling with 2 zeros
I'm starting with 1, step 1, filling with 1 zeros, but to get that result, I need to enter the numbers matching the above description. It is easy to get the expected result by trial and error, but it shouldn't be trial and error.

coredump on NetBSD

Hi,

I've packaged szyszka for NetBSD

The package builds and installs.

After an intial panick, Gsk-Message: 15:20:22.391: Failed to realize renderer of type 'GskGLRenderer' for surface 'GdkX11Toplevel': libEGL not available

fixed by linking against MesaLib at compile time, it now core dumps when launching

I'm stuck here, any suggestions?
Thanks!

gdb /usr/pkg/bin/szyszka szyszka.core
...
Reading symbols from /usr/pkg/bin/szyszka...
(No debugging symbols found in /usr/pkg/bin/szyszka)
[New process 12280]
[New process 23796]
[New process 6881]
[New process 10829]
[New process 8504]
[New process 8076]
Core was generated by `szyszka'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00006fc734443b86 in ?? () from /usr/X11R7/lib/modules/dri/i965_dri.so
[Current thread is 1 (process 12280)]
(gdb) bt
#0  0x00006fc734443b86 in ?? () from /usr/X11R7/lib/modules/dri/i965_dri.so
#1  0x00006fc734445ff3 in _mesa_GetIntegerv () from /usr/X11R7/lib/modules/dri/i965_dri.so
#2  0x00006fc73d6db366 in gsk_gl_command_queue_new () from /usr/pkg/lib/libgtk-4.so.1
#3  0x00006fc73d6e076b in gsk_gl_driver_for_display () from /usr/pkg/lib/libgtk-4.so.1
#4  0x00006fc73d6d78aa in gsk_gl_renderer_realize () from /usr/pkg/lib/libgtk-4.so.1
#5  0x00006fc73d6c0b77 in gsk_renderer_realize () from /usr/pkg/lib/libgtk-4.so.1
#6  0x00006fc73d6c111a in gsk_renderer_new_for_surface () from /usr/pkg/lib/libgtk-4.so.1
#7  0x00006fc73d57cd74 in gtk_window_realize () from /usr/pkg/lib/libgtk-4.so.1
#8  0x00006fc73cf7a927 in _g_closure_invoke_va () from /usr/pkg/lib/libgobject-2.0.so.0
#9  0x00006fc73cf92574 in g_signal_emit_valist () from /usr/pkg/lib/libgobject-2.0.so.0
#10 0x00006fc73cf92796 in g_signal_emit () from /usr/pkg/lib/libgobject-2.0.so.0
#11 0x00006fc73d56f757 in gtk_widget_realize () from /usr/pkg/lib/libgtk-4.so.1
#12 0x00006fc73d5819d2 in gtk_window_show () from /usr/pkg/lib/libgtk-4.so.1
#13 0x00006fc73cf7a927 in _g_closure_invoke_va () from /usr/pkg/lib/libgobject-2.0.so.0
#14 0x00006fc73cf92574 in g_signal_emit_valist () from /usr/pkg/lib/libgobject-2.0.so.0
#15 0x00006fc73cf92796 in g_signal_emit () from /usr/pkg/lib/libgobject-2.0.so.0
#16 0x00006fc73d564a6f in gtk_widget_show () from /usr/pkg/lib/libgtk-4.so.1
#17 0x000000000057d193 in szyszka::gui_data_things::gui_data::GuiData::new_with_application ()
#18 0x000000000053c6b9 in szyszka::build_ui ()
#19 0x000000000058c2d8 in <O as gio::auto::application::ApplicationExt>::connect_command_line::command_line_trampoline ()
#20 0x00006fc73dabee7e in _g_cclosure_marshal_INT__OBJECT () from /usr/pkg/lib/libgio-2.0.so.0
#21 0x00006fc73cf7a740 in g_closure_invoke () from /usr/pkg/lib/libgobject-2.0.so.0
#22 0x00006fc73cf8c38c in signal_emit_unlocked_R.isra.0 () from /usr/pkg/lib/libgobject-2.0.so.0
#23 0x00006fc73cf91b9b in g_signal_emit_valist () from /usr/pkg/lib/libgobject-2.0.so.0
#24 0x00006fc73cf92796 in g_signal_emit () from /usr/pkg/lib/libgobject-2.0.so.0
#25 0x00006fc73db12eee in g_application_call_command_line () from /usr/pkg/lib/libgio-2.0.so.0
#26 0x00006fc73db151c2 in g_application_real_local_command_line () from /usr/pkg/lib/libgio-2.0.so.0
#27 0x00006fc73db1531f in g_application_run () from /usr/pkg/lib/libgio-2.0.so.0
#28 0x00000000005823e9 in <O as gio::application::ApplicationExtManual>::run_with_args ()
#29 0x000000000053c5d8 in szyszka::main ()
#30 0x000000000059b6a3 in std::sys_common::backtrace::__rust_begin_short_backtrace ()
#31 0x000000000057e449 in std::rt::lang_start::_$u7b$$u7b$closure$u7d$$u7d$::he0dfbc5ea91b334d ()
#32 0x000000000069b634 in std::rt::lang_start_internal ()
#33 0x000000000053edb5 in main ()
(gdb)

Unable to get creation date from file

On an XFS and NFS-mounted-XFS partition, I'm unable to add any files and the only output when run in the terminal is Unable to get creation date from file

Adding files from an ext4 partition works fine.

In the absence of tracking down and fixing the specific problem, I'd love to be able to use the program without the creation date magic replacement variable (or have it just fill zeroes instead of rejecting the file completely).

Unable to add files from external drives

When trying to add files from an external drive it gives me the following error:
Unable to get creation date from file X

Happens when running as root and not. Happens when using appimage as well as compiled from source.
OS: Artix (linux 5.12.12.artix1-1)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.