I use the recommended way, as in the Joplin website, which is:
wget -O - https://raw.githubusercontent.com/laurent22/joplin/master/Joplin_install_and_update.sh | bash
See the webpage at : https://joplinapp.org/
I use the recommended way, as in the Joplin website, which is:
wget -O - https://raw.githubusercontent.com/laurent22/joplin/master/Joplin_install_and_update.sh | bash
See the webpage at : https://joplinapp.org/
In the meantime I downloaded the zip file from https://github.com/laurent22/joplin to have a look. There is an install script which install the appimage to ~/.joplin/*.AppImage
and a desktop file to ~/.local/share/applications/joplin.desktop
#!/bin/bash
set -e
#-----------------------------------------------------
#-----------------------------------------------------
COLOR_RED=tput setaf 1
COLOR_GREEN=tput setaf 2
COLOR_YELLOW=tput setaf 3
COLOR_BLUE=tput setaf 4
COLOR_RESET=tput sgr0
SILENT=false
ALLOW_ROOT=false
SHOW_CHANGELOG=false
INCLUDE_PRE_RELEASE=false
print() {
if [[ “${SILENT}” == false ]] ; then
echo -e “$@”
fi
}
showLogo() {
print “${COLOR_BLUE}”
print " _ _ _ "
print " | | ___ _ __ | () __ "
print " _ | |/ _ | '_ | | | '_ \ "
print “| || | () | |) | | | | | |"
print " _/ _/| .__/|||| ||"
print " ||”
print “”
print “Linux Installer and Updater”
print “${COLOR_RESET}”
}
showHelp() {
showLogo
print “Available Arguments:”
print “\t” “–help” “\t” “Show this help information” “\n”
print “\t” “–allow-root” “\t” “Allow the install to be run as root”
print “\t” “–changelog” “\t” “Show the changelog after installation”
print “\t” “–force” “\t” “Always download the latest version”
print “\t” “–silent” “\t” “Don’t print any output”
print “\t” “–prerelease” “\t” “Check for new Versions including Pre-Releases”
if [[ ! -z $1 ]]; then
print "\n" "${COLOR_RED}ERROR: " "$*" "${COLOR_RESET}" "\n"
else
exit 0
fi
}
#-----------------------------------------------------
#-----------------------------------------------------
optspec=“:h-:”
while getopts “${optspec}” OPT; do
[ “${OPT}” = " " ] && continue
if [ “${OPT}” = “-” ]; then # long option: reformulate OPT and OPTARG
OPT="${OPTARG%%=}" # extract long option name
OPTARG=“${OPTARG#$OPT}” # extract long option argument (may be empty)
OPTARG=“${OPTARG#=}” # if long option argument, remove assigning =
fi
case “${OPT}” in
h | help ) showHelp ;;
allow-root ) ALLOW_ROOT=true ;;
silent ) SILENT=true ;;
force ) FORCE=true ;;
changelog ) SHOW_CHANGELOG=true ;;
prerelease ) INCLUDE_PRE_RELEASE=true ;;
[^?] ) showHelp “Illegal option --${OPT}”; exit 2 ;;
? ) showHelp “Illegal option -${OPTARG}”; exit 2 ;;
esac
done
shift $((OPTIND-1)) # remove parsed options and args from $@ list
if [[ $EUID = 0 ]] && [[ “${ALLOW_ROOT}” != true ]]; then
showHelp “It is not recommended (nor necessary) to run this script as root. To do so anyway, please use ‘–allow-root’”
exit 1
fi
#-----------------------------------------------------
#-----------------------------------------------------
showLogo
#-----------------------------------------------------
print “Checking architecture…”
ARCHITECTURE=$(uname -m -p -i || echo “NO CHECK”)
if [[ $ARCHITECTURE = “NO CHECK” ]] ; then
print “${COLOR_YELLOW}WARNING: Can’t get system architecture, skipping check${COLOR_RESET}”
elif [[ $ARCHITECTURE =~ .aarch.|.arm. ]] ; then
showHelp “Arm systems are not officially supported by Joplin, please search the forum (https://discourse.joplinapp.org/) for more information”
exit 1
elif [[ $ARCHITECTURE =~ .i386.|.i686. ]] ; then
showHelp “32-bit systems are not supported by Joplin, please search the forum (https://discourse.joplinapp.org/) for more information”
exit 1
fi
#-----------------------------------------------------
#-----------------------------------------------------
if [[ “$INCLUDE_PRE_RELEASE” == true ]]; then
RELEASE_VERSION=$(wget -qO - “https://api.github.com/repos/laurent22/joplin/releases” | grep -Po ‘“tag_name”: ?“v\K.?(?=")’ | head -1)
else
RELEASE_VERSION=$(wget -qO - “https://api.github.com/repos/laurent22/joplin/releases/latest” | grep -Po '“tag_name”: ?"v\K.?(?=”)’)
fi
if [[ -e ~/.joplin/VERSION ]] && [[ $(< ~/.joplin/VERSION) == “${RELEASE_VERSION}” ]]; then
print “${COLOR_GREEN}You already have the latest version${COLOR_RESET} ${RELEASE_VERSION} ${COLOR_GREEN}installed.${COLOR_RESET}”
([[ “$FORCE” == true ]] && print “Forcing installation…”) || exit 0
else
[[ -e ~/.joplin/VERSION ]] && CURRENT_VERSION=$(< ~/.joplin/VERSION)
print “The latest version is ${RELEASE_VERSION}, but you have ${CURRENT_VERSION:-no version} installed.”
fi
#-----------------------------------------------------
print ‘Downloading Joplin…’
TEMP_DIR=$(mktemp -d)
wget -qnv --show-progress -O ${TEMP_DIR}/Joplin.AppImage https://github.com/laurent22/joplin/releases/download/v${RELEASE_VERSION}/Joplin-${RELEASE_VERSION}.AppImage
wget -qnv --show-progress -O ${TEMP_DIR}/joplin.png https://joplinapp.org/images/Icon512.png
#-----------------------------------------------------
print ‘Installing Joplin…’
rm -f ~/.joplin/*.AppImage ~/.local/share/applications/joplin.desktop ~/.joplin/VERSION
mkdir -p ~/.joplin/
mv ${TEMP_DIR}/Joplin.AppImage ~/.joplin/Joplin.AppImage
chmod +x ~/.joplin/Joplin.AppImage
print “${COLOR_GREEN}OK${COLOR_RESET}”
#-----------------------------------------------------
print ‘Installing icon…’
mkdir -p ~/.local/share/icons/hicolor/512x512/apps
mv ${TEMP_DIR}/joplin.png ~/.local/share/icons/hicolor/512x512/apps/joplin.png
print “${COLOR_GREEN}OK${COLOR_RESET}”
if [ “$XDG_CURRENT_DESKTOP” = “” ]
then
DESKTOP=$(echo “${XDG_DATA_DIRS}” | sed ‘s/.(xfce|kde|gnome)./\1/’)
else
DESKTOP=$XDG_CURRENT_DESKTOP
fi
DESKTOP=${DESKTOP,} # convert to lower case
#-----------------------------------------------------
echo ‘Create Desktop icon…’
if [[ $DESKTOP =~ .gnome.|.kde.|.xfce.|.mate.|.lxqt.|.unity.|.x-cinnamon.|.deepin.|.pantheon.|.lxde. ]]
then
: “${TMPDIR:=$TEMP_DIR}”
# This command extracts to squashfs-root by default and can’t be changed…
# So we run it in the tmp directory and clean up after ourselves
(cd $TMPDIR && ~/.joplin/Joplin.AppImage --appimage-extract joplin.desktop &> /dev/null)
APPIMAGE_VERSION=$(grep “^X-AppImage-Version=” $TMPDIR/squashfs-root/joplin.desktop | head -n 1 | cut -d “=” -f 2)
rm -rf $TMPDIR/squashfs-root
# Only delete the desktop file if it will be replaced
rm -f ~/.local/share/applications/appimagekit-joplin.desktop
# On some systems this directory doesn't exist by default
mkdir -p ~/.local/share/applications
echo -e "[Desktop Entry]\nEncoding=UTF-8\nName=Joplin\nComment=Joplin for Desktop\nExec=${HOME}/.joplin/Joplin.AppImage\nIcon=joplin\nStartupWMClass=Joplin\nType=Application\nCategories=Office;\n#${APPIMAGE_VERSION}" >> ~/.local/share/applications/appimagekit-joplin.desktop
# Update application icons
[[ `command -v update-desktop-database` ]] && update-desktop-database ~/.local/share/applications && update-desktop-database ~/.local/share/icons
print "${COLOR_GREEN}OK${COLOR_RESET}"
else
print “${COLOR_RED}NOT DONE, unknown desktop ‘${DESKTOP}’${COLOR_RESET}”
fi
#-----------------------------------------------------
#-----------------------------------------------------
print “${COLOR_GREEN}Joplin version${COLOR_RESET} ${RELEASE_VERSION} ${COLOR_GREEN}installed.${COLOR_RESET}”
echo $RELEASE_VERSION > ~/.joplin/VERSION
#-----------------------------------------------------
if [[ “$SHOW_CHANGELOG” == true ]]; then
NOTES=$(wget -qO - https://api.github.com/repos/laurent22/joplin/releases/latest | grep -Po ‘“body”: “\K.*(?=”)’)
print “${COLOR_BLUE}Changelog:${COLOR_RESET}\n${NOTES}”
fi
#-----------------------------------------------------
print “Cleaning up…”
rm -rf $TEMP_DIR
print “${COLOR_GREEN}OK${COLOR_RESET}”
Thanks for posting the info! I did it a bit differently (see above) but the end result is the same I guess. But of course
wget -O - https://raw.githubusercontent.com/laurent22/joplin/master/Joplin_install_and_update.sh | bash
is more efficient.
By the way, is there a way to configure the sync for Google Drive rather than Dropbox.
Syncthing may be of interest to you. It’s how I am sharing notes between my phone and computers.
That’s great, thanks! Looks like a good solution!
That’s insane.
laurent22 - Due to the coming changes in Google Drive policy, sync with this service unfortunately will not be possible. We fall under section 4 of this document, which means the app would need an independent Google-approved audit to be allowed. And that would cost “from $15,000 to $75,000 (or more) depending on the size and complexity of the application.”
Glad google makes it easy for independent devs to hook up to their services.
Joplin
makes my brain hurt. I wish I could get the hang of it.
My contribution is probably not that lesser known.
Kindd - just a simple frontend for good ole Disk Destroyer.
I also very much like Avvie
for quick image editing, nothing complicated. But it’s only available as a Flatpak. Don’t hurt me!
xclip
get the content of terminal output directly to clipboard
hwinfo --short | xclip -sel clip
ventoy
USB ISO boot made easy - https://www.ventoy.net
xsel can do that too
hwinfo --short | xsel -ib
this saves to clipboard
It can also append and output clipboard content
So, I have to admit, I use simplenote-electron-bin
currently to sync my notes across my phone/computers. But damn Joplin looks good. It only requires an email address to sync, but I’ve really been meaning to get a google play card and pay the $5 to properly sync my calendar/notes with nextcloud anyway. I may be another Joplin convert with that.
The other program I use extensively is android-messages-desktop
which is exactly as it sounds. It syncs my text messages to my computer. Great and simple. I’ve tried I feel like literally every freaking messenger on the planet at this point, but everything requires some extra account, and/or for others to use the same application as well. This is literally like android’s version of iMessage. I started using it years ago when the google play store became available on my chromebook. One of the honest to goodness reasons I started using Arch based distros. . . Arch was the ONLY Linux area where this used to exist. So, as I moved away from my Chromebook and back to Linux this program was a big deciding factor for me since I LOVE texting from my computer.
Easy encryption which doesn’t need containers, encrypts each file individually. I have all important documents encrypted with it and saved on Nextcloud where I also have access with cryptomator app.
That’s slick. Thanks for pointing that out!
for that share … it nice but it not like my large collection , it freeze alot. Think i’ll stay with cmus as it fast no matter dir size.
How big is your collection? It is smooth for me but I have less than 40,000 tracks.
2TB it grow every year. i enjoy western music … well all music
I’ve had that problem in the past with a couple of music players (Clemetine being the biggest offender), also with my current player Lollypop.
I finally tracked down the problem of massive hangs and total lock ups.
The tags for my enormous music collection. Some of the tags were so messed up the player just choked on them over and over.
Might not be your problem but something to look into.
SInce then I’ve been very picky about getting my tags setup.
i the same over tags plus album art.
My favorite lesser known program is one named PC-Write. It was an early word processor that ran on DOS. It was in color, no mouse but you could use the arrow keys. I loved it. Bob Wallace, the creator and a friend of mine, released it in 1983, Bob Wallace was the 9th employee hired at MS. Oh, Bob wrote the Pascal compiler while at MS and was very involved in LISP.
This little early shareware word processor saved me many times.
You may take a look at Quodlibet. I have nearly 2Tb of music in Flac format, and each time I add some tracks it takes less than 5 secs. Never had a freeze.
i will @pierrep56
Typora. It’s a markdown editor used for writing, whether it’s simple notes, or oneshot stories, or full novels. It’s similar to Ulysses on the Mac.
Currently it’s flagged as out of date on the AUR for a couple of days now and I can’t post a screenshot of it on my system because … yeahhhh I can’t. But it’s a fantastic program and you guys should look into it when you can.
Edit: It just got updated on the AUR