Page 21 of 27

Re: KLV-Airedale-beta+ Released, Ready for Download

Posted: Mon Jun 06, 2022 12:26 pm
by rockedge

@wiak The Cherrytree file will be a really good start! Keep the stuff flowing the way it works best for you and I'll keep pushing the relevant material to the Github repo.

I have already installed cherrytree and started using it for KLV. Your file will be a very good start. The Git repo will be PLUG file related and not include the build scripts at this time.

I have the cherrytree manual loaded in and am using it. Does cherrytree do markdown? I have not looked yet. Not important though.

The trick with Github is to generate a git.TOKEN and use that instead of a password when pushing. Same as using a password I find when using a terminal that can Copy&Paste


Re: KLV-Airedale-beta+ Released, Ready for Download

Posted: Mon Jun 06, 2022 10:05 pm
by wiak
rockedge wrote: Mon Jun 06, 2022 12:26 pm

@wiak The Cherrytree file will be a really good start! Keep the stuff flowing the way it works best for you and I'll keep pushing the relevant material to the Github repo.

How do you create Git token? I haven't researched due to laziness, sorry...

I have uploaded first version of cherrytree WDL01.ctd notebook. You probably noticed already. If not get it via fetch reliable fetch latest script here: https://forum.puppylinux.com/viewtopic. ... 034#p59034


Re: KLV-Airedale-beta+ Released, Ready for Download

Posted: Mon Jun 06, 2022 11:15 pm
by rockedge
wiak wrote: Mon Jun 06, 2022 10:05 pm

How do you create Git token?

  1. Login to Github, goto the top right of the page, on your avatar click and select "Settings"

  2. scroll to the bottom of the left side bar and click "Developer settings" to enable the added selections

  3. Select here 'Generate Token"

  4. Copy and save the token some where convenient

this is close to how it will work.

Substitute the token for password when performing a git push or pull where user name and password are required.

I have downloaded the cherrytree file provided! I am starting to make additions to a new f_00_Void_KLV_XFCE_no-kernel_WDLteam-RC5.plug which is available here : https://github.com/techrockedge/KLV-PLUGS


Re: KLV-Airedale-beta+ Released, Ready for Download

Posted: Wed Jun 08, 2022 1:23 am
by wiak
rockedge wrote: Mon Jun 06, 2022 11:15 pm
wiak wrote: Mon Jun 06, 2022 10:05 pm

How do you create Git token?

  1. Login to Github, goto the top right of the page, on your avatar click and select "Settings"

  2. scroll to the bottom of the left side bar and click "Developer settings" to enable the added selections

  3. Select here 'Generate Token"

  4. Copy and save the token some where convenient

this is close to how it will work.

Substitute the token for password when performing a git push or pull where user name and password are required.

Sounds easy, thanks, I'll give it a go!


Re: KLV-Airedale-beta+ Released, Ready for Download

Posted: Wed Jun 08, 2022 1:45 am
by rockedge

@wiak I just ran successfully the PLUG file and I am typing this post from the resulting OS.

checking if all went as planned.

Code: Select all

./build_firstrib_rootfs_401rc1.sh  void rolling amd64 f_00_Void_KLV_XFCE_no-kernel_WDLteam-RC5.plug./build_firstrib_rootfs_401rc1.sh  void rolling amd64 f_00_Void_KLV_XFCE_no-kernel_WDLteam-RC5.plug

worked very smoothly and in under 15 minutes completely built the firstrib_rootfs. I added in the KLV kernel from beta14-15 and skeleton initrd.gz.
renamed firstrib_rootfs to /upper_changes and added a 07dummy_rootfs directory.

the system boots quickly and lots of it works but there are some small problems and still components missing.

Not begun to actually find and modify the default configuration files to set up the desktop.


Re: KLV-Airedale-beta+ Released, Ready for Download

Posted: Wed Jun 08, 2022 3:32 am
by rockedge

impressed with the sheer speed which this KLV-Airedale is running! Very snappy. There are a few things encountered prevoiusly like polekit agent missing error which caused the reboot and shutfown selections to be greyed out, but that suddenly went away and I don't remember what it was that fixed it way back when........I know we diagnoised this earlier....but to find that info.......aaaahhhhhhh.......

It seemed to have straightned out somehow and now all of the drives and parititions are showing up on the desktop and in Thunar as expected


Re: KLV-Airedale-beta+ Released, Ready for Download

Posted: Wed Jun 08, 2022 9:18 am
by wiak
rockedge wrote: Mon Jun 06, 2022 4:51 am

Insuring the correct versions of the additions are included and not a broken example.

https://github.com/techrockedge/KLV-PLUGS

Glad to hear you are getting such good results! New builds via the plugin are always the best I find.

Previously I planned to gather together f_plugin files onto WDL git site repo, but I'm in process of re-organising the site (including some of the structure) and very much prefer the likes of yourself (well there is only yourself making distro build plugins at the moment as far as I know!) to do what you are now doing, which is to use a separate git site for the main f_ build plugin. That makes sense because for a complete build, the f_plugin becomes the key part of the root filesystem part of the project, aside from the absolute basic core of that provided by build_firstrib_rootfs script. And the aim is that that f_plug should automatically implement the addition of all the other dev work being contributed into the final root filesystem.

Indeed, since I only ever use WDL git site as an archive for use during builds, and will not accept pull requests or issues comments there, since I will rarely visit the site personally(!), and don't want to, it is in fact important that whoever is developing any key f_plugin component uses their own methods for developing it (be that via git or whatever). As before, I am still using git as well for the core components, but only via simple clone of the archive, editing on my local machine, and then myself pushing commits back up again (but for the most part never visiting the upstream git archive site itself - any discussions/issues/ideas/feedback etc thus have to come via this forum as far as WDL core build system is concerned (including for related side projects such as WeeDogIT). And for my part, that is what I prefer and all that I will respond to (one feedback site is enough for me to be bothered logging into regularly, and this forum is where the main 'action' is anyway...).

