New version, new man. Weather explanations, disks, bugs!!

Bugs:
1. For sensors, in some cases, gpu failed to show correctly. This
should be corrected.

Fixes:
1. Made help/man explanations of weather changes more clear.
Particularly in regards to no automated query info. But also for supported
location syntaxes.
2. Some corner cases of null weather data return null and tripped
a null data error. This is corrected.
3. Added city duplicate filter to weather output, this hopefully will
in some cases avoid printing city name twice, depends on weather source.
4. Removed --weather-source option 0, that no longer works so all code was
removed.
5. More deb822 fixes, loosened up even more syntax. That's a poorly designed
config syntax, hard to work with.

Enhancements:
1. Lots of new disk vendors. So many!! Thanks linux-lite hardware database!
switched to a new method of getting disk name/vendor data, now it's a lot easier
to check for new ones.
2. Added fancybar to desktop info.
This commit is contained in:
Harald Hope 2019-03-29 14:11:22 -07:00
parent 1f037020e3
commit 2650a51d3b
3 changed files with 145 additions and 68 deletions

143
inxi
View file

@ -31,8 +31,8 @@ use POSIX qw(uname strftime ttyname);
## INXI INFO ##
my $self_name='inxi';
my $self_version='3.0.32';
my $self_date='2019-02-07';
my $self_version='3.0.33';
my $self_date='2019-03-29';
my $self_patch='00';
## END INXI INFO ##
@ -2512,7 +2512,8 @@ sub check_items {
}
else {
@data = qw(blockdev dig dmidecode fdisk file hddtemp ifconfig ip ipmitool
ipmi-sensors lsblk lsusb modinfo runlevel sensors strings sudo tree upower uptime);
ipmi-sensors lsblk lsusb modinfo runlevel sensors smartctl strings sudo
tree upower uptime);
}
$b_program = 1;
$item = 'Program';
@ -2858,8 +2859,8 @@ sub item_data {
'rpm' => 'lm-sensors',
}),
'smartctl' => ({
'info' => '-Dx show hdd temp',
'info-bsd' => '-Dx show hdd temp',
'info' => '-Dxx rotation (alt), type, smart',
'info-bsd' => '-Dx rotation (alt), type, smart',
'apt' => '',
'pacman' => '',
'rpm' => '',
@ -4074,7 +4075,7 @@ sub get_options{
my ($opt,$arg) = @_;
# let api processor handle checks if valid, this
# future proofs this
if ($arg =~ /^[0-9]$/){
if ($arg =~ /^[1-9]$/){
$weather_source = $arg;
}
else {
@ -4550,14 +4551,15 @@ sub show_options {
if ( $b_weather ){
@rows = (
['1', '-w', '--weather', "Local weather data/time. To check an alternate
location, see -W."],
location, see -W. NO AUTOMATED QUERIES ALLOWED!"],
['1', '-W', '--weather-location', "[location] Supported options for
[location]: postal code[,country]; city, state/country; latitude, longitude.
Only use if you want the weather somewhere other than the machine running
$self_name. Use only ASCII characters, replace spaces in city/state/country
names with '+'. Example:^$self_name^-W^new+york,ny"],
['1', '', '--weather-source', "[0-9] Change weather data source. 0 uses
a legacy source internally. 1-3 generally active, 4-9 check. See man."],
[location]: postal code[,country/country code]; city, state (USA)/country
(country/two character country code); latitude, longitude. Only use if you
want the weather somewhere other than the machine running $self_name. Use
only ASCII characters, replace spaces in city/state/country names with '+'.
Example:^$self_name^-W^[new+york,ny^london,gb^madrid,es]"],
['1', '', '--weather-source', "[1-9] Change weather data source. 1-4 generally
active, 5-9 check. See man."],
['1', '', '--weather-unit', "Set weather units to metric (m), imperial (i),
metric/imperial (mi), or imperial/metric (im)."],
);
@ -5454,7 +5456,7 @@ sub row_defaults {
'unknown-desktop-version' => "ERR-101",
'unknown-dev' => "ERR-102",
'unknown-shell' => "ERR-100",
'weather-error' => "Error in weather data: $id",
'weather-error' => "Error: $id",
'weather-null' => "No $id found. Internet connection working?",
'xdpyinfo-missing' => '<xdpyinfo missing>',
);
@ -8735,7 +8737,7 @@ sub device_vendor {
['^STEC\b','^STEC\b','STEC',''], # ssd drive, must come before seagate ST test
# real, SSEAGATE Backup+; XP1600HE30002 | 024 HN (spinpoint)
['(^ST[^T]|[S]?SEAGATE|^X[AFP]|^5AS|^BUP|Expansion Desk|FreeAgent|GoFlex|Backup(\+|\s?Plus)\s?Hub)','[S]?SEAGATE','Seagate',''],
['^(WD|Western Digital|My (Book|Passport)|\d*LPCX|Elements|M000|EARX|EFRX|\d*EAVS|0JD|JPVX|[0-9]+(BEV|(00)?AAK|AAV|AZL))','(^WDC|Western\s?Digital)','Western Digital',''],
['^(WD|WL[0]9]|Western Digital|My (Book|Passport)|\d*LPCX|Elements|M000|EARX|EFRX|\d*EAVS|0JD|JPVX|[0-9]+(BEV|(00)?AAK|AAV|AZL))','(^WDC|Western\s?Digital)','Western Digital',''],
## Then better known ones ##
['^(A-DATA|ADATA|AXN|CH11)','^(A-DATA|ADATA)','A-Data',''],
['^ADTRON','^(ADTRON)','Adtron',''],
@ -8747,7 +8749,6 @@ sub device_vendor {
# note: 2012: wdc bought hgst
['^(HGST|Touro|5450)','^HGST','HGST (Hitachi)',''], # HGST HUA
['^(Hitachi|HD[ST]|DK[0-9]|IC|HT|HU)','^Hitachi','Hitachi',''],
['^Hoodisk','^Hoodisk','Hoodisk',''],
# vb: VB0250EAVER but clashes with vbox; HP_SSD_S700_120G ;GB0500EAFYL GB starter too generic?
['^(HP\b|MB0|G[BJ]0|v[0-9]{3}[ow])','^HP','HP',''],
['^(LSD|Lexar|JumpDrive|JD\s?Firefly)','^Lexar','Lexar',''], # mmc-LEXAR_0xb016546c; JD Firefly;
@ -8764,15 +8765,20 @@ sub device_vendor {
# unknown: AL25744_12345678; ADP may be usb 2.5" adapter; udisk unknown: Z1E6FTKJ 00AAKS
# SSD2SC240G726A10 MRS020A128GTS25C EHSAJM0016GB
['^5ACE','^5ACE','5ACE',''], # could be seagate: ST316021 5ACE
['^Aireye','^Aireye','Aireye',''],
['^Android','^Android','Android',''],
['^Apotop','^Apotop','Apotop',''],
# must come before AP|Apacer
['^APPLE','^APPLE','Apple',''],
['^(AP|Apacer)','^Apacer','Apacer',''],
['^(ASM|2115)','^ASM','ASMedia',''],#asm1153e
['^Bell\b','^Bell','Packard Bell',''],
['^BHT','^BHT','BHT',''],
['^BIOSTAR','^BIOSTAR','Biostar',''],
['^BIWIN','^BIWIN','BIWIN',''],
['^BUFFALO','^BUFFALO','Buffalo',''],
['^CHN\b','','Zheino',''],
['^Clover','^Clover','Clover',''],
['^Colorful\b','^Colorful','Colorful',''],
['^CSD','^CSD','CSD',''],
['^(Dane-?Elec|Z Mate)','^Dane-?Elec','DaneElec',''],
@ -8780,6 +8786,8 @@ sub device_vendor {
['^DeLOCK','^Delock(\s?products)?','Delock',''],
['^DGM','^DGM\b','DGM',''],
['^DIGITAL\s?FILM','DIGITAL\s?FILM','Digital Film',''],
['^Dogfish','^Dogfish','Dogfish',''],
['^DragonDiamond','^DragonDiamond','DragonDiamond',''],
['^DREVO\b','^DREVO','Drevo',''],
['^(Eaget|V8$)','^Eaget','Eaget',''],
['^EDGE','^EDGE','EDGE',''],
@ -8791,6 +8799,7 @@ sub device_vendor {
['^FORESEE','^FORESEE','Foresee',''],
['^GALAX\b','^GALAX','GALAX',''],
['^Galaxy\b','^Galaxy','Galaxy',''],
['^Geil','^Geil','Geil',''],
['^Generic','^Generic','Generic',''],
['^Gigabyte','^Gigabyte','Gigabyte',''], # SSD
['^Gigastone','^Gigastone','Gigastone',''],
@ -8798,6 +8807,8 @@ sub device_vendor {
['^(GOODRAM|IR SSD)','^GOODRAM','GOODRAM',''],
# supertalent also has FM: |FM
['^(G[\.]?SKILL)','^G[\.]?SKILL','G.SKILL',''],
['^Hectron','^Hectron','Hectron',''],
['^Hoodisk','^Hoodisk','Hoodisk',''],
['^HUAWEI','^HUAWEI','Huawei',''],
['^(IBM|DT)','^IBM','IBM',''],
['^IEI Tech','^IEI Tech(\.|nology)?( Corp(\.|oration)?)?','IEI Technology',''],
@ -8822,9 +8833,10 @@ sub device_vendor {
['^Lenovo','^Lenovo','Lenovo',''],
['^RPFT','','Lenovo O.E.M.',''],
['^(LITE[\-\s]?ON[\s\-]?IT)','^LITE[\-]?ON[\s\-]?IT','LITE-ON IT',''], # LITEONIT_LSS-24L6G
['^(LITE[\-\s]?ON|PH6)','^LITE[\-]?ON','LITE-ON',''], # PH6-CE240-L
['^(LITE[\-\s]?ON|PH[1-9])','^LITE[\-]?ON','LITE-ON',''], # PH6-CE240-L
['^M-Systems','^M-Systems','M-Systems',''],
['^(MAXTOR)','^MAXTOR','Maxtor',''], # note M3 is usually maxtor, but can be samsung
['^(MAXTOR|Atlas)','^MAXTOR','Maxtor',''], # note M3 is usually maxtor, but can be samsung
['^Memorex','^Memorex','Memorex',''],
# note: C300/400 can be either micron or crucial, but C400 is M4 from crucial
['(^MT|^M5|^Micron|00-MT|C[34]00)','^Micron','Micron',''],# C400-MTFDDAK128MAM
['^MARVELL','^MARVELL','Marvell',''],
@ -8832,10 +8844,13 @@ sub device_vendor {
['^Medion','^Medion','Medion',''],
['^(MEDIAMAX|WL[0-9]{2})','^MEDIAMAX','MediaMax',''],
['^Motorola','^Motorola','Motorola',''],
['^MTRON','^MTRON','MTRON',''],
['^Netac','^Netac','Netac',''],
['^OOS[1-9]','','Utania',''],
['^PALIT','PALIT','Palit',''], # ssd
['^PERC\b','','Dell PowerEdge RAID Card',''], # ssd
['^(PS[8F]|Patriot)','^Patriot([-\s]?Memory)?','Patriot',''],
['^Pioneer','Pioneer','Pioneer',''],
['^PIX[\s]?JR','^PIX[\s]?JR','Disney',''],
['^(PLEXTOR|PX-)','^PLEXTOR','Plextor',''],
['^(PQI|Intelligent\s?Stick)','^PQI','PQI',''],
@ -8846,13 +8861,18 @@ sub device_vendor {
['^RENICE','^RENICE','Renice',''],
['^(Ricoh|R5)','^Ricoh','Ricoh',''],
['^RIM[\s]','^RIM','RIM',''],
['^Runcore','^Runcore','Runcore',''],
['^Sage','^Sage(\s?Micro)?','Sage Micro',''],
['^SigmaTel','^SigmaTel','SigmaTel',''],
['^(Silicon\s?Power|SPPC|Silicon)','Silicon\s?Power','Silicon Power',''],
# DIAMOND_040_GB
['^(SILICON\s?MOTION|SM[0-9])','^SILICON\s?MOTION','Silicon Motion',''],
['^(Silicon\s?Power|SP[CP]C|Silicon|Diamond|Haspeed)','Silicon\s?Power','Silicon Power',''],
['Smartbuy','\s?Smartbuy','Smartbuy',''], # SSD Smartbuy 60GB
# HFS128G39TND-N210A; seen nvme with name in middle
['(SK\s?HYNIX|^HFS)','\s?SK\s?HYNIX','SK Hynix',''],
['hynix','hynix','Hynix',''],# nvme middle of string, must be after sk hynix
['^SH','','Smart Modular Tech.',''],
['^Skill','^Skill','Skill',''],
['^(SMART( Storage Systems)?|TX)','^(SMART( Storage Systems)?)','Smart Storage Systems',''],
['^(S[FR]-|Sony)','^Sony','Sony',''],
['^STE[CK]','^STE[CK]','sTec',''], # wd bought this one
@ -8867,6 +8887,8 @@ sub device_vendor {
['^(TDK|TF[1-9][0-9])','^TDK','TDK',''],
['^TEAC','^TEAC','TEAC',''],
['^TEAM','^TEAM( Group)?','Team',''],
['^Teclast','^Teclast','Teclast',''],
['^Teleplan','^Teleplan','Teleplan',''],
['^Tigo','^Tigo','Tigo',''],
['^TopSunligt','^TopSunligt','TopSunligt',''], # is this a typo? hard to know
['^TopSunlight','^TopSunlight','TopSunlight',''],
@ -8881,6 +8903,8 @@ sub device_vendor {
['^VISIONTEK','^VISIONTEK','VisionTek',''],
['^VMware','^VMware','VMware',''],
['^(Vseky|Vaseky)','^Vaseky','Vaseky',''], # ata-Vseky_V880_350G_
['^(YUCUN|R880)','^YUCUN','YUCUN',''],
['^ZTC','^ZTC','ZTC',''],
['^(ASMT|2115)','^ASMT','ASMT (case)',''],
);
foreach my $ref (@vendors){
@ -13329,7 +13353,12 @@ sub get_repos_linux {
@apt_working = ();
$b_apt_enabled = 1;
foreach my $row (@data2){
next if $row =~ /^\s+/; # deb822 supports line folding which starts with space
# NOTE: the syntax of deb822 must be considered a bug, it's sloppy beyond belief.
# deb822 supports line folding which starts with space
# BUT: you can start a URIs: block of urls with a space, sigh.
next if $row =~ /^\s+/ && $row !~ /^\s+[^#]+:\//;
# strip out line space starters now that it's safe
$row =~ s/^\s+//;
#print "$row\n";
if ($row eq '~'){
if (@apt_working && $b_apt_enabled){
@ -14366,7 +14395,8 @@ sub lm_sensors_data {
#my $file = "$ENV{'HOME'}/bin/scripts/inxi/data/sensors/sensors-asus-chassis-1.txt";
#my $file = "$ENV{'HOME'}/bin/scripts/inxi/data/sensors/sensors-devnull-1.txt";
#my $file = "$ENV{'HOME'}/bin/scripts/inxi/data/sensors/sensors-jammin1.txt";
#@sensors_data = main::reader($file);
# my $file = "$ENV{'HOME'}/bin/scripts/inxi/data/sensors/sensors-maximus-arch-1.txt";
# @sensors_data = main::reader($file);
# print join ("\n", @sensors_data), "\n";
@sensors_data = map {$_ =~ s/\s*:\s*\+?/:/;$_} @sensors_data;
foreach (@sensors_data){
@ -14562,7 +14592,6 @@ sub sysctl_data {
}
last if /^(hw.cpuspeed|hw.vendor|hw.physmem)/;
}
%sensors = data_processor(%sensors) if %sensors;
main::log_data('dump','%sensors',\%sensors) if $b_log;
# print Data::Dumper::Dumper \%sensors;
@ -14930,12 +14959,14 @@ sub gpu_data {
$holder = '';
}
if ($b_found){
if (/^temp.*:([0-9]+).*(C|F)/){
$gpudata[$j]{'type'} = $holder;
if (/^[^:]*:([0-9]+).*\b(C|F)\s/i){
$gpudata[$j]{'temp'} = $1;
$gpudata[$j]{'type'} = $holder;
$gpudata[$j]{'unit'} = $2;
# print "$_\n";
}
if (/^fan.*:([0-9]+).*(RPM)?/){
# speeds can be in percents or rpms, so need the 'fan' in regex
if (/^.*fan.*:([0-9]+).*(RPM)?/i){
$gpudata[$j]{'fan-speed'} = $1;
# NOTE: we test for nvidia %, everything else stays with nothing
$gpudata[$j]{'speed-unit'} = '';
@ -15460,7 +15491,16 @@ sub create_output {
if ($weather{'sunset'}){
$rows[0]{main::key($num++,'Sunset')} = $weather{'sunset'};
}
if ($weather{'moonphase'}){
$value = $weather{'moonphase'} . '%';
$value .= ($weather{'moonphase-graphic'}) ? ' ' . $weather{'moonphase-graphic'} :'';
$rows[0]{main::key($num++,'Moonphase')} = $value;
}
if ($weather{'forecast'}){
$rows[0]{main::key($num++,'Forecast')} = $weather{'forecast'};
}
}
if ($weather{'api-source'}){
$rows[0]{main::key($num++,'Source')} = $weather{'api-source'};
}
@ -15631,6 +15671,9 @@ sub get_weather {
elsif ( $working[0] eq 'error' ){
$weather{'error'} = $working[1];
}
elsif ( $working[0] eq 'forecast' ){
$weather{'forecast'} = $working[1];
}
elsif ( $working[0] eq 'heat_index_string' ){
$weather{'heat-index'} = $working[1];
$working[1] =~ /^([0-9\.]+)\sF\s\(([0-9\.]+)\sC\)/;
@ -15653,6 +15696,12 @@ sub get_weather {
elsif ( $working[0] eq 'local_epoch' ){
$weather{'local-epoch'} = $working[1];
}
elsif ( $working[0] eq 'moonphase' ){
$weather{'moonphase'} = $working[1];
}
elsif ( $working[0] eq 'moonphase_graphic' ){
$weather{'moonphase-graphic'} = $working[1];
}
elsif ( $working[0] eq 'observation_time_rfc822' ){
$weather{'observation-time-rfc822'} = $working[1];
}
@ -15792,25 +15841,25 @@ sub get_weather {
# remote timezone for this local block only
local $ENV{'TZ'} = $tz if $tz;
$date_time = POSIX::strftime "%c", localtime();
$date_time = test_local_date($date_time,'','');
$date_time = test_locale_date($date_time,'','');
$weather{'date-time'} = $date_time;
# only wu has rfc822 value, and we want the original observation time then
if ($weather{'observation-epoch'} && $tz){
$date_time = POSIX::strftime "%Y-%m-%d %T ($tz %z)", localtime($weather{'observation-epoch'});
$date_time = test_local_date($date_time,$show{'weather-location'},$weather{'observation-epoch'});
$date_time = test_locale_date($date_time,$show{'weather-location'},$weather{'observation-epoch'});
$weather{'observation-time-local'} = $date_time;
}
}
else {
$date_time = POSIX::strftime "%c", localtime();
$date_time = test_local_date($date_time,'','');
$date_time = test_locale_date($date_time,'','');
$tz = ( $location[2] ) ? " ($location[2])" : '';
$weather{'date-time'} = $date_time . $tz;
}
# we get the wrong time using epoch for remote -W location
if ( !$show{'weather-location'} && $weather{'observation-epoch'}){
$date_time = POSIX::strftime "%c", localtime($weather{'observation-epoch'});
$date_time = test_local_date($date_time,$show{'weather-location'},$weather{'observation-epoch'});
$date_time = test_locale_date($date_time,$show{'weather-location'},$weather{'observation-epoch'});
$weather{'observation-time-local'} = $date_time;
}
return %weather;
@ -15819,14 +15868,9 @@ sub get_weather {
sub download_weather {
eval $start if $b_log;
my ($now,$file_cached,@location) = @_;
my (@weather,@weather_temp,$temp,$ua,$url);
if ($weather_source == 0){
$url = "http://api.wunderground.com/auto/wui/geo/WXCurrentObXML/index.xml?query=$location[0]";
}
else {
$url = "https://smxi.org/opt/xr2.php?loc=$location[0]&src=$weather_source";
}
$ua = 'weather' if $url =~ /smxi/;
my (@weather,$temp,$ua,$url);
$url = "https://smxi.org/opt/xr2.php?loc=$location[0]&src=$weather_source";
$ua = 'weather';
# {
# #my $file2 = "$ENV{'HOME'}/bin/scripts/inxi/data/weather/weather-1.xml";
# # my $file2 = "$ENV{'HOME'}/bin/scripts/inxi/data/weather/feed-oslo-1.xml";
@ -15836,24 +15880,7 @@ sub download_weather {
# $temp = <$fh>;
# }
$temp = main::download_file('stdout',$url,'',$ua);
$temp =~ s/\r|\n\n/\n/g if $weather_source == 0;
@weather_temp = split /\n/, $temp;
if ($weather_source == 0){
foreach (@weather_temp){
chomp $_;
$_ =~ s/<\/[^>]+>//;
$_ =~ s/.*icon.*|\r//g;
$_ =~ s/\s\s/ /g;
$_ =~ s/^\s+|\s+$//g;
$_ =~ s/>/^^/;
$_ =~ s/^<|NA$//g;
$_ =~ s/^(current|credit|terms|image|title|link|.*_url).*//;
push @weather, $_ if $_ !~ /^\s*$/;
}
}
else {
@weather = @weather_temp;
}
@weather = split(/\n/, $temp) if $temp;
unshift (@weather,("timestamp^^$now"));
main::writer($file_cached,\@weather);
#print "$file_cached: download/cleaned\n";
@ -15862,7 +15889,7 @@ sub download_weather {
}
# resolve wide character issue, if detected, switch to iso
# date format, we won't try to be too clever here.
sub test_local_date {
sub test_locale_date {
my ($date_time,$location,$epoch) = @_;
# $date_time .= 'дек';
#print "1: $date_time\n";
@ -15973,7 +16000,7 @@ sub complete_location {
if ($location && $location =~ /[\+\-0-9]/ && $city){
$location = $country . ', ' . $location if $country && $location !~ m|$country|i;
$location = $state . ', ' . $location if $state && $location !~ m|$state|i;
$location = $city . ', ' . $location;
$location = $city . ', ' . $location if $city && $location !~ m|$city|i;
}
eval $end if $b_log;
return $location;
@ -16566,7 +16593,7 @@ sub set_info_data {
my (@data,@info,$item);
my $pattern = 'alltray|awn|bar|bmpanel|bmpanel2|budgie-panel|cairo-dock|';
$pattern .= 'dde-dock|dmenu|dockbarx|docker|docky|dzen|dzen2|';
$pattern .= 'fbpanel|fspanel|glx-dock|gnome-panel|hpanel|i3bar|icewmtray|';
$pattern .= 'fancybar|fbpanel|fspanel|glx-dock|gnome-panel|hpanel|i3bar|icewmtray|';
$pattern .= 'kdocker|kicker|';
$pattern .= 'latte|latte-dock|lemonbar|ltpanel|lxpanel|lxqt-panel|';
$pattern .= 'matchbox-panel|mate-panel|ourico|';

35
inxi.1
View file

@ -1,4 +1,4 @@
.TH INXI 1 "2019\-02\-07" inxi "inxi manual"
.TH INXI 1 "2019\-03\-29" inxi "inxi manual"
.SH NAME
inxi \- Command line system information script for console and IRC
.SH SYNOPSIS
@ -462,29 +462,44 @@ Adds weather line. Note, this depends on an unreliable API so it may not always
be working in the future. To get weather for an alternate location, use
\fB\-W\fR. See also \fB\-x\fR, \fB\-xx\fR, \fB\-xxx\fR options.
Please note that your distribution's maintainer may chose to disable this feature.
DO NOT USE THIS FEATURE FOR AUTOMATED WEATHER UPDATES! You will be blocked
from any further access. This feature is not meant for widget type
weather monitoring, or Conky type use. It is meant to get weather when you need to
see it, for example, on a remote server.
.TP
.B \-W\fR, \fB\-\-weather\-location <location_string>\fR
Get weather/time for an alternate location. Accepts postal/zip code[, country],
city,state pair, or latitude,longitude. Note: city/country/state names must not
contain spaces. Replace spaces with '\fB+\fR' sign. Don't place spaces around
any commas. Postal code is not reliable except for North America and maybe the UK.
Try postal codes with and without country code added.
Try postal codes with and without country code added. Note that City,State applies
only to USA, otherwise it's City,Country. If country name (english) does not work,
try 2 character country code (e.g. Spain: es; Great Britain: gb).
See \fIhttps://en.wikipedia.org/wiki/ISO_3166-1_alpha-2\fR for current 2 letter
country codes.
Use only ASCII letters in city/state/country names.
Examples: \fB\-W 95623,us\fR OR \fB\-W Boston,MA\fR OR
\fB\-W 45.5234,\-122.6762\fR OR \fB\-W new+york,ny\fR OR \fB\-W bodo,norway\fR.
DO NOT USE THIS FEATURE FOR AUTOMATED WEATHER UPDATES! Use of automated queries,
will result in your access being blocked.
.TP
.B \-\-weather\-source\fR, \fB\-\-ws <unit>\fR
[\fB0\-9\fR] Switches weather data source. 0 uses a legacy source which may vanish
any day. \fB1\-9\fR use different remote sources. \fB2\fR may not support city /
country names with spaces (even if you use the \fB+\fR sign instead of space).
\fB3\fR offers pretty good data, but may not have all small city names for
\fB\-W\fR.
[\fB0\-9\fR] Switches weather data source. Possible values are \fB1\-9\fR. \fB1\-4\fR
will generally be active, and \fB5\-9\fR may or may not be active, so check.
\fB1\fR may not support city / country names with spaces (even if you use the \fB+\fR
sign instead of space). \fB2\fR offers pretty good data, but may not have all small
city names for \fB\-W\fR.
More data sources will be added as time permits, so try each one and
see which you prefer. If you get unsupported source message, it means that number
has not been implemented.
Please note that the data sources are not static per value, and can change any time,
or be removed, so always test to verify which source is being used for each value
if that is important to you. Data sources may be added or removed on occasions, so
try each one and see which you prefer. If you get unsupported source message, it means
that number has not been implemented.
.TP
.B \-\-weather\-unit <unit>\fR
[\fBm\fR|\fBi\fR|\fBmi\fR|\fBim\fR] Sets weather units to metric (\fBm\fR), imperial (\fBi\fR),

View file

@ -1,3 +1,38 @@
=====================================================================================
Version: 3.0.33
Patch: 00
Date: 2019-03-29
-----------------------------------
Changes:
-----------------------------------
New version, new man. Weather explanations, disks, bugs!!
Bugs:
1. For sensors, in some cases, gpu failed to show correctly. This
should be corrected.
Fixes:
1. Made help/man explanations of weather changes more clear.
Particularly in regards to no automated query info. But also for supported
location syntaxes.
2. Some corner cases of null weather data return null and tripped
a null data error. This is corrected.
3. Added city duplicate filter to weather output, this hopefully will
in some cases avoid printing city name twice, depends on weather source.
4. Removed --weather-source option 0, that no longer works so all code was
removed.
5. More deb822 fixes, loosened up even more syntax. That's a poorly designed
config syntax, hard to work with.
Enhancements:
1. Lots of new disk vendors. So many!! Thanks linux-lite hardware database!
switched to a new method of getting disk name/vendor data, now it's a lot easier
to check for new ones.
2. Added fancybar to desktop info.
-----------------------------------
-- Harald Hope - Fri, 29 Mar 2019 14:03:51 -0700
=====================================================================================
Version: 3.0.32
Patch: 00