Masaüstü özelleştirme bilgileri gösteren betikler

Başlatan if, 09 Mayıs 2014 - 22:11:29

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

if

Screenfetch ve Archey gibi masaüstüne dair yaptığınız özelleştirmeleri uçbirim üzerinde gösteren iki adet betik yazdım. Betik için ek olarak wmctrl paketini kurmanız yeterli. Betikler başka bir çalışmadan esinlenildi. Esinlendiğim çalışmadan kedilere ait ASCII art ve renkler için kullanılan değişkenler kaldı. Betikleri Ubuntu kullanıcıları için uyarladım.

Kedi.sh

#!/bin/bash
# f'ler yazı karakterinin rekleri
# b'ler arka plan renkleri

f0=$'\e[30m'
f1=$'\e[31m'
f2=$'\e[32m'
f3=$'\e[33m'
f4=$'\e[34m'
f5=$'\e[35m'
f6=$'\e[36m'
f7=$'\e[37m'
b0=$'\e[40m'
b1=$'\e[41m'
b2=$'\e[42m'
b3=$'\e[43m'
b4=$'\e[44m'
b5=$'\e[45m'
b6=$'\e[46m'
b7=$'\e[47m'

kalin=$'\e[1m'
ince=$'\e[0m'
ters=$'\e[7m'

