Favourite Lesser Known Programs

I’ve been using hugo for my personal-academic site, but I just put up a site for another project with jekyll and I really like it. It’s even simpler than hugo and great for simple sites.

1 Like

Since a little while I am using Magic-wormhole cli. Python —> all platforms

When I test a new distro it’s nice to have as quick as possible my bashrc/zshrc & passwords (db), so I can work en setup quicker. (hotkeys and logins)
There is also a GUI & Android version.

There are alternatives with more features, though magic-wormhole is enough for me.
Just send and receive.

  • yay -Ss magic-wormhole
  • apt search magic-wormhole
  • pip install magic-wormhole

Pip search disabled
Pip installs and uninstalls without issue. Searching is a problem.

1 Like

I know that I need to understand YAML headers better. I also do not really understand what json does. This may be hte key for me getting into it. I guess this is why it is for developers where this stuff is all second nature. Most of my development is with R packages and I generally never touch javascript, C++ or even python.

Like it - Android version wormhole william on play store

1 Like

JSON is easy enough. YAML is discoverable (in my experience) and all my usage has been from old-fashioned languages…

For JSON, you can figure it out pretty easily if you run it through a ‘pretty printer’. I use jq (in the repos) for that, it works very easily!

Below is an example .json file (weather info from an api call) and the same file after being run through jq - much clearer! Good luck.

Weather info
{"coord":{"lon":153.03,"lat":-27.47},"weather":[{"id":801,"main":"Clouds","description":"few clouds","icon":"02n"}],"base":"stations","main":{"temp":11.92,"feels_like":9.67,"temp_min":11.11,"temp_max":12.78,"pressure":1023,"humidity":93},"visibility":10000,"wind":{"speed":3.6,"deg":210},"clouds":{"all":20},"dt":1593366542,"sys":{"type":1,"id":9485,"country":"AU","sunrise":1593376716,"sunset":1593414228},"timezone":36000,"id":2174003,"name":"Brisbane","cod":200}
pretty weather
{
  "coord": {
    "lon": 153.03,
    "lat": -27.47
  },
  "weather": [
    {
      "id": 801,
      "main": "Clouds",
      "description": "few clouds",
      "icon": "02n"
    }
  ],
  "base": "stations",
  "main": {
    "temp": 11.92,
    "feels_like": 9.67,
    "temp_min": 11.11,
    "temp_max": 12.78,
    "pressure": 1023,
    "humidity": 93
  },
  "visibility": 10000,
  "wind": {
    "speed": 3.6,
    "deg": 210
  },
  "clouds": {
    "all": 20
  },
  "dt": 1593366542,
  "sys": {
    "type": 1,
    "id": 9485,
    "country": "AU",
    "sunrise": 1593376716,
    "sunset": 1593414228
  },
  "timezone": 36000,
  "id": 2174003,
  "name": "Brisbane",
  "cod": 200
}

3 Likes

It's not really a program, It's a bash tui-menu script.
I found the script more than a year ago or so. At that time i was looking for a simple TUI for making an update manager for arch, for my sister.
Pamac-aur, can have issues. Working from Cli all-way’s works.
The setup worked out for a while, till i experienced, it would be better to go back to Debian for her, to much managing the system.


TUI-menu script anonsurf example ::: no dependencies needed
#!/usr/bin/env bash
# by oToGamez
# www.pro-toolz.net
###################
# DEPS
# ARCH emojione-picker-git    neofetch  nodejs-emojione   ttf-symbola  ttf-joypixels  ttf-twemoji-color  (more or less)
# DEBIAN ttf-ancient-fonts-symbola fonts-noto-color-emoji fonts-symbola

