For those interested, here is the bacon code for the gui.
REM Copyright 2012 Tony Brijeski <tb6517@yahoo.com>
REM Gui frontend to remastersys using gtk
REM
REM Code Snippets and help from Pjot and vovchik from the Bacon Forum
REM
IMPORT "vte_terminal_new" FROM "libvte.so.9" TYPE long
IMPORT "vte_terminal_reset(long,int,int)" FROM "libvte.so.9" TYPE void
IMPORT "vte_terminal_fork_command(long,char*,char**,char**,char*,int,int,int)" FROM "libvte.so.9" TYPE int
IMPORT "vte_terminal_get_child_exit_status(long)" FROM "libvte.so.9" TYPE int
INCLUDE "/usr/lib/bacon/hug.bac"
OPTION INTERNATIONAL TRUE
SETENVIRON "OUTPUT_CHARSET", "UTF-8"
INIT
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
REM Variable declarations
screenwidth = 1300
screenheight = 1000
dialogwidth = 400
dialogheight = 100
buttonheight = 30
windowwidth = screenwidth / 2
windowheight = screenheight / 2
framewidth = windowwidth - 10
buttonwidth = framewidth / 4
frameheight = windowheight - buttonheight * 2 - 140
frameleftmargin = 5
frametopmargin = 150
cola = 0 * framewidth / 4 + 10
colb = 1 * framewidth / 4 + 30
colc = 2 * framewidth / 4 + 50
cla = 0 * framewidth / 4 + 5
clb = 1 * framewidth / 4 + 5
clc = 2 * framewidth / 4 + 5
cld = 3 * framewidth / 4 + 5
rowa = 1 * frameheight / 6 + frametopmargin - buttonheight / 2
rowb = 2 * frameheight / 6 + frametopmargin - buttonheight / 2
rowc = 3 * frameheight / 6 + frametopmargin - buttonheight / 2
rowd = 4 * frameheight / 6 + frametopmargin - buttonheight / 2
rowe = 5 * frameheight / 6 + frametopmargin - buttonheight / 2
rwa = 1 * frameheight / 9 + frametopmargin - buttonheight / 2
rwb = 2 * frameheight / 9 + frametopmargin - buttonheight / 2
rwc = 3 * frameheight / 9 + frametopmargin - buttonheight / 2
rwd = 4 * frameheight / 9 + frametopmargin - buttonheight / 2
rwe = 5 * frameheight / 9 + frametopmargin - buttonheight / 2
rwf = 6 * frameheight / 9 + frametopmargin - buttonheight / 2
rwg = 7 * frameheight / 9 + frametopmargin - buttonheight / 2
rwh = 8 * frameheight / 9 + frametopmargin - buttonheight / 2
GLOBAL WORKDIR$, EXCLUDES$, LIVEUSER$, LIVECDLABEL$, CUSTOMISO$, SQUASHFSOPTS$, BACKUPSHOWINSTALL$, LIVECDURL$, SPLASH$, GRUB$, PLYMOUTH$, THEMENAME$, THEMEDIR$, THEMEPIC$, ULSELECT$
GLOBAL prev_window = 0
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
REM Main Window
main_window = WINDOW("Remastersys", windowwidth, windowheight)
frame = FRAME(framewidth, frameheight)
ATTACH (main_window, frame, frameleftmargin, frametopmargin)
TEXT(frame, " Main ")
rempic = IMAGE("/usr/share/pixmaps/remastersys-gui.png",framewidth - 10,128)
ATTACH(main_window, rempic, 10,10)
backup_button = BUTTON(INTL$("Backup"), buttonwidth, buttonheight)
ATTACH(main_window,backup_button, cola,rowa)
backup_button_label = MARK(INTL$("Create a live iso backup of your system including your personal data"), buttonwidth * 3, buttonheight)
ATTACH(main_window,backup_button_label, colb,rowa)
dist_button = BUTTON(INTL$("Distribution"), buttonwidth, buttonheight)
ATTACH(main_window,dist_button, cola,rowb)
dist_button_label = MARK(INTL$("Create a live iso similar to the original one from Ubuntu"), buttonwidth * 3, buttonheight)
ATTACH(main_window,dist_button_label, colb,rowb)
config_button = BUTTON(INTL$("Customize"), buttonwidth, buttonheight)
ATTACH(main_window,config_button, cola,rowc)
config_button_label = MARK(INTL$("Customize system and remastersys settings"), buttonwidth * 3, buttonheight)
ATTACH(main_window,config_button_label, colb,rowc)
clear_button = BUTTON(INTL$("Clear Working Folder"), buttonwidth, buttonheight)
ATTACH(main_window,clear_button, cola,rowd)
clear_button_label = MARK(INTL$("Clear out the Working Folder"), buttonwidth * 3, buttonheight)
ATTACH(main_window,clear_button_label, colb,rowd)
check_button = BUTTON(INTL$("Check Log"), buttonwidth, buttonheight)
ATTACH(main_window,check_button, cola,rowe)
check_button_label = MARK(INTL$("Check the remastersys.log"), buttonwidth * 3, buttonheight)
ATTACH(main_window,check_button_label, colb,rowe)
quit_button = BUTTON(INTL$("Quit"), buttonwidth, buttonheight)
ATTACH(main_window,quit_button, windowwidth - 10 - buttonwidth , frametopmargin + frameheight + (windowheight - frametopmargin - frameheight - buttonheight) / 2)
PROPERTY(backup_button_label,"xalign",0.0)
PROPERTY(dist_button_label,"xalign",0.0)
PROPERTY(config_button_label,"xalign",0.0)
PROPERTY(clear_button_label,"xalign",0.0)
PROPERTY(check_button_label,"xalign",0.0)
prev_window = main_window
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
REM Dialogs
error_dialog=MSGDIALOG(INTL$("Something went wrong.\nPlease check the remastersys.log"), dialogwidth, dialogheight, 3, 1)
fatal_dialog=MSGDIALOG(INTL$("Must be run as root. Exiting."), dialogwidth, dialogheight, 3, 1)
info_dialog=MSGDIALOG(INTL$("Completed Successfully"), dialogwidth, dialogheight, 0, 1)
wait_dialog=MSGDIALOG(INTL$("Please Wait"), dialogwidth, dialogheight, 0, 0)
plymouth_pick=FILEDIALOG(INTL$("Choose a 1920x1280 png file for plymouth"),INTL$("Select"), windowwidth, windowheight, 0)
splash_pick=FILEDIALOG(INTL$("Choose a 640x480 png file for the live background"),INTL$("Select"), windowwidth, windowheight, 0)
grub_pick=FILEDIALOG(INTL$("Choose a png file for the grub background"),INTL$("Select"), windowwidth, windowheight, 0)
PROPERTY(info_dialog, "title", INTL$("Success"))
PROPERTY(wait_dialog, "title", INTL$("Please Wait"))
PROPERTY(error_dialog, "title", INTL$("Failure"))
PROPERTY(fatal_dialog, "title", INTL$("Failure"))
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
REM Log Window
textwin = WINDOW(INTL$("Log Viewer"), windowwidth, windowheight)
showtext = EDIT(windowwidth, windowheight - 50)
ATTACH(textwin, showtext,0, 0)
txt_exit = BUTTON(INTL$("Main"), buttonwidth, buttonheight)
ATTACH(textwin, txt_exit, windowwidth -10 -buttonwidth, windowheight - 40)
HIDE(textwin)
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
REM Customize Window
custwin = WINDOW("Remastersys", windowwidth, windowheight)
wframe = FRAME(framewidth, frameheight)
ATTACH (custwin, wframe, frameleftmargin, frametopmargin)
TEXT(wframe, " Customize ")
rempic = IMAGE("/usr/share/pixmaps/remastersys-gui.png",framewidth - 10,128)
ATTACH(custwin, rempic, 10,10)
cust_splash = BUTTON(INTL$("Splash Image"), buttonwidth, buttonheight)
ATTACH(custwin,cust_splash, cola,rowa)
cust_splash_label = MARK(INTL$("Select a 640x480 png file for the live menu background"), buttonwidth * 3, buttonheight)
ATTACH(custwin,cust_splash_label, colb,rowa)
cust_grub = BUTTON(INTL$("Grub Image"), buttonwidth, buttonheight)
ATTACH(custwin,cust_grub, cola,rowb)
cust_grub_label = MARK(INTL$("Select a picture for the Grub menu background"), buttonwidth * 3, buttonheight)
ATTACH(custwin,cust_grub_label, colb,rowb)
cust_plymouth = BUTTON(INTL$("Plymouth Theme"), buttonwidth, buttonheight)
ATTACH(custwin,cust_plymouth, cola,rowc)
cust_plymouth_label = MARK(INTL$("Create and Select Plymouth theme"), buttonwidth * 3, buttonheight)
ATTACH(custwin,cust_plymouth_label, colb,rowc)
cust_user = BUTTON(INTL$("User Settings"), buttonwidth, buttonheight)
ATTACH(custwin,cust_user, cola,rowd)
cust_user_label = MARK(INTL$("Copy user settings to /etc/skel and be the default for all new users"), buttonwidth * 3, buttonheight)
ATTACH(custwin,cust_user_label, colb,rowd)
cust_conf = BUTTON(INTL$("Configure"), buttonwidth, buttonheight)
ATTACH(custwin,cust_conf, cola,rowe)
cust_conf_label = MARK(INTL$("Customize the settings for remastersys"), buttonwidth * 3, buttonheight)
ATTACH(custwin,cust_conf_label, colb,rowe)
cust_exit = BUTTON(INTL$("Main"), buttonwidth, buttonheight)
ATTACH(custwin, cust_exit, windowwidth -10 -buttonwidth, windowheight - 40)
PROPERTY(cust_splash_label,"xalign",0.0)
PROPERTY(cust_grub_label,"xalign",0.0)
PROPERTY(cust_plymouth_label,"xalign",0.0)
PROPERTY(cust_user_label,"xalign",0.0)
PROPERTY(cust_conf_label,"xalign",0.0)
HIDE(custwin)
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
REM Config File Window
conffilewin = WINDOW("remastersys.conf",windowwidth, windowheight)
rempiccf = IMAGE("/usr/share/pixmaps/remastersys-gui.png",framewidth - 10,128)
ATTACH(conffilewin, rempiccf, 10,10)
cframe = FRAME(framewidth, frameheight)
ATTACH (conffilewin, cframe, frameleftmargin, frametopmargin)
TEXT(cframe, " Config File ")
workdir = ENTRY(WORKDIR$,buttonwidth * 8 / 3, buttonheight)
ATTACH(conffilewin, workdir, colb, rwa)
workdir_lbl = MARK("WORKDIR", buttonwidth, buttonheight)
ATTACH(conffilewin, workdir_lbl, cola, rwa)
excludes = ENTRY(EXCLUDES$,buttonwidth * 8 / 3, buttonheight)
ATTACH(conffilewin, excludes, colb, rwb)
excludes_lbl = MARK("EXCLUDES", buttonwidth, buttonheight)
ATTACH(conffilewin, excludes_lbl, cola, rwb)
liveuser = ENTRY(LIVEUSER$,buttonwidth * 8 / 3, buttonheight)
ATTACH(conffilewin, liveuser, colb, rwc)
liveuser_lbl = MARK("LIVEUSER", buttonwidth, buttonheight)
ATTACH(conffilewin, liveuser_lbl, cola, rwc)
livecdlabel = ENTRY(LIVECDLABEL$,buttonwidth * 8 / 3, buttonheight)
ATTACH(conffilewin, livecdlabel, colb, rwd)
livecdlabel_lbl = MARK("LIVECDLABEL", buttonwidth, buttonheight)
ATTACH(conffilewin, livecdlabel_lbl, cola, rwd)
customiso = ENTRY(CUSTOMISO$,buttonwidth * 8 / 3, buttonheight)
ATTACH(conffilewin, customiso, colb, rwe)
customiso_lbl = MARK("CUSTOMISO", buttonwidth, buttonheight)
ATTACH(conffilewin, customiso_lbl, cola, rwe)
squashfsopts = ENTRY(SQUASHFSOPTS$,buttonwidth * 8 / 3, buttonheight)
ATTACH(conffilewin, squashfsopts, colb, rwf)
squashfsopts_lbl = MARK("SQUASHFSOPTS", buttonwidth, buttonheight)
ATTACH(conffilewin, squashfsopts_lbl, cola, rwf)
backupshowinstall = ENTRY(BACKUPSHOWINSTALL$,buttonwidth * 8 / 3, buttonheight)
ATTACH(conffilewin, backupshowinstall, colb, rwg)
backupshowinstall_lbl = MARK("BACKUPSHOWINSTALL", buttonwidth, buttonheight)
ATTACH(conffilewin, backupshowinstall_lbl, cola, rwg)
livecdurl = ENTRY(LIVECDURL$,buttonwidth * 8 / 3, buttonheight)
ATTACH(conffilewin, livecdurl, colb, rwh)
livecdurl_lbl = MARK("LIVECDURL", buttonwidth, buttonheight)
ATTACH(conffilewin, livecdurl_lbl, cola, rwh)
config_save_button = BUTTON(INTL$("Save"), buttonwidth, buttonheight)
ATTACH(conffilewin, config_save_button, windowwidth -10 -buttonwidth, windowheight - 40)
PROPERTY(workdir_lbl,"xalign",1.0)
PROPERTY(excludes_lbl,"xalign",1.0)
PROPERTY(livecdlabel_lbl,"xalign",1.0)
PROPERTY(customiso_lbl,"xalign",1.0)
PROPERTY(squashfsopts_lbl,"xalign",1.0)
PROPERTY(backupshowinstall_lbl,"xalign",1.0)
PROPERTY(livecdurl_lbl,"xalign",1.0)
PROPERTY(liveuser_lbl,"xalign",1.0)
HIDE(conffilewin)
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
REM VTE Window
vtewin = WINDOW("Remastersys", windowwidth, windowheight)
vframe = FRAME(framewidth, frameheight)
ATTACH (vtewin, vframe, frameleftmargin, frametopmargin)
TEXT(vframe, INTL$(" Output "))
rempic = IMAGE("/usr/share/pixmaps/remastersys-gui.png",framewidth - 10,128)
ATTACH(vtewin, rempic, 10,10)
vte = vte_terminal_new()
REGISTER(vte, framewidth - 10 , frameheight - 25, "child-exited", 0, 0, 0, 0)
ATTACH(vtewin, vte, frameleftmargin + 5 , frametopmargin + 20)
HIDE(vtewin)
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
REM user list Window
ulwin = WINDOW("Remastersys", windowwidth, windowheight)
ulframe = FRAME(framewidth, frameheight)
ATTACH (ulwin, ulframe, frameleftmargin, frametopmargin)
TEXT(ulframe, INTL$(" Select User whose settings will be copied to /etc/skel"))
rempic = IMAGE("/usr/share/pixmaps/remastersys-gui.png",framewidth - 10,128)
ATTACH(ulwin, rempic, 10,10)
list = LIST(framewidth - 10, frameheight - 25)
ATTACH(ulwin, list, frameleftmargin + 5 , frametopmargin + 20)
user_list_select = BUTTON(INTL$("Select"), buttonwidth, buttonheight)
ATTACH(ulwin, user_list_select, windowwidth -10 -buttonwidth, windowheight - 40)
HIDE(ulwin)
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
REM Plymouth Selection Window
plymouth_win = WINDOW("Remastersys", windowwidth, windowheight)
pwframe = FRAME(framewidth, frameheight)
ATTACH (plymouth_win, pwframe, frameleftmargin, frametopmargin)
TEXT(pwframe, INTL$(" Select Default Plymouth Theme for the system"))
rempic = IMAGE("/usr/share/pixmaps/remastersys-gui.png",framewidth - 10,128)
ATTACH(plymouth_win, rempic, 10,10)
plist = LIST(framewidth - 10, frameheight - 25)
ATTACH(plymouth_win, plist, frameleftmargin + 5 , frametopmargin + 20)
plymouth_select = BUTTON(INTL$("Select"), buttonwidth, buttonheight)
ATTACH(plymouth_win, plymouth_select, cla, windowheight - 40)
plymouth_new = BUTTON(INTL$("New"), buttonwidth, buttonheight)
ATTACH(plymouth_win, plymouth_new, clb, windowheight - 40)
plymouth_preview = BUTTON(INTL$("Preview"), buttonwidth, buttonheight)
ATTACH(plymouth_win, plymouth_preview, clc, windowheight - 40)
plymouth_back = BUTTON(INTL$("Back"), buttonwidth, buttonheight)
ATTACH(plymouth_win, plymouth_back, cld, windowheight - 40)
HIDE(plymouth_win)
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
REM Close Dialog
SUB close_dialog(NUMBER widget)
'SYSTEM "true"
FOCUS(prev_window)
HIDE(widget)
END SUB
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
REM Quit
SUB fatal_dialog_run(NUMBER widget)
QUIT
END SUB
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
REM Info Dialog
SUB info_dialog_run(NUMBER widget)
FOCUS(prev_window)
HIDE(widget)
END SUB
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
REM Check Return
SUB check_return
TEXT(showtext,"")
SHOW(main_window)
FOCUS(main_window)
HIDE(textwin)
END SUB
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
REM Customize Return
SUB customize_return
prev_window = main_window
SHOW(main_window)
FOCUS(main_window)
HIDE(custwin)
END SUB
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
REM Get Status from vte_run
SUB get_status(NUMBER widget)
test_exit = vte_terminal_get_child_exit_status(widget)
IF test_exit NE 0 THEN
SHOW(error_dialog)
FOCUS(error_dialog)
HIDE(widget)
ELSE
TEXT(info_dialog, INTL$("Completed Successfully."))
SHOW(info_dialog)
FOCUS(info_dialog)
HIDE(widget)
ENDIF
SHOW(prev_window)
FOCUS(prev_window)
END SUB
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
REM VTE run
SUB vte_run(VAR arg$ SIZE size)
SHOW(vtewin)
FOCUS(vtewin)
HIDE(prev_window)
pid = vte_terminal_fork_command(vte, arg$[0], arg$, NULL, NULL, 0, 0 ,0)
END SUB
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
REM Save Config File
SUB config_save
WORKDIR$ = GRAB$(workdir)
EXCLUDES$ = GRAB$(excludes)
LIVEUSER$ = GRAB$(liveuser)
LIVECDLABEL$ = GRAB$(livecdlabel)
CUSTOMISO$ = GRAB$(customiso)
SQUASHFSOPTS$ = GRAB$(squashfsopts)
BACKUPSHOWINSTALL$ = GRAB$(backupshowinstall)
LIVECDURL$ = GRAB$(livecdurl)
IF WORKDIR$ = "" THEN
WORKDIR$ = "/home/remastersys"
END IF
IF EXCLUDES$ = "" THEN
EXCLUDES$ = ""
END IF
IF LIVEUSER$ = "" THEN
LIVEUSER$ = "custom"
END IF
IF LIVECDLABEL$ = "" THEN
LIVECDLABEL$ = "Custom Live CD"
END IF
IF CUSTOMISO$ = "" THEN
CUSTOMISO$ = "custom$1.iso"
END IF
IF SQUASHFSOPTS$ = "" THEN
SQUASHFSOPTS$ = "-no-recovery -always-use-fragments -b 1M -no-duplicates"
END IF
IF BACKUPSHOWINSTALL$ != "0" THEN
BACKUPSHOWINSTALL$ = "1"
END IF
IF LIVECDURL$ = "" THEN
LIVECDURL$ = "http://www.remastersys.com"
END IF
OPEN "/etc/remastersys.conf" FOR WRITING AS conffile
WRITELN "#Remastersys Global Configuration File",NL$,NL$ TO conffile
WRITELN "# This is the temporary working directory and won't be included on the cd/dvd" TO conffile
WRITELN "WORKDIR=",CHR$(34),WORKDIR$,CHR$(34),NL$,NL$ TO conffile
WRITELN "# Here you can add any other files or directories to be excluded from the live filesystem" TO conffile
WRITELN "# Separate each entry with a space" TO conffile
WRITELN "EXCLUDES=",CHR$(34),EXCLUDES$,CHR$(34),NL$,NL$ TO conffile
WRITELN "# Here you can change the livecd/dvd username" TO conffile
WRITELN "LIVEUSER=",CHR$(34),LCASE$(LIVEUSER$),CHR$(34),NL$,NL$ TO conffile
WRITELN "# Here you can change the name of the livecd/dvd label" TO conffile
WRITELN "LIVECDLABEL=",CHR$(34),LIVECDLABEL$,CHR$(34),NL$,NL$ TO conffile
WRITELN "# Here you can change the name of the ISO file that is created" TO conffile
WRITELN "CUSTOMISO=",CHR$(34),CUSTOMISO$,CHR$(34),NL$,NL$ TO conffile
WRITELN "# Here you can change the mksquashfs options" TO conffile
WRITELN "SQUASHFSOPTS=",CHR$(34),SQUASHFSOPTS$,CHR$(34),NL$,NL$ TO conffile
WRITELN "# Here you can prevent the Install icon from showing up on the desktop in backup mode. 0 - to not show 1 - to show" TO conffile
WRITELN "BACKUPSHOWINSTALL=",CHR$(34),BACKUPSHOWINSTALL$,CHR$(34),NL$,NL$ TO conffile
WRITELN "# Here you can change the url for the usb-creator info" TO conffile
WRITELN "LIVECDURL=",CHR$(34),LIVECDURL$,CHR$(34),NL$ TO conffile
CLOSE FILE conffile
SHOW(custwin)
FOCUS(custwin)
HIDE(conffilewin)
END SUB
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
REM Remastersys Backup Run
SUB backup_run
TEXT(vframe, INTL$(" Backup Mode "))
vte_run("remastersys", "backup")
END SUB
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
REM Remastersys Dist Run
SUB dist_run
TEXT(vframe, INTL$(" Dist Mode "))
vte_run("remastersys", "dist")
END SUB
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
REM Config Run
SUB config_run
SHOW(custwin)
FOCUS(custwin)
HIDE(main_window)
END SUB
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
REM Pick Plymouth
SUB plymouth_run
prev_window = custwin
TEXT(plist, "")
plymouth_list$ = EXEC$("update-alternatives --list default.plymouth")
SPLIT plymouth_list$ BY NL$ TO line$ SIZE dim
FOR i = 1 TO dim
IF line$[i - 1] != "" THEN
TEXT(plist,line$[i - 1])
END IF
NEXT
SHOW(plymouth_win)
FOCUS(plymouth_win)
END SUB
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
REM Preview Plymouth
SUB preview_plymouth_run
SYSTEM "plymouth-preview"
END SUB
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
REM Pick Plymouth Pic
SUB pick_plymouthpic_run
prev_window = plymouth_win
SHOW(plymouth_pick)
FOCUS(plymouth_pick)
END SUB
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
REM Create Plymouth Run
SUB create_plymouth_run(NUMBER widget)
HIDE(plymouth_pick)
SHOW(wait_dialog)
FOCUS(wait_dialog)
SLEEP 100
SYNC
THEMEPIC$ = GRAB$(plymouth_pick)
SPLIT THEMEPIC$ BY "/" TO item$ SIZE dim
themepic$ = item$[(dim - 1)]
SPLIT themepic$ BY "." TO item$ SIZE dim
THEMENAME$ = item$[0]
THEMEDIR$ = CONCAT$("/lib/plymouth/themes/",THEMENAME$)
MAKEDIR THEMEDIR$
COPY THEMEPIC$ TO CONCAT$(THEMEDIR$,"/",themepic$)
COPY "/etc/remastersys/plymouth/remastersys-theme/progress_bar.png" TO CONCAT$(THEMEDIR$,"/progress_bar.png")
COPY "/etc/remastersys/plymouth/remastersys-theme/progress_box.png" TO CONCAT$(THEMEDIR$,"/progress_box.png")
COPY "/etc/remastersys/plymouth/remastersys-theme/remastersys-theme.plymouth" TO CONCAT$(THEMEDIR$,"/",THEMENAME$,".plymouth")
COPY "/etc/remastersys/plymouth/remastersys-theme/remastersys-theme.script" TO CONCAT$(THEMEDIR$,"/",THEMENAME$,".script")
SYSTEM CONCAT$("sed -i -e 's/__THEMEPIC__/",themepic$,"/g' ",THEMEDIR$,"/",THEMENAME$,".script")
SYSTEM CONCAT$("sed -i -e 's/__THEMENAME__/",THEMENAME$,"/g' ",THEMEDIR$,"/",THEMENAME$,".plymouth")
SYSTEM CONCAT$("sed -i -e 's/__THEMEDIR__/",THEMENAME$,"/g' ",THEMEDIR$,"/",THEMENAME$,".plymouth")
SYSTEM CONCAT$("update-alternatives --install /lib/plymouth/themes/default.plymouth default.plymouth ",THEMEDIR$,"/",THEMENAME$,".plymouth 80")
SYSTEM CONCAT$("update-alternatives --set default.plymouth ",THEMEDIR$,"/",THEMENAME$,".plymouth")
IF RETVAL NE 0 THEN
SHOW(error_dialog)
FOCUS(error_dialog)
ELSE
TEXT(info_dialog, INTL$("Plymouth Theme Created Successfully"))
SHOW(info_dialog)
FOCUS(info_dialog)
END IF
HIDE(wait_dialog)
TEXT(plist, "")
plymouth_list$ = EXEC$("update-alternatives --list default.plymouth")
SPLIT plymouth_list$ BY NL$ TO line$ SIZE dim
FOR i = 1 TO dim
IF line$[i - 1] != "" THEN
TEXT(plist,line$[i - 1])
END IF
NEXT
SHOW(plymouth_win)
FOCUS(plymouth_win)
HIDE(widget)
END SUB
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
REM Pick Plymouth Run
SUB pick_plymouth_run
PLYMOUTH$ = GRAB$(plist)
SPLIT PLYMOUTH$ BY " " TO item$ SIZE dim
IF dim > 0 THEN
SHOW(wait_dialog)
FOCUS(wait_dialog)
SLEEP 100
SYNC
SYSTEM CONCAT$("update-alternatives --set default.plymouth " , item$[0])
SYSTEM "update-initramfs -u"
IF RETVAL NE 0 THEN
SHOW(error_dialog)
FOCUS(error_dialog)
ELSE
TEXT(info_dialog, INTL$("Plymouth Theme Selected Successfully."))
SHOW(info_dialog)
FOCUS(info_dialog)
END IF
HIDE(wait_dialog)
END IF
SHOW(prev_window)
FOCUS(prev_window)
END SUB
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
REM Plymouth Return
SUB plymouth_return
prev_window = custwin
SHOW(custwin)
FOCUS(custwin)
HIDE(plymouth_win)
END SUB
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
REM Pick Splash
SUB splash_run
prev_window = custwin
SHOW(splash_pick)
FOCUS(splash_pick)
END SUB
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
REM Pick Splash Run
SUB pick_splash_run(NUMBER widget)
SPLASH$ = GRAB$(splash_pick)
COPY SPLASH$ TO "/etc/remastersys/isolinux/splash.png"
IF RETVAL NE 0 THEN
SHOW(error_dialog)
FOCUS(error_dialog)
ELSE
TEXT(info_dialog, INTL$("Live Menu Background set."))
SHOW(info_dialog)
FOCUS(info_dialog)
END IF
SHOW(custwin)
FOCUS(custwin)
HIDE(widget)
END SUB
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
REM Pick Grub
SUB grub_run
prev_window = custwin
SHOW(grub_pick)
FOCUS(grub_pick)
END SUB
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
REM Pick Grub Run
SUB pick_grub_run(NUMBER widget)
GRUB$ = GRAB$(grub_pick)
SYSTEM "sed -i -e '/^GRUB_BACKGROUND/d' /etc/default/grub"
SYSTEM CONCAT$("echo 'GRUB_BACKGROUND=", CHR$(34), GRUB$, CHR$(34), NL$,"'", " >> /etc/default/grub")
SYSTEM "update-grub"
IF RETVAL NE 0 THEN
SHOW(error_dialog)
FOCUS(error_dialog)
ELSE
TEXT(info_dialog, INTL$("Grub Background set."))
SHOW(info_dialog)
FOCUS(info_dialog)
END IF
SHOW(prev_window)
FOCUS(prev_window)
HIDE(widget)
END SUB
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
REM List Users on System
SUB user_list_run(NUMBER widget)
ULSELECT$ = GRAB$(list)
SPLIT ULSELECT$ BY " " TO item$ SIZE dim
IF dim > 0 THEN
HIDE(widget)
SHOW(wait_dialog)
FOCUS(wait_dialog)
SLEEP 100
SYNC
SYSTEM CONCAT$("remastersys-skelcopy " , item$[0])
IF RETVAL NE 0 THEN
SHOW(error_dialog)
FOCUS(error_dialog)
HIDE(widget)
ELSE
TEXT(info_dialog, INTL$("User Settings Copied to /etc/skel Successfully."))
SHOW(info_dialog)
FOCUS(info_dialog)
HIDE(widget)
END IF
HIDE(wait_dialog)
END IF
SHOW(prev_window)
FOCUS(prev_window)
HIDE(ulwin)
END SUB
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
REM List User Run
SUB user_run
SHOW(wait_dialog)
FOCUS(wait_dialog)
prev_window = custwin
SLEEP 100
SYNC
TEXT(list, "")
OPEN "/etc/passwd" FOR READING AS pwfile
WHILE NOT(ENDFILE(pwfile)) DO
READLN line$ FROM pwfile
SPLIT line$ BY ":" TO item$ SIZE dim
IF dim > 0 THEN
IF VAL(item$[2]) > 999 AND VAL(item$[2]) < 2000 THEN
TEXT(list, item$[0])
END IF
END IF
WEND
CLOSE FILE pwfile
HIDE(wait_dialog)
SHOW(ulwin)
FOCUS(ulwin)
HIDE(prev_window)
END SUB
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
REM Read Config File
SUB get_config_variables
IF FILEEXISTS("/etc/remastersys.conf") = 1 THEN
OPEN "/etc/remastersys.conf" FOR READING AS conffile
WHILE NOT(ENDFILE(conffile)) DO
READLN line$ FROM conffile
IF LEFT$(line$,1) != "#" OR line$ != "" THEN
SPLIT line$ BY "=" TO item$ SIZE dim
IF dim > 0 THEN
SELECT item$[0]
CASE "WORKDIR"
WORKDIR$ = CHOP$(item$[1],CHR$(34),0)
CASE "EXCLUDES"
EXCLUDES$ = CHOP$(item$[1],CHR$(34),0)
CASE "LIVEUSER"
LIVEUSER$ = CHOP$(item$[1],CHR$(34),0)
CASE "LIVECDLABEL"
LIVECDLABEL$ = CHOP$(item$[1],CHR$(34),0)
CASE "CUSTOMISO"
CUSTOMISO$ = CHOP$(item$[1],CHR$(34),0)
CASE "SQUASHFSOPTS"
SQUASHFSOPTS$ = CHOP$(item$[1],CHR$(34),0)
CASE "BACKUPSHOWINSTALL"
BACKUPSHOWINSTALL$ = CHOP$(item$[1],CHR$(34),0)
CASE "LIVECDURL"
LIVECDURL$ = CHOP$(item$[1],CHR$(34),0)
END SELECT
END IF
END IF
WEND
CLOSE FILE conffile
END IF
IF WORKDIR$ = "" THEN
WORKDIR$ = "/home/remastersys"
END IF
IF LIVEUSER$ = "" THEN
LIVEUSER$ = "custom"
END IF
IF LIVECDLABEL$ = "" THEN
LIVECDLABEL$ = "Custom Live CD"
END IF
IF CUSTOMISO$ = "" THEN
CUSTOMISO$ = "custom$1.iso"
END IF
IF SQUASHFSOPTS$ = "" THEN
SQUASHFSOPTS$ = "-no-recovery -always-use-fragments -b 1M -no-duplicates"
END IF
IF BACKUPSHOWINSTALL$ != "0" THEN
BACKUPSHOWINSTALL$ = "1"
END IF
IF LIVECDURL$ = "" THEN
LIVECDURL$ = "http://www.remastersys.com"
END IF
END SUB
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
REM Show Config File
SUB customize_config_run
CALL get_config_variables
TEXT(workdir, WORKDIR$)
TEXT(excludes, EXCLUDES$)
TEXT(liveuser, LIVEUSER$)
TEXT(livecdlabel, LIVECDLABEL$)
TEXT(customiso, CUSTOMISO$)
TEXT(squashfsopts, SQUASHFSOPTS$)
TEXT(backupshowinstall, BACKUPSHOWINSTALL$)
TEXT(livecdurl, LIVECDURL$)
SHOW(conffilewin)
FOCUS(conffilewin)
HIDE(custwin)
END SUB
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
REM Remastersys Clean Run
SUB clear_run
SYSTEM "remastersys clean"
TEXT(info_dialog, INTL$("Working Folder Cleared."))
SHOW(info_dialog)
FOCUS(info_dialog)
END SUB
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
REM Check Log File
SUB check_run
CALL get_config_variables
SHOW(wait_dialog)
FOCUS(wait_dialog)
SLEEP 100
SYNC
logtxt$=""
IF FILEEXISTS(CONCAT$(WORKDIR$,"/remastersys/remastersys.log")) = 1 THEN
OPEN CONCAT$(WORKDIR$,"/remastersys/remastersys.log") FOR READING AS logfile
WHILE NOT(ENDFILE(logfile)) DO
READLN txt$ FROM logfile
IF NOT(ENDFILE(logfile)) THEN
logtxt$ = CONCAT$(logtxt$, txt$,NL$)
ENDIF
WEND
CLOSE FILE logfile
HIDE(wait_dialog)
TEXT(showtext, logtxt$)
ELSE
HIDE(wait_dialog)
TEXT(showtext, INTL$("Logfile remastersys.log not found"))
ENDIF
SHOW(textwin)
FOCUS(textwin)
HIDE(main_window)
END SUB
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
REM Callbacks for Buttons
CALLBACK(backup_button, backup_run)
CALLBACK(dist_button, dist_run)
CALLBACK(config_button, config_run)
CALLBACK(clear_button, clear_run)
CALLBACK(check_button, check_run)
CALLBACK(txt_exit, check_return)
CALLBACK(cust_plymouth, plymouth_run)
CALLBACK(cust_splash, splash_run)
CALLBACK(cust_grub, grub_run)
CALLBACK(cust_user, user_run)
CALLBACK(cust_conf, customize_config_run)
CALLBACK(cust_exit, customize_return)
CALLBACK(config_save_button, config_save)
CALLBACK(plymouth_select, pick_plymouth_run)
CALLBACK(plymouth_new, pick_plymouthpic_run)
CALLBACK(plymouth_preview, preview_plymouth_run)
CALLBACK(plymouth_back, plymouth_return)
CALLBACK(plymouth_pick, create_plymouth_run)
CALLBACK(splash_pick, pick_splash_run)
CALLBACK(grub_pick, pick_grub_run)
CALLBACK(error_dialog,close_dialog)
CALLBACK(info_dialog,close_dialog)
CALLBACK(fatal_dialog,fatal_dialog_run)
CALLBACK(vte, get_status)
CALLBACK(user_list_select, user_list_run)
CALLBACK(quit_button, QUIT)
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
REM Check if running by root
testroot$ = CHOP$(EXEC$("whoami"))
IF testroot$ != "root" THEN
SHOW(fatal_dialog)
FOCUS(fatal_dialog)
END IF
DISPLAY
I've asked for clarification on the basic converter forum to see if there is anything I can do. I might have to create a separate 64-bit gui but it will be difficult since my 64-bit PC is my music recording pc that has AVLinux on it and I don't want to mess up my setup for testing right now.