Εκκινητής εφαρμογής - Εκτέλεση σε τερματικό

Καλησπέρα.
Λογικά θα έχετε ασχοληθεί με αυτό

Στιγμιότυπο από 2022-11-04 18-21-50

Εκεί που λέει “Τύπος” έχει τις επιλογές “Εφαρμογή” και “Εκτέλεση σε τερματικό” που βλέπετε τώρα.
Μια χαρά μου εκτελεί την εντολή που του έχω ορίσει. Το πρόβλημα είναι ότι και το τερματικό σε παράθυρο. Δεν το θέλω το παράθυρο. Η εντολή δείχνει κάτι στην οθόνη και το παράθυρο του τερματικού απλά είναι ανοιχτό και ενοχλεί. Υπάρχει καμιά πατέντα να γίνεται η εκτέλεση σε τερματικό αλλά να μην ανοίγει καθόλου το παράθυρο;

Ευχαριστώ.

Δοκίμασε να προσθέσεις στο τέλος της εντολής « && exit». (Έχει ένα κενό από μπροστά.) Αν πρόκειται για σκριπτάκι, πρόσθεσέ το στην τελευταία του εντολή, όχι αν έχεις γράψει μόνο μία εντολή στο παράθυρο που βλέπουμε.

Αν είναι για το δεύτερο γράψε sh -c 'ΕΝΤΟΛΗ && exit'.

EDIT: Καλύτερα να μην το γράψεις στο σκριπτάκι, γιατί όταν εκτελείς το σκριπτάκι απ’ το τερματικό, θα σου κλείνει το τερματικό. Δοκίμασε μόνο το δεύτερο, ότι κι αν είναι η εντολή.

Τι ακριβώς θέλεις να τρέξεις; Αν είναι γραφική εφαρμογή ή κάτι που ξεκινά μια γραφική εφαρμογή, δεν θέλει την πρώτη επιλογή. Το δοκίμασες;

Επίσης, δες:

1 «Μου αρέσει»

Καλά λέει ο @Asfodelus . Αν η εντολή σου ανοίγει κάποια γραφική εφαρμογή, το τερματικό θα κλείσει όταν κλείσεις την εφαρμογή. Σ’ αυτήν την περίπτωση, δε χρειάζεται «εκτέλεση σε τερματικό».

Καλύτερα άκου απ’ τους παλιούς, γιατί εγώ αυτά τα έχω δοκιμάσει λίγες φορές.

Το αρχείο είναι αυτό

#!/usr/bin/env xdg-open

[Desktop Entry]
Version=1.0
Type=Application
Terminal=true
Exec=xwinwrap -ni -g 1080x810+700+180 -s -st -sp -b -nf -o 0.3 -un -- mpv https://tv-trtworld.live.trt.com.tr/master_1080.m3u8 -wid WID
Name[el]=llll
Name=llll

Έχω όμως και ένα απλό σκριπτάκι για την ίδια δουλειά που είναι αυτό

#!/bin/bash
xwinwrap -ni -g 1080x810+700+180 -s -st -sp -b -nf -o 0.3 -un -- mpv https://tv-trtworld.live.trt.com.tr/master_1080.m3u8 -wid WID

Άκου πλάκα τώρα.

(Κατ’ αρχάς παιδιά σας παρακαλώ να μην κοροϊδεύετε. Ασχολούμαι και με σοβαρά πράγματα στη ζωή μου αρκετά συχνά)

Όταν κάνω κλικ με το ποντίκι πάνω στο σκριπτ που είναι εικονίδιο στην επιφάνεια εργασίας και που το έχω κάνει εκτελέσιμο, μου ανοίγει η σαχλαμάρα το TRT, τηρεί το μέγεθος αλλά αγνοεί την παράμετρο -g 1080x810+700+180 που του λέει να σχηματιστεί κάτω δεξιά

Αυτό που βλέπετε το κάνει μόνο αν τρέξω το απλό αυτό σκριπτάκι με την κονσόλα ή αν φτιάξω στο πανελ αυτόν τον εκκινητή με εντολή όπως έχει και την επιλογή “Εφαρμογή σε τερματικό”.

Αλλιώς αν επιλέξω απλά “Εφαρμογή” ή αν απλά κάνω κλικ με το ποντίκι όπως είπα μου το δείχνει πάνω αριστερά!

Το είχα ψάξει με τα κουτσοαγγλικά μου και είδα ότι κάποιος έχει προσθέσει τη μεταβλητή -ov στην όλη γραμμή. Αυτή και καλά σου κάνει overwrite κάτι και τελικά δεν αγνοεί την παράμετρο geometry (-g) και στο βγάζει ωραία κάτω δεξιά και μάλιστα πιο σωστά στις διαστάσεις

