From 2cc1c5b95ed93757459a3c9ad85ae29508bfc16d Mon Sep 17 00:00:00 2001 From: debianpepper Date: Tue, 14 May 2024 21:35:16 +0900 Subject: [PATCH] Added and modded settings Deleted the PepHub stuff, added in xdaily gui and move dthe calamres down to standard. Finally updated 540 hook Signed-off-by: debianpepper --- iso_configs/application/Pephub.desktop | 11 - .../hooks/normal/deb_64/0540-misc.hook.chroot | 20 +- .../__pycache__/bsconf.cpython-311.pyc | Bin 549 -> 0 bytes iso_configs/pmostools/peptools/hub.py | 577 ------------------ iso_configs/pmostools/peptools/hubconf.py | 68 --- .../peptools/images/peppermint-rimbw-48.png | Bin 12513 -> 0 bytes python_modules/conf.py | 10 +- python_modules/infra.py | 2 - 8 files changed, 11 insertions(+), 677 deletions(-) delete mode 100755 iso_configs/application/Pephub.desktop delete mode 100644 iso_configs/pmostools/peptools/__pycache__/bsconf.cpython-311.pyc delete mode 100755 iso_configs/pmostools/peptools/hub.py delete mode 100644 iso_configs/pmostools/peptools/hubconf.py delete mode 100644 iso_configs/pmostools/peptools/images/peppermint-rimbw-48.png diff --git a/iso_configs/application/Pephub.desktop b/iso_configs/application/Pephub.desktop deleted file mode 100755 index 55a4e0bd..00000000 --- a/iso_configs/application/Pephub.desktop +++ /dev/null @@ -1,11 +0,0 @@ -[Desktop Entry] -Version=1.0 -Type=Application -Name=Peppermint Hub -Exec=hub -Icon=/usr/share/pixmaps/peppermint-hub.png -Terminal=false -Categories=Settings -StartupNotify=True -Comment=Use the Hub to configure your system - diff --git a/iso_configs/hooks/normal/deb_64/0540-misc.hook.chroot b/iso_configs/hooks/normal/deb_64/0540-misc.hook.chroot index b7096137..a84e199e 100755 --- a/iso_configs/hooks/normal/deb_64/0540-misc.hook.chroot +++ b/iso_configs/hooks/normal/deb_64/0540-misc.hook.chroot @@ -1,28 +1,18 @@ #!/bin/bash -#git is needed for the git repos -apt install git --yes -#install pip3, needed for additional python modules -apt install --yes python3-pip -apt install --yes python3.11-venv -# Install the Luakit browser (used for pep tools) -apt install --yes luakit +# Install the Min browser (used for pep tools) +wget -P /opt https://github.com/minbrowser/min/releases/download/v1.32.1/min-1.32.1-amd64.deb +dpkg -i /opt/min-1.32.1-amd64.deb +apt-get install -f + # Install Plank apt install --yes plank # set the plymouth on boot plymouth-set-default-theme -R lines -# install the re keyring -dpkg -i /opt/pepconf/deb-multimedia-keyring_2016.8.1_all.deb - # install the Wallpapers apt install --yes pepermint-wallpapers -# Install desktop-base -apt install --yes desktop-base - - - # Set the desktop base theme # Remove it first diff --git a/iso_configs/pmostools/peptools/__pycache__/bsconf.cpython-311.pyc b/iso_configs/pmostools/peptools/__pycache__/bsconf.cpython-311.pyc deleted file mode 100644 index be19f2d27202ca0ca3fc30d7649015618db0551c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 549 zcmYjO!D`$v5S7V=YBpA5d4wc4aZfpx zUV2Q9IklAbX979-+8f+nOFQs|KW2mO*Z)Dtw=0*U+2YSepfwmJOZQ>SCy=VX zeqhi#BHn6)4$Gl}K@gI3Pfnq1|E#P(iaIQgc+)1FuNZBm$>N()i9DH7g%wDe$=I zW!d6pzu9%$znk4SM+LD%rRsPGzCeN0xHzk_tN$ZWeg z)b-8k>tz$(m~|@K{*LXFoBN*U%{!}Jcg|Y(l&wGc5q=NPPrikhLH{b~pZ3~e)+qTF D{vxDJ diff --git a/iso_configs/pmostools/peptools/hub.py b/iso_configs/pmostools/peptools/hub.py deleted file mode 100755 index 6324a23a..00000000 --- a/iso_configs/pmostools/peptools/hub.py +++ /dev/null @@ -1,577 +0,0 @@ -""" -* Author: "PepDebian(peppermintosteam@proton.me) -* -* License: SPDX-License-Identifier: GPL-3.0-or-later -* -* This is for the Hub GUI -""" -import tkinter as tk -import tkinter.ttk as ttk -import subprocess -import os -from tendo import singleton -import bsconf -import hubconf -import actions - -# This will get the logged in user -gusr = os.getlogin() -spath = "/home/" + gusr + "/.local/share/pmostools/peptools" - -# setting up window -pehub = bsconf.bbstyle -WINDOW_HEIGHT = 420 -WINDOW_WIDTH = 740 -pehub.resizable(False, False) -pehub.title('Peppermint Hub') -pehub.tk.call('wm', 'iconphoto', pehub._w, - tk.PhotoImage( - file=spath + '/images/peppermint-hub.png')) - - -def center_screen(): - """ gets the coordinates of the center of the screen """ - screen_width = pehub.winfo_screenwidth() - screen_height = pehub.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)) - pehub.geometry("{}x{}+{}+{}".format(WINDOW_WIDTH, - WINDOW_HEIGHT, x_cordinate, y_cordinate)) - - -def runxd(): - """Run the bash, x-terminal-emulator will attempt - to run the default terminal emulator of the system - """ - subprocess.Popen(["x-terminal-emulator", "-e", "sudo", "xDaily", "-i"]) - - - -def gnmhandle(): - """ handle the Gnome store""" - check_path = '/usr/bin/gnome-software' - if os.path.exists(check_path): - btngs.grid( - row=2, - column=0, - ipadx=10, - ipady=10, - padx=10, - pady=10, - sticky='nesw') - lblgs.grid(row=3, column=0, padx=0, pady=5) - else: - btngsw.grid( - row=2, - column=0, - ipadx=10, - ipady=10, - padx=10, - pady=10, - sticky='nesw') - lblgsw.grid(row=3, column=0, padx=0, pady=5) - - -def fphandle(): - """ Handle Flathub store """ - check_flatpak_path = '/usr/bin/flatpak' - if os.path.exists(check_flatpak_path): - btnsp.grid( - row=0, - column=0, - ipadx=10, - ipady=10, - padx=10, - pady=10, - sticky='nesw') - lblsp.grid(row=1, column=0) - check_gnome_path = '/usr/bin/gnome-software' - if os.path.exists(check_gnome_path): - btnfp.destroy() - lblfp.destroy() - else: - lblfp.grid(row=3, column=1, padx=0, pady=5) - btnfp.grid( - row=2, - column=1, - ipadx=10, - ipady=10, - padx=10, - pady=10, - sticky='nesw') - else: - lblfp.grid(row=3, column=1, padx=0, pady=5) - btnfp.grid( - row=2, - column=1, - ipadx=10, - ipady=10, - padx=10, - pady=10, - sticky='nesw') - - - -def sbphandle(): - """ Handle Snap Store """ - check_snap_path = '/usr/bin/gnome-software' - if os.path.exists(check_snap_path): - btnsw.destroy() - lblsw.destroy() - check_gnome_path = '/usr/bin/gnome-software' - if os.path.exists(check_gnome_path): - btnss.grid( - row=2, - column=2, - ipadx=10, - ipady=10, - padx=10, - pady=10, - sticky='nesw') - lblss.grid(row=3, column=2, padx=0, pady=5) - else: - if os.path.exists(check_snap_path): - lblss.destroy() - btnss.destroy() - btnsw.grid( - row=2, - column=2, - ipadx=10, - ipady=10, - padx=10, - pady=10, - sticky='nesw') - lblsw.grid(row=3, column=2, padx=0, pady=5) - else: - btnsw.grid( - row=2, - column=2, - ipadx=10, - ipady=10, - padx=10, - pady=10, - sticky='nesw') - lblsw.grid(row=3, column=2, padx=0, pady=5) - - -def xsetting_handle(): - """ Check to see what the desktop session is If its not xfce do not use - the xfce setting button or user groups - """ - check = os.environ.get('DESKTOP_SESSION') - using = check - if using == "xfce": - # xfce settings - btnxf = ttk.Button( - gfs, - text="XF", - cursor="hand2", - bootstyle="dark-outline", - image=hubconf.xf, - command=actions.osettingsmgr) - lblxf = ttk.Label(gfs, text=hubconf.lxf) - btnxf.grid( - row=4, - column=2, - ipadx=10, - ipady=10, - padx=10, - pady=10, - sticky='nesw') - lblxf.grid(row=5, column=2, padx=0, pady=5) - # User Groups - btnug = ttk.Button( - gfs, - text="UG", - cursor="hand2", - bootstyle="dark-outline", - image=hubconf.ug, - command=actions.ssug) - btnug.grid( - row=4, - column=1, - ipadx=10, - ipady=10, - padx=10, - pady=10, - sticky='nesw') - lblug.grid(row=5, column=1) - else: - pass - - -def debianbase(): - """Bring functions together""" - fphandle() - gnmhandle() - sbphandle() - - -def vdecide(): - """Decide Version logo to use""" - if os.path.exists("/etc/devuan_version"): - devuanbase() - elif os.path.exists("/etc/debian_version"): - debianbase() - - -# makes sure only a single instance is running -me = singleton.SingleInstance() -X = 1 -# Frame that manages system tools -gfr = tk.Frame(pehub) -gfr.grid(row=0, column=0, columnspan=2, ipadx=5, ipady=5, padx=10, pady=5) - -# Border fram for system tools -gfs = ttk.Labelframe(gfr, bootstyle="warning", text="General System Tools") -gfs.grid(row=0, column=0) - -# frame that manages the software tools -sfr = tk.Frame(pehub) -sfr.grid( - row=0, - column=3, - columnspan=2, - ipadx=5, - ipady=5, - padx=10, - pady=5, - sticky='n') - -# Border frame for software -sfs = ttk.Labelframe(sfr, bootstyle="warning", text="Software Tools") -sfs.grid(row=0, column=0) - - -########################### -###General System Tools#### -###Start################### -btnnc = ttk.Button( - gfs, - text="Network", - cursor="hand2", - bootstyle="dark-outline", - image=hubconf.nc, - command=actions.nhnm) -btnpr = ttk.Button( - gfs, - text="Printers", - cursor="hand2", - bootstyle="dark-outline", - image=hubconf.pr, - command=actions.nhpr) -btndu = ttk.Button( - gfs, - text="DU", - cursor="hand2", - bootstyle="dark-outline", - image=hubconf.du, - command=actions.ssdu) - -btnpa = ttk.Button( - gfs, - text="PA", - cursor="hand2", - bootstyle="dark-outline", - image=hubconf.pa, - command=actions.nhpav) -btnxd = ttk.Button( - gfs, - text="XD", - cursor="hand2", - bootstyle="dark-outline", - image=hubconf.xd, - command=runxd) -btnum = ttk.Button( - gfs, - text="UM", - cursor="hand2", - bootstyle="dark-outline", - image=hubconf.um, - command=actions.sssi) - -lblnc = ttk.Label(gfs, text=hubconf.lnc) -lblpr = ttk.Label(gfs, text=hubconf.lpr) -lbldu = ttk.Label(gfs, text=hubconf.ldu) -lblug = ttk.Label(gfs, text=hubconf.lug) -lblpa = ttk.Label(gfs, text=hubconf.lpa) -lblxd = ttk.Label(gfs, text=hubconf.lxd) -lblhb = ttk.Label(gfs, text=hubconf.lhb) -lblsi = ttk.Label(gfs, text=hubconf.lsi) -lblum = ttk.Label(gfs, text=hubconf.lum) - -btnnc.grid( - row=0, - column=0, - ipadx=10, - ipady=10, - padx=10, - pady=10, - sticky='nesw') -lblnc.grid(row=1, column=0) -btnpr.grid( - row=0, - column=1, - ipadx=10, - ipady=10, - padx=10, - pady=10, - sticky='nesw') -lblpr.grid(row=1, column=1) -btndu.grid( - row=0, - column=2, - ipadx=10, - ipady=10, - padx=10, - pady=10, - sticky='nesw') -lbldu.grid(row=1, column=2) -lblhb.grid(row=3, column=0) - - -btnpa.grid( - row=4, - column=0, - ipadx=10, - ipady=10, - padx=10, - pady=10, - sticky='nesw') -lblpa.grid(row=5, column=0, padx=0, pady=5) -btnum.grid( - row=2, - column=1, - ipadx=10, - ipady=10, - padx=10, - pady=10, - sticky='nesw') -lblum.grid(row=3, column=1, padx=0, pady=5) - -btnxd.grid( - row=2, - column=2, - ipadx=10, - ipady=10, - padx=10, - pady=10, - sticky='nesw') -lblxd.grid(row=3, column=2) - - -########################### -###General System Tools#### -###End##################### - -def hblock(): - """ Take care of Hblock""" - file_check= open('/etc/hosts', 'r') - read_file = file_check.read() - - word = 'Blocked domains: 0' - if word in read_file: - btnhbon = ttk.Button( gfs, - text="hbon", - cursor="hand2", - bootstyle="dark-outline", - image=hubconf.hbon, - command=hboff - ) - btnhbon.lower() - btnhboff = ttk.Button( gfs, - text="hboff", - cursor="hand2", - bootstyle="dark-outline", - image=hubconf.hboff, - command=hbon - ) - btnhboff.grid( row=2, - column=0, - ipadx=10, - ipady=10, - padx=10, - pady=10, - sticky='nesw' - ) - else: - btnhboff = ttk.Button( gfs, - text="hboff", - cursor="hand2", - bootstyle="dark-outline", - image=hubconf.hboff, - command=hbon - ) - btnhboff.lower() - btnhbon = ttk.Button( gfs, - text="hbon", - cursor="hand2", - bootstyle="dark-outline", - image=hubconf.hbon, - command=hboff - ) - btnhbon.grid(row=2, - column=0, - ipadx=10, - ipady=10, - padx=10, - pady=10, - sticky='nesw' - ) - - -def hbon(): - """ Turn on hblock """ - subprocess.Popen(["x-terminal-emulator", "-e", "hblock", "exit"]) - hblock() - - - -def hboff(): - """ Turn off hblock """ - subprocess.Popen(["x-terminal-emulator", "-e", "hblock", "-S", - "none", "-D", "none", "exit"]) - hblock() - - - - -########################### -######Software Start####### -########################### -btnsp = ttk.Button( - sfs, - text="sp", - cursor="hand2", - bootstyle="dark-outline", - image=hubconf.sp, - command=actions.packages) -btnah = ttk.Button( - sfs, - text="ah", - cursor="hand2", - bootstyle="dark-outline", - image=hubconf.ah, - command=actions.ssai) -btnsc = ttk.Button( - sfs, - text="sc", - cursor="hand2", - bootstyle="dark-outline", - image=hubconf.sc, - command=actions.ssspm) -btnss = ttk.Button( - sfs, - text="ss", - cursor="hand2", - bootstyle="dark-outline", - image=hubconf.ss, - command=actions.ssst) -btnsw = ttk.Button( - sfs, - text="ss", - cursor="hand2", - bootstyle="dark-outline", - image=hubconf.ss, - command=actions.ssss) -btngs = ttk.Button( - sfs, - text="gs", - cursor="hand2", - bootstyle="dark-outline", - image=hubconf.gs, - command=actions.ssgn) -btngsw = ttk.Button( - sfs, - text="gsw", - cursor="hand2", - bootstyle="dark-outline", - image=hubconf.gs, - command=actions.ssgns) -btnfp = ttk.Button( - sfs, - text="fp", - cursor="hand2", - bootstyle="dark-outline", - image=hubconf.fp, - command=actions.ssfh) - - -lblsp = ttk.Label(sfs, text=hubconf.lsp) -lblah = ttk.Label(sfs, text=hubconf.lah) -lblsc = ttk.Label(sfs, text=hubconf.lsc) -lblss = ttk.Label(sfs, text=hubconf.lss) -lblsw = ttk.Label(sfs, text=hubconf.lssw) -lblgs = ttk.Label(sfs, text=hubconf.lgs) -lblgsw = ttk.Label(sfs, text=hubconf.lgsw) -lblfp = ttk.Label(sfs, text=hubconf.lfp) - -btnsp.grid( - row=0, - column=0, - ipadx=10, - ipady=10, - padx=10, - pady=10, - sticky='nesw') -lblsp.grid(row=1, column=0) -btnah.grid( - row=0, - column=1, - ipadx=10, - ipady=10, - padx=10, - pady=10, - sticky='nesw') -lblah.grid(row=1, column=1) -btnsc.grid( - row=0, - column=2, - ipadx=10, - ipady=10, - padx=10, - pady=10, - sticky='nesw') -lblsc.grid(row=1, column=2) - - -###Functions needed for the software sorting### - -def devuanbase(): - """set up for a Devuan Build""" - lblss.destroy() - btnss.destroy() - btnfp.grid( - row=2, - column=1, - ipadx=10, - ipady=10, - padx=10, - pady=10, - sticky='nesw') - lblfp.grid(row=3, column=1, padx=0, pady=5) - fphandle() - btnsp.grid( - row=0, - column=0, - ipadx=10, - ipady=10, - padx=10, - pady=10, - sticky='nesw') - lblsp.grid(row=1, column=0) - gnmhandle() - - - -hblock() -xsetting_handle() -# call Center screen -center_screen() -# start the version process -vdecide() -# set the block status -# run the applictaion -pehub.mainloop() diff --git a/iso_configs/pmostools/peptools/hubconf.py b/iso_configs/pmostools/peptools/hubconf.py deleted file mode 100644 index 61226d92..00000000 --- a/iso_configs/pmostools/peptools/hubconf.py +++ /dev/null @@ -1,68 +0,0 @@ -""" -* Author: "PepDebian(peppermintosteam@proton.me) -* -* License: SPDX-License-Identifier: GPL-3.0-or-later -* -* The hub config file should be used for the over all button style and design -* of the hub -""" -import os -from tkinter import PhotoImage - -# This will get the logged in user -gusr = os.getlogin() -spath = "/home/" + gusr + "/.local/share/pmostools/peptools" - - - -#button icons. -###General System icons### -nc = PhotoImage(file="/usr/share/pixmaps/network-wired.png") -pr = PhotoImage(file="/usr/share/pixmaps/gnome-dev-printer.png") -du = PhotoImage(file="/usr/share/pixmaps/drive-harddisk-system.png") -ug = PhotoImage(file="/usr/share/pixmaps/stock_people.png") -pa = PhotoImage(file="/usr/share/pixmaps/stock_music-library.png") -xd = PhotoImage(file= spath + '/images/xd.png') -hbon = PhotoImage(file="/usr/share/pixmaps/hblockon.png") -hboff = PhotoImage(file="/usr/share/pixmaps/hblock.png") -si = PhotoImage(file="/usr/share/pixmaps/gnome-session.png") -um = PhotoImage(file="/usr/share/pixmaps/update-manager.png") -xf = PhotoImage(file="/usr/share/pixmaps/applications-system.png") - - - -##label text -lnc = "Network" -lpr = "Printers" -ldu = "Disk Utilities" -lug = "User & Groups" -lpa = "Pulse Audio" -lxd = "xDaily" -lhb = "hBlock" -lsi = "Update Mgr" -lum = "System Info" -lxf = "xfce Settings" - - -sp = PhotoImage(file= spath + '/images/peppermint-inst-48.png') -ah = PhotoImage(file="/usr/share/pixmaps/ai.png") -sc = PhotoImage(file="/usr/share/pixmaps/synaptic.png") -ss = PhotoImage(file="/usr/share/pixmaps/snap.png") -gs = PhotoImage(file="/usr/share/pixmaps/gnome-software.png") -fp = PhotoImage(file="/usr/share/pixmaps/flat.png") - - -lsp = "Suggested" -lah = "App Image Hub" -lsc = "Synaptic" -lss = "Snap Store" -lssw = "Snap Web Store" -lgs = "Gnome Store" -lgsw = "Gnome Web Store" -lfp = "Flat hub" - - -lmf = "--The PepHub is a central place that is used to manage the build." -" It includes tools that are not readily available in the XFCE settings" -" manager, Some of these tools are built and maintained by the Peppermint" -" team, others are system utilities." diff --git a/iso_configs/pmostools/peptools/images/peppermint-rimbw-48.png b/iso_configs/pmostools/peptools/images/peppermint-rimbw-48.png deleted file mode 100644 index ac51398fe22acb89df5fdae77730db043d12606d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12513 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