It was always my intention to provide the WDL build 'system' with user contributions/enhancements to come via the plugin mechanisms purposively put into the build design. That methodology also keeps my own workload down, since now that the core build system has been reliably working for a few years now, I get the chance to just play with it too (!!!), via the plugins and related side-projects, like everyone else in this forum community can. Certainly there is some occasional maintenance I need to do on the core build scripts (some urls change), but on the whole it is pretty stable and easy now to maintain (except for my bad habit of losing some files since I'm lazy even to do an occasional git push... sigh...).

It is at the stage where my own priorities in that matter are simply about organising my code better, which I am now at last actively doing (both via easy-to-track-and-read cherrytree notebook resource, and via re-structuring git site hierarchy more conveniently for ease of my dev needs. I will however be taking the opportunity to modify the core build script organisation (to cater for the re-arranged git site archive) such that my WDL dev life will end up even easier...!!! (always my dream). On the whole though, the build process mechanism with build_firstrib_rootfs blah blah blah f_plug will remain as before. i.e. if it works (reasonably well), leave it well alone policy is 'roughly' adopted by me (though sometimes I can't resist tinkering with some new idea, but I'd rather not break what works...). Different matter for plugins - much is to be gained from their continuous maintenance and development and strong community involvement is key to that.

It will be a while till I've finished my code house-keeping (I'm doing business IT related house-keeping in parallel since much of WDL is developed for family (non-IT) business needs/wishes in mind. But you can expect updated build scripts soonish (maybe a few days, or a few short weeks from now) along with updated WDL cherrytree notebook.


Re: KLV-Airedale-beta+ Released, Ready for Download

Posted: Thu Jun 09, 2022 3:40 am
by rockedge

Another run of the build script and the further refined KLV-Airedale plug file finished error free and booted on the first attempt.

Autologin fix is included and setting up /home/spot.

Need some more examples of SED to add in run-as-spot into certain .desktop files on the exec line


Re: KLV-Airedale-beta+ Released, Ready for Download

Posted: Thu Jun 09, 2022 5:18 am
by wiak
rockedge wrote: Thu Jun 09, 2022 3:40 am

Another run of the build script and the further refined KLV-Airedale plug file finished error free and booted on the first attempt.

Autologin fix is included and setting up /home/spot.

Need some more examples of SED to add in run-as-spot into certain .desktop files on the exec line

I'm going to be building a new WDL_Arch64 reasonably soon, and will publish its f_plugin details in my next WDL cherrytree notes release, which should also contain a hopefully tested and working new build_weedog_initrd; neither of these change what you are building now since build_weedog_initrd will simply be incorporating use of the init/w_int already provided by current skeleton WDL initrd.

However, as a temporary measure in case it contains anything helpful, please find below the not recently tested or tried WDL_Arch64 f_00plugin in code to read form. Note that this doesn't use XFCE so will not be useful from that point of view, and possibly not useful much at all, but may contain some general ideas/tricks that could be adapted and/or iimproved upon albeit for Void repos and xbps in KLV-Airedale build:

Code: Select all

# For package ideas, you can refer for example to:
# https://wiki.archlinux.org/index.php/List_of_applications
# NOTE that all commandlines in this plugin will be executed within the build chroot.

############ f_00_Arch_amd64-openboxFull.plug
#    for use with build_firstrib_rootfs_XXX.sh to build:
# Full(ish) X desktop exemplar for Arch Linux firstrib_rootfs ready for booting
# After using build_weedog_initramfs and booting, login with user:root password:root
# Enter wifi details when asked, and then enter command startx
# Revision for build firstrib_rootfs ver 4.0.0-rc1
# Revision Date: 09Sept2021
# Copyright wiak (William McEwan) 30 May 2019+; Licence MIT (aka X11 license)

# Some clean up from previous runs in case build_firstrib_rootfs or
# make00<distro>XXX being re-run to fetch packages that failed owing
# to repo timeouts or whatever:
[ -d /etc/skel ] && rm -rf /etc/skel
userdel -f weedog
[ -d /home/weedog ] && rm -rf /home/weedog

# ----------------------------------------------------------------------
## INSTALL: using Arch official busybox here. Note need full wget since busybox wget can't handle https
pacman -Syu --noconfirm --needed --disable-download-timeout wget
# EXPERIMENTAL: Force pacman to use wget -c rather than it's default mode to make more robust against timeouts
# if ! grep -q '^XferCommand = /usr/bin/wget' /etc/pacman.conf; then
# sed -i '/XferCommand = \/usr\/bin\/wget/a XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u' /etc/pacman.conf
# fi

## INSTALL: some extra packages including wpa_supplicant and busybox for wifi connectivity
pacman -S --noconfirm --needed --disable-download-timeout tzdata systemd-sysvcompat ntfs-3g dosfstools mtools procps-ng which wpa_supplicant busybox
# Make some network-related applet symlinks for busybox
cd /usr/bin; ln -s busybox ash 
# Hopefully not required...: ln -s busybox ip; ln -s busybox route; ln -s busybox ifconfig; ln -s busybox ping; ln -s busybox udhcpc;
cd ../..

##INSTALL: NON-GUI APPS SELECTION (may after need to edit your desktop apps menu)
# PROBABLY BEST TO TREAT AS ESSENTIAL
pacman -S --noconfirm --needed --disable-download-timeout sudo xdg-utils cpio unzip zstd iproute2 \
squashfs-tools usleep usbutils gettext \
alsa-utils pulseaudio pulseaudio-alsa bluez bluez-utils pulseaudio-bluetooth \
libpng12 libwebp webp-pixbuf-loader librsvg libnewt libisoburn \
dialog convmv rsync rclone lsof \
aspell-en sane sxiv nano scrot \
networkmanager \
base-devel git cmake avahi nss-mdns v4l-utils python-dbus dpkg

## INSTALL: KERNEL/MODULES/FIRMWARE
# When pacman installs linux this scripts uses default mkinitcpio option
# linux install also provides modules required by later WeeDog initramfs build
pacman -S --noconfirm --needed --disable-download-timeout linux linux-firmware
# Ignore kernel upgrade during future pacman -Syu
# Note: if desired to upgrade kernel+related-modules you have to do so in initrd as well
# Surrounding such sed lines with if check, so only done once if script re-run
if ! grep -q 'IgnorePkg = linux' /etc/pacman.conf; then
  sed -i '/#IgnorePkg/ a IgnorePkg = linux' /etc/pacman.conf
fi

## INSTALL: XORG
pacman -S --noconfirm --needed --disable-download-timeout xorg xorg-xinit gxmessage xorg-xmessage
if [ ! -e ~/.xinitrc ]; then
  sed -i '/xterm/d;/xclock/d' /etc/X11/xinit/xinitrc  # remove startup xterms/xclock
  cp /etc/X11/xinit/xinitrc ~/.xinitrc    # into root home dir for editing
fi
# ~/.Xresources for larger xterm fonts
cat <<'XRESOURCES' > ~/.Xresources
Xft*antialias: true
Xft*autohint: true
XTerm*background: black
XTerm*foreground: grey
XTerm*cursorColor: grey
XTerm.vt100.geometry: 75x25+150
XTerm*faceName: DejaVu Sans Mono
XTerm*faceSize: 12
XRESOURCES

##INSTALL: OPENBOX/TINT2 for bottom panel + related extras:
pacman -S --noconfirm --needed --disable-download-timeout openbox ttf-dejavu archlinux-xdg-menu tint2 xdotool

##INSTALL: EXTRA APPS GUI-MAINLY SELECTION (may after need to edit your desktop apps menu)
#  SIMPLY REMOVE/ADD TO SUIT YOUR SYSTEM DESIRE (e.g. change browser and so on):
# First remove pre-created busybox symlinks in case they conflict with any network(manager) packages below
# Would remove iproute2 symlinks now!... rm -f /usr/bin/ip /usr/bin/route /usr/bin/ifconfig /usr/bin/ping /usr/bin/udhcpc

pacman -S --noconfirm --needed --disable-download-timeout pavucontrol \
xterm xdialog yad pcmanfm lightdm lightdm-gtk-greeter \
lxterminal lxtask lxrandr speedcrunch osmo leafpad geany epdfview mtpaint \
tigervnc virtualgl gftp transmission-gtk \
hardinfo gparted xfburn xarchiver gdmap parcellite \
gvfs gvfs-mtp gvfs-gphoto2 gvfs-afc gvfs-nfs gvfs-smb gvfs-google \
python-gobject python-kivy cherrytree \
screenfetch gnome-screenshot gnome-packagekit \
lxappearance qt5-base qt5-svg qt5-imageformats qt5ct \
xsane simple-scan tesseract \
ocrfeeder gimagereader-gtk okular nomacs \
gimp inkscape mpv chromium libreoffice-fresh hplip \
nm-connection-editor cups-pdf
# need hplip for HP scanners

## INSTALL wd_exit for use by window manager menu or commandline
wget -c https://gitlab.com/weedog/weedoglinux/-/raw/master/build_resources/wd_exit -O /usr/local/bin/wd_exit
# Install wd_extract for right-click pcmanfm to extract
# tar, tgz, tar.gz, txz, tar.xz, tar.zst, sfs, squashfs, and deb files
wget -c https://gitlab.com/weedog/weedoglinux/-/raw/master/build_resources/wd_extract -O /usr/local/bin/wd_extract
# Install wd_saveRAM1 for w_changes=RAM1 save persistence
wget -c https://gitlab.com/weedog/weedoglinux/-/raw/master/build_resources/wd_saveRAM1 -O /usr/local/bin/wd_saveRAM1
# Install wd_Xdsply scripts for display resolution facilities
wget -c https://gitlab.com/weedog/weedoglinux/-/raw/master/build_resources/wd_Tdsply -O /usr/local/bin/wd_Tdsply
wget -c https://gitlab.com/weedog/weedoglinux/-/raw/master/build_resources/wd_0dsply -O /usr/local/bin/wd_0dsply
wget -c https://gitlab.com/weedog/weedoglinux/-/raw/master/build_resources/wd_1dsply -O /usr/local/bin/wd_1dsply
wget -c https://gitlab.com/weedog/weedoglinux/-/raw/master/build_resources/wd_2dsply -O /usr/local/bin/wd_2dsply
# Install wd_Ttpad script for toggle track pad on/off
wget -c https://gitlab.com/weedog/weedoglinux/-/raw/master/build_resources/wd_Ttpad -O /usr/local/bin/wd_Ttpad
#wiak done in build_firstrib_rootfs: wget -c https://gitlab.com/weedog/weedoglinux/-/raw/master/build_resources/wd_mount -O /usr/local/bin/wd_mount
chmod +x /usr/local/bin/wd_Tdsply /usr/local/bin/wd_0dsply /usr/local/bin/wd_1dsply /usr/local/bin/wd_2dsply /usr/local/bin/wd_Ttpad
chmod +x /usr/local/bin/wd_exit /usr/local/bin/wd_extract /usr/local/bin/wd_saveRAM1 /usr/local/bin/wd_mount
mkdir -p ~/.config/wd_exit/plugins  # run: wd_exit --help for optional plugin usage

# Merge/build-in last Arch64 fixes content
cat <<'EXECDESK' > /usr/bin/exec_desktopfile.awk
#!/bin/awk -f

BEGIN    {
FS="=";
}
/Exec=/{
system($2);
}
EXECDESK
chmod +x /usr/bin/exec_desktopfile.awk

cat <<'EXECLXRANDR' > /usr/bin/exec_lxrandr-autostart
#!/bin/sh
exec exec_desktopfile.awk ~/.config/autostart/lxrandr-autostart.desktop
EXECLXRANDR
chmod +x /usr/bin/exec_lxrandr-autostart
# ----------------------------------------------------------------------

## Some Basic Configuration
pwconv # set up passwd system
grpconv
printf "root\nroot" | passwd root >/dev/null 2>&1 # Quietly set default root passwd to "root"

# -------------- systemd, basic wifi, X and Desktop --------------------
# Create systemd override to achieve root autologin (per Arch Wiki)
# Remove this section if not wanting autologin of root
mkdir -p /etc/systemd/system/getty@tty1.service.d/
cat <<'AUTOLOGIN' >/etc/systemd/system/getty@tty1.service.d/override.conf
[Service]
ExecStart=
ExecStart=-/usr/bin/agetty --autologin root --noclear %I $TERM
AUTOLOGIN

# Disable following service if you want to use alternative network manager
cat <<'WIAKWIFISYSD' >/usr/lib/systemd/system/wiakwifi.service
[Unit]
Description=wiakwifi internet connect service
Wants=network.target
BindsTo=network-pre.target dbus.service
After=network-pre.target dbus.service
Before=network.target
[Service]
Type=oneshot
ExecStart=/usr/local/bin/wiakwifi
RemainAfterExit=yes
TimeoutSec=35
[Install]
WantedBy=multi-user.target
WIAKWIFISYSD
systemctl enable wiakwifi  # probably required

# Arrange to startx in user's .bash_profile (per Arch Wiki)
# Remove this section if not wanting boot straight into X
touch ~/.bash_profile
if ! grep -q 'graphical.target' ~/.bash_profile; then
cat <<'USERBASHPROFILE' >> ~/.bash_profile
if systemctl -q is-active graphical.target && [[ ! $DISPLAY && $XDG_VTNR -eq 1 ]]; then
  exec startx
fi
USERBASHPROFILE
fi

# Initialise alsa, and systemctl pulseaudio symlinks for later use
alsactl init  # Do after first boot if not installing on same machine as build

# This is for gtkdialog needs with current Arch64 (may need later change)
ln -s /usr/lib/libncursesw.so /usr/lib/libtinfo.so.5
#-----------------------------------------------------------------------
## OPENBOX/TINT2/PCMANFM DESKTOP CONFIG

# Auto-editing .xinitrc to use openbox instead of twm
sed -i 's/twm &/exec openbox-session/' ~/.xinitrc

# The following .desktop files are for openbox startmenu and toggle-show-desktop
cat <<'MENUBUTTON' > /usr/share/applications/01open-openbox-menu.desktop
[Desktop Entry]
Name=OPEN OPENBOX MENU

Icon=start-here.png
Exec=xdotool key ctrl+alt+space
Terminal=false
Type=Application
MENUBUTTON

# super+d is Msoft windows key + letter d
cat <<'TOGGLEDESKTOP' > /usr/share/applications/50toggle-show-desktop.desktop
[Desktop Entry]
Name=TOGGLE SHOW DESKTOP
Icon=user-desktop.png
Exec=xdotool key super+d
Terminal=false
Type=Application
TOGGLEDESKTOP

cat <<'SEARCH' > /usr/share/applications/pcmanfm-search.desktop
[Desktop Entry]
Name=Pcmanfm File Search
Icon=system-search.png
Exec=pcmanfm -f
Terminal=false
Type=Application
Categories=Utility
SEARCH

cat <<'WIFIRESET' > /usr/share/applications/wiakwifi_reset.desktop
[Desktop Entry]
Encoding=UTF-8
Name=Internet Connect New
Icon=network-wireless.png
Comment=Reset Internet connection
Exec=sudo wd_internet reset
Terminal=true
Type=Application
Categories=Network;System;
GenericName=wiakwifi_reset
WIFIRESET

cat <<'RECONNECT' > /usr/share/applications/wiakwifi_reconnect.desktop
[Desktop Entry]
Encoding=UTF-8
Name=Internet Connect or Reconnect
Icon=network-wireless.png
Comment=Reconnect to Internet
Exec=sudo wd_internet reconnect
Terminal=true
Type=Application
Categories=Network;System;
GenericName=wiakwifi_reconnect
RECONNECT
ln -s /usr/local/bin/wiakwifi /usr/local/bin/wd_internet  # change this symlink pointer for other network manager use

# POPULATE tint2 launcher panel apps2launch folder
mkdir -p ~/.config/tint2/apps2launch
# Leaving empty - users can populate their own ~/.config/tint2/apps2launch
# But recommended to use Tint2 Settings (tint2conf.desktop) instead to
# add to or remove from what the following taskbar launcher provides:
if [ ! -e /etc/xdg/tint2/tint2rcWEEDOG ]; then
  # Make gpicview default app for image types
  xdg-mime default nomacs.desktop `grep 'MimeType=' /usr/share/applications/nomacs.desktop | sed -e 's/.*=//' -e 's/;/ /g'`
  # Configure tint2rc to use apps2launch contents in launcher
  ## Comment IN or Comment OUT the ones you want to appear on tint2 launcher panel
  sed -i '
/launcher_item_app/d
/launcher_tooltip/ a \
launcher_item_app = /usr/share/applications/01open-openbox-menu.desktop \
launcher_item_app = /usr/share/applications/50toggle-show-desktop.desktop \
launcher_item_app = /usr/share/applications/pcmanfm-search.desktop \
#launcher_item_app = /usr/share/applications/galculator.desktop \
launcher_item_app = /usr/share/applications/speedcrunch.desktop \
launcher_item_app = /usr/share/applications/osmo.desktop \
launcher_item_app = /usr/share/applications/pcmanfm.desktop \
launcher_item_app = /usr/share/applications/chromium-weedog.desktop \
#launcher_item_app = /usr/share/applications/gftp.desktop \
launcher_item_app = /usr/share/applications/lxterminal.desktop \
launcher_item_app = /usr/share/applications/org.gnome.Screenshot.desktop \
#launcher_item_app = /usr/share/applications/gpicview.desktop \
launcher_item_app = /usr/share/applications/nomacs.desktop \
#launcher_item_app = /usr/share/applications/mtpaint.desktop \
launcher_item_app = /usr/share/applications/gimp.desktop \
launcher_item_app = /usr/share/applications/org.inkscape.Inkscape.desktop \
launcher_item_app = /usr/share/applications/cherrytree.desktop \
launcher_item_app = /usr/share/applications/leafpad.desktop \
launcher_item_app = /usr/share/applications/geany.desktop \
#launcher_item_app = /usr/share/applications/libreoffice-startcenter.desktop \
#launcher_item_app = /usr/share/applications/org.gnome.Packages.desktop \
launcher_item_app = /usr/share/applications/pavucontrol.desktop \
#launcher_item_app = /usr/share/applications/pcmanfm-desktop-pref.desktop \
#launcher_item_app = /usr/share/applications/tint2conf.desktop \
#launcher_apps_dir = .config/tint2/apps2launch
' /etc/xdg/tint2/tint2rc
  cp -a /etc/xdg/tint2/tint2rc /etc/xdg/tint2/tint2rcWEEDOG  # backup
fi
# Note that ~/.config/tint2/tint2rc gets auto-copied from /etc/xdg/tint2/tint2rc first time tint2 is started

# Configure default (/etc/xdg/pcmanfm) pcmanfm.conf
sed -i '
s/show_hidden=0/show_hidden=1/ # show hidden files (hey this is weedog!)
' /etc/xdg/pcmanfm/default/pcmanfm.conf

# root user's main openbox configs stored in /root/.config/openbox
mkdir -p ~/.config/openbox
cp -a /etc/xdg/openbox/. ~/.config/openbox/  # This resets/overwrites previous run openbox configs

# Create default openbox keybinding for executing 01open-openbox-menu
# and modify openbox to use 2 rather than 4 alternative desktops
if ! grep -q 'super-d' ~/.config/openbox/rc.xml; then
  sed -i '
/\/keyboard/ i \
  <keybind key="C-A-space"><action name="ShowMenu"><menu>root-menu</menu></action></keybind>
s/number>4/number>2/  # change number of openbox desktops from 4 to 2
s/keybind key="W-d"/keybind key="super-d"/  # use WindowsKey-d to toggle desktop
/<font place="MenuItem">/,/font size in points/s/size>.*<\/size>/size>12<\/size>/
' ~/.config/openbox/rc.xml
fi

# Overwrite root's copy of original openbox menu.xml to use simple openbox pipe menu (per Arch wiki)
cat <<'OPENBOXMENU' > ~/.config/openbox/menu.xml
<?xml version="1.0" encoding="UTF-8"?>
<openbox_menu xmlns="http://openbox.org/3.4/menu">
<menu id="root-menu" label="Openbox 3">
  <item label="Lxterminal">
    <action name="Execute"><execute>lxterminal</execute></action>
  </item>
  <item label="Screenshot gui">
    <action name="Execute"><execute>gnome-screenshot --interactive</execute></action>
  </item>
  <item label="Screenshot now">
    <action name="Execute"><execute>gnome-screenshot</execute></action>
  </item>
  <item label="Mtpaint">
    <action name="Execute"><execute>mtpaint</execute></action>
  </item>
  <item label="Calculator">
    <action name="Execute"><execute>speedcrunch</execute></action>
  </item>
  <item label="LibreOffice">
    <action name="Execute"><execute>libreoffice</execute></action>
  </item>
  <item label="Filemanager">
    <action name="Execute"><execute>pcmanfm</execute></action>
  </item>
  <item label="Leafpad">
    <action name="Execute"><execute>leafpad</execute></action>
  </item>
  <item label="Geany">
    <action name="Execute"><execute>geany</execute></action>
  </item>
  <item label="WebBrowser">
    <action name="Execute"><execute>chromium-weedog</execute></action>
  </item>
  <separator />
  <menu id="applications" label="Applications" execute="xdg_menu --format openbox3-pipe --root-menu /etc/xdg/menus/arch-applications.menu" />
  <separator />
  <item label="userswitch">
    <action name="Execute"><execute>xterm -e sh -c "wd_exit userswitch"</execute></action>
  </item>
  <item label="autologin(ON/OFF)">
    <action name="Execute"><execute>xterm -e sh -c "wd_exit autologin"</execute></action>
  </item>
  <item label="RestartX">
    <action name="Execute"><execute>xterm -e sh -c "wd_exit restartX"</execute></action>
  </item>
  <item label="Reboot">
    <action name="Execute"><execute>xterm -e sh -c "wd_exit reboot"</execute></action>
  </item>
  <item label="Shutdown">
    <action name="Execute"><execute>xterm -e sh -c "wd_exit poweroff"</execute></action>
  </item>
</menu>
</openbox_menu>
OPENBOXMENU

# Insert new Settings category into Openbox Pipe Menu
if ! grep -q 'Arch-Settings' /etc/xdg/menus/arch-applications.menu; then
  # change menu order, since alphabetical and Audio comes before Sound...
  sed -i 's/Sound \& Video/Audio \& Video/g' /usr/share/desktop-directories/Arch-Multimedia.directory
  sed -i '$i \
  <Menu> \
    <Name>Settings</Name> \
    <Directory>Arch-Settings.directory</Directory> \
    <Include> \
      <And> \
        <Category>Settings</Category> \
        <Not><Category>System</Category></Not> \
      </And> \
    </Include> \
  </Menu> \
' /etc/xdg/menus/arch-applications.menu
fi

# NOTE RE ADDING BUTTIONS TO TINT2 PANEL:
# Use tint2conf (tint2 panel manager) to add Panel Items Buttons for w_save (Text wd_s; Left click command wd_saveRAM1) 
# and Toggle Display resolution (Text T_D; Left click command wd_Tdsply) to tint2 panel

# Modify root's openbox autostart to use tint2+pcmanfm for 
# bottom-panel+desktop-pinboard_and_wallpaper. 
# Openbox autostart file has been earlier reset to pacman default if this script has been re-run
cat <<'AUTOSTART' >> ~/.config/openbox/autostart
sudo update-menus  # in case of config changes
exec_lxrandr-autostart
tint2 &  # start tint2 to auto-create initial ~/.config/tint2/tint2rc from /etc/xdg/tint2/tintrc
pcmanfm --desktop &  # use pcmanfm for setting wallpapers and to allow desktop icons
parcellite &
# volumeicon &  # pacman -Sy volumeicon and uncomment if you want it but taskbar-provided pavucontrol more reliable and less CPU...
# pulseaudio has earlier been started by systemd for non-root logins
[ "$USER" == "root" ] && pulseaudio --start  # ignoring Warning
# xterm -e sudo wiakwifi  # using: 'systemctl enable wiakwifi' instead
AUTOSTART

# Fetch desktop background image and store in ~/.wallpaper. Needs full wget already installed (since using https)
mkdir -p ~/wallpapers
wget -c https://gitlab.com/weedog/weedoglinux/-/raw/master/graphics/weedog_Arch_desktopbg_default.png -O ~/wallpapers/wd_Arch_desktopbg_default.png

# CONFIGURE pcmanfm desktop "pinboard"
# Below hacks default pcmanfm desktop/pinboard ~/.config/pcmanfm/default/desktop-items-0.conf file
# NOTE WELL: Can also/alternatively change desktop background image from commandline when pcmanfm is
# in desktop mode with, for example: pcmanfm --wallpaper-mode center -w /usr/share/pixmaps/archlinux.svg
mkdir -p ~/.config/pcmanfm/default/
cat <<'DESKTOPPREF' > ~/.config/pcmanfm/default/desktop-items-0.conf
[*]
wallpaper_mode=stretch
wallpaper_common=1
wallpaper=/root/wallpapers/wd_Arch_desktopbg_default.png
desktop_bg=#2797a7
desktop_fg=#ffffff
desktop_shadow=#000000
desktop_font=Sans 12
show_wm_menu=0
sort=mtime;ascending;
show_documents=0
show_trash=1
show_mounts=0
DESKTOPPREF

# PUT OPTIONAL ICONS ON DESKTOP PINBOARD (this large code chunk can be removed since can easily be done manually by user as described below). Also, if you use catfish search, remove these since catfish conflicts with them.
# User can right click icon to remove (only symlinks) and/or 
# create the same manually by opening pcmanfm at Places: Applications and
# linking chosen icons there to Desktop (or Places: Desktop folder)
# Users can also drag and drop from pcmanfm filemanager to Desktop to create symlinks to any other stored file
mkdir -p ~/Desktop
cat <<'ACCESSORIES' > ~/Desktop/Accessories
[Desktop Entry]
Type=Link
Name=Accessories
Icon=applications-accessories
URL=menu://applications/Accessories
ACCESSORIES
cat <<'OFFICE' > ~/Desktop/Office
[Desktop Entry]
Type=Link
Name=Office
Icon=applications-office
URL=menu://applications/Office
OFFICE
cat <<'GRAPHICS' > ~/Desktop/Graphics
[Desktop Entry]
Type=Link
Name=Graphics
Icon=applications-graphics
URL=menu://applications/Graphics
GRAPHICS
cat <<'MMEDIA' > ~/Desktop/Multimedia
[Desktop Entry]
Type=Link
Name=Sound & Video
Icon=applications-multimedia
URL=menu://applications/Multimedia
MMEDIA
cat <<'PROGRAMMING' > ~/Desktop/Development
[Desktop Entry]
Type=Link
Name=Programming
Icon=applications-development
URL=menu://applications/Development
PROGRAMMING
cat <<'INTERNET' > ~/Desktop/Internet
[Desktop Entry]
Type=Link
Name=Internet
Icon=applications-internet
URL=menu://applications/Internet
INTERNET
cat <<'DESKSETTINGS' > ~/Desktop/DesktopSettings
[Desktop Entry]
Type=Link
Name=Preferences
Icon=preferences-desktop
URL=menu://applications/DesktopSettings
DESKSETTINGS
cat <<'SYSTEM' > ~/Desktop/System
[Desktop Entry]
Type=Link
Name=System Tools
Icon=applications-system
URL=menu://applications/System
SYSTEM

# Change default libfm.conf configuration to
# use single click mode
# don't ask options on launch executable files
# ask for drag and drop option to use (makes symlinking easy in pcmanfm)
mv /etc/xdg/libfm/libfm.conf /etc/xdg/libfm/libfm.confORIGINAL  # backup
cat <<'LIBFMCONF' > /etc/xdg/libfm/libfm.conf
[config]
single_click=1
use_trash=1
confirm_del=1
thumbnail_local=1
thumbnail_max=2048
drop_default_action=ask
quick_exec=1
terminal=lxterminal
archiver=xarchiv

[ui]
big_icon_size=48
small_icon_size=24
thumbnail_size=128
pane_icon_size=24
show_thumbnail=1

[places]
places_root=1
LIBFMCONF
cp -a /etc/xdg/libfm/libfm.conf /etc/xdg/libfm/libfm.confWEEDOG  # make backup incase overwritten

## Add some extra pcmanfm actions
#  Refer e.g. to: http://www.lxlinux.com/index.html and https://madebits.github.io/#r/linux-pcmanfm-actions.md
mkdir -p ~/.local/share/file-manager/actions ~/.local/share/applications
cat <<'BUILDDEB' > ~/.local/share/file-manager/actions/build-deb.desktop
[Desktop Entry]
Type=Action
Tooltip=Build .deb
Name=Build .deb
Profiles=profile-zero;
Icon=debian-logo

[X-Action-Profile profile-zero]
MimeTypes=inode/directory
Exec=sudo make-deb-package %f
Name=Default profile
BUILDDEB
cat <<'RCLICK4TERMINAL' > ~/.local/share/file-manager/actions/openlxterminal.desktop
[Desktop Entry]
Type=Action
Tooltip=Terminal Here
Name=Terminal Here
Profiles=profile-zero;
Icon=lxterminal
[X-Action-Profile profile-zero]
MimeTypes=inode/directory
Exec=lxterminal --working-directory=%f
Name=Default profile
RCLICK4TERMINAL
cat <<'RCLICK4GDMAP' > ~/.local/share/file-manager/actions/gdmap.desktop
[Desktop Entry]
Type=Action
Tooltip=Graphical Disk Map
Name=Graphical Disk Map
Profiles=profile-zero;
Icon=gdmap_icon
[X-Action-Profile profile-zero]
MimeTypes=inode/directory
Exec=gdmap -f %f
Name=Default profile
RCLICK4GDMAP
cat <<'RCLICK4FMSEARCH' > ~/.local/share/file-manager/actions/pcmanfmsearch.desktop
[Desktop Entry]
Type=Action
Tooltip=PCMANFM Search
Name=PCMANFM Search
Profiles=profile-zero;
Icon=system-search.png
[X-Action-Profile profile-zero]
MimeTypes=inode/directory
Exec=pcmanfm -f
Name=Default profile
RCLICK4FMSEARCH
cat <<'SXIVPLAYGIF' > ~/.local/share/file-manager/actions/sxivplaygif.desktop
[Desktop Entry]
Type=Action
Tooltip=sxiv Play GIF
Name=sxivPlayGIF
Profiles=profile-zero;
Icon=media-playback-start.png
[X-Action-Profile profile-zero]
MimeTypes=image/gif
Exec=sxiv -a %f
Name=Default profile
SXIVPLAYGIF
cat <<'WALLPAPER' > ~/.local/share/file-manager/actions/wallpaper.desktop
[Desktop Entry]
Type=Action
Tooltip=Set As Wallpaper
Name=Set As Wallpaper
Icon=user-desktop
Profiles=profile-zero;
[X-Action-Profile profile-zero]
MimeTypes=image/*;
Exec=pcmanfm -w %f
Name[en]=Default profile
SelectionCount=1
WALLPAPER

# Add new mimetypes for sfs and squashfs files
mkdir -p ~/.local/share/mime/packages
cat <<'MIMESQUASHFS' > ~/.local/share/mime/packages/squashfs.xml
<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
    <mime-type type="application/x-squashfs">
        <comment>squashfs file</comment>
        <icon name="application-x-squashfs"/>
        <glob-deleteall/>
        <glob pattern="*.squashfs"/>
        <sub-class-of type="application/octet-stream"/>
    </mime-type>
</mime-info>
MIMESQUASHFS
cat <<'MIMESFS' > ~/.local/share/mime/packages/sfs.xml
<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
    <mime-type type="application/x-squashfs">
        <comment>sfs file</comment>
        <icon name="application-x-squashfs"/>
        <glob-deleteall/>
        <glob pattern="*.sfs"/>
        <sub-class-of type="application/octet-stream"/>
    </mime-type>
</mime-info>
MIMESFS
cat <<'EXT4DAT' > ~/.local/share/mime/packages/dat.xml
<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
  <mime-type type="application/x-dat">
         <comment>ext4 save file</comment>
         <glob pattern="*.dat"/>
         <sub-class-of type="application/octet-stream"/>
  </mime-type>
</mime-info>
EXT4DAT
cat <<'MIMEDEB' > ~/.local/share/mime/packages/deb.xml
<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
    <mime-type type="application/x-deb">
        <comment>deb file</comment>
        <icon name="application-x-deb"/>
        <glob-deleteall/>
        <glob pattern="*.deb"/>
        <sub-class-of type="application/octet-stream"/>
    </mime-type>
</mime-info>
MIMEDEB
# make mpv default app for mp4 videos (rather than mplayer)
if [ "`tail -1 ~/.config/mimeapps.list`" != "video/mp4=mpv.desktop" ]; then
  cat <<'MPVDEFAULT' >> ~/.config/mimeapps.list
video/mp4=mpv.desktop
MPVDEFAULT
fi
update-mime-database ~/.local/share/mime

# Might not need the following - see new 10gtkdialogGTK3_filemnt64.sfs instead
# The following requires 11pupdog64.sfs to be used since needs
# Terry Becker (SunBurnt) filemnt pup utility
cat <<'XSQUASHFS' > ~/.local/share/applications/filemnt_beckerSFS.desktop
[Desktop Entry]
Type=Application
Name=filemnt SFS
Exec=sudo filemnt %f
Categories=Utility;
NoDisplay=true
MimeType=application/x-squashfs
Terminal=false
XSQUASHFS
cat <<'XCDIMAGE' > ~/.local/share/applications/filemnt_beckerCD.desktop
[Desktop Entry]
Type=Application
Name=filemnt CD
Exec=sudo filemnt %f
Categories=Utility;
NoDisplay=true
MimeType=application/x-cd-image
Terminal=false
XCDIMAGE
cat <<'XDAT' > ~/.local/share/applications/filemnt_beckerDAT.desktop
[Desktop Entry]
Type=Application
Name=filemnt DATA
Exec=sudo filemnt %f
Categories=Utility;
NoDisplay=true
MimeType=application/x-dat
Terminal=false
XDAT
cat <<'WDEXTRACT' > ~/.local/share/applications/wd_extract.desktop
[Desktop Entry]
Type=Application
Name=WD Extract
Exec=wd_extract %f
Categories=Utility;
NoDisplay=true
MimeType=application/x-deb;application/x-xz;application/gzip;application/x-bzip2;application/x-tar;application/zstd;application/x-squashfs;
Terminal=false
Icon=package-x-generic.png
WDEXTRACT
update-desktop-database ~/.local/share/applications

# Horrible but simple hacks to help apps/menus find icons
# Link from /usr/share/pixmaps since always found there
ln -s /usr/share/icons/hicolor/scalable/apps/org.gnome.Screenshot.svg /usr/share/pixmaps/org.gnome.Screenshot.svg 2>/dev/null
ln -s /usr/share/icons/hicolor/scalable/apps/tint2.svg /usr/share/pixmaps/tint2.svg 2>/dev/null
ln -s /usr/share/icons/hicolor/scalable/apps/tint2conf.svg /usr/share/pixmaps/tint2conf.svg 2>/dev/null
ln -s /usr/share/icons/Adwaita/48x48/legacy/network-wired.png /usr/share/pixmaps/network-wired.png 2>/dev/null
ln -s /usr/share/icons/Adwaita/48x48/legacy/network-wireless.png /usr/share/pixmaps/network-wireless.png 2>/dev/null
ln -s /usr/share/icons/Adwaita/48x48/legacy/multimedia-volume-control.png /usr/share/pixmaps/multimedia-volume-control.png 2>/dev/null
ln -s /usr/share/icons/Adwaita/48x48/legacy/system-file-manager.png /usr/share/pixmaps/system-file-manager.png 2>/dev/null
ln -s /usr/share/icons/Adwaita/48x48/legacy/applications-system.png /usr/share/pixmaps/utilities-system-monitor.png 2>/dev/null
ln -s /usr/share/icons/Adwaita/48x48/legacy/system-software-update.png /usr/share/pixmaps/system-software-update.png 2>/dev/null
ln -s /usr/share/icons/Adwaita/48x48/legacy/system-software-install.png /usr/share/pixmaps/system-software-install.png 2>/dev/null
ln -s /usr/share/icons/hicolor/scalable/stock/media/stock_xfburn.svg /usr/share/pixmaps/stock_xfburn.svg 2>/dev/null
ln -s /usr/share/icons/Adwaita/48x48/legacy/preferences-desktop-theme.png /usr/share/pixmaps/preferences-desktop-theme.png
ln -s /usr/share/icons/Adwaita/48x48/places/user-desktop.png /usr/share/pixmaps/user-desktop.png
ln -s /usr/share/icons/Adwaita/48x48/legacy/video-display.png /usr/share/pixmaps/video-display.png
ln -s /usr/share/icons/Adwaita/48x48/legacy/system-search.png /usr/share/pixmaps/system-search.png

# Make them Show and provide missing desktop Icon where necessary
# Updates may well break this - will have to check later, wiak
printf "Icon=utilities-system-monitor\n" >> /usr/share/applications/lstopo.desktop
sed -i '/NotShowIn/d' /usr/share/applications/lxappearance.desktop
sed -i '/NotShowIn/d' /usr/share/applications/pcmanfm-desktop-pref.desktop
sed -i '/NotShowIn/d' /usr/share/applications/lxrandr.desktop
#-----------------------------------------------------------------------

## CHROMIUM BROWSER SETUP:
# Remove all of following CHROMIUMXX code section if not using chromium:
cat <<'DSKCHROMWD' > /usr/share/applications/chromium-weedog.desktop
[Desktop Entry]
Name=Chromium-WeeDog
GenericName=Web Browser
Comment=Access the Internet
Exec=/usr/local/bin/chromium-weedog %U
StartupNotify=true
Terminal=false
Icon=chromium
Type=Application
Categories=Network;WebBrowser;
MimeType=application/pdf;application/rdf+xml;application/rss+xml;application/xhtml+xml;application/xhtml_xml;application/xml;image/gif;image/jpeg;image/png;image/webp;text/html;text/xml;x-scheme-handler/ftp;x-scheme-handler/http;x-scheme-handler/https;
Actions=new-window;new-private-window;
DSKCHROMWD
cat <<'CHROMIUMWD' > /usr/local/bin/chromium-weedog
#!/bin/bash
# google-chrome script. Modified by wiak 10May2020
# Copyright (c) 2011 The Chromium Authors. All rights reserved. Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
export CHROME_WRAPPER="`readlink -f "$0"`"
export GNOME_DISABLE_CRASH_DIALOG=SET_BY_GOOGLE_CHROME
exec < /dev/null
exec > >(exec cat)
exec 2> >(exec cat >&2)
if [ "$USER" == "root" ]  || [ "$LOGNAME" == "root" ];then  # wiak can use either of:
  exec -a "$0" chromium "$@" --no-sandbox --disable-infobars # ok, but unsupported warning appears (wiak)
  # xhost +local:; exec -a "$0" su weedog -c "chromium "$@""  # But should xhost - when finished
else
  exec -a "$0" chromium  "$@"
fi
CHROMIUMWD
chmod +x /usr/local/bin/chromium-weedog
cat <<'CHROMIUMTOG' > /usr/local/bin/chromium-toggle
#!/bin/sh
# chromium-toggle script. By wiak 10May2020. License MIT
file='chromium-weedog'
patt='exec -a "$0" chromium "$@" --no-sandbox'
if grep -q "# ${patt}" "$file"; then sed -i "s/# ${patt}/${patt}/" "$file"; else sed -i "s/${patt}/# ${patt}/" "$file";fi
patt='xhost +local'
if grep -q "# ${patt}" "$file"; then sed -i "s/# ${patt}/${patt}/" "$file"; else sed -i "s/${patt}/# ${patt}/" "$file";fi
CHROMIUMTOG
chmod +x /usr/local/bin/chromium-toggle

# Make defaultbrowser for pupdog apps and for xdg-settings use
ln -s /usr/local/bin/chromium-weedog /usr/local/bin/defaultbrowser
xdg-settings set default-web-browser chromium-weedog.desktop

#-----------------------------------------------------------------------
## USER CONFIGS: Copy main configs to /etc/skel for all normal users later added
cp -af /root/. /etc/skel
mkdir -p /etc/skel/.config/systemd/user/default.target.wants /etc/skel/.config/systemd/user/sockets.target.wants
# enable systemd pulseaudio.service in /etc/skel for new users added 
ln -s /usr/lib/systemd/user/pulseaudio.service /etc/skel/.config/systemd/user/default.target.wants/pulseaudio.service
ln -s /usr/lib/systemd/user/pulseaudio.socket /etc/skel/.config/systemd/user/sockets.target.wants/pulseaudio.socket

# Give wheel group nopasswd sudo rights and create weedog as wheel group member
# PREV (was wrong I think...): groupadd sudo && 
echo '%wheel ALL=(ALL) NOPASSWD: ALL' | (VISUAL="tee -a" visudo) # wheel group added to sudo no password required
useradd -m -G wheel -s /bin/bash weedog  # weedog in wheel group so has elevated sudo permissions
printf "weedog\nweedog" | passwd weedog >/dev/null 2>&1 # Quietly set default weedog passwd to "weedog"
update-mime-database /home/weedog/.local/share/mime  # not sure if required
update-desktop-database -v /home/weedog/.local/share/applications  # not sure if required

##----------------------------------------------------------------------
# EXTRAS PLUGIN:
# If f_01.plug exists in the original boot directory (or fifth argument
# to build_firstrib_rootfs script gives f_plugin filename to use,
# the shell commandlines in it will now be automatically sourced.
# Note that filename for all build_firstrib plugins must begin with f_

# For lots of good tips on configuring openbox, pcmanfm, tint2 refer to:
# http://lxlinux.com and https://www.mankier.com/1/pcmanfm
# https://petermolnar.net/hacking-tint2-panel-weather-cpu-temperature-and-volume-executors/
# You can add as many other valid commandlines as you want immediately below here:

# Restore busybox network-related links if required
# If required the following should, I think, be done at very end of 
# plugin to avoid conflicts with any pacman network-related app installs
cd /usr/bin; ln -s busybox ip; ln -s busybox route; ln -s busybox ifconfig; ln -s busybox ping; ln -s busybox udhcpc
cd ../..

Re: KLV-Airedale-beta+ Released, Ready for Download

Posted: Fri Jun 10, 2022 12:18 am
by wiak

The way I create above plugin is basically just to implement something step by step very carefully manually and then think of way to duplicate these manual steps via script lines. Simple case means just same list of commands as used manually. More complex cases might involve sed or a cat HERE document in shell script (or similar), or in really tricky (or big code block or separate script) cases, simply using wget or curl to download a pre-made and archived slice of code to be included somewhere in the build.

Remember also that all files stored beside build_firstrib_rootfs with f_ as start of their filename get automatically temporarily copied into the /tmp (i.e. firstrib_rootfs/tmp/) of the chroot part of the build so the main f_00 plugin can source these or cp them somewhere else in firstrib_rootfs hierarchy) during that chroot build (and they can source each other if required). At the end of the chroot part of build_firstrib_rootfs the /tmp contents of firstrib_rootfs all gets deleted ready for actual use.

By 'source' other f_ plugin files, I mean of course running their shell script code lines via 'dot' command thus:

Code: Select all

.  f_otherplugname

Re: KLV-Airedale-beta+ Released, Ready for Download

Posted: Fri Jun 10, 2022 1:14 pm
by rockedge

@wiak I need some help getting some steps to work in the KLV plug.

I have a series of custom xbps packages, mostly assembled by @fredx181, which have the components that make KLV-Airedale what it is. I have those packages for now in a "repo" that get downloaded using wget. Then I attempt to install them.

Problem is it will not work! I have tried 2 methods both fail.
One method is to try inst-xbps (with -y option added in)

Code: Select all

# Get inst-xbps and install
#
cd /root/Build
wget https://rockedge.org/kernels/data/XBPS_packages/inst-xbps.gz
mv /root/Build/inst-xbps.gz /usr/local/bin/inst-xbps 
chmod +x -R /usr/local/bin

# Get KLV custom packages
#
cd /root/Build
wget https://rockedge.org/kernels/data/XBPS_packages/libfontconfig1-1.12_0.x86_64.xbps
wget https://rockedge.org/kernels/data/XBPS_packages/gparted-shell-1.0_0.noarch.xbps
wget https://rockedge.org/kernels/data/XBPS_packages/mime-add-1.1_0.noarch.xbps
wget https://rockedge.org/kernels/data/XBPS_packages/xbps-tools-1.0_1.noarch.xbps
wget https://rockedge.org/kernels/data/XBPS_packages/pfind-howbig-tca-1.0_0.noarch.xbps
wget https://rockedge.org/kernels/data/XBPS_packages/uextract-4.7_1.noarch.xbps


cd /root/Build

# Install libfontconfig cache fix
inst-xbps libfontconfig1-1.12_0.x86_64.xbps

# Install gparted-shell
inst-xbps gparted-shell-1.0_0.noarch.xbps

# Install MIME definitions 
inst-xbps mime-add-1.1_0.noarch.xbps

# Install pfind-howbig-tca
inst-xbps pfind-howbig-tca-1.0_0.noarch.xbps

# Install xbps-tools 
inst-xbps xbps-tools-1.0_1.noarch.xbps

# Install uextract
inst-xbps uextract-4.7_1.noarch.xbps

which fails with:

Code: Select all

sh: /tmp/f_00_Void_KLV_XFCE_no-kernel_WDLteam-RC5.plug: line 220: inst-xbps: not found
sh: /tmp/f_00_Void_KLV_XFCE_no-kernel_WDLteam-RC5.plug: line 223: inst-xbps: not found
sh: /tmp/f_00_Void_KLV_XFCE_no-kernel_WDLteam-RC5.plug: line 226: inst-xbps: not found
sh: /tmp/f_00_Void_KLV_XFCE_no-kernel_WDLteam-RC5.plug: line 229: inst-xbps: not found
sh: /tmp/f_00_Void_KLV_XFCE_no-kernel_WDLteam-RC5.plug: line 232: inst-xbps: not found

When I add /usr/local/bin/inst-xbps the error is Permission Denied.

Also tried this:

Code: Select all

# Get KLV custom packages
#
cd /root/Build
wget https://rockedge.org/kernels/data/XBPS_packages/libfontconfig1-1.12_0.x86_64.xbps
wget https://rockedge.org/kernels/data/XBPS_packages/gparted-shell-1.0_0.noarch.xbps
wget https://rockedge.org/kernels/data/XBPS_packages/mime-add-1.1_0.noarch.xbps
wget https://rockedge.org/kernels/data/XBPS_packages/xbps-tools-1.0_1.noarch.xbps
wget https://rockedge.org/kernels/data/XBPS_packages/pfind-howbig-tca-1.0_0.noarch.xbps
wget https://rockedge.org/kernels/data/XBPS_packages/uextract-4.7_1.noarch.xbps

cd /root

xbps-rindex -a Build/*.xbps

# Install libfontconfig cache fix
xbps-install --repository=Build libfontconfig1-1.12_0.x86_64.xbps

# Install gparted-shell
xbps-install --repository=Build gparted-shell-1.0_0.noarch.xbps

# Install MIME definitions 
ixbps-install --repository=Build mime-add-1.1_0.noarch.xbps

# Install pfind-howbig-tca
xbps-install --repository=Build pfind-howbig-tca-1.0_0.noarch.xbps

# Install xbps-tools 
xbps-install --repository=Build xbps-tools-1.0_1.noarch.xbps

# Install uextract
xbps-install --repository=Build uextract-4.7_1.noarch.xbps

which also throws the error the package can't be found in the repo

I also tried different combinations of paths for xbps-install --repository= with the same results

See the entire PLUG here -> https://github.com/techrockedge/KLV-PLU ... m-RC5.plug

The PLUG is building a boot able KLV but the goodies need to be installed!


Re: KLV-Airedale-beta+ Released, Ready for Download

Posted: Fri Jun 10, 2022 3:45 pm
by wiak
rockedge wrote: Fri Jun 10, 2022 1:14 pm

...

which also throws the error the package can't be found in the repo

I also tried different combinations of paths for xbps-install --repository= with the same results

See the entire PLUG here -> https://github.com/techrockedge/KLV-PLU ... m-RC5.plug

The PLUG is building a boot able KLV but the goodies need to be installed!

Just heading for sleep so I'll look into it tomorrow. Must be something elusive but minor I think.


Re: KLV-Airedale-beta+ Released, Ready for Download

Posted: Fri Jun 10, 2022 3:51 pm
by rockedge

@wiak It almost works! This is the results using method #2 with xbps-install

Code: Select all

Saving to: 'uextract-4.7_1.noarch.xbps'

uextract-4.7_1.noarch.xbps        100%[=============================================================>]  97.32K  --.-KB/s    in 0.1s    

2022-06-10 11:03:23 (746 KB/s) - 'uextract-4.7_1.noarch.xbps' saved [99658/99658]

index: added `gparted-shell-1.0_0' (noarch).
index: added `libfontconfig1-1.12_0' (x86_64).
index: added `mime-add-1.1_0' (noarch).
index: added `pfind-howbig-tca-1.0_0' (noarch).
index: added `uextract-4.7_1' (noarch).
index: added `xbps-tools-1.0_1' (noarch).
index: 6 packages registered.
Package 'libfontconfig1-1.12_0.x86_64.xbps' not found in repository pool.
Package 'gparted-shell-1.0_0.noarch.xbps' not found in repository pool.
Package 'mime-add-1.1_0.noarch.xbps' not found in repository pool.
Package 'pfind-howbig-tca-1.0_0.noarch.xbps' not found in repository pool.
Package 'xbps-tools-1.0_1.noarch.xbps' not found in repository pool.
Package 'uextract-4.7_1.noarch.xbps' not found in repository pool.
desktop build process finished
Screenshot(6).jpg
Screenshot(6).jpg (42.86 KiB) Viewed 1211 times

The problem is going to be a minor one, and is probably order of execution or syntax


Re: KLV-Airedale-beta+ Released, Ready for Download

Posted: Fri Jun 10, 2022 5:22 pm
by fredx181

@rockedge Just one thing I thought might be important (without testing anything like you're doing) is the fact that inst-xbps copies the package to /var/cache/xbps (must exist) and does set the repository indexed in that dir.
Strange, can't explain, btw that a simple wget >> package > inst-xbps >> package doesn't work at build stage.


Re: KLV-Airedale-beta+ Released, Ready for Download

Posted: Fri Jun 10, 2022 6:32 pm
by rockedge

This is the PLUG file code:

Code: Select all

# Get inst-xbps and install
#
cd /root/Build
wget https://rockedge.org/kernels/data/XBPS_packages/inst-xbps.gz
mv /root/Build/inst-xbps.gz /usr/local/bin/inst-xbps 
cp /usr/local/bin/inst-xbps inst-xbps
chmod +x -R /usr/local/bin/
chmod +x /root/Build/inst-xbps
mkdir -p /var/cache/xbps

# Get KLV custom packages
#
cd /root/Build
wget https://rockedge.org/kernels/data/XBPS_packages/libfontconfig1-1.12_0.x86_64.xbps
wget https://rockedge.org/kernels/data/XBPS_packages/gparted-shell-1.0_0.noarch.xbps
wget https://rockedge.org/kernels/data/XBPS_packages/mime-add-1.1_0.noarch.xbps
wget https://rockedge.org/kernels/data/XBPS_packages/xbps-tools-1.0_1.noarch.xbps
wget https://rockedge.org/kernels/data/XBPS_packages/pfind-howbig-tca-1.0_0.noarch.xbps
wget https://rockedge.org/kernels/data/XBPS_packages/uextract-4.7_1.noarch.xbps



# Install libfontconfig cache fix
./inst-xbps libfontconfig1-1.12_0.x86_64.xbps

# Install gparted-shell
./inst-xbps gparted-shell-1.0_0.noarch.xbps

# Install MIME definitions 
./inst-xbps mime-add-1.1_0.noarch.xbps

# Install pfind-howbig-tca
./inst-xbps pfind-howbig-tca-1.0_0.noarch.xbps

# Install xbps-tools 
./inst-xbps xbps-tools-1.0_1.noarch.xbps

# Install uextract
./inst-xbps uextract-4.7_1.noarch.xbps

This part results in ->

Code: Select all

Authorization required, but no authorization protocol specified
Warning: This program is an suid-root program or is being run by the root user.
The full text of the error or warning message cannot be safely formatted
in this environment. You may get a more descriptive message by running the
program as a non-root user or by removing the suid bit on the executable.
xterm: Xt error: Can't open display: %s

Re: KLV-Airedale-beta+ Released, Ready for Download

Posted: Fri Jun 10, 2022 8:26 pm
by fredx181

Looks like a problem running xterm (perhaps not allowed in a build environment).
Here's new xbps-tools package that may fix this:

xbps-tools-1.0_3.noarch.xbps
(33.11 KiB) Downloaded 23 times

Change in inst-xbps is : don't run xterm if running from terminal already


Re: KLV-Airedale-beta+ Released, Ready for Download

Posted: Fri Jun 10, 2022 10:57 pm
by rockedge

@fredx181 Thanks Fred!! I will use it.

The following syntax is working and the PLUG built a KLV-Airedale without any errors. Boot test comes next. Not all the components yet but now know how to do it efficiently

Code: Select all

# Get KLV custom packages
#
cd /root/Build
wget https://rockedge.org/kernels/data/XBPS_packages/libfontconfig1-1.12_0.x86_64.xbps
wget https://rockedge.org/kernels/data/XBPS_packages/gparted-shell-1.0_0.noarch.xbps
wget https://rockedge.org/kernels/data/XBPS_packages/mime-add-1.1_0.noarch.xbps
wget https://rockedge.org/kernels/data/XBPS_packages/xbps-tools-1.0_1.noarch.xbps
wget https://rockedge.org/kernels/data/XBPS_packages/pfind-howbig-tca-1.0_0.noarch.xbps
wget https://rockedge.org/kernels/data/XBPS_packages/uextract-4.7_1.noarch.xbps


cd /root

xbps-rindex -a Build/*.xbps

# Install libfontconfig cache fix
xbps-install -y --repository=Build/ libfontconfig1-1.12_0

# Install gparted-shell
xbps-install -y --repository=Build/ gparted-shell-1.0_0

# Install MIME definitions 
xbps-install -y --repository=Build/ mime-add-1.1_0

# Install pfind-howbig-tca
xbps-install -y --repository=Build/ pfind-howbig-tca-1.0_0

# Install xbps-tools 
xbps-install -y --repository=Build/ xbps-tools-1.0_1

# Install uextract
xbps-install -y --repository=Build/ uextract-4.7_1

Now I will need to convert some of the SFS packages into xbps that I had installed manually for all of the KLV's up to KLV-Airedale-beta14.

I can make all of the configuration customization's and adding the tools and utilities by xbps packages specifically made for KLV. This will really make the distro building reliable and an easy to modify build recipe to make custom variations.


Re: KLV-Airedale-beta+ Released, Ready for Download

Posted: Sat Jun 11, 2022 2:28 am
by rockedge

@wiak Good news! I have found the correct syntax and sequence to install the customization and utilities using XBPS during the PLUG distro build.

It built a more complete KLV-Airedale which booted right up. Took under 15 minutes to finish the entire firstrib_rootfs build.

Code: Select all

dropbear-0.81_1.x86_64.xbps         100%[==================================================================>] 217.46K   819KB/s    in 0.3s    

2022-06-11 04:19:04 (819 KB/s) - 'dropbear-0.81_1.x86_64.xbps' saved [222681/222681]

index: added `default-scripts-1.0_1' (noarch).
index: added `dropbear-0.81_1' (x86_64).
index: added `gparted-shell-1.0_0' (noarch).
index: added `libfontconfig1-1.12_0' (x86_64).
index: added `mime-add-1.1_0' (noarch).
index: added `pfind-howbig-tca-1.0_0' (noarch).
index: added `tzupdate2-2.0_2' (noarch).
index: added `uextract-4.7_1' (noarch).
index: added `xbps-tools-1.0_1' (noarch).
index: added `xlunch-4.1_3' (x86_64).
index: 10 packages registered.

Name           Action    Version           New version            Download size
libfontconfig1 install   -                 1.12_0                 - 

Size required on disk:        1353KB
Space available on disk:        41GB


[*] Verifying package integrity
libfontconfig1-1.12_0: verifying SHA256 hash...

[*] Collecting package files
libfontconfig1-1.12_0: collecting files...

[*] Unpacking packages
libfontconfig1-1.12_0: unpacking ...

[*] Configuring unpacked packages
libfontconfig1-1.12_0: configuring ...
Building fonts cache... 
done.
libfontconfig1-1.12_0: installed successfully.
Screenshot(1).png
Screenshot(1).png (88.65 KiB) Viewed 1141 times

Re: KLV-Airedale-beta+ Released, Ready for Download

Posted: Sat Jun 11, 2022 1:49 pm
by wiak
rockedge wrote: Sat Jun 11, 2022 2:28 am

@wiak Good news! I have found the correct syntax and sequence to install the customization and utilities using XBPS during the PLUG distro build.

That's excellent! Sorry I couldn't help further - your issue came at a bad time for me. My partner is going on business trip and wanted me to fresh install and configure a Linux distro (Zorin) on a different laptop; always a lot of work and time involved and doing it in a hurry...

Really great when up-to-date KLV-Airedale plugin available - makes new development work a breeze and encourages it. So easy also to then build a pristine bang up to date version without much effort.


Re: KLV-Airedale-beta+ Released, Ready for Download

Posted: Sat Jun 11, 2022 2:38 pm
by fredx181

@rockedge curious, was it the problem that xterm failed to run and the new inst-xbps fixed that or did you find another way perhaps ?


Re: KLV-Airedale-beta+ Released, Ready for Download

Posted: Sat Jun 11, 2022 3:02 pm
by rockedge

@fredx181 I have 2 different versions of how the custom packages are being installed. The one now working uses xbps-rindex and xbps-install

The PLUG will use wget to download the packages and places them into ~/Build
Then cd one level up and run xbps-rindex on all the packages in sequence
then use xbps-install to actually load them.

Take a look at the PLUG that works this way -> https://github.com/techrockedge/KLV-PLU ... m-RC5.plug

Second version uses inst-install. I have not tested this much yet but looks like this method will also work. This method wget the packages then sequentially use inst-xbps to install them each.

I have not yet tested this version as much. Once I have all the packages made I can run both versions again and see how the build turns out.

I will report how it goes Fred. I don't know yet which will be the better method but both should get the job done!

It is also excellent that you fixed up the xterm issue in inst-install from the command line. It is a valuable tool for sure.


Re: KLV-Airedale-beta+ Released, Ready for Download

Posted: Mon Jun 13, 2022 8:12 pm
by rockedge

The KLV build with the current PLUG file is building an almost complete fully functional KLV-Airedale. On my machine(s) it's taking between 10-20 minutes from start to finish.

I made a small script that downloads the kernel and initrd.gz components to the selected frugal install directory, runs the build script then renames the firstrib_rootfs to upper_changes to effectively create a "pseudo full install" using a dummy_rootfs and an uncompressed rootfs all contained in the upper_changes directory.

@fredx181 do you know how which files I need to modify to create a somewhat customized desktop during the build process?


Re: KLV-Airedale-beta+ Released, Ready for Download

Posted: Mon Jun 13, 2022 8:16 pm
by fredx181
rockedge wrote:

@fredx181 do you know how which files I need to modify to create a somewhat customized desktop during the build process?

I don't know what you mean exactly, xfce configuration perhaps ?.


Re: KLV-Airedale-beta+ Released, Ready for Download

Posted: Mon Jun 13, 2022 11:30 pm
by rockedge
fredx181 wrote: Mon Jun 13, 2022 8:16 pm

I don't know what you mean exactly, xfce configuration perhaps ?.

Yes! For example how to place the panels differently, set a background/wallpaper and set up Rox and thunar with right click options and configurations.

config files I can stick into a xbps package and install them and have a KLV-Airedale desktop....

So far the builds are going smoothly and putting together a KLV that boots immediately and works!


Re: KLV-Airedale-beta+ Released, Ready for Download

Posted: Tue Jun 14, 2022 6:00 am
by peebee

/root/.config/xfce4/xfconf/xfce-perchannel-xml


Re: KLV-Airedale-beta+ Released, Ready for Download

Posted: Tue Jun 14, 2022 7:53 am
by wiak

For Thunar right-click Custom Actions the relevant file is ~/.config/Thunar/uca.xml (note that the system-wide version is in /etc/xdg/Thunar/uca.xml)

For Thunar bookmarks (side panel shortcuts), the relevant file is ~/.config/gtk-3.0/bookmarks

For lots of customisation info, the following is excellent: https://pclosmag.com/download.php?f=Xfc ... icksSE.pdf
But that pdf is from 2015 so maybe somewhat out of date (e.g. talks about GTK+2 version of XFCE rather then GTK+3)?
Maybe some more uptodate info re that here: https://www.pclinuxos.com/forum/index.p ... c=151430.0


Re: KLV-Airedale-beta+ Released, Ready for Download

Posted: Tue Jun 14, 2022 8:10 am
by wiak

By the way, in looking for xfce config material I came across nitroshare, which is for network file sharing (a lot of posts about samba recently - maybe nitroshare or ndrop would be useful instead?). I checked, and note that @Grey has mentioned these in a post, here: viewtopic.php?p=31113#p31113
along with no longer maintained Dukto.
However, nitroshare is written with Qt (dukto with Qt4 I think, and ndrop is cmdline only).

EDIT: but I think you already use Qt libs for octoxbps so nitroshare maybe not too big an install (it's in Void repos).


Re: KLV-Airedale-beta+ Released, Ready for Download

Posted: Tue Jun 14, 2022 8:19 am
by rockedge

this is freshly built via script and plug file and is round about the extent of customization, minus some of the desktop icons, I would like to automate in the plug file.

Screenshot_2022-06-13_22-19-55.jpg
Screenshot_2022-06-13_22-19-55.jpg (120.96 KiB) Viewed 1292 times

Re: KLV-Airedale-beta+ Released, Ready for Download

Posted: Tue Jun 14, 2022 8:48 am
by wiak

Build plugin coming along nicely rockedge.

Re these thunar custom actions, the following link contains info (and for pcmanfm if ever used). I notice it also contains a script that uses command pkexec as a replacement for now deprecated gksudo if you ever need that in normal user mode say:

https://forums.bunsenlabs.org/viewtopic.php?id=7248


Re: KLV-Airedale-beta+ Released, Ready for Download

Posted: Tue Jun 14, 2022 9:50 am
by fredx181
rockedge wrote: Tue Jun 14, 2022 8:19 am

this is freshly built via script and plug file and is round about the extent of customization, minus some of the desktop icons, I would like to automate in the plug file.
...

My way would be to make a package (or tar archive) including the complete contents of ~/.config/xfce4, ~/.config/Thunar and perhaps more (gtk-3 ?) and extract it at build stage at some point (overwriting existing files).
Or maybe as SFS.