Desktop Entry

...unity, kde, gnome, xfce, κλπ ...compiz, κλπ

Συντονιστής: adem1

Κανόνες Δ. Συζήτησης
Αν έχετε πρόβλημα με την λειτουργία του unity δοκιμάστε να το επαναφέρετε με την παρακάτω εντολή σε τερματικό.
unity --reset (ισχύει μέχρι και την 12.04)

Desktop Entry

Δημοσίευσηαπό malos » 25 Μαρ 2009, 15:22

Καλημέρα Ubuntάδες και χρόνια πολλά.

Θα ήθελα να κάνω μερικές ερωτήσεις (και απαιτώ απαντήσεις αλλιώς θα χακέψω τους υπολογιστές σας και θα βγάζουν αυτό το splashscreen στην εκκίνηση :mrgreen:

Λοιπόν κάνω πρόλογο.
Δημιούργησα ένα κενό έγγραφο και του έγραψα μέσα το κείμενο
Κώδικας: Επιλογή όλων
[Desktop Entry]
και το έσωσα. Τίποτα άλλο δεν έγραψα.
Αποτέλεσμα ήταν όταν πήγα με δεξί κλικ να δω τις ιδιότητες του αρχείου ότι ως τύπο αρχείου το λέει "ρυθμίσεις Επιφάνειας Εργασίας"

Εικόνα

Αν έχω καταλάβει καλά.... Αυτά είναι εκκινητές ; Έχω δει πολλά τέτοια αρχεία στους φακέλους /usr/share/applications /var/lib/menu-xdg/applications/menu-xdg και αλλού.
Ξέρει κανείς ποιο μέρος του συστήματος κουμαντάρει αυτά τα αρχεία ; Με τι επικοινωνούνε ; (βιβλιοθήκες ; bash ; kernel ; )

Και τώρα η πιο εξειδικευμένη ερώτηση. Ο κώδικας αυτών των αρχείων έχει συχνά λέξεις όπως " Comment, Icon, Exec, Terminal, ... και άλλες φαντάζομαι"
. Υπάρχει εντολή εκεί μέσα ή τρόπος ώστε να εκτελεί αυτό το αρχείο και σεναριάκι του bash ;

Εξηγώ το ερώτημα , που είναι και το κυρίως ζητούμενο αυτού του θέματος !!!!

Που λέτε λοιπόν ρε παιδιά, έχω φτιάξει ένα scriptάκι. Είναι το παρακάτω :

Κώδικας: Επιλογή όλων
#!/bin/bash

IP=$(curl -s http://checkip.dyndns.org/ | sed 's/[^[:digit:]\.]//g')

zenity --width=215 --height=255 --info --text="IP: $IP" &


Το ονόμασα mip, το έβαλα στον φάκελο χρήστη, το έκανα εκτελέσιμο (δίνοντας στην κονσόλα chmod +x mip για όσους δεν ξέρουν ).

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Να φτιάχνετε ότι πιο χαζό scriptάκι σας έρχεται στο μυαλό παιδιά. Είναι ωραίο χόμπυ, μαθαίνεις πράγματα, προσαρμόζεις όπως γουστάρεις το σύστημά σου στο δικό σου στυλ,
και μια μέρα θα κάνεις πιο βαρβάτα προγράμματα. Κατεβάστε αν θέλετε έναν οδηγό για να αρχίσετε αν δεν ξέρετε. Εγώ βρήκα και κατέβασα
αυτό .


--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

'Οπως καλά καθότανε το εικονιδιάκι αυτού του μικρού πλην χαριτώμενου script, το έσυρα με το ποντίκι στο πάνω πίνακα εφαρμογών (panel) . Και τσουπ !!! Φτιάχτηκε εκεί ο εκκινητής του :P
Του έφτιαξα και ένα εικονιδιάκι svg με το inkscape ( γιατί παρατήρησα ότι όλα τα εικονίδια στο φάκελο /usr/share/icons/hicolor/scalable/apps είναι svg. Αυτόν τον φάκελο ανοίγει αν του κάνεις δεξί κλικ και Ιδιότητες -> και κλικ στο εικονίδιο πάνω αριστερά για να το αλλάξεις )

Εικόνα

_____________________________________________________________________________________________________________________________________________________
Για όσους δεν κατάλαβαν, αν κάνεις κλικ στο εικονίδιο αυτό ανοίγει ένα παραθυράκι ( από το zenity ) και σου γράφει την IP που έχεις στο διαδύκτιο.
Απαραίτητα για να δουλέψει πρέπει να εγκατασταθούν τα πακέτα curl και zenity.
_____________________________________________________________________________________________________________________________________________________

Εκεί που γράφει " Σχόλιο " , όπως είδατε στο 2ο screenshot , έγραψα " Αυτή τη στιγμή ". Αποτέσμα αυτού είναι όταν πηγαίνω το ποντίκι πάνω στο εικονίδιο να βγαίνει το γνωστό pop up και να γράφει :
Εικόνα

Και επιτέλους να πω και το ζητούμενο :
Τον εκκινητή τον βρήκα στο /home/malos/.gnome2/panel2.d/default/launchers . Το άνοιξα με gedit και είναι αυτή η αράδα :
Κώδικας: Επιλογή όλων
[Desktop Entry]
Version=1.0
Encoding=UTF-8
Name=Η ip μου
Type=Application
Terminal=false
Exec=/home/pal/mip
Name[el_GR]=Η ip μου
Comment[el_GR]=Αυτή τη στιγμή
Comment=Αυτή τη στιγμή
Icon[el_GR]=/usr/share/icons/hicolor/scalable/apps/ip1.svg
Icon=/usr/share/icons/hicolor/scalable/apps/ip1.svg


Τι να βάλω εδώ μέσα ώστε να μη γράφει " Η IP μου Αυτή τη στιγμή " αλλά να εκτελεί το ίδιο το script και να γράφει δηλαδή την ίδια την IP

Ευχαριστώ και αναμένω απαντήσεις. ( Αλλιώς σας είπα τι θα πάθετε !!!! )
Για κάθε απάντηση θα καταβάλω στο λογαριασμόσας 100 ευρώ ! Αρχίστε :D
Τελευταία επεξεργασία από malos και 25 Μαρ 2009, 18:32, έχει επεξεργασθεί 1 φορά/ες συνολικά
Επεξεργαστής: AMD Ryzen 9 5900x
Μνήμη Gskill 16gb (2X8gb), 3200 mh, CL 14
Μητρική: Asrock X570 phantom gaming X
Τροφοδοτικό: Corsair 850 platinum
Δίσκος: SSD Corsair MP600 (1 TB)
Άβαταρ μέλους
malos
saintTUX
saintTUX
 
Δημοσιεύσεις: 1251
Εγγραφή: 02 Νοέμ 2008, 12:00
Εκτύπωση

Re: Desktop Entry

Δημοσίευσηαπό linuxman » 25 Μαρ 2009, 16:38

Μπράβο , καλός οδηγός .Και το αρχείο στα ελληνικά για BASH scripting μεταφρασμένο .
Και να μην υπάρχει πρόβλημα με το αρχείο το ανέβασα εδώ http://files.ubuntu-gr.org/forum/linuxm ... -greek.zip βάλε το λίνκ στο κείμενο.
Οδηγίες προς Νεοεισερχόμενους
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Linux Mint 17.1 Rebecca 3.13.0-37-generic 64bit (el_GR.UTF-8, X-Cinnamon cinnamon)
3 Intel Core i5-2310M CPU @ 2.10GHz ‖ RAM 3866 MiB ‖ Dell Inc. 0D7C51 - Dell Inc. Dell System Vostro 3750
4 Intel 2nd Generation Core Processor Family Integrated Graphics [8086:0116] {i915}
5 wlan0: Intel Centrino Wireless-N 1030 [Rainbow Peak] [8086:008a] (rev 34) ⋮ eth0: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 06)
http://www.greeklug.gr
Άβαταρ μέλους
linuxman
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 10378
Εγγραφή: 10 Μάιος 2008, 20:41
Τοποθεσία: Thessaloniki / Macedonia / Greece
Εκτύπωση

Re: Desktop Entry

Δημοσίευσηαπό ftso » 25 Μαρ 2009, 17:21

Αυτό που θέλεις να κάνεις δεν γίνετε με τον τρόπο που προσπαθείς...

Υπάρχουνε προγράμματα που κάνουν αυτό που θες.
Αν πάλι εσύ θες να φτιάξεις δικό σου μπορώ να σε βοηθήσω να το κάνεις με python + qt που γνωρίζω λίγο :D
Άβαταρ μέλους
ftso
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 6409
Εγγραφή: 12 Μάιος 2008, 13:40
Τοποθεσία: Αθήνα
IRC: ftso
Εκτύπωση

Re: Desktop Entry

Δημοσίευσηαπό ftso » 25 Μαρ 2009, 18:41

Επειδή δεν άντεξα...βουαλά:

Κώδικας: Επιλογή όλων
#!/usr/bin/env python


import subprocess,sys,os,urllib2

try:
from PyQt4 import QtCore, QtGui
except ImportError :
print "You need to have PyQT4 installed..."
exit()




#---Tray Icon Message Dialog---#
def MsgInfo( reason ):
if reason == IpIcon.Trigger:
pub_ip = urllib2.urlopen("http://whatismyip.com/automation/n09230945.asp").read()
IpIcon.showMessage( "IP", "My public IP is :" + pub_ip, IpIcon.Information, 15000)



def main():
#-----Main App-----#
global Ip
global IpIcon
Ip = QtGui.QApplication(sys.argv)
IpIcon = QtGui.QSystemTrayIcon()
Ip.setQuitOnLastWindowClosed(False)

#---Tray Menu Icons---#
QuitIcon = QtGui.QIcon("ip.png")
TrayIcon = QtGui.QIcon("ip.png")

#-----Tray Menu-----#
global ActionsMenu
ActionsMenu = QtGui.QMenu()
QuitAction = ActionsMenu.addAction(QuitIcon,"Quit")

#-----Tray Menu Actions-----#
Ip.connect(QuitAction,QtCore.SIGNAL("triggered()"),Ip.exit)
IpIcon.connect( IpIcon, QtCore.SIGNAL( "activated(QSystemTrayIcon::ActivationReason)" ), MsgInfo )


#-----Methods-----#
IpIcon.setIcon(TrayIcon)
IpIcon.setContextMenu(ActionsMenu)
IpIcon.show()
Ip.exec_()
main()


Κάνεις εγκατάσταση την python-qt4 , σώζεις και κάνεις εκτελέσιμο τον κώδικα, βάζεις ένα αρχείο με όνομα
Κώδικας: Επιλογή όλων
ip.png
στον ίδιο κατάλογο και το εκτελείς...

Τρέχει στο system tray και εμφανίζει τη ip σε ένα ballon μόλις κάνεις κλικ.
Με δεξί κλικ εμφανίζεται το quit...

Δεν το έκανα να εμφανίζει με mouse over το ballon γιατί δεν το θεωρώ σωστό...
Επίσης δεν έβαλα tooltip γιατί μετά θα πρέπει να βάλω timer για να εκτελείτε ο κώδικας που βρίσκει την ip ανά τακτά διαστήματα.
Τώρα οι πληροφορίες παίρνονται μόνο όταν κάνεις κλικ...

Με λίγο ψάξιμο θα βρεις και πως θα το βελτιώσεις ;)
Άβαταρ μέλους
ftso
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 6409
Εγγραφή: 12 Μάιος 2008, 13:40
Τοποθεσία: Αθήνα
IRC: ftso
Εκτύπωση

