You are not logged in.
Not a mistake, the script tries to delete all altogether16 files.
When one of them isn't found it fires up an error message.
Just ignore it.
Please make Autocad Civil 3D and Archicad work on Linux!
Please make Autocad Civil 3D and Archicad work on Linux!
Please make Autocad Civil 3D and Archicad work on Linux!
Please make Autocad Civil 3D and Archicad work on Linux!
Offline
Okay
I still have no visibility --> Image
conky.config = {
-- Create own window instead of using desktop (required in nautilus)
own_window = true,
own_window_type = 'normal',
own_window_transparent = false,
own_window_class = 'Conky',
--own_window_colour = '#000000',
own_window_argb_visual = true,
own_window_argb_value = 160,
own_window_hints = 'below,skip_taskbar,skip_pager', --undecorated,
-- Use double buffering (reduces flicker, may not work for everyone)
double_buffer = true,
-- fiddle with window
use_spacer = 'right',
use_xft = true,
-- Update interval in seconds
update_interval = 3,
-- Minimum size of text area
minimum_width = 1030, minimum_height = 450,
maximum_width = 1030,
override_utf8_locale = true,
-- Draw shades?
draw_shades = true,
-- Text stuff
draw_outline = true,-- amplifies text if yes
draw_borders = false,
--font freesans -12
font = 'Arial:size=9',
uppercase = false,-- set to yes if you want all text to be in uppercase
-- Stippled borders?
stippled_borders = 3,
-- border margins
border_inner_margin = 9,
border_outer_margin = 0,
-- border width
border_width = 10,
-- Default colors and also border colors, grey90 == #e5e5e5
default_color = '#cbcbcb',
--own_window_colour = 'brown',
-- Text alignment, other possible values are commented
--alignment top_left
alignment = 'top_right',
--alignment bottom_left
--alignment bottom_right
-- Gap between borders of screen and text
gap_x = 10,
gap_y = 30,
imlib_cache_size = 0,
text_buffer_size = 4096,
-- stuff after 'TEXT' will be formatted on screen
};
conky.text = [[
${font Arial:size=11}${color ffe595}HOURLY WEATHER ${font}${hr 2}${texeci 600 bash $HOME/1_accuweather/1_accuweather -h2016}
${execpi 600 sed -n '1,26p' $HOME/1_accuweather/altogether16_2016}
]];
Must the text_puffer_size be increased?
Offline
Nice catch unklar.
You should change
${execpi 600 sed -n '1,26p' $HOME/1_accuweather/altogether16_2016}
to
${execpi 600 sed -n '1,28p' $HOME/1_accuweather/altogether16_2016}
Please make Autocad Civil 3D and Archicad work on Linux!
Please make Autocad Civil 3D and Archicad work on Linux!
Please make Autocad Civil 3D and Archicad work on Linux!
Please make Autocad Civil 3D and Archicad work on Linux!
Offline
BINGO, Teo!
I got grey hair here and I didn't see it. ]:D
Thank you so much!
Last edited by unklar (2017-11-08 12:53:07)
Offline
so I didn't get to the final test until tonight.
The script works for me with all three Conky's. Exactly how you describe it.
Thank you for "Just a thought...", Teo.
Offline
so I didn't get to the final test until tonight.
The script works for me with all three Conky's. Exactly how you describe it.
Thank you for "Just a thought...", Teo.
Good to hear unklar.
Please make Autocad Civil 3D and Archicad work on Linux!
Please make Autocad Civil 3D and Archicad work on Linux!
Please make Autocad Civil 3D and Archicad work on Linux!
Please make Autocad Civil 3D and Archicad work on Linux!
Offline
Teo,
Finally got a chance to use your mods, and it works! Thanks.
Of course, now I'm in a spiral of "Ooh, I should try the 2016 or the 2015 or the..."
Offline
You're welcome Fortran, thanks for the support and the prompt notification.
Please make Autocad Civil 3D and Archicad work on Linux!
Please make Autocad Civil 3D and Archicad work on Linux!
Please make Autocad Civil 3D and Archicad work on Linux!
Please make Autocad Civil 3D and Archicad work on Linux!
Offline
Forcing the user to change parameters inside the main script other than the Accuweather address seems a bit dangerous to me, so I added all the above functionality using extra script switches.
#!/bin/bash
#function: test_image
test_image () {
case $1 in
1)
echo a
;;
2|3)
echo b
;;
4|5)
echo c
;;
6)
echo d
;;
7)
echo e
;;
8)
echo f
;;
11)
echo 0
;;
12)
echo h
;;
13|14)
echo g
;;
15)
echo m
;;
16|17)
echo k
;;
18)
echo i
;;
19)
echo q
;;
20|21|23)
echo o
;;
22)
echo r
;;
24|31)
echo E
;;
25)
echo v
;;
26)
echo x
;;
29)
echo y
;;
30)
echo 5
;;
32)
echo 6
;;
33)
echo A
;;
34|35)
echo B
;;
36|37)
echo C
;;
38)
echo D
;;
39|40)
echo G
;;
41|42)
echo K
;;
43|44)
echo O
;;
*)
echo -
;;
esac
}
############################
# Check the user arguments #
############################
if (( $# < 1 || $# > 15 )); then
echo "Invalid arguments!"
exit
fi
forecast0=0
forecast2015=0
forecast2016=0
hourly0=0
hourly2015=0
hourly2016=0
h_16hours=1
h_real=1
h_wind=1
h_rain=1
h_snow=1
h_ice=1
h_uv=1
h_cloud=1
h_humid=1
h_dew=1
h_visib=1
for i in $*
do
if [[ $i != -f && $i != -f2015 && $i != -f2016 && $i != -h && $i != -h2015 && $i != -h2016 && $i != -h_8h && $i != -h_no_real && $i != -h_no_wind && $i != -h_no_rain && $i != -h_no_snow && $i != -h_no_ice && $i != -h_no_uv && $i != -h_no_cloud && $i != -h_no_humid && $i != -h_no_dew && $i != -h_no_visib ]]; then
echo "Invalid arguments!"
exit
fi
case $i in
-f)
forecast0=1
;;
-f2015)
forecast2015=1
;;
-f2016)
forecast2016=1
;;
-h)
hourly0=1
;;
-h2015)
hourly2015=1
;;
-h2016)
hourly2016=1
;;
-h_8h)
h_16hours=0
;;
-h_no_real)
h_real=0
;;
-h_no_wind)
h_wind=0
;;
-h_no_rain)
h_rain=0
;;
-h_no_snow)
h_snow=0
;;
-h_no_ice)
h_ice=0
;;
-h_no_uv)
h_uv=0
;;
-h_no_cloud)
h_cloud=0
;;
-h_no_humid)
h_humid=0
;;
-h_no_dew)
h_dew=0
;;
-h_no_visib)
h_visib=0
;;
esac
done
if [[ $forecast0 == 1 ]]; then
forecast2015=0
forecast2016=0
fi
if [[ $hourly0 == 1 ]]; then
hourly2015=0
hourly2016=0
fi
#Put your Accuweather address here
#address="http://www.accuweather.com/en/ar/buenos-aires/7894/weather-forecast/7894"
#address="http://www.accuweather.com/en/jp/tokyo/226396/weather-forecast/226396"
address="http://www.accuweather.com/en/gr/kastoria/178682/weather-forecast/178682"
last_number=$(echo $address|sed 's/^.*\///')
#############################################################
# NORMAL FORECAST: -f, -f2015 or -f2016 passed as arguments #
#############################################################
if [[ $forecast0 == 1 || $forecast2015 == 1 || $forecast2016 == 1 ]]; then
#function: convert_time
convert_time ()
{
hours=$(echo $1|awk -F ":| " '{print $1}')
minutes=$(echo $1|awk -F ":| " '{print $2}')
am_or_pm=$(echo $1|awk -F ":| " '{print $3}')
if [[ $am_or_pm == AM ]]; then
if (( $hours < 10 )); then
hours_24=0$hours
fi
if (( $hours == 10 || $hours == 11 )); then
hours_24=$hours
fi
if (( $hours == 12 )); then
hours_24=00
fi
elif [[ $am_or_pm == PM ]]; then
if (( $hours != 12 )); then
hours_24=$((hours+12))
fi
if (( $hours == 12 )); then
hours_24=12
fi
fi
time_24=$hours_24:$minutes
echo $time_24
}
#function: test_wind
test_wind () {
case $1 in
CLM)
echo -
;;
S)
echo 1
;;
SSW)
echo 2
;;
SW)
echo 3
;;
WSW)
echo 4
;;
W)
echo 5
;;
WNW)
echo 6
;;
NW)
echo 7
;;
NNW)
echo 8
;;
N)
echo 9
;;
NNE)
echo :
;;
NE)
echo ;
;;
ENE)
echo \<
;;
E)
echo =
;;
ESE)
echo \>
;;
SE)
echo ?
;;
SSE)
echo @
;;
esac
}
kill -STOP $(pidof conky)
curr_addr="$(echo $address|sed 's/weather-forecast.*$//')"current-weather/"$last_number"
wget -o /dev/null -O $HOME/1_accuweather/curr_cond_raw "$curr_addr"
addr1="$(echo $address|sed 's/weather-forecast.*$//')"daily-weather-forecast/"$last_number"
wget -o /dev/null -O $HOME/1_accuweather/first_days_raw "$addr1"
addr2="$addr1"?day=6
wget -o /dev/null -O $HOME/1_accuweather/last_days_raw "$addr2"
if [[ $forecast2015 == 1 ]]; then
rm $HOME/1_accuweather/forecast_2015/forecast_*.png
fi
if [[ $forecast2016 == 1 ]]; then
rm $HOME/1_accuweather/forecast_2016/forecast_*.png
fi
#current conditions
if [[ -s $HOME/1_accuweather/curr_cond_raw ]]; then
sed -i '/detail-now/,/Astronomy <span class/!d' $HOME/1_accuweather/curr_cond_raw
egrep -i '"cond"|icon i-|large-temp|small-temp|wind-point|"wind"><strong>|Humidity|Pressure|UV Index|Cloud Cover|Ceiling|Dew Point|Visibility|Duration|Sunrise:|Sunset:|Moonrise:|Moonset:' $HOME/1_accuweather/curr_cond_raw > $HOME/1_accuweather/curr_cond
sed -i -e 's/^.*<strong>//g' -e 's/^.*<span>//g' -e 's/^.*icon i-//g' -e 's/^.*large-temp">//g' -e 's/^.*<\/em> //g' -e 's/^.*"cond">//g' -e 's/^.*wind-point //g' $HOME/1_accuweather/curr_cond
sed -i -e 's/">.*$//g' -e 's/°.*$//g' -e 's/<\/span>.*$//g' -e 's/&#.*$//g' -e 's/ &darr.*$//g' -e 's/ &uarr.*$//g' -e 's/<\/strong>.*$//g' $HOME/1_accuweather/curr_cond
sed -i '1s/-.*$//' $HOME/1_accuweather/curr_cond
image=$(sed -n 1p $HOME/1_accuweather/curr_cond)
echo $(test_image $image) >> $HOME/1_accuweather/curr_cond
sunrise_time=$(sed -n 14p $HOME/1_accuweather/curr_cond)
echo $(convert_time "$sunrise_time") >> $HOME/1_accuweather/curr_cond
sunrise_time=$(sed -n 15p $HOME/1_accuweather/curr_cond)
echo $(convert_time "$sunrise_time") >> $HOME/1_accuweather/curr_cond
sunrise_time=$(sed -n 18p $HOME/1_accuweather/curr_cond)
echo $(convert_time "$sunrise_time") >> $HOME/1_accuweather/curr_cond
sunrise_time=$(sed -n 19p $HOME/1_accuweather/curr_cond)
echo $(convert_time "$sunrise_time") >> $HOME/1_accuweather/curr_cond
wind=$(sed -n 5p $HOME/1_accuweather/curr_cond)
echo $(test_wind $wind) >> $HOME/1_accuweather/curr_cond
if (( $(sed -n 14p /$HOME/1_accuweather/curr_cond|wc -c) == 8 )); then
sed -i '14s/^/0/' $HOME/1_accuweather/curr_cond
fi
if (( $(sed -n 15p /$HOME/1_accuweather/curr_cond|wc -c) == 8 )); then
sed -i '15s/^/0/' $HOME/1_accuweather/curr_cond
fi
if (( $(sed -n 18p /$HOME/1_accuweather/curr_cond|wc -c) == 8 )); then
sed -i '18s/^/0/' $HOME/1_accuweather/curr_cond
fi
if (( $(sed -n 19p /$HOME/1_accuweather/curr_cond|wc -c) == 8 )); then
sed -i '19s/^/0/' $HOME/1_accuweather/curr_cond
fi
if [[ $forecast2015 == 1 ]]; then
cp $HOME/1_accuweather/Forecast_Images_2015/$(sed -n 1p $HOME/1_accuweather/curr_cond).png $HOME/1_accuweather/forecast_2015/forecast_0.png
cp $HOME/1_accuweather/Forecast_Images_2015/$(sed -n 5p $HOME/1_accuweather/curr_cond).png $HOME/1_accuweather/forecast_2015/wind_0.png
fi
if [[ $forecast2016 == 1 ]]; then
cp $HOME/1_accuweather/Forecast_Images_2016/$(sed -n 1p $HOME/1_accuweather/curr_cond).png $HOME/1_accuweather/forecast_2016/forecast_0.png
cp $HOME/1_accuweather/Forecast_Images_2016/$(sed -n 5p $HOME/1_accuweather/curr_cond).png $HOME/1_accuweather/forecast_2016/wind_0.png
fi
fi
#First 5 days
if [[ -s $HOME/1_accuweather/first_days_raw ]]; then
sed -i '/.feed-controls/,/\.feed-tabs/!d' $HOME/1_accuweather/first_days_raw
egrep -i 'href="#"|icon i-|"large-temp"|"small-temp"|temp-label|"cond"' $HOME/1_accuweather/first_days_raw > $HOME/1_accuweather/first_days
sed -i -e '/icon/s/-. //g' -e 's/^.*icon i-//g' -e 's/^.*large-temp">//g' -e 's/^.*small-temp">\///g' -e 's/^.*"cond">//g' -e 's/^.*href="#">//g' -e 's/^.*"temp-label tonight ">//g' -e 's/^.*"temp-label tonight selected">//g' $HOME/1_accuweather/first_days
sed -i -e 's/°.*$//g' -e 's/<\/a>.*$//g' -e 's/<\/span>.*$//g' -e 's/">.*$//g' $HOME/1_accuweather/first_days
sed -i -e 's/Mon$/MONDAY/' -e 's/Tue$/TUESDAY/' -e 's/Wed$/WEDNESDAY/' -e 's/Thu$/THURSDAY/' -e 's/Fri$/FRIDAY/' -e 's/Sat$/SATURDAY/' -e 's/Sun$/SUNDAY/' -e 's/Today$/TODAY/' -e 's/Tonight$/TONIGHT/' -e 's/Early AM/EARLY AM/' $HOME/1_accuweather/first_days
for (( i=2; i<=22; i+=5 ))
do
image=$(sed -n "${i}"p $HOME/1_accuweather/first_days)
echo $(test_image $image) >> $HOME/1_accuweather/first_days
done
if [[ $forecast0 == 0 ]]; then
j=1
for (( i=2; i<=22; i+=5 ))
do
if [[ $forecast2015 == 1 ]]; then
cp $HOME/1_accuweather/Forecast_Images_2015/$(sed -n ${i}p $HOME/1_accuweather/first_days).png $HOME/1_accuweather/forecast_2015/forecast_$j.png
fi
if [[ $forecast2016 == 1 ]]; then
cp $HOME/1_accuweather/Forecast_Images_2016/$(sed -n ${i}p $HOME/1_accuweather/first_days).png $HOME/1_accuweather/forecast_2016/forecast_$j.png
fi
((j++))
done
fi
fi
#Next 5 days
if [[ -s $HOME/1_accuweather/last_days_raw ]]; then
sed -i '/.feed-controls/,/\.feed-tabs/!d' $HOME/1_accuweather/last_days_raw
egrep -i 'href="#"|icon i-|large-temp|small-temp|temp-label|"cond"' $HOME/1_accuweather/last_days_raw > $HOME/1_accuweather/last_days
sed -i -e '/icon/s/-. //g' -e 's/^.*icon i-//g' -e 's/^.*large-temp">//g' -e 's/^.*small-temp">\///g' -e 's/^.*"cond">//g' -e 's/^.*href="#">//g' -e 's/^.*"temp-label tonight ">//g' $HOME/1_accuweather/last_days
sed -i -e 's/°.*$//g' -e 's/<\/a>.*$//g' -e 's/<\/span>.*$//g' -e 's/">.*$//g' $HOME/1_accuweather/last_days
sed -i -e 's/Mon$/MONDAY/' -e 's/Tue$/TUESDAY/' -e 's/Wed$/WEDNESDAY/' -e 's/Thu$/THURSDAY/' -e 's/Fri$/FRIDAY/' -e 's/Sat$/SATURDAY/' -e 's/Sun$/SUNDAY/' $HOME/1_accuweather/last_days
for (( i=2; i<=22; i+=5 ))
do
image=$(sed -n "${i}"p $HOME/1_accuweather/last_days)
echo $(test_image $image) >> $HOME/1_accuweather/last_days
done
if [[ $forecast0 == 0 ]]; then
j=6
for (( i=2; i<=22; i+=5 ))
do
if [[ $forecast2015 == 1 ]]; then
cp $HOME/1_accuweather/Forecast_Images_2015/$(sed -n ${i}p $HOME/1_accuweather/last_days).png $HOME/1_accuweather/forecast_2015/forecast_$j.png
fi
if [[ $forecast2016 == 1 ]]; then
cp $HOME/1_accuweather/Forecast_Images_2016/$(sed -n ${i}p $HOME/1_accuweather/last_days).png $HOME/1_accuweather/forecast_2016/forecast_$j.png
fi
((j++))
done
fi
fi
if [[ $hourly0 != 1 && $hourly2015 != 1 && $hourly2016 != 1 ]]; then
kill -CONT $(pidof conky)
fi
fi
#############################################################
# HOURLY FORECAST: -h, -h2015 or -h2016 passed as arguments #
#############################################################
if [[ $hourly0 == 1 || $hourly2015 == 1 || $hourly2016 == 1 ]]; then
#Hourly: First 8h
if [[ $forecast0 != 1 && $forecast2015 != 1 && $forecast2016 != 1 ]]; then
kill -STOP $(pidof conky)
fi
if [[ $hourly2015 == 1 ]]; then
rm $HOME/1_accuweather/hourly_2015/hourly_*.png
fi
if [[ $hourly2016 == 1 ]]; then
rm $HOME/1_accuweather/hourly_2016/hourly_*.png
fi
hourly_addr1="$(echo $address|sed 's/weather-forecast.*$//')"hourly-weather-forecast/"$last_number"
wget -o /dev/null -O $HOME/1_accuweather/hourly_raw1 "$hourly_addr1"
if [[ -s $HOME/1_accuweather/hourly_raw1 ]]; then
sed -i '/detail-tab-buttons\.detail-tab-buttons/,/<div class="hourly-table">/!d' $HOME/1_accuweather/hourly_raw1
egrep -i 'hour=|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday|pm<\/div>|am<\/div>|icon-weather icon i-|<th>Forecast|<span>.*<\/span>|<th>Temp|<th>Realfeel|<th>Wind|<th>Rain|<th>Snow|<th>Ice|<th>UV Index|<th>Cloud Cover|<th>Humidity|<th>Dew Point|<th>Visibility' $HOME/1_accuweather/hourly_raw1 > $HOME/1_accuweather/hourly1
sed -i -e 's/^[ \t]*//g' -e 's/^.*<div>//g' -e 's/^.*<span>//g' -e 's/^.*<th>//g' -e 's/^.*icon i-//g' -e 's/-s">.*$//g' -e 's/<\/div>.*$//g' -e 's/&#.*$//g' -e 's/<\/span>.*$//g' -e 's/<\/th>.*$//g' -e 's/^.*href="//g' -e 's/" class=.*$//g' $HOME/1_accuweather/hourly1
sed -i -e 's/Monday/Mon/' -e 's/Tuesday/Tue/' -e 's/Wednesday/Wed/' -e 's/Thursday/Thu/' -e 's/Friday/Fri/' -e 's/Saturday/Sat/' -e 's/Sunday/Sun/' -e 's/\r//g' $HOME/1_accuweather/hourly1
echo "ConkyWeather Font Icons" >> $HOME/1_accuweather/hourly1
for (( i=4; i<=18; i+=2 ))
do
image=$(sed -n "${i}"p $HOME/1_accuweather/hourly1)
echo $(test_image $image) >> $HOME/1_accuweather/hourly1
done
if [[ $hourly0 == 0 ]]; then
j=1
for (( i=4; i<=18; i+=2 ))
do
if [[ $hourly2015 == 1 ]]; then
cp $HOME/1_accuweather/Forecast_Images_2015/$(sed -n ${i}p $HOME/1_accuweather/hourly1).png $HOME/1_accuweather/hourly_2015/hourly_$j.png
fi
if [[ $hourly2016 == 1 ]]; then
cp $HOME/1_accuweather/Forecast_Images_2016/$(sed -n ${i}p $HOME/1_accuweather/hourly1).png $HOME/1_accuweather/hourly_2016/hourly_$j.png
fi
((j++))
done
fi
fi
#Hourly: Next 8h
hourly_addr2=$(sed -n 1p $HOME/1_accuweather/hourly1)
wget -o /dev/null -O $HOME/1_accuweather/hourly_raw2 "$hourly_addr2"
if [[ -s $HOME/1_accuweather/hourly_raw2 ]]; then
sed -i '/detail-tab-buttons\.detail-tab-buttons/,/<div class="hourly-table">/!d' $HOME/1_accuweather/hourly_raw2
egrep -i 'hour=|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday|pm<\/div>|am<\/div>|icon-weather icon i-|<th>Forecast|<span>.*<\/span>|<th>Temp|<th>Realfeel|<th>Wind|<th>Rain|<th>Snow|<th>Ice|<th>UV Index|<th>Cloud Cover|<th>Humidity|<th>Dew Point|<th>Visibility' $HOME/1_accuweather/hourly_raw2 > $HOME/1_accuweather/hourly2
sed -i -e 's/^[ \t]*//g' -e 's/^.*<div>//g' -e 's/^.*<span>//g' -e 's/^.*<th>//g' -e 's/^.*icon i-//g' -e 's/-s">.*$//g' -e 's/<\/div>.*$//g' -e 's/&#.*$//g' -e 's/<\/span>.*$//g' -e 's/<\/th>.*$//g' -e 's/^.*href="//g' -e 's/" class=.*$//g' $HOME/1_accuweather/hourly2
sed -i 1d $HOME/1_accuweather/hourly2
sed -i -e 's/Monday/Mon/' -e 's/Tuesday/Tue/' -e 's/Wednesday/Wed/' -e 's/Thursday/Thu/' -e 's/Friday/Fri/' -e 's/Saturday/Sat/' -e 's/Sunday/Sun/' -e 's/\r//g' $HOME/1_accuweather/hourly2
echo "ConkyWeather Font Icons" >> $HOME/1_accuweather/hourly2
for (( i=4; i<=18; i+=2 ))
do
image=$(sed -n "${i}"p $HOME/1_accuweather/hourly2)
echo $(test_image $image) >> $HOME/1_accuweather/hourly2
done
if [[ $hourly0 == 0 ]]; then
j=9
for (( i=4; i<=18; i+=2 ))
do
if [[ $hourly2015 == 1 ]]; then
cp $HOME/1_accuweather/Forecast_Images_2015/$(sed -n ${i}p $HOME/1_accuweather/hourly2).png $HOME/1_accuweather/hourly_2015/hourly_$j.png
fi
if [[ $hourly2016 == 1 ]]; then
cp $HOME/1_accuweather/Forecast_Images_2016/$(sed -n ${i}p $HOME/1_accuweather/hourly2).png $HOME/1_accuweather/hourly_2016/hourly_$j.png
fi
((j++))
done
fi
fi
# Full info, next 16h - altogether16 file
rm $HOME/1_accuweather/{altogether16,altogether16_2015,altogether16_2016}
#TIME
echo "\${color ffe595}TIME\${goto 100}" > $HOME/1_accuweather/altogether16
sed -i "1s/$/$(sed -n 2p $HOME/1_accuweather/hourly1):$(sed -n 3p $HOME/1_accuweather/hourly1)/" $HOME/1_accuweather/altogether16
jump_to=160
for (( i=5; i<=17; i+=2 ))
do
time=$(sed -n ${i}p $HOME/1_accuweather/hourly1)
sed -i "1s/$/\${goto $jump_to}$time/" $HOME/1_accuweather/altogether16
((jump_to+=60))
done
if [[ $h_16hours == 1 ]]; then
sed -i "1s/$/\${goto 580}$(sed -n 2p $HOME/1_accuweather/hourly2):$(sed -n 3p $HOME/1_accuweather/hourly2)/" $HOME/1_accuweather/altogether16
jump_to=640
for (( i=5; i<=17; i+=2 ))
do
time=$(sed -n ${i}p $HOME/1_accuweather/hourly2)
sed -i "1s/$/\${goto $jump_to}$time/" $HOME/1_accuweather/altogether16
((jump_to+=60))
done
fi
sed -i '1s/$/\n\n\n/' $HOME/1_accuweather/altogether16
#FORECAST
echo "\${color ffe595}FORECAST\${color}" >> $HOME/1_accuweather/altogether16
jump_to=100
for (( i=20; i<=27; i+=1 ))
do
messg=$(sed -n ${i}p $HOME/1_accuweather/hourly1|awk '{print $1}'|cut -c1-8)
sed -i "5s/$/\${goto $jump_to}$messg/" $HOME/1_accuweather/altogether16
((jump_to+=60))
done
if [[ $h_16hours == 1 ]]; then
for (( i=20; i<=27; i+=1 ))
do
messg=$(sed -n ${i}p $HOME/1_accuweather/hourly2|awk '{print $1}'|cut -c1-8)
sed -i "5s/$/\${goto $jump_to}$messg/" $HOME/1_accuweather/altogether16
((jump_to+=60))
done
fi
sed -i '5s/$/\n/' $HOME/1_accuweather/altogether16
jump_to=100
for (( i=20; i<=27; i+=1 ))
do
messg=$(sed -n ${i}p $HOME/1_accuweather/hourly1|awk '{print $2}'|cut -c1-8)
sed -i "6s/$/\${goto $jump_to}$messg/" $HOME/1_accuweather/altogether16
((jump_to+=60))
done
if [[ $h_16hours == 1 ]]; then
for (( i=20; i<=27; i+=1 ))
do
messg=$(sed -n ${i}p $HOME/1_accuweather/hourly2|awk '{print $2}'|cut -c1-8)
sed -i "6s/$/\${goto $jump_to}$messg/" $HOME/1_accuweather/altogether16
((jump_to+=60))
done
fi
#TEMPERATURE
echo "\${color ffe595}\${goto 100}\${hr 1}" >> $HOME/1_accuweather/altogether16
echo "TEMPER.\${color}" >> $HOME/1_accuweather/altogether16
jump_to=100
for (( i=29; i<=36; i+=1 ))
do
messg=$(sed -n ${i}p $HOME/1_accuweather/hourly1)
sed -i "8s/$/\${goto $jump_to}$messg°/" $HOME/1_accuweather/altogether16
((jump_to+=60))
done
if [[ $h_16hours == 1 ]]; then
for (( i=29; i<=36; i+=1 ))
do
messg=$(sed -n ${i}p $HOME/1_accuweather/hourly2)
sed -i "8s/$/\${goto $jump_to}$messg°/" $HOME/1_accuweather/altogether16
((jump_to+=60))
done
fi
#REAL FEEL
echo "\${color ffe595}\${goto 100}\${hr 1}" >> $HOME/1_accuweather/altogether16
echo "REAL FEEL\${color}" >> $HOME/1_accuweather/altogether16
jump_to=100
for (( i=38; i<=45; i+=1 ))
do
messg=$(sed -n ${i}p $HOME/1_accuweather/hourly1)
sed -i "10s/$/\${goto $jump_to}$messg°/" $HOME/1_accuweather/altogether16
((jump_to+=60))
done
if [[ $h_16hours == 1 ]]; then
for (( i=38; i<=45; i+=1 ))
do
messg=$(sed -n ${i}p $HOME/1_accuweather/hourly2)
sed -i "10s/$/\${goto $jump_to}$messg°/" $HOME/1_accuweather/altogether16
((jump_to+=60))
done
fi
#WIND
echo "\${color ffe595}\${goto 100}\${hr 1}" >> $HOME/1_accuweather/altogether16
echo "WIND\${color}" >> $HOME/1_accuweather/altogether16
jump_to=100
for (( i=47; i<=54; i+=1 ))
do
messg=$(sed -n ${i}p $HOME/1_accuweather/hourly1)
sed -i "12s/$/\${goto $jump_to}$messg/" $HOME/1_accuweather/altogether16
((jump_to+=60))
done
if [[ $h_16hours == 1 ]]; then
for (( i=47; i<=54; i+=1 ))
do
messg=$(sed -n ${i}p $HOME/1_accuweather/hourly2)
sed -i "12s/$/\${goto $jump_to}$messg/" $HOME/1_accuweather/altogether16
((jump_to+=60))
done
fi
#RAIN
echo "\${color ffe595}\${goto 100}\${hr 1}" >> $HOME/1_accuweather/altogether16
echo "RAIN\${color}" >> $HOME/1_accuweather/altogether16
jump_to=100
for (( i=64; i<=71; i+=1 ))
do
messg=$(sed -n ${i}p $HOME/1_accuweather/hourly1)
sed -i "14s/$/\${goto $jump_to}$messg/" $HOME/1_accuweather/altogether16
((jump_to+=60))
done
if [[ $h_16hours == 1 ]]; then
for (( i=64; i<=71; i+=1 ))
do
messg=$(sed -n ${i}p $HOME/1_accuweather/hourly2)
sed -i "14s/$/\${goto $jump_to}$messg/" $HOME/1_accuweather/altogether16
((jump_to+=60))
done
fi
#SNOW
echo "\${color ffe595}\${goto 100}\${hr 1}" >> $HOME/1_accuweather/altogether16
echo "SNOW\${color}" >> $HOME/1_accuweather/altogether16
jump_to=100
for (( i=73; i<=80; i+=1 ))
do
messg=$(sed -n ${i}p $HOME/1_accuweather/hourly1)
sed -i "16s/$/\${goto $jump_to}$messg/" $HOME/1_accuweather/altogether16
((jump_to+=60))
done
if [[ $h_16hours == 1 ]]; then
for (( i=73; i<=80; i+=1 ))
do
messg=$(sed -n ${i}p $HOME/1_accuweather/hourly2)
sed -i "16s/$/\${goto $jump_to}$messg/" $HOME/1_accuweather/altogether16
((jump_to+=60))
done
fi
#ICE
echo "\${color ffe595}\${goto 100}\${hr 1}" >> $HOME/1_accuweather/altogether16
echo "ICE\${color}" >> $HOME/1_accuweather/altogether16
jump_to=100
for (( i=82; i<=89; i+=1 ))
do
messg=$(sed -n ${i}p $HOME/1_accuweather/hourly1)
sed -i "18s/$/\${goto $jump_to}$messg/" $HOME/1_accuweather/altogether16
((jump_to+=60))
done
if [[ $h_16hours == 1 ]]; then
for (( i=82; i<=89; i+=1 ))
do
messg=$(sed -n ${i}p $HOME/1_accuweather/hourly2)
sed -i "18s/$/\${goto $jump_to}$messg/" $HOME/1_accuweather/altogether16
((jump_to+=60))
done
fi
#UV INDEX
echo "\${color ffe595}\${goto 100}\${hr 1}" >> $HOME/1_accuweather/altogether16
echo "UV INDEX\${color}" >> $HOME/1_accuweather/altogether16
jump_to=100
for (( i=99; i<=106; i+=1 ))
do
messg=$(sed -n ${i}p $HOME/1_accuweather/hourly1)
sed -i "20s/$/\${goto $jump_to}$messg/" $HOME/1_accuweather/altogether16
((jump_to+=60))
done
if [[ $h_16hours == 1 ]]; then
for (( i=99; i<=106; i+=1 ))
do
messg=$(sed -n ${i}p $HOME/1_accuweather/hourly2)
sed -i "20s/$/\${goto $jump_to}$messg/" $HOME/1_accuweather/altogether16
((jump_to+=60))
done
fi
#CLOUD COVER
echo "\${color ffe595}\${goto 100}\${hr 1}" >> $HOME/1_accuweather/altogether16
echo "CLOUD COV.\${color}" >> $HOME/1_accuweather/altogether16
jump_to=100
for (( i=108; i<=115; i+=1 ))
do
messg=$(sed -n ${i}p $HOME/1_accuweather/hourly1)
sed -i "22s/$/\${goto $jump_to}$messg/" $HOME/1_accuweather/altogether16
((jump_to+=60))
done
if [[ $h_16hours == 1 ]]; then
for (( i=108; i<=115; i+=1 ))
do
messg=$(sed -n ${i}p $HOME/1_accuweather/hourly2)
sed -i "22s/$/\${goto $jump_to}$messg/" $HOME/1_accuweather/altogether16
((jump_to+=60))
done
fi
#HUMIDITY
echo "\${color ffe595}\${goto 100}\${hr 1}" >> $HOME/1_accuweather/altogether16
echo "HUMIDITY\${color}" >> $HOME/1_accuweather/altogether16
jump_to=100
for (( i=117; i<=124; i+=1 ))
do
messg=$(sed -n ${i}p $HOME/1_accuweather/hourly1)
sed -i "24s/$/\${goto $jump_to}$messg/" $HOME/1_accuweather/altogether16
((jump_to+=60))
done
if [[ $h_16hours == 1 ]]; then
for (( i=117; i<=124; i+=1 ))
do
messg=$(sed -n ${i}p $HOME/1_accuweather/hourly2)
sed -i "24s/$/\${goto $jump_to}$messg/" $HOME/1_accuweather/altogether16
((jump_to+=60))
done
fi
#DEW POINT
echo "\${color ffe595}\${goto 100}\${hr 1}" >> $HOME/1_accuweather/altogether16
echo "DEW POINT\${color}" >> $HOME/1_accuweather/altogether16
jump_to=100
for (( i=126; i<=133; i+=1 ))
do
messg=$(sed -n ${i}p $HOME/1_accuweather/hourly1)
sed -i "26s/$/\${goto $jump_to}$messg°/" $HOME/1_accuweather/altogether16
((jump_to+=60))
done
if [[ $h_16hours == 1 ]]; then
for (( i=126; i<=133; i+=1 ))
do
messg=$(sed -n ${i}p $HOME/1_accuweather/hourly2)
sed -i "26s/$/\${goto $jump_to}$messg°/" $HOME/1_accuweather/altogether16
((jump_to+=60))
done
fi
#VISIBILITY
echo "\${color ffe595}\${goto 100}\${hr 1}" >> $HOME/1_accuweather/altogether16
echo "VISIBILITY\${color}" >> $HOME/1_accuweather/altogether16
jump_to=100
for (( i=135; i<=142; i+=1 ))
do
messg=$(sed -n ${i}p $HOME/1_accuweather/hourly1)
sed -i "28s/$/\${goto $jump_to}$messg/" $HOME/1_accuweather/altogether16
((jump_to+=60))
done
if [[ $h_16hours == 1 ]]; then
for (( i=135; i<=142; i+=1 ))
do
messg=$(sed -n ${i}p $HOME/1_accuweather/hourly2)
sed -i "28s/$/\${goto $jump_to}$messg/" $HOME/1_accuweather/altogether16
((jump_to+=60))
done
fi
#IMAGES
if [[ $hourly0 == 0 ]]; then
if [[ $hourly2015 == 1 ]]; then
jump_to=75
cp $HOME/1_accuweather/altogether16 $HOME/1_accuweather/altogether16_2015
fi
if [[ $hourly2016 == 1 ]]; then
jump_to=85
cp $HOME/1_accuweather/altogether16 $HOME/1_accuweather/altogether16_2016
fi
rm $HOME/1_accuweather/altogether16
hours=$((8+$h_16hours*8))
for (( i=1; i<=$hours; i+=1 ))
do
if [[ $hourly2015 == 1 ]]; then
sed -i "4s/$/\${image \$HOME\/1_accuweather\/hourly_2015\/hourly_$i.png -s 60x36 -p $jump_to,49}/" $HOME/1_accuweather/altogether16_2015
fi
if [[ $hourly2016 == 1 ]]; then
sed -i "4s/$/\${image \$HOME\/1_accuweather\/hourly_2016\/hourly_$i.png -s 36x36 -p $jump_to,49}/" $HOME/1_accuweather/altogether16_2016
fi
((jump_to+=60))
done
fi
#CONKYFONT
if [[ $hourly0 == 1 ]]; then
sed -i '4s/$/\${color}\${font conkyweather:size=35}/' $HOME/1_accuweather/altogether16
jump_to=95
for (( i=144; i<=151; i+=1 ))
do
sed -i "4s/$/\${goto $jump_to}$(sed -n ${i}p $HOME/1_accuweather/hourly1)/" $HOME/1_accuweather/altogether16
((jump_to+=60))
done
if [[ $h_16hours == 1 ]]; then
for (( i=144; i<=151; i+=1 ))
do
sed -i "4s/$/\${goto $jump_to}$(sed -n ${i}p $HOME/1_accuweather/hourly2)/" $HOME/1_accuweather/altogether16
((jump_to+=60))
done
fi
sed -i '4s/$/\${font}/' $HOME/1_accuweather/altogether16
sed -i '2,3d' $HOME/1_accuweather/altogether16
fi
#DELETE UNWANTED VARIABLES
if [[ $h_real == 0 ]]; then
if [[ $hourly0 == 1 ]]; then
sed -i '7,8s/^.*$/VOID/' $HOME/1_accuweather/altogether16
elif [[ $hourly2015 == 1 ]]; then
sed -i '9,10s/^.*$/VOID/' $HOME/1_accuweather/altogether16_2015
elif [[ $hourly2016 == 1 ]]; then
sed -i '9,10s/^.*$/VOID/' $HOME/1_accuweather/altogether16_2016
fi
fi
if [[ $h_wind == 0 ]]; then
if [[ $hourly0 == 1 ]]; then
sed -i '9,10s/^.*$/VOID/' $HOME/1_accuweather/altogether16
elif [[ $hourly2015 == 1 ]]; then
sed -i '11,12s/^.*$/VOID/' $HOME/1_accuweather/altogether16_2015
elif [[ $hourly2016 == 1 ]]; then
sed -i '11,12s/^.*$/VOID/' $HOME/1_accuweather/altogether16_2016
fi
fi
if [[ $h_rain == 0 ]]; then
if [[ $hourly0 == 1 ]]; then
sed -i '11,12s/^.*$/VOID/' $HOME/1_accuweather/altogether16
elif [[ $hourly2015 == 1 ]]; then
sed -i '13,14s/^.*$/VOID/' $HOME/1_accuweather/altogether16_2015
elif [[ $hourly2016 == 1 ]]; then
sed -i '13,14s/^.*$/VOID/' $HOME/1_accuweather/altogether16_2016
fi
fi
if [[ $h_snow == 0 ]]; then
if [[ $hourly0 == 1 ]]; then
sed -i '13,14s/^.*$/VOID/' $HOME/1_accuweather/altogether16
elif [[ $hourly2015 == 1 ]]; then
sed -i '15,16s/^.*$/VOID/' $HOME/1_accuweather/altogether16_2015
elif [[ $hourly2016 == 1 ]]; then
sed -i '15,16s/^.*$/VOID/' $HOME/1_accuweather/altogether16_2016
fi
fi
if [[ $h_ice == 0 ]]; then
if [[ $hourly0 == 1 ]]; then
sed -i '15,16s/^.*$/VOID/' $HOME/1_accuweather/altogether16
elif [[ $hourly2015 == 1 ]]; then
sed -i '17,18s/^.*$/VOID/' $HOME/1_accuweather/altogether16_2015
elif [[ $hourly2016 == 1 ]]; then
sed -i '17,18s/^.*$/VOID/' $HOME/1_accuweather/altogether16_2016
fi
fi
if [[ $h_uv == 0 ]]; then
if [[ $hourly0 == 1 ]]; then
sed -i '17,18s/^.*$/VOID/' $HOME/1_accuweather/altogether16
elif [[ $hourly2015 == 1 ]]; then
sed -i '19,20s/^.*$/VOID/' $HOME/1_accuweather/altogether16_2015
elif [[ $hourly2016 == 1 ]]; then
sed -i '19,20s/^.*$/VOID/' $HOME/1_accuweather/altogether16_2016
fi
fi
if [[ $h_cloud == 0 ]]; then
if [[ $hourly0 == 1 ]]; then
sed -i '19,20s/^.*$/VOID/' $HOME/1_accuweather/altogether16
elif [[ $hourly2015 == 1 ]]; then
sed -i '21,22s/^.*$/VOID/' $HOME/1_accuweather/altogether16_2015
elif [[ $hourly2016 == 1 ]]; then
sed -i '21,22s/^.*$/VOID/' $HOME/1_accuweather/altogether16_2016
fi
fi
if [[ $h_humid == 0 ]]; then
if [[ $hourly0 == 1 ]]; then
sed -i '21,22s/^.*$/VOID/' $HOME/1_accuweather/altogether16
elif [[ $hourly2015 == 1 ]]; then
sed -i '23,24s/^.*$/VOID/' $HOME/1_accuweather/altogether16_2015
elif [[ $hourly2016 == 1 ]]; then
sed -i '23,24s/^.*$/VOID/' $HOME/1_accuweather/altogether16_2016
fi
fi
if [[ $h_dew == 0 ]]; then
if [[ $hourly0 == 1 ]]; then
sed -i '23,24s/^.*$/VOID/' $HOME/1_accuweather/altogether16
elif [[ $hourly2015 == 1 ]]; then
sed -i '25,26s/^.*$/VOID/' $HOME/1_accuweather/altogether16_2015
elif [[ $hourly2016 == 1 ]]; then
sed -i '25,26s/^.*$/VOID/' $HOME/1_accuweather/altogether16_2016
fi
fi
if [[ $h_visib == 0 ]]; then
if [[ $hourly0 == 1 ]]; then
sed -i '25,26s/^.*$/VOID/' $HOME/1_accuweather/altogether16
elif [[ $hourly2015 == 1 ]]; then
sed -i '27,28s/^.*$/VOID/' $HOME/1_accuweather/altogether16_2015
elif [[ $hourly2016 == 1 ]]; then
sed -i '27,28s/^.*$/VOID/' $HOME/1_accuweather/altogether16_2016
fi
fi
sed -i '/VOID/d' $HOME/1_accuweather/{altogether16,altogether16_2015,altogether16_2016}
kill -CONT $(pidof conky)
fi
The script's switches are now the following:
-f 10 days forecast-no images, just the weatherfont
-f2015 10 days forecast with the old Accuweather images
-f2016 10 days forecast with the new Accuweather images
-h hourly forecast without any images, just the weatherfont
-h2015 hourly forecast with the old Accuweather images
-h2016 hourly forecast with the new Accuweather images
-h_8h if an hourly forecast has been chosen, make it only for 8 hours instead of 16
-h_no_real if an hourly forecast has been chosen, ignore the real feel values
-h_no_wind if an hourly forecast has been chosen, ignore the wind values
-h_no_rain if an hourly forecast has been chosen, ignore the rain values
-h_no_snow if an hourly forecast has been chosen, ignore the snow values
-h_no_ice if an hourly forecast has been chosen, ignore the ice values
-h_no_uv if an hourly forecast has been chosen, ignore the UV values
-h_no_cloud if an hourly forecast has been chosen, ignore the cloudiness values
-h_no_humid if an hourly forecast has been chosen, ignore the humidity values
-h_no_dew if an hourly forecast has been chosen, ignore the dew point values
-h_no_visib if an hourly forecast has been chosen, ignore the visibility values
The time, image/icon, forecast and temperature values have again been kept as a bare minimum.
Don't forget to change the minimum width to 515 in the hourly .conkyrc files, as well as change
${execpi 600 sed -n '1,26p' $HOME/1_accuweather/altogether16_2015(or 2016)}
to
${execpi 600 sed -n '1,28p' $HOME/1_accuweather/altogether16_2015(or 2016)}
in both the 2015 and 2016 files.
Waiting for your feedback.
EDIT: For clarification, DON'T touch any variables in the script, use the switches instead.
Last edited by TeoBigusGeekus (2017-11-11 08:46:20)
Please make Autocad Civil 3D and Archicad work on Linux!
Please make Autocad Civil 3D and Archicad work on Linux!
Please make Autocad Civil 3D and Archicad work on Linux!
Please make Autocad Civil 3D and Archicad work on Linux!
Offline
^^tested the switches:
-h2015 and -h2016 each with
-h_no_snow and -h_no_ice
and the 8hours version
-h_8h
The result is excellent. Thank you!
I'm not back on the computer until Sunday evening to continue testing.
Offline
Thanks for testing the script unklar, take your time.
Please make Autocad Civil 3D and Archicad work on Linux!
Please make Autocad Civil 3D and Archicad work on Linux!
Please make Autocad Civil 3D and Archicad work on Linux!
Please make Autocad Civil 3D and Archicad work on Linux!
Offline
ANNOUNCEMENT
Update for the hourly forecast of the 1_Accuweather script. The hourly forecast now includes visibility values and has become a bit more flexible regarding the final conky output: the users can now choose whether they'd like a 8 hours or a 16 hours forecast. They are also provided with the option to omit most of the output info by using some additional switches I've added to the script (times, images, forecast and temperatures have been kept as a bare minimum). See the 1_README file for more information on the switches and how to use them.
Also, I've added the -o /dev/null switch to all wget calls so that no unnecessary log files are created.
Otherwise, a couple of bug corrections here and there.
The added functionality is totally new and as much as I tried to test and correct everything, there could be more monsters hiding inside.
Any feedback would be appreciated.
Please make Autocad Civil 3D and Archicad work on Linux!
Please make Autocad Civil 3D and Archicad work on Linux!
Please make Autocad Civil 3D and Archicad work on Linux!
Please make Autocad Civil 3D and Archicad work on Linux!
Offline
The usage of -f cancels out the -f2015 and -f2016 parameters.
Accordingly, the usage of -h cancels out the -h2015 and -h2016 parameters.
Would there be any interest in making the script accept all options at once?
ie,
bash ./1_accuweather -f -f2015 -f2016 -h -h2015 -h2016
making the script prepare everything, all images (2015 and 2016) and conkyfont forecast.
Right now, if the -f or -h switches are used, no images are copied and no altogether files with images are created.
Please make Autocad Civil 3D and Archicad work on Linux!
Please make Autocad Civil 3D and Archicad work on Linux!
Please make Autocad Civil 3D and Archicad work on Linux!
Please make Autocad Civil 3D and Archicad work on Linux!
Offline
unklar wrote:I'm not back on the computer until Sunday evening to continue testing. roll
Thanks for testing the script unklar, take your time.
that was a bit gullible.
The General Winter had struck and we had major problems with 200 km of summer tyres. 8o
Would there be any interest in making the script accept all options at once?
That would be very practical.
Because changing the images (e. g. -f2015 to -f2016) always requires two reboots to load.
By the way, Teo, the rest of the test was also successful. Thank you for your work!
Offline
That would be very practical.
Because changing the images (e. g. -f2015 to -f2016) always requires two reboots to load.
At the time being, the script accepts both the f2015 and the f2016 switches.
You just need to run the script once before running conky so that the files/image folders are populated.
With the current version of the script it's impossible to make it take into account all forecast/hourly switches, ie -f, -f2015, -f2016, -h, -h2015, -h2016.
Putting -f cancels the copying of any images in the forecast image folders, the same with -h.
Would anyone be interested in running something like
$HOME/1_accuweather/1_accuweather -f -f2016
so that they use both the conkyweather font conkyrc AND the images' one?
Last edited by TeoBigusGeekus (2017-11-13 11:25:58)
Please make Autocad Civil 3D and Archicad work on Linux!
Please make Autocad Civil 3D and Archicad work on Linux!
Please make Autocad Civil 3D and Archicad work on Linux!
Please make Autocad Civil 3D and Archicad work on Linux!
Offline
Good morning,
does anyone know why the temperature is no longer visible?
see photos
[url=https://i.imgur.com/PZFds6M.png]
[/url]
Offline
It could be a temporary glitch.
Is there a temp value in your curr_cond file? (see the file's 2nd line)
Please make Autocad Civil 3D and Archicad work on Linux!
Please make Autocad Civil 3D and Archicad work on Linux!
Please make Autocad Civil 3D and Archicad work on Linux!
Please make Autocad Civil 3D and Archicad work on Linux!
Offline
yea,see my cur_con
6
8
8
Mostly cloudy
WSW
9 km/h
75%
1002.00 mb
0
75%
3688 m
4
16 km
07:17 AM
04:53 PM
9:36 hr
1-m
01:42 AM
02:53 PM
13:11 hr
33-m
d
07:17
16:53
01:42
14:53
4
Offline
Then it must be a temporary glitch; if you could see the temperature before, then you will see it again after conky updates.
Please make Autocad Civil 3D and Archicad work on Linux!
Please make Autocad Civil 3D and Archicad work on Linux!
Please make Autocad Civil 3D and Archicad work on Linux!
Please make Autocad Civil 3D and Archicad work on Linux!
Offline
thanks @teo
always very kind
Offline