From ba4a43fa9eec79b4021ee6d56ca7d00b0a8b2f2f Mon Sep 17 00:00:00 2001 From: srdusr Date: Tue, 23 Jan 2024 23:42:51 +0200 Subject: Custom nitrogen command --- .local/bin/nitrogen | 81 +++++++++++++++++++++++++++-------------------------- 1 file changed, 41 insertions(+), 40 deletions(-) (limited to '.local/bin') diff --git a/.local/bin/nitrogen b/.local/bin/nitrogen index 935e3d5..b8afe27 100755 --- a/.local/bin/nitrogen +++ b/.local/bin/nitrogen @@ -3,60 +3,61 @@ # Wrapper for nitrogen setting the freedesktop.org AccountsService/BackgroundFile so LightDM wallpaper is synced. # Inspired by -key_value_retriever(){ - KEY="${1}" - if [[ -z "${KEY}" ]]; then - printf "ERROR: KEY should not be empty\n" - return - fi - FILE="${2}" - if [[ ! -f "${FILE}" ]]; then - printf "ERROR: Cannot find FILE: %s\n" "${FILE}" - return - fi - VALUE_VARNAME="${3}" - if [[ -z "${VALUE_VARNAME}" ]]; then - printf "ERROR: VALUE_VARNAME should not be empty\n" - return - fi - MATCH=$(grep -m1 "^[[:space:]]*${KEY}=" "${FILE}") - INDEX_OF_FIRST_EQUAL=$(expr index "${MATCH}" =) - VALUE="${MATCH:${INDEX_OF_FIRST_EQUAL}}" - export "${VALUE_VARNAME}"="${VALUE}" +key_value_retriever() { + KEY="${1}" + if [[ -z "$KEY" ]]; then + printf "ERROR: KEY should not be empty\n" + return + fi + FILE="${2}" + if [[ ! -f "$FILE" ]]; then + printf "ERROR: Cannot find FILE: %s\n" "$FILE" + return + fi + VALUE_VARNAME="${3}" + if [[ -z "$VALUE_VARNAME" ]]; then + printf "ERROR: VALUE_VARNAME should not be empty\n" + return + fi + MATCH=$(grep -m1 "^[[:space:]]*${KEY}=" "$FILE") + INDEX_OF_FIRST_EQUAL=$(expr index "$MATCH" =) + VALUE="${MATCH:${INDEX_OF_FIRST_EQUAL}}" + export "$VALUE_VARNAME"="$VALUE" } /usr/bin/nitrogen "$@" if [[ "${1:-}" == "--restore" ]]; then - exit $? + exit $? fi NITROGEN_BG_SAVED_CFG_FILE="${HOME}/.config/nitrogen/bg-saved.cfg" -if [[ ! -f "${NITROGEN_BG_SAVED_CFG_FILE}" ]]; then - printf "!ERROR! Cannot find NITROGEN_BG_SAVED_CFG_FILE[%s]\n" "${NITROGEN_BG_SAVED_CFG_FILE}" 1>&2 - exit 1 +if [[ ! -f "$NITROGEN_BG_SAVED_CFG_FILE" ]]; then + printf "!ERROR! Cannot find NITROGEN_BG_SAVED_CFG_FILE[%s]\n" "$NITROGEN_BG_SAVED_CFG_FILE" 1>&2 + exit 1 fi -key_value_retriever "file" "${NITROGEN_BG_SAVED_CFG_FILE}" "NITROGEN_BG_SAVED_CFG_FIRST_BACKGROUND_FILE" +key_value_retriever "file" "$NITROGEN_BG_SAVED_CFG_FILE" "NITROGEN_BG_SAVED_CFG_FIRST_BACKGROUND_FILE" -if [[ -z "${NITROGEN_BG_SAVED_CFG_FIRST_BACKGROUND_FILE}" ]]; then - printf "!ERROR! Cannot retrieve NITROGEN_BG_SAVED_CFG_FIRST_BACKGROUND_FILE from NITROGEN_BG_SAVED_CFG_FILE[%s]\n" "NITROGEN_BG_SAVED_CFG_FIRST_BACKGROUND_FILE" 1>&2 - exit 1 +if [[ -z "$NITROGEN_BG_SAVED_CFG_FIRST_BACKGROUND_FILE" ]]; then + printf "!ERROR! Cannot retrieve NITROGEN_BG_SAVED_CFG_FIRST_BACKGROUND_FILE from NITROGEN_BG_SAVED_CFG_FILE[%s]\n" "NITROGEN_BG_SAVED_CFG_FIRST_BACKGROUND_FILE" 1>&2 + exit 1 fi -if [[ ! -f "${NITROGEN_BG_SAVED_CFG_FIRST_BACKGROUND_FILE}" ]]; then - printf "!ERROR! Cannot find NITROGEN_BG_SAVED_CFG_FIRST_BACKGROUND_FILE[%s]\n" "${NITROGEN_BG_SAVED_CFG_FIRST_BACKGROUND_FILE}" 1>&2 - exit 1 +if [[ ! -f "$NITROGEN_BG_SAVED_CFG_FIRST_BACKGROUND_FILE" ]]; then + printf "!ERROR! Cannot find NITROGEN_BG_SAVED_CFG_FIRST_BACKGROUND_FILE[%s]\n" "$NITROGEN_BG_SAVED_CFG_FIRST_BACKGROUND_FILE" 1>&2 + exit 1 fi printf "Setting nitrogen background into freedesktop.org AccountsService...\n" -printf "NITROGEN_BG_SAVED_CFG_FIRST_BACKGROUND_FILE[%s]\n" "${NITROGEN_BG_SAVED_CFG_FIRST_BACKGROUND_FILE}" +printf "NITROGEN_BG_SAVED_CFG_FIRST_BACKGROUND_FILE[%s]\n" "$NITROGEN_BG_SAVED_CFG_FIRST_BACKGROUND_FILE" +"$HOME"/.scripts/lockscreen-wallpaper & dbus-send \ - --print-reply \ - --system \ - --dest=org.freedesktop.Accounts \ - /org/freedesktop/Accounts/User$(id -u) \ - org.freedesktop.DBus.Properties.Set \ - string:org.freedesktop.DisplayManager.AccountsService \ - string:BackgroundFile \ - variant:string:"${NITROGEN_BG_SAVED_CFG_FIRST_BACKGROUND_FILE}" + --print-reply \ + --system \ + --dest=org.freedesktop.Accounts \ + /org/freedesktop/Accounts/User"$(id -u)" \ + org.freedesktop.DBus.Properties.Set \ + string:org.freedesktop.DisplayManager.AccountsService \ + string:BackgroundFile \ + variant:string:"$NITROGEN_BG_SAVED_CFG_FIRST_BACKGROUND_FILE" -- cgit v1.2.3