Skip to main content
Topic: Utilities shell script (Read 10092 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Re: Utilities shell script

Reply #45
Yeah it's been a few months I know... Hobby project has to wait when life becomes weird. :)
V16 series was mostly OK in the meantime.

V16.5:
-ZSH has been fully rebased, with function createarray brought to it to make the variants more similar;
-Support for user services in Dinit (dependency search still needs tuning);
-Removed timeout safety for lsblk as it caused issues, the one for ps/pgrep remains for now;
-Streamlined normal user validation in root mode, fixing change in shell not making some variables change within a function;
-More potential error situations caught and correct error code shown where applicable;
-Various little fixes or adjustments in -iomons, -kern parameter display, -fancontrol saves all running fans right away, -arc, xdg path fallback under -cle and -down, more header redundancies cleared;
-Terminal searching now works completely again when under scrollback (a bug is introduced in long menus where you need to press up/down to see the result, maybe fixable later).

Re: Utilities shell script

Reply #46
V17:

Main changes:
-ZSH:
*Use native array match when searching, fixing above mentioned search bug;
*A bit more native feature usage to replace dirname/basename where worth it;
*Few more cosmetic fixes;
*Match 1, 3 and 4 byte keys separately, which means:
   *Enter key to select now works!
   *Function keys now work in most terminals
   *F5 hotkey was added for refresh (F6+ can be used too if needed)
   *PgUp/PgDn hotkey is back and working correctly
   *Key selection is more correct (prevents stuck selections completely)
-ALSA and Wireplumber stats/volume control are merged into one menu, simplified stream status by showing just 'running';
-pkg. manager: reunified the menu to show all options, it's easier to navigate;
-Removed hosts processing from IPSets&Hosts (many personal reasons, plus it was a bit hacky). The IP blocking component was moved to the firewall mgr., first option 'Run IP filter';
-Removed the -boot argument, some of the functions were added to -wgvpn (second argument 'reconnect'), and to -fw (second argument 'ipfilter'), with their meaning as described.

Others:
-Archiving tools - when 7z binary is used, it will ask to list the contents of that file first (main feature of the 7zip gui really);
-Some more simplification and renaming in the main menu, added 2 extra low latency stats and some regrouped args;
-Use inet family in nftables instead of ip&ip6 for a bit more debloating and ease of viewing;
-Custom command runner - automatically parse from .desktop entries and from recent commands in shell history (supports fish and most simple *sh_history in homedir); this makes the option always available;
-Kernel tools - some adjustments;
-Mount and filesystem tools: if a remount fails try to unmount+mount, workaround sometimes needed for e.g. gvfs;
-maintenance: added an option to run fstrim on all mounted drives, split cleanup into a second option for the extra stuff that can affect running programs;
-If the script is launched with a root only argument it will try to run it regardless of environment (if sudoers rule is present);
-A few more misc. fixes.

*Info - I'm putting the zsh version first this time around since it's much easier to work with, for now trying to see if a fish port is possible, then the regular bash version will come. :)


Re: Utilities shell script

Reply #47
V18:
-custom command launcher: visual adjustments, added finding launcher scripts/appimages in the user's home directory;
-fw: now integrates a basic wireguard connection support for simple connections (reverse engineering of wg-quick in ~20 lines with added dns override and portable disconnection support), so the requirement for wg-quick has been removed along with it's menu.
*Note: -wg reconnect is replaced by passing variable wg_file=/path/ at runtime;
-mount tools: automount option to mount nonsystem drives, with extra options in the third argument to override the defaults e.g. "-mnt automount ro,noatime";
-pkg: added support for opkg, forced overwrites on updates are now used by default, small redundancies removed for pacman support;
-logfile unified by default, only if writing fails it is split again;
-other small adjustments in -iomons, -wine and a few others, cleaned up a few more checks and functions, simpler and fuller line clearing routine in console option selector (shouldn't be any slower);

V17.5:
-Actually support Dinit user services with turnstile for any user. This extends the feature matrix a lot so i changed some naming around to avoid confusion. For now inactivated services are limited to the single target user. My surprise that dinitctl is very smart, it can manage nonroot services while running as root as long as you specify socket/turnstile's path, like a true systemd replacement but much slimmer. For total feature completeness I need to finish some functions, also waiting for turnstile to be developed more and this needs a better workaround;
-Some more listing improvements of Dinit display and also Runit received some love along with startup management, hopefully works fine;
-iomons - use autorefreshing terminal option selector as display, this replaces both the watch command which still had bugs and mostly the terminator gui config (you can bring that back if you wish);
-Made file_browser display correctly again the filenames with newline/special characters, also slimmed it down in the process;
-Last zsh bugs resolved (some expanded variables);
-Added a few more sources in the ip filter for extra ipv6 addresses;
-Reduced usage of 2>/dev/null to mostly spam only;
-Added date string to logs written from arg.;
-Made some variables more resilient and added following in readme:
Spoiler (click to show/hide)


Re: Utilities shell script

Reply #48
V18.5:

Until further notice I will continue on just the ZSH version since it's a lot more intuitive to use.
Spoiler (click to show/hide)

-Service manager:
   * Resolve new Artix /sbin/init;
   * Layout improvements and simplifications, enabled service count in front menu, much fewer kept on the "hidden" list;
   * Dinit support: Dependency/dependant relations in startup list (only system and 1 level deep for now), user services are listed with own naming scheme which removes most limitations to the target user, also fixed some unwanted deduplications that their listings had;
-Main menu: addressed redundancies, moved connection stats to the header under -fw, added wireplumber streams number, added a (quicker) shortcut to directly run as root for the now more universal arguments potentially needing it;
-gpu: added basic Navi freq/voltage curve adjustments and an option to reset the table, some visual improvements;
-Improvements in -iomons with better row scaling, highlights and refresh rate, replaced iotop with native per process i/o view using zsh arrays (bit hacky but much better, simpler, no dependency, can run without root for user's i/o);
-console mode: custom RGB theming support from the preferences menu with additional hexcode parsing;
-Added sysbench shortcut under benchmarks and toned down the missing warnings;
-Some more annoyances/bugs fixed in the disk related tools, less spam, maintenance util. has added better browsers/webview profile detection;
-Misc. additions and other small layout improvements, debugging improvements, some optimizations, cleanups, a few more.

Enjoy!

 

Re: Utilities shell script

Reply #49
V19:

-Added QEMU VM deploy menu with easily accessible options for console and gui connections;
-The menus to set cpu and gpu frequencies have been merged into Parameters, adding I/O scheduler toggle for every disk and improving status;
-Console menu: Quick search by keyword (with up to 3 characters, just type into the keyboard)! With this occasion some escape code features have been revized, F5 key works in most terminals and refreshing works for most menus even without autorefresh, footer is now pinned to the bottom in some occasions which looks better;


-Better variable initialization, safer and less buggy, settings are refreshed from the utconfig file upon returning to the main menu, system fans in -fancontrol have a simpler and better saving scheme;
-Dinit service manager - some dependency lookup optimizations and fixes, still not complete but the enabled user services have gained a dependency query;
-Swap menu gets options to create zram swap volumes, completely independently from zramen, including a bootup argument which creates a a multi volume setup;
-System cleanup fixes, some syntax was wrong (thankfully safe, it was finding less files rather than more), another was poorly described, also removed the dependency on lsof with the help of zsh native arrays iterating over the /proc/ file descriptors;
-Archive manager gets one more quick packing function and some more fixes;
-Sensors and I/O monitors menu gets more optimizations and added per disk & per network interface speed monitoring! Also removed dependency on radeontop with native polling of amdgpu driver files;
-Fixed user and homedir determination in some cases;
-Support for doas as an escalator command if sudo is missing;
-Partition info under -mnt and some image mounting and checking bugs fixed, added an option to Open file manager at mount point which works from the terminal too, simplified automount and removed it's parralleling to avoind early bootup mounting bugs;
-fw has better port and connection number listings;
-Pacman overview tools have added an option to view packages without dependants (e.g. unofficial 'orphans' in some cases);
-Structural changes to fix some more bugs or to increase reliability, script looks better and some initial checking functions for the script + main menu, file manager & a few others are (sometimes much) faster with this occasion, reduced subshells etc;

Customary image with highlights, you need to see the rest of the smaller features for yourself! :)
I will prepare a new series of gifs showcasing features soon, also updated bash version coming by the end of the year Lord willing.