Το πρόβλημα τώρα είναι ότι αγνοεί το -o 0.3 που είναι το opacity (Αν του βάλεις 0.9 ας πούμε θα είναι σαν την τελευταία εικόνα. Αν του βάλεις 0.1 είναι πολύ αχνό)

Θέλω απλά να κάνω πιο γουστόζικο το desktop μου. Θα τοποθετήσω πιο καλά τα εικονίδια και θέλω αυτό να τρέχει από την εκκίνηση του συστήματος. Γι αυτό είχα και νήμα και σας ζήταγα κάποιο σάιτ που να κάνει στρίμιγκ εικόνες και βιντεάκια χωρίς παρουσιαστή και λόγια και ρεπορτάζ. Τέλος πάντων.

Αυτά βασικά.

Πρόσεξε πως έχεις δυο εντολές:

xwinwrap -ni -g 1080x810+700+180 -s -st -sp -b -nf -o 0.3 -un
 -- 
mpv https://tv-trtworld.live.trt.com.tr/master_1080.m3u8 -wid WID

Οι δύο παύλες -- χωρίζουν τα ορίσματα της πρώτης εντολής από τη δεύτερη.

Αν δεν μπορείς να καταφέρεις να βάλεις το παράθυρο εκεί που θέλεις με παραμέτρους στη γραμμή εντολών, υπάρχει το devislspie2. Και μπορείς να κάνεις και άλλα πράγματα όπως να του βγάλεις μπάρες, να το κρύψεις από τη γραμμή εντολών, να το βάλεις κάτω από άλλα παράθυρα, ή να το κάνεις να μη δέχεται είσοδο από το ποντίκι ή το πληκτρολόγιο. Ίσως, ένας καλύτερος τρόπος από το xwinwrap.

Σαν ένα παράδειγμα το χρησιμοποιώ εδώ. Το έχω παρουσιάσει εδώ:

1 «Μου αρέσει»

Έλα ρε θηρίο! :grinning:

Θέλω να το δω. Τι το κάνω; Αντιγραφή σε αρχείο κειμένου και μετά;

Το “Δεν είναι conky” είναι ένα πολύπλοκο σύστημα. Αλλά στα βασικά:

Θα βρεις ένα αρχείο desktop που ξεκινά το devislspie2. Επίσης, κάτι που βάζει τα αρχεία στις σωστές θέσεις.

Μετά θέλεις κάποια προγράμματα που θα αντιδράσουν όταν ένα παράθυρο δημιουργηθεί και θα τρέξουν ένα κώδικα. Ο κώδικας είναι γραμμένος σε μια γλώσσα που λέγετε Lua[1], αλλά δεν είναι δύσκολο να καταλάβεις τι γίνετε:

if (get_window_class()=="rg.wezfurlong.wezweather") then
    set_skip_tasklist(true)
    pin_window()
    set_skip_pager(true)
    set_window_below(true)
    stick_window()
    set_window_type("WINDOW_TYPE_DESKTOP")
    set_window_size(t_width, w_height)
    set_window_position2(screen_w - t_width - 10 , 30 + cl_height)
end

Ενεργοποίησε το αρχείο debug, ίσως σε βοηθήσει να βρεις τον καλύτερο τρόπο να εντοπίσεις το παράθυρο. Έχω προσθέτω ένα window class στα παράθυρα, αλλά μπορείς να το κάνεις καλύτερα με get_window_name() ή get_application_name(). Ελπίζω με αυτά τα λίγα και με την τεκμηρίωση του devilspie2 να τα καταφέρεις.

Ένα έλασσον πρόβλημα μόνο που θα πρέπει να έχεις υπόψη: Δυστυχώς δεν έχουμε ακόμα το systemd (ή κάτι αντίστοιχο) να διαχειρίζεται τη συνεδρία του χρήστη, και δεν μπορείς να ξέρεις αν το devilspie2 τρέχει και είναι ενεργό. Προσπάθησα να το λύσω χωρίς να προσθέσω καθυστερήσεις, αλλά δεν το κατάφερα. Η λύση είναι να βάλεις μια καθυστέρηση στο δεύτερο αρχείο desktop ή να προσθέσεις μια εντολή sleep στο script. Και δε θα δουλέψει σε wayland (ούτε τώρα ούτε αργότερα).

[1] Η Lua είναι μια γλώσσα που υπάρχει μόνο ενσωματωμένη σε άλλα προγράμματα, θα τη βρείς σε πολλά παιγνίδια. Επίσης, το wezterm που χρησιμοποιώ στο παράδειγμα, ρυθμίζεται με Lua.