Re: Desktop Entry

Δημοσίευσηαπό malos » 25 Μαρ 2009, 18:54

Να σαι καλά φίλε μου ! Το ξεκινάω. Θα προσπαθήσω να το κάνω και με mouse over που μου αρέσει. Μου έδωσες το έναυσμα να το ψάξω. Πάω για pdf λοιπόν για python και qt.
(Ανεβάζω το ποσό σε 500 ευρώ και μόλις γλιτώσατε τους υπολογιστές σας εσύ και ο linuxman).

:D :D :D :D :D :D :D :D :D

Ευχαριστώ (ξεκινάω να το κάνω) ;)
Επεξεργαστής: AMD Ryzen 9 5900x
Μνήμη Gskill 16gb (2X8gb), 3200 mh, CL 14
Μητρική: Asrock X570 phantom gaming X
Τροφοδοτικό: Corsair 850 platinum
Δίσκος: SSD Corsair MP600 (1 TB)
Άβαταρ μέλους
malos
saintTUX
saintTUX
 
Δημοσιεύσεις: 1251
Εγγραφή: 02 Νοέμ 2008, 12:00
Εκτύπωση

Re: Desktop Entry

Δημοσίευσηαπό malos » 29 Μαρ 2009, 18:13

Καλά μου φαίνεται άπαιχτη η γλωσίτσα !!! :D
Αφού επιτέλους κατάλαβα ότι η σύνταξη αντί για αγκύλες κλπ πρέπει να είναι το ένα tab δεξιότερα, βρήκα επιτέλους και το ελληνικό encoding

