#!/bin/bash
##
## RJP 27.3.2024
# An alternative way to check, install and remove packages
#
# 2.4.2024 Version for PCLinuxOS
# 3.4.2024 small improments
# 29.5.2026 apt-get changed with dnf and package selection updated. Also hold option added install and remove entries
# This is using ftp.fau.de repo, which shout be the same as apt-get repo
# 2.6.2026 Fork from pclos-helper


touch ~/.Xresources
echo ' ! Use a truetype font and size.
xterm*faceName: Monospace ' | grep -xFv -f $HOME/.Xresources >> $HOME/.Xresources
echo 'xterm*faceSize: 14 ' | grep -xFv -f $HOME/.Xresources >> $HOME/.Xresources
xrdb -merge ~/.Xresources

dnf list \* | grep -e "task-mate" -e "task-lxde" -e "task-kde" -e "task-icewm" -e "task-enlightment" -e "task-lxqt" -e "task-openbox" -e "task-samba" -e "task-scanning" -e "task-printing" -e "task-multimedia" -e "task-lamp"> /tmp/mega.txt

dnf list \* | grep -e "gimp" -e "kolourpaint" -e "krita" -e "xpaint" -e "scribus" -e "inkscape" -e "digikam" -e "gphoto" -e "gtkam" -e "gthumb" -e "feh" -e "gwenview" -e "pinta" > /tmp/graphicks.txt

dnf list \* | grep -e "amarok" -e "audacious" -e "audacity" -e "banshee" -e "clementine" -e "gradio" -e "juk" -e "mpv" -e "xmms" -e "rhythmbox" -e "xine" -e "spotify" -e "pulseaudio" > /tmp/audio.txt

dnf list \* | grep -e "handbrake" -e "hypnotix" -e "kaffeine" -e "kodi" -e "mplayer" -e "IPTV" -e "vlc" -e "mpv" -e "xine" -e "totem" -e "xine" -e "transmageddon" -e "yt-dlp" > /tmp/video.txt

dnf list \* | grep -e "avidemux" -e "cinelerra" -e "gnome-subtitles" -e "kdenlive" -e "kino" -e "lightworks" -e "lives" -e "lumiera" -e "natron" -e "pitivi" -e "recordmydesktop" -e "shotcut" -e "subtitleeditor" -e "subtitleeditor" -e "ssr" -e "ssr" > /tmp/video-editors.txt

dnf list \* | grep -e "firefox" -e "galeon" -e "iceweasel" -e "palemoon" -e "seamonkey" -e "brave" -e "chrome" -e "chromium" -e "opera" -e "vivaldi" -e "epiphany" -e "konqueror" -e "midori" -e "netsurf" -e "links" -e "lynx" > /tmp/browsers.txt


dnf list \* | grep -e "claws" -e "evolution" -e "kmail" -e "mailody" -e "thunderbird" -e "mutt" -e "seamonkey"  > /tmp/email.txt

dnf list \* | grep -e "libreoffice" -e "lomanager" -e "onlyoffice" -e "koffice" -e "abiword" -e "calligra" -e "gnumeric" -e "sunbird" -e "glabels" > /tmp/office.txt

dnf list \* | grep -e "guvcview" -e "cheese" -e "kamoso" -e "kamerka" > /tmp/webcam.txt

dnf list \* | grep -e "ftp" -e "filezilla" > /tmp/ftp.txt

dnf list \* | grep -e "ufw" > /tmp/firewall.txt


echo '

## Workable /etc/repo.d/default.repo file is  ###

[kde6]
name="PCLinuxOS KDE 6 Repo"
baseurl=https://ftp.fau.de/pclinuxos/apt/pclinuxos/64bit/RPMS.kde6
gpgcheck=0
type=rpm-md
enabled=1

[kernel]
name="PCLinuxOS Kernel Repo"
baseurl=https://ftp.fau.de/pclinuxos/apt/pclinuxos/64bit/RPMS.kernel
gpgcheck=0
type=rpm-md
enabled=0

[mate]
name="PCLinuxOS MATE Repo"
baseurl=https://ftp.fau.de/pclinuxos/apt/pclinuxos/64bit/RPMS.mate
gpgcheck=0
type=rpm-md
enabled=1

