WelcomeWelcome | FAQFAQ | DownloadsDownloads | WikiWiki

Author Topic: GUI for 7z in ash or fltk  (Read 85 times)

Offline nick65go

  • Wiki Author
  • Hero Member
  • *****
  • Posts: 917
GUI for 7z in ash or fltk
« on: August 23, 2025, 02:40:26 PM »
7z is the must have brother of busybox even for Linux used as command line shell!
# 7z author said change 4kb to 2MB (huge page kernel) for RAM/kernel page for +10%-20% speed for some Windows apps, (so why not for linux). I think is also multi-threading for x86-64. :P
7z hashers: CRC32/64 MD5 SHA1/2/3 SHA224 SHA256 SHA3-224/256/384/512 SHA384 SHA512-224/256 BLAKE2b/sp XXH64 cksum asc
7z Codecs: BCJ{2} BZIP2 LZMA{2} Deflate{64} Rar1/2/3/5 Delta  Copy AES256CBC 7zAES PPMD Swap{2,4} CPU-type (PPC IA64 ARM ARMT SPARC ARM64 RISCV)

7z knows Real-disk-containers (type GPT +UEFI and MBR), CDrom/DVD (type ISO and UDF), disk-filesytems (Windows: FAT/32 or NTFS; Apple: HFS and APFS; Linux: Swap), virtual-disk-containers (Windows: WIM and VHD or VHDX; VirtualBox; VDI; VmWare: VMDK; Qemu: QCOW2; Linux: SquashFS and CramFS and CPIO), compressed-file-formats (Windows: ARJ, CAB, MSI, NSIS, CHM, RAR ZIP; Linux: AR, LZH, LZMA/2, RPM, Z, XAR, Bzip2, gzip, xz, zstd, tar).
Because of common compression algorithms used in various file format, it can see the structures of DMG, EXT, IHEX, even for Libreoffice/ MsOffice xlsx, docx, etc.

I would like a GUI for it, because not all commands have all switches /options suitable. I wonder if somebody already though about a GUI, written in sh or Xdialog or preferable FLTK (but not in GTK* or QT).
The idea is that the "master" program to have an external TEXT file which can be searched with awk for DIFFERENT delimiters specific for CMD (commands), SWITCHES, OPTIONS, FORMATS etc. For example CMD (list/extract/add/delete) separated by "=", SWITCHES separated by "TAB", like a 3D matrix.

Because 7z uses not only named file extensions, but search the header of files/containers/disk (like libarchive does), it could be suitable for fluff file manager extensions to provide actions, or can be used stand alone.
The main program would set the default (but changeable) settings like WORKDIR (/tmp/$mktmp), benchmarks, info, chksums(=CRS32), INPUT ($3), OUTPUT($4) (list= $PAGER) etc.

I read the help to prototype something/skeleton, for now just studding the TC scripts about ash syntax for using case + getoptions. No promises but I can help others to build the GUI if there are interested volunteers.
Code: [Select]
❯ 7z i
 7-Zip 25.01 (x64) : Copyright (c) 1999-2025 Igor Pavlov : 2025-08-03
 64-bit locale=en_US.UTF-8 Threads:12 OPEN_MAX:1024, ASM
Libs:
 0 : 25.01 : /usr/lib/7zip/7z.so
« Last Edit: August 23, 2025, 02:44:20 PM by nick65go »