Εικόνα

Ψάχνω τώρα να καταλάβω τη σύνταξη της συνάρτησης που έφτιαξες, για να δω πως θα κάνω το onMouseOver.
Μη μου πεις ! Θα το καταφέρω.
Τίποτα στα ελληνικά γ*****, από οδηγούς ! Τέσπα !

Υ.Γ. Για να μου ικανοποιηθεί ένα ακόμα αίτημα από τα προηγούμενα, ξέρει κανείς γιατί ένα έγγραφο που σώζω με το gedit και γράφω μέσα :
Κώδικας: Επιλογή όλων
<html>
μπλα μπλα
</html>

παίρνει το κατάλληλο εικονιδιάκι και στις ιδιότητες το ξέρει ο ναυτίλος ότι είναι αρχείο html.

Με τον ίδιο τρόπο θα μου πει στις ιδιότητες : αν έχω γράψει μέσα #! /bin/bash ή [Desktop Entry] όπως έλεγα στην αρχή.
Αυτά όλα αυτά ποιος τα κάνει στο σύστημα ; Ο ίδιος ο ναυτίλος ; Ή κάποιος άλλος ; Και πως το ξέρει; Διαβάζει το αρχείο ; Με τι δικαιώματα ;

Ευχαριστώ.
Επεξεργαστής: AMD Ryzen 9 5900x
Μνήμη Gskill 16gb (2X8gb), 3200 mh, CL 14
Μητρική: Asrock X570 phantom gaming X
Τροφοδοτικό: Corsair 850 platinum
Δίσκος: SSD Corsair MP600 (1 TB)
Άβαταρ μέλους
malos
saintTUX
saintTUX
 
Δημοσιεύσεις: 1251
Εγγραφή: 02 Νοέμ 2008, 12:00
Εκτύπωση

Re: Desktop Entry

Δημοσίευσηαπό ftso » 30 Μαρ 2009, 13:51

malos έγραψε:Αφού επιτέλους κατάλαβα ότι η σύνταξη αντί για αγκύλες κλπ πρέπει να είναι το ένα tab δεξιότερα

Εμένα μου πήρε 3 ώρες να το καταλάβω την πρώτη φορά :mrgreen:

malos έγραψε:Ψάχνω τώρα να καταλάβω τη σύνταξη της συνάρτησης που έφτιαξες, για να δω πως θα κάνω το onMouseOver.
Μη μου πεις ! Θα το καταφέρω.
Τίποτα στα ελληνικά γ*****, από οδηγούς ! Τέσπα !

Με mouseover θα έχεις πρόβλημα καθώς κάθε φορά που θα περνάει έστω και κατα λάθος το ποντίκι θα τρέχει ο κώδικας...
Απο την άλλη μπορείς να βάλεις ένα timer στο πρόγραμμα και αυτό να εκτελεί απο μόνο την διαδικασία κάνε 5 λεπτά για παράδειγμα.
Έτσι το πιο απλό που σκέφτομαι είναι με mouseover να εμφανίζεται ένα "ToolTip" με το τελευταίο αποτέλεσμα και όχι ένα "ballon" που είναι τώρα.
(ψάξε για tooltip πάνω σε tray icon)

Δυστυχώς και σε αγγλικά οι οδηγοί για pyqt είναι λίγοι και βασισμένοι στην Qt C++.
Για python υπάρχει πολύ υλικό πάντως στα αγγλικά...

Καλή συνέχεια... :)
Άβαταρ μέλους
ftso
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 6409
Εγγραφή: 12 Μάιος 2008, 13:40
Τοποθεσία: Αθήνα
IRC: ftso
Εκτύπωση


Επιστροφή στο Περιβάλλον Εργασίας / Εμφάνιση / Εφέ / Customization

cron