more on conky handling
This commit is contained in:
parent
997222b9ab
commit
661a120efb
@ -34,6 +34,9 @@ case "$LANG" in
|
||||
NO_CONKY_RUNNING="Brak uruchomionych Conky"
|
||||
RUN_CONKY_SESSION="Uruchom zapisaną sesję"
|
||||
MOVEABLEALL="Ustaw wszystkie (<i>przeciągaj</i>)..."
|
||||
NOT_FULLY_SUPPORTED="Częściowo wspierane..."
|
||||
UNSUPPORTED="Conky - częściowo wspierane"
|
||||
UNSUPPORTED_START="kliknij aby uruchomić"
|
||||
GENERATEFROMWP="Generuj z kolorów tapety"
|
||||
LIGHTBG="Jasne tło"
|
||||
DARKBG="Ciemne tło"
|
||||
@ -74,6 +77,9 @@ case "$LANG" in
|
||||
NO_CONKY_RUNNING="No Conky running"
|
||||
RUN_CONKY_SESSION="Run Conky session"
|
||||
MOVEABLEALL="Make moveable all..."
|
||||
NOT_FULLY_SUPPORTED="Partially supported"
|
||||
UNSUPPORTED="partially supported Conkies"
|
||||
UNSUPPORTED_START="click to start"
|
||||
GENERATEFROMWP="Generate from wallpaper colors"
|
||||
LIGHTBG="Light Background"
|
||||
DARKBG="Dark Background"
|
||||
@ -102,7 +108,7 @@ case "$LANG" in
|
||||
RUNNING_CONKIES="Running Conkys"
|
||||
STOP_ALL="Stop All"
|
||||
MORECONKIES="More Conkies Available"
|
||||
CLICKTOSTART="click to start"
|
||||
CLICKTOSTART="...click to start"
|
||||
STARTALL="Start all"
|
||||
RESET="Reset"
|
||||
RESETALL="Reset all to defaults"
|
||||
@ -155,8 +161,9 @@ if pgrep -af "conky.*mbcolor" >/dev/null; then
|
||||
# array with running conkies - only filenames with full path
|
||||
readarray -t running < <(pgrep -af "conky -c " | cut -d' ' -f4)
|
||||
|
||||
#array with all supported conkies
|
||||
for i in "$CONKYDIR"/*.con* "$CONKYDIR"/**/*.con*; do
|
||||
#array with all conkies found
|
||||
#for i in "$CONKYDIR"/*.con* "$CONKYDIR"/**/*.con*; do
|
||||
for i in "$CONKYDIR"/*.conkyrc "$CONKYDIR"/*.conf "$CONKYDIR"/**/*.conkyrc "$CONKYDIR"/**/*.conf; do
|
||||
if [[ "$i" == *mbcolor* ]];then
|
||||
supported+=("$i")
|
||||
else
|
||||
@ -170,40 +177,60 @@ if pgrep -af "conky.*mbcolor" >/dev/null; then
|
||||
notstarted=($(echo ${running[@]} ${supported[@]} ${unsupported[@]} ${unsupported[@]}| tr ' ' '\n' | sort | uniq -u))
|
||||
notstarted_unsupported=($(echo ${running[@]} ${supported[@]} ${supported[@]} ${unsupported[@]} | tr ' ' '\n' | sort | uniq -u))
|
||||
|
||||
|
||||
RCONKIES="${#running[@]}"
|
||||
NSCONKIES="${#notstarted[@]}"
|
||||
ALLSUPP=$(($RCONKIES+$NSCONKIES))
|
||||
#notify-send.sh "$ALLSUPP" "$RCONKIES $NSCONKIES"
|
||||
if [[ ${#running[@]} > 0 ]];then
|
||||
out+=("^sep($RUNNING_CONKIES)")
|
||||
for c in ${running[@]};do
|
||||
filename=${c##*/}
|
||||
name=${filename%%_mb*}
|
||||
title=${name//_/ }
|
||||
name2=${name%%.con*}
|
||||
title=${name2//_/ }
|
||||
out+=("${title^},^pipe(conkyctl single ${c})")
|
||||
done
|
||||
out+=("^sep()")
|
||||
out+=("$STOP_ALL (${#running[@]}),conky_toggle;sleep .5;$me")
|
||||
fi
|
||||
if [[ ${#notstarted[@]} > 0 ]];then
|
||||
out+=("^sep($MORECONKIES)")
|
||||
out+=("^sep($MORECONKIES)")
|
||||
if [[ "$ALLSUPP" < 15 ]];then
|
||||
out+=("^sep(<small><i>$CLICKTOSTART</i></small>)")
|
||||
for c in ${notstarted[@]};do
|
||||
filename=${c##*/}
|
||||
name=${filename%%_mb*}
|
||||
title=${name//_/ }
|
||||
out+=("${title^},conkyctl startone ${c};$me")
|
||||
filename=${c##*/}
|
||||
name=${filename%%_mb*}
|
||||
title=${name//_/ }
|
||||
out+=("${title^},conkyctl startone ${c};$me")
|
||||
done
|
||||
if [[ ${#notstarted[@]} > 1 ]];then
|
||||
out+=("^sep()")
|
||||
out+=("$STARTALL (${#notstarted[@]}),conkyctl startall;$me")
|
||||
fi
|
||||
else # too many conkies - not started go to submenu
|
||||
out+=("$CLICKTOSTART (${#notstarted[@]}),^checkout(nstarted)")
|
||||
out2+=("^tag(nstarted)")
|
||||
for c in ${notstarted[@]};do
|
||||
filename=${c##*/}
|
||||
name=${filename%%_mb*}
|
||||
title=${name//_/ }
|
||||
out2+=("${title^},conkyctl startone ${c};$me")
|
||||
done
|
||||
if [[ ${#notstarted[@]} > 1 ]];then
|
||||
out2+=("^sep()")
|
||||
out2+=("$STARTALL (${#notstarted[@]}),conkyctl startall;$me")
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
if [[ ${#notstarted_unsupported[@]} > 0 ]];then
|
||||
out+=("^sep()")
|
||||
out+=("UNSUPPORTED,^checkout(unsup)")
|
||||
out+=("$NOT_FULLY_SUPPORTED (${#notstarted_unsupported[@]}),^checkout(unsup)")
|
||||
out2+=("^tag(unsup)")
|
||||
out2+=("^sep(UNSUPPORTED)")
|
||||
out2+=("^sep($UNSUPPORTED)")
|
||||
out2+=("^sep($UNSUPPORTED_START)")
|
||||
for c in ${notstarted_unsupported[@]};do
|
||||
filename=${c##*/}
|
||||
name=${filename%%_mb*}
|
||||
name=${filename%%.con*}
|
||||
title=${name//_/ }
|
||||
out2+=("${title^},conkyctl startone ${c};$me")
|
||||
done
|
||||
|
@ -66,7 +66,7 @@ read MB1 MB2 MBFG<<< "$(grep '^Messages Border ' ${THEMERC})"
|
||||
|
||||
out+=("^sep($COLORIZE_PYRADIO)")
|
||||
#out+=("$START_PYRADIO,terminator --geometry=420x440-20-20 -e pyradio")
|
||||
out+=("$INFO,notify-send.sh -i music '$INFO_HEAD' '$INFO_TXT' -t 20000")
|
||||
out+=(" $INFO,notify-send.sh -i music '$INFO_HEAD' '$INFO_TXT' -t 20000")
|
||||
out+=("^sep(<i>$GENERATEFROMWP</i>)")
|
||||
out+=("$LIGHTBG,w2theme pyradio light;$me")
|
||||
out+=("$DARKBG,w2theme pyradio dark;$me")
|
||||
@ -113,13 +113,13 @@ read MB1 MB2 MBFG<<< "$(grep '^Messages Border ' ${THEMERC})"
|
||||
|
||||
out+=("^sep($CONFIG_AND_DOCS)")
|
||||
#out+=("PyRadio README,cat /usr/share/doc/pyradio/README.html| yad --html --no-buttons --no-escape --height=800 --width=600")
|
||||
out+=(" $README,xdg-open /usr/share/doc/pyradio/README.html")
|
||||
out+=(" $MANUAL,^term(man pyradio)")
|
||||
out+=(" $README,xdg-open /usr/share/doc/pyradio/README.html")
|
||||
out+=(" $MANUAL,^term(man pyradio)")
|
||||
out+=("^sep()")
|
||||
out+=(" $EDITCONF,xdg-open ~/.config/pyradio/config")
|
||||
out+=(" $EDITSTATIONS,xdg-open ~/.config/pyradio/stations.csv")
|
||||
out+=(" $EDITCONF,xdg-open ~/.config/pyradio/config")
|
||||
out+=(" $EDITSTATIONS,xdg-open ~/.config/pyradio/stations.csv")
|
||||
out+=("^sep()")
|
||||
out+=(" $CONFIGDIR,^pipe(jgbrowser ~/.config/pyradio)")
|
||||
out+=(" $CONFIGDIR,^pipe(jgbrowser ~/.config/pyradio)")
|
||||
|
||||
|
||||
### RUN
|
||||
|
96
bin/conkyctl
96
bin/conkyctl
@ -155,28 +155,28 @@ pos () {
|
||||
### jak po środku to wyzerować gaps
|
||||
case "$1" in
|
||||
top_left|top_right|bottom_left|bottom_right)
|
||||
sd "gap_x .*=.*,$" "gap_x = ${def_x}," ${2}
|
||||
sd "gap_y .*=.*,$" "gap_y = ${def_y}," ${2}
|
||||
sd "gap_x .*=.*," "gap_x = ${def_x}," ${2}
|
||||
sd "gap_y .*=.*," "gap_y = ${def_y}," ${2}
|
||||
;;
|
||||
top_middle|bottom_middle)
|
||||
sd "gap_x .*=.*,$" "gap_x = 0," ${2}
|
||||
sd "gap_y .*=.*,$" "gap_y = ${def_y}," ${2}
|
||||
sd "gap_x .*=.*," "gap_x = 0," ${2}
|
||||
sd "gap_y .*=.*," "gap_y = ${def_y}," ${2}
|
||||
;;
|
||||
middle_left|middle_right)
|
||||
sd "gap_x .*=.*,$" "gap_x = ${def_x}," ${2}
|
||||
sd "gap_y .*=.*,$" "gap_y = 0," ${2}
|
||||
sd "gap_x .*=.*," "gap_x = ${def_x}," ${2}
|
||||
sd "gap_y .*=.*," "gap_y = 0," ${2}
|
||||
;;
|
||||
middle_middle)
|
||||
sd "gap_x .*=.*,$" "gap_x = 0," ${2}
|
||||
sd "gap_y .*=.*,$" "gap_y = 0," ${2}
|
||||
sd "gap_x .*=.*," "gap_x = 0," ${2}
|
||||
sd "gap_y .*=.*," "gap_y = 0," ${2}
|
||||
;;
|
||||
esac
|
||||
}
|
||||
gap_x () {
|
||||
sd "gap_x .*=.*,$" "gap_x = ${1}," ${2}
|
||||
sd "gap_x .*=.*," "gap_x = ${1}," ${2}
|
||||
}
|
||||
gap_y () {
|
||||
sd "gap_y .*=.*,$" "gap_y = ${1}," ${2}
|
||||
sd "gap_y .*=.*," "gap_y = ${1}," ${2}
|
||||
}
|
||||
setpos () {
|
||||
filename=${1##*/}
|
||||
@ -310,13 +310,15 @@ saveposall () {
|
||||
while read -r WIN_ID b c X Y rest
|
||||
do
|
||||
conffile=$(xprop -id $WIN_ID |grep WM_COMMAND |cut -d'"' -f6)
|
||||
pos top_left ${conffile}
|
||||
#notify-send.sh -t 10000 "${X} ${Y}" "${conffile}"
|
||||
# improve conky margin calculation here: gap = border_width + border_inner_margin + border_outer_margin
|
||||
((X=X+17))
|
||||
((Y=Y+17))
|
||||
gap_x ${X} ${conffile}
|
||||
gap_y ${Y} ${conffile}
|
||||
if [[ "$conffile" = *"mbcolor"* ]];then
|
||||
pos top_left ${conffile}
|
||||
#notify-send.sh -t 10000 "${X} ${Y}" "${conffile}"
|
||||
# improve conky margin calculation here: gap = border_width + border_inner_margin + border_outer_margin
|
||||
((X=X+17))
|
||||
((Y=Y+17))
|
||||
gap_x ${X} ${conffile}
|
||||
gap_y ${Y} ${conffile}
|
||||
fi
|
||||
done < <(wmctrl -lpG | grep '1 0 ')
|
||||
makedesktoptypeall
|
||||
}
|
||||
@ -345,6 +347,10 @@ resetcolorsone () {
|
||||
languages () {
|
||||
case "$LANG" in
|
||||
pl*)
|
||||
UNSUPPORTED="częściowo wspierane!!!"
|
||||
OLD_SYNTAX_DETECTED="<b><span bgcolor='yellow'> stara składnia! </span></b> wykryta..."
|
||||
CONVERT_OLD="Czy spróbować skonwertować?"
|
||||
CONVERT_OLD_TRY="Tak, spróbuj konwertować"
|
||||
POSITION="Pozycja"
|
||||
MAKEMOVEABLE="Ustaw wszystkie (<i>poprzez przeciąganie</i>)..."
|
||||
MARKNEWPOS="Nowa pozycja (<i>zaznacz na ekranie</i>)..."
|
||||
@ -401,6 +407,10 @@ languages () {
|
||||
MOUNTPOINTS="Dyski (punkty montowania)"
|
||||
;;
|
||||
es*)
|
||||
UNSUPPORTED="partially supported!!!"
|
||||
OLD_SYNTAX_DETECTED="<b><span bgcolor='yellow'> old syntax!!! </span></b> detected..."
|
||||
CONVERT_OLD="Try to convert to new syntax?"
|
||||
CONVERT_OLD_TRY="Yes, try to convert"
|
||||
POSITION="Position"
|
||||
MAKEMOVEABLE="Make moveable all..."
|
||||
MARKNEWPOS="New position (<i>mark on the screen</i>)..."
|
||||
@ -457,6 +467,10 @@ languages () {
|
||||
MOUNTPOINTS="Discs (mount points)"
|
||||
;;
|
||||
*)
|
||||
UNSUPPORTED="partially supported!!!"
|
||||
OLD_SYNTAX_DETECTED="<b><span bgcolor='yellow'> old syntax!!! </span></b> detected..."
|
||||
CONVERT_OLD="Try to convert to new syntax?"
|
||||
CONVERT_OLD_TRY="Yes, try to convert"
|
||||
POSITION="Position"
|
||||
MAKEMOVEABLE="Make moveable all..."
|
||||
MARKNEWPOS="New position (<i>mark on the screen</i>)..."
|
||||
@ -516,10 +530,15 @@ languages () {
|
||||
}
|
||||
|
||||
single () {
|
||||
unset NOT_SUPPORTED OLD_SYNTAX
|
||||
|
||||
languages
|
||||
filename=${1##*/}
|
||||
name=${filename%%_mb*}
|
||||
title=${name//_/ }
|
||||
|
||||
grep -q "conky.text" "$1" && : || OLD_SYNTAX="true"
|
||||
|
||||
# breaks mbclr color picking from contextmenu, leave it as "colorizer-conky -s" for now
|
||||
if [[ "$2" == "s" ]];then
|
||||
me="none none"
|
||||
@ -560,11 +579,18 @@ single () {
|
||||
if [[ "$filename" == *"mbcolor"* ]];then
|
||||
out+=("^sep(Conky: [ ${title^} ])")
|
||||
else
|
||||
NOT_SUPPORTED="true"
|
||||
out+=("^sep(Conky: [ ${title^} ]")
|
||||
out+=("^sep(<span bgcolor='red'> unsupported!!! </span>)")
|
||||
|
||||
out+=("^sep(<span bgcolor='red' fgcolor='white'> ${UNSUPPORTED} </span>)")
|
||||
fi
|
||||
|
||||
if [[ "$OLD_SYNTAX" = "true" ]];then
|
||||
out+=("$OLD_SYNTAX_DETECTED,^checkout(oldsyntax)")
|
||||
out2+=("^tag(oldsyntax)")
|
||||
out2+=("^sep($CONVERT_OLD)")
|
||||
out2+=("\"\"\"$CONVERT_OLD_TRY\"\"\",conkyctl convert_from_old ${1}")
|
||||
#notify-send.sh "Plik" "${1}"
|
||||
else
|
||||
out+=(" $POSITION,^checkout(position)")
|
||||
if [[ "$1" =~ "etwork_mbcolor" ]]; then
|
||||
out+=("$NOT_WORKING,conkyctl netdevice")
|
||||
@ -598,8 +624,11 @@ single () {
|
||||
for i in 0 10 20 30 40 60 80 100 120 140 160 180 200 220 240 260 280 300 320 340 360; do
|
||||
out3+=("${i},conkyctl gap_y ${i} ${1};$me")
|
||||
done
|
||||
if [[ "$NOT_SUPPORTED" != "true" ]];then
|
||||
out2+=("^sep()")
|
||||
out2+=(" $MAKEMOVEABLE,conkyctl makemoveableall")
|
||||
fi
|
||||
|
||||
|
||||
if [[ "$1" =~ "logo_mbcolor" ]]; then
|
||||
read LSIZE <<< "$(grep minimum_height ${1} | cut -d'=' -f2 | cut -d"," -f1)"
|
||||
@ -690,12 +719,16 @@ single () {
|
||||
fi
|
||||
|
||||
out+=("$TRANSPARENT [ <b>$WINTRANS</b> ],^checkout(transsingle)")
|
||||
if [ "$WINTRANS" == false ];then
|
||||
out+=("<small><span bgcolor='$WINCLR'> </span><span ${BG} fgcolor='$WINCLR'> AbCd </span></small> $BACKGROUND,^pipe(mbclr '$WINCLR' conkyctl win_bgcolor '${BACKGROUND}' '$me' ${1})")
|
||||
else
|
||||
out+=("<small><span bgcolor='$WINCLR'> transparent </span></small> $BACKGROUND,^pipe(mbclr '$WINCLR' conkyctl win_bgcolor '${BACKGROUND}' '$me' ${1})")
|
||||
if [[ "$WINCLR" != "#" ]];then
|
||||
if [ "$WINTRANS" == false ];then
|
||||
out+=("<small><span bgcolor='$WINCLR'> </span><span ${BG} fgcolor='$WINCLR'> AbCd </span></small> $BACKGROUND,^pipe(mbclr '$WINCLR' conkyctl win_bgcolor '${BACKGROUND}' '$me' ${1})")
|
||||
out+=("^sep()")
|
||||
else
|
||||
out+=("<small><span bgcolor='$WINCLR'> transparent </span></small> $BACKGROUND,^pipe(mbclr '$WINCLR' conkyctl win_bgcolor '${BACKGROUND}' '$me' ${1})")
|
||||
out+=("^sep()")
|
||||
fi
|
||||
fi
|
||||
out+=("^sep()")
|
||||
|
||||
if [[ "$1" != *"logo_mbcolor"* ]]; then
|
||||
|
||||
[[ "$CLR" != "#" ]] && out+=("<small><span bgcolor='$CLR'> </span><span ${BG} fgcolor='$CLR'> <b>AbCd</b> </span></small> $DEFCOLOR,^pipe(mbclr '$CLR' conkyctl default_color '${DEFCOLOR}' '$me' ${1})")
|
||||
@ -742,7 +775,7 @@ single () {
|
||||
out2+=("2,conkyctl stippled_borders 2 ${1};$me")
|
||||
out2+=("3,conkyctl stippled_borders 3 ${1};$me")
|
||||
out2+=("4,conkyctl stippled_borders 4 ${1};$me")
|
||||
|
||||
fi #OLD SYNTAX CHECK
|
||||
out+=("^sep()")
|
||||
out+=(" $EDIT ${title^},xdg-open ${1}")
|
||||
out+=("北 $RELOAD ${title^},conkyctl restartone ${1}")
|
||||
@ -844,7 +877,7 @@ contextmenu () {
|
||||
|
||||
|
||||
mkconfigfile
|
||||
|
||||
if [[ "$OLD_SYNTAX" != "true" ]];then
|
||||
echo "color_menu_bg_to=${WINCLR} 100" >> ${CONFIG_FILE}
|
||||
TXTCOLOR=$(pastel textcolor ${WINCLR}|pastel format hex)
|
||||
#notify-send.sh "TXTCOLOR" "${TXTCOLOR} ${menu_gradient_pos}"
|
||||
@ -875,7 +908,7 @@ contextmenu () {
|
||||
|
||||
echo "color_sep_fg=${CLR} 10" >> ${CONFIG_FILE}
|
||||
echo "font=${FONT} 10" >> ${CONFIG_FILE}
|
||||
|
||||
fi
|
||||
cat <<EOF > ${MENU_ITEMS}
|
||||
$(printf '%s\n' "${out[@]}")
|
||||
$(printf '%s\n' "${out2[@]}")
|
||||
@ -1186,6 +1219,14 @@ newcolorscheme () {
|
||||
savecolorscheme "${themename}" "${1}"
|
||||
fi
|
||||
}
|
||||
convert_from_old () {
|
||||
# try to convert from old syntax to new by convert.lua script
|
||||
#notify-send.sh "Convert func" "${1}"
|
||||
kill ${1}
|
||||
convert.lua ${1}
|
||||
sleep 1
|
||||
startone ${1}
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
transparent_all) transparent_all "$2";;
|
||||
@ -1232,5 +1273,6 @@ case "$1" in
|
||||
settheme_all) settheme_all "$2";;
|
||||
newcolorscheme) newcolorscheme "$2";;
|
||||
netdevice) netdevice ;;
|
||||
convert_from_old) convert_from_old "$2";;
|
||||
*) : ;;
|
||||
esac
|
||||
|
161
bin/convert.lua
Executable file
161
bin/convert.lua
Executable file
@ -0,0 +1,161 @@
|
||||
#! /usr/bin/lua
|
||||
|
||||
local usage = [[
|
||||
Usage: convert.lua old_conkyrc [new_conkyrc]
|
||||
|
||||
Tries to convert conkyrc from the old v1.x format to the new, lua-based format.
|
||||
|
||||
Keep in mind that there is no guarantee that the output will work correctly
|
||||
with conky, or that it will be able to convert every conkyrc. However, it
|
||||
should provide a good starting point.
|
||||
|
||||
Although you can use this script with only 1 arg and let it overwrite the old
|
||||
config, it's suggested to use 2 args so that the new config is written in a new
|
||||
file (so that you have backup if something went wrong).
|
||||
|
||||
Optional: Install dos2unix. We will attempt to use this if it is available
|
||||
because Conky configs downloaded from Internet sometimes are created on DOS/Windows
|
||||
machines with different line endings than Conky configs created on Unix/Linux.
|
||||
|
||||
For more information about the new format, read the wiki page
|
||||
<https://github.com/brndnmtthws/conky/wiki>
|
||||
]];
|
||||
|
||||
local function quote(s)
|
||||
if not s:find("[\n'\\]") then
|
||||
return "'" .. s .. "'";
|
||||
end;
|
||||
local q = '';
|
||||
while s:find(']' .. q .. ']', 1, true) do
|
||||
q = q .. '=';
|
||||
end;
|
||||
return string.format('[%s[\n%s]%s]', q, s, q);
|
||||
end;
|
||||
|
||||
local bool_setting = {
|
||||
background = true, disable_auto_reload = true, double_buffer = true, draw_borders = true,
|
||||
draw_graph_borders = true, draw_outline = true, draw_shades = true, extra_newline = true,
|
||||
format_human_readable = true, no_buffers = true, out_to_console = true,
|
||||
out_to_wayland = true,
|
||||
out_to_ncurses = true, out_to_stderr = true, out_to_x = true, override_utf8_locale = true,
|
||||
own_window = true, own_window_argb_visual = true, own_window_transparent = true,
|
||||
short_units = true, show_graph_range = true, show_graph_scale = true,
|
||||
times_in_seconds = true, top_cpu_separate = true, uppercase = true, use_xft = true,
|
||||
draw_blended = true, forced_redraw = true
|
||||
};
|
||||
|
||||
local num_setting = {
|
||||
border_inner_margin = true, border_outer_margin = true, border_width = true,
|
||||
cpu_avg_samples = true, diskio_avg_samples = true, gap_x = true, gap_y = true,
|
||||
imlib_cache_flush_interval = true, imlib_cache_size = true,
|
||||
max_port_monitor_connections = true, max_text_width = true, max_user_text = true,
|
||||
maximum_width = true, mpd_port = true, music_player_interval = true, net_avg_samples = true,
|
||||
own_window_argb_value = true, pad_percents = true, stippled_borders = true,
|
||||
text_buffer_size = true, top_name_width = true, total_run_times = true,
|
||||
update_interval = true, update_interval_on_battery = true, xftalpha = true,
|
||||
xinerama_head = true,
|
||||
};
|
||||
|
||||
local split_setting = {
|
||||
default_bar_size = true, default_gauge_size = true, default_graph_size = true,
|
||||
minimum_size = true
|
||||
};
|
||||
|
||||
local colour_setting = {
|
||||
color0 = true, color1 = true, color2 = true, color3 = true, color4 = true, color5 = true,
|
||||
color6 = true, color7 = true, color8 = true, color9 = true, default_color = true,
|
||||
default_outline_color = true, default_shade_color = true, own_window_colour = true
|
||||
};
|
||||
|
||||
local function alignment_map(value)
|
||||
local map = { m = 'middle', t = 'top', b = 'bottom', r = 'right', l = 'left' };
|
||||
if map[value] == nil then
|
||||
return value;
|
||||
else
|
||||
return map[value];
|
||||
end;
|
||||
end;
|
||||
|
||||
local function handle(setting, value)
|
||||
setting = setting:lower();
|
||||
if setting == '' then
|
||||
return '';
|
||||
end;
|
||||
if split_setting[setting] then
|
||||
local x, y = value:match('^(%S+)%s*(%S*)$');
|
||||
local ret = setting:gsub('_size', '_width = ') .. x .. ',';
|
||||
if y ~= '' then
|
||||
ret = ret .. ' ' .. setting:gsub('_size', '_height = ') .. y .. ',';
|
||||
end;
|
||||
return '\t' .. ret;
|
||||
end;
|
||||
if bool_setting[setting] then
|
||||
value = value:lower();
|
||||
if value == 'yes' or value == 'true' or value == '1' or value == '' then
|
||||
value = 'true';
|
||||
else
|
||||
value = 'false';
|
||||
end;
|
||||
elseif not num_setting[setting] then
|
||||
if setting == 'alignment' and value:len() == 2 then
|
||||
value = alignment_map(value:sub(1,1)) .. '_' .. alignment_map(value:sub(2,2));
|
||||
elseif colour_setting[setting] and value:match('^[0-9a-fA-F]+$') then
|
||||
value = '#' .. value;
|
||||
elseif setting == 'xftfont' then
|
||||
setting = 'font';
|
||||
end;
|
||||
value = quote(value);
|
||||
end;
|
||||
return '\t' .. setting .. ' = ' .. value .. ',';
|
||||
end;
|
||||
|
||||
local function convert(s)
|
||||
local setting, comment = s:match('^([^#]*)#?(.*)\n$');
|
||||
if comment ~= '' then
|
||||
comment = '--' .. comment;
|
||||
end;
|
||||
comment = comment .. '\n';
|
||||
return handle(setting:match('^%s*(%S*)%s*(.-)%s*$')) .. comment;
|
||||
end;
|
||||
|
||||
local input;
|
||||
local output;
|
||||
|
||||
if conky == nil then --> standalone program
|
||||
-- 1 arg: arg is input and outputfile
|
||||
-- 2 args: 1st is inputfile, 2nd is outputfile
|
||||
-- 0, 3 or more args: print usage to STDERR and quit
|
||||
if #arg == 1 or #arg == 2 then
|
||||
if os.execute('command -v dos2unix 2>&1 >/dev/null') == 0 then
|
||||
os.execute('dos2unix ' .. arg[1]);
|
||||
end
|
||||
input = io.input(arg[1]);
|
||||
else
|
||||
io.stderr:write(usage);
|
||||
return;
|
||||
end;
|
||||
else
|
||||
-- we are called from conky, the filename is the first argument
|
||||
input = io.open(..., 'r');
|
||||
end;
|
||||
|
||||
|
||||
local config = input:read('*a');
|
||||
input:close();
|
||||
|
||||
local settings, text = config:match('^(.-)TEXT\n(.*)$');
|
||||
|
||||
local converted = 'conky.config = {\n' .. settings:gsub('.-\n', convert) .. '};\n\nconky.text = ' ..
|
||||
quote(text) .. ';\n';
|
||||
|
||||
if conky == nil then
|
||||
if #arg == 2 then
|
||||
output = io.output(arg[2]);
|
||||
else
|
||||
output = io.output(arg[1]);
|
||||
end
|
||||
output:write(converted);
|
||||
output:close();
|
||||
else
|
||||
return assert(load(converted, 'converted config'));
|
||||
end;
|
Loading…
Reference in New Issue
Block a user