job=$!



      E='echo -e';e='echo -en';trap "R;exit" 2
    ESC=$( $e "\e")
   TPUT(){ $e "\e[${1};${2}H";}
  CLEAR(){ $e "\ec";}
  CIVIS(){ $e "\e[?25l";}
   DRAW(){ $e "\e%@\e(0";}
  WRITE(){ $e "\e(B";}
   MARK(){ $e "\e[7m";}
 UNMARK(){ $e "\e[27m";}
      R(){ CLEAR ;stty sane;$e "\ec\e[1;32m\e[J";};
   HEAD(){ DRAW
           for each in $(seq 1 21);do
           $E "      x💠x                                      x💠x"
           done
           WRITE;MARK;TPUT 1 17
           $E $'\e[1;32m'Manage ANONSURF:  ⬇/⬆ Enter $'\e[0m';UNMARK;}
           i=0; CLEAR; CIVIS;NULL=/dev/null
   FOOT(){ MARK;TPUT 22 7
           printf "⚛ ⚛ ⚛ ⚛ ⚛ ⚛ ⚛ ⚛ ⚛ ⚛ ⚛ ⚛ ⚛ ⚛ ⚛ ⚛ ⚛ ⚛ ⚛ ⚛ ⚛ ⚛ ⚛ ";UNMARK;}
  ARROW(){ read -s -n3 key 2>/dev/null >&2
           if [[ $key = $ESC[A ]];then echo up;fi
           if [[ $key = $ESC[B ]];then echo dn;fi;}
     M0(){  TPUT  2 17; $e "";}
     M1(){  TPUT  3 17; $e "👉 Start";}
     M2(){  TPUT  4 17; $e "❌ Stop";}
     M3(){  TPUT  5 17; $e "👉 Restart";}
     M4(){  TPUT  6 17; $e "👉 Status";}
     M5(){  TPUT  7 17; $e "";}
     M6(){  TPUT  8 17; $e "⭕ Enable  boot";}
     M7(){  TPUT  9 17; $e "❌ Disable boot";}
     M8(){  TPUT 10 17; $e "👉 Status  boot";}
     M9(){  TPUT 11 17; $e "";}
     M10(){ TPUT 12 17; $e "👉 Change ID";}
     M11(){ TPUT 13 17; $e "👉 MYIP";}
     M12(){ TPUT 14 17; $e "";}
     M13(){ TPUT 15 17; $e "";}
     M14(){ TPUT 16 17; $e "";}
     M15(){ TPUT 17 17; $e "";}
     M16(){ TPUT 18 17; $e "        System info        ";}
     M17(){ TPUT 19 41; $e "EXIT »";}
      LM=17
   MENU(){ for each in $(seq 0 $LM);do M${each};done;}
    POS(){ if [[ $cur == up ]];then ((i--));fi
           if [[ $cur == dn ]];then ((i++));fi
           if [[ $i -lt 0   ]];then i=$LM;fi
           if [[ $i -gt $LM ]];then i=0;fi;}
REFRESH(){ after=$((i+1)); before=$((i-1))
           if [[ $before -lt 0  ]];then before=$LM;fi
           if [[ $after -gt $LM ]];then after=0;fi
           if [[ $j -lt $i      ]];then UNMARK;M$before;else UNMARK;M$after;fi
           if [[ $after -eq 0 ]] || [ $before -eq $LM ];then
           UNMARK; M$before; M$after;fi;j=$i;UNMARK;M$before;M$after;}
   INIT(){ R;HEAD;FOOT;MENU;}
     SC(){ REFRESH;MARK;$S;$b;cur=`ARROW`;}
     ES(){ MARK;$e "                  ✔ ENTER = Hoofdmenu ";$b;read;INIT;};INIT
  while [[ "$O" != " " ]]; do case $i in
        0) S=M0;SC;if [[ $cur == "" ]];then R;$e "\n$()\n";ES;fi;;
        1) S=M1;SC;if [[ $cur == "" ]];then R;$e "\n$(anonsurf start )\n";ES;fi;;
        2) S=M2;SC;if [[ $cur == "" ]];then R;$e "\n$(anonsurf stop )\n";ES;fi;;
        3) S=M3;SC;if [[ $cur == "" ]];then R;$e "\n$(anonsurf restart)\n";ES;fi;;
        4) S=M4;SC;if [[ $cur == "" ]];then R;$e "\n$(lxterminal -e anonsurf status)\n";ES;fi;;
        5) S=M5;SC;if [[ $cur == "" ]];then R;$e "\n$()\n";ES;fi;;
        6) S=M6;SC;if [[ $cur == "" ]];then R;$e "\n$(anonsurf enable-boot)\n";ES;fi;;
        7) S=M7;SC;if [[ $cur == "" ]];then R;$e "\n$(anonsurf disable-boot)\n";ES;fi;;
        8) S=M8;SC;if [[ $cur == "" ]];then R;$e "\n$(anonsurf status-boot ) \n";ES;fi;;
        9) S=M9;SC;if [[ $cur == "" ]];then R;$e "\n$()\n";ES;fi;;
      10) S=M10;SC;if [[ $cur == "" ]];then R;$e "\n$(anonsurf changeid)\n";ES;fi;;
      11) S=M11;SC;if [[ $cur == "" ]];then R;$e "\n$(anonsurf myip)\n";ES;fi;;
	  12) S=M12;SC;if [[ $cur == "" ]];then R;$e "\n$()\n";ES;fi;;
      13) S=M13;SC;if [[ $cur == "" ]];then R;$e "\n$()\n";ES;fi;;
	  14) S=M14;SC;if [[ $cur == "" ]];then R;$e "\n$()\n";ES;fi;;
	  15) S=M15;SC;if [[ $cur == "" ]];then R;$e "\n$()\n";ES;fi;;
	  16) S=M16;SC;if [[ $cur == "" ]];then R;$e "\n$(neofetch)\n";ES;fi;;
	  17) S=M17;SC;if [[ $cur == "" ]];then R;exit 0;fi;;
 esac;POS;done

