Pardus gnome masaüstü kısayol oluşturma

Merhabalar pardus 23 gnome kurulumu yaptım masaüstüne bazı programların kısa yolunu eklemek istiyorum bunu /usr/share/applications altındaki programları masaüstüne kopyalayıp kopyaladığımıza sağ tıklayıp programa izin ver diyerek yapabiliyoruz bunu komut satırından nasıl yapabilirim veya her kopyaladığımız çalışır hale nasıl gelir bunun için yardımcı olabilirmisiniz.

Pardus 23 gnome ile kısayol oluşturma daha kolay hale geldi. Daha önce burada açıklamıştım. Uygulamaların kısa yolunun çalışıp çalışmayacağını bu yöntemle oluşturup deneyebilirsin.

Selamün aleyküm hocam,

Anladığım kadarıyla uçbirimden masaüstüne program kopyalama işleminin nasıl yapıldığını soruyorsunuz. Uçbirim üzerinden

cp usr/share/applications/programadı Masaüstü/

Komutu ile kopyalama yapabilirsiniz.

Not:
Kopyalama komutu (cp) çalıştırma mantığı şu şekildedir:

cp [kaynak dosya] [hedef dizin]

Merhabalar Muhammed emin bey ,

benim öğrenmek istediğim farklı herhalde üstte anlatamadım ama aşağıda anlattım sanırım yardımcı olabilirseniz sevinirim

kolay gelsin.

Merhabalar aydın bey

cp usr/share/applications/programadı /etc/skel/Masaüstü/ bu şekilde kopyalama yapıyorum sonra aşağıdaki gibi yapmak yerine bunu komut satırı ile toplu şekilde izin veremiyormuyuz ben bunu öğrenmek istiyorum. her kullanıcıya bunu tek tek yapmak yerine tek bir komut ile toplu yapmak daha kolay bunun yolunu öğrenmek istiyorum eğer mümkünse

Sonra masaüstünde oluşan kısayol üzerine sağ tıklıyoruz ve açılan menüden başlatmaya izin veri tıkladıktan sonra aynı menü üzerinden özelliklerden program gibi çalıştırı aktif hale getiriyoruz ve işlem bitiyor.

Hızlı erişilmek istenen uygulamalarınızı görev çubuğuna sabitlemek en kolayı olacaktır.

Eğer illa masaüstünden tıklamayla açılsın isterseniz:

.desktop dosyasını masaüstüne kopyalayalım:

cd ~/Masaüstü

cp /usr/share/applications/gimp.desktop gimp.desktop

Çalıştırılabilir izni verelim:

chmod +x gimp.desktop

Masaüstünde tıklanarak çalıştırmak için “güvenli” olarak ayarlayalım:

gio set gimp.desktop metadata::trusted true

Merhabalar emin bey ben aşağıdaki gibi yaptım ancak
gio: Öznitelik metadata::trusted ataması desteklenmiyor böyle bir hata veriyor komut eksik olabilirmi ?

#!/bin/bash

cp /usr/share/applications/google-chrome.desktop /home//Masaüstü
cp /usr/share/applications/firefox-esr.desktop /home/
/Masaüstü
cd /home//Masaüstü
chmod +x google-chrome.desktop firefox-esr.desktop
cd /home/
/Masaüstü
gio set google-chrome.desktop metadata::trusted true
gio set firefox-esr.desktop metadata::trusted true

bu attıklarınız tam yazdığınız komutlarsa olmaması çok normal.

/home//Masaüstü böyle bir konum yok, ortada kullanıcı adı olmalı
/home/ef/Masaüstü gibi.

Eğer /home dizinindeki tüm kullanıcılara birden kopyalamayı yapmak istiyorsanız:

