Τι αν είχαμε αρχείο εικόνας (image) ή σενάριο (script) γραφικού περιβάλλοντος;

Καλησπέρα σε όλους και όλες!

Όσο χρησιμοποιούσα το σύστημά μου μού ήρθε μια (φοβερή πιστεύω) ιδέα. Τι θα γινόταν άμα είχαμε image (ή script) για τα γραφικά περιβάλλοντα, ρυθμισμένα και έτοιμα για χρήση κατευθείαν; Τι σκέφτομαι ακριβώς:

Τι θα είναι αυτό το image (ή script);
Έχουμε ένα απλό γραφικό πρόγραμμα (διαθέσιμη θα είναι και έκδοση με γραμμή εντολών) το οποίο φτιάχνει ένα αρχείο .desktopimage (ή .sh, στο παράδειγμα εδώ θα χρησιμοποιώ .desktopimage). Για όλο το υπόλοιπο της εξήγησης μου, θα υποθέσω ότι θέλουμε Xfce 4. Θα φτιάξει ένα αρχείο xfce4.desktopimage (προεπιλεγμένο, ή δικό μας όνομα). Σε αυτό το πρόγραμμα λέμε να βάλει το Xfce, και μέσα στο αρχείο που βγαίνει βάζει όλα τα αρχεία του. Επίσης μας αφήνει να το ρυθμίσουμε και να αλλάξουμε ό,τι θέλουμε, να βάλουμε δικό μας έτοιμο φόντο και ίσως να βάζαμε και εφαρμογές μαζί με αυτό. Επίσης ίσως θα μπορούμε να πειράξουμε ήδη έτοιμα αρχεία.

Πώς θα γίνεται η εγκατάσταση;
Θα είναι ένα συμπιεσμένο αρχείο (όπως τα .deb για παράδειγμα) που είτε θα μπορούμε να αντιγράψουμε τα αρχεία μόνοι μας από μέσα του ή να έχουμε ένα πρόγραμμα που κάνει την αντιγραφή για εμάς (όπως το APT αντιγράφει τα αρχεία από τα .deb).

Ποιο είναι το τελικό αποτέλεσμα;
Έχουμε ένα έτοιμο γραφικό περιβάλλον και login manager (της επιλογής μας, άμα δεν υπάρχει ήδη ένας) εγκατεστημένα, ρυθμισμένα ακριβώς όπως το θέλουμε, με δικό μας φόντο και εφαρμογές άμα τα θέλουμε προαιρετικά, και κατευθείαν μπορούμε να ξεκινήσουμε τη χρήση τους.

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

Τι λέτε; Θα σας ενδιέφερε κάτι τέτοιο; Θα μπορούσαν να προστεθούν και άλλα πράγματα

1 Like

Το να κρατήσεις το home directory (/home/user) δεν σου προσφέρει λίγο πολύ την ίδια λειτουργικότητα σε ό,τι αφορά στις ρυθμίσεις?

Σε ό,τι αφορά στα προγράμματα που έχεις εγκατεστημένα, μπορείς να κάνεις export τα εγκατεστημένα αρχεία σου σε ένα text file και μετά να χρησιμοποιήσεις αυτό το text file ως input για τον package manager του επόμενου distro που θα χρησιμοποιήσεις. Θα ναι μια καλή αρχή.

Όλα αυτά σε γενικές γραμμές βεβαίως, μιας και υπάρχουν διαφορές από distro σε distro.

1 Like

Εννοώ να φτιάξει ένα συμπιεσμένο αρχείο με όλα τα αρχεία του γραφικού περιβάλλοντος κατευθείαν, χωρίς να είναι μέσα σε .deb ή .rpm ή κάτι τέτοιο και να μπορείς να φτιάξεις μόνος σου τις ρυθμίσεις και η εικόνα που θα βγει θα έχει αυτές τις ρυθμίσεις και τα αρχεία του περιβάλλοντος που διάλεξες. Όταν λέω να βάζεις προγράμματα εννοώ να μπορείς αργότερα (πρώτα να δούμε αν θα φτιαχτεί κάτι τέτοιο) να του πεις επίσης εκτός από το DE να σου βάλει και μερικά προγράμματα στο αρχείο που θα εγκαταστήσει πάλι αυτόματα με αντιγραφή αρχείων από το συμπιεσμένο

