Jak mogę wyświetlić komunikat na ekranie logowania?

10

W niektórych okolicznościach przed zalogowaniem przydatne byłoby krótkie powiadomienie tekstowe, dzięki czemu mam możliwość zrezygnowania z logowania po zobaczeniu wiadomości.

Czy istnieje sposób wyświetlenia powiadomienia na graficznym ekranie logowania?

ændrük
źródło
Czy chcesz, aby komunikat pojawił się przed zalogowaniem? A może natychmiast po wprowadzeniu nazwy użytkownika i hasła?
Eliah Kagan
1
Jakiego rodzaju powiadomienia? To znaczy, zanim się zalogujesz, żadne aplikacje takie jak klient czatu nie są jeszcze uruchomione. Mogę tylko myśleć o stanie baterii (komputer mobilny) i łączeniu profili Menedżera sieci na poziomie systemu. I w jakim kontekście to jest? Czysty użytkownik czy programista?
gertvdijk
Interesuje mnie ogólna odpowiedź; Nie mam szczególnych wymagań dotyczących czasu wiadomości ani narzędzi używanych do generowania wiadomości.
ændrük
masz na myśli coś w rodzaju ekranu logowania, a następnie wiadomości. Nie potrzebujesz żadnego logowania?
rɑːdʒɑ
@snow „przed zalogowaniem” <-
gertvdijk

Odpowiedzi:

3

Zdaję sobie sprawę, że to spóźniona odpowiedź (na przykład spóźniona o wiele lat), ale pomyślałem, że pójdę naprzód i przedstawię coś tutaj wszystkim, którzy mają te same problemy. Cały czas widzę ten problem. Jest to tylko jeden sposób na zrobienie tego, który jest łatwy do napisania i wdrożenia. Pamiętaj, że jest to nieeleganckie rozwiązanie podobne do tego: Jak utworzyć wyskakujący baner przed zalogowaniem się w Lightdm?

  1. Utwórz plik i nadaj mu dowolną nazwę, na przykład: anyYouWant
  2. Dodaj do tego pliku (oczywiście zastępując tekst banera):

    bannerText="This is my banner and you will love it.  Worship it!"
    
    zenity --question --title="Pirate Ninja Banner" \
    --text=$bannerText" --no-wrap --width=800 --height=200
    
    until [[ $? = '0' ]]: do
       zenity --question --title="Pirate Ninja Banner" \
       --text=$bannerText" --no-wrap --width=800 --height=200
    done
    
  3. Dopasuj szerokość i wysokość do wszystkiego, czego potrzebujesz.

    3a. Chodzi o to, gdy komunikat logowania wyświetla użytkownika, który nie może kontynuować, dopóki nie wyrazi zgody na warunki, dlatego zapętla się, dopóki nie zostanie wybrane „tak”.

UWAGA (ponieważ wcześniej tego nie wiedziałem): zenity --list może zwrócić wartość true tak false nie (wartości boolowskie), zenity - question zwraca wyjście 0,1

  1. Ustaw plik jako wykonywalny:

    sudo chmod +x anythingYouWant
    
  2. Połóż to gdzieś - właśnie wsadziłem go do / usr / bin

    sudo mv anythingYouWant /usr/bin
    

----------- LIGHTDM -----------------------

  1. Jeśli używasz lightdm, musisz zmodyfikować plik lightdm.conf. Kiedy poszedłem to zrobić po raz pierwszy lightdm.conf nie było T_T. Jeśli tak nie jest, nie ma sprawy, idź po kopię:

    sudo cp /usr/share/doc/lightdm/lightdm.conf /etc/lightdm/
    
  2. Jeśli to nie zadziała, może to oznaczać, że plik w / usr / share / doc / lightdm / jest skompresowany, więc:

    sudo gzip -d /usr/share/doc/lightdm/lightdm.conf.gz
    

    7a. Następnie przenieś plik do / etc / lightdm /

  3. Otwórz plik lightdm.conf (który powinien teraz znajdować się w / etc / lightdm /) i dodaj następującą sekcję poniżej sekcji [SeatDefaults], tak jak to:

    [SeatDefaults]
    greeter-setup-script=/path/to/your/loginMessage
    

    8a. Gdzie / path / to / your / loginMessage to miejsce, w którym umieściłeś plik wykonywalny utworzony wcześniej. Umieściłem mój w / usr / bin, więc mój wygląda tak:

    [SeatDefaults]
    greeter-setup-script=/usr/bin/loginmessage
    

    8b. Zapisz plik

  4. To powinno zrobić to dla lightdm. Możesz także utworzyć własny plik lightdm.conf i włożyć do niego powyższe.

    9a. Restart.

----------- GDM -------------------

  1. Testowałem tę wyskakującą „pętlę” na CenOS 7 i Ubuntu 14.04 z GDM. Chodzi o to, że lightdm.conf tak naprawdę nie pomaga w przypadku GDM, prawda?

  2. Cóż, istnieje obejście, które działa dla mnie (na razie).

  3. Otwórz plik / etc / gdm / Init / Default

    sudo vim /etc/gdm/Init/Default
    
  4. Idź na dół pliku.

  5. Tuż nad wyjściem 0 umieść:

    exec /path/to/your/message
    

    14a Gdzie / path / to / your / message jest ścieżką do twojej fajnej wiadomości logowania. Po zakończeniu powinno to wyglądać mniej więcej tak:

    fi
    exec /usr/bin/loginmessage
    exit 0
    

    14b. „Fi” i „exit 0” już tam są, po prostu wstaw część „exec / path / to / your / message”.

    14c. Zapisz i uruchom ponownie.

  6. Ponowne uruchomienie prawdopodobnie nie jest konieczne. Testuję te rzeczy w vm, więc łatwiej jest po prostu odbić maszynę.

  7. Jeśli są lepsze sposoby na zrobienie tego, jestem cały w uszach / oczach. Wiem, że gconf działa pęczniejąc w CentOS 6.x. Wiem, że dconf działa w CentOS 7, ale nie dostałem tego, czego chciałem. Żadna z rzeczy związanych z gconf nie działała dla mnie w Ubuntu, nawet po zainstalowaniu GDM i ponownej konfiguracji <- może to być po prostu ja.

Nathan Peek
źródło
2

Wyświetlenie komunikatu bezpośrednio na ekranie logowania może być niemożliwe. Możesz jednak wysłać wiadomość przed zalogowaniem. Dodaj do /etc/lightdm/lightdm.conf:

greeter-setup-script=xmessage -button ok -default ok -center "Hello world"

Zachowaj ostrożność, ponieważ zła opcja w tym pliku może przerwać procedurę rozruchu.
Mysz będzie niedostępna na tym etapie, ale będziesz mógł zamknąć wiadomość za pomocą Enter. xmessagemoże odczytać tekst wiadomości z pliku lub może mieć niestandardowy limit czasu. Sprawdź na stronie podręcznika dodatkowe opcje.
Możesz sprawdzić https://wiki.ubuntu.com/LightDM, aby uzyskać dodatkowe informacje na temat lightdm.confdostosowywania i powitania.

whtyger
źródło