Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Umístění ikon na ploše  (Přečteno 939 krát)

compaq

  • Závislák
  • ***
  • Příspěvků: 2472
  • Díky všem za rady a tipy.
Umístění ikon na ploše
« kdy: 22 Srpna 2020, 16:01:52 »
Mám synchronizovanou plochu mezi dvěma stroji (Praha a chalupa) přes dropbox. Vše funguje jak má, ale chtěl bych synchronizovat i umístění ikon na ploše. V jakém souboru se to skrývá?

Umí někdo synchronizovat umístění ikon na ploše gnome a KDE?

Díky za rady a tipy.
Pokud vám vaše holka či manželka funguje jak má, neměňte jí za mladší, zaděláte si na problém. Stejně to dělejte i s Ubuntu.

juwa2

  • Závislák
  • ***
  • Příspěvků: 4941
Re:Umístění ikon na ploše
« Odpověď #1 kdy: 22 Srpna 2020, 16:35:53 »
Ten soubor si musíš napřed vytvořit (umístění ikon do něj uložit) a teprve pak ho můžeš synchronizovat (a umístění ikon obnovit).
Použij tento script (desktop_icons-layout.py):
Kód: [Vybrat]
#!/usr/bin/env python3
import subprocess
import os
import sys
from datetime import datetime

# --- set your localized desktop name below:
dt_name = "Plocha"
# ---


# used strings & definitions
now = datetime.now
val = " 'metadata::nautilus-icon-position' "
search = "gvfs-info -a"+val
set_val = "gvfs-set-attribute -t string "
home = os.environ["HOME"]
dt_dir = home+"/"+dt_name
datafile = home+"/.plocha_nautilus_LAST.txt"
datafile_old = home+"/.plocha_nautilus_bak_{}.txt".format(now().strftime('%Y-%m-%d-%H:%M:%S'))

arg = sys.argv[1]

get = lambda cmd: subprocess.check_output(["/bin/bash", "-c", cmd]).decode("utf-8")

def snapshot():
    # backup the previous snapshot
    try:
        os.rename(datafile, datafile_old)
    except FileNotFoundError:
        pass
    # list the items on the desktop, look up their positions
    dt_items = os.listdir(dt_dir)
    dt_data = []
    for f in [f for f in dt_items if all([not f.startswith("."), not f.endswith("~")])]:
        f = '"'+f+'"' if f.count(" ") > 0 else f
        file = dt_dir+"/"+f
        cmd = search+file
        try:
            loc = [int(n) for n in get(cmd).split()[-1].split(",")]
            # loc[0] = loc[0] - screen_pos[0]; loc[1] = loc[1] - screen_pos[1]
            loc = (",").join([str(n) for n in loc])
            open(datafile, "a+").write(file+"|||"+loc+"\n")
        except:
            pass
    # notify that a snapshot was taken
    subprocess.Popen(["/bin/bash", "-c", "notify-send 'Nautilus icons snapshot was taken'"])

def restore():
    # wait for 20 seconds for the desktop to be fully loaded and the screen to be found - pouze pokud používáme skript pro obnovu ikon automaticky po každém přihlášení.
    #time.sleep(20)
    # read the snapshot file
    items = [l.strip().split("|||") for l in open(datafile).readlines()]
    for item in items:
        try:
            xy = [int(n) for n in item[1].split(",")]
            move_to = (",").join(str(n) for n in [xy[0], xy[1]])
            command = set_val+item[0]+val+move_to
            subprocess.Popen(["/bin/bash", "-c", command])
        except:
            pass
    # send notification1 for F5 refresh after icons restore - jen v případě nerestartování nautila.
    #subprocess.Popen(["/bin/bash", "-c", "notify-send 'Click on the desktop and press F5'"])
    # restart nautilus
    subprocess.call(["killall", "nautilus"])
    subprocess.Popen(["nautilus", "-n"])
    # send notification2 after nautilus restart
    subprocess.Popen(["/bin/bash", "-c", "sleep 2; notify-send 'Pozice ikon Nautila byly obnoveny' -t 10000"])

if arg == "snapshot":
    snapshot()
elif arg == "restore":
    restore()

Který spusíš s parametrem snapshot nebo restore

Kód: [Vybrat]
python3 "/cesta/k/desktop_icons-layout.py" snapshot
python3 "/cesta/k/desktop_icons-layout.py" restore


Ikony se uloží do souboru ~/.plocha_nautilus_bak_datum.txt  což si můžeš smozřjmě změnit dle libosti. Tento soubor pak synchronizuj.
Celé to může probíhat automaticky, např. po přihlášení.

compaq

  • Závislák
  • ***
  • Příspěvků: 2472
  • Díky všem za rady a tipy.
Re:Umístění ikon na ploše
« Odpověď #2 kdy: 22 Srpna 2020, 18:01:38 »
No tak to je teda věda, ale moc díky, pokusím se o to...

Laický dotaz, kde systém schovává to umístění ikon, které si pamatuje?
Pokud vám vaše holka či manželka funguje jak má, neměňte jí za mladší, zaděláte si na problém. Stejně to dělejte i s Ubuntu.

TIBOR

  • Závislák
  • ***
  • Příspěvků: 6531
  • Som uzivatel linuxovej distribucie, som linuxak?
Re:Umístění ikon na ploše
« Odpověď #3 kdy: 22 Srpna 2020, 18:42:14 »
Pravdepodobne
~/.local/share/gvfs-metadata/home
HP Laptop 17-ca1xxx Ubuntu Mate 24.04 FF 64bit.
Asus X751LB-TY014H Ubuntu Mate 20.04.1 FF 64bit.
Linus, Lajnas, Línus, Luínus, Lajnus a je mi naozaj jedno, ako ľudia vyslovujú moje meno. Ale "Linux" je vždy "Linux". LINUS TORVALDS, tvorca Linuxového jadra.(V dokumente Revolution OS)

 

Provoz zaštiťuje spolek OpenAlt.