Screenshot_2021-07-15_10-35-16

preview mp4

https://ipfs.fleek.co/ipfs/bafybeibp55cxqk7tmepnpjwvolmzwlpur62dswwwev6ivbm2vunqertxim

Very easy quick way to make a TUI-menu.
Emoji’s are optional and the notification is coming from Anonsurf.

MUM ::: My Update Manager
ArcoLinux_2021-02-05_19-19-20

7 Likes

Found his original TUI-menu page :::
https://web.archive.org/web/20161105231046/http://pro-toolz.net/data/programming/bash/Bash_fancy_menu.html

Not surprising that duckduckgo also has a feature baked in just for this, search for json beautify or json prettify

Finally, KDE gets a podcast app! I can stop using Gnome’s Podcast.

Kasts, The KDE Podcast App

It is in AUR.

2 Likes

Whats it listed as. I don’t see it?

Edit: Kasts?

yay kasts

2 Likes

How does it work exactly? How do you find podcasts and add them.

Edit: Okay i figured it out sort of. This is new for me.

It has a great search function for podcasts…love that feature. It needs a system tray app for the desktop, but I am sure that will come later.

1 Like

Can it import from gpodder?

1 Like

Yes it can, there is an import and export function.

I love gpodder btw, my second fav, if only they would add an internal player, else it makes it very cumbersome…that and it is also GTK. (KDE guy here.)

Installing it now.

Can podcast subscriptions be categorized and ordered?

EDIT :

Seems very rudimentary currently. I just want text I can organize, not unordered album cover like UI, with app sections I can resize, cannot even find a way to set a download path.

Good that KDE finally has something like kasts though.

2 Likes

Yes, they can be reordered in the Que tab (make sure you have the sidebar enabled) and I don’t think there is a category function yet. It basically rivals GTK’s Podcast, actually Kasts has a bit more functionality than that, but no where near gpodder yet. It is a good start.

Anki, WebApp-Manager, Pure Maps, OSM Scout Server, QJoyPad, SUSE Studio ImageWriter (though I prefer MintStick), Warpinator
A lot of that comes from my Mint (LMDE) background though

Isn’t Pure Maps for a mobile solution only? I didn’t know they had a desktop client.

It’s a flatpak btw. Tried to make a PKGBUILD, but found it too intimidating. Only reason to use it is if you need offline maps with geolocation. Otherwise GNOME Maps (albeit not lesser-known) seems better.

1 Like