[xfce4]
name="PCLinuxOS XFce4 Repo"
baseurl=https://ftp.fau.de/pclinuxos/apt/pclinuxos/64bit/RPMS.xfce4
gpgcheck=0
type=rpm-md
enabled=1

[x86_64]
name="PCLinuxOS Main Repo"
baseurl=https://ftp.fau.de/pclinuxos/apt/pclinuxos/64bit/RPMS.x86_64
gpgcheck=0
type=rpm-md
enabled=1

[test]
name="PCLinuxOS Test Repo"
baseurl=https://ftp.fau.de/pclinuxos/apt/pclinuxos/64bit/RPMS.test
gpgcheck=0
type=rpm-md
enabled=0

[nvidia340]
name="PCLinuxOS nvidia340 Repo"
baseurl=https://ftp.fau.de/pclinuxos/apt/pclinuxos/64bit/RPMS.nvidia340
gpgcheck=0
type=rpm-md
enabled=0

[nvidia470]
name="PCLinuxOS nvidia470 Repo"
baseurl=https://ftp.fau.de/pclinuxos/apt/pclinuxos/64bit/RPMS.nvidia470
gpgcheck=0
type=rpm-md
enabled=0

[nvidia525]
name="PCLinuxOS nvidia525 Repo"
baseurl=https://ftp.fau.de/pclinuxos/apt/pclinuxos/64bit/RPMS.nvidia525
gpgcheck=0
type=rpm-md
enabled=0

[unstable]
name="PCLinuxOS Unstable Repo"
baseurl=https://ftp.fau.de/pclinuxos/apt/pclinuxos/64bit/RPMS.unstable
gpgcheck=0
type=rpm-md
enabled=0
' > /tmp/fixrepo.txt

1=$({                                   
echo '#!/bin/bash
##time=$(date "+%F-%H-%M-%S")
RPMLIST=$(rpm -qa --last > /tmp/Update_history.txt)
sleep 5
cat /tmp/Update_history.txt | yad --list --title $"Search Results" --width=1000 --height=500 --text "INFORMATION" --column "Search Results" --button=OK:1
'
} > /tmp/history) 


2=$({ 
echo '#!/bin/bash
PROGRAM=`yad --center --width=700 --height=100 --title=$"Install Program" --text-align=center --text="Program you want to install " --entry --entry-label=SEARCH --entry-text=""`
if [ $? = 0 ];
then
xterm -hold -e su -c "dnf install $PROGRAM " root 
else exit 0
fi '
} > /tmp/install) 


3=$({ 
echo '#!/bin/bash
PROGRAM=`yad --center --width=500 --height=100 --text-align=center --text="Program you want to remove" --entry --entry-label=is --entry-text=""`
if [ $? = 0 ];
then
xterm -hold -e su -c "dnf remove $PROGRAM " root
fi'
} > /tmp/remove)

4=$({ 
echo '#!/bin/bash
PROGRAM=`yad --center --width=500 --height=100 --text-align=center --text="Program you want to search" --entry --entry-label=is --entry-text=""`
if [ $? = 0 ];
then
xterm -hold -e "dnf search $PROGRAM " 
fi'
} > /tmp/search)



5=$({ 
echo '#!/bin/bash
yad --center --width=400 --height=100 --title=$"Update Manager" --text-align=center --text="Update your system?"
if [ $? = 0 ];
then
xterm -hold -e su -c "dnf update && dnf upgrade " root
fi'
} > /tmp/update)

6=$({ 
echo '
#!/bin/bash
xterm -e "dnf list > /tmp/aptlist "
yad --list --width=1500 --height=500  \
--button=exit:1 \
--column="All available and installed"  < /tmp/aptlist
'
} > /tmp/available)

7=$({ 
echo '#!/bin/bash
yad  --list --title=$"Select Programs to Install" --width=800 --height=500 --checklist \
--button="Select programs and then run Install selected packages from the main menu":0 --button=Exit:1 \
--column="Select for installation" \
--column=Package < /tmp/list > /tmp/install2 \
--print-column=2 --separator= && \
--print --filename=/tmp/install2
echo $(cat /tmp/install2) > /tmp/install3
'
} > /tmp/packages)