# Dağıtımın adı
dagitim=$(lsb_release -d | awk -F' ' '{ print $2, $3}')
# Çekirdek adı, sürümü ve bit
cekirdek=$(uname -r)
# bit
bit=$(uname -m)
# Çalışma süresi
saniye=60
saniyekare=3600
ham_calismasuresi=$(</proc/uptime)
calismasuresi=${ham_calismasuresi/.*}
toplam_dakika=$(( calismasuresi / saniye ))
kac_dakika=$(( toplam_dakika % saniye ))
kac_saat=$(( calismasuresi / saniyekare ))
if [[ "$kac_saat" -ne "0" ]]; then
if [[ "$kac_dakika" -ne "0" ]]; then
calisma_suresi="${kac_saat} saat ${kac_dakika} dakika"
else
calisma_suresi="${kac_saat} saattir"
fi
else
calisma_suresi="${kac_dakika} dakikadır"
fi
# Kaç paket yüklü
paket_sayisi=$(dpkg --get-selections | wc -l)
# Kabuk adı
kabuk_adi=$(echo "$SHELL" | awk -F'/' '{print $NF}')
# Pencere yöneticisi
pencere_yoneticisi=$(wmctrl -m | grep -i name | awk '{print $2}')
# Pencere yöneticisi teması
pytema=$(gsettings get org.gnome.desktop.wm.preferences theme | cut -d\' -f2)
# Masaüstü yöneticisi
masaustu_yoneticisi=$XDG_CURRENT_DESKTOP
# GTK teması
gtktema=$(gsettings get org.gnome.desktop.interface gtk-theme | cut -d\' -f2)
# GTK simge seti
gtksimge=$(gsettings get org.gnome.desktop.interface icon-theme | cut -d\' -f2)
# Arayüzde kullanılan font
gtkfont=$(gsettings get org.gnome.desktop.interface font-name | cut -d\' -f2)
# Saat
saat=$( date "+%H.%M")
# Tarih
tarih=$( date "+%a %d %b" )
# root bölümü
mapfile -t yerler < <(mount | grep on | awk -F ' ' '{ print $3 }')
for (( k=0; k<=${#yerler[@]}; k++ )); do
yer=${yerler[$k]}
if [[ "${yer}" == "/" ]]; then
root_sira=$(( k + 1 ))
root=$(mount | awk 'NR=='${root_sira}' { print $1 }')
break
fi
done
root_boyut=$(df -h | grep "${root}" | awk '{ print $2 }')
root_kullanim=$(df -h | grep "${root}" | awk '{ print $3 }')
ev_boyut=$(df -h "${HOME}" | awk 'FNR==2 { print $2 }')
ev_kullanim=$(df -h "${HOME}" | awk 'FNR==2 { print $3 }')
# RAM
bol=1024
hamram=$(awk '/MemTotal/ { print $2 }' /proc/meminfo)
toplamram=$(( hamram / bol ))
bosram=$(awk '/MemFree/ { print $2 }' /proc/meminfo)
bostaram=$(( bosram / bol ))
_bufferram=$(awk '/Buffers/ { print $2 }' /proc/meminfo)
bufferram=$(( _bufferram / bol ))
_cacheram=$(awk '/^Cached/ { print $2 }' /proc/meminfo)
deporam=$(( _cacheram / bol ))
kullanilan_ram=$(( (( toplamram - bostaram )) - bufferram - deporam ))
cat << EOF
$ince
$f7                    .c0N.   .'c.                  $f6$USER $f7@ $f1$HOSTNAME
$f7         'Okdl:'  ;OMMMMKOKNMMW:;o0l  .'.         $f4$saat $f7- $tarih
$f7         ;MMMMMMWWMMMMMMMMMMMMMMMMMXKWMMK         $f4$calisma_suresi
$f7         'MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMK
$f7          NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMO         Pencere Y » $f4$pencere_yoneticisi
$f7          dMMMMMMMMMMMMMMMMMMMMMMMMMMMMM:         PY Tema   » $f4$pytema
$f7          'MMMMMMMMMMMMMMMMMMMMMMMMMMMMM.         Masaüstü  » $f4$masaustu_yoneticisi
$f7          'MMMMMMMMMMMMMMMMMMMMMMMMMMMMM;         GTK Tema  » $f4$gtktema
$f7          lMMMMM  MMMMMMMMMM  MMMMMMMMMM,         Simge     » $f4$gtksimge
$f7          KMMMMM  MMMMMMMMMM  MMMMMMMMMM.         GTK Font  » $f4$gtkfont
$f7         ;WMMMMMkNMMMMMMMMMMONMMMMMMMMMW:
$f7       oNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMO        Paket     » $f2$paket_sayisi$f7 adet
$f7      .,cxKWMMMMMMMMMMMMMMMMMMMMMMMMMMMXdxo       Root      » $f2$root_kullanim $f7/ $f5$root_boyut
$f7         ;kWMMMMMMMMMMMMMMMMMMMMMMMMMMMM:         Ev        » $f2$ev_kullanim $f7/ $f5$ev_boyut
$f7        .::,  .;ok0NMMMMWNK0kdoc;'  'cxK0         RAM       » $f2$kullanilan_ram  $f7/ $f5$toplamram
$f1                   .:cc:;;.                      $f4 Kabuk $f7    » $f3$kabuk_adi
$f1                   .o0MMMK'                      $f4 Çekirdek $f7 » $f3$cekirdek
$f1                     xMMM:                       $f6 @ » $dagitim $bit
$f1                     KMMMl
$f1                    .MMMMo
$f1                    ,MMMMx
$f1                    oMMMMx
$f1                    OMMMMO                        $f7"Benim Mecnun kim ol hayranı Leyli"
$f1                    .OMMMd                        $f7"Esiri zülfümüz keşane bülbül"
$f1                      :Nl                                                          $f7 the$f1 cat
EOF


Miyav.sh

#!/bin/bash
# f'ler yazı karakterinin rekleri
# b'ler arka plan renkleri

f0=$'\e[30m'
f1=$'\e[31m'
f2=$'\e[32m'
f3=$'\e[33m'
f4=$'\e[34m'
f5=$'\e[35m'
f6=$'\e[36m'
f7=$'\e[37m'
b0=$'\e[40m'
b1=$'\e[41m'
b2=$'\e[42m'
b3=$'\e[43m'
b4=$'\e[44m'
b5=$'\e[45m'
b6=$'\e[46m'
b7=$'\e[47m'

kalin=$'\e[1m'
ince=$'\e[0m'
ters=$'\e[7m'

# Dağıtımın adı
dagitim=$(lsb_release -d | awk -F' ' '{ print $2, $3}')

# Çekirdek adı, sürümü ve bit
cekirdek=$(uname -r)

# bit
bit=$(uname -m)

# Çalışma süresi
saniye=60
saniyekare=3600
ham_calismasuresi=$(</proc/uptime)
calismasuresi=${ham_calismasuresi/.*}
toplam_dakika=$(( calismasuresi / saniye ))
kac_dakika=$(( toplam_dakika % saniye ))
kac_saat=$(( calismasuresi / saniyekare ))

if [[ "$kac_saat" -ne "0" ]]; then
if [[ "$kac_dakika" -ne "0" ]]; then
calisma_suresi="${kac_saat} saat ${kac_dakika} dakika"
else
calisma_suresi="${kac_saat} saattir"
fi
else
calisma_suresi="${kac_dakika} dakikadır"
fi

# Kaç paket yüklü
paket_sayisi=$(dpkg --get-selections | wc -l)

# Kabuk adı
kabuk_adi=$(echo "$SHELL" | awk -F'/' '{print $NF}')

# Pencere yöneticisi
pencere_yoneticisi=$(wmctrl -m | grep -i name | awk '{print $2}')

# Pencere yöneticisi teması
pytema=$(gsettings get org.gnome.desktop.wm.preferences theme | cut -d\' -f2)

# Masaüstü yöneticisi
masaustu_yoneticisi=$XDG_CURRENT_DESKTOP

# GTK teması
gtktema=$(gsettings get org.gnome.desktop.interface gtk-theme | cut -d\' -f2)

# GTK simge seti
gtksimge=$(gsettings get org.gnome.desktop.interface icon-theme | cut -d\' -f2)

# Arayüzde kullanılan font
gtkfont=$(gsettings get org.gnome.desktop.interface font-name | cut -d\' -f2)

# Saat
saat=$( date "+%H.%M")

# Tarih
tarih=$( date "+%a %d %b" )

# root bölümü
mapfile -t yerler < <(mount | grep on | awk -F ' ' '{ print $3 }')
for (( k=0; k<=${#yerler[@]}; k++ )); do
yer=${yerler[$k]}
if [[ "${yer}" == "/" ]]; then
root_sira=$(( k + 1 ))
root=$(mount | awk 'NR=='${root_sira}' { print $1 }')
break
fi
done

root_boyut=$(df -h | grep "${root}" | awk '{ print $2 }')
root_kullanim=$(df -h | grep "${root}" | awk '{ print $3 }')
ev_boyut=$(df -h "${HOME}" | awk 'FNR==2 { print $2 }')
ev_kullanim=$(df -h "${HOME}" | awk 'FNR==2 { print $3 }')

# RAM
bol=1024
hamram=$(awk '/MemTotal/ { print $2 }' /proc/meminfo)
toplamram=$(( hamram / bol ))
bosram=$(awk '/MemFree/ { print $2 }' /proc/meminfo)
bostaram=$(( bosram / bol ))
_bufferram=$(awk '/Buffers/ { print $2 }' /proc/meminfo)
bufferram=$(( _bufferram / bol ))
_cacheram=$(awk '/^Cached/ { print $2 }' /proc/meminfo)
deporam=$(( _cacheram / bol ))
kullanilan_ram=$(( (( toplamram - bostaram )) - bufferram - deporam ))

cat << EOF
$f7$kalin
$f7                            .      'o;       .
$f7                          ;Nd   'dNMMo   'oKMd                            .MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM.
$f7                         oMMX.oXMMMMMOl0WMMMMd  ..,:cl.                  MM                                           MM
$f7                        dMMMMMMMMMMMMMMMMMMMMNKWMMMMMMd                 MM                                             MM
$f7           .,:ldkO0KXXXXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMX                 MM    MM     MM  MM MM  MM    MM    MM    MM   MM
$f7     .;oONMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM.                MM    MMm   mMM  ..  MmmM   mM  MM  MM    MM   MM
$f7     kMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM'                MM    MM m m MM  MM   MM   mM    Mm MM    MM   MM
$f7     .MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM;                MM    MM  m  MM  MM   MM   mMmmmmMm MM    MM   MM
$f7      kMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM:                MM    MM  m  MM  MM   MM   mM    Mm  MM  MM    MM
$f7       NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0                MM    MM  m  MM  MM   MM   mM    Mm   MMM      MM
$f7       'WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMx               MM                                             MM
$f7        :MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM:              cK;                                           MM
$f7         oMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW.              .OW.   .:MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
$f7          dMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMd              x0..ckOo,
$f7           oMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMk KW            'XNkko'      $f6$USER $f7@ $f1$HOSTNAME
$f7            oMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMk kM;          .Ol'          $f4$saat - $f7$tarih
$f7             :WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXMMNx.                     $f4$calisma_suresi
$f7              :MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWMMMMMMMMMMMMMM0.
$f7              .MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM  MMMMMMMM' OMMMOl        $f7 Pencere Y » $f4$pencere_yoneticisi
$f7               NMMMMMMMMMMMMMMMMMMMMMMMMMMMMM  MMMMMMMMKxMM0X:         $f7 PY Tema   » $f4$pytema
$f7               .NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW;            $f7 Masaüstü  » $f4$masaustu_yoneticisi
$f7                KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMO.             $f7 GTK Tema  » $f4$gtktema
$f7               kMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0,               $f7 Simge     » $f4$gtksimge
$f7              cMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNk;.                 $f7 GTK Font  » $f4$gtkfont
$f7              c;'.dMMMMMMMMMMMMMMMMMMMMMMMM$f1 KKK0kxd             $f7
$f7                  OMMMMMMMMMMMMMMMMXdlc;'.  $f1 :ddxx,             $f7        Paket     » $f2$paket_sayisi$f7 adet
$f7                  WMM"'   NMMMMMMk'            $f1 lxx.            $f7        Root      » $f2$root_kullanim $f7/ $f5$root_boyut
$f7                  W       ,MMMM0.              $f1 .xxo            $f7        Ev        » $f2$ev_kullanim $f7/ $f5$ev_boyut
$f7                           :MN;                $f1  ;xx;           $f7        RAM       » $f2$kullanilan_ram  $f7/ $f5$toplamram
$f7                            '.                 $f1   dxx.          $f7       $f4 Kabuk $f7    » $f3$kabuk_adi
$f7                                               $f1   'xxx.         $f7       $f4 Çekirdek $f7 » $f3$cekirdek
$f7                                               $f1    dxxxc.       $f7       $f6 @ » $dagitim $bit
$f7          "..dır benim adım                    $f1    .xxxxxo'     $f7
$f7           gün geçtikçe artar odum.."          $f1     ,xxxxxxxl.  $f7
$f7                       the$f1 cat$f7                 $f1      cxxxxxxxd  $f7
$f7                                               $f1       :cloodxx' $f7
$f7
EOF


[eklenti yönetici tarafından silindi]

heartsmagic

Çok başarılı çalışmalar olmuş, eline sağlık :)
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

if


tlg

Gerçekten çok iyi olmuş :) Demirbaş yaparım bundan sonra bunu :D

if


empax

Miyav güzel vesikalık poz vermiş, eline sağlık @if. :)
بسم الله الرحمن الرحيم
|ACEMİLER İÇİN İLK DURAK|Çözüldü|Kod etiketi|

if


if

İki betiği de güncelledim. Özensiz yazmıştım önceden, şimdi daha iyiler.

if

Betikleri tekrar güncelledim. Önemli değişiklik olarak kök dizinin bulunmasını gerçekleştiren bir döngünün yazılmış olması diyebilirim.

oasln

Bir iki öneride bulunmak isterim. Ben miyavı çalıştırınca:

grep: /etc/lsb-release: No such file or directory
/tmp/miya.sh: line 58: wmctrl: command not found


hatalarını aldım. /etc/lsb-release'i okumak yerine `lsb_release -i` diyerek dağıtım adını öğrenebilirsin. wmctrl yerine de wmname makinemde mevcut. Bu değişikliklerden sonra:



Ek olarak home klasörünü de `df -h /home` ile alabilirsin. Bende birden fazla içerisinde home geçen dizin bağlı olduğundan bir karışıklık olmuş.
--

if

@oasln, bu betikleri sadece Ubuntu üzerinde denedim. Başka bir dağıtım üzerinde denemeye niyetim yok. /etc/lsb-release dosyasını base-files paketi sağlamakta ve her Ubuntu sürümünde bu paket kurulu olarak gelmekte. Başka dağıtımlarla kullanmak için lsb_release komutu kullanılabilir.

wmctrl yerine wmname kullanmanın hiç bir artısını göremiyorum. wmname ikiliğini suckless-tools adında bir paket sağlıyor ve bu paketle başka ikilikler vs. de kurulacak. Halbuki wmctrl ikiliği aynı adlı bir paketle gelmekte ve sadece ikiliği ve ikiliğe ait lisans dosyası gibi her pakette bulunan dosyaları barındırmakta. İletinin başına wmctrl paketinin kurulması gerektiğini yazayım en azından.

Bir kullanıcının bir tane ev dizini olur benim bildiğim. /media/kullanıcı_adı/disk_adı/home şeklinde bir yol bulunuyorsa betik yanlış sonuç verebilir dediğin gibi. Bu durumda direk ev dizinini argüman olarak kullanmak daha iyi.

Geri bildirim yaptığın için teşekkür ederim. Betikleri güncelleyeyim.

hitokiri

@if home klasörünün nerede olduğu kabukta tanımlı olmalı. Uçbirimde $ yazıp iki kez taba bastıktan sonra tanımlanmış kısayolları görebilirsin.
Yani df -h $HOME daha sağlıklı sonuç verebilir özel durumlarda. Eline sağlık bu arada :)

if

@hitokiri, evet $HOME değişkeninin mevcut olduğunu biliyorum fakat betiği yazarken hiç aklıma gelmemişti kullanmak. $HOME değişkenini kullanmak en güzel yöntem sanırım.

$ karakteri ardından tab tuşuna iki kere basınca çevre değişkenlerini gösterebildiğimizi bilmiyordum. Halbu ki herhangi bir harf yazıp tab tuşuna iki kere basınca o harfle ilgili ikilik, dosya ve dizinler listeleniyor. Bunu da öğrenmiş oldum, sağol.

Alıntı Yap
Eline sağlık bu arada

Ne demek:)

ata1

eline emeğine sağlık güzel çalışma . ;D


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 18 Eylül 2015 - 23:40:47

ben .issue içine koyuyorum ama henüz düzenleyemedim .bilgileri gösteren hale henüz getiremedim işlerim yoğun