#!/usr/bin/env python3 import os import subprocess as sp import tkinter as tk import sqlite3 from tkinter import * from tkinter import ttk from tkinter import font from ttkthemes import ThemedTk from tkinter import PhotoImage from tendo import singleton #database connection string conn = sqlite3.connect('/opt/pypep/dbpep/welval.db') pcur = conn.cursor() #Create the table pcur.execute(""" CREATE TABLE IF NOT EXISTS welchk ( id integer PRIMARY KEY AUTOINCREMENT, nosee text); """) #setting up window pwel = ThemedTk(theme='clam') window_height = 630 window_width = 750 pwel.title('Welcome to Peppermint') pwel.tk.call('wm', 'iconphoto', pwel._w, tk.PhotoImage(file='/usr/share/pixmaps/peppermint-old.png')) pwel['bg']='#2f2f2f' #keep only instance at a time me = singleton.SingleInstance() #logo for the splash lpath = PhotoImage(file = '/opt/pypep/peppermint-old.png') lg = tk.Label(pwel, image=lpath, width=128, height=128, borderwidth=0) lg.place(x=10, y=10) lpath2 = PhotoImage(file = '/opt/pypep/peppermint-word-white.png') lg2 = tk.Label(pwel, image=lpath2, width=600, height=80, borderwidth=0) lg2.place(x=140, y=35) #main title style spmt = ttk.Style() spmt.configure("#F62817.TLabel", foreground ="#b12026", background ="#2f2f2f", font = ("Helvetica", '32', 'bold') ) #main information syles subpmt = ttk.Style() subpmt.configure("Whiteb.TLabel", foreground ="#ffffff", background ="#2f2f2f", font = ('Helvetica', '14', 'bold') ) detpmt = ttk.Style() detpmt.configure("det.TLabel", foreground ="#ffffff", background ="#2f2f2f", font = ('Helvetica', '12') ) #style the buttons stbnt = ttk.Style() stbnt.configure('pep.TButton', font = ('Helvetica', '14', 'bold')) stbnt.map("pep.TButton", foreground=[('!active', '#F62817'),('pressed', '#2f2f2f'), ('active', 'white')], background=[ ('!active','#2f2f2f'),('pressed', '#2f2f2f'), ('active', '#2f2f2f')], ) cbtn = ttk.Style() cbtn.map("hpep.TButton", foreground=[('!active', '#F62817'),('pressed', 'white'), ('active', '#F62817')], background=[ ('!active','#2f2f2f'),('pressed', '#2f2f2f'), ('active', '#2f2f2f')] ) ###Verbiage and titel Placements### lblpmwelttl = ttk.Label(pwel, style="Whiteb.TLabel", text="Welcome to Peppermint OS") lblpmwelttl.place(x=10, y=150) lblinfo1 = ttk.Label(pwel, style="det.TLabel", text="Make system changes, and customizations", wraplength=500) lblinfo1.place(x=235, y=450) lblinfo4 = ttk.Label(pwel, style="det.TLabel",text="Select from a variety of web browsers to install", wraplength=720) lblinfo4.place(x=235, y=270) lblinfo5 = ttk.Label(pwel, style="det.TLabel",text="Learn how to use ICE to create and manage your SSB's", wraplength=720) lblinfo5.place(x=235, y=390) lblinfo10 = ttk.Label(pwel, style="det.TLabel",text="Download all the Peppermint Extras", wraplength=720) lblinfo10.place(x=235, y=330) lblinfo8 = ttk.Label(pwel, style="det.TLabel",text="We hope you enjoy -Everything you need & nothing you don't-", wraplength=720) lblinfo8.place(x=10, y=180) lblinfo9 = ttk.Label(pwel, style="det.TLabel",text="~ @PCNetSpec 1961-2020", wraplength=720) lblinfo9.place(x=10, y=210) lblinfo11 = ttk.Label(pwel, style="det.TLabel",text="Read about what has changed", wraplength=720) lblinfo11.place(x=235, y=510) lblinfo12 = ttk.Label(pwel, style="Whiteb.TLabel",text="Community Links", wraplength=720) lblinfo12.place(x=10, y=550) #Functions to open the other pythons files. or close this screen ### def pks (): # pwel.destroy() os.system('pkexec python3 /opt/pypep/peppackages.py') def pge (): pwel.destroy() os.system('python3 /opt/pypep/pge.py') #open the pep hub def hub (): # pwel.destroy() os.system('python3 /opt/pypep/hub.py &') #make your own path Closed windows def mop (): pwel.destroy() #open the ice tutorial script def tut (): # pwel.destroy() os.system('python3 /opt/pypep/tutorial.py &') def rls (): # pwel.destroy() os.system('python3 /opt/pypep/release.py &') def dshow(): #first see if the window should show or not. pcur.execute("SELECT COUNT(*) FROM welchk WHERE nosee ='yes'") crresult = pcur.fetchone() if int(crresult[0]) > 0: #close window pwel.destroy() else: #PlaceHolder to do nothing pass def setdshow(): nosinsert = """ INSERT INTO welchk(nosee) VALUES ('yes');""" pcur.execute(nosinsert) conn.commit() cbhide['text'] = 'No Show Set' def twr (): # pwel.destroy() os.system('python3 /opt/pypep/twtr.py &') def fb (): # pwel.destroy() os.system('python3 /opt/pypep/fb.py &') def frm (): # pwel.destroy() os.system('python3 /opt/pypep/frm.py &') def center_screen(): """ gets the coordinates of the center of the screen """ global screen_height, screen_width, x_cordinate, y_cordinate screen_width = pwel.winfo_screenwidth() screen_height = pwel.winfo_screenheight() # Coordinates of the upper left corner of the window to make the window appear in the center x_cordinate = int((screen_width/2) - (window_width/2)) y_cordinate = int((screen_height/2) - (window_height/2)) pwel.geometry("{}x{}+{}+{}".format(window_width, window_height, x_cordinate, y_cordinate)) #Social Icons icotwit = PhotoImage(file = "/usr/share/pixmaps/twtter.png") icotfb = PhotoImage(file = "/usr/share/pixmaps/fb.png") icotfm = PhotoImage(file = "/usr/share/pixmaps/peppermint-fm-20.png") ###All the buttons and Placements## btncore = ttk.Button(text="Open Pephub", style="pep.TButton", command=hub, width=20, cursor="hand2") btncore.place(x=10, y=440) bttut = ttk.Button(text='ICE Tutorial', command=tut, style="pep.TButton", width=20, cursor="hand2" ) bttut.place(x=10, y=380) btpge = ttk.Button(text='Peppermint Extras', command=pge, style="pep.TButton", width=20, cursor="hand2" ) btpge.place(x=10, y=320) btpks = ttk.Button(text='Install a Web Browser', command=pks, style="pep.TButton", width=20, cursor="hand2" ) btpks.place(x=10, y=260) btnrn = ttk.Button(text="Release Notes", style="pep.TButton", command=rls, width=20, cursor="hand2") btnrn.place(x=10, y=500) btntwit = ttk.Button( width = '5', style="pep.TButton", image = icotwit ,cursor="hand2", command=twr) btntwit.place(x=15, y=575) btnfb = ttk.Button( width = '5', style="pep.TButton", image = icotfb ,cursor="hand2", command=fb) btnfb.place(x=70, y=575) btnfm = ttk.Button( width = '5', style="pep.TButton", image = icotfm ,cursor="hand2", command=frm) btnfm.place(x=125, y=575) #button to hide. cbhide = ttk.Button (pwel, text = "Don't Show Again", style="hpep.TButton", command=setdshow) cbhide.place(x=600, y=150) #close db connection pcur.close #call Center screen center_screen() #Run this window# dshow() pwel.mainloop()