cross-posted from: [email protected] | https://lemmy.eco.br/post/1969330

I’ve been using Gnome for about 10 months and it always bothered me that my city (with more than a million inhabitants) was not found in the Weather program.

I looked for solutions several times and never found them, until I found this thread yesterday. That the user Julian made a script that solves this problem. you just have to run and enter the name of your city and then confirm.

script
#!/bin/bash

if [[ ! -z "$(which gnome-weather)" ]]; then
	system=1
fi

if [[ ! -z "$(flatpak list | grep org.gnome.Weather)" ]]; then
	flatpak=1
fi

if [[ ! $system == 1 && ! $flatpak == 1 ]]; then
	echo "GNOME Weather isn't installed"
	exit
fi

if [[ ! -z "$*" ]]; then
	query="$*"
else
	read -p "Type the name of the location you want to add to GNOME Weather: " query
fi

query="$(echo $query | sed 's/ /+/g')"

request=$(curl "https://nominatim.openstreetmap.org/search?q=$query&format=json&limit=1" -s)

if [[ $request == "[]" ]]; then
	echo "No locations found, consider removing some search terms"
	exit
fi

read -p "If this is not the location you wanted, consider adding search terms
Are you sure you want to add $(echo $request | sed 's/.*"display_name":"//' | sed 's/".*//')? [y/n] : " answer

if [[ ! $answer == "y" ]]; then
	echo "Not adding location"
	exit
else
	echo "Adding location"
fi

id=$(echo $request | sed 's/.*"place_id"://' | sed 's/,.*//')

name=$(curl "https://nominatim.openstreetmap.org/details.php?place_id=$id&format=json" -s | sed 's/.*"name": "//' | sed 's/".*//')

lat=$(echo $request | sed 's/.*"lat":"//' | sed 's/".*//')
lat=$(echo "$lat / (180 / 3.141592654)" | bc -l)

lon=$(echo $request | sed 's/.*"lon":"//' | sed 's/".*//')
lon=$(echo "$lon / (180 / 3.141592654)" | bc -l)

if [[ $system == 1 ]]; then
	locations=$(gsettings get org.gnome.Weather locations)
fi

if [[ $flatpak == 1 ]]; then
	locations=$(flatpak run --command=gsettings org.gnome.Weather get org.gnome.Weather locations)
fi

location="<(uint32 2, <('$name', '', false, [($lat, $lon)], @a(dd) [])>)>"

if [[ $system == 1 ]]; then
	if [[ ! $(gsettings get org.gnome.Weather locations) == "@av []" ]]; then
		gsettings set org.gnome.Weather locations "$(echo $locations | sed "s|>]|>, $location]|")"
	else
		gsettings set org.gnome.Weather locations "[$location]"
	fi
fi

if [[ $flatpak == 1 ]]; then
	if [[ ! $(flatpak run --command=gsettings org.gnome.Weather get org.gnome.Weather locations) == "@av []" ]]; then
		flatpak run --command=gsettings org.gnome.Weather set org.gnome.Weather locations "$(echo $locations | sed "s|>]|>, $location]|")"
	else
		flatpak run --command=gsettings org.gnome.Weather set org.gnome.Weather locations "[$location]"
	fi
fi


It occurred to me that some people might not know how to run scripts, so here’s a brief tutorial:

How to run scripts in Linux
  1. Save the script to a text file and save with the .sh extension
  2. Provide execute permission: chmod u+x script.sh
  3. run the script by double clicking or ./script.sh
  • @[email protected]
    link
    fedilink
    11
    edit-2
    1 year ago

    This is amazing! I’m not using Gnome, but moments like this are the reason why I love Linux so much.

    • TurboWafflz
      link
      221 year ago

      As a gnome user and huge Linux enthusiast, this should not have to exist. Gnome weather is just badly designed

      • @[email protected]
        link
        fedilink
        9
        edit-2
        1 year ago

        Yeah, it’s a terrible thing that you have to do this to get your city into the weather app, but I simply love the fact that you can do that, whereas on some proprietary system, you might wait months for the fix.

            • Semperverus
              link
              English
              31 year ago

              KDE is very receptive to community help! I can only think of one specific example in KDE history where a developer dragged their feet in the mud about a change the community wanted/submitted pull requests for, and thats the vertical HTML indicator bar in kmail.

              Gnome on the other hand…

    • AdemirOP
      link
      fedilink
      51 year ago

      For me it does, the creator said he adjusted it, maybe you tried when it was still wrong?

      I have checked my temp. Against the source (norway service) and it was right.

      I am on my phone now but i can print the page later.

  • @[email protected]
    link
    fedilink
    English
    21 year ago

    Afaik the problem is solved within the code. I remember having compiled the app myself. It’s just a matter of time that it’s solved.

    BUT it’s weird that this is so low priority to all gnome devs. It seems like noone cares about the correct weather. The source of weather is also not really perfect.