Gdzie jest życie rzucić?


12

Próbuję wykonać niestandardowy wyrzutni w 11.10 na specjalne siły rzucić wyrzutnia mieliśmy w 11.04 (można dodać ją z listy aplikacji, ale teraz jest to nigdzie nie można znaleźć nawet w Alacarte ..) .. więc Próbuję użyć informacji tutaj, ale nie mam pojęcia, jaki jest rzeczywisty plik lub polecenie wymuszenia wyjścia, ani gdzie jest w systemie plików.

to pytanie jest naprawdę specyficzne, aby wymusić samo wyjście i nie dotyczy pytania, jak utworzyć program uruchamiający.

utworzę plik o nazwie forcequit.desktop i umieszczę go w folderze ~ / .local / share / applications, a następnie przeciągnę go na pasek narzędzi, tak jak opisano to w innym miejscu.

zawartość pliku będzie wyglądać następująco:

#!/usr/bin/env xdg-open  
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=sh -c 'notify-send "Click on an application to force-close it, or press Esc to cancel."; xkill'
Name=Force Quit
Comment=Click on the app to quit with your pointer
Icon=gnome-panel-force-quit
Categories=System,Accessories;

przypuszczam, że może to być specjalne polecenie, które wymaga argumentu, ponownie, jeśli masz informacje, proszę powiedzieć :)

w pliku napisałem komentarze na temat potrzebnych mi informacji ...

edytuj: ok teraz działa z wyświetlaniem specjalnej ikony X i wymusza prawidłowe wyjście. teraz muszę tylko dowiedzieć się, jak uzyskać instrukcje dla użytkownika końcowego, podobnie jak w przypadku korzystania z interfejsu CLI. Załóżmy, że wyświetla gdzieś komentarz programu uruchamiającego? jakieś pomysły lub linki? a może muszę coś dodać do tego pliku uruchamiania?

ostatnia edycja: no cóż, rozwiązanie z powyższej edycji zostało znalezione, to jest użycie funkcji send send , która załatwia sprawę. podobnie jak teraz jest odzwierciedlone w kodzie .. ciesz się rozwiązaniem na pulpicie (lub dla obsługiwanych użytkowników końcowych !)

ostatnia edycja: cała ta rozmowa sprawia, że ​​chcę trochę poszukać opcji powiadomień-wysyłania .. no i na większą skalę przy wszystkich innych poleceniach, których mogę użyć ..... powiadomienie-wysłanie jest częścią gnome, prawda? ? czy jest to część sh? (wątpię, że pochodzi z sh)

edytuj do ostatniej edycji: nieważne, że .. ja również znalazłem odpowiedź na to ... powiadomienie-wysyłanie jest częścią pakietu biblioteki libnotify..i powiadomienie-wysyłanie znajduje się w folderze narzędzi (na początku miałem problem ze znalezieniem. .) i nie, nie jest to konkretnie część gnome, ale raczej inna biblioteka używana przez wiele aplikacji :)

Odpowiedzi:


10

Poleceniem, jak już powiedział WarriorIng64, jest xkill.

Aby wyświetlić instrukcje dla użytkownika końcowego, możesz użyć

notify-send "Click on an application to force-close it, or right-click to cancel."

Teraz, aby połączyć dwa polecenia w jeden program uruchamiający, musisz je zawinąć sh -c '...', więc plik .desktop powinien to powiedzieć

Exec=sh -c 'notify-send "Click on an application to force-close it, or right-click to cancel."; xkill'

Warto głosować za pokonanie mnie o 15 minut!
Scaine,

że powiadomienie send robi ostatnią sztuczkę :)
marc-andre benoit

1
@Marius To wyraźnie przewyższa moją zaakceptowaną odpowiedź. Dobra robota, dzięki czemu jest bardziej reprezentatywna i przyjazna dla użytkownika!
Christopher Kyle Horton