for user_dir in /home/*; do
    if [ -d "$user_dir" ]; then
        # Burada her kullanıcı dizini için yapmak istediğiniz işlemi yerine getirin
        
        # Örneğin .desktop dosyalarını kopyalayalım:
        cp /usr/share/applications/firefox-esr.desktop $user_dir/Desktop

        # Çalıştırılabilir yapalım
        chmod +x $user_dir/Desktop/firefox-esr.desktop

        # Masaüstünden çalıştırılabilmesi için onay verelim:
        gio set $user_dir/Desktop/firefox-esr.desktop metadata::trusted true
    fi
done

Hatta tek tek her .desktop dosyası için satırları kopyalamamak için şuradaki betikte en üstteki diziye isim eklemeniz yeterli:

# Kopyalamak istediğiniz .desktop dosyalarını buraya yazın
desktop_file_list=("firefox-esr.desktop" "gimp.desktop")


copy_desktop_file() {
	desktop_file=$1
	user_dir=$2

	# Örneğin .desktop dosyalarını kopyalayalım:
    cp "/usr/share/applications/$desktop_file" "$user_dir/Desktop"

    # Çalıştırılabilir yapalım
    chmod +x "$user_dir/Desktop/$desktop_file"

    # Masaüstünden çalıştırılabilmesi için onay verelim:
    gio set "$user_dir/Desktop/$desktop_file" metadata::trusted true
}

for user_dir in /home/*; do
    if [ -d "$user_dir" ]; then
        # Burada her kullanıcı dizini için yapmak istediğiniz işlemi yerine getirin

        for i in "${desktop_file_list[@]}"
        do
        	copy_desktop_file $i $user_dir
        done
    fi
done

Bu kodları çalıştırmak için istediğiniz bir yere dosya.sh adında bir dosya oluşturun ve içine bu metinlerden birini kopyalayın. Ardından direkt bash dosya.sh ile çalıştırabilirsiniz.

Not: Siz de konulara kod yapıştırırken kodunuzu satır içi ise tek yamuk çentik ` içine, çoklu satır ise üç yamuk çentik içine ``` alıp yapıştırabilirsiniz.

Merhabalar cevabınız için çok teşekkür ederim komutta verdiğini yaptığımda aşağıdaki hata veriyor

gio: Öznitelik metadata::trusted ataması desteklenmiyor

komutunuzde bir değişiklik yapmadım sadece gimp.desktop yerine google-chrome.desktop ekleme yaptım.
gio için herhangi bir paket kurmak gerekiyormu ?

GNOME mu kullanıyorsunuz XFCE mi?

Şöyle yapalım, siz bu kodları /opt/copy_to_desktop.sh konumuna kaydedin

çalıştırılabilir yapın: chmod +x /opt/copy_to_desktop.sh

/opt/copy_to_desktop.sh :

#!/bin/bash

desktop_file_list=(
    "firefox-esr.desktop"
    "gimp.desktop"
    # Kopyalamak istediğiniz .desktop dosyalarını buraya yazın
)

copy_desktop_file() {
    desktop_file=$1
    user_desktop_path=$(xdg-user-dir DESKTOP)

    # Örneğin .desktop dosyalarını kopyalayalım:
    cp "/usr/share/applications/$desktop_file" "$user_desktop_path"

    # Çalıştırılabilir yapalım
    chmod +x "$user_desktop_path/$desktop_file"

    # Masaüstünden çalıştırılabilmesi için onay verelim:
    export $(dbus-launch)
    gio set "$user_desktop_path/$desktop_file" metadata::trusted true

    echo "[$USER]: $1 -> $user_desktop_path/$desktop_file (kopyalandı)";
}

        
for i in "${desktop_file_list[@]}"
do
    copy_desktop_file $i
done

Şimdi bu scripti her kullanıcıya geçiş yaptırarak çağıralım, aşağıdaki kodu terminale kopyalayıp yapıştırın ve ENTER’a basın:

for user_dir in /home/*; do
    if [ -d "$user_dir" ]; then
        user_basename=$(basename $user_dir)

        sudo -u $user_basename /opt/copy_to_desktop.sh
    fi
done

Merhabalar aşağıdaki komut hata vermiyor ancak programa başlatmaya izin ver olarak ayarlanmıyor bu yüzdende firefox veya chrome tıkladığımızda çalışmıyor

Emin hocam hem xfce hem grome olacak

# Kopyalamak istediğiniz .desktop dosyalarını buraya yazın
desktop_file_list=("firefox-esr.desktop" "google-chrome.desktop")


copy_desktop_file() {
	desktop_file=$1
	user_dir=$2

	# Örneğin .desktop dosyalarını kopyalayalım:
    cp "/usr/share/applications/$desktop_file" "$user_dir/Masaüstü"

    # Çalıştırılabilir yapalım
    chmod +x "$user_dir/Masaüstü/$desktop_file"

    # Masaüstünden çalıştırılabilmesi için onay verelim:
    export $(dbus-launch)
    gio set "$user_dir/Masaüstü/$desktop_file" metadata::trusted true
}

for user_dir in /home/*; do
    if [ -d "$user_dir" ]; then
        # Burada her kullanıcı dizini için yapmak istediğiniz işlemi yerine getirin

        for i in "${desktop_file_list[@]}"
        do
        	copy_desktop_file $i $user_dir
        done
    fi
done

en son attığımı çalıştırın:

Merhabalar emin hocam ben bunu merkezi yönetim ile tüm makinalara göndereceğim o yüzden ısrar ediyorum.

tamam da siz en son attığımı niye denemiyorsunuz ki :smiley: ben bizzat kendi bilgisayarımda iki tane kullanıcı açıp denedim, dediğim şekilde yaparsanız gayet çalışıyor, eski attığım betikle karıştırmayın diye tekrar attığım yorumun linkini paylaşıyorum:

/opt/copy_to_desktop.sh dosyasının içeriğini dediğim gibi yapın, sonra for ile başlayan kodu uçbiriminize kopyalayıp yapıştırın ve ENTER’a basın, tek tek bütün kullanıcılar için belirttiğiniz .desktop dosyalarını ekleyip izin verecek.

Merhabalar hocam sizin verdiğiniz yaptım oluyor benim işimi görüyor ancak benim en son gönderdiğim olsa benim için daha güzel eğer olabiliyorsa yardımcı olabilirmisiniz.

Dosyaları kopyalayan kod copy_to_desktop.shdiye ayrı bir dosyada olması lazım ki sudo -u KULLANICI copy_to_desktop.sh şeklinde istenilen KULLANICI adıyla o scripti çağırabilelim.

Maalesef çağırılan tek bir script ile birden fazla kullanıcıya geçiş yapıp yapıp yeni komutlar çalıştıramıyoruz. Bu yüzden dosya kopyalama ile kopyalama kodlarını tüm kullanıcılar için çağıran kodlar ayrı ayrı olmalı.

Ha tabi o for döngüsünü de yine bir .sh dosyası yapabilirsiniz elbette, fakat 2 .sh dosyanız olur en az, çünkü sudo -u komutu en sonda çalıştırılacak dosyayı istiyor parametre olarak.

Arkadaşlar hepinize kolay gelsin. Amacım konuyu dağıtmak değil ama merak ettim; bu nasıl bir masaüstü ortamı ki, masaüstüne kısayol atamak sorun oluyor?

GNOME ortamı varsayılan olarak masaüstünde dosyaları 3.28 ile kaldırdı.

Chromebook’larda kullanılan Chrome OS, ve macOS’e pek benzeyen Elementary OS gibi sistemler de masaüstünde varsayılan olarak dosya göstermiyor.

Eğer sık kullandığınız bir uygulama için kısayol eklemek istiyorsanız bunu görev çubuğuna sabitleyerek yapabilirsiniz.

Şu yanlışa çok düşüyorsunuz, Pardus’u alıştığınız Windows’un aynısı olmaya zorluyorsunuz, halbuki yapılması gereken bir işin Pardus’ta nasıl yapıldığını öğrenmek.

Mesela macOS’ten Windows’a geçseydiniz bu sefer de “bu ne ya next next demeler, setup dosyası indirmeler, ne saçma bir uygulama kurulum şekli” gibi Windows’tan şikayet ederdiniz. Yani mesele her sistemin kendi içindeki tutarlı davranışına alışmaktan ibaret.

Şahsen yıllardır GNOME’u masaüstü dosyaları olmadan kullanıyorum, hiçbir sorun yaşamadım. Masaüstünde dosya tutmuyorum, dosyaları gerekli olan klasörlerinde saklıyorum. Örneğin bir dokümansa Documents, bir müzikse Music, bir resimse Pictures, bir videoysa Videos klasöründe tutuyorum. Bu zamanla çöplüğe dönüşen masaüstü konseptinden sizi çok düzenli bir kullanıma geçirerek kurtarıyor.

Özetle: Konfor alanınızdan en ufak bir farklı işleyiş görünce “bu ne ya böyle sistem mi olur” diyip atmak zihin tembelleştirmekten başka bir işe yaramaz. Ha elbette GNOME’un tüm kararları en doğru kullanıcı dostu kararlar olmayabilir, windows ve macOS’in de bir sürü şikayet edilen tercihleri var, fakat kendi içerisindeki tutarlı sisteme insanlar alışıp o şekilde işlerini görüyor. Nasıl macOS hiçbir zaman Windows’un aynısı olmayacaksa Pardus da hiçbir zaman olmayacak.

Mesele konfor alanı ya da windows alışkanlığı değil hocam. “İstediğim şeyi istediğim gibi yapabiliyor olmak” asıl mesele. Gnome’un bu özelliği kaldırdığını bilmiyordum.

Ben Pardus XFCE kullanıyorum. Masaüstüm dağınık sayılır. Bu şekilde daha rahat çalışıyorum. Ona bakılırsa windows’un aynısı değilse bile bu yönüyle benzeri…

EDİT: Aşağıdaki resim benim masaüstümden anlık görüntü.

Elektronikle uğraşıyorum. Tasarladığım akü şarj devresini bitirdim, son kontrolleri yapıyorum. Çizim esnasında bazı materyallerin elimin altında olması şart. Bu nedenle çok önemli dosyaların klasörlenmiş olarak masaüstünde tutulması gerekiyor ki hemen erişebileyim. Aynı şekilde her an video editleyebilir, ses ve video dönüştürebilir ya da başka şeyler yapabilirim. İşimi hızlandırabilmek için ekranımın sağ kısmında önemli kısayollarımı yerleştirmişim. Gnome 'da olsaydım bunlar soldaki panele sığmazdı. Sığsa da verimli çalışamazdım. Görev çubuğuna dikkat edin. Aynı şekilde… Acil erişmem gereken herşey çabuk ulaşabileceğim şekilde sıralanmış görüyorsunuz. Gibi gibi…

Yani anlayacağınız, masaüstü tercihiniz sizin biraz da kim olduğunuza ve neler yaptığınıza da bağlı. Windowstan aşina olduğumuz klasik masaüstü ortamı, benim gibi ya da benzer çalışanlar için verimlidir. Ama bir başkası için verimli olmayabilir. Gnome’cuların masaüstüne kısayol olayını iptal etmeleri bu yönden iyi olmamış vesselam.

Merhabalar hocam güzel diyorsunuzda insanları bir anda böyle zorlamak ters tepiyor bunu ben daha önce çalıştığım kurumda yaşadım şimdi yaşamamak için insanları sen böyle yapacaksın böyle bu demektense kullandığı şekli fazla dağıtmadan onlara pardusu sevdirmek .