8=$({ 
echo '#!/bin/bash
xterm -hold -e su -c "dnf install $(cat /tmp/install3) " root
sleep 1

'
} > /tmp/multi)

9=$({ 
echo 'false
chromium-browser
false
firefox
false
dillo-browser
false
otter-browser
false
seamonkey
false
etherape
false
conky
false
icewm
false
idesk
false
gimp
false
caja
false
pluma
false
atril
false
eom
false
engrampa
false
mate-terminal
false
caja-open-terminal
false
mate-utils
false
xterm
false
vlc
false
mpv
false
smplayer
false
audacious
false
audacious-codecs
false
audacity
false
k3b
false
pdfarranger
false
geany
false
thunderbird
false
gftp
false
xsane
false
scribus
false
kdenlive
false
grsync
false
rpm-installer
false
gufw
false
task-lxde
'
} > /tmp/list)




10=$({ 
echo '#!/bin/bash
yad --center --width=400 --height=100 --title=$"Set correct locale" --text-align=center --text="Set correct locale"
if [ $? = 0 ];
then
xterm -e su -c "addlocale --no-updatetest" root 
yad --center --width=400 --height=100 --title=$"addlocale has run" --text-align=center --text="addlocale has run"
fi'
} > /tmp/locale)

11=$({ 
echo '#!/bin/bash
yad --center --width=400 --height=100 --title=$"Update LibreOffice" --text-align=center --text="Update LibreOffice"
if [ $? = 0 ];
then
pkexec lomanager
yad --center --width=400 --height=100 --title=$"Ready" --text-align=center --text="Ready "
fi'
} > /tmp/lomanager)


chmod +x /tmp/history
chmod +x /tmp/install
chmod +x /tmp/remove
chmod +x /tmp/search
chmod +x /tmp/update
chmod +x /tmp/available
chmod +x /tmp/packages
chmod +x /tmp/multi
chmod +x /tmp/locale
chmod +x /tmp/lomanager


#!/bin/bash
#
yad --form --columns=4 --rows=6 --width=1000 --title=$"EASY DNF PACKAGE HELPER" --text="EASY DNF PACKAGE HELPER:" \
\
--field="RPM history (this takes time)":fbtn "/tmp/./history " \
--field="Program Installer":fbtn "/tmp/./install " \
--field="Program Remover":fbtn "/tmp/./remove " \
--field="Program search":fbtn "/tmp/./search " \
--field="Selection for package installation":fbtn "/tmp/./packages " \
--field="Install selected packages":fbtn "/tmp/./multi " \
--field="Install Updates":fbtn "/tmp/./update " \
--field="All available packages (this takes time)":fbtn "/tmp/./available " \
--field="List Mega packages":fbtn "xdg-open /tmp/mega.txt " \
--field="List Audio packages":fbtn "xdg-open /tmp/audio.txt " \
--field="List Video packages":fbtn "xdg-open /tmp/video.txt " \
--field="List Video Editor packages":fbtn "xdg-open /tmp/video-editors.txt " \
--field="List Browser packages":fbtn "xdg-open /tmp/browsers.txt " \
--field="List Email packages":fbtn "xdg-open /tmp/email.txt " \
--field="List Office packages":fbtn "xdg-open /tmp/office.txt " \
--field="List Webcam packages":fbtn "xdg-open /tmp/webcam.txt " \
--field="List FTP packages":fbtn "xdg-open /tmp/ftp.txt " \
--field="Workable default.repo file":fbtn "xdg-open /tmp/fixrepo.txt " \
--field="Set correct locale":fbtn "/tmp/./locale " \
--field="Update LibreOffice":fbtn "/tmp/./lomanager " \
--button=Exit:1  \

sleep 2
cd /tmp && rm install aptlist install2 remove available install3 results list locale update fixrepo.txt lomanager  Update_history.txt history multi packages
audio.txt mega.txt video-editors.txt browsers.txt ftp.txt office.txt video.txt email.txt graphicks.txt webcam.txt search