Σε ό,τι αφορά σε “εκτελέσιμα”, αυτό που λες δεν γίνεται - έτσι όπως εγώ αντιλαμβάνομαι τη σκέψη σου και τα πράματα.

Σε ό,τι αφορά στις ρυθμίσεις, τη “διατήρησή” τους από εγκατάσταση σε εγκατάσταση μπορείς να την πετύχεις σε άλλοτε άλλο βαθμό κρατώντας το home directory.

1 Like

Γιατί να μη γίνεται αυτό με τα εκτελέσιμα αρχεία; Αφού στο τέλος ούτως ή άλλος όταν κάνεις εγκατάσταση ένα πακέτο το εκτελέσιμο δε τρέχεις μετά; Απλά λέω αυτό το εκτελέσιμο να αντιγράφεται κατευθείαν στο αρχείο

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

  1. Προγράμματα: Σε ένα γραφικό περιβάλλον όπως το λες έχουμε από την μια προγράμματα που μπαίνουν πχ με apt και “πρόσθετα” που δεν μπαίνουν. Για παράδειγμα fonts/cursors/applets/desklets/extensions/wallpapers… που δεν μπαίνουν και που τυπικά υπάρχουν στον κατάλογο του χρήστη.
  2. Ρυθμίσεις: Πάλι εδώ έχεις αυτές που μπαίνουν με κάτι σαν το apt και αφορούν όλους τους χρήστες, και τοπικές ρυθμίσεις που είναι είτε κάποια αρχεία είτε κάποια dconf settings.

Αν λοιπόν θέλεις το επίπεδο συστήματος ουσιαστικά το κάνεις με ένα meta πακέτο. Και στην πράξη κάθε υπάρχον γραφικό περιβάλλον είναι ένα μεταπακέτο. Θέλεις να το μεταφέρεις αυτό και σε επίπεδο home directory. Σαν μια ποιο απλή ιδέα απλά άλλαξε το root που θα κάνει εξαγωγή και είσαι ΟΚ. Μια απλούστερη ιδέα είναι ή χρήση κάποιου layerfs πάνω στο home directory.

Ελπίζω τα παραπάνω να σε βοηθήσουν να θέσεις καλύτερα την ιδέα σου,

Αν τώρα το θέλεις σε επίπεδο χρήστη, αυτό θέλει μια βαθιά ενσωμάτωση με το γραφικό περιβάλλον και θέλει δουλεία. Γιατί δεν το λές στην ομάδα του systemd. Μόνο αυτό που δεν κάνει ακόμα; (λολ)

1 Like

Όχι σκέφτομαι κάτι κάπως έτσι:

Σκέψου ότι έχεις ένα γραφικό περιβάλλον. Αυτό το γραφικό περιβάλλον έχει αρχεία στο /usr/bin, στο /usr/lib, και στο /etc, μαζί με τις ρυθμίσεις του στο /home. Αυτό που θα κάνει το πρόγραμμα είναι να κατεβάζει τα αρχεία του προγράμματος που πηγαίνουν στο /usr και στο /etc κατευθείαν στο αρχείο, και τις ρυθμίσεις στο /home να σου δίνει επιλογή το πρόγραμμα ή να τις φτιάξεις μόνος σου, ώστε να φτιάξεις image με ένα custom DE έτοιμο για εγκατάσταση, είτε online είτε χωρίς ίντερνετ. Δηλαδή κάτι να σου λύνει τα χέρια, να κάνει την εγκατάσταση και τη ρύθμιση μόνο του με αυτά που του έδωσες.

