다음 설정에서이를 수행하면 반투명 창이 생성되어 임의의 시간 동안 유지됩니다.
각 사용자 에게 최소한 읽기 권한 이 있는 (임의의) 디렉토리에서 각 사용자의 사용자 이름 (로그인 이름)으로 정확히 이름이 지정된 메시지 파일 (예 : 확장자 없음)을 만듭니다.
jacob
메시지로 파일에 텍스트를 추가하십시오. 새 메시지 를 추가하면로 시작 ###
하면 스크립트가 마지막 메시지를 자동으로 표시합니다. 텍스트에는 원하는 내용이 포함될 수 있으며 파일에 넣은 것과 똑같이 보입니다.
예제 파일은 다음과 같습니다.
Vraag:
Een aap op een fiets, hoe vind je zoiets?
Opdracht:
Geef antwoord op de vraag!
###
Vraag:
Hoe is de koffie vandaag?
Opdracht:
Zet het zelf even als het niet te drinken is!
메시지는 다음과 같습니다.
아래 스크립트를 빈 파일로 복사하고 스크립트의 헤드 섹션에서 사용자 메시지를 저장하는 폴더의 경로를 편집하십시오. 스크립트를 show_personalmessage
(예) 와 같이 저장하십시오 (예 : 실행 파일/usr/local/bin
이어야 함 $PATH
(!) (확장자 없음)
#!/usr/bin/env python3
import subprocess
import os
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import GObject, Gtk, Gdk, Pango
from threading import Thread
import time
import getpass
# --- set the path to the message files below, filename = username
filedir = "/home/jacob/Bureaublad"
# --- set the time to show the window below
showtime = 15
# ---
# don't change anything below
user = getpass.getuser()
currmessage = os.environ["HOME"]+"/latest_message.txt"
f = filedir+"/"+user
text = "Welcome "+user+"\n\n"+open(f).read().split("###")[-1]
open(currmessage, "wt").write(text)
class Splash(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title="splashtitle")
maingrid = Gtk.Grid()
self.add(maingrid)
maingrid.set_border_width(80)
# set text for the spash window
label = Gtk.Label(text)
label.modify_font(Pango.FontDescription('Ubuntu 12'))
maingrid.attach(label, 0, 0, 1, 1)
self.stop = Thread(target=self.close_window)
self.stop.start()
def close_window(self):
time.sleep(showtime)
Gtk.main_quit()
def splashwindow():
window = Splash()
window.set_decorated(False)
window.set_resizable(False)
window.override_background_color(Gtk.StateType.NORMAL, Gdk.RGBA(0,0,0,1))
window.modify_fg(Gtk.StateFlags.NORMAL, Gdk.color_parse("grey"))
window.set_opacity(0.8)
window.set_position(Gtk.WindowPosition.CENTER)
window.show_all()
GObject.threads_init()
Gtk.main()
splashwindow()
에 런처 만들기 /etc/xdg/autostart
[Desktop Entry]
Type=Application
Name=Splash
Exec=/bin/bash -c "sleep 10 && show_personalmessage"
수면 (10)은 데스크탑이 "준비"되어 창을 열도록하는 것이다.
설명
- 로그인시 각 사용자 에 대한
/etc/xdg/autostart
실행 명령의 실행 프로그램
- 그런 다음 시작 프로그램은 명령 (
show_personalmessage
) 을 실행하여 정의한 디렉토리에서 개인화 된 메시지를 찾습니다. 또한. 최신 메시지가 사용자의 홈 디렉토리로 복사됩니다.
- 필요한 경우, 메시지 경로는 변경 될 수 있으며
getpass
-module 을 사용하여 사용자별로 지정할 수도 있으므로 스크립트 (창)는 디렉토리에서 사용자 별 명명 된 파일을 찾습니다. 필요한 경우 언급하십시오.
또한
(Gtk) 창
- 마치 배경의 일부인 것처럼 모든 것 아래에 머물도록 만들 수 있습니다.
- 모든 것 위에 머물 수 있습니다
- 가까이 만들 수 있습니다
등
편집하다
chat 에서 논의 된 것처럼 몇 가지 "영구적 인"섹션을 포함 할 수있는 스크립트 버전 아래 에서 메시지 작성 시간을 절약하려면 :
premsg
'환영 사용자 x'와 메시지 본문 바로 아래에 있어야합니다.
postmsg
메시지 하단에 표시됩니다.
""
값 으로 설정하여 두 섹션을 모두 없음으로 설정할 수 있습니다 .
스크립트
#!/usr/bin/env python3
import subprocess
import os
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import GObject, Gtk, Gdk, Pango
from threading import Thread
import time
import getpass
# --- set the path to the message files below, filename = username
filedir = "/path/to/message_directory"
# --- set the time to show the window below
showtime = 15
# --- set pre-message below. set premessage = "" for no pre-message
premsg = """We assume you read all 3782 instruction pages on how to use
Ubuntu before you push any button on this computer.
"""
# --- set post-message below. set postmessage = "" for no post-message
postmsg = """Before you go to sleep tonight, make sure to brush your
teeth for at least half an hour
"""
# --- don't change anything below
user = getpass.getuser()
currmessage = os.environ["HOME"]+"/latest_message.txt"
f = filedir+"/"+user
text = "Welcome "+user+"\n\n"+premsg+"\n"+open(f).read().split("###")[-1]+"\n"+postmsg
open(currmessage, "wt").write(text)
class Splash(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title="splashtitle")
maingrid = Gtk.Grid()
self.add(maingrid)
maingrid.set_border_width(80)
# set text for the spash window
label = Gtk.Label(text)
label.modify_font(Pango.FontDescription('Ubuntu 12'))
maingrid.attach(label, 0, 0, 1, 1)
self.stop = Thread(target=self.close_window)
self.stop.start()
def close_window(self):
time.sleep(showtime)
Gtk.main_quit()
def splashwindow():
window = Splash()
window.set_decorated(False)
window.set_resizable(False)
window.override_background_color(Gtk.StateType.NORMAL, Gdk.RGBA(0,0,0,1))
window.modify_fg(Gtk.StateFlags.NORMAL, Gdk.color_parse("white"))
window.set_opacity(0.8)
window.set_position(Gtk.WindowPosition.CENTER)
window.show_all()
GObject.threads_init()
Gtk.main()
splashwindow()
노트
물론 메시지 본문 과 마찬가지로 , yoy는 파일에서 사전 및 사후 메시지를 읽도록 스크립트를 변경할 수 있으므로 유지 관리가 훨씬 편리합니다. 대답이 간단하기 때문에 이와 같이 했습니까?