na zakończenie zastanawiam się nad użyciem sh VS bash .. to tylko ze względu na przenośność (bo każdy ma sh, ale nie każdy może użyć / bash (co samo w sobie jest dziwne, ale możliwe!))
marc-andre benoit

1
Przynajmniej dla mnie na Ubuntu 11.04, escape nie działa, ale kliknięcie prawym przyciskiem myszy anuluje monit xkill.
Shane S.

7

przydźwięk ... mało użyteczne, poza wskazaniem mnie w stronę ikony (po pobraniu i przeczytaniu kodu źródłowego z pliku skryptu .. nie potrzebuję odmrażania i tak dalej :) ale dziękuję za odpowiedź ..
marc-andre benoit

Ale nie ma sposobu, aby to menu się pojawiło (np. Poprzez kliknięcie z wciśniętym klawiszem Shift). Czasami pojawia się, jeśli aplikacja jest poprawnie zamrożona, ale jeśli aplikacja nadal reaguje, ale nie chce wyjść? Nie masz szczęścia.
Timmmm


2

Jeśli absolutnie potrzebujesz powiadomienia, możesz to zrobić za pomocą polecenia send-send.

Utwórz następujący plik, być może jako forceclose:

#! /bin/sh 

notify-send 'Force close application' 'Select a window to close it.  All data in that window will be lost.  Right click to cancel.' --icon=gtk-cancel
xkill

Następnie zaznacz go jako skrypt za pomocą chmod +x forceclose

Następnie albo:

a) przenieś go do katalogu / bin za pomocą sudo mv forceclose /bin/forceclosei zmień program uruchamiający na wywołanie forceclosezamiast xkill. (być może przydatne dla wielu użytkowników tego samego systemu)

lub

b) zmień program uruchamiający, aby wskazywał na którykolwiek katalog zawierający skrypt forceclose. Pamiętaj, że inni użytkownicy tego systemu oczywiście nie będą mogli używać Twojego skryptu.


1
I widzę, że Marius pokonał mnie w ciągu 15 minut, które zajęło mi zbadanie tej odpowiedzi i opublikowanie jej ... <westchnienie>
Scaine

zbyt skomplikowane, ale dziękuję za twój wysiłek! mam na myśli, że bardziej elegancko jest mieć to wszystko w jednym pliku, niż tworzyć dodatkowy :) rozwiązanie zaproponowane przez Mariusa przynosi szczęście następnym razem!
marc-andre benoit

Zrobiłeś duży interes w sprawie powiadomienia dla „użytkowników”, więc założyłem, że możesz mieć wielu użytkowników w każdym systemie, w takim przypadku dodanie go do / bin ma sens. Cieszę się, że znalazłeś odpowiedź, która Ci odpowiada.
Scaine,

1
ps tworzenie pliku, oznaczanie go jako wykonywalnego i kopiowanie go w inne miejsce jest „zbyt skomplikowane”?!? Nie jestem pewien, czy masz tam odpowiednie słowo! :-)
Scaine,

tak przepraszam .. byłem po prostu bardzo zmęczony, byłem na maratonie drzemki (4 dni z rzędu), co miałem na myśli to, że powiadomienie jest osadzone w kodzie w osobnym pliku stworzonym z myślą o mniejszej powierzchni, tylko jeden plik zamiast dwa, ale przeglądanie dodatkowego pliku zapewnia lepszą modułowość, co może być ważne w większych projektach :)
marc-andre benoit

1
  1. Naciśnij Alt+ F2.
  2. Wpisz xkill. następnie naciśnij Enter.
  3. Kliknij okno, które chcesz zabić (kliknij prawym przyciskiem, aby przerwać).

1
To by działało, ale OP pyta, jak zmienić go w program uruchamiający, który można kliknąć.
Christopher Kyle Horton

wiem jak to zrobić na CLI, ale mam użytkowników, którzy nie chcą mieć z tym nic wspólnego :) dlatego właśnie zadaję to pytanie ..
marc-andre benoit
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.