Δηλαδή θέλεις ένα εργαλείο που να σου φτιάχνει με λίγα κλικ την δικιά σου διανομή.

Με λίγα κλικ τη δικιά σου διανομή ενός γραφικού περιβάλλοντος, ναι

Θα μπορούσε να γίνει εν μέρει, αλλά…
Το Android δεν έχει καταφέρει να κάνει κάτι παρόμοιο εδώ και χρόνια.
Σε αντίθεση με την Apple που το πετυχαίνει 100%.
Αν έχεις iOS και αλλάξεις συσκευή, κάνεις backup, restore και η νέα συσκευή είναι όπως άφησες την παλιά, μέχρι και τα tabs στον Browser…
Στο Android δε συμβαίνει αυτό, λόγο της ποικιλομορφίας των συσκευών και των custom διανομών που έχει κάθε εταιρία.

Έτσι κι εδώ, θα μπορούσε να γίνει για συγκεκριμένη διανομή κι έκδοση. Θεωρώ πολύ δύσκολο και ίσως όχι άξιο του χρόνου που θα χρειαστεί για να δουλέψει.
Φυσικά και μπορείς να το κάνεις, ή να προσπαθήσεις, αλλά θα έχεις πολλά θέματα.

1 Like

Εγω σιγουρα δεν εχω καταλαβει τι εννοει ο @Kosmas_Raptis αλλά αυτο που λετε «σαν να φτιαχνεις τη δικια σου διανομη», στο περιπου, μου θυμιζει την παραγραφο Live Remaster and snapshot σε αυτο το λινκ → https://antixlinux.com/the-most-extensive-live-usb-on-the-planet/ . Ταιριαζει καπου ή ειναι ασχετο; Γιατι εμενα μου φανηκε οτι ταιριαζει…

1 Like

Μοιάζει κάπως, αλλά λέω για ένα εργαλείο που μπορεί να χρησιμοποιηθεί από όλους για έτοιμα αρχεία εικόνας γραφικού περιβάλλοντος.

Αν και εγω το εχω καταλαβει σωστα, αυτο μπορει να επιτευθει μονο με containers γιατι σε κανονικο συστημα εχεις πολλες προσαρτησεις (dependencies). Βγαζοντας το ενα DE (πχ GNOME3) και βαζοντας ενα αλλο (πχ KDE ή XFCE) γινεται αλλα, η μεταβαση του ενος στο αλλο θα χρειαζεται συνεχομενα remove και install πακετων. Επησεις θα μεινουν βιβλιοθηκες και ριθμησεις που δεν θα σβηστουν και κατα περιπτωση θα βρεθεις με ενα αλλο desktop που δεν θα σου δουλευει οπως το θες.

Με Containers, πχ το Docker μπορεις να κρατησεις το ιδιο home σε εναν συγκεκριμενο φακελο στον κανονικο υπολογιστη και να κανεις την δουλεια σου.

Μπορεις να εχεις πολλαπλα setup τα οποια μπορεις να κοντρολαρεις να φτιαχνεις και να ξεφτιαχνεις οπως θες εσυ με τα λεγομενα Dockerfiles που στην ουσια ειναι ενα ειδος script συγκεκριμενο για το Docker. Με αυτα μπορεις να φτιαχνεις Docker Images και Docker containers.

Υπαρχει ενα θεμα ομως με αυτη την προσεγγιση. Δεν υπαρχει hardware accelleration και δεν ξερω αν αυτο οντως γινεται μεσω συγκεκριμενων εντολων στο Docker αλλα με το SPICE ή και το X2go server μπορεις να πετυχεις καλες επιδοσεις για ενα Desktop μεσα σε Containers.

Επησεις δεν ειμαι και ο μονος που το σκευτηκε το να τρεχεις Desktop σε containers μιας και υπαρχει το εξης github project:

Αυτα τα ολιγα για τωρα. Ελπιζω να σε βοηθησει.

2 Likes