fi
}
+lightdm_greeter_list(){
+ local greeter_list
+ while read -r line; do
+ greeter_list+=("${line}")
+ done < <( (find "${LIGHTDM_GREETERS_DIR}" -print0 -type f | xargs -0 -i basename {} | grep -E ".desktop$" | sed "s|.desktop$||g" | grep -xv "xgreeters") 2> /dev/null )
+ printf "%s\n" "${greeter_list[@]}" | sort | uniq
+}
+
#== LightDM用コマンド ==#
# greeter-changeコマンド
command_lightdm_greeter_change() {
fi
# 指定されたGreeterが正しいか確認
- if ! printf "%s\n" "${LIGHTDM_GREETERS[@]}" | grep -x "${1}" > /dev/null 2>&2; then
+ if ! lightdm_greeter_list | grep -x "${1}" > /dev/null 2>&2; then
msg_error "The greeter (${1}) doesn't exist."
exit 1
else
command_lightdm_greeter_list() {
echo "Available Lightdm greeter list:"
local _greeter
- for _greeter in "${LIGHTDM_GREETERS[@]}"; do
+ for _greeter in $(lightdm_greeter_list); do
if [[ "${_greeter}" = "${LIGHTDM_CURRENT_GREETER}" ]]; then
echo " * ${_greeter}"
else
# greeterコマンド
run_greeter_wizard(){
# グリーターの数を確認
- if (( ${#LIGHTDM_GREETERS[@]} < 1 )); then
+ if (( $(lightdm_greeter_list | wc -l) < 1 )); then
msg_error "LightDM Greeter was not found."
exit 1
fi
# 質問する
local _greeter
- if ! _greeter="$(ask_question -p "Please select the greeter to use." -d "${LIGHTDM_CURRENT_GREETER}" "${LIGHTDM_GREETERS[@]}")"; then
+ if ! _greeter="$(ask_question -p "Please select the greeter to use." -d "${LIGHTDM_CURRENT_GREETER}" $(lightdm_greeter_list))"; then
run_greeter_wizard
exit 0
fi
msg_error "You cannot use this command in non-interactive mode."
exit 1
fi
- for _config in "${LIGHTDM_LOADED_CONFIG[@]}"; do
+ local loaded_config_list
+ while read -r line; do
+ loaded_config_list+=("${line}")
+ done < <(printf "%s\n" "$(lightdm --show-config 2>&1 | grep -x -A "$(lightdm --show-config 2>&1 | wc -l)" "Sources:" | grep -v "Sources" | sed 's|^[A-Z] ||g')" | tr -d " ")
+ for _config in "${loaded_config_list[@]}"; do
echo -ne "Edit ${_config} ? (y or n)> "
read -r -n 1 _yes_or_no
echo
exit 1
fi
- local _backgrounf_file="/usr/share/backgrounds/gdm/background"
+ local _backgrounf_file="${BACKGROUND_DIR}/gdm/background"
mkdir -p "$(dirname "${_backgrounf_file}")"
cp "${1}" "${_backgrounf_file}"
chmod 644 "${_backgrounf_file}"
exit 1
fi
- local _backgrounf_file="/usr/share/backgrounds/lightdm/qtquick-greeter"
+ local _backgrounf_file="${BACKGROUND_DIR}/lightdm/qtquick-greeter"
mkdir -p "$(dirname "${_backgrounf_file}")"
cp "${1}" "${_backgrounf_file}"
chmod 644 "${_backgrounf_file}"
exit 1
fi
- local _backgrounf_file="/usr/share/backgrounds/lightdm/slick-greeter"
+ local _backgrounf_file="${BACKGROUND_DIR}/lightdm/slick-greeter"
mkdir -p "$(dirname "${_backgrounf_file}")"
cp "${1}" "${_backgrounf_file}"
chmod 644 "${_backgrounf_file}"
exit 1
fi
- local _backgrounf_file="/usr/share/backgrounds/lxdm/background"
+ local _backgrounf_file="${BACKGROUND_DIR}/lxdm/background"
mkdir -p "$(dirname "${_backgrounf_file}")"
cp "${1}" "${_backgrounf_file}"
chmod 644 "${_backgrounf_file}"
#== CONFIGS ==#
-
# LightDM - Greeterのディレクトリ
LIGHTDM_GREETERS_DIR="$(lightdm_get_value "greeters-directory")"
: "${LIGHTDM_GREETERS_DIR:="/usr/share/xgreeters"}"
-# LightDM - Greeter一覧
-#LIGHTDM_GREETERS=( $( )
-while read -r line; do
- LIGHTDM_GREETERS+=("${line}")
-done < <( (find "${LIGHTDM_GREETERS_DIR}" -print0 -type f | xargs -0 -i basename {} | grep -E ".desktop$" | sed "s|.desktop$||g" | grep -xv "xgreeters") 2> /dev/null )
-
# LightDM - 現在設定されているGreeter
LIGHTDM_CURRENT_GREETER="$(lightdm --show-config 2>&1 | grep "greeter-session" | cut -d "=" -f 2)"
: "${LIGHTDM_CURRENT_GREETER:="lightdm-gtk-greeter"}"
-# LightDM - 読み込まれた設定ファイルの一覧
-while read -r line; do
- LIGHTDM_LOADED_CONFIG+=("${line}")
-done < <(printf "%s\n" "$(lightdm --show-config 2>&1 | grep -x -A "$(lightdm --show-config 2>&1 | wc -l)" "Sources:" | grep -v "Sources" | sed 's|^[A-Z] ||g')" | tr -d " ")
-
# Global - エディタ
USE_EDITOR="${EDITOR:-vi}"
+# Global - 背景画像をコピーするディレクトリ
+BACKGROUND_DIR="/usr/share/backgrounds"
+
# Global - 現在のディスプレイマネージャ名
CURRENT_DM="$(basename "$(readlink "/etc/systemd/system/display-manager.service")" | sed "s|.service$||g")"