• R/O
  • HTTP
  • SSH
  • HTTPS

dmc: Commit

GitHubのミラーです
https://github.com/FascodeNet/dmc


Commit MetaInfo

Revisión3ddadcd5615fbc367534a402b70e352cdc377c87 (tree)
Tiempo2021-05-09 22:23:02
Autorhayao <hayao@fasc...>
Commiterhayao

Log Message

[update] : Supported wayland session

Cambiar Resumen

Diferencia incremental

--- a/dmc
+++ b/dmc
@@ -276,13 +276,10 @@ get_icon_theme(){
276276 printf "%s\n" "${_gtk_theme_name_list[@]}" | sort | uniq
277277 }
278278
279-get_xorg_session(){
280- find "/usr/share/xsessions" -type f -print0 -name "*.desktop" | xargs -0 -I{} bash -c 'basename {} | sed "s|.desktop||g"'
279+get_session(){
280+ find "/usr/share/xsessions" "/usr/share/wayland-sessions" -type f -print0 -name "*.desktop" | xargs -0 -I{} bash -c 'basename {} | sed "s|.desktop||g"'
281281 }
282282
283-get_wayland_session(){
284- find "/usr/share/wayland-sessions" -type f -print0 -name "*.desktop" | xargs -0 -I{} bash -c 'basename {} | sed "s|.desktop||g"'
285-}
286283
287284 # 質問を行う関数
288285 # Returns only the selected result to standard output
@@ -351,8 +348,8 @@ ask_question(){
351348 # デスクトップセッションを聞く
352349 ask_session(){
353350 local _session
354- if (( $(get_xorg_session | wc -l) <= 1 )); then
355- _session="$(get_xorg_session)"
351+ if (( $(get_session | wc -l) <= 1 )); then
352+ _session="$(get_session)"
356353 elif [[ "${NON_INTERACTIVE}" = true ]]; then
357354 # 非対話モード
358355 # ~/.dmrcの値を設定します
@@ -363,14 +360,8 @@ ask_session(){
363360 exit 1
364361 fi
365362 else
366- readarray -t _session_list < <(get_xorg_session)
367- if ! session="$(ask_question -p "Select the desktop session to autologin" "${_session_list[@]}")"; then
368- msg_error "Please enter the correct session name."
369- exit 1
370- fi
371- if [[ -f "/usr/share/xsessions/${session}.desktop" ]]; then
372- _session="${session}"
373- else
363+ readarray -t _session_list < <(get_session)
364+ if ! _session="$(ask_question -p "Select the desktop session to autologin" "${_session_list[@]}")"; then
374365 msg_error "Please enter the correct session name."
375366 exit 1
376367 fi
@@ -394,18 +385,32 @@ ask_gtk_theme(){
394385 # セッションが利用可能かどうか確認する
395386 # check_session <session>
396387 check_session(){
397- if [[ ! -f "/usr/share/xsessions/${1}.desktop" ]]; then
398- # 存在しないセッションが指定された場合
399- msg_error "This is a session (${1}) that does not exist."
400- exit 1
401- fi
388+ for _file in "/usr/share/wayland-sessions/${1}.desktop" "/usr/share/xsessions/${1}.desktop"; do
389+ if [[ -f "${_file}" ]]; then
390+ return 0
391+ fi
392+ done
393+ # 存在しないセッションが指定された場合
394+ msg_error "This is a session (${1}) that does not exist."
395+ return 1
396+}
397+
398+# セッションのフルパスを返す
399+get_session_path(){
400+ check_session "${1}"
401+ for _file in "/usr/share/wayland-sessions/${1}.desktop" "/usr/share/xsessions/${1}.desktop"; do
402+ if [[ -f "${_file}" ]]; then
403+ echo "${_file}"
404+ return 0
405+ fi
406+ done
402407 }
403408
404409 # セッションのバイナリを取得する
405410 # get_session <session name>
406-get_session(){
411+get_session_exec(){
407412 check_session "${1}"
408- local session_exec="$(crudini --get "/usr/share/xsessions/${1}.desktop" "Desktop Entry" "Exec")"
413+ local session_exec="$(crudini --get "$(get_session_path "${1}")" "Desktop Entry" "Exec")"
409414 if [[ ! -f "${session_exec}" ]]; then
410415 session_exec="$(type -p "${session_exec}")"
411416 fi
@@ -1441,7 +1446,7 @@ command_lxdm_session_change(){
14411446 fi
14421447 local session="${1}"
14431448 check_session "${session}"
1444- local session_exec="$(get_session "${session}")"
1449+ local session_exec="$(get_session_exec "${session}")"
14451450 lxdm_set_config "base" "session" "${session_exec}"
14461451 }
14471452
Show on old repository browser