Καταχώρηση νέων τύπων αρχείων στο σύστημα

...το μέρος για να ξεκινήσετε!

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

Κανόνες Δ. Συζήτησης
Παρακαλώ να επιλέξετε, με προσοχή, την άδεια που θέλετε να έχουν οι οδηγοί που συγγράφετε.
Πληροφορίες για τις άδειες μπορείτε να βρείτε εδώ.
Άμα επιθυμείτε κάποια άλλη άδεια επικοινωνήστε με κάποιο Διαχειριστή είτε Συντονιστή.

Σημαντικό είναι να χρησιμοποιήσετε την υπηρεσία http://imagebin.ubuntu-gr.org για τις εικόνες.

Καταχώρηση νέων τύπων αρχείων στο σύστημα

Δημοσίευσηαπό xXx » 26 Νοέμ 2014, 22:04

Πως καταχωρώ νέους τύπους (επεκτάσεις) αρχείων στο σύστημα.
Πολλές φορές μία επέκταση αρχείων δεν είναι καταχωρημένη στο σύστημα μας. Για παράδειγμα η επέκταση *.vvv που ανήκει στο πρόγραμμα Virtual Volumes View
δεν είναι αναγνωρίσιμη από το σύστημα μου. Εγώ λοιπόν θέλω να είναι αναγνωρίσημη, και ακόμη καλύτερα να έχω και εικονίδιο συσχετισμένο με αυτή την επέκταση.
Για να το "παρατραβήξω το σχοινί", θα κάνω και κάτι ακόμη: Θα φτιάξω δύο διαφορετικά αρχεία εκκίνησης. Ένα για όταν απλά ανοίγω το πρόγραμμα, και ένα για
όταν κάνω διπλό κλικ σε αρχεία τύπου vvv. Ότι πραγματεύεται αυτός ο οδηγός ισχύει για οποιαδήποτε αρχεία θέλετε να καταχωρήσετε στο σύστημα.
Το Virtual Volumes View και η επέκταση vvv είναι απλά ένα παράδειγμα.
Πρώτο βήμα
Αρχικά λοιπόν τα αρχεία vvv δεν είναι γνωστά στο σύστημα:

Για να το αλλάξω αυτό θα πρέπει να φτιάξω ένα νέο αρχείο xml με ότι όνομα επιθυμώ, (συνήθως κάποιο που να μου θυμίζει την επέκταση) και να το αποθέσω στην διαδρομή
"/usr/share/mime/packages/". Ας φτιάξω λοιπόν ένα αρχείο για την επέκταση vvv που με ενδιαφέρει:
Κώδικας: Επιλογή όλων
nano vvv.xml
και θα του δώσω τα παρακάτω περιεχόμενα:
Κώδικας: Επιλογή όλων
<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
   <mime-type type="application/x-vvv">
     <comment>Virtual Volumes View Catalog </comment>
     <glob pattern="*.vvv"/>
   </mime-type>
</mime-info>
Θα μετακινήσω το αρχείο στην τοποθεσία /usr/share/mime/packages/:
Κώδικας: Επιλογή όλων
sudo mv vvv.xml /usr/share/mime/packages/
Τώρα θα χρειαστεί να ανανεώσω την βάση δεδομένων των επεκτάσεων:
Κώδικας: Επιλογή όλων
sudo update-mime-database /usr/share/mime/
Τώρα το αρχείο μου έχει πλέον ταυτότητα στο σύστημα. Ίσως χρειαστώ να κάνω μία ανανέωση στο ναυτίλο (F5):

Δεύτερο βήμα
Θα του προσθέσω και ένα εικονίδιο για να το αναγνωρίζω εύκολα. Δεν θέλω να φτιάξω σαρανταδώδεκα εικονίδια για όλα τα πιθανά μεγέθη (16,22,24,32,48...) αλλά ως
διαβόητος τεμπέλης που είμαι θα φτιάξω ένα κλιμακωτό εικονίδιο για όλα τα μεγέθη. Με τον τρόπο αυτό το εικονίδιο μου θα έχει την ίδια καλή ποιότητα σε όλες τις
διαφορετικού μεγέθους απεικονίσεις του. Το εικονίδιο λοιπόν θα πρέπει να είναι σε μορφή svg (scalable vector graphics) και για να το επιτύχω αυτό, θα πρέπει να
χρησιμοποιήσω το πρόγραμμα Inkscape που είναι διαθέσιμο από τα αποθετήρια. Στο Inkscape λοιπόν, φτιάχνω το εικονίδιο vvv.svg με ανάλυση 32x32 πίξελ.
Δεν θα πω πως λειτουργεί το Inkscape γιατί μάλλον ξέρετε, αλλά αν δεν ξέρετε, θα βρείτε ένα σωρό βίντεο στο youtube ώστε να ξεκινήσετε να το χρησιμοποιείτε σε
ελάχιστο χρόνο. Αφού έχω φτιάξει το εικονίδιο μου, το ονομάζω application-x-vvv.svg (όπως δηλαδή το έχω δηλώσει στη βάση δεδομένων mime) και το αντιγράφω στον
κατάλογο "scalable/mimetypes" του θέματος εικονιδίων που χρησιμοποιώ. Για ubuntu δηλαδή, θα έκανα το εξής:
Κώδικας: Επιλογή όλων
sudo cp application-x-vvv.svg /usr/share/icons/hicolor/scalable/mimetypes/
Τώρα τα αρχεία vvv θα παρουσιάζονται με το εικονίδιο που έφτιαξα. Η αλλαγή δεν θα λάβει χώρα άμεσα, αλλά από την επόμενη επανεκκίνηση ή είσοδο στο σύστημα.
Άν θέλουμε να δούμε το εικονίδιο μας να αλλάζει άμεσα, θα τρέξουμε την εντολή:
Κώδικας: Επιλογή όλων
sudo gtk-update-icon-cache /usr/share/icons/hicolor/
Τώρα τα αρχεία vvv έχουν ταυτότητα στο σύστημα, και μάλιστα με "φωτογραφία".

Έως εδώ όλα καλά, και μπορείτε με τον τρόπο αυτό να φτιάξετε ότι εικονίδιο σας λείπει, και να καταχωρήσετε νέους τύπους αρχείων στο σύστημα.
Επίσης σε πάρα πολλές περιπτώσεις το πρώτο βήμα δεν θα χρειαστεί. Δηλαδή μπορώ απλά να αλλάξω εικονίδια που δεν μου αρέσουν, εικονίδια που είναι ίδια για πολλούς
τύπους αρχείων (tar,bz2,tgz κ.α.), ή απλά εικονίδια για τύπους αρχείων που ενώ είναι καταχωρημένοι στο σύστημα, απλά δεν έχουν εικονίδιο συσχετισμένο (srt,nfo κ.α.).
Off topic:
Την επόμενη παράγραφο μην την λάβετε υπόψιν σας ως απαραίτητη για ότι έχει ειπωθεί παραπάνω. Είναι αποκλειστικά για το Virtual Volumes View, και γενικότερα
για εφαρμογές που δεν έρχονται σε deb πακέτο, και όχι από τα επίσημα αποθετήρια. Παρότι ίσως η μέθοδος φανεί χρήσιμη σε κάποιους χρήστες, η πλειοψηφία από εσάς
μάλλον δεν θα την χρειαστεί ποτέ. Θα πρέπει να χρησιμοποιείτε Mate ή κάποιο από τα άλλα παραδοσιακά περιβάλλοντα εργασίας. Σε unity δεν χρειάζεται να ασχοληθείτε
καν, διότι δυστυχώς και αυτή η ευκολία έχει αφαιρεθεί από τον χρήστη.
Το πρόβλημα:
Κάνοντας διπλό-κλικ στα αρχεία vvv δεν ανοίγει το πρόγραμμα VirtualVolumesView. Αν δείξω στον Ναυτίλο το πρόγραμμα /opt/vvv/vvv-start.sh το πρόγραμμα ανοίγει,
αλλά δεν φορτώνει τον εν-λόγω κατάλογο με τον οποίο εκκίνησα το πρόγραμμα. Αν τροποποιήσω το αρχείο /opt/vvv/vvv-start.sh, το πρόγραμμα δεν ανοίγει από το
μενού - εικονίδιο στο πάνελ, ή ανοίγει και παραπονιέται για αρχείο που δεν βρέθηκε, χωρίς να μου ανοίγει τον τελευταίο κατάλογο που χειριζόμουν.
Η λύση:
Φτιάχνω μία κόπια του αρχείου /opt/vvv/vvv.start.sh
Κώδικας: Επιλογή όλων
sudo cp /opt/vvv/vvv-start.sh /opt/vvv/callvvv
Τροποποιώ το νέο αρχείο:
Κώδικας: Επιλογή όλων
sudo nano /opt/vvv/callvvv
και το φτιάχνω όπως παρακάτω:
Κώδικας: Επιλογή όλων
#!/bin/sh
cd "$(dirname "$0")"
export LD_LIBRARY_PATH=./firebird
export FIREBIRD=.
./vvv "$1"
Τώρα κάνω δεξί-κλικ πάνω σε ένα αρχείο vvv και επιλέγω ιδιότητες. Επιλέγω την καρτέλα "Άνοιγμα με". Πατάω "Προσθήκη"
Χρησιμοποιώ την εντολή "/opt/vvv/callvvv" ως προσαρμοσμένη εντολή.

Τώρα το πρόγραμμα ανοίγει και με διπλό-κλικ, και από το μενού.

Ελπίζω να βρείτε αυτόν τον οδηγό χρήσιμο.
Θα ήθελα να κάνω και μία πρόταση από αυτόν εδώ τον οδηγό: Τι θα λέγατε αν βάζαμε όλοι το λιθαράκι μας, ώστε να φτιάχναμε ένα πιό ολοκληρωμένο
θέμα εικονιδίων - μία πιό ολοκληρωμένη βάση δεδομένων τύπων αρχείων; Δεν χρειάζεται να είμαστε καλλιτέχνες. Μπορούμε να συμβάλλουμε με το εικονίδιο
που φτιάξαμε, αυτό το άσχημο, και κάποιος αργότερα που έχει τις ικανότητες, ίσως φτιάξει ένα πιό όμορφο. Επίσης μπορούμε απλά να επισημάνουμε ποιά
εικονίδια - τύποι αρχείων λείπουν από το σύστημα και μας δημιουργούν "πρόβλημα", ή απλώς να φτάξουμε τα ανάλογα xml. Μετά ίσως κάποιος αναλάβει τα εικονίδια.
Ξέρω πως το Λίνουξ δεν βασίζεται σε επεκτάσεις και εικονίδια. Όταν εμφανίστηκαν οι πρώτες διανομές, δεν υπήρχαν σχεδόν καθόλου επεκτάσεις.
Το σύστημα ήξερε ( και ξέρει) τι είδους αρχείο είναι το κάθε ένα, και πως να επιδράσει επάνω του. Αν ήθελε ο χρήστης να μάθει περισσότερα για ένα αρχείο
που δεν γνώριζε τον τύπο του, θα έπρεπε ( και ισχύει ακόμη ) να εκτελέσει την εντολή file ενάντια στο αρχείο για να μάθει περί τίνος πρόκειται.
Την σήμερον ημέρα όμως αυτό έχει αλλάξει κατά πολύ, και επίσης οι επεκτάσεις βοηθούν όσο και αν δεν θέλουμε να το παραδεχθούμε. Το ίδιο και τα εικονίδια.
Να μία εικόνα από το Archlinux μου που ακόμη δεν του έχω προσθέσει εικονίδια:

Και μία από το Debian Wheezy μου που εδώ έχω κάνει τις απαραίτητες για εμένα αλλαγές:

Δεν χρειάζεται να ξανα-επιννοήσουμε τον τροχό. Δεν είναι ανάγκη να φτιάξουμε ένα νέο θέμα εικονιδίων από την αρχή. Μπορούμε να προσθέσουμε απλά τα xml μας στην
υπάρχουσα βάση δεδομένων, και τα εικονίδια μας στο θέμα που χρησιμοποιούμε. Είναι εύκολο, και απόλυτα εφικτό τώρα που όλοι ξέρουμε πως.
Και ίσως μία μέρα αυτά να συμπεριληφθούν στην αγαπημένη σας διανομή.
Εγώ έκανα την πρόταση. Ας περιμένουμε να δούμε αν υπάρχει ενδιαφέρον.
Φιλικά xXx
Κυρίως Desktop: MoBo: GA-MA78GM-S2H | CPU: AMD Phenom(tm) II X4 920 2.80 GHz | VGA: NVIDIA Corporation GF119 [GeForce GT 610] | RAM: 3GB DDR2 800 | Audio: Realtek ALC889A (ATI SB) | Audio: NVIDIA Corporation GF119 HDMI | OS: Debian jessie 64bit
Άβαταρ μέλους
xXx
punkTUX
punkTUX
 
Δημοσιεύσεις: 211
Εγγραφή: 05 Μάιος 2010, 16:12
Τοποθεσία: Ελλάδα, Θεσσαλονίκη, Άνω Πόλη
Εκτύπωση

Re: Καταχώρηση νέων τύπων αρχείων στο σύστημα

Δημοσίευσηαπό konnn » 26 Νοέμ 2014, 23:26

Μεταφέρθηκε στους οδηγούς

1 Linux: Μέτριος ┃ Προγραμματισμός: Μέτριος ┃ Αγγλικά: Προχωρημένος
2 Desktop : Ubuntu 16.04 64bit
a Intel Core i3 CPU 530 2.93GHz ‖ RAM 3824 MiB ‖ Intel DH55HC -
b nVidia Device [10de:1040] (rev a1)
c eth0: Intel 82578DC Gigabit Network Connection
3 Notebook : Ubuntu 16.04 64 bit
a Intel Core i3-2365M CPU @ 1.40GHz ‖ RAM 3854 MiB ‖ LENOVO 20197
b Intel 2nd Generation Core Processor Family Integrated Graphics Controller
c 5 wlan0: Intel Centrino Wireless-N 2230 ⋮ eth0: Realtek RTL8101E/RTL8102E

Αυτόματη υπογραφή.
Άβαταρ μέλους
konnn
Συντονιστής
Συντονιστής
 
Δημοσιεύσεις: 3568
Εγγραφή: 12 Ιούλ 2010, 17:54
Τοποθεσία: Καλαμάτα
Launchpad: konnn
Εκτύπωση


Επιστροφή στο Οδηγοί - How to - Tutorials

cron