S.N.ApP-4.8.4.4
This has transtext post editing and translated audio playback.
gettext function has been removed, needs TGT, transtext gettext script.
bug prevented creation of new books.
Improved gettext markup
Moderator: Forum moderators
S.N.ApP-4.8.4.4
This has transtext post editing and translated audio playback.
gettext function has been removed, needs TGT, transtext gettext script.
bug prevented creation of new books.
Improved gettext markup
S.N.ApP-4.8.4.5
keyword bugfixes, and a few small rearrangements.
see next post
While I was learning about system startup. I followed a trail of scripts. So I decided to add a simple function which lists files in relevant directories. Selecting a list item views and edits it, Doubleclicking executes the item. Clicking ACTION executes edits in the Viewer. Edits in the viewer can of course be saved using keyword SAVE.
Directories listed:
/etc/rc.d/*
/etc/X11/*
/root/.fatdog/*
/root/Startup/*
/etc/xdg/Startup/*
/etc/xdg/autostart/*
/etc/xdg/Openbox/*
/etc/xdg/icewm/*
So system initiation starts with the bootloader, then to the OS loader, then to the initrd init, then switch root and fire up busybox init, or rc.sysinit, rc.network, rc.services, rc.Xstartwm, rc.Xdesktop, X11, xdg, .fatdog, Startups or similar. In my opinion one script should do, copying itself from initrd to the new root before switchroot, then continuing to boot to desktop.
link in file
S.N.ApP-4.8.4.7
This release adds a new application startup method without executable or write permissions and no shebang, in addition to /usr/sbin/snapp.
Fixes a bug
Re-orders transeditor so mp3 files follow transtext files.
edit_startups maxdepth 1
last upload didnt work for me on a pristine install
snapp-4.8.4.8
https://drive.google.com/file/d/15fRMWS ... io7TIgwq7H
In fact to run the svg seems the menu entry desktopfile isn;t working.
edit Exec=
Code: Select all
Exec=bash -c "head -n3 /root/.config/snapp/icons/wifi7pc.svg | tail -n1 | sh"
By spreading an svg comment parenthesis across several lines the code that needs to executed is more easily accessed and piped to sh, while maintaining the integrity of the svg image. Then the encoded script is not executable, but the decoded script is. So without root permissions or even executable permissions we can elevate a series of processes to in the script to root privileges. Also the 'decoded script' is not shown by name in the Task Manager.
Here is an update!
I had solved, ages ago, a display problem regarding backslash characters in the Viewer. However the solution was only applied to book viewing! Only today did I realize the solution could be applied universally. This means that when maingui opens and on selecting a function from the list, all formatting and backslash characters are viewed as per the original (as in the script). This further means that the viewer can now be more easily used to edit functions (which could be exported for immediate use), and for scripting.
Improved 'defconfn' to handle wifiscan and connect and profile creation, as well as connecting default profile, as long as not in wifiscanfn (or "$track"/scn flag does not exist).
This is the plain, unobfuscated snapp script to be placed in /usr/sbin or can be run from anywhere once executable permissions have been applied.
re-uploaded:
'flagfilterfn' should be an external function with its own file, called by the main script. The reason being that I have had to update the 'flags' case statements with new definitions, and I realize that updates will be continuous. So this will be implemented in the next update.
The help function needs a major overhaul and update with more detailed explanations.
This is a small update.
Improved some displays, in tray and viewer.
In order to activate internal hostname for connections tray menu > Random Mac .... this generates and applies a random mac address and a random hostname which is not written to /etc/hostname
Number of Storage Devices in tray menu are limited to 33.
Added to the tray menu 'run' command option a type of acl (access control list) in $camino/settings/cmndlst. . The list has two columns. Column 1 is the command eg 'rm' . Column two is the password '12345678'. Columns separated by a '|' character. Upon entering a command eg 'rm -f /*' securefn will be called and the acl list will be parsed for the command basename 'rm', and if found the password gui will open, enter the password to complete the execution. If not entered or incorrect the execution is aborted. The purpose of this is to prevent malicious actors from causing mischief on your pc. This could be implemented as a system-wide daemon. In this case even gaining root authority would prevent file and directory creation, installations, and elevations of permissions etc. This could beat everything out there!
Other improvements in wifi preview profile, hidden ssid access points now have empty ssid...instead of the mac address. Updated FLAGS statements. Added monitor mode to iface controls, will add ability to view ssid of hidden networks. Removed a connection test which prevented subsequent connections. TODO - remove iwconfig command with iw equivalent commands.
drive listing and mounting functions have small update to create mount directories if not existing.
Added an AP update in the Viewer when in wifiscanfn. So after a wifi scan is complete, if the results are kept open then a loop will update wifi APs in the Viewer. The interval between scans can be adjusted using the keyword SLEEP and adjusting the slider to the required number in seconds. This is just for ap info. The scan is performed with iw and does not interfere with the connection.
Corrected - Save file and swap file creator were coded with KB instead of MB, for size.
Improved - List selected AP SSID and BSSID were displayed alongside connection SSID and BSSID in the tray tooltip ... that is no longer the case.
- Random mac function generated a hostname at a set length of 15 characters. That would be an identifying feature. Now two numbers from date command are added together at time of hostname generation and determine the hostname name length in characters.
To do - Data tx/rx needs reworking.
Snapp now uses its own /root/.config/settings/resolv.conf and hostname in same directory.
With an updated selection of DNS
nameserver 76.76.19.19
nameserver 76.222.122.150
nameserver 208.67.222.222
nameserver 208.67.220.220
nameserver 1.1.1.1
nameserver 1.0.0.1
nameserver 94.140.14.14
nameserver 94.140.15.15
One of my favourite and most useful features of snapp is the indexed books. However after creating a small book (code.Sbook64), what do you do after using up all 26 indexes (A-Z)? Well, now the ability to grow your book from Small to Medium to Large to Extra Large is now a reality. The reverse is also available but requires some preparation unless you have been meticulous in filling up the lower indices first, otherwise you would need to copy used upper indices to lower ones before MAKE_BOOK_SMALLER, because this actually removes indexes with their, if any, contents. Growing a book with MAKE_BOOK_BIGGER doesn't have the same problem, filled indices will be spread out and not retaining. I have yet to figure out how to save used indices converting those used indices to successive new indices.
Building appropriate network blocks can be challenging. In the case of hidden ssid, scan_ssid=1 and ssid="" must appear in the network code block. This is now fully functional.
Creating profiles just by filling in all fields and pressing the ACTION button without a keyword is fully implemented.
So the flags could be parsed in another way. Currently snapp takes the flags string, "[WPA-PSK-CCMP][WPA2-PSK-CCMP][WPS][ESS][UTF-8]", and uses it as a statement for case matching. In bash all cases are tested while in C, Cp, Cpp, the first fit and exit is speedier. But then I repeatedly encounter new configurations of the bracketed flags, so why not just have a system that reads individual bracketed flags in any order and selects the advanced feature ones to decide which network block to put in the profile configuration.
case $flag in
"[WEP][ESS]"|"[WEP][IBSS]"|"[WEP][ESS][UTF-8]"|"[WEP][IBSS][UTF-8]")
# for this line we simply going to configure for WEP and BSS, not ESS
"[WPA2-SAE-CCMP][WPS][ESS]")
# in this we will configure for SAE and WPS
"[ESS]"|"[ESS][UTF-8]")
# in this we gonna configure for ESS
esac
So each bracketed flag, [WPA2], needs to be parsed and ordered in ranking against all others. To do this we will need to know all the individual bracketed flags. Then when new arrangements of bracketed flags come along our algorithm will correctly build a block without the need for adding new case statements all the time.
snapp-5.0 complete sfs package with trans, ytdl, create_ap etc
This is polished!
https://drive.google.com/file/d/1aZhQW- ... BEZbkx6-c
Title: Snapp 5.2
Icon: code
Comment: updates
Notes:
URL:https://drive.google.com/file/d/1fGLT8s ... gL5smgqIF5
functions.
set_cpu_frequency ... a realtime scale gui which sets all cpu frequencies in steps of 100mhz
pass_prep ... facilitates securefn
form_printfn ... replaces most form printf lines
New keywords include;
COUNT ... gets word and line counts for text in viewer.
SEARCH ... enter a search term in BSSID field for basic search which returns line numbers and contents of viewer field contents. Because 4000+ line scripts load in the viewer in the blink of an eye.
SEARCH_OWN_WINDOW ... opens a yadu --text-info window with line humbers and more advanced search and text/file operations.
SEARCH_N_REPLACE ... with PrePosition scale at 0 enter search expression (regex) in Identity field and replacement in Docs field. With PrePosition scale not at 0 enter pipe command in Docs field e.g. grep transtext, sed 's/transtext/hashtext/g', sed -E "s|[aeiou]|_|g" etc. The Viewer text will be echoed into pipe and the Docs command will receive that as input.
MULTIPLE ... allow multiple open mainguis.
NO_MULTIPLE ... do not allow more than already exist.
E-SPEAK ... use espeak to read viewer text.
CREATE_HASH_TEXT ... enter text in viewer and create a hashtext file in /usr/share/locale/hashtext/$LANG.
bug fixes
$INTERFACCE ... typo corrected
wpa_supplicant command has -B switch to background process and also & which had effects.
improvements:
swapfile and savefile creation now check filesystem and available space and limits file sizes to 4096 in case of fat, or available size if smaller than input size.
removed data limit and attempts to total data counts over reboots.
updated ap scans in viewer when wifiscan complete and left open.
line and word count removed from book listing function to improve load speed, and added as keyword COUNT.
changd GTKRC global theme to --gtk yad gui option
Execute button on maingui now clears clip selection after execution, and in case of loading lists, can set a stop flag to stop list process.
Select Directory button on maingui now lists only files in selected directory.
Added more parsable indexed book fields Title: Icon: Comment: Status: Url: Exec: Signature: Doc: Passwrod:
Added ability to rescale books.
renamed transtext to more correct hashtext
started using arrays where appropriate. Using scale 0-100 as a means of providing case statement matches adds 101 or not (202) additional options to ACTION functions (keywords) and also other functions.
added;
Pandoc converter: full lists of input and output formats in drop down selections
Spell checking with Aspell or Hunspell
Grammar checking with gramma
For SEARCH keyword I have now added line numbers in the viewer text so that search results can be easily referenced. To save with line numbers move scale slider off of 0, and use keyword LOCKED_BOOK_SAVE, then press Action button. Leaving the slider at 0 will force removal of line numbers before saving.
thanks sonny
Added more text processing to the contents of Viewer.
1) tabs - insert at beginning of lines of multi-line selection (copy).
2) minus_tabs ... remove tabs at line beginnings of multi-line selection.
3) upper - convert selected multi-line text to upper case,
4) lower - convert selected multi-line text to lower case.
all operations update viewer field.
UPDATES-5.2
KEY WORDS
SLEEP ... Move Scale to set sleep in seconds, currently only for update ap in viewer.
COUNT ... Word and line count for text in Viewer
LISTBOOKS ... lists books
GRAMMAR_CHECK ... Check grammar according to language selection, depends on gramma binary
SPELL_CHECK ... aspell / hunspell terminal spell check of Viewer text.
SEARCH ... Scale at 0, Search term in BSSID field. Results in BSSID field. Scale at 1, enter regex code string in Docs. Results in BSSID field. Adds line numbers for convenience.
SEARCH_N_REPLACE ... Search text in viewer, Scale at 0, search term in Identity, replacement term in Docs. Options 1) tabs, 2) minus_tabs, 3) upper, 4) lower ... these text formatting options selected in BSSID field, empty Identity field, set scale to 3 or higher.
SEARCH_OWN_WINDOW ... opens Viewer text in floating yad text-info GUI.
CREATE_HASH_TEXT ... add to hashtexts for interface translations.
PANDOC_CONVERT ... Lists all input and output formats as dropdowns.
MAKE_BOOK_BIGGER ... S > M > L > XL
MAKE_BOOK_SMALLER ... XL > L > M > S
KEY_BINDINGS ... edit key bindings, save as custom file.
VIEWER_TO_SCRIPT ... If a book field has script code nested this will strip parsable fields like Title: Comment: Icon:, etc, and save as a script /root/$title.sh, with executable permissions.
FUNCTIONS
SET_CPU_FREQ_FN ... scale slider to set cpu frequency
Solved the 'problem' of hex in wifi AP names. Now in List and Form and Notification menus hex resolves into ascii.
Another code improvement for yad --form=:CB or CBE drop down menu selectors is changing from '#' item separator to '~' (scarab didn't function as expected.... bug !!!). Hash is used in scripts for bash commands, script comments and other special functions, so had to use a less used symbol... will need to make an alias $HOME in case of ~/ ...or what other character could I reliably use?
I didn't realize that yad --form --field=:txt already came with spell checking builtin if --enable-spell option is set!
Text formatting options now have add/remove quotes. Works in two modes scale set to 0 quotes will be added to multi-line selection at beginning of first line and at end of last line. Scale at 1, each line of multi-line selection, will be enclosed by quotes.
The quotes can be any character or string of characters, not just pairs, start and end could be " ", ' ', [],{}, or different " *, *- -*, \[\n \n\] , < />, etc. Also possible to just add first or last 'quote independently. Use Identity field for start quote and Docs field for end quote. Can also remove quotes as specified in those fields.
SEARCH also now uses Identity field, and results are listed in Docs field. Search also quotes the *-pattern-* for each occurrence and with line numbers in Viewer if Scale is at 1, set scale to 0 just (default) just to get results in Docs field, no changes in Viewer field.
This is far more consistent and convenient. Same as search_n_replace.
I had to learn extended regex to accomplish this and as i improve I will continue to add text formatting options, especially if :txt fields in yad --form have pango markup enabled.
I said before that viewer is good for bash scripting, and so shellcheck will be incorporated, for checking programming syntax etc.
Added
bullets+/- only round bullet • (Ctrl+Shift+U+2022),
numbers+/- 1) 2) 3) etc across multi-line selection, ignoring blank lines.
so tabs++, tabs+, tabs- (removes one tab each execution), upper, lower, numbers+, numbers-, bullets+, bullets-, quotes+, quotes-
Tested on a text about modal verbs which appeared in all manner of places ... making sure only targeted text gets formatted.
if a list of single words is targeted and those words also appear elsewhere in the text we need to tell regex how to deal with it, a line or string of words is usually unique and more easily captured and handled.
Code: Select all
bullets+) TEST="$(echo -e $line | wc -w)"
case "$TEST" in
1) sed -r -i -e "/^[\s|\t]{0,8}$line$/s/[^[:blank:]•]/• &/" "$track"/MO;;
*) sed -r -i -e "/$line$/s/[^[:blank:]|•]/• &/" "$track"/MO;;
esac;;
Added
spread+/- ... which simply doubles spaces between words in each line of text, spreading the line out. spread- halves the spacing down as far as 1.
lines+/- ... this adds line feeds '\n' doubling line spacing. This is basically quotes function which can be used to accomplish a variety of formatting tasks as well as traditional quoting requirements.
ELS ... keyword .... *Equidistant Letter Sequencing*. . print spaced characters to see if any words appear together that convey significant information.
Search texts for hidden messages. This is a simple implementation. It prepares text by removing punctuation, spaces, line feeds etc. Then prints every nth character, n set with the scale, and prints the result to the viewer for the operator to then manually search for words. Will work forwards and backwards on a text, but not diagonally or vertically, yet!
column -t -l 80 -c 12
This creates a table with your text. 12 columns, 80 character length lines.
activate with keyword col, use Identity field for columns (12) and Scale for line length, or width of page.
notocoloremoji.ttf font adds a lot of colour to the Viewer and List, should also work with the gui labels.
So here I am writing a book, keeping a code catalogue, private info, and lyrics, but I hadn't got a method to print any of it. I thought it would be easy just to print out after saving as a text file! Nope, that doesn't really work, because yad --form --field=:txt is not printer compliant. That is there is no character limit per se, no 80 column (portrait) or 240 (landscape) limits set for the viewer. So I type sentences end to end and they are just one super long line of text 500+ characters long. I would not have realised this had I not implemented file and viewer printing using 'yad --print --add-preview --filename=' ... this prints out portrait or landscape, the preview is very good and enabled me to put in place pre-print text formatting or viewer contents. Just selecting PRINT keyword will send viewer contents to a pipe which folds lines at 80 characters or nearest space, and inserts four spaces to each line at the start, and this in the print preview looks very good. For Landscape formatting, use keyword TEXT_FORMAT, and landscape in BSSID field and SAVE to a file.
To print a file instead of viewer contents, add the word 'file' in BSSID field and path to file in DOCS field...d'n'd is ok. Yad font selector will open first then Yad print dialogue will open, use preview to visually check formatting. As seen in the images unicode character need more attention. For print the unicode sun needed 11 empty lines following in the viewer to look right, without overlapping in the print preview. But it would work as a watermark under text if desired. Then print.