├── overlays ├── boot │ ├── etc │ │ └── fstab │ └── boot │ │ └── loader.conf ├── uzip │ ├── furybsd-settings │ │ ├── files │ │ │ ├── etc │ │ │ │ ├── fstab │ │ │ │ ├── wpa_supplicant.conf │ │ │ │ ├── nsswitch.conf │ │ │ │ ├── sysctl.conf │ │ │ │ ├── syslog.conf │ │ │ │ └── newsyslog.conf │ │ │ └── usr │ │ │ │ └── local │ │ │ │ └── etc │ │ │ │ ├── sudoers.d │ │ │ │ └── 00-wheel-sudoers │ │ │ │ └── polkit-1 │ │ │ │ └── rules.d │ │ │ │ └── 05-shutdown.rules │ │ └── manifest │ ├── furybsd-live-settings │ │ ├── files │ │ │ └── usr │ │ │ │ ├── local │ │ │ │ ├── etc │ │ │ │ │ ├── doas.conf │ │ │ │ │ └── sudoers.d │ │ │ │ │ │ ├── live-sudoers │ │ │ │ │ │ └── furybsd-install-sudoers │ │ │ │ ├── bin │ │ │ │ │ ├── freebsd-install │ │ │ │ │ ├── furybsd-init-helper │ │ │ │ │ └── furybsd-install │ │ │ │ └── share │ │ │ │ │ ├── data │ │ │ │ │ └── freebsd-install │ │ │ │ │ │ ├── bgusb.png │ │ │ │ │ │ ├── check.png │ │ │ │ │ │ ├── cross.png │ │ │ │ │ │ ├── success.ogg │ │ │ │ │ │ ├── Background.png │ │ │ │ │ │ ├── FREEBSD_Logo_Vert_Pos_RGB.png │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── disks.py │ │ │ │ │ │ ├── usbsuccess.svg │ │ │ │ │ │ └── languages.json │ │ │ │ │ └── icons │ │ │ │ │ └── hicolor │ │ │ │ │ ├── 256x256 │ │ │ │ │ └── apps │ │ │ │ │ │ └── freebsd.png │ │ │ │ │ └── scalable │ │ │ │ │ └── apps │ │ │ │ │ └── install.svg │ │ │ │ └── share │ │ │ │ └── skel │ │ │ │ ├── xorg.conf.d │ │ │ │ ├── driver-qxl.conf │ │ │ │ ├── driver-scfb.conf │ │ │ │ ├── driver-vesa.conf │ │ │ │ ├── driver-nvidia.conf │ │ │ │ ├── driver-virtualbox.conf │ │ │ │ └── driver-vmware.conf │ │ │ │ └── Desktop │ │ │ │ ├── freebsd-install.desktop │ │ │ │ └── furybsd-burn.desktop │ │ └── manifest │ ├── furybsd-gnustep-live-settings │ │ ├── files │ │ │ ├── usr │ │ │ │ ├── local │ │ │ │ │ ├── etc │ │ │ │ │ │ ├── automount.conf │ │ │ │ │ │ ├── rc.d │ │ │ │ │ │ │ ├── desktop-to-app-wrapper │ │ │ │ │ │ │ ├── desktop2app │ │ │ │ │ │ │ └── courtesymounts │ │ │ │ │ │ ├── xdg │ │ │ │ │ │ │ └── compton.conf │ │ │ │ │ │ └── slim.conf │ │ │ │ │ └── bin │ │ │ │ │ │ ├── screenshot │ │ │ │ │ │ ├── start-gnustep │ │ │ │ │ │ ├── desktop2app │ │ │ │ │ │ └── app │ │ │ │ └── share │ │ │ │ │ └── skel │ │ │ │ │ └── GNUstep │ │ │ │ │ └── Defaults │ │ │ │ │ ├── WMWindowAttributes │ │ │ │ │ ├── WMGLOBAL │ │ │ │ │ ├── WPrefs │ │ │ │ │ ├── NSGlobalDomain.plist │ │ │ │ │ ├── Terminal.plist │ │ │ │ │ ├── WindowMaker │ │ │ │ │ ├── GWorkspace.plist │ │ │ │ │ └── WMRootMenu │ │ │ └── .hidden │ │ └── manifest │ ├── furybsd-gnome-live-settings │ │ ├── files │ │ │ └── usr │ │ │ │ └── local │ │ │ │ └── etc │ │ │ │ └── gdm │ │ │ │ └── custom.conf │ │ └── manifest │ ├── furybsd-xorg-tool │ │ ├── files │ │ │ └── usr │ │ │ │ ├── local │ │ │ │ ├── etc │ │ │ │ │ └── sudoers.d │ │ │ │ │ │ └── furybsd-xorg-tool-sudoers │ │ │ │ └── bin │ │ │ │ │ └── furybsd-xorg-tool │ │ │ │ └── share │ │ │ │ └── skel │ │ │ │ └── Desktop │ │ │ │ └── fury-config-xorg.desktop │ │ └── manifest │ ├── furybsd-wifi-tool │ │ ├── files │ │ │ └── usr │ │ │ │ ├── local │ │ │ │ ├── etc │ │ │ │ │ └── sudoers.d │ │ │ │ │ │ └── furybsd-wifi-tool-sudoers │ │ │ │ └── bin │ │ │ │ │ └── furybsd-wifi-tool │ │ │ │ └── share │ │ │ │ └── skel │ │ │ │ └── Desktop │ │ │ │ └── fury-config-wifi.desktop │ │ └── manifest │ ├── furybsd-xfce-live-settings │ │ ├── files │ │ │ └── usr │ │ │ │ ├── local │ │ │ │ └── etc │ │ │ │ │ ├── X11 │ │ │ │ │ └── xinit │ │ │ │ │ │ └── xinitrc.d │ │ │ │ │ │ └── 90-furybsd-xfce-settings │ │ │ │ │ └── lightdm │ │ │ │ │ └── lightdm.conf │ │ │ │ └── share │ │ │ │ └── skel │ │ │ │ └── dot.config │ │ │ │ └── xfce4 │ │ │ │ └── xfconf │ │ │ │ └── xfce-perchannel-xml │ │ │ │ ├── xsettings.xml │ │ │ │ ├── xfce4-panel.xml │ │ │ │ └── xfce4-keyboard-shortcuts.xml │ │ └── manifest │ ├── furybsd-kde-live-settings │ │ ├── manifest │ │ └── files │ │ │ └── usr │ │ │ └── local │ │ │ └── etc │ │ │ └── sddm.conf │ └── furybsd-mate-live-settings │ │ ├── manifest │ │ └── files │ │ └── usr │ │ └── local │ │ └── etc │ │ └── lightdm │ │ └── lightdm.conf └── ramdisk │ ├── etc │ └── rc │ └── init.sh ├── settings ├── rc.conf.fluxbox ├── rc.conf.gnome ├── rc.conf.kde ├── rc.conf.common ├── rc.conf.lumina ├── rc.conf.mate ├── rc.conf.xfce ├── packages.fluxbox ├── overlays.gnustep ├── overlays.lumina ├── overlays.common ├── rc.conf.gnustep ├── overlays.kde ├── overlays.mate ├── overlays.xfce ├── overlays.gnome ├── packages.kde ├── packages.lumina ├── packages.mate ├── packages.gnome ├── packages.xfce ├── packages.common ├── packages.gnustep └── script.gnustep ├── .gitignore ├── scripts ├── tagrepos.sh ├── mkisoimages-i386.sh ├── build-pkg.sh ├── mkisoimages-amd64.sh └── pkgtree.sh ├── README.md ├── LICENSE └── .cirrus.yml /overlays/boot/etc/fstab: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /settings/rc.conf.fluxbox: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /settings/rc.conf.gnome: -------------------------------------------------------------------------------- 1 | gdm_enable="YES" 2 | -------------------------------------------------------------------------------- /settings/rc.conf.kde: -------------------------------------------------------------------------------- 1 | sddm_enable="YES" 2 | -------------------------------------------------------------------------------- /settings/rc.conf.common: -------------------------------------------------------------------------------- 1 | hostname="furybsd" 2 | -------------------------------------------------------------------------------- /settings/rc.conf.lumina: -------------------------------------------------------------------------------- 1 | pcdm_enable="YES" 2 | -------------------------------------------------------------------------------- /settings/rc.conf.mate: -------------------------------------------------------------------------------- 1 | lightdm_enable="YES" 2 | -------------------------------------------------------------------------------- /settings/rc.conf.xfce: -------------------------------------------------------------------------------- 1 | lightdm_enable="YES" 2 | -------------------------------------------------------------------------------- /settings/packages.fluxbox: -------------------------------------------------------------------------------- 1 | fluxbox-tenr-styles-pack 2 | -------------------------------------------------------------------------------- /settings/overlays.gnustep: -------------------------------------------------------------------------------- 1 | furybsd-gnustep-live-settings 2 | -------------------------------------------------------------------------------- /settings/overlays.lumina: -------------------------------------------------------------------------------- 1 | furybsd-wifi-tool 2 | furybsd-xorg-tool 3 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-settings/files/etc/fstab: -------------------------------------------------------------------------------- 1 | /dev/md2 / ufs rw 0 0 2 | -------------------------------------------------------------------------------- /settings/overlays.common: -------------------------------------------------------------------------------- 1 | furybsd-settings 2 | furybsd-live-settings 3 | -------------------------------------------------------------------------------- /settings/rc.conf.gnustep: -------------------------------------------------------------------------------- 1 | slim_enable="YES" 2 | autofs_enable="YES" 3 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-live-settings/files/usr/local/etc/doas.conf: -------------------------------------------------------------------------------- 1 | permit nopass keepenv :wheel 2 | -------------------------------------------------------------------------------- /settings/overlays.kde: -------------------------------------------------------------------------------- 1 | furybsd-kde-live-settings 2 | furybsd-wifi-tool 3 | furybsd-xorg-tool 4 | -------------------------------------------------------------------------------- /settings/overlays.mate: -------------------------------------------------------------------------------- 1 | furybsd-mate-live-settings 2 | furybsd-wifi-tool 3 | furybsd-xorg-tool 4 | -------------------------------------------------------------------------------- /settings/overlays.xfce: -------------------------------------------------------------------------------- 1 | furybsd-xfce-live-settings 2 | furybsd-wifi-tool 3 | furybsd-xorg-tool 4 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-settings/files/usr/local/etc/sudoers.d/00-wheel-sudoers: -------------------------------------------------------------------------------- 1 | %wheel ALL=(ALL) ALL 2 | -------------------------------------------------------------------------------- /settings/overlays.gnome: -------------------------------------------------------------------------------- 1 | furybsd-gnome-live-settings 2 | furybsd-wifi-tool 3 | furybsd-xorg-tool 4 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-live-settings/files/usr/local/etc/sudoers.d/live-sudoers: -------------------------------------------------------------------------------- 1 | %wheel ALL=(ALL) NOPASSWD: ALL 2 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-gnustep-live-settings/files/usr/local/etc/automount.conf: -------------------------------------------------------------------------------- 1 | USERMOUNT="YES" 2 | REMOVEDIRS="Yes" 3 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-gnustep-live-settings/files/usr/local/bin/screenshot: -------------------------------------------------------------------------------- 1 | #/bin/bash 2 | 3 | import -window root ~/Desktop/"$(date).png" 4 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-gnustep-live-settings/files/usr/share/skel/GNUstep/Defaults/WMWindowAttributes: -------------------------------------------------------------------------------- 1 | { 2 | "*" = {NoAppIcon=Yes;}; 3 | } 4 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-settings/files/etc/wpa_supplicant.conf: -------------------------------------------------------------------------------- 1 | ctrl_interface=/var/run/wpa_supplicant 2 | eapol_version=2 3 | update_config=1 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | overlays/uzip/furybsd-common-settings 2 | overlays/uzip/furybsd-wallpapers/files/* 3 | *.save* 4 | *~ 5 | *.idea* 6 | __pycache__ 7 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-live-settings/files/usr/local/bin/freebsd-install: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | /usr/local/share/data/freebsd-install/freebsd-install.py 4 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-live-settings/files/usr/local/etc/sudoers.d/furybsd-install-sudoers: -------------------------------------------------------------------------------- 1 | %wheel ALL=(root) NOPASSWD: /usr/local/bin/furybsd-install 2 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-live-settings/files/usr/share/skel/xorg.conf.d/driver-qxl.conf: -------------------------------------------------------------------------------- 1 | Section "Device" 2 | Identifier "Card0" 3 | Driver "qxl" 4 | EndSection 5 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-live-settings/files/usr/share/skel/xorg.conf.d/driver-scfb.conf: -------------------------------------------------------------------------------- 1 | Section "Device" 2 | Identifier "Card0" 3 | Driver "scfb" 4 | EndSection 5 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-live-settings/files/usr/share/skel/xorg.conf.d/driver-vesa.conf: -------------------------------------------------------------------------------- 1 | Section "Device" 2 | Identifier "Card0" 3 | Driver "vesa" 4 | EndSection 5 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-live-settings/files/usr/share/skel/xorg.conf.d/driver-nvidia.conf: -------------------------------------------------------------------------------- 1 | Section "Device" 2 | Identifier "Card0" 3 | Driver "nvidia" 4 | EndSection 5 | -------------------------------------------------------------------------------- /settings/packages.kde: -------------------------------------------------------------------------------- 1 | # kde-baseapps # too many dependencies 2 | sddm 3 | plasma5-plasma-desktop 4 | konsole 5 | dolphin 6 | falkon 7 | pc-networkmanager # !i386 8 | ksnip 9 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-gnustep-live-settings/files/usr/share/skel/GNUstep/Defaults/WMGLOBAL: -------------------------------------------------------------------------------- 1 | { 2 | BoldSystemFont = "Luxi Sans:slant=0:weight=200:width=100:pixelsize=24"; 3 | } 4 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-gnome-live-settings/files/usr/local/etc/gdm/custom.conf: -------------------------------------------------------------------------------- 1 | # Enable automatic login for user 2 | [daemon] 3 | AutomaticLogin=liveuser 4 | AutomaticLoginEnable=True 5 | -------------------------------------------------------------------------------- /settings/packages.lumina: -------------------------------------------------------------------------------- 1 | fluxbox-tenr-styles-pack 2 | lumina 3 | pcdm 4 | qterminal 5 | # pc-networkmanager # missing for i386? 6 | open-vm-tools 7 | git 8 | wpa_supplicant_gui 9 | webcamoid 10 | -------------------------------------------------------------------------------- /settings/packages.mate: -------------------------------------------------------------------------------- 1 | mate 2 | lightdm-gtk-greeter 3 | mate-icon-theme 4 | firefox 5 | zenity 6 | sysctlview 7 | # networkmgr 8 | open-vm-tools 9 | git 10 | wpa_supplicant_gui 11 | webcamoid 12 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-xorg-tool/files/usr/local/etc/sudoers.d/furybsd-xorg-tool-sudoers: -------------------------------------------------------------------------------- 1 | %wheel ALL=(root) NOPASSWD: /usr/local/bin/furybsd-xorg-tool 2 | %wheel ALL=(root) NOPASSWD: /usr/sbin/service kld restart 3 | -------------------------------------------------------------------------------- /settings/packages.gnome: -------------------------------------------------------------------------------- 1 | gnome3 2 | gnome-shell-extension-dashtodock 3 | firefox 4 | icons-tango 5 | zenity 6 | sysctlview 7 | # networkmgr 8 | gdm 9 | open-vm-tools 10 | git 11 | wpa_supplicant_gui 12 | webcamoid 13 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-live-settings/files/usr/local/share/data/freebsd-install/bgusb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/probonopd/LIVEstep/HEAD/overlays/uzip/furybsd-live-settings/files/usr/local/share/data/freebsd-install/bgusb.png -------------------------------------------------------------------------------- /overlays/uzip/furybsd-live-settings/files/usr/local/share/data/freebsd-install/check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/probonopd/LIVEstep/HEAD/overlays/uzip/furybsd-live-settings/files/usr/local/share/data/freebsd-install/check.png -------------------------------------------------------------------------------- /overlays/uzip/furybsd-live-settings/files/usr/local/share/data/freebsd-install/cross.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/probonopd/LIVEstep/HEAD/overlays/uzip/furybsd-live-settings/files/usr/local/share/data/freebsd-install/cross.png -------------------------------------------------------------------------------- /overlays/uzip/furybsd-live-settings/files/usr/local/share/data/freebsd-install/success.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/probonopd/LIVEstep/HEAD/overlays/uzip/furybsd-live-settings/files/usr/local/share/data/freebsd-install/success.ogg -------------------------------------------------------------------------------- /overlays/uzip/furybsd-live-settings/files/usr/local/share/data/freebsd-install/Background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/probonopd/LIVEstep/HEAD/overlays/uzip/furybsd-live-settings/files/usr/local/share/data/freebsd-install/Background.png -------------------------------------------------------------------------------- /overlays/uzip/furybsd-live-settings/files/usr/local/share/icons/hicolor/256x256/apps/freebsd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/probonopd/LIVEstep/HEAD/overlays/uzip/furybsd-live-settings/files/usr/local/share/icons/hicolor/256x256/apps/freebsd.png -------------------------------------------------------------------------------- /overlays/uzip/furybsd-live-settings/files/usr/share/skel/xorg.conf.d/driver-virtualbox.conf: -------------------------------------------------------------------------------- 1 | Section "Device" 2 | Identifier "Card0" 3 | Driver "vboxvideo" 4 | VendorName "InnoTek Systemberatung GmbH" 5 | BoardName "VirtualBox Graphics Adapter" 6 | EndSection 7 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-live-settings/files/usr/local/share/data/freebsd-install/FREEBSD_Logo_Vert_Pos_RGB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/probonopd/LIVEstep/HEAD/overlays/uzip/furybsd-live-settings/files/usr/local/share/data/freebsd-install/FREEBSD_Logo_Vert_Pos_RGB.png -------------------------------------------------------------------------------- /overlays/uzip/furybsd-gnustep-live-settings/files/.hidden: -------------------------------------------------------------------------------- 1 | bin 2 | boot 3 | compat 4 | COPYRIGHT 5 | dev 6 | entropy 7 | etc 8 | home 9 | lib 10 | libexec 11 | media 12 | mnt 13 | net 14 | opt 15 | proc 16 | rescue 17 | root 18 | sbin 19 | sys 20 | tmp 21 | usr 22 | var 23 | zroot 24 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-live-settings/files/usr/share/skel/xorg.conf.d/driver-vmware.conf: -------------------------------------------------------------------------------- 1 | Section "ServerFlags" 2 | Option "AutoAddDevices" "false" 3 | EndSection 4 | 5 | Section "InputDevice" 6 | Identifier "Mouse0" 7 | Driver "vmmouse" 8 | Option "Device" "/dev/sysmouse" 9 | EndSection 10 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-wifi-tool/files/usr/local/etc/sudoers.d/furybsd-wifi-tool-sudoers: -------------------------------------------------------------------------------- 1 | %wheel ALL=(root) NOPASSWD: /usr/local/bin/furybsd-wifi-tool 2 | %wheel ALL=(root) NOPASSWD: /usr/local/bin/netcardmgr 3 | %wheel ALL=(root) NOPASSWD: /sbin/ifconfig 4 | %wheel ALL=(root) NOPASSWD: /usr/sbin/service netif restart 5 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-settings/files/usr/local/etc/polkit-1/rules.d/05-shutdown.rules: -------------------------------------------------------------------------------- 1 | polkit.addRule(function (action, subject) { 2 | if ((action.id == "org.freedesktop.consolekit.system.restart" || 3 | action.id == "org.freedesktop.consolekit.system.stop") && 4 | subject.isInGroup("wheel")) { 5 | return polkit.Result.YES; 6 | } 7 | }); 8 | -------------------------------------------------------------------------------- /settings/packages.xfce: -------------------------------------------------------------------------------- 1 | xfce 2 | xfce4-datetime-plugin 3 | xfce4-pulseaudio-plugin 4 | xfce4-screenshooter-plugin 5 | xfce4-whiskermenu-plugin 6 | xfce4-xkb-plugin 7 | lightdm-gtk-greeter 8 | firefox 9 | xfce-icons-elementary 10 | zenity 11 | sysctlview 12 | qt5-style-plugins 13 | open-vm-tools 14 | git 15 | wpa_supplicant_gui 16 | webcamoid 17 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-wifi-tool/files/usr/share/skel/Desktop/fury-config-wifi.desktop: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env xdg-open 2 | 3 | [Desktop Entry] 4 | Version=1.0 5 | Terminal=false 6 | Type=Application 7 | Categories= 8 | Exec=sudo /usr/local/bin/furybsd-wifi-tool 9 | TryExec=/usr/local/bin/furybsd-wifi-tool 10 | Name=Configure Wifi 11 | Comment=Configure Wifi 12 | Icon=network-wireless 13 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-xorg-tool/files/usr/share/skel/Desktop/fury-config-xorg.desktop: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env xdg-open 2 | 3 | [Desktop Entry] 4 | Version=1.0 5 | Terminal=false 6 | Type=Application 7 | Categories= 8 | Exec=sudo /usr/local/bin/furybsd-xorg-tool 9 | TryExec=/usr/local/bin/furybsd-xorg-tool 10 | Name=Configure Xorg 11 | Comment=Configure Xorg 12 | Icon=video-display 13 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-xfce-live-settings/files/usr/local/etc/X11/xinit/xinitrc.d/90-furybsd-xfce-settings: -------------------------------------------------------------------------------- 1 | # -*- sh -*- 2 | # Make Qt applications use native Gtk widgets on desktops that use Gtk 3 | # 4 | # This file is sourced by Xsession(5), not executed. 5 | 6 | if [ "${XDG_CURRENT_DESKTOP}" = "XFCE" ] ; then 7 | export QT_QPA_PLATFORMTHEME=gtk2 8 | export QT_PLATFORM_PLUGIN=gtk2 9 | fi 10 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-gnustep-live-settings/files/usr/local/etc/rc.d/desktop-to-app-wrapper: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # PROVIDE: desktop-to-app-wrapper 4 | # REQUIRE: DAEMON 5 | # BEFORE: LOGIN 6 | # KEYWORD: nojail shutdown 7 | 8 | . /etc/rc.subr 9 | 10 | name="desktop-to-app-wrapper" 11 | 12 | command_interpreter="/usr/bin/env python3.7" 13 | command="/usr/bin/${name}" 14 | 15 | load_rc_config $name 16 | run_rc_command "$1" 17 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-live-settings/files/usr/share/skel/Desktop/freebsd-install.desktop: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env xdg-open 2 | 3 | [Desktop Entry] 4 | Version=1.0 5 | Terminal=false 6 | Type=Application 7 | Categories=System; 8 | NoDisplay=false 9 | Exec=/usr/local/bin/freebsd-install 10 | TryExec=/usr/local/bin/freebsd-install 11 | Name=Install FreeBSD 12 | Comment=Install the FreeBSD operating system on your computer 13 | Icon=install 14 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-gnustep-live-settings/files/usr/local/etc/rc.d/desktop2app: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # PROVIDE: desktop2app 4 | # REQUIRE: DAEMON 5 | # BEFORE: LOGIN 6 | # KEYWORD: nojail shutdown 7 | 8 | . /etc/rc.subr 9 | 10 | name="desktop2app" 11 | 12 | pidfile="/var/run/${name}.pid" 13 | command="/usr/sbin/daemon" 14 | command_args="-c -f -P ${pidfile} -r /usr/local/bin/${name}" 15 | 16 | load_rc_config $name 17 | run_rc_command "$1" 18 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-settings/files/etc/nsswitch.conf: -------------------------------------------------------------------------------- 1 | # 2 | # nsswitch.conf(5) - name service switch configuration file 3 | # $FreeBSD: releng/12.1/lib/libc/net/nsswitch.conf 338729 2018-09-17 18:56:47Z brd $ 4 | # 5 | group: compat 6 | group_compat: nis 7 | hosts: files dns mdns 8 | netgroup: compat 9 | networks: files 10 | passwd: compat 11 | passwd_compat: nis 12 | shells: files 13 | services: compat 14 | services_compat: nis 15 | protocols: files 16 | rpc: files 17 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-settings/manifest: -------------------------------------------------------------------------------- 1 | cat << EOF 2 | name: furybsd-settings 3 | version: 0 4 | origin: local 5 | comment: Package that installs FuryBSD configuration 6 | arch: freebsd:12:x86:64 7 | www: n/a 8 | maintainer: n/a 9 | prefix: / 10 | licenselogic: single 11 | licenses: [BSD] 12 | flatsize: ${DIR_SIZE} 13 | desc: Package that installs FuryBSD configuration 14 | categories: [local] 15 | EOF -------------------------------------------------------------------------------- /overlays/uzip/furybsd-kde-live-settings/manifest: -------------------------------------------------------------------------------- 1 | cat << EOF 2 | name: furybsd-kde-live-settings 3 | version: 0 4 | origin: local 5 | comment: Package that installs FuryBSD configuration 6 | arch: freebsd:12:x86:64 7 | www: n/a 8 | maintainer: n/a 9 | prefix: / 10 | licenselogic: single 11 | licenses: [BSD] 12 | flatsize: ${DIR_SIZE} 13 | desc: Package that installs FuryBSD configuration 14 | categories: [local] 15 | EOF 16 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-gnome-live-settings/manifest: -------------------------------------------------------------------------------- 1 | cat << EOF 2 | name: furybsd-gnome-live-settings 3 | version: 0 4 | origin: local 5 | comment: Package that installs FuryBSD configuration 6 | arch: freebsd:12:x86:64 7 | www: n/a 8 | maintainer: n/a 9 | prefix: / 10 | licenselogic: single 11 | licenses: [BSD] 12 | flatsize: ${DIR_SIZE} 13 | desc: Package that installs FuryBSD configuration 14 | categories: [local] 15 | EOF 16 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-mate-live-settings/manifest: -------------------------------------------------------------------------------- 1 | cat << EOF 2 | name: furybsd-mate-live-settings 3 | version: 0 4 | origin: local 5 | comment: Package that installs FuryBSD configuration 6 | arch: freebsd:12:x86:64 7 | www: n/a 8 | maintainer: n/a 9 | prefix: / 10 | licenselogic: single 11 | licenses: [BSD] 12 | flatsize: ${DIR_SIZE} 13 | desc: Package that installs FuryBSD configuration 14 | categories: [local] 15 | EOF 16 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-xfce-live-settings/manifest: -------------------------------------------------------------------------------- 1 | cat << EOF 2 | name: furybsd-xfce-live-settings 3 | version: 0 4 | origin: local 5 | comment: Package that installs FuryBSD configuration 6 | arch: freebsd:12:x86:64 7 | www: n/a 8 | maintainer: n/a 9 | prefix: / 10 | licenselogic: single 11 | licenses: [BSD] 12 | flatsize: ${DIR_SIZE} 13 | desc: Package that installs FuryBSD configuration 14 | categories: [local] 15 | EOF 16 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-gnustep-live-settings/manifest: -------------------------------------------------------------------------------- 1 | cat << EOF 2 | name: furybsd-gnustep-live-settings 3 | version: 0 4 | origin: local 5 | comment: Package that installs FuryBSD configuration 6 | arch: freebsd:12:x86:64 7 | www: n/a 8 | maintainer: n/a 9 | prefix: / 10 | licenselogic: single 11 | licenses: [BSD] 12 | flatsize: ${DIR_SIZE} 13 | desc: Package that installs FuryBSD configuration 14 | categories: [local] 15 | EOF 16 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-live-settings/files/usr/share/skel/Desktop/furybsd-burn.desktop: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env xdg-open 2 | 3 | [Desktop Entry] 4 | Version=1.0 5 | Terminal=false 6 | Type=Application 7 | Categories=System; 8 | NoDisplay=false 9 | Exec=sudo python3.7 /usr/local/share/data/freebsd-install/furybsd-burn.py 10 | TryExec=/usr/local/share/data/freebsd-install/furybsd-burn.py 11 | Name=Create FuryBSD Live Media 12 | Comment=Download a FuryBSD Live image and write it to an attached storage device 13 | Icon=livemedia 14 | -------------------------------------------------------------------------------- /overlays/ramdisk/etc/rc: -------------------------------------------------------------------------------- 1 | #!/rescue/sh 2 | 3 | if [ ! -e /dev/md2 ] ; then 4 | halt -p 5 | fi 6 | 7 | echo "==> Unset rescue init kernel environment variables" 8 | kenv -u init_chroot 9 | kenv -u init_path 10 | kenv -u init_script 11 | kenv -u init_shell 12 | echo "==> Unmount filesystems for cloning" 13 | umount -f /livecd/dev 14 | zpool export livecd 15 | zpool export furybsd 16 | umount -f /cdrom 17 | umount -f /tmp 18 | echo "== Set /dev/md2 device for reroot" 19 | kenv vfs.root.mountfrom=zfs:livecd 20 | echo "==> Rerooting into memdisk" 21 | reboot -r 22 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-wifi-tool/manifest: -------------------------------------------------------------------------------- 1 | cat << EOF 2 | name: furybsd-wifi-tool 3 | version: 0 4 | origin: local 5 | comment: Package that installs FuryBSD configuration 6 | arch: freebsd:12:x86:64 7 | www: n/a 8 | maintainer: n/a 9 | prefix: / 10 | licenselogic: single 11 | licenses: [BSD] 12 | flatsize: ${DIR_SIZE} 13 | desc: Package that installs FuryBSD configuration 14 | categories: [local] 15 | deps: { zenity: { origin: "x11/zenity", version: "3.32" } } 16 | EOF 17 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-xorg-tool/manifest: -------------------------------------------------------------------------------- 1 | cat << EOF 2 | name: furybsd-xorg-tool 3 | version: 0 4 | origin: local 5 | comment: Package that installs FuryBSD configuration 6 | arch: freebsd:12:x86:64 7 | www: n/a 8 | maintainer: n/a 9 | prefix: / 10 | licenselogic: single 11 | licenses: [BSD] 12 | flatsize: ${DIR_SIZE} 13 | desc: Package that installs FuryBSD configuration 14 | categories: [local] 15 | deps: { zenity: { origin: "x11/zenity", version: "3.32" } } 16 | EOF 17 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-live-settings/manifest: -------------------------------------------------------------------------------- 1 | cat << EOF 2 | name: furybsd-live-settings 3 | version: 0 4 | origin: local 5 | comment: Package that installs FuryBSD configuration 6 | arch: freebsd:12:x86:64 7 | www: n/a 8 | maintainer: n/a 9 | prefix: / 10 | licenselogic: single 11 | licenses: [BSD] 12 | flatsize: ${DIR_SIZE} 13 | desc: Package that installs FuryBSD configuration 14 | categories: [local] 15 | deps: { py37-qt5-widgets: { origin: "x11-toolkits/py-qt5-widgets", version: "5.9.2_5" } } 16 | EOF 17 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-gnustep-live-settings/files/usr/share/skel/GNUstep/Defaults/WPrefs: -------------------------------------------------------------------------------- 1 | { 2 | TextureList = (); 3 | NoXSetStuff = NO; 4 | ColorList = ( 5 | "#000000", 6 | "#292929", 7 | "#525252", 8 | "#848484", 9 | "#adadad", 10 | "#d6d6d6", 11 | "#ffffff", 12 | "#d6d68c", 13 | "#d6a57b", 14 | "#8cd68c", 15 | "#8cd6ce", 16 | "#d68c8c", 17 | "#8c9cd6", 18 | "#bd86d6", 19 | "#d68cbd", 20 | "#d64a4a", 21 | "#4a5ad6", 22 | "#4ad6ce", 23 | "#4ad65a", 24 | "#ced64a", 25 | "#d6844a", 26 | "#8ad631", 27 | "#ce29c6", 28 | "#ce2973" 29 | ); 30 | } 31 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-settings/files/etc/sysctl.conf: -------------------------------------------------------------------------------- 1 | # $FreeBSD: releng/12.1/sbin/sysctl/sysctl.conf 337624 2018-08-11 13:28:03Z brd $ 2 | # 3 | # This file is read when going to multi-user and its contents piped thru 4 | # ``sysctl'' to adjust kernel values. ``man 5 sysctl.conf'' for details. 5 | # 6 | 7 | # Uncomment this to prevent users from seeing information about processes that 8 | # are being run under another UID. 9 | #security.bsd.see_other_uids=0 10 | security.bsd.see_other_uids=0 11 | security.bsd.see_other_gids=0 12 | security.bsd.see_jail_proc=0 13 | security.bsd.unprivileged_read_msgbuf=0 14 | security.bsd.unprivileged_proc_debug=0 15 | kern.randompid=1 16 | kern.evdev.rcpt_mask=6 17 | -------------------------------------------------------------------------------- /settings/packages.common: -------------------------------------------------------------------------------- 1 | pkg 2 | setxkbmap 3 | sudo 4 | nano 5 | tmux 6 | xorg-server 7 | xf86-input-evdev 8 | xf86-input-keyboard 9 | xf86-input-libinput 10 | xf86-input-mouse 11 | xf86-input-vmmouse 12 | xf86-video-cirrus 13 | xf86-video-scfb 14 | xf86-video-vesa 15 | xf86-video-vmware 16 | xf86-video-qxl 17 | drm-kmod 18 | drm-legacy-kmod 19 | libva-intel-driver 20 | drm-kmod 21 | nvidia-driver # !i386 22 | mesa-libs 23 | mesa-dri 24 | virtualbox-ose-additions 25 | xauth 26 | xinit 27 | setxkbmap 28 | xdg-user-dirs 29 | xdg-utils 30 | doas 31 | xterm 32 | bash 33 | usbids 34 | dhcpcd 35 | webcamd 36 | utouch-kmod 37 | pv 38 | cpdup 39 | iichid 40 | avahi-app 41 | nss_mdns 42 | openntpd 43 | fusefs-libs 44 | -------------------------------------------------------------------------------- /scripts/tagrepos.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Helper script which will tag github repos for ports / distfiles 3 | 4 | # Only run as regular user with ssh keys 5 | if [ "$(id -u)" = "0" ]; then 6 | echo "This script must be run by release engineer" 1>&2 7 | exit 1 8 | fi 9 | 10 | # Ask for authentication once 11 | killall ssh-agent 12 | eval $(ssh-agent) 13 | ssh-add 14 | 15 | repodir="/tmp/furybsd-tag" 16 | 17 | rm -rf ${repodir} 18 | mkdir -p ${repodir} 19 | 20 | if [ ! -f "/usr/local/furybsd/version" ] ; then 21 | echo "FuryBSD must be built first" 22 | exit 1 23 | fi 24 | 25 | version=`cat /usr/local/furybsd/version` 26 | 27 | git clone git@github.com:furybsd/furybsd-livecd.git ${repodir}/furybsd-livecd 28 | 29 | cd ${repodir}/furybsd-livecd 30 | git tag -a $version -m "{$version}" 31 | git push origin --tags 32 | rm -rf ${repodir} 33 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-gnustep-live-settings/files/usr/share/skel/GNUstep/Defaults/NSGlobalDomain.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | GSBackHandlesWindowDecoration 6 | YES 7 | GSFileBrowserHideDotFiles 8 | YES 9 | GSTheme 10 | Rik 11 | NSBoldFont 12 | Luxi Sans 13 | NSFont 14 | Luxi Sans 15 | NSFontSize 16 | 13 17 | NSMenuInterfaceStyle 18 | NSMacintoshInterfaceStyle 19 | NSUserFont 20 | Luxi Sans 21 | 22 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-gnustep-live-settings/files/usr/local/etc/rc.d/courtesymounts: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # PROVIDE: courtesymounts  4 | # REQUIRE: DAEMON 5 | # BEFORE: LOGIN 6 | # KEYWORD: nojail shutdown 7 | 8 | . /etc/rc.subr 9 | 10 | name="courtesymounts" 11 | start_cmd="${name}_start" 12 | stop_cmd="${name}_stop" 13 | 14 | courtesymounts_start() 15 | { 16 | # mkdir -p /Local /System /Users /Volumes 17 | # mount | grep /Local || mount -t nullfs /usr/local/GNUstep/Local /Local 18 | # mount | grep /System || mount -t nullfs /usr/local/GNUstep/System /System 19 | # mount | grep /Users || mount -t nullfs /usr/home /Users 20 | # mount | grep /Volumes || mount -t nullfs /media /Volumes 21 | ln -s /usr/local/GNUstep/Local /Local 22 | ln -s /usr/local/GNUstep/System /System 23 | ln -s /usr/home /Users 24 | ln -s /media /Volumes 25 | } 26 | 27 | courtesymounts_stop() 28 | { 29 | # umount /Local 30 | # umount /System 31 | # umount /Users 32 | # umount /Volumes 33 | rm -f /Local /System /Users /Volumes 34 | } 35 | 36 | load_rc_config $name 37 | run_rc_command "$1" 38 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-gnustep-live-settings/files/usr/share/skel/GNUstep/Defaults/Terminal.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | BlackOnWhite 6 | NO 7 | BoldTerminalFont 8 | DejaVu Sans Mono 9 | BoldTerminalFontSize 10 | 13 11 | CursorColorA 12 | 1 13 | CursorColorB 14 | 1 15 | CursorColorG 16 | 1 17 | CursorColorR 18 | 1 19 | CursorStyle 20 | 0 21 | NSWindow Frame Preferences 22 | 240 171 410 433 0 0 1920 1056 23 | ScrollBackLines 24 | 256 25 | TerminalFont 26 | DejaVu Sans Mono 27 | TerminalFontSize 28 | 13 29 | UseMultiCellGlyphs 30 | NO 31 | 32 | 33 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # LIVEstep [![Build Status](https://api.cirrus-ci.com/github/probonopd/LIVEstep.svg)](https://cirrus-ci.com/github/furybsd/furybsd-livecd) 2 | 3 | Live ISO based on FreeBSD with GNUstep and other components, made with https://github.com/furybsd/furybsd-livecd/. __This was experimental software to find out how viable GNUstep on FreeBSD is as a desktop in 2020.__ This work has conceptually gone into [helloSystem](https://hellosystem.github.io/docs/), a desktop system based on Qt. 4 | 5 | ![](https://user-images.githubusercontent.com/2480569/94470779-6be21e00-01c8-11eb-8fab-bbfc4c38d2e2.png) 6 | 7 | Download from https://github.com/probonopd/LIVEstep/releases/tag/continuous. Write to USB stick with: 8 | 9 | ``` 10 | sudo dd if=FuryBSD-12.1-GNUSTEP.iso of=/dev/daX bs=4m status=progress 11 | ``` 12 | 13 | From the running Live system, you can write the latest build to (another!) USB device using __Create Live Media.app__ (right on the desktop). 14 | 15 | ## Credentials for live media 16 | 17 | There is no password for `liveuser`. There is also no root password. 18 | 19 | ## "Hello world" coding tutorial 20 | 21 | [Introduction to ProjectCenter on LIVEstep](https://peertube.co.uk/videos/watch/ec502a3d-e356-43cf-ba96-5bede68c81ae) by [Graham Lee](https://peertube.co.uk/accounts/leeg/video-channels) 22 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-settings/files/etc/syslog.conf: -------------------------------------------------------------------------------- 1 | # $FreeBSD: releng/12.1/usr.sbin/syslogd/syslog.conf 338146 2018-08-21 17:01:47Z brd $ 2 | # 3 | # Spaces ARE valid field separators in this file. However, 4 | # other *nix-like systems still insist on using tabs as field 5 | # separators. If you are sharing this file between systems, you 6 | # may want to use only tabs as field separators here. 7 | # Consult the syslog.conf(5) manpage. 8 | *.err;kern.warning;auth.notice;mail.crit /dev/console 9 | *.notice;authpriv.none;kern.debug;lpr.info;mail.crit;news.err /var/log/messages 10 | security.* /var/log/security 11 | auth.info;authpriv.info /var/log/auth.log 12 | mail.info /var/log/maillog 13 | cron.* /var/log/cron 14 | !-devd 15 | *.=debug /var/log/debug.log 16 | *.emerg * 17 | # uncomment this to log all writes to /dev/console to /var/log/console.log 18 | # touch /var/log/console.log and chmod it to mode 600 before it will work 19 | console.info /var/log/console.log 20 | # uncomment this to enable logging of all log messages to /var/log/all.log 21 | # touch /var/log/all.log and chmod it to mode 600 before it will work 22 | #*.* /var/log/all.log 23 | # uncomment this to enable logging to a remote loghost named loghost 24 | #*.* @loghost 25 | # uncomment these if you're running inn 26 | # news.crit /var/log/news/news.crit 27 | # news.err /var/log/news/news.err 28 | # news.notice /var/log/news/news.notice 29 | # Uncomment this if you wish to see messages produced by devd 30 | # !devd 31 | # *.>=notice /var/log/devd.log 32 | !* 33 | include /etc/syslog.d 34 | include /usr/local/etc/syslog.d 35 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-live-settings/files/usr/local/share/data/freebsd-install/LICENSE: -------------------------------------------------------------------------------- 1 | BSD 2-Clause License 2 | 3 | Copyright (c) 2020, Simon Peter 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | 1. Redistributions of source code must retain the above copyright notice, this 10 | list of conditions and the following disclaimer. 11 | 12 | 2. Redistributions in binary form must reproduce the above copyright notice, 13 | this list of conditions and the following disclaimer in the documentation 14 | and/or other materials provided with the distribution. 15 | 16 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 17 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 20 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 22 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 23 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 24 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 25 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | 27 | 28 | The FreeBSD Logo and the mark FreeBSD are registered trademarks of The FreeBSD Foundation 29 | and are used by Simon Peter with the permission of The FreeBSD Foundation. 30 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | BSD 3-Clause License 2 | 3 | Copyright (c) 2019-2020, Joe Maloney 4 | Copyright (c) 2020, Simon Peter 5 | 6 | All rights reserved. 7 | 8 | Redistribution and use in source and binary forms, with or without 9 | modification, are permitted provided that the following conditions are met: 10 | 11 | 1. Redistributions of source code must retain the above copyright notice, this 12 | list of conditions and the following disclaimer. 13 | 14 | 2. Redistributions in binary form must reproduce the above copyright notice, 15 | this list of conditions and the following disclaimer in the documentation 16 | and/or other materials provided with the distribution. 17 | 18 | 3. Neither the name of the copyright holder nor the names of its 19 | contributors may be used to endorse or promote products derived from 20 | this software without specific prior written permission. 21 | 22 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 23 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 24 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 25 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 26 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 28 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 29 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 30 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 31 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32 | -------------------------------------------------------------------------------- /overlays/boot/boot/loader.conf: -------------------------------------------------------------------------------- 1 | # Decrease boot verbosity, show splash 2 | # and fix resolution setting for Intel 3 | boot_mute="YES" 4 | verbose_loading="NO" 5 | beastie_disable="YES" 6 | autoboot_delay=1 7 | 8 | # kern.vty=vt 9 | 10 | fuse_load="YES" 11 | 12 | geom_uzip_load="YES" 13 | mfsroot_load="YES" 14 | nullfs_load="YES" 15 | tmpfs_load="YES" 16 | 17 | mfsroot_type="md_image" 18 | mfsroot_name="/data/ramdisk.ufs" 19 | vfs.root.mountfrom="ufs:/dev/md0" 20 | 21 | init_path="/rescue/init" 22 | init_shell="/rescue/sh" 23 | init_script="/init.sh" 24 | init_chroot="/" 25 | 26 | kern.geom.label.disk_ident.enable=0 27 | kern.geom.label.gptid.enable=0 28 | kern.geom.label.ufsid.enable=0 29 | 30 | # Wait for all device probe to complete before mounting root, even if the 31 | # root device is already available. This allows to avoid USB probe messages 32 | # printed over the installer menu. This is needed only in installer with 33 | # its UFS, since ZFS root of installed system implies it automatically. 34 | vfs.root_mount_always_wait="1" 35 | 36 | # The following delay during mounting of root file 37 | # system is needed because mounting of an IPMI CD-ROM 38 | # sometimes slow. 39 | vfs.mountroot.timeout="180" 40 | 41 | # Disable entropy cache 42 | entropy_cache_load="NO" 43 | 44 | # Load modules for OpenZFS 45 | opensolaris_load="YES" 46 | zfs_load="YES" 47 | 48 | # Tune arc for lower memory usage during LiveCD session 49 | vm.kmem_size="330M" 50 | vm.kmem_size_max="330M" 51 | vfs.zfs.arc_max="40M" 52 | vfs.zfs.vdev.cache.size="5M" 53 | 54 | # Add support for I2C devices 55 | ig4_load="YES" 56 | iicbus_load="YES" 57 | iichid_load="YES" 58 | 59 | # Prevent panic with intel based network cards 60 | kern.ipc.nmbclusters="1000000" 61 | -------------------------------------------------------------------------------- /scripts/mkisoimages-i386.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Module: mkisoimages.sh 4 | # Author: Jordan K Hubbard 5 | # Date: 22 June 2001 6 | # 7 | # $FreeBSD$ 8 | # 9 | # This script is used by release/Makefile to build the (optional) ISO images 10 | # for a FreeBSD release. It is considered architecture dependent since each 11 | # platform has a slightly unique way of making bootable CDs. This script 12 | # is also allowed to generate any number of images since that is more of 13 | # publishing decision than anything else. 14 | # 15 | # Usage: 16 | # 17 | # mkisoimages.sh [-b] image-label image-name base-bits-dir [extra-bits-dir] 18 | # 19 | # Where -b is passed if the ISO image should be made "bootable" by 20 | # whatever standards this architecture supports (may be unsupported), 21 | # image-label is the ISO image label, image-name is the filename of the 22 | # resulting ISO image, base-bits-dir contains the image contents and 23 | # extra-bits-dir, if provided, contains additional files to be merged 24 | # into base-bits-dir as part of making the image. 25 | 26 | set -e 27 | 28 | if [ "$1" = "-b" ]; then 29 | # This is highly x86-centric and will be used directly below. 30 | bootable="-o bootimage=i386;$4/boot/cdboot -o no-emul-boot" 31 | shift 32 | else 33 | bootable="" 34 | fi 35 | 36 | if [ $# -lt 3 ]; then 37 | echo "Usage: $0 [-b] image-label image-name base-bits-dir [extra-bits-dir]" 38 | exit 1 39 | fi 40 | 41 | LABEL=`echo "$1" | tr '[:lower:]' '[:upper:]'`; shift 42 | NAME="$1"; shift 43 | 44 | publisher="The FreeBSD Project. https://www.FreeBSD.org/" 45 | echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > "$1/etc/fstab" 46 | makefs -t cd9660 $bootable -o rockridge -o label="$LABEL" -o publisher="$publisher" "$NAME" "$@" 47 | rm -f "$1/etc/fstab" 48 | -------------------------------------------------------------------------------- /.cirrus.yml: -------------------------------------------------------------------------------- 1 | freebsd_instance: 2 | image: freebsd-12-1-release-amd64 3 | # cpu: 1 gives an error; >2 works 4 | cpu: 2 5 | memory: 8G 6 | 7 | env: 8 | CIRRUS_CLONE_DEPTH: 1 9 | GITHUB_TOKEN: ENCRYPTED[ed170fdbb21e31f2f09259d8e5ef007450794ee10d9f3a6387661ecd35d1f9b4d1f6a888d01f3d223e19582328bc6f9f] 10 | 11 | task: 12 | stateful: false 13 | timeout_in: 60m 14 | only_if: $CIRRUS_TAG != 'continuous' 15 | 16 | env: 17 | matrix: 18 | # DESKTOP: 'lumina' 19 | # DESKTOP: 'xfce' 20 | # DESKTOP: 'mate' 21 | # DESKTOP: 'kde' 22 | DESKTOP: 'gnustep' 23 | 24 | env: 25 | matrix: 26 | arch: 'amd64' 27 | # arch: 'i386' 28 | 29 | install_script: 30 | - ls -lh /usr/src || true 31 | - env 32 | - kldload zfs.ko 33 | - kldload tmpfs.ko 34 | - kldload nullfs.ko 35 | - kldload geom_uzip.ko 36 | - pkg install -y pkg git-lite zsync wget sha bash # qemu-devel uefi-edk2-qemu-x86_64 37 | - mkdir -p /usr/local/furybsd 38 | - mount -t tmpfs tmpfs /usr/local/furybsd 39 | 40 | test_script: 41 | - /bin/sh -x ./build.sh "${DESKTOP}" || true # FIXME: Why does this return an error even though the ISO succeeded? 42 | - df -h 43 | - ( cd "${CIRRUS_WORKING_DIR}"/artifacts ; zsyncmake *.iso ) 44 | - ls -lh "${CIRRUS_WORKING_DIR}"/artifacts/ 45 | - wget -c "https://raw.githubusercontent.com/probonopd/uploadtool/8142d461aba7b92a058116fe5ee75be438b75fa4/upload.sh" 46 | - export TRAVIS_REPO_SLUG="${CIRRUS_REPO_FULL_NAME}" 47 | - case "$CIRRUS_BRANCH" in *pull/*) echo skipping since PR ;; * ) wget https://github.com/tcnksm/ghr/files/5247714/ghr.zip ; unzip ghr.zip ; ./ghr -replace -t "${GITHUB_TOKEN}" -u "${CIRRUS_REPO_OWNER}" -r "${CIRRUS_REPO_NAME}" -c "${CIRRUS_CHANGE_IN_REPO}" continuous "${CIRRUS_WORKING_DIR}"/artifacts ; esac 48 | 49 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-settings/files/etc/newsyslog.conf: -------------------------------------------------------------------------------- 1 | # configuration file for newsyslog 2 | # $FreeBSD: releng/12.1/usr.sbin/newsyslog/newsyslog.conf 337686 2018-08-12 13:24:53Z brd $ 3 | # 4 | # Entries which do not specify the '/pid_file' field will cause the 5 | # syslogd process to be signalled when that log file is rotated. This 6 | # action is only appropriate for log files which are written to by the 7 | # syslogd process (ie, files listed in /etc/syslog.conf). If there 8 | # is no process which needs to be signalled when a given log file is 9 | # rotated, then the entry for that file should include the 'N' flag. 10 | # 11 | # Note: some sites will want to select more restrictive protections than the 12 | # defaults. In particular, it may be desirable to switch many of the 644 13 | # entries to 640 or 600. For example, some sites will consider the 14 | # contents of maillog, messages, and lpd-errs to be confidential. In the 15 | # future, these defaults may change to more conservative ones. 16 | # 17 | # logfilename [owner:group] mode count size when flags [/pid_file] [sig_num] 18 | /var/log/all.log 600 7 * @T00 J 19 | /var/log/auth.log 600 7 1000 @0101T JC 20 | /var/log/console.log 600 5 1000 * JC 21 | /var/log/cron 600 3 1000 * JC 22 | /var/log/daily.log 640 7 * @T00 JN 23 | /var/log/debug.log 600 7 1000 * JC 24 | /var/log/init.log 644 3 1000 * J 25 | /var/log/kerberos.log 600 7 1000 * J 26 | /var/log/maillog 640 7 * @T00 JC 27 | /var/log/messages 644 5 1000 @0101T JC 28 | /var/log/monthly.log 640 12 * $M1D0 JN 29 | /var/log/devd.log 644 3 1000 * JC 30 | /var/log/security 600 10 1000 * JC 31 | /var/log/utx.log 644 3 * @01T05 B 32 | /var/log/weekly.log 640 5 * $W6D0 JN 33 | 34 | /etc/newsyslog.conf.d/* 35 | /usr/local/etc/newsyslog.conf.d/* 36 | -------------------------------------------------------------------------------- /overlays/ramdisk/init.sh: -------------------------------------------------------------------------------- 1 | #!/rescue/sh 2 | 3 | PATH="/rescue" 4 | 5 | if [ "`ps -o command 1 | tail -n 1 | ( read c o; echo ${o} )`" = "-s" ]; then 6 | echo "==> Running in single-user mode" 7 | SINGLE_USER="true" 8 | fi 9 | 10 | echo "==> Remount rootfs as read-write" 11 | mount -u -w / 12 | 13 | echo "==> Make mountpoints" 14 | mkdir -p /cdrom /memdisk /sysroot /tmp 15 | 16 | echo "Waiting for FURYBSD media to initialize" 17 | while : ; do 18 | [ -e "/dev/iso9660/FURYBSD" ] && echo "found /dev/iso9660/FURYBSD" && break 19 | sleep 1 20 | done 21 | 22 | echo "==> Mount cdrom" 23 | mount_cd9660 /dev/iso9660/FURYBSD /cdrom 24 | mdconfig -f /cdrom/data/system.uzip -u 1 25 | zpool import furybsd -o readonly=on 26 | 27 | # Make room for backup in /tmp 28 | mount -t tmpfs tmpfs /tmp 29 | 30 | if [ "$SINGLE_USER" = "true" ]; then 31 | echo "Starting interactive shell in temporary rootfs ..." 32 | exit 0 33 | fi 34 | 35 | # Ensure the system has more than enough memory for memdisk 36 | x=3163787264 37 | y=$(chroot /usr/local/furybsd/uzip /sbin/sysctl hw.physmem | chroot /usr/local/furybsd/uzip /usr/bin/awk '{print $2}') 38 | echo "Required memory ${x} for memdisk" 39 | echo "Detected memory ${y} for memdisk" 40 | if [ $x -gt $y ] ; then 41 | echo "FuryBSD requires 4GB of memory for memdisk, and operation!" 42 | echo "Type exit, and press enter after entering the rescue shell to power off." 43 | exit 1 44 | fi 45 | 46 | echo "==> Mount swap-based memdisk" 47 | mdconfig -a -t swap -s 3g 48 | gpart create -s GPT md2 49 | gpart add -t freebsd-zfs md2 50 | zpool create livecd /dev/md2p1 51 | zfs set compression=gzip livecd 52 | zfs set primarycache=none livecd 53 | zpool status 54 | zfs send -c furybsd | chroot /usr/local/furybsd/uzip pv | zfs recv -F livecd 55 | 56 | mount -t devfs devfs /livecd/dev 57 | chroot /livecd /usr/local/bin/furybsd-init-helper 58 | 59 | kenv init_shell="/rescue/sh" 60 | exit 0 61 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-xfce-live-settings/files/usr/share/skel/dot.config/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /settings/packages.gnustep: -------------------------------------------------------------------------------- 1 | otter-browser 2 | automount 3 | windowmaker 4 | # WindowMaker and GWorkspace seem to be redundant, so I consider WindowMaker a temporary solution to be replaced soon 5 | # fluxbox 6 | # Use slim until we find something using AppKit 7 | slim 8 | compton 9 | # FIXME: How to do this properly: 10 | # wget https://www.freshports.org/gnustep/ -O - | grep "" | cut -d ">" -f 4 | cut -d '"' -f 2 | cut -d "/" -f 3 | sort | uniq 11 | # aclock 12 | # addresses 13 | # addresses-goodies 14 | affiche 15 | appwrapper 16 | # batmon 17 | biococoa 18 | camera 19 | camerakit 20 | cartotheque 21 | cddb-bundle 22 | cenon 23 | duncan 24 | easydiff 25 | edenmath 26 | expense 27 | fisicalab 28 | fortunate 29 | fortytwo 30 | fortytwo-bdb 31 | fortytwo-encore 32 | # gmastermind 33 | # gmines 34 | gnumail 35 | gnustep 36 | # gnustep-app 37 | gnustep-back 38 | gnustep-base 39 | gnustep-cdplayer 40 | # gnustep-ftp 41 | gnustep-gui 42 | # gnustep-ladder 43 | gnustep-make 44 | # gnustep-sudoku 45 | gnustep-wrapper 46 | gomoku 47 | gorm 48 | # graphos 49 | grr 50 | grubik 51 | gscheme 52 | # gshisen 53 | gskrab 54 | gspdf 55 | gtamsanalyzer 56 | gworkspace 57 | # gworkspace-gwmetadata 58 | helpviewer 59 | highlighterkit 60 | imageviewer 61 | # innerspace 62 | # jigsaw 63 | # jishyo 64 | # lapispuzzle 65 | # laternamagica 66 | latex-service 67 | libobjc2 68 | localize 69 | lusernet 70 | mpdcon 71 | # nextgo 72 | # oolite 73 | paje 74 | pantomime 75 | performance 76 | pikopixel 77 | pixen 78 | plopfolio 79 | poe 80 | popup 81 | preferences 82 | # preview 83 | price 84 | projectcenter 85 | # remotedesk 86 | rsskit 87 | simpleagenda 88 | sogo2 89 | sogo2-activesync 90 | sogo4 91 | sogo4-activesync 92 | sope2 93 | sope4 94 | sqlclient 95 | # stepsync 96 | systempreferences 97 | # terminal.app 98 | # timemon 99 | toolboxkit 100 | # unarchiver 101 | waiho 102 | wizardkit 103 | zillion 104 | # zipper 105 | # gmake is needed to build anything GNUstep, so we should bundle it 106 | gmake 107 | # py37-xdg and py37-psutil are needed by desktop-to-app-wrapper 108 | py37-xdg 109 | py37-psutil 110 | # git-lite is useful for developing, which people will want to do in GNUstep... 111 | git-lite 112 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-wifi-tool/files/usr/local/bin/furybsd-wifi-tool: -------------------------------------------------------------------------------- 1 | #!/usr/local/bin/bash 2 | 3 | # Only run as superuser 4 | if [ "$(id -u)" != "0" ]; then 5 | echo "This script must be run as root" 1>&2 6 | exit 1 7 | fi 8 | 9 | rm /tmp/wifi-devices-found.list 2>/dev/null || true 10 | rm /tmp/wifi-selection 2>/dev/null || true 11 | rm /tmp/wlan-selection 2>/dev/null || true 12 | 13 | # Check for no wifi devices and exit if none found 14 | 15 | wnic=$(sysctl -b net.wlan.devices) 16 | if [ "$?" -eq 0 ] && [ -z "${wnic}" ] ; then 17 | zenity --warning --no-wrap --text="No wlan devices found" 18 | exit 0 19 | fi 20 | 21 | # Check for existing wifi devices in rc.conf 22 | grep -q "^wlans" /etc/rc.conf 23 | if [ $? -eq 0 ] ; then 24 | WLANCOUNT=$(cat /etc/rc.conf | grep "^wlans_" | wc -l | awk '{print 1}') 25 | else 26 | WLANCOUNT="0" 27 | fi 28 | WLAN="wlan${WLANCOUNT}" 29 | 30 | 31 | # Check for any new wifi devices to setup 32 | for wnic in `sysctl -b net.wlan.devices 2>/dev/null` 33 | do 34 | echo ${wnic} >> /tmp/wifi-devices-found.list 35 | done 36 | 37 | # Present list of detected wifi devices 38 | cat /tmp/wifi-devices-found.list | zenity --list --width=640 --height=480 \ 39 | --title="FuryBSD Wifi Tool" \ 40 | --text="Detected wifi devices" \ 41 | --column="Module" | tee /tmp/wifi-selection 42 | 43 | # Now configure the wifi device in rc.conf based on user selection 44 | wnic=$(cat /tmp/wifi-selection) 45 | if [ "$?" -eq 0 ] && [ -z "${wnic}" ] ; then 46 | exit 0 47 | fi 48 | cat /etc/rc.conf 2>/dev/null | grep -q "wlans_${wnic}=" 49 | if [ $? -ne 0 ] ; then 50 | sysrc wlans_${wnic}="${WLAN}" 51 | sysrc ifconfig_${WLAN}="WPA" 52 | service netif restart ${WLAN} 53 | cat /etc/rc.conf | grep ${wnic} | cut -d'"' -f2 > /tmp/wlan-selection 54 | WLAN=$(cat /tmp/wlan-selection) 55 | ifconfig ${WLAN} up scan 56 | killall wpa_gui 2>/dev/null || true 57 | wpa_gui -i ${WLAN} 58 | else 59 | cat /etc/rc.conf | grep ${wnic} | cut -d'"' -f2 > /tmp/wlan-selection 60 | WLAN=$(cat /tmp/wlan-selection) 61 | ifconfig ${WLAN} up scan 62 | killall wpa_gui 2>/dev/null || true 63 | wpa_gui -i ${WLAN} 64 | fi 65 | 66 | rm /tmp/wifi-devices-found.list 2>/dev/null || true 67 | rm /tmp/wifi-selection 2>/dev/null || true 68 | rm /tmp/wlan-selection 2>/dev/null || true 69 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-live-settings/files/usr/local/share/data/freebsd-install/README.md: -------------------------------------------------------------------------------- 1 | # Install FreeBSD 2 | 3 | ## Theory of operation 4 | 5 | * The graphical installer frontend is an assistant (wizard) that guides the user through the installation. It consists of multiple pages. 6 | * None of the actual "business logic" (the actual installer) is implemented in the graphical installer frontend. Instead, a shell script is called to perform the installation. 7 | * The graphical installer frontend shows a progress bar during installation. This is calculated by bytes on the target disk divided by bytes needed 8 | * When the disk selection screen is shown, the graphical installer frontend will invoke the shell script with `INSTALL` 9 | 10 | ## Environment variables 11 | 12 | Environment variables are the proposed way for communicating back and forth between the installer script and the graphical installer frontend. 13 | 14 | ### For retrieving the required space on the target disk 15 | 16 | * `INSTALLER_PRINT_MIB_NEEDED=YES` 17 | 18 | When this is present, the installer must respond with just the number of bytes required on the target disk, e.g., `INSTALLER_MIB_NEEDED=2158`. The installer script must write this to stderr and then exit with no further action. 19 | 20 | ### For performing the installation 21 | 22 | When these are present, the installer script must proceed with the installation with no further questions asked. 23 | 24 | * `INSTALLER_ROOT_PASSWORD`, e.g., `p!wrd&ejwH` 25 | * `INSTALLER_USERNAME`, e.g., `john` 26 | * `INSTALLER_USER_PASSWORD`, e.g., `7§97jhejwH` 27 | * `INSTALLER_HOSTNAME`, e.g., `johns-computer` 28 | * `INSTALLER_DEVICE`, e.g., `da1` 29 | * `INSTALLER_LANGUAGE`, e.g., `zh` 30 | * `INSTALLER_COUNTRY`, e.g., `CN` 31 | * `INSTALLER_LOCALE_UTF8`, e.g., `zh_CN.UTF-8` 32 | 33 | During installation, the installer script should make liberal use of `stdout` and `stderr`. These will not be shown to the user by default but may be helpful for debugging. 34 | 35 | The installer script must exit with the exit code `0` on success and may use any other exit codes otherwise. If so desired, we can align on different exit codes that can trigger different reactions in the graphical installer frontend. 36 | 37 | ## Trademarks 38 | 39 | The FreeBSD Logo and the mark FreeBSD are registered trademarks of The FreeBSD Foundation and are used by Simon Peter with the permission of The FreeBSD Foundation. 40 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-gnustep-live-settings/files/usr/local/etc/xdg/compton.conf: -------------------------------------------------------------------------------- 1 | # Also see 2 | # https://github.com/BertrandDekoninck/WindowMaker-session/blob/master/compton.conf 3 | 4 | # Shadow 5 | shadow = true; 6 | no-dnd-shadow = true; 7 | no-dock-shadow = true; 8 | clear-shadow = true; 9 | shadow-radius = 27; 10 | shadow-offset-x = -27; 11 | shadow-offset-y = -27; 12 | shadow-opacity = 0.66; 13 | # shadow-red = 0.0; 14 | # shadow-green = 0.0; 15 | # shadow-blue = 0.0; 16 | # shadow-exclude = "n:e:Notification"; 17 | # shadow-exclude-reg = "x10+0+0"; 18 | # xinerama-shadow-crop = true; 19 | 20 | # Opacity 21 | # menu-opacity = 0.8; 22 | # inactive-opacity = 0.8; 23 | # active-opacity = 0.8; 24 | # frame-opacity = 0.7; 25 | inactive-opacity-override = false; 26 | alpha-step = 0.06; 27 | # inactive-dim = 0.2; 28 | # inactive-dim-fixed = true; 29 | # blur-background = true; 30 | # blur-background-frame = true; 31 | blur-kern = "3x3box"; 32 | # blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"; 33 | # blur-background-fixed = true; 34 | blur-background-exclude = [ 35 | "window_type = 'dock'", 36 | "window_type = 'desktop'", 37 | "_GTK_FRAME_EXTENTS@:c" 38 | ]; 39 | # opacity-rule = [ "80:class_g = 'URxvt'" ]; 40 | 41 | # Fading 42 | # fading = true; 43 | # fade-delta = 30; 44 | fade-in-step = 0.03; 45 | fade-out-step = 0.03; 46 | # no-fading-openclose = true; 47 | # no-fading-destroyed-argb = true; 48 | fade-exclude = [ ]; 49 | 50 | # Other 51 | backend = "xrender"; 52 | mark-wmwin-focused = true; 53 | mark-ovredir-focused = true; 54 | # use-ewmh-active-win = true; 55 | detect-rounded-corners = true; 56 | detect-client-opacity = true; 57 | refresh-rate = 0; 58 | vsync = "none"; 59 | dbe = false; 60 | paint-on-overlay = true; 61 | # sw-opti = true; 62 | # unredir-if-possible = true; 63 | # unredir-if-possible-delay = 5000; 64 | # unredir-if-possible-exclude = [ ]; 65 | focus-exclude = [ "class_g = 'Cairo-clock'" ]; 66 | detect-transient = true; 67 | detect-client-leader = true; 68 | invert-color-include = [ ]; 69 | # resize-damage = 1; 70 | 71 | # GLX backend 72 | # glx-no-stencil = true; 73 | glx-copy-from-front = false; 74 | # glx-use-copysubbuffermesa = true; 75 | # glx-no-rebind-pixmap = true; 76 | glx-swap-method = "undefined"; 77 | # glx-use-gpushader4 = true; 78 | # xrender-sync = true; 79 | # xrender-sync-fence = true; 80 | 81 | # Window type settings 82 | wintypes: 83 | { 84 | tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; }; 85 | }; 86 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-gnustep-live-settings/files/usr/share/skel/GNUstep/Defaults/WindowMaker: -------------------------------------------------------------------------------- 1 | { 2 | FrameBorderColor = "#000000"; 3 | FTitleColor = "#000000"; 4 | WindowTitleBalloons = NO; 5 | MenuDisabledColor = "#7f7f7f"; 6 | CycleIgnoreMinimized = NO; 7 | IconTitleBack = "#000000"; 8 | FTitleBack = (solid, "#e0e0e0"); 9 | ClipTitleFont = "Luxi Sans:slant=0:weight=200:width=100:pixelsize=13"; 10 | MiniwindowPreviewBalloons = NO; 11 | MouseForwardButtonAction = None; 12 | IconTitleFont = "Luxi Sans:slant=0:weight=80:width=100:pixelsize=13"; 13 | LargeDisplayFont = "Luxi Sans:slant=0:weight=80:width=100:pixelsize=24"; 14 | MoveDisplay = none; 15 | IconTitleColor = "#ffffff"; 16 | MenuTitleColor = "#ffffff"; 17 | MouseWheelTiltAction = None; 18 | MenuTitleFont = "Luxi Sans:slant=0:weight=200:width=100:pixelsize=13"; 19 | EnableWorkspacePager = NO; 20 | NoWindowOverDock = NO; 21 | WorkspaceBack = (solid, "#4574a2"); 22 | HighlightTextColor = "#000000"; 23 | SnapEdgeDetect = 1; 24 | HelpBalloons = NO; 25 | WindowSnapping = YES; 26 | ClipTitleColor = "#000000"; 27 | AppIconBalloons = NO; 28 | MoveHalfMaximizedWindowsBetweenScreens = NO; 29 | FrameFocusedBorderColor = "#000000"; 30 | WindowTitleFont = "Luxi Sans:slant=0:weight=200:width=100:pixelsize=13"; 31 | ResizebarBack = (solid, "#e3e3e3"); 32 | MouseBackwardButtonAction = None; 33 | KbdModeLock = NO; 34 | CycleActiveHeadOnly = NO; 35 | IgnoreGtkHints = NO; 36 | ShowClipTitle = YES; 37 | FrameSelectedBorderColor = "#ffffff"; 38 | AlternativeHalfMaximized = NO; 39 | DragMaximizedWindow = Move; 40 | DoNotMakeAppIconsBounce = NO; 41 | MiniwindowTitleBalloons = NO; 42 | OpaqueResize = NO; 43 | MenuTextBack = (solid, "#e1e1e1"); 44 | RaiseAppIconsWhenBouncing = NO; 45 | ResizeIncrement = 0; 46 | OpaqueMoveResizeKeyboard = NO; 47 | MenuTextColor = "#000000"; 48 | Attraction = NO; 49 | SingleClickLaunch = NO; 50 | IconBack = (solid, "#e3e3e3"); 51 | AntialiasedText = YES; 52 | DisableBlinking = NO; 53 | WorkspaceNameDisplayPosition = center; 54 | MenuTextFont = "Luxi Sans:slant=0:weight=80:width=100:pixelsize=13"; 55 | SnapCornerDetect = 10; 56 | DisableMiniwindows = YES; 57 | SnapToTopMaximizesFullscreen = YES; 58 | HighlightColor = "#ffffff"; 59 | PointerWithHalfMaxWindows = NO; 60 | CClipTitleColor = "#616161"; 61 | MenuStyle = flat; 62 | UTitleColor = "#000000"; 63 | BounceAppIconsWhenUrgent = YES; 64 | ViKeyMenus = NO; 65 | UTitleBack = (solid, "#e1e1e1"); 66 | HighlightActiveApp = YES; 67 | CirculateRaise = NO; 68 | PTitleColor = "#ffffff"; 69 | ResizeDisplay = none; 70 | } 71 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-gnustep-live-settings/files/usr/local/bin/start-gnustep: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | . /usr/local/GNUstep/System/Makefiles/GNUstep.sh 4 | 5 | # This works; commented out since we ship a plist which sets this 6 | # defaults write NSGlobalDomain GSTheme Rik 7 | 8 | # Enable global menu bar; commented out since we ship a plist which sets this 9 | # defaults write NSGlobalDomain NSMenuInterfaceStyle NSMacintoshInterfaceStyle 10 | 11 | # Does this do anything?; commented out since we ship a plist which sets this 12 | # defaults write NSGlobalDomain GSBackHandlesWindowDecoration YES # https://github.com/AlessandroSangiuliano/uroswm/issues/2#issuecomment-695198746 13 | 14 | # Do not show hidden files in GWorkspace; commented out since we ship a plist which sets this 15 | # defaults write NSGlobalDomain GSFileBrowserHideDotFiles YES 16 | 17 | # Enable GSPdf 18 | defaults write GSPdf GhostScriptPath /usr/local/bin/gs 19 | 20 | # Fonts; commented out since we ship a plist which sets this 21 | # defaults write NSGlobalDomain NSFont "Luxi Sans" 22 | # defaults write NSGlobalDomain NSBoldFont "Luxi Sans" 23 | # defaults write NSGlobalDomain NSUserFont "Luxi Sans" 24 | # defaults write NSGlobalDomain NSFontSize "13" 25 | 26 | # Enable single click for the Dock; needs patched GWorkspace from 27 | # https://github.com/BertrandDekoninck/gworkspace; commented out since we ship a plist which sets this 28 | # defaults write GWorkspace dockclickpolicy 1 29 | 30 | # Use Terminal.app; commented out since we ship a plist which sets this 31 | # defaults write GWorkspace terminal_services YES 32 | 33 | # Bring Dock to the left; commented out since we ship a plist which sets this 34 | # defaults write GWorkspace dockposition 0 35 | 36 | # Put applications into Dock; commented out since we ship a plist which sets this 37 | # defaults write GWorkspace applications '{ 1 = TextEdit; 2 = Terminal; 3 = SimpleAgenda; 4 = GNUMail; 5 = Gorm; 6 = ProjectCenter; }' 38 | 39 | # Set wallpaper color to blue; commented out since we ship a plist which sets this 40 | # defaults write GWorkspace desktopinfo '{ backcolor = { alpha = 1; blue = "0.7"; green = "0.5"; red = "0.3"; }; "fsn_info_type" = 0; iconposition = 5; iconsize = 48; imagestyle = 0; indexes = { }; labeltxtsize = 12; usebackimage = 0;}' 41 | 42 | # Drop shadows 43 | compton & 44 | 45 | # Show a global menu while a non-GS application is foremost 46 | openapp TopBar & 47 | 48 | # Does not work properly yet, still in early development 49 | # uroswm 50 | 51 | # TODO: Replace Window Maker with something more suitable 52 | # For now, start it in the background, this way it will not show up when GWorkspace exits 53 | wmaker --dont-restore --no-autolaunch --no-clip --no-dock --no-drawer --replace --static & 54 | 55 | # Exit the session when GWorkspace exits 56 | openapp GWorkspace 57 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-xfce-live-settings/files/usr/share/skel/dot.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /scripts/build-pkg.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # https://github.com/dwcarder/oneoff-pkg-create 4 | # build a one-off FreeBSD package (outside of the ports ecosystem) 5 | # 2017-02-13 Dale W. Carder 6 | # 7 | # Requires: 8 | # 1) a MANIFEST.template file specifying some package manifest metadata 9 | # with the exception of the files to be installed which this script 10 | # generates. 11 | # 12 | # 2) a Makefile in the current directory with an install target that 13 | # allows specifying installation into a STAGEDIR directory. 14 | # 15 | # OR) specify a directory that already contains a filesystem with 16 | # the components to be packaged. 17 | # 18 | # This code is forked from https://github.com/danrue/oneoff-pkg-create 19 | # by Dan Rue which was in turn based on 20 | # https://github.com/bdrewery/freebsd_base_pkgng by Bryan Drewery 21 | # . 22 | 23 | usage () { 24 | echo "Usage: $0 -m [-d ]" 25 | exit 1 26 | } 27 | 28 | OPTIND=1 # Reset in case getopts has been used previously in the shell. 29 | #MANIFEST_TEMPLATE="" 30 | STAGEDIR="" 31 | FILES_MODE=false 32 | 33 | while getopts "h?m:d:" opt; do 34 | case "$opt" in 35 | h|\?) 36 | usage 37 | exit 0 38 | ;; 39 | m) MANIFEST_TEMPLATE=$OPTARG 40 | ;; 41 | d) case $OPTARG in 42 | # this mess removes trailing slashes. 43 | *[!/]*/) OPTARG=${OPTARG%"${OPTARG##*[!/]}"};; 44 | esac 45 | STAGEDIR=${OPTARG} 46 | FILES_MODE=true 47 | ;; 48 | esac 49 | done 50 | 51 | shift $((OPTIND-1)) 52 | [ "$1" = "--" ] && shift 53 | 54 | if [ -z ${MANIFEST_TEMPLATE+x} ] ; then 55 | echo "manifest template not defined." 56 | usage 57 | fi 58 | if [ ! -e ${MANIFEST_TEMPLATE} ]; then 59 | echo "can't find manifest template. " 60 | usage 61 | fi 62 | 63 | if [ ${FILES_MODE} = true ]; then 64 | if [ ! -d ${STAGEDIR} ]; then 65 | echo "can't find files directory. " 66 | usage 67 | fi 68 | else 69 | if [ ! -e Makefile ]; then 70 | echo "can't find a Makefile in the current directory. " 71 | echo "Put one there that understands installing into a STAGEDIR, otherwise use the -d option." 72 | usage 73 | fi 74 | 75 | # makefile mode, install into a temp dir that we will package up 76 | export STAGEDIR=/tmp/stage.$$ 77 | mkdir ${STAGEDIR} 78 | make install 79 | fi 80 | 81 | 82 | DIR_SIZE=$(find ${STAGEDIR} -type f -exec stat -f %z {} + | awk 'BEGIN {s=0} {s+=$1} END {print s}') 83 | export DIR_SIZE 84 | { 85 | # parse the template 86 | . ${MANIFEST_TEMPLATE} 87 | } > +MANIFEST 88 | 89 | { 90 | # Add files in 91 | echo "files {" 92 | find ${STAGEDIR} -type f -exec sha256 -r {} + | 93 | awk '{print " " $2 " = \{sum: \"" $1 "\", uname: root, gname: wheel\} ;" }' 94 | 95 | # Add symlinks in 96 | find ${STAGEDIR} -type l | 97 | awk "{print \" /\" \$1 \": '-'\"}" 98 | 99 | echo "}" 100 | 101 | # note, I haven't tested this 102 | # Add empty directories in 103 | #echo "directories:" 104 | #find ${STAGEDIR} -type d -mindepth 1 | 105 | # awk '{print " /" $1 ": y"}' 106 | 107 | } | sed -e "s:${STAGEDIR}::" >> +MANIFEST 108 | 109 | 110 | # Create the package 111 | pkg create -r ${STAGEDIR} -m . -o . 112 | 113 | # clean up our mess 114 | rm +MANIFEST 115 | if [ ${FILES_MODE} = false ]; then 116 | rm -r ${STAGEDIR} 117 | fi 118 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-xorg-tool/files/usr/local/bin/furybsd-xorg-tool: -------------------------------------------------------------------------------- 1 | #!/usr/local/bin/bash 2 | 3 | # Only run as superuser 4 | if [ "$(id -u)" != "0" ]; then 5 | echo "This script must be run as root" 1>&2 6 | exit 1 7 | fi 8 | 9 | # Ensure pkg.freebsd.org is reachable first 10 | 11 | if netstat -rn | grep default &> /dev/null 12 | then 13 | echo "pkg.freebsd.org found" 14 | else 15 | zenity --info --title="FuryBSD Xorg Tool" --text="A working internet connection is required first" --width=300 --height=100 16 | exit 1 17 | fi 18 | 19 | ask=`zenity --list --title="FuryBSD Xorg Tool" --column="0" "Intel" "nVidia" --width=300 --height=200 --hide-header` 20 | 21 | if [ "$ask" == "Intel" ]; then 22 | ask=`zenity --list --title="FuryBSD Xorg Tool" --column="0" "drm-kmod" "drm-legacy-kmod" "xf86-video-intel" --width=300 --height=200 --hide-header` 23 | if [ "$ask" == "drm-kmod" ]; then 24 | rm /etc/X11/xorg.conf 25 | xterm -e pkg install -fy drm-kmod && pkg clean -a -y 26 | zenity --info --title="FuryBSD Xorg Tool" --text="Xorg will now be restarted" --width=300 --height=100 27 | sysrc -f /etc/rc.conf kld_list+="/boot/modules/i915kms.ko" 28 | service kld restart 29 | killall Xorg 30 | fi 31 | if [ "$ask" == "drm-legacy-kmod" ]; then 32 | rm /etc/X11/xorg.conf 33 | xterm -e pkg install -fy drm-legacy-kmod && pkg clean -a -y 34 | zenity --info --title="FuryBSD Xorg Tool" --text="Xorg will now be restarted" --width=300 --height=100 35 | sysrc -f /etc/rc.conf kld_list+="/boot/modules/i915kms.ko" 36 | service kld restart 37 | killall Xorg 38 | fi 39 | if [ "$ask" == "xf86-video-intel" ]; then 40 | rm /etc/X11/xorg.conf 41 | xterm -e pkg install -fy xf86-video-intel && pkg clean -a -y 42 | zenity --info --title="FuryBSD Xorg Tool" --text="Xorg will now be restarted" --width=300 --height=100 43 | killall Xorg 44 | fi 45 | fi 46 | 47 | if [ "$ask" == "nVidia" ]; then 48 | ask=`zenity --list --title="FuryBSD Xorg Tool" --column="0" "nVidia Driver Latest" "nVidia Driver 390" "nVidia Driver 340" --width=300 --height=200 --hide-header` 49 | if [ "$ask" == "nVidia Driver Latest" ]; then 50 | rm /etc/X11/xorg.conf 51 | xterm -e pkg install -fy nvidia-driver && pkg clean -a -y 52 | zenity --info --title="FuryBSD Xorg Tool" --text="Xorg will now be restarted" --width=300 --height=100 53 | sysrc -f /etc/rc.conf kld_list+="nvidia-modeset" 54 | service kld restart 55 | cat < "$BASEBITSDIR/etc/fstab" 76 | $MAKEFS -t cd9660 $bootable -o rockridge -o label="$LABEL" -o publisher="$publisher" "$NAME" "$@" $OVERLAY_DIR 77 | rm -f "$BASEBITSDIR/etc/fstab" 78 | rm -f efiboot.img 79 | 80 | if [ "$bootable" != "" ]; then 81 | # Look for the EFI System Partition image we dropped in the ISO image. 82 | for entry in `$ETDUMP --format shell $NAME`; do 83 | eval $entry 84 | if [ "$et_platform" = "efi" ]; then 85 | espstart=`expr $et_lba \* 2048` 86 | espsize=`expr $et_sectors \* 512` 87 | espparam="-p efi::$espsize:$espstart" 88 | break 89 | fi 90 | done 91 | 92 | # Create a GPT image containing the partitions we need for hybrid boot. 93 | imgsize=`stat -f %z "$NAME"` 94 | $MKIMG -s gpt \ 95 | --capacity $imgsize \ 96 | -b "$BASEBITSDIR/boot/pmbr" \ 97 | $espparam \ 98 | -p freebsd-boot:="$BASEBITSDIR/boot/isoboot" \ 99 | -o hybrid.img 100 | 101 | # Drop the PMBR, GPT, and boot code into the System Area of the ISO. 102 | dd if=hybrid.img of="$NAME" bs=32k count=1 conv=notrunc 103 | rm -f hybrid.img 104 | fi 105 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-gnustep-live-settings/files/usr/local/etc/slim.conf: -------------------------------------------------------------------------------- 1 | # Path, X server and arguments (if needed) 2 | # Note: -xauth $authfile is automatically appended 3 | # Use default path from /etc/login.conf 4 | default_path /sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin 5 | default_xserver /usr/local/bin/X 6 | # The X server needs to be started on an unused virtual terminal, 7 | # for FreeBSD in a default configuration, the first one of those is #09 8 | xserver_arguments -nolisten tcp vt09 9 | 10 | # Commands for halt, login, etc. 11 | halt_cmd /sbin/shutdown -p now 12 | reboot_cmd /sbin/shutdown -r now 13 | console_cmd /usr/local/bin/xterm -C -fg white -bg black +sb -T "Console login" -e /bin/sh -c "/bin/cat /etc/motd; exec /usr/bin/login" 14 | suspend_cmd /usr/sbin/acpiconf -s 3 15 | 16 | # Full path to the xauth binary 17 | xauth_path /usr/local/bin/xauth 18 | 19 | # Xauth file for server 20 | authfile /var/run/slim.auth 21 | 22 | # Activate numlock when slim starts. Valid values: on|off 23 | # numlock on 24 | 25 | # Hide the mouse cursor (note: does not work with some WMs). 26 | # Valid values: true|false 27 | # hidecursor false 28 | 29 | # This command is executed after a succesful login. 30 | # you can place the %session and %theme variables 31 | # to handle launching of specific commands in .xinitrc 32 | # depending of chosen session and slim theme 33 | # 34 | # NOTE: if your system does not have bash you need 35 | # to adjust the command according to your preferred shell, 36 | # i.e. for freebsd use: 37 | #login_cmd exec /bin/sh - ~/.xinitrc %session 38 | #login_cmd exec /bin/bash -login ~/.xinitrc %session 39 | login_cmd exec start-gnustep 40 | 41 | # Commands executed when starting and exiting a session. 42 | # They can be used for registering a X11 session with 43 | # sessreg. You can use the %user variable 44 | # 45 | # sessionstart_cmd some command 46 | # sessionstop_cmd some command 47 | 48 | # Start in daemon mode. Valid values: yes | no 49 | # Note that this can be overriden by the command line 50 | # options "-d" and "-nodaemon" 51 | # daemon yes 52 | 53 | # Option "sessions" is no longer supported. 54 | # Now you need to put session files in the directory specified 55 | # by option "sessiondir". 56 | # sessions xfce4,icewm-session,wmaker,blackbox 57 | 58 | # Directory of session files. 59 | # They should be xdg-style .desktop files. 60 | # The "Name" entry in the session file would be used as session name. 61 | # The "Exec" entry would replace %session in login_cmd. 62 | sessiondir /usr/local/share/xsessions 63 | 64 | # Executed when pressing F11 (requires imagemagick) 65 | screenshot_cmd /usr/local/bin/screenshot 66 | 67 | # welcome message. Available variables: %host, %domain 68 | welcome_msg Welcome to %host 69 | 70 | # Session message. Prepended to the session name when pressing F1 71 | # session_msg Session: 72 | 73 | # shutdown / reboot messages 74 | shutdown_msg The system is powering down... 75 | reboot_msg The system is rebooting... 76 | 77 | # default user, leave blank or remove this line 78 | # for avoid pre-loading the username. 79 | default_user liveuser 80 | 81 | # Focus the password field on start when default_user is set 82 | # Set to "yes" to enable this feature 83 | #focus_password no 84 | 85 | # Automatically login the default user (without entering 86 | # the password. Set to "yes" to enable this feature 87 | auto_login yes 88 | 89 | # current theme, use comma separated list to specify a set to 90 | # randomly choose from 91 | current_theme default 92 | 93 | # Lock file 94 | lockfile /var/run/slim.pid 95 | 96 | # Log file 97 | logfile /var/log/slim.log 98 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-kde-live-settings/files/usr/local/etc/sddm.conf: -------------------------------------------------------------------------------- 1 | [Autologin] 2 | # Whether sddm should automatically log back into sessions when they exit 3 | Relogin=false 4 | 5 | # Name of session file for autologin session (if empty try last logged in) 6 | Session=/usr/local/share/xsessions/plasma.desktop 7 | 8 | # Username for autologin session 9 | User=liveuser 10 | 11 | [General] 12 | # Halt command 13 | HaltCommand=/sbin/shutdown -p now 14 | 15 | # Input method module 16 | InputMethod= 17 | 18 | # Initial NumLock state. Can be on, off or none. 19 | # If property is set to none, numlock won't be changed 20 | # NOTE: Currently ignored if autologin is enabled. 21 | Numlock=none 22 | 23 | # Reboot command 24 | RebootCommand=/sbin/shutdown -r now 25 | 26 | 27 | [Theme] 28 | # Current theme name 29 | Current=breeze 30 | 31 | # Cursor theme used in the greeter 32 | CursorTheme=breeze_cursors 33 | 34 | # Number of users to use as threshold 35 | # above which avatars are disabled 36 | # unless explicitly enabled with EnableAvatars 37 | DisableAvatarsThreshold=7 38 | 39 | # Enable display of custom user avatars 40 | EnableAvatars=true 41 | 42 | # Global directory for user avatars 43 | # The files should be named .face.icon 44 | FacesDir=/usr/local/share/sddm/faces 45 | 46 | # Theme directory path 47 | ThemeDir=/usr/local/share/sddm/themes 48 | 49 | 50 | [Users] 51 | # Default $PATH for logged in users 52 | DefaultPath=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin 53 | 54 | # Comma-separated list of shells. 55 | # Users with these shells as their default won't be listed 56 | HideShells= 57 | 58 | # Comma-separated list of users that should not be listed 59 | HideUsers= 60 | 61 | # Maximum user id for displayed users 62 | MaximumUid=65000 63 | 64 | # Minimum user id for displayed users 65 | MinimumUid=1000 66 | 67 | # Remember the session of the last successfully logged in user 68 | RememberLastSession=true 69 | 70 | # Remember the last successfully logged in user 71 | RememberLastUser=true 72 | 73 | # When logging in as the same user twice, restore the original session, rather than create a new one 74 | ReuseSession=false 75 | 76 | 77 | [Wayland] 78 | # Enable Qt's automatic high-DPI scaling 79 | EnableHiDPI=false 80 | 81 | # Path to a script to execute when starting the desktop session 82 | SessionCommand=/usr/local/share/sddm/scripts/wayland-session 83 | 84 | # Directory containing available Wayland sessions 85 | SessionDir=/usr/local/share/wayland-sessions 86 | 87 | # Path to the user session log file 88 | SessionLogFile=.local/share/sddm/wayland-session.log 89 | 90 | 91 | [X11] 92 | # Path to a script to execute when starting the display server 93 | DisplayCommand=/usr/local/share/sddm/scripts/Xsetup 94 | 95 | # Path to a script to execute when stopping the display server 96 | DisplayStopCommand=/usr/local/share/sddm/scripts/Xstop 97 | 98 | # Enable Qt's automatic high-DPI scaling 99 | EnableHiDPI=false 100 | 101 | # The lowest virtual terminal number that will be used. 102 | MinimumVT=9 103 | 104 | # Arguments passed to the X server invocation 105 | ServerArguments=-nolisten tcp 106 | 107 | # Path to X server binary 108 | ServerPath=/usr/local/bin/X 109 | 110 | # Path to a script to execute when starting the desktop session 111 | SessionCommand=/usr/local/share/sddm/scripts/Xsession 112 | 113 | # Directory containing available X sessions 114 | SessionDir=/usr/local/share/xsessions 115 | 116 | # Path to the user session log file 117 | SessionLogFile=.local/share/sddm/xorg-session.log 118 | 119 | # Path to the Xauthority file 120 | UserAuthFile=.Xauthority 121 | 122 | # Path to xauth binary 123 | XauthPath=/usr/local/bin/xauth 124 | 125 | # Path to Xephyr binary 126 | XephyrPath=/usr/local/bin/Xephyr 127 | 128 | 129 | -------------------------------------------------------------------------------- /scripts/pkgtree.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | # Copyright (c) 2012 Bryan Drewery 3 | # All rights reserved. 4 | # 5 | # Redistribution and use in source and binary forms, with or without 6 | # modification, are permitted provided that the following conditions 7 | # are met: 8 | # 1. Redistributions of source code must retain the above copyright 9 | # notice, this list of conditions and the following disclaimer 10 | # in this position and unchanged. 11 | # 2. Redistributions in binary form must reproduce the above copyright 12 | # notice, this list of conditions and the following disclaimer in the 13 | # documentation and/or other materials provided with the distribution. 14 | # 15 | # THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR 16 | # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 17 | # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 18 | # IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, 19 | # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 20 | # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 21 | # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 22 | # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 24 | # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 | 26 | show_tree() { 27 | local name=$1 28 | local indentation=$2 29 | local parent=$3 30 | 31 | if [ $RECURSIVE -eq 0 -a $indentation -gt 1 ]; then 32 | return 33 | fi 34 | 35 | if [ $indentation -eq 0 ]; then 36 | parent="${name}" 37 | else 38 | parent="${parent}% ${name}" 39 | fi 40 | 41 | echo ${parent} 42 | 43 | for depends in $(pkg ${PKG_QUERY} ${PKG_QUERY_DISPLAY_DEPENDS} ${name} | sort); do 44 | test -z "${depends}" && return 45 | show_tree $depends $((${indentation} + 1)) ${parent} 46 | done 47 | } 48 | 49 | usage() { 50 | echo "Usage: $0 [-nprR] [pkgname|origin] [...]" 51 | echo "-n: Non-tree view, uses tabs instead" 52 | echo "-p: Print package names" 53 | echo "-r: Recursively show required packages" 54 | echo "-R: Use remote repository" 55 | echo "-U: Show reverse depends" 56 | echo "If no package/origin is specified, show all non-automatic packages at top-level." 57 | exit 0 58 | } 59 | 60 | while getopts "hnprRU" opt; do 61 | case "${opt}" in 62 | n) 63 | TREE_VIEW=0 64 | ;; 65 | p) 66 | DISPLAY_PKG=1 67 | ;; 68 | r) 69 | RECURSIVE=1 70 | ;; 71 | R) 72 | USE_RQUERY=1 73 | ;; 74 | U) 75 | REVERSE_DEPENDS=1 76 | ;; 77 | *) 78 | usage 79 | ;; 80 | esac 81 | done 82 | 83 | shift $(($OPTIND - 1)) 84 | 85 | : ${RECURSIVE:=0} 86 | : ${REVERSE_DEPENDS:=0} 87 | : ${TREE_VIEW:=1} 88 | : ${USE_RQUERY:=0} 89 | : ${DISPLAY_PKG:=0} 90 | 91 | if [ $REVERSE_DEPENDS -eq 0 ]; then 92 | PKG_QUERY_DEPENDS="d" 93 | else 94 | PKG_QUERY_DEPENDS="r" 95 | fi 96 | 97 | if [ $DISPLAY_PKG -eq 1 ]; then 98 | PKG_QUERY_DISPLAY="%n-%v" 99 | PKG_QUERY_DISPLAY_DEPENDS="%${PKG_QUERY_DEPENDS}n-%${PKG_QUERY_DEPENDS}v" 100 | else 101 | PKG_QUERY_DISPLAY="%o" 102 | PKG_QUERY_DISPLAY_DEPENDS="%${PKG_QUERY_DEPENDS}o" 103 | fi 104 | 105 | if [ $USE_RQUERY -eq 0 ]; then 106 | PKG_QUERY=query 107 | else 108 | PKG_QUERY=rquery 109 | fi 110 | 111 | main() { 112 | if [ $# -eq 0 ]; then 113 | if [ $USE_RQUERY -eq 0 ]; then 114 | packages=$(pkg ${PKG_QUERY} -e '%a = 0' ${PKG_QUERY_DISPLAY} | sort) 115 | else 116 | packages=$(pkg ${PKG_QUERY} ${PKG_QUERY_DISPLAY} | sort) 117 | fi 118 | else 119 | packages=$@ 120 | fi; 121 | 122 | for name in ${packages}; do 123 | show_tree ${name} 0 124 | done 125 | } 126 | 127 | if [ $TREE_VIEW -eq 1 ]; then 128 | main $@ | sed -e 's/[^%]*%/| /g' -e 's/| \([^|]\)/`--\1/g' 129 | else 130 | main $@ | sed -e 's/[^%]*%/ /g' 131 | fi -------------------------------------------------------------------------------- /overlays/uzip/furybsd-gnustep-live-settings/files/usr/share/skel/GNUstep/Defaults/GWorkspace.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | DesktopApplicationName 6 | GWorkspace 7 | DesktopApplicationSelName 8 | gworkspace 9 | GSReservedMountNames 10 | 11 | proc 12 | devpts 13 | shm 14 | usbdevfs 15 | devtmpfs 16 | devpts 17 | sysfs 18 | tmpfs 19 | procbususb 20 | udev 21 | pstore 22 | cgroup 23 | 24 | GSWorkspaceApplication 25 | GWorkspace 26 | applications 27 | 28 | 1 29 | TextEdit 30 | 2 31 | Terminal 32 | 3 33 | SimpleAgenda 34 | 4 35 | GNUMail 36 | 5 37 | Gorm 38 | 6 39 | ProjectCenter 40 | 7 41 | Otter Browser 42 | 43 | auto_calculate_sizes 44 | NO 45 | browserColsWidth 46 | 200 47 | default_sortorder 48 | 0 49 | defaulteditor 50 | nedit.app 51 | defxterm 52 | xterm 53 | desktopinfo 54 | 55 | backcolor 56 | 57 | alpha 58 | 1 59 | blue 60 | 0.7 61 | green 62 | 0.5 63 | red 64 | 0.3 65 | 66 | fsn_info_type 67 | 0 68 | iconposition 69 | 5 70 | iconsize 71 | 48 72 | imagepath 73 | /usr/local/share/slim/themes/default/background.jpg 74 | imagestyle 75 | 1 76 | labeltxtsize 77 | 12 78 | usebackimage 79 | 80 | 81 | dockclickpolicy 82 | 1 83 | dockposition 84 | 0 85 | dockstyle 86 | 1 87 | hiddendirs 88 | 89 | 90 | hidedock 91 | NO 92 | history_cache 93 | 20 94 | last_active_inspector 95 | 0 96 | last_used_modules 97 | 98 | Name 99 | 1 100 | 101 | lsfolders_paths 102 | 103 | 104 | no_desktop 105 | NO 106 | saved_places 107 | 108 | 109 | search_res_h 110 | 0 111 | terminal_services 112 | YES 113 | tshelf 114 | NO 115 | tshelfpbfnum 116 | 0 117 | use_thumbnails 118 | YES 119 | usefiend 120 | NO 121 | uses_inspector 122 | NO 123 | uses_recycler 124 | NO 125 | uses_search_places 126 | NO 127 | usesthumbnails 128 | YES 129 | viewersinfo 130 | 131 | 132 | key 133 | root_viewer 134 | path 135 | / 136 | 137 | 138 | xbundle 139 | NO 140 | 141 | 142 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-live-settings/files/usr/local/bin/furybsd-init-helper: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | BOOTMODE=$(/sbin/sysctl -n machdep.bootmethod) 4 | export BOOTMODE 5 | 6 | if [ "${BOOTMODE}" = "BIOS" ]; then 7 | cp /usr/home/liveuser/xorg.conf.d/driver-vesa.conf /etc/X11/xorg.conf >/dev/null 2>/dev/null 8 | fi 9 | 10 | if [ "${BOOTMODE}" = "UEFI" ]; then 11 | cp /usr/home/liveuser/xorg.conf.d/driver-scfb.conf /etc/X11/xorg.conf >/dev/null 2>/dev/null 12 | fi 13 | 14 | VM_GUEST=$(/sbin/sysctl -n kern.vm_guest) 15 | export VM_GUEST 16 | 17 | HV_VENDOR=$(/sbin/sysctl -n hw.hv_vendor | /usr/bin/awk '{print $1}') 18 | export HV_VENDOR 19 | 20 | if [ "${VM_GUEST}" = "xen" ]; then 21 | /usr/sbin/sysrc devd_enable="NO" >/dev/null 2>/dev/null 22 | rm /etc/X11/xorg.conf >/dev/null 2>/dev/null 23 | fi 24 | 25 | if [ "${VM_GUEST}" = "vmware" ]; then 26 | /usr/sbin/sysrc -f /etc/rc.conf vmware_guest_vmblock_enable="YES" >/dev/null 2>/dev/null 27 | /usr/sbin/sysrc -f /etc/rc.conf vmware_guest_vmmemctl_enable="YES" >/dev/null 2>/dev/null 28 | /usr/sbin/sysrc -f /etc/rc.conf vmware_guestd_enable="YES" >/dev/null 2>/dev/null 29 | else 30 | /usr/sbin/pkg delete -fy open-vm-tools >/dev/null 2>/dev/null 31 | fi 32 | 33 | if [ "${VM_GUEST}" = "kvm" ]; then 34 | /usr/sbin/pkg delete -fy xf86-input-libinput >/dev/null 2>/dev/null 35 | fi 36 | 37 | if [ "${HV_VENDOR}" = "bhyve" ]; then 38 | /usr/sbin/pkg delete -fy xf86-input-libinput >/dev/null 2>/dev/null 39 | fi 40 | 41 | if [ -f "/usr/sbin/pciconf" ] ; then 42 | /usr/sbin/pciconf -lv 2>/dev/null | /usr/bin/grep -q VirtualBox 2>/dev/null 43 | if [ $? -eq 0 ] ; then 44 | rm /etc/X11/xorg.conf >/dev/null 2>/dev/null 45 | cp /usr/home/liveuser/xorg.conf.d/driver-virtualbox.conf /etc/X11/xorg.conf >/dev/null 2>/dev/null 46 | /usr/sbin/sysrc -f /etc/rc.conf vboxguest_enable="YES" >/dev/null 2>/dev/null 47 | /usr/sbin/sysrc -f /etc/rc.conf vboxservice_enable="YES" >/dev/null 2>/dev/null 48 | else 49 | /usr/sbin/pkg delete -fy virtualbox-ose-additions >/dev/null 2>/dev/null 50 | fi 51 | fi 52 | 53 | if [ -f "/usr/sbin/pciconf" ] ; then 54 | /usr/sbin/pciconf -lv 2>/dev/null | /usr/bin/grep -q VMware 2>/dev/null 55 | if [ $? -eq 0 ] ; then 56 | rm /etc/X11/xorg.conf >/dev/null 2>/dev/null 57 | cp /usr/home/liveuser/xorg.conf.d/driver-vmware.conf /etc/X11/xorg.conf >/dev/null 2>/dev/null 58 | /usr/sbin/sysrc -f /etc/rc.conf moused_enable="YES" >/dev/null 2>/dev/null # Needed for VMware? 59 | else 60 | /usr/sbin/pkg delete -fy xf86-video-vmware >/dev/null 2>/dev/null 61 | /usr/sbin/pkg delete -fy xf86-input-vmmouse >/dev/null 2>/dev/null 62 | fi 63 | fi 64 | 65 | if [ -f "/usr/sbin/pciconf" ] ; then 66 | /usr/sbin/pciconf -lv 2>/dev/null | /usr/bin/grep -q QXL 2>/dev/null 67 | if [ $? -eq 0 ] ; then 68 | rm /etc/X11/xorg.conf >/dev/null 2>/dev/null 69 | cp /usr/home/liveuser/xorg.conf.d/driver-qxl.conf /usr/local/etc/X11/xorg.conf.d/spiceqxl.xorg.conf >/dev/null 2>/dev/null 70 | else 71 | /usr/sbin/pkg delete -fy xf86-video-qxl >/dev/null 2>/dev/null 72 | fi 73 | fi 74 | 75 | # TODO: Move to post-install and post-deinstall of package; could not figure out the syntax to do this yet (help appreciated) 76 | /usr/sbin/sysrc -f /etc/rc.conf sendmail_enable="NO" >/dev/null 2>/dev/null 77 | /usr/sbin/sysrc -f /etc/rc.conf sendmail_submit_enable="NO" >/dev/null 2>/dev/null 78 | /usr/sbin/sysrc -f /etc/rc.conf sendmail_outbound_enable="NO" >/dev/null 2>/dev/null 79 | /usr/sbin/sysrc -f /etc/rc.conf sendmail_msp_queue_enable="NO" >/dev/null 2>/dev/null 80 | /usr/sbin/sysrc -f /etc/rc.conf linux_enable="YES" >/dev/null 2>/dev/null 81 | /usr/sbin/sysrc -f /etc/rc.conf dbus_enable="YES" >/dev/null 2>/dev/null 82 | /usr/sbin/sysrc -f /etc/rc.conf kld_list+="sysctlinfo cuse utouch i915kms" >/dev/null 2>/dev/null 83 | /usr/sbin/sysrc -f /etc/rc.conf allscreens_kbdflags="-b quiet.off" 84 | /usr/sbin/sysrc -f /etc/rc.conf dhcpcd_enable="YES" >/dev/null 2>/dev/null 85 | /usr/sbin/sysrc -f /etc/rc.conf webcamd_enable="YES" >/dev/null 2>/dev/null 86 | /usr/sbin/sysrc -f /etc/rc.conf avahi_daemon_enable="YES" >/dev/null 2>/dev/null 87 | /usr/sbin/sysrc -f /etc/rc.conf ntpd_enable="NO" >/dev/null 2>/dev/null # Seems to conflict with ntpdate 88 | /usr/sbin/sysrc -f /etc/rc.conf ntpdate_enable="YES" >/dev/null 2>/dev/null 89 | cp /usr/local/share/examples/dhcpcd/hooks/15-timezone /usr/local/libexec/dhcpcd-hooks/ 90 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-live-settings/files/usr/local/share/data/freebsd-install/disks.py: -------------------------------------------------------------------------------- 1 | import re 2 | import subprocess 3 | 4 | def call(command, **kw): 5 | """ 6 | Similar to ``subprocess.Popen`` with the following changes: 7 | * returns stdout, stderr, and exit code (vs. just the exit code) 8 | * logs the full contents of stderr and stdout (separately) to the file log 9 | By default, no terminal output is given, not even the command that is going 10 | to run. 11 | Useful when system calls are needed to act on output, and that same output 12 | shouldn't get displayed on the terminal. 13 | Optionally, the command can be displayed on the terminal and the log file, 14 | and log file output can be turned off. This is useful to prevent sensitive 15 | output going to stderr/stdout and being captured on a log file. 16 | :param terminal_verbose: Log command output to terminal, defaults to False, and 17 | it is forcefully set to True if a return code is non-zero 18 | :param logfile_verbose: Log stderr/stdout output to log file. Defaults to True 19 | :param verbose_on_failure: On a non-zero exit status, it will forcefully set logging ON for 20 | the terminal. Defaults to True 21 | """ 22 | executable = command.pop(0) 23 | command.insert(0, executable) 24 | terminal_verbose = kw.pop('terminal_verbose', False) 25 | logfile_verbose = kw.pop('logfile_verbose', True) 26 | verbose_on_failure = kw.pop('verbose_on_failure', True) 27 | show_command = kw.pop('show_command', False) 28 | command_msg = "Running command: %s" % ' '.join(command) 29 | stdin = kw.pop('stdin', None) 30 | print(command_msg) 31 | 32 | process = subprocess.Popen( 33 | command, 34 | stdout=subprocess.PIPE, 35 | stderr=subprocess.PIPE, 36 | stdin=subprocess.PIPE, 37 | close_fds=True, 38 | **kw 39 | ) 40 | 41 | if stdin: 42 | stdout_stream, stderr_stream = process.communicate(as_bytes(stdin)) 43 | else: 44 | stdout_stream = process.stdout.read() 45 | stderr_stream = process.stderr.read() 46 | returncode = process.wait() 47 | if not isinstance(stdout_stream, str): 48 | stdout_stream = stdout_stream.decode('utf-8') 49 | if not isinstance(stderr_stream, str): 50 | stderr_stream = stderr_stream.decode('utf-8') 51 | stdout = stdout_stream.splitlines() 52 | stderr = stderr_stream.splitlines() 53 | 54 | if returncode != 0: 55 | if verbose_on_failure: 56 | terminal_verbose = True 57 | return stdout, stderr, returncode 58 | 59 | 60 | def geom_disk_parser(block): 61 | pairs = block.split(';') 62 | parsed = {} 63 | for pair in pairs: 64 | if 'Providers' in pair: 65 | continue 66 | try: 67 | column, value = pair.split(':') 68 | except ValueError: 69 | continue 70 | # fixup 71 | column = re.sub("\s+", "", column) 72 | column= re.sub("^[0-9]+\.", "", column) 73 | value = value.strip() 74 | value = re.sub('\([0-9A-Z]+\)', '', value) 75 | parsed[column.lower()] = value 76 | return parsed 77 | 78 | def get_disk(diskname): 79 | """ 80 | Captures all available info from geom 81 | along with interesting metadata like sectors, size, vendor, 82 | solid/rotational, etc... 83 | 84 | Returns a dictionary, with all the geom fields as keys. 85 | """ 86 | 87 | command = ['/sbin/geom', 'disk', 'list', re.sub('/dev/', '', diskname)] 88 | out, err, rc = call(command) 89 | geom_block = "" 90 | for line in out: 91 | line.strip() 92 | geom_block += ";" + line 93 | disk = geom_disk_parser(geom_block) 94 | return disk 95 | 96 | def get_disks(): 97 | command = ['/sbin/geom', 'disk', 'status', '-s'] 98 | out, err, rc = call(command) 99 | disks = {} 100 | for path in out: 101 | dsk, rest1, rest2 = path.split() 102 | disk = get_disk(dsk) 103 | disks['/dev/'+dsk] = disk 104 | return disks 105 | 106 | class Disks(object): 107 | 108 | def __init__(self, path=None): 109 | self.disks = {} 110 | 111 | 112 | class Disk(object): 113 | 114 | def __init__(self, path): 115 | self.abspath = path 116 | self.path = path 117 | self.reject_reasons = [] 118 | self.available = True 119 | 120 | 121 | if __name__ == "__main__": 122 | ds = get_disks() 123 | for d in ds: 124 | 125 | di = get_disk(d) 126 | print(di) 127 | if int(di.get("mediasize")) >= 6*1024*1024: 128 | print(di.get("descr")) -------------------------------------------------------------------------------- /overlays/uzip/furybsd-live-settings/files/usr/local/share/data/freebsd-install/usbsuccess.svg: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 20 | 22 | image/svg+xml 23 | 25 | 26 | 28 | 29 | 30 | 31 | 33 | 60 | 65 | 69 | 73 | 77 | 78 | 79 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-gnustep-live-settings/files/usr/share/skel/GNUstep/Defaults/WMRootMenu: -------------------------------------------------------------------------------- 1 | ( 2 | Applications, 3 | ( 4 | Info, 5 | ("Info Panel", INFO_PANEL), 6 | (Legal, LEGAL_PANEL), 7 | ("System Console", EXEC, xconsole), 8 | ("System Load", SHEXEC, "xosview || xload"), 9 | ("Process List", EXEC, "xterm -e top"), 10 | ("Manual Browser", EXEC, xman) 11 | ), 12 | (Run..., EXEC, "%a(Run,Type command to run:)"), 13 | (XTerm, EXEC, "xterm -sb"), 14 | ("Mozilla Firefox", EXEC, firefox), 15 | (Workspaces, WORKSPACE_MENU), 16 | ( 17 | Applications, 18 | (Gimp, SHEXEC, "gimp >/dev/null"), 19 | (Ghostview, EXEC, "ghostview %a(Enter file to view)"), 20 | (Xpdf, EXEC, "xpdf %a(Enter PDF to view)"), 21 | (Abiword, EXEC, abiword), 22 | (Dia, EXEC, dia), 23 | ( 24 | OpenOffice.org, 25 | (OpenOffice.org, EXEC, ooffice), 26 | (Writer, EXEC, oowriter), 27 | (Spreadsheet, EXEC, oocalc), 28 | (Draw, EXEC, oodraw), 29 | (Impress, EXEC, ooimpress) 30 | ), 31 | ( 32 | Editors, 33 | (XEmacs, EXEC, xemacs), 34 | (Emacs, EXEC, emacs), 35 | (XJed, EXEC, xjed), 36 | (VI, EXEC, "xterm -e vi"), 37 | (GVIM, EXEC, gvim), 38 | (NEdit, EXEC, nedit), 39 | (Xedit, EXEC, xedit) 40 | ), 41 | ( 42 | Multimedia, 43 | ( 44 | XMMS, 45 | (XMMS, EXEC, xmms), 46 | ("XMMS play/pause", EXEC, "xmms -t"), 47 | ("XMMS stop", EXEC, "xmms -s") 48 | ), 49 | ("Xine video player", EXEC, xine), 50 | (MPlayer, EXEC, mplayer) 51 | ) 52 | ), 53 | ( 54 | Utils, 55 | (Calculator, EXEC, xcalc), 56 | ( 57 | "Window Properties", 58 | SHEXEC, 59 | "xprop | xmessage -center -title 'xprop' -file -" 60 | ), 61 | ("Font Chooser", EXEC, xfontsel), 62 | (Magnify, EXEC, wmagnify), 63 | (Colormap, EXEC, xcmap), 64 | ("Kill X Application", EXEC, xkill) 65 | ), 66 | ( 67 | Selection, 68 | (Copy, SHEXEC, "echo '%s' | wxcopy"), 69 | ("Mail To", EXEC, "xterm -name mail -T Pine -e pine %s"), 70 | (Navigate, EXEC, "mozilla %s"), 71 | ("Search in Manual", EXEC, "MANUAL_SEARCH(%s)") 72 | ), 73 | ( 74 | Commands, 75 | ("Hide Others", HIDE_OTHERS), 76 | ("Show All", SHOW_ALL), 77 | ("Arrange Icons", ARRANGE_ICONS), 78 | (Refresh, REFRESH), 79 | (Lock, EXEC, "xlock -allowroot -usefirst") 80 | ), 81 | ( 82 | Appearance, 83 | ( 84 | Themes, 85 | OPEN_MENU, 86 | "-noext #wmdatadir#/Themes $HOME/GNUstep/Library/WindowMaker/Themes WITH setstyle" 87 | ), 88 | ( 89 | Styles, 90 | OPEN_MENU, 91 | "-noext #wmdatadir#/Styles $HOME/GNUstep/Library/WindowMaker/Styles WITH setstyle" 92 | ), 93 | ( 94 | "Icon Sets", 95 | OPEN_MENU, 96 | "-noext #wmdatadir#/IconSets $HOME/GNUstep/Library/WindowMaker/IconSets WITH seticons" 97 | ), 98 | ( 99 | Background, 100 | ( 101 | Solid, 102 | (Black, EXEC, "wdwrite WindowMaker WorkspaceBack '(solid, black)'"), 103 | ( 104 | Blue, 105 | EXEC, 106 | "wdwrite WindowMaker WorkspaceBack '(solid, \"#505075\")'" 107 | ), 108 | ( 109 | Indigo, 110 | EXEC, 111 | "wdwrite WindowMaker WorkspaceBack '(solid, \"#243e6c\")'" 112 | ), 113 | ( 114 | Bluemarine, 115 | EXEC, 116 | "wdwrite WindowMaker WorkspaceBack '(solid, \"#224477\")'" 117 | ), 118 | ( 119 | Purple, 120 | EXEC, 121 | "wdwrite WindowMaker WorkspaceBack '(solid, \"#554466\")'" 122 | ), 123 | ( 124 | Wheat, 125 | EXEC, 126 | "wdwrite WindowMaker WorkspaceBack '(solid, wheat4)'" 127 | ), 128 | ( 129 | "Dark Gray", 130 | EXEC, 131 | "wdwrite WindowMaker WorkspaceBack '(solid, \"#333340\")'" 132 | ), 133 | ( 134 | Wine, 135 | EXEC, 136 | "wdwrite WindowMaker WorkspaceBack '(solid, \"#400020\")'" 137 | ) 138 | ), 139 | ( 140 | Gradient, 141 | ( 142 | Sunset, 143 | EXEC, 144 | "wdwrite WindowMaker WorkspaceBack '(mvgradient, deepskyblue4, black, deepskyblue4, tomato4)'" 145 | ), 146 | ( 147 | Sky, 148 | EXEC, 149 | "wdwrite WindowMaker WorkspaceBack '(vgradient, blue4, white)'" 150 | ), 151 | ( 152 | "Blue Shades", 153 | EXEC, 154 | "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#7080a5\", \"#101020\")'" 155 | ), 156 | ( 157 | "Indigo Shades", 158 | EXEC, 159 | "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#746ebc\", \"#242e4c\")'" 160 | ), 161 | ( 162 | "Purple Shades", 163 | EXEC, 164 | "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#654c66\", \"#151426\")'" 165 | ), 166 | ( 167 | "Wheat Shades", 168 | EXEC, 169 | "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#a09060\", \"#302010\")'" 170 | ), 171 | ( 172 | "Grey Shades", 173 | EXEC, 174 | "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#636380\", \"#131318\")'" 175 | ), 176 | ( 177 | "Wine Shades", 178 | EXEC, 179 | "wdwrite WindowMaker WorkspaceBack '(vgradient, \"#600040\", \"#180010\")'" 180 | ) 181 | ), 182 | ( 183 | Images, 184 | OPEN_MENU, 185 | "-noext #wmdatadir#/Backgrounds $HOME/GNUstep/Library/WindowMaker/Backgrounds WITH wmsetbg -u -t" 186 | ) 187 | ), 188 | ( 189 | "Save Theme", 190 | SHEXEC, 191 | "getstyle -t $HOME/GNUstep/Library/WindowMaker/Themes/\"%a(Theme name)\"" 192 | ), 193 | ( 194 | "Save IconSet", 195 | SHEXEC, 196 | "geticonset $HOME/GNUstep/Library/WindowMaker/IconSets/\"%a(IconSet name)\"" 197 | ), 198 | ( 199 | "Preferences Utility", 200 | EXEC, 201 | "/usr/local/GNUstep/Applications/WPrefs.app/WPrefs" 202 | ) 203 | ), 204 | ( 205 | Session, 206 | ("Save Session", SAVE_SESSION), 207 | ("Clear Session", CLEAR_SESSION), 208 | ("Restart Window Maker", RESTART), 209 | ("Start BlackBox", RESTART, blackbox), 210 | ("Start IceWM", RESTART, icewm), 211 | (Exit, EXIT) 212 | ) 213 | ) 214 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-mate-live-settings/files/usr/local/etc/lightdm/lightdm.conf: -------------------------------------------------------------------------------- 1 | # 2 | # General configuration 3 | # 4 | # start-default-seat = True to always start one seat if none are defined in the configuration 5 | # greeter-user = User to run greeter as 6 | # minimum-display-number = Minimum display number to use for X servers 7 | # minimum-vt = First VT to run displays on 8 | # lock-memory = True to prevent memory from being paged to disk 9 | # user-authority-in-system-dir = True if session authority should be in the system location 10 | # guest-account-script = Script to be run to setup guest account 11 | # logind-check-graphical = True to on start seats that are marked as graphical by logind 12 | # log-directory = Directory to log information to 13 | # run-directory = Directory to put running state in 14 | # cache-directory = Directory to cache to 15 | # sessions-directory = Directory to find sessions 16 | # remote-sessions-directory = Directory to find remote sessions 17 | # greeters-directory = Directory to find greeters 18 | # backup-logs = True to move add a .old suffix to old log files when opening new ones 19 | # dbus-service = True if LightDM provides a D-Bus service to control it 20 | # 21 | [LightDM] 22 | #start-default-seat=true 23 | #greeter-user=lightdm 24 | #minimum-display-number=0 25 | minimum-vt=9 26 | lock-memory=false 27 | #user-authority-in-system-dir=false 28 | #guest-account-script=guest-account 29 | #logind-check-graphical=false 30 | #log-directory=/var/log/lightdm 31 | #run-directory=/var/run/lightdm 32 | #cache-directory=/var/cache/lightdm 33 | #sessions-directory=/usr/share/lightdm/sessions:/usr/share/xsessions:/usr/share/wayland-sessions 34 | #remote-sessions-directory=/usr/share/lightdm/remote-sessions 35 | #greeters-directory=$XDG_DATA_DIRS/lightdm/greeters:$XDG_DATA_DIRS/xgreeters 36 | #backup-logs=true 37 | #dbus-service=true 38 | 39 | # 40 | # Seat configuration 41 | # 42 | # Seat configuration is matched against the seat name glob in the section, for example: 43 | # [Seat:*] matches all seats and is applied first. 44 | # [Seat:seat0] matches the seat named "seat0". 45 | # [Seat:seat-thin-client*] matches all seats that have names that start with "seat-thin-client". 46 | # 47 | # type = Seat type (local, xremote) 48 | # pam-service = PAM service to use for login 49 | # pam-autologin-service = PAM service to use for autologin 50 | # pam-greeter-service = PAM service to use for greeters 51 | # xserver-command = X server command to run (can also contain arguments e.g. X -special-option) 52 | # xmir-command = Xmir server command to run (can also contain arguments e.g. Xmir -special-option) 53 | # xserver-config = Config file to pass to X server 54 | # xserver-layout = Layout to pass to X server 55 | # xserver-allow-tcp = True if TCP/IP connections are allowed to this X server 56 | # xserver-share = True if the X server is shared for both greeter and session 57 | # xserver-hostname = Hostname of X server (only for type=xremote) 58 | # xserver-display-number = Display number of X server (only for type=xremote) 59 | # xdmcp-manager = XDMCP manager to connect to (implies xserver-allow-tcp=true) 60 | # xdmcp-port = XDMCP UDP/IP port to communicate on 61 | # xdmcp-key = Authentication key to use for XDM-AUTHENTICATION-1 (stored in keys.conf) 62 | # greeter-session = Session to load for greeter 63 | # greeter-hide-users = True to hide the user list 64 | # greeter-allow-guest = True if the greeter should show a guest login option 65 | # greeter-show-manual-login = True if the greeter should offer a manual login option 66 | # greeter-show-remote-login = True if the greeter should offer a remote login option 67 | # user-session = Session to load for users 68 | # allow-user-switching = True if allowed to switch users 69 | # allow-guest = True if guest login is allowed 70 | # guest-session = Session to load for guests (overrides user-session) 71 | # session-wrapper = Wrapper script to run session with 72 | # greeter-wrapper = Wrapper script to run greeter with 73 | # guest-wrapper = Wrapper script to run guest sessions with 74 | # display-setup-script = Script to run when starting a greeter session (runs as root) 75 | # display-stopped-script = Script to run after stopping the display server (runs as root) 76 | # greeter-setup-script = Script to run when starting a greeter (runs as root) 77 | # session-setup-script = Script to run when starting a user session (runs as root) 78 | # session-cleanup-script = Script to run when quitting a user session (runs as root) 79 | # autologin-guest = True to log in as guest by default 80 | # autologin-user = User to log in with by default (overrides autologin-guest) 81 | # autologin-user-timeout = Number of seconds to wait before loading default user 82 | # autologin-session = Session to load for automatic login (overrides user-session) 83 | # autologin-in-background = True if autologin session should not be immediately activated 84 | # exit-on-failure = True if the daemon should exit if this seat fails 85 | # 86 | [Seat:*] 87 | #type=local 88 | #pam-service=lightdm 89 | #pam-autologin-service=lightdm-autologin 90 | #pam-greeter-service=lightdm-greeter 91 | #xserver-command=X 92 | #xmir-command=Xmir 93 | #xserver-config= 94 | #xserver-layout= 95 | #xserver-allow-tcp=false 96 | #xserver-share=true 97 | #xserver-hostname= 98 | #xserver-display-number= 99 | #xdmcp-manager= 100 | #xdmcp-port=177 101 | #xdmcp-key= 102 | #greeter-session=example-gtk-gnome 103 | #greeter-hide-users=false 104 | #greeter-allow-guest=true 105 | #greeter-show-manual-login=false 106 | #greeter-show-remote-login=true 107 | #user-session=default 108 | #allow-user-switching=true 109 | #allow-guest=true 110 | #guest-session= 111 | session-wrapper=/usr/local/etc/lightdm/Xsession 112 | #greeter-wrapper= 113 | #guest-wrapper= 114 | #display-setup-script= 115 | #display-stopped-script= 116 | #greeter-setup-script= 117 | #session-setup-script= 118 | #session-cleanup-script= 119 | autologin-guest=false 120 | autologin-user=liveuser 121 | autologin-user-timeout=0 122 | #autologin-in-background=false 123 | autologin-session=mate 124 | #exit-on-failure=false 125 | 126 | # 127 | # XDMCP Server configuration 128 | # 129 | # enabled = True if XDMCP connections should be allowed 130 | # port = UDP/IP port to listen for connections on 131 | # listen-address = Host/address to listen for XDMCP connections (use all addresses if not present) 132 | # key = Authentication key to use for XDM-AUTHENTICATION-1 or blank to not use authentication (stored in keys.conf) 133 | # hostname = Hostname to report to XDMCP clients (defaults to system hostname if unset) 134 | # 135 | # The authentication key is a 56 bit DES key specified in hex as 0xnnnnnnnnnnnnnn. Alternatively 136 | # it can be a word and the first 7 characters are used as the key. 137 | # 138 | [XDMCPServer] 139 | #enabled=false 140 | #port=177 141 | #listen-address= 142 | #key= 143 | #hostname= 144 | 145 | # 146 | # VNC Server configuration 147 | # 148 | # enabled = True if VNC connections should be allowed 149 | # command = Command to run Xvnc server with 150 | # port = TCP/IP port to listen for connections on 151 | # listen-address = Host/address to listen for VNC connections (use all addresses if not present) 152 | # width = Width of display to use 153 | # height = Height of display to use 154 | # depth = Color depth of display to use 155 | # 156 | [VNCServer] 157 | #enabled=false 158 | #command=Xvnc 159 | #port=5900 160 | #listen-address= 161 | #width=1024 162 | #height=768 163 | #depth=8 164 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-xfce-live-settings/files/usr/local/etc/lightdm/lightdm.conf: -------------------------------------------------------------------------------- 1 | # 2 | # General configuration 3 | # 4 | # start-default-seat = True to always start one seat if none are defined in the configuration 5 | # greeter-user = User to run greeter as 6 | # minimum-display-number = Minimum display number to use for X servers 7 | # minimum-vt = First VT to run displays on 8 | # lock-memory = True to prevent memory from being paged to disk 9 | # user-authority-in-system-dir = True if session authority should be in the system location 10 | # guest-account-script = Script to be run to setup guest account 11 | # logind-check-graphical = True to on start seats that are marked as graphical by logind 12 | # log-directory = Directory to log information to 13 | # run-directory = Directory to put running state in 14 | # cache-directory = Directory to cache to 15 | # sessions-directory = Directory to find sessions 16 | # remote-sessions-directory = Directory to find remote sessions 17 | # greeters-directory = Directory to find greeters 18 | # backup-logs = True to move add a .old suffix to old log files when opening new ones 19 | # dbus-service = True if LightDM provides a D-Bus service to control it 20 | # 21 | [LightDM] 22 | #start-default-seat=true 23 | #greeter-user=lightdm 24 | #minimum-display-number=0 25 | minimum-vt=9 26 | lock-memory=false 27 | #user-authority-in-system-dir=false 28 | #guest-account-script=guest-account 29 | #logind-check-graphical=false 30 | #log-directory=/var/log/lightdm 31 | #run-directory=/var/run/lightdm 32 | #cache-directory=/var/cache/lightdm 33 | #sessions-directory=/usr/share/lightdm/sessions:/usr/share/xsessions:/usr/share/wayland-sessions 34 | #remote-sessions-directory=/usr/share/lightdm/remote-sessions 35 | #greeters-directory=$XDG_DATA_DIRS/lightdm/greeters:$XDG_DATA_DIRS/xgreeters 36 | #backup-logs=true 37 | #dbus-service=true 38 | 39 | # 40 | # Seat configuration 41 | # 42 | # Seat configuration is matched against the seat name glob in the section, for example: 43 | # [Seat:*] matches all seats and is applied first. 44 | # [Seat:seat0] matches the seat named "seat0". 45 | # [Seat:seat-thin-client*] matches all seats that have names that start with "seat-thin-client". 46 | # 47 | # type = Seat type (local, xremote) 48 | # pam-service = PAM service to use for login 49 | # pam-autologin-service = PAM service to use for autologin 50 | # pam-greeter-service = PAM service to use for greeters 51 | # xserver-command = X server command to run (can also contain arguments e.g. X -special-option) 52 | # xmir-command = Xmir server command to run (can also contain arguments e.g. Xmir -special-option) 53 | # xserver-config = Config file to pass to X server 54 | # xserver-layout = Layout to pass to X server 55 | # xserver-allow-tcp = True if TCP/IP connections are allowed to this X server 56 | # xserver-share = True if the X server is shared for both greeter and session 57 | # xserver-hostname = Hostname of X server (only for type=xremote) 58 | # xserver-display-number = Display number of X server (only for type=xremote) 59 | # xdmcp-manager = XDMCP manager to connect to (implies xserver-allow-tcp=true) 60 | # xdmcp-port = XDMCP UDP/IP port to communicate on 61 | # xdmcp-key = Authentication key to use for XDM-AUTHENTICATION-1 (stored in keys.conf) 62 | # greeter-session = Session to load for greeter 63 | # greeter-hide-users = True to hide the user list 64 | # greeter-allow-guest = True if the greeter should show a guest login option 65 | # greeter-show-manual-login = True if the greeter should offer a manual login option 66 | # greeter-show-remote-login = True if the greeter should offer a remote login option 67 | # user-session = Session to load for users 68 | # allow-user-switching = True if allowed to switch users 69 | # allow-guest = True if guest login is allowed 70 | # guest-session = Session to load for guests (overrides user-session) 71 | # session-wrapper = Wrapper script to run session with 72 | # greeter-wrapper = Wrapper script to run greeter with 73 | # guest-wrapper = Wrapper script to run guest sessions with 74 | # display-setup-script = Script to run when starting a greeter session (runs as root) 75 | # display-stopped-script = Script to run after stopping the display server (runs as root) 76 | # greeter-setup-script = Script to run when starting a greeter (runs as root) 77 | # session-setup-script = Script to run when starting a user session (runs as root) 78 | # session-cleanup-script = Script to run when quitting a user session (runs as root) 79 | # autologin-guest = True to log in as guest by default 80 | # autologin-user = User to log in with by default (overrides autologin-guest) 81 | # autologin-user-timeout = Number of seconds to wait before loading default user 82 | # autologin-session = Session to load for automatic login (overrides user-session) 83 | # autologin-in-background = True if autologin session should not be immediately activated 84 | # exit-on-failure = True if the daemon should exit if this seat fails 85 | # 86 | [Seat:*] 87 | #type=local 88 | #pam-service=lightdm 89 | #pam-autologin-service=lightdm-autologin 90 | #pam-greeter-service=lightdm-greeter 91 | #xserver-command=X 92 | #xmir-command=Xmir 93 | #xserver-config= 94 | #xserver-layout= 95 | #xserver-allow-tcp=false 96 | #xserver-share=true 97 | #xserver-hostname= 98 | #xserver-display-number= 99 | #xdmcp-manager= 100 | #xdmcp-port=177 101 | #xdmcp-key= 102 | #greeter-session=example-gtk-gnome 103 | #greeter-hide-users=false 104 | #greeter-allow-guest=true 105 | #greeter-show-manual-login=false 106 | #greeter-show-remote-login=true 107 | #user-session=default 108 | #allow-user-switching=true 109 | #allow-guest=true 110 | #guest-session= 111 | session-wrapper=/usr/local/etc/lightdm/Xsession 112 | #greeter-wrapper= 113 | #guest-wrapper= 114 | #display-setup-script= 115 | #display-stopped-script= 116 | #greeter-setup-script= 117 | #session-setup-script= 118 | #session-cleanup-script= 119 | autologin-guest=false 120 | autologin-user=liveuser 121 | autologin-user-timeout=0 122 | #autologin-in-background=false 123 | autologin-session=xfce 124 | #exit-on-failure=false 125 | 126 | # 127 | # XDMCP Server configuration 128 | # 129 | # enabled = True if XDMCP connections should be allowed 130 | # port = UDP/IP port to listen for connections on 131 | # listen-address = Host/address to listen for XDMCP connections (use all addresses if not present) 132 | # key = Authentication key to use for XDM-AUTHENTICATION-1 or blank to not use authentication (stored in keys.conf) 133 | # hostname = Hostname to report to XDMCP clients (defaults to system hostname if unset) 134 | # 135 | # The authentication key is a 56 bit DES key specified in hex as 0xnnnnnnnnnnnnnn. Alternatively 136 | # it can be a word and the first 7 characters are used as the key. 137 | # 138 | [XDMCPServer] 139 | #enabled=false 140 | #port=177 141 | #listen-address= 142 | #key= 143 | #hostname= 144 | 145 | # 146 | # VNC Server configuration 147 | # 148 | # enabled = True if VNC connections should be allowed 149 | # command = Command to run Xvnc server with 150 | # port = TCP/IP port to listen for connections on 151 | # listen-address = Host/address to listen for VNC connections (use all addresses if not present) 152 | # width = Width of display to use 153 | # height = Height of display to use 154 | # depth = Color depth of display to use 155 | # 156 | [VNCServer] 157 | #enabled=false 158 | #command=Xvnc 159 | #port=5900 160 | #listen-address= 161 | #width=1024 162 | #height=768 163 | #depth=8 164 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-live-settings/files/usr/local/bin/furybsd-install: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Authors: 4 | # 2019-2020, Joe Maloney 5 | # 2020, Simon Peter 6 | 7 | # Exit on errors, this is important for the graphical installer frontend 8 | set +e 9 | 10 | # Export our variables 11 | LIVEFS="/" 12 | FSMNT="/mnt" 13 | DESTPOOL=$(zpool list -H | grep /mnt | awk -F '\t' '{print $1;}') 14 | 15 | # As the first thing, only answer with 16 | # INSTALLER_MIB_NEEDED=1234567890 17 | # then immediately exit 18 | # if INSTALLER_PRINT_MIB_NEEDED is set. This is needed for the graphical installer frontend 19 | if [ -n "${INSTALLER_PRINT_MIB_NEEDED}" ] ; then 20 | # echo INSTALLER_MIB_NEEDED=$(df -m / | awk '{print $2}' | tail -n 1) 21 | bytes=$(zpool get -Hpo value allocated livecd) 22 | mib=$(echo "${bytes}/1024/1024" | bc) # Convert bytes to MiB 23 | echo "INSTALLER_MIB_NEEDED=${mib}" 24 | exit 0 25 | fi 26 | 27 | env | grep "INSTALLER_" 28 | 29 | # Only run as superuser 30 | if [ "$(id -u)" != "0" ]; then 31 | echo "This script must be run as root" 1>&2 32 | exit 1 33 | fi 34 | 35 | # Cleanup memory devices created before reroot if they exist 36 | if [ -e "/dev/md0" ] ; then 37 | /sbin/mdconfig -du md0 38 | fi 39 | if [ -e "/dev/md1" ] ; then 40 | /sbin/mdconfig -du md1 41 | fi 42 | 43 | # Clean up any previous runs 44 | umount -f ${FSMNT}/dev >/dev/null 2>/dev/null || true 45 | zpool export -f "${DESTPOOL}" >/dev/null 2>/dev/null || true 46 | 47 | # Set hostname 48 | if [ -n "${INSTALLER_HOSTNAME}" ] ; then 49 | echo "FIXME: Implement setting the hostname without asking questions. How?" 50 | else 51 | echo "Environment variable INSTALLER_HOSTNAME not set, running bsdinstall hostname" 52 | bsdinstall hostname 53 | fi 54 | 55 | # Install contents of read only uzip to destination pool 56 | 57 | if [ -n "${INSTALLER_DEVICE}" ] ; then 58 | export ZFSBOOT_DISKS="${INSTALLER_DEVICE}" 59 | export ZFSBOOT_PARTITION_SCHEME="GPT" 60 | export ZFSBOOT_POOL_NAME="zroot" 61 | export ZFSBOOT_BEROOT_NAME="ROOT" 62 | export ZFSBOOT_BOOTFS_NAME="default" 63 | export ZFSBOOT_DATASET_NESTING="1" 64 | export BOOT_BLOCKS_FROM_DISTSET="1" 65 | export ZFSBOOT_VDEV_TYPE="stripe" 66 | export ZFSBOOT_SWAP_SIZE="0" 67 | export ZFSBOOT_CONFIRM_LAYOUT="1" 68 | export nonInteractive="YES" 69 | env 70 | bsdinstall zfsboot 71 | else 72 | echo "Environment variable INSTALLER_DEVICE not set, running bsdinstall zfsboot" 73 | bsdinstall zfsboot 74 | fi 75 | 76 | if [ ! -d "/mnt/usr" ] ; then 77 | exit 1 78 | fi 79 | 80 | # Clone the file system to disk with cpdup 81 | cpdup -i0 -s0 -v "${LIVEFS}" "${FSMNT}" 82 | 83 | bsdinstall config 84 | cat /etc/rc.conf | xargs sysrc -f ${FSMNT}/etc/rc.conf # Transfer settings from running /etc/rc.conf to installed one 85 | bsdinstall entropy 86 | 87 | # Cleanup LiveCD restore specific contents from destination pool 88 | chroot "${FSMNT}" pkg remove -y furybsd-live-settings 89 | # TODO: Move all of this to pkg scripts of the pkg manifests that have installed these things 90 | chroot "${FSMNT}" rm /etc/rc.conf.local 91 | chroot "${FSMNT}" pw userdel liveuser 92 | chroot "${FSMNT}" pw groupdel liveuser 93 | chroot "${FSMNT}" rm -rf /usr/home/liveuser 94 | 95 | # Configure the new installation 96 | mount -t devfs devfs ${FSMNT}/dev 97 | 98 | # Disable direct root login; users in the wheel group can use sudo instead 99 | echo "Disabling direct root login; users in the wheel group can use sudo instead" 100 | # Since /etc/passwd is generated from /etc/master.passwd, do not edit it directly but use pw instead 101 | # chroot "${FSMNT}" pw usermod root -s /usr/sbin/nologin # FIXME: With this, sudo su does not work 102 | chroot "${FSMNT}" pw lock root # FIXME: With this, sudo su does not work 103 | 104 | # Add regular user 105 | # Ask for username and/or password in case the graphical installer frontend did not supply them 106 | echo "Creating user account" 107 | if [ -n "${INSTALLER_USERNAME}" ] ; then 108 | username="${INSTALLER_USERNAME}" 109 | else 110 | echo "Environment variable INSTALLER_USERNAME not set, asking the user for input" 111 | while true; do 112 | echo "" 113 | echo "Add User" 114 | echo "This user will be added to the video, wheel, and webcamd groups." 115 | while true; do 116 | echo "Username: " 117 | read -r username 118 | if echo "${username}" | grep -q -E "^[a-z][-a-z0-9]*$"; then 119 | break; 120 | else 121 | echo "Username not valid" 122 | fi 123 | done 124 | done 125 | fi 126 | # FIXME: Also handle existing but empty INSTALLER_USER_PASSWORD 127 | if [ -n "${INSTALLER_USER_PASSWORD}" ] ; then 128 | password="${INSTALLER_USER_PASSWORD}" 129 | else 130 | echo "Environment variable INSTALLER_USER_PASSWORD not set, asking the user for input" 131 | while true; do 132 | echo "New Password: "; stty -echo; read -r password; stty echo; echo "" 133 | echo "Retype New Password: "; stty -echo; read -r password2; stty echo; echo "" 134 | if [ "${password}" = "${password2}" ]; then 135 | break; 136 | else 137 | echo "Passwords did not match!" 138 | fi 139 | done 140 | fi 141 | echo "${username}:::::::::${password}" | chroot "${FSMNT}" adduser -f - && \ 142 | chroot "${FSMNT}" pw groupmod wheel -m "${username}" && \ 143 | chroot "${FSMNT}" pw groupmod video -m "${username}" && \ 144 | chroot "${FSMNT}" pw groupmod webcamd -m "${username}" && break 145 | 146 | if [ -n "${INSTALLER_DEVICE}" ] ; then 147 | echo "Not setting time for now; let's handle this by ntpd and dhcp" 148 | else 149 | echo "Environment variable INSTALLER_DEVICE not set, running bsdinstall time" 150 | # FIXME: Do we still want this given that we will use ntpd and dhcp timzeones? 151 | bsdinstall time 152 | fi 153 | 154 | # Enable additional services needed for desktop 155 | echo "Enabling additional services needed for desktop" 156 | if [ -f "/usr/local/sbin/lightdm" ] ; then 157 | chroot "${FSMNT}" sysrc lightdm_enable="YES" 158 | fi 159 | if [ -f "/usr/local/sbin/gdm" ] ; then 160 | chroot "${FSMNT}" sysrc gdm_enable="YES" 161 | fi 162 | if [ -f "/usr/local/etc/rc.d/pcdm" ] ; then 163 | chroot "${FSMNT}" sysrc pcdm_enable="YES" 164 | fi 165 | if [ -f "/usr/local/bin/sddm" ] ; then 166 | chroot "${FSMNT}" sysrc sddm_enable="YES" 167 | fi 168 | if [ -f "/usr/local/bin/slim" ] ; then 169 | chroot "${FSMNT}" sysrc slim_enable="YES" 170 | fi 171 | 172 | # Enable sshd if the user has requested it 173 | if [ "${INSTALLER_ENABLE_SSH}" = "YES" ] ; then 174 | chroot "${FSMNT}" sysrc sshd_enable="YES" 175 | fi 176 | 177 | # TODO: Transfer settings from running /boot/loader.conf to installed one 178 | # https://github.com/furybsd/furybsd-livecd/issues/190 179 | # Until we have a better solution, hardcode it here too... 180 | cat >> "${FSMNT}/boot/loader.conf" <<\EOF 181 | # cp /boot/loader.conf ${FSMNT}/boot 182 | # Decrease boot verbosity, show splash 183 | # and fix resolution setting for Intel 184 | boot_mute="YES" 185 | verbose_loading="NO" 186 | beastie_disable="YES" 187 | autoboot_delay=0 188 | EOF 189 | 190 | # Cleanup 191 | # umount -f "${FSMNT}/dev" >/dev/null 2>/dev/null || true # Is this needed? TODO: Re-enable if yes 192 | # zpool export -f "${DESTPOOL}" >/dev/null 2>/dev/null || true # Is this needed? TODO: Re-enable if yes 193 | echo "Installation finished!" 194 | 195 | # Reboot 196 | if [ -n "${INSTALLER_DEVICE}" ] ; then 197 | # Let the graphical installer frontend handle the reboot 198 | exit 0 199 | else 200 | echo "Press any key to reboot..." 201 | read -r reboot 202 | shutdown -r now 203 | fi 204 | -------------------------------------------------------------------------------- /settings/script.gnustep: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # This script is executed on the build host 4 | # at the time when the image is created. This is just a temporary script 5 | # until the software below is available in pkg. 6 | # Ideally everything gets upstreamed, removing the need for the bulk of this file. 7 | 8 | HERE=$(readlink -f .) 9 | 10 | if [ -z "${uzip}" ] ; then 11 | echo "\$uzip missing. Exiting" 12 | fi 13 | 14 | VERSION_TEXT=$(date +'%d/%m/%Y') 15 | 16 | pkg install -y git gmake gnustep-make gnustep-gui gnustep xcb-util xcb-util-wm libXfixes cairo librsvg2 pkgconf ImageMagick6 wget librsvg2 font-bh-ttf 17 | 18 | . /usr/local/GNUstep/System/Makefiles/GNUstep.sh 19 | 20 | cd /tmp 21 | 22 | git clone "https://github.com/BertrandDekoninck/TopBar" 23 | cd TopBar 24 | sed -i -e 's|@"GNUstep"|@"TODO: Show non-GNUstep menu here. Can you implement it? https://github.com/BertrandDekoninck/TopBar/issues/1"|g' TopBar.m 25 | gmake 26 | ls "${uzip}" 27 | DESTDIR="${uzip}" gmake install 28 | cd - 29 | 30 | REPO="AlessandroSangiuliano/rik.theme" 31 | git clone "https://github.com/${REPO}" 32 | cd $(basename "${REPO}") # sic! 33 | gmake 34 | ls "${uzip}" 35 | DESTDIR="${uzip}" gmake install 36 | cd - 37 | 38 | # Build dependency needed for uroswm 39 | REPO="AlessandroSangiuliano/XcbKit" 40 | git clone "https://github.com/${REPO}" 41 | cd $(basename "${REPO}")/XCBKit # sic! 42 | git checkout feature/gnustep_support 43 | gmake 44 | ls "${uzip}" 45 | gmake install # Install on the build system; this is needed for libraries 46 | DESTDIR="${uzip}" gmake install 47 | cd - 48 | 49 | REPO="AlessandroSangiuliano/uroswm" 50 | git clone "https://github.com/${REPO}" 51 | cd $(basename "${REPO}")/$(basename "${REPO}") 52 | git checkout develop 53 | gmake 54 | ls "${uzip}" 55 | DESTDIR="${uzip}" gmake install 56 | cd - 57 | 58 | # Build TextEdit 59 | # as it is missing from FreeBSD pkg; FIXME 60 | git clone https://github.com/ericwa/TextEdit 61 | cd TextEdit/ 62 | gmake 63 | DESTDIR="${uzip}" gmake install 64 | cd - 65 | 66 | # Replace TextEdit icon 67 | curl https://raw.githubusercontent.com/zayronxio/Mojave-CT/master/apps/128/accessories-text-editor.svg > "${uzip}"/usr/local/GNUstep/Local/Applications/TextEdit.app/Resources/accessories-text-editor.svg 68 | sed -i -e 's|.icns|.png|g' "${uzip}"/usr/local/GNUstep/Local/Applications/TextEdit.app/Resources/Info-gnustep.plist 69 | sed -i -e 's|.icns|.png|g' "${uzip}"/usr/local/GNUstep/Local/Applications/TextEdit.app/Resources/TextEdit.desktop 70 | rm "${uzip}"/usr/local/GNUstep/Local/Applications/TextEdit.app/Resources/accessories-text-editor.icns 71 | rm "${uzip}"/usr/local/GNUstep/Local/Applications/TextEdit.app/Resources/*-e 72 | rsvg-convert -a -w 48 -h 48 "${uzip}"/usr/local/GNUstep/Local/Applications/TextEdit.app/Resources/accessories-text-editor.svg -o "${uzip}"/usr/local/GNUstep/Local/Applications/TextEdit.app/Resources/accessories-text-editor.png 73 | 74 | # Replace icons for applications in Local; TODO: Complete this task for all icons and also for those in System 75 | set +e # Continue in case of errors 76 | REPLACEMENTS="AClock;apps/128/clock AdressManager;apps/128/address-book.svg batmon;devices/128/battery.svg Chess;apps/128/chess.svg FTP;apps/128/com.github.alecaddd.taxi.svg" 77 | for REPLACEMENT in $REPLACEMENTS ; do 78 | APP=$(echo $REPLACEMENT | cut -d ";" -f 1) 79 | ICON=$(echo $REPLACEMENT | cut -d ";" -f 2) 80 | if [ -e "${uzip}/usr/local/GNUstep/Local/Applications/${APP}.app/Resources/${APP}.desktop" ] ; then 81 | OLD=$(echo "${uzip}/usr/local/GNUstep/Local/Applications/${APP}.app/Resources/${APP}.desktop" | grep Icon= | cut -d "=" -f 2 | sed -e 's|.tiff||g' | sed -e 's|.icns||g') 82 | curl https://raw.githubusercontent.com/zayronxio/Mojave-CT/master/$ICON > "${uzip}/usr/local/GNUstep/Local/Applications/${APP}.app/Resources/${OLD}.svg" 83 | sed -i -e 's|.icns|.png|g' "${uzip}/usr/local/GNUstep/Local/Applications/${APP}.app/Resources/Info-gnustep.plist" || true 84 | sed -i -e 's|.icns|.png|g' "${uzip}/usr/local/GNUstep/Local/Applications/${APP}.app/Resources/${APP}.desktop" || true 85 | sed -i -e 's|.tiff|.png|g' "${uzip}/usr/local/GNUstep/Local/Applications/${APP}.app/Resources/Info-gnustep.plist" || true 86 | sed -i -e 's|.tiff|.png|g' "${uzip}/usr/local/GNUstep/Local/Applications/${APP}.app/Resources/${APP}.desktop" || true 87 | rm "${uzip}"/usr/local/GNUstep/Local/Applications/${APP}.app/Resources/*-e 88 | rsvg-convert -a -w 48 -h 48 "${uzip}/usr/local/GNUstep/Local/Applications/${APP}.app/Resources/${OLD}.svg" -o "${uzip}/usr/local/GNUstep/Local/Applications/${APP}.app/Resources/${OLD}.png" 89 | fi 90 | done 91 | set -e # Do not continue in case of errors 92 | 93 | # Build all applications for the GNUstep Applications project 94 | # as the ones in FreeBSD pkg are not complete; FIXME 95 | git clone https://github.com/gnustep/gap/ 96 | cd gap/ 97 | gmake 98 | DESTDIR="${uzip}" gmake install 99 | cd - 100 | 101 | # Modified GWorkspace by https://github.com/BertrandDekoninck, see 102 | # https://github.com/BertrandDekoninck/WindowMaker-session 103 | # White labels for icons on the desktop and a singleclick setting for the dock. 104 | # To enable single click, type 'defaults write GWorkspace dockclickpolicy 1'. 105 | # TODO: Make use of "Volume checking and unmounting" 106 | git clone https://github.com/BertrandDekoninck/gworkspace 107 | cd gworkspace 108 | # Remove all wrappers for applications we don't ship 109 | # TODO: Dynamically generate wrappers by watching the directories 110 | # in which XDG desktop files can reside 111 | rm -rf Apps_wrappers/*.app 112 | ./configure --enable-fake-main 113 | gmake 114 | DESTDIR="${uzip}" gmake install 115 | cd - 116 | 117 | # An editor that can at least edit .plist files, and provides code completion 118 | #wget http://download-mirror.savannah.gnu.org/releases/gnustep-nonfsf/HighlighterKit-0.1.3.tar.gz 119 | #tar xf HighlighterKit-0.1.3.tar.gz 120 | #cd ./HighlighterKit-*/ 121 | #gmake 122 | #cp -r ./HighlighterKit.framework "/usr/local/GNUstep/Local/Library/Frameworks/" # FIXME: 'gmake install' fails; install to local system 123 | #cp -r ./HighlighterKit.framework "${uzip}/usr/local/GNUstep/Local/Library/Frameworks/" # FIXME: 'gmake install' fails; install to target system 124 | #cd - 125 | #wget http://download-mirror.savannah.gnu.org/releases/gnustep-nonfsf/Gemas-0.4.tar.gz 126 | #tar xf Gemas-0.4.tar.gz 127 | #cd Gemas-*/ 128 | #gmake 129 | #cp -r ./Gemas.app/ "${uzip}/usr/local/GNUstep/Local/Applications/" # FIXME: 'gmake install' fails 130 | #cd "${HERE}" 131 | 132 | # Turn XDG desktop files into something GWorkspace understands 133 | chroot "${uzip}" find /usr/local/share/applications/ -name '*.desktop' -exec desktop2app {} /usr/local/GNUstep/Local/Applications/ \; 134 | chroot "${uzip}" find /usr/share/skel/Desktop/ -name '*.desktop' -exec desktop2app {} /usr/share/skel/Desktop/ \; 135 | chroot "${uzip}" find /usr/share/skel/Desktop/ -name '*.desktop' -delete 136 | rm -rf "${uzip}"/*.core 137 | 138 | # Try to fix rc order issue; TODO: if this works then this probably needs to be put into build.sh 139 | sed -i -e 's|^# REQUIRE: .*|# REQUIRE: dhclient DAEMON dbus|g' "${uzip}/usr/local/etc/rc.d/avahi-daemon" 140 | rm "${uzip}/usr/local/etc/rc.d/avahi-daemon-e" || true 141 | sed -i -e 's|^# REQUIRE: .*|# REQUIRE: dhclient NETWORKING syslogd|g' "${uzip}/etc/rc.d/ntpdate" 142 | rm "${uzip}/etc/rc.d/ntpdate-e" || true 143 | 144 | # Not every about box of every application GNUstep branded 145 | rm -f "${uzip}"/usr/local/GNUstep/System/Library/Images/LogoGNUstep.tiff 146 | 147 | # Get additional applications 148 | mkdir -p "${uzip}/usr/local/GNUstep/Local/Applications/Utilities/" 149 | wget -c "https://github.com/probonopd/Utilities/archive/master.zip" 150 | unzip master.zip 151 | mv ./Utilities-master/*.app "${uzip}/usr/local/GNUstep/Local/Applications/Utilities/" 152 | rm -rf Utilities-master/ master.zip 153 | ( cd "${uzip}/usr/share/skel/Desktop/" ; ln -s /usr/local/GNUstep/Local/Applications/Utilities/Keyboard.app . ) 154 | ( cd "${uzip}/usr/share/skel/Desktop/" ; ln -s /usr/local/GNUstep/Local/Applications/Utilities/Zeroconf.app . ) 155 | 156 | # Get wallpaper 157 | # TODO: Also check 158 | # https://papers.co/desktop/vg41-ribbon-abstract-art-blue-pattern/ 159 | # https://papers.co/desktop/vm16-abstract-blue-rhytm-pattern/ 160 | wget "https://res.allmacwallpaper.com/get/iMac-21-inch-wallpapers/Minimalist-blue-1920x1080/1686-9.jpg" -O "${uzip}"/usr/local/share/slim/themes/default/background.jpg 161 | 162 | # Add information about the build to the about box of GWorkspace and to the wallpaper 163 | # at least for the continuous builds 164 | mogrify -fill white -pointsize 13 -gravity SouthEast -draw "text 10,10 '$VERSION_TEXT'" "${uzip}"/usr/local/share/slim/themes/default/background.jpg 165 | sed -i -e 's|07 2016|'"${VERSION_TEXT}"'|g' "${uzip}"/usr/local/GNUstep/Local/Applications/GWorkspace.app/Resources/Info-gnustep.plist 166 | rm "${uzip}"/usr/local/GNUstep/Local/Applications/GWorkspace.app/Resources/Info-gnustep.plist-e || true 167 | 168 | # Do not theme the GWorkspace icon 169 | rm "${uzip}"/usr/local/GNUstep/Local/Library/Themes/Rik.theme/Resources/ThemeImages/org.gnustep.GWorkspace/FileManager.tiff 170 | 171 | # Autologin without a display manager 172 | # Commented out because not working; using slim for now 173 | # chroot "${uzip}" echo 'al.liveuser:al=liveuser:tc=std.230400:' >> /etc/gettytab 174 | # chroot "${uzip}" sed -i -e 's|^ttyv0.*$|ttyv0 "/usr/libexec/getty al.liveuser" xterm on secure|g' /etc/ttys 175 | # chroot "${uzip}" rm /etc/ttys-e 176 | # chroot "${uzip}" echo 'if $tty == ttyv0 startx' >> /usr/share/skel/dot.login 177 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-xfce-live-settings/files/usr/share/skel/dot.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-gnustep-live-settings/files/usr/local/bin/desktop2app: -------------------------------------------------------------------------------- 1 | #!/usr/local/bin/python3.7 2 | 3 | # Note that the shebang cannot be /usr/bin/env ... if this script is intended to 4 | # be run by rc.d 5 | 6 | # This implements enough of the XDG spec to create .app bundles for desktop files. 7 | # If someone cares enough about the convoluted XDG spec to implement it more fully, 8 | # https://github.com/jceb/dex/blob/master/dex might be a good starting point. 9 | # It is refreshing to see how straightforward things are in GNUstep compared to XDG. 10 | 11 | # USAGE: $0 [] 12 | # or, to watch the system for new desktop files, just call it without arguments 13 | 14 | 15 | # Copyright (c) 2020, Simon Peter 16 | # All rights reserved. 17 | # 18 | # Redistribution and use in source and binary forms, with or without 19 | # modification, are permitted provided that the following conditions are met: 20 | # 21 | # 1. Redistributions of source code must retain the above copyright notice, this 22 | # list of conditions and the following disclaimer. 23 | # 24 | # 2. Redistributions in binary form must reproduce the above copyright notice, 25 | # this list of conditions and the following disclaimer in the documentation 26 | # and/or other materials provided with the distribution. 27 | # 28 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 29 | # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 30 | # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 31 | # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 32 | # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 33 | # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 34 | # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 35 | # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 36 | # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 37 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 38 | 39 | 40 | import os, sys, stat, shutil, subprocess, plistlib, signal, time 41 | from xdg import IniFile, IconTheme # pkg install py37-xdg 42 | 43 | 44 | # Create .app bundles for desktop files 45 | 46 | def d2a(desktopfile, destination): 47 | i = IniFile.IniFile() 48 | 49 | i.parse(desktopfile) 50 | 51 | if not "Desktop Entry" in i.content.keys(): 52 | print("No Desktop Entry section, hence skipping '%s'" % desktopfile) 53 | return 54 | 55 | if "Name" in i.content["Desktop Entry"].keys(): 56 | name = i.content["Desktop Entry"]["Name"] 57 | else: 58 | print("No Name=..., hence skipping '%s'" % desktopfile) 59 | return 60 | if "Exec" in i.content["Desktop Entry"].keys(): 61 | exec = i.content["Desktop Entry"]["Exec"] 62 | exec = exec.replace(" %f", "").replace(" %F", "").replace(" %u", "").replace(" %U", "") 63 | else: 64 | print("No Exec=..., hence skipping '%s'" % desktopfile) 65 | return 66 | if "Comment" in i.content["Desktop Entry"].keys(): 67 | description = i.content["Desktop Entry"]["Comment"] 68 | else: 69 | description = name 70 | if "Icon" in i.content["Desktop Entry"].keys(): 71 | icon = i.content["Desktop Entry"]["Icon"] 72 | else: 73 | print("No Icon=..., hence skipping '%s'" % desktopfile) 74 | return 75 | iconfile = IconTheme.getIconPath(icon, size=48, extensions=['png']) 76 | svgiconfile = IconTheme.getIconPath(icon, size=48, extensions=['svg']) 77 | 78 | if svgiconfile == None and (iconfile == None or os.path.exists(iconfile) == False): 79 | 80 | print("The icon '%s' does not exist" % icon) 81 | return 82 | else: 83 | if iconfile == None or os.path.exists(iconfile) == False: 84 | if os.path.exists(svgiconfile) == False: 85 | print("The icon '%s' does not exist" % icon) 86 | return 87 | 88 | if "MimeType" in i.content["Desktop Entry"].keys(): 89 | mime = i.content["Desktop Entry"]["MimeType"] 90 | else: 91 | mime = None 92 | if i.content["Desktop Entry"]["Type"] != "Application": 93 | print("Not using %s because it is not an application" % desktopfile) 94 | return 95 | 96 | print("Using %s" % desktopfile) 97 | 98 | if os.path.isdir('%s/%s.app' % (destination, name)): 99 | try: 100 | print("Removing pre-existing .app bundle '%s/%s.app'" % (destination, name)) 101 | shutil.rmtree("%s/%s.app" % (destination, name)) 102 | except: 103 | print("Could not remove pre-existing .app bundle, exiting") 104 | return 105 | 106 | try: 107 | os.makedirs("%s/%s.app/Resources" % (destination, name)) 108 | except: 109 | print("Could not create .app bundle, exiting") 110 | return 111 | 112 | if iconfile == None and svgiconfile == None: 113 | print("Could not find a suitable icon for %s', exiting" % icon) 114 | return 115 | elif iconfile != None: 116 | print("Using icon from %s" % iconfile) 117 | shutil.copyfile(iconfile, ("%s/%s.app/Resources/%s.png" % (destination, name, name))) 118 | elif iconfile == None and svgiconfile != None: 119 | print("Could not find a png icon for '%s', converting '%s' to png" % (icon, svgiconfile)) 120 | try: 121 | subprocess.call(["rsvg-convert", "-a", "-w", "48", "-h", "48", svgiconfile, "-o", ("%s/%s.app/Resources/%s.png" % (destination, name, name))]) 122 | except: 123 | print("The conversion of '%s' to png failed. Is rsvg-convert installed?") 124 | return 125 | 126 | 127 | launcher = """#!/bin/sh 128 | exec %EXEC% "$@" 129 | """ 130 | 131 | launcher_path = ("%s/%s.app/%s" % (destination, name, name)) 132 | launcher_file = open(launcher_path, "w") 133 | launcher_file.write(launcher.replace("%EXEC%", exec)) 134 | launcher_file.close() 135 | 136 | # Set executable bit 137 | os.chmod(launcher_path, 138 | stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH | stat.S_IRUSR | stat.S_IRGRP | stat.S_IROTH | stat.S_IWUSR) 139 | 140 | # TODO: Handle MIME types and file associations more adequately. 141 | # Again, it is refreshing to see how straightforward things are in GNUstep compared to XDG, 142 | # e.g., how easy an application can set the file types it understands, define what those files 143 | # are called, and which icons to use to represent them. What is imlemented below is the bare minimum 144 | # to get things going. Feel free to implement more. 145 | nstypes = [] 146 | if mime != None: 147 | mimetypes = mime.split(";") 148 | mimetypes = [x for x in mimetypes if x] # Remove empty items 149 | nstypes = [{"NSDocumentClass": ("%sDocument" % name.replace(" ", "")), "NSName": ("MIME type %s understands" % name), "NSHumanReadableName": ("MIME type %s understands" % name), "NSMIMETypes": mimetypes}] 150 | 151 | properties = { 152 | "ApplicationName": name, 153 | "ApplicationDescription": description, 154 | "NSExecutable": name, 155 | "NSIcon": name + ".png", 156 | "XAppWrapper": True, 157 | "NSTypes": nstypes 158 | } 159 | fileName = open("%s/%s.app/Resources/Info-gnustep.plist" % (destination, name), 'wb') 160 | plistlib.dump(properties, fileName) 161 | fileName.close() 162 | 163 | print("Wrapper placed in %s/%s.app" % (destination, name)) 164 | 165 | 166 | well_known_desktop_file_locations = [ 167 | '/usr/local/share/applications/', 168 | ] 169 | 170 | def checkIfProcessRunning(processName): 171 | ''' 172 | Check if there is any running process that contains the given name processName. 173 | ''' 174 | #Iterate over the all the running process 175 | for proc in psutil.process_iter(): 176 | try: 177 | # Check if process name contains the given name string. 178 | if processName.lower() in proc.name().lower(): 179 | return True 180 | except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess): 181 | pass 182 | return False; 183 | 184 | def directory_changed(path): 185 | print('Directory Changed: %s' % path) 186 | current_desktop_files_in_system = get_desktop_files_in_system() 187 | for df in current_desktop_files_in_system: 188 | if not df in handled_desktop_files_in_system: 189 | if df.endswith(".desktop") and os.path.exists(df): 190 | # print("%s has not been handled yet" % df) 191 | while checkIfProcessRunning("pkg"): 192 | time.sleep(3) 193 | print("Waiting for pkg process to exit...") 194 | time.sleep(1) 195 | print("Creating wrapper for' %s'" % (df)) 196 | d2a(df, "/usr/local/GNUstep/Local/Applications/") 197 | try: 198 | subprocess.call(["/usr/local/GNUstep/System/Tools/make_services"]) 199 | except: 200 | print("Could not run make_services, is GNUstep installed?") 201 | handled_desktop_files_in_system.append(df) 202 | 203 | def get_desktop_files_in_system(): 204 | all_desktopfiles = [] 205 | for path in well_known_desktop_file_locations: 206 | desktopfiles = [os.path.join(path, f) for f in os.listdir(path) if 207 | os.path.isfile(os.path.join(path, f))] 208 | for d in desktopfiles: 209 | all_desktopfiles.append(d) 210 | return(all_desktopfiles) 211 | 212 | handled_desktop_files_in_system = [] 213 | 214 | if __name__ == "__main__": 215 | 216 | destination = "." 217 | 218 | if len(sys.argv) < 2: 219 | # Using Qt for QFileSystemWatcher as long as 220 | # https://people.freebsd.org/~dwhite/PyKQueue/ 221 | # is unmaintained and not available for python3 222 | try: 223 | from PyQt5 import QtCore 224 | except: 225 | print("Cannot watch the system for newly installed applications since PyQt5 is missing.") 226 | exit(1) 227 | 228 | try: 229 | import psutil 230 | except: 231 | print("Cannot watch the system for newly installed applications since py37-psutil is missing.") 232 | exit(1) 233 | 234 | signal.signal(signal.SIGINT, QtCore.QCoreApplication.quit) # FIXME: Make Ctrl-C work; Does not seem to work 235 | 236 | app = QtCore.QCoreApplication(sys.argv) 237 | 238 | handled_desktop_files_in_system = get_desktop_files_in_system() 239 | 240 | fs_watcher = QtCore.QFileSystemWatcher(well_known_desktop_file_locations) 241 | fs_watcher.directoryChanged.connect(directory_changed) 242 | 243 | sys.exit(app.exec_()) 244 | 245 | 246 | if len(sys.argv) >2: 247 | if(os.path.isdir(sys.argv[2])): 248 | destination = sys.argv[2] 249 | else: 250 | print("%s is not a directory" % sys.argv[2]) 251 | exit(1) 252 | 253 | desktopfile_or_directory = sys.argv[1] 254 | 255 | if not os.path.exists(desktopfile_or_directory): 256 | print("%s does not exist" % desktopfile_or_directory) 257 | exit(1) 258 | 259 | if os.path.isdir(desktopfile_or_directory): 260 | print("Not yet implemented") 261 | desktopfiles = [os.path.join(desktopfile_or_directory, f) for f in os.listdir(desktopfile_or_directory) if os.path.isfile(os.path.join(desktopfile_or_directory, f))] 262 | for desktopfile in desktopfiles: 263 | d2a(desktopfile, destination) 264 | else: 265 | d2a(desktopfile_or_directory, destination) 266 | 267 | # Register file types (and hopefully also MIME types) with the system 268 | # https://lists.gnu.org/archive/html/discuss-gnustep/2014-03/msg00061.html 269 | # According to https://lists.gnu.org/archive/html/discuss-gnustep/2014-03/msg00072.html 270 | # make_services does not get run automatically, which is bad since it means that an 271 | # .app bundle just unzipped somewhere does not get recognized at all. 272 | # In the ideal world, make_services would get invoked 273 | # # automatically whenever the system/GWorkspace sees fit. 274 | # To overcome this, we could check the modification date of the database 275 | # and if it is older than ourselves, then run make_services. 276 | # For now we just invoke it here. 277 | try: 278 | subprocess.call(["/usr/local/GNUstep/System/Tools/make_services"]) 279 | except: 280 | print("Could not run make_services, is GNUstep installed?") 281 | 282 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-gnustep-live-settings/files/usr/local/bin/app: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3.7 2 | 3 | 4 | # USAGE: app get firefox 5 | # This puts together an .app bundle using ingredients from pkg 6 | 7 | 8 | # Copyright (c) 2020, Simon Peter 9 | # All rights reserved. 10 | # 11 | # Redistribution and use in source and binary forms, with or without 12 | # modification, are permitted provided that the following conditions are met: 13 | # 14 | # 1. Redistributions of source code must retain the above copyright notice, this 15 | # list of conditions and the following disclaimer. 16 | # 17 | # 2. Redistributions in binary form must reproduce the above copyright notice, 18 | # this list of conditions and the following disclaimer in the documentation 19 | # and/or other materials provided with the distribution. 20 | # 21 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 | # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24 | # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 25 | # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 27 | # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 28 | # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29 | # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | 32 | 33 | import os, sys, stat, shutil, subprocess, plistlib, tempfile, getpass 34 | from xdg import IniFile, IconTheme # pkg install py37-xdg 35 | 36 | 37 | def d2a(desktopfile, destination): 38 | 39 | IconTheme.icondirs = [os.path.dirname(os.path.dirname(desktopfile)) + "/icons", os.path.dirname(os.path.dirname(desktopfile)) + "/pixmaps"] 40 | 41 | i = IniFile.IniFile() 42 | 43 | i.parse(desktopfile) 44 | 45 | if not "Desktop Entry" in i.content.keys(): 46 | print("No Desktop Entry section, hence skipping '%s'" % desktopfile) 47 | return None 48 | 49 | if "Name" in i.content["Desktop Entry"].keys(): 50 | name = i.content["Desktop Entry"]["Name"] 51 | else: 52 | print("No Name=..., hence skipping '%s'" % desktopfile) 53 | return None 54 | if "Exec" in i.content["Desktop Entry"].keys(): 55 | exec = i.content["Desktop Entry"]["Exec"] 56 | exec = exec.replace(" %f", "").replace(" %F", "").replace(" %u", "").replace(" %U", "") 57 | else: 58 | print("No Exec=..., hence skipping '%s'" % desktopfile) 59 | return None 60 | if "Comment" in i.content["Desktop Entry"].keys(): 61 | description = i.content["Desktop Entry"]["Comment"] 62 | else: 63 | description = name 64 | if "Icon" in i.content["Desktop Entry"].keys(): 65 | icon = i.content["Desktop Entry"]["Icon"] 66 | else: 67 | print("No Icon=..., hence skipping '%s'" % desktopfile) 68 | return None 69 | iconfile = IconTheme.getIconPath(icon, size=48, extensions=['png']) 70 | svgiconfile = IconTheme.getIconPath(icon, size=48, extensions=['svg']) 71 | 72 | # What we have got may be symlinks. Example: firefox pkg. 73 | # Those may point to /usr/local/..., hence we need to prefix them 74 | # Borrowed from https://github.com/pypa/virtualenv/commit/04ce79630d6aa1df87a6bb44a550353c1961953e 75 | 76 | if iconfile != None: 77 | while os.path.islink(iconfile): 78 | iconfile = os.path.join(os.path.dirname(iconfile), os.readlink(iconfile)) 79 | iconfile = os.path.abspath(iconfile) 80 | 81 | if svgiconfile != None: 82 | while os.path.islink(svgiconfile): 83 | svgiconfile = os.path.join(os.path.dirname(svgiconfile), os.readlink(svgiconfile)) 84 | svgiconfile = os.path.abspath(svgiconfile) 85 | 86 | if svgiconfile == None and (iconfile == None or os.path.exists(iconfile) == False): 87 | 88 | print("The icon '%s' does not exist at %s" % (icon, iconfile)) 89 | return None 90 | else: 91 | if iconfile == None or os.path.exists(iconfile) == False: 92 | if os.path.exists(svgiconfile) == False: 93 | print("The icon '%s' does not exist at %s" % (icon, iconfile)) 94 | return None 95 | 96 | if "MimeType" in i.content["Desktop Entry"].keys(): 97 | mime = i.content["Desktop Entry"]["MimeType"] 98 | else: 99 | mime = None 100 | if i.content["Desktop Entry"]["Type"] != "Application": 101 | print("Not using %s because it is not an application" % desktopfile) 102 | return None 103 | 104 | print("Using %s" % desktopfile) 105 | 106 | if os.path.isdir('%s/%s.app' % (destination, name)): 107 | try: 108 | print("Removing pre-existing .app bundle '%s/%s.app'" % (destination, name)) 109 | shutil.rmtree("%s/%s.app" % (destination, name)) 110 | except: 111 | print("Could not remove pre-existing .app bundle, exiting") 112 | return None 113 | 114 | try: 115 | os.makedirs("%s/%s.app/Resources" % (destination, name)) 116 | except: 117 | print("Could not create .app bundle, exiting") 118 | return None 119 | 120 | if iconfile == None and svgiconfile == None: 121 | print("Could not find a suitable icon for %s', exiting" % icon) 122 | return 123 | elif iconfile != None: 124 | print("Using icon from %s" % iconfile) 125 | shutil.copyfile(iconfile, ("%s/%s.app/Resources/%s.png" % (destination, name, name))) 126 | elif iconfile == None and svgiconfile != None: 127 | print("Could not find a png icon for '%s', converting '%s' to png" % (icon, svgiconfile)) 128 | try: 129 | subprocess.call(["rsvg-convert", "-a", "-w", "48", "-h", "48", svgiconfile, "-o", ("%s/%s.app/Resources/%s.png" % (destination, name, name))]) 130 | except: 131 | print("The conversion of '%s' to png failed. Is rsvg-convert installed?") 132 | return None 133 | 134 | 135 | launcher = """#!/bin/sh 136 | 137 | # Copyright (c) 2020, Simon Peter 138 | # All rights reserved. 139 | # 140 | # Redistribution and use in source and binary forms, with or without 141 | # modification, are permitted provided that the following conditions are met: 142 | # 143 | # 1. Redistributions of source code must retain the above copyright notice, this 144 | # list of conditions and the following disclaimer. 145 | # 146 | # 2. Redistributions in binary form must reproduce the above copyright notice, 147 | # this list of conditions and the following disclaimer in the documentation 148 | # and/or other materials provided with the distribution. 149 | # 150 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 151 | # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 152 | # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 153 | # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 154 | # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 155 | # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 156 | # SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 157 | # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 158 | # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 159 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 160 | 161 | set -e # Exit on errors 162 | 163 | # Something better than the following is needed; ideally something that does not 164 | # require root rights. Are there per-process namespaces in FreeBSD? Can we use Jails? 165 | 166 | HERE="$(dirname "$(readlink -f "${0}")")" 167 | if [ -z "${XDG_RUNTIME_DIR}" ] ; then 168 | XDG_RUNTIME_DIR=/var/run/user/$(id -u) 169 | fi 170 | THERE=$(mktemp -d "${XDG_RUNTIME_DIR}/XXXXXXXX") 171 | CHROOT="${THERE}/chroot" 172 | 173 | # The finish function runs whenever this script exits 174 | finish() 175 | { 176 | sudo umount -f "${CHROOT}/bin" 177 | sudo umount -f "${CHROOT}/var" 178 | sudo umount -f "${CHROOT}/home" 179 | sudo umount -f "${CHROOT}/tmp" 180 | sudo umount -f "${CHROOT}/lib" 181 | sudo umount -f "${CHROOT}/usr" 182 | sudo umount -f "${CHROOT}/etc" 183 | sudo umount -f "${CHROOT}/libexec" 184 | rm -r "${THERE}" 185 | sleep 1 186 | } 187 | trap finish EXIT 188 | 189 | mkdir -p "${CHROOT}/bin" 190 | mkdir -p "${CHROOT}/var" 191 | mkdir -p "${CHROOT}/home" 192 | mkdir -p "${CHROOT}/tmp" 193 | mkdir -p "${CHROOT}/lib" 194 | mkdir -p "${CHROOT}/usr" 195 | mkdir -p "${CHROOT}/etc" 196 | mkdir -p "${CHROOT}/libexec" 197 | sudo mount -t nullfs /bin "${CHROOT}/bin" 198 | sudo mount -t nullfs /bin "${CHROOT}/var" 199 | sudo mount -t nullfs /home "${CHROOT}/home" 200 | sudo mount_nullfs /tmp "${CHROOT}/tmp" # for /tmp/.X11-unix 201 | sudo mount -t nullfs /lib "${CHROOT}/lib" 202 | sudo mount -t nullfs /etc "${CHROOT}/etc" 203 | sudo mount -t nullfs /libexec "${CHROOT}/libexec" 204 | sudo "${HERE}/Resources/Root/usr/local/bin/unionfs" -o ro,allow_other "/usr:${HERE}/Resources/Root/usr" "${CHROOT}/usr" # Why is sudo needed here? 205 | # Why does it need: export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/nvidia/440/usr/local/lib/ 206 | sudo chroot -u "${USER}" "${CHROOT}" "%EXEC%" "$@" 207 | """ 208 | 209 | launcher_path = ("%s/%s.app/%s" % (destination, name, name)) 210 | launcher_file = open(launcher_path, "w") 211 | launcher_file.write(launcher.replace("%EXEC%", exec)) 212 | launcher_file.close() 213 | 214 | # Set executable bit 215 | os.chmod(launcher_path, 216 | stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH | stat.S_IRUSR | stat.S_IRGRP | stat.S_IROTH | stat.S_IWUSR) 217 | 218 | # TODO: Handle MIME types and file associations more adequately. 219 | # Again, it is refreshing to see how straightforward things are in GNUstep compared to XDG, 220 | # e.g., how easy an application can set the file types it understands, define what those files 221 | # are called, and which icons to use to represent them. What is imlemented below is the bare minimum 222 | # to get things going. Feel free to implement more. 223 | nstypes = [] 224 | if mime != None: 225 | mimetypes = mime.split(";") 226 | mimetypes = [x for x in mimetypes if x] # Remove empty items 227 | nstypes = [{"NSDocumentClass": ("%sDocument" % name.replace(" ", "")), "NSName": ("MIME type %s understands" % name), "NSHumanReadableName": ("MIME type %s understands" % name), "NSMIMETypes": mimetypes}] 228 | 229 | properties = { 230 | "ApplicationName": name, 231 | "ApplicationDescription": description, 232 | "NSExecutable": name, 233 | "NSIcon": name + ".png", 234 | "XAppWrapper": True, 235 | "NSTypes": nstypes 236 | } 237 | fileName = open("%s/%s.app/Resources/Info-gnustep.plist" % (destination, name), 'wb') 238 | plistlib.dump(properties, fileName) 239 | fileName.close() 240 | 241 | return(name) 242 | 243 | 244 | if __name__ == "__main__": 245 | 246 | destination = "." 247 | 248 | if len(sys.argv) < 3: 249 | print("USAGE: %s get " % sys.argv[0]) 250 | exit(1) 251 | 252 | if sys.argv[1] == "get": 253 | 254 | pkg_name = sys.argv[2] 255 | 256 | sub_env = os.environ.copy() 257 | temp_dir = tempfile.mkdtemp() 258 | 259 | # Download from pkg 260 | 261 | try: 262 | # Without sudo, getting: 263 | # pkg: Insufficient privileges to access repo catalogue. Why? 264 | subprocess.call(["sudo", "pkg", "fetch", "-d", "-y", "--output", temp_dir, pkg_name, "fusefs-unionfs"]) # -d for dependencies pulls in ALL dependencies. Do we want that? 265 | except: 266 | print("Could not run pkg") 267 | exit(1) 268 | 269 | try: 270 | subprocess.call(["sudo", "chown", "-R", getpass.getuser(), temp_dir]) 271 | except: 272 | print("Could not change owner on %s", temp_dir) 273 | exit(1) 274 | 275 | 276 | # Find the pkgs and extract them 277 | 278 | files = os.listdir(temp_dir + "/All") 279 | 280 | print(files) 281 | 282 | for file in files: 283 | file = temp_dir + "/All/" + file 284 | if file.endswith(".txz") and os.path.isfile(file): 285 | try: 286 | print("Extracting %s: .... " % file) 287 | if not os.path.exists(temp_dir + "/Root"): 288 | os.makedirs(temp_dir + "/Root") 289 | subprocess.call(["tar", "xf", file, "-C", temp_dir + "/Root"]) 290 | os.unlink(file) 291 | except: 292 | print("Could not extract '%s'" % file) 293 | exit(1) 294 | elif os.path.islink(file): 295 | os.unlink(file) 296 | 297 | desktop_file = None 298 | 299 | try: 300 | desktop_file_candidates = os.listdir(temp_dir + "/Root/usr/local/share/applications/") 301 | except: 302 | print("Cannot find '%s', did the extraction succeed?" % (temp_dir + "/Root/usr/local/share/applications/")) 303 | exit(1) 304 | 305 | # First, look for desktop files with the name of the requested package 306 | for desktop_file_candidate in desktop_file_candidates: 307 | if desktop_file_candidate == pkg_name + ".desktop": 308 | desktop_file = desktop_file_candidate 309 | 310 | # Second, look for desktop files with the nae of the requested packge in reverse-DNS format 311 | for desktop_file_candidate in desktop_file_candidates: 312 | if desktop_file == None: 313 | parts = desktop_file_candidate.split(".") 314 | length = len(parts) 315 | if "".join(parts[length - 2:length - 1]) == pkg_name: 316 | desktop_file = desktop_file_candidate 317 | break 318 | # Third, take a random one 319 | for desktop_file_candidate in desktop_file_candidates: 320 | if desktop_file == None: 321 | desktop_file = desktop_file_candidate 322 | break 323 | 324 | if desktop_file == None: 325 | print("Could not find a desktop file for %s" % pkg_name) 326 | 327 | desktop_file = temp_dir + "/Root/usr/local/share/applications/" + desktop_file 328 | 329 | nice_name = d2a(desktop_file, ".") 330 | 331 | if nice_name == None: 332 | print("Could not deploy to .app bundle") 333 | exit(1) 334 | 335 | # Create /tmp in the AppDir so that we can mount the real /tmp there later; Xorg needs this 336 | if os.path.exists(temp_dir + "/Root/tmp") == False: 337 | os.mkdir(temp_dir + "/Root/tmp") 338 | 339 | shutil.move(temp_dir + "/Root", "./%s.app/Resources/" % nice_name) 340 | 341 | shutil.rmtree(temp_dir) 342 | 343 | print("'%s.app' has been created." % nice_name) 344 | print("You can open it by double-clicking it or by typing:\nopenapp ./'%s.app'" % nice_name) 345 | 346 | exit(0) 347 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-live-settings/files/usr/local/share/icons/hicolor/scalable/apps/install.svg: -------------------------------------------------------------------------------- 1 | 2 | 18 | 20 | 21 | 23 | image/svg+xml 24 | 26 | 27 | 28 | 29 | 30 | 32 | 35 | 39 | 43 | 44 | 47 | 51 | 55 | 56 | 59 | 63 | 67 | 71 | 75 | 79 | 83 | 87 | 91 | 95 | 99 | 100 | 103 | 107 | 111 | 112 | 122 | 132 | 143 | 151 | 156 | 161 | 162 | 172 | 179 | 182 | 183 | 190 | 193 | 194 | 197 | 201 | 202 | 203 | 224 | 228 | 233 | 238 | 243 | 244 | 250 | 256 | 262 | 268 | 273 | 275 | 281 | 285 | 289 | 293 | 294 | 298 | 304 | 310 | 314 | 318 | 323 | 324 | -------------------------------------------------------------------------------- /overlays/uzip/furybsd-live-settings/files/usr/local/share/data/freebsd-install/languages.json: -------------------------------------------------------------------------------- 1 | { 2 | "ab":{ 3 | "name":"Abkhaz", 4 | "nativeName":"аҧсуа" 5 | }, 6 | "aa":{ 7 | "name":"Afar", 8 | "nativeName":"Afaraf" 9 | }, 10 | "af":{ 11 | "name":"Afrikaans", 12 | "nativeName":"Afrikaans" 13 | }, 14 | "ak":{ 15 | "name":"Akan", 16 | "nativeName":"Akan" 17 | }, 18 | "sq":{ 19 | "name":"Albanian", 20 | "nativeName":"Shqip" 21 | }, 22 | "am":{ 23 | "name":"Amharic", 24 | "nativeName":"አማርኛ" 25 | }, 26 | "ar":{ 27 | "name":"Arabic", 28 | "nativeName":"العربية" 29 | }, 30 | "an":{ 31 | "name":"Aragonese", 32 | "nativeName":"Aragonés" 33 | }, 34 | "hy":{ 35 | "name":"Armenian", 36 | "nativeName":"Հայերեն" 37 | }, 38 | "as":{ 39 | "name":"Assamese", 40 | "nativeName":"অসমীয়া" 41 | }, 42 | "av":{ 43 | "name":"Avaric", 44 | "nativeName":"авар мацӀ, магӀарул мацӀ" 45 | }, 46 | "ae":{ 47 | "name":"Avestan", 48 | "nativeName":"avesta" 49 | }, 50 | "ay":{ 51 | "name":"Aymara", 52 | "nativeName":"aymar aru" 53 | }, 54 | "az":{ 55 | "name":"Azerbaijani", 56 | "nativeName":"azərbaycan dili" 57 | }, 58 | "bm":{ 59 | "name":"Bambara", 60 | "nativeName":"bamanankan" 61 | }, 62 | "ba":{ 63 | "name":"Bashkir", 64 | "nativeName":"башҡорт теле" 65 | }, 66 | "eu":{ 67 | "name":"Basque", 68 | "nativeName":"euskara, euskera" 69 | }, 70 | "be":{ 71 | "name":"Belarusian", 72 | "nativeName":"Беларуская" 73 | }, 74 | "bn":{ 75 | "name":"Bengali", 76 | "nativeName":"বাংলা" 77 | }, 78 | "bh":{ 79 | "name":"Bihari", 80 | "nativeName":"भोजपुरी" 81 | }, 82 | "bi":{ 83 | "name":"Bislama", 84 | "nativeName":"Bislama" 85 | }, 86 | "bs":{ 87 | "name":"Bosnian", 88 | "nativeName":"bosanski jezik" 89 | }, 90 | "br":{ 91 | "name":"Breton", 92 | "nativeName":"brezhoneg" 93 | }, 94 | "bg":{ 95 | "name":"Bulgarian", 96 | "nativeName":"български език" 97 | }, 98 | "my":{ 99 | "name":"Burmese", 100 | "nativeName":"ဗမာစာ" 101 | }, 102 | "ca":{ 103 | "name":"Catalan; Valencian", 104 | "nativeName":"Català" 105 | }, 106 | "ch":{ 107 | "name":"Chamorro", 108 | "nativeName":"Chamoru" 109 | }, 110 | "ce":{ 111 | "name":"Chechen", 112 | "nativeName":"нохчийн мотт" 113 | }, 114 | "ny":{ 115 | "name":"Chichewa; Chewa; Nyanja", 116 | "nativeName":"chiCheŵa, chinyanja" 117 | }, 118 | "zh":{ 119 | "name":"Chinese", 120 | "nativeName":"中文 (Zhōngwén), 汉语, 漢語" 121 | }, 122 | "cv":{ 123 | "name":"Chuvash", 124 | "nativeName":"чӑваш чӗлхи" 125 | }, 126 | "kw":{ 127 | "name":"Cornish", 128 | "nativeName":"Kernewek" 129 | }, 130 | "co":{ 131 | "name":"Corsican", 132 | "nativeName":"corsu, lingua corsa" 133 | }, 134 | "cr":{ 135 | "name":"Cree", 136 | "nativeName":"ᓀᐦᐃᔭᐍᐏᐣ" 137 | }, 138 | "hr":{ 139 | "name":"Croatian", 140 | "nativeName":"hrvatski" 141 | }, 142 | "cs":{ 143 | "name":"Czech", 144 | "nativeName":"česky, čeština" 145 | }, 146 | "da":{ 147 | "name":"Danish", 148 | "nativeName":"dansk" 149 | }, 150 | "dv":{ 151 | "name":"Divehi; Dhivehi; Maldivian;", 152 | "nativeName":"ދިވެހި" 153 | }, 154 | "nl":{ 155 | "name":"Dutch", 156 | "nativeName":"Nederlands, Vlaams" 157 | }, 158 | "en":{ 159 | "name":"English", 160 | "nativeName":"English" 161 | }, 162 | "eo":{ 163 | "name":"Esperanto", 164 | "nativeName":"Esperanto" 165 | }, 166 | "et":{ 167 | "name":"Estonian", 168 | "nativeName":"eesti, eesti keel" 169 | }, 170 | "ee":{ 171 | "name":"Ewe", 172 | "nativeName":"Eʋegbe" 173 | }, 174 | "fo":{ 175 | "name":"Faroese", 176 | "nativeName":"føroyskt" 177 | }, 178 | "fj":{ 179 | "name":"Fijian", 180 | "nativeName":"vosa Vakaviti" 181 | }, 182 | "fi":{ 183 | "name":"Finnish", 184 | "nativeName":"suomi, suomen kieli" 185 | }, 186 | "fr":{ 187 | "name":"French", 188 | "nativeName":"français, langue française" 189 | }, 190 | "ff":{ 191 | "name":"Fula; Fulah; Pulaar; Pular", 192 | "nativeName":"Fulfulde, Pulaar, Pular" 193 | }, 194 | "gl":{ 195 | "name":"Galician", 196 | "nativeName":"Galego" 197 | }, 198 | "ka":{ 199 | "name":"Georgian", 200 | "nativeName":"ქართული" 201 | }, 202 | "de":{ 203 | "name":"German", 204 | "nativeName":"Deutsch" 205 | }, 206 | "el":{ 207 | "name":"Greek, Modern", 208 | "nativeName":"Ελληνικά" 209 | }, 210 | "gn":{ 211 | "name":"Guaraní", 212 | "nativeName":"Avañeẽ" 213 | }, 214 | "gu":{ 215 | "name":"Gujarati", 216 | "nativeName":"ગુજરાતી" 217 | }, 218 | "ht":{ 219 | "name":"Haitian; Haitian Creole", 220 | "nativeName":"Kreyòl ayisyen" 221 | }, 222 | "ha":{ 223 | "name":"Hausa", 224 | "nativeName":"Hausa, هَوُسَ" 225 | }, 226 | "he":{ 227 | "name":"Hebrew", 228 | "nativeName":"עברית" 229 | }, 230 | "iw":{ 231 | "name":"Hebrew", 232 | "nativeName":"עברית" 233 | }, 234 | "hz":{ 235 | "name":"Herero", 236 | "nativeName":"Otjiherero" 237 | }, 238 | "hi":{ 239 | "name":"Hindi", 240 | "nativeName":"हिन्दी, हिंदी" 241 | }, 242 | "ho":{ 243 | "name":"Hiri Motu", 244 | "nativeName":"Hiri Motu" 245 | }, 246 | "hu":{ 247 | "name":"Hungarian", 248 | "nativeName":"Magyar" 249 | }, 250 | "ia":{ 251 | "name":"Interlingua", 252 | "nativeName":"Interlingua" 253 | }, 254 | "id":{ 255 | "name":"Indonesian", 256 | "nativeName":"Bahasa Indonesia" 257 | }, 258 | "ie":{ 259 | "name":"Interlingue", 260 | "nativeName":"Originally called Occidental; then Interlingue after WWII" 261 | }, 262 | "ga":{ 263 | "name":"Irish", 264 | "nativeName":"Gaeilge" 265 | }, 266 | "ig":{ 267 | "name":"Igbo", 268 | "nativeName":"Asụsụ Igbo" 269 | }, 270 | "ik":{ 271 | "name":"Inupiaq", 272 | "nativeName":"Iñupiaq, Iñupiatun" 273 | }, 274 | "io":{ 275 | "name":"Ido", 276 | "nativeName":"Ido" 277 | }, 278 | "is":{ 279 | "name":"Icelandic", 280 | "nativeName":"Íslenska" 281 | }, 282 | "it":{ 283 | "name":"Italian", 284 | "nativeName":"Italiano" 285 | }, 286 | "iu":{ 287 | "name":"Inuktitut", 288 | "nativeName":"ᐃᓄᒃᑎᑐᑦ" 289 | }, 290 | "ja":{ 291 | "name":"Japanese", 292 | "nativeName":"日本語 (にほんご/にっぽんご)" 293 | }, 294 | "jv":{ 295 | "name":"Javanese", 296 | "nativeName":"basa Jawa" 297 | }, 298 | "kl":{ 299 | "name":"Kalaallisut, Greenlandic", 300 | "nativeName":"kalaallisut, kalaallit oqaasii" 301 | }, 302 | "kn":{ 303 | "name":"Kannada", 304 | "nativeName":"ಕನ್ನಡ" 305 | }, 306 | "kr":{ 307 | "name":"Kanuri", 308 | "nativeName":"Kanuri" 309 | }, 310 | "ks":{ 311 | "name":"Kashmiri", 312 | "nativeName":"कश्मीरी, كشميري‎" 313 | }, 314 | "kk":{ 315 | "name":"Kazakh", 316 | "nativeName":"Қазақ тілі" 317 | }, 318 | "km":{ 319 | "name":"Khmer", 320 | "nativeName":"ភាសាខ្មែរ" 321 | }, 322 | "ki":{ 323 | "name":"Kikuyu, Gikuyu", 324 | "nativeName":"Gĩkũyũ" 325 | }, 326 | "rw":{ 327 | "name":"Kinyarwanda", 328 | "nativeName":"Ikinyarwanda" 329 | }, 330 | "ky":{ 331 | "name":"Kirghiz, Kyrgyz", 332 | "nativeName":"кыргыз тили" 333 | }, 334 | "kv":{ 335 | "name":"Komi", 336 | "nativeName":"коми кыв" 337 | }, 338 | "kg":{ 339 | "name":"Kongo", 340 | "nativeName":"KiKongo" 341 | }, 342 | "ko":{ 343 | "name":"Korean", 344 | "nativeName":"한국어 (韓國語), 조선말 (朝鮮語)" 345 | }, 346 | "ku":{ 347 | "name":"Kurdish", 348 | "nativeName":"Kurdî, كوردی‎" 349 | }, 350 | "kj":{ 351 | "name":"Kwanyama, Kuanyama", 352 | "nativeName":"Kuanyama" 353 | }, 354 | "la":{ 355 | "name":"Latin", 356 | "nativeName":"latine, lingua latina" 357 | }, 358 | "lb":{ 359 | "name":"Luxembourgish, Letzeburgesch", 360 | "nativeName":"Lëtzebuergesch" 361 | }, 362 | "lg":{ 363 | "name":"Luganda", 364 | "nativeName":"Luganda" 365 | }, 366 | "li":{ 367 | "name":"Limburgish, Limburgan, Limburger", 368 | "nativeName":"Limburgs" 369 | }, 370 | "ln":{ 371 | "name":"Lingala", 372 | "nativeName":"Lingála" 373 | }, 374 | "lo":{ 375 | "name":"Lao", 376 | "nativeName":"ພາສາລາວ" 377 | }, 378 | "lt":{ 379 | "name":"Lithuanian", 380 | "nativeName":"lietuvių kalba" 381 | }, 382 | "lu":{ 383 | "name":"Luba-Katanga", 384 | "nativeName":"" 385 | }, 386 | "lv":{ 387 | "name":"Latvian", 388 | "nativeName":"latviešu valoda" 389 | }, 390 | "gv":{ 391 | "name":"Manx", 392 | "nativeName":"Gaelg, Gailck" 393 | }, 394 | "mk":{ 395 | "name":"Macedonian", 396 | "nativeName":"македонски јазик" 397 | }, 398 | "mg":{ 399 | "name":"Malagasy", 400 | "nativeName":"Malagasy fiteny" 401 | }, 402 | "ms":{ 403 | "name":"Malay", 404 | "nativeName":"bahasa Melayu, بهاس ملايو‎" 405 | }, 406 | "ml":{ 407 | "name":"Malayalam", 408 | "nativeName":"മലയാളം" 409 | }, 410 | "mt":{ 411 | "name":"Maltese", 412 | "nativeName":"Malti" 413 | }, 414 | "mi":{ 415 | "name":"Māori", 416 | "nativeName":"te reo Māori" 417 | }, 418 | "mr":{ 419 | "name":"Marathi (Marāṭhī)", 420 | "nativeName":"मराठी" 421 | }, 422 | "mh":{ 423 | "name":"Marshallese", 424 | "nativeName":"Kajin M̧ajeļ" 425 | }, 426 | "mn":{ 427 | "name":"Mongolian", 428 | "nativeName":"монгол" 429 | }, 430 | "na":{ 431 | "name":"Nauru", 432 | "nativeName":"Ekakairũ Naoero" 433 | }, 434 | "nv":{ 435 | "name":"Navajo, Navaho", 436 | "nativeName":"Diné bizaad, Dinékʼehǰí" 437 | }, 438 | "nb":{ 439 | "name":"Norwegian Bokmål", 440 | "nativeName":"Norsk bokmål" 441 | }, 442 | "nd":{ 443 | "name":"North Ndebele", 444 | "nativeName":"isiNdebele" 445 | }, 446 | "ne":{ 447 | "name":"Nepali", 448 | "nativeName":"नेपाली" 449 | }, 450 | "ng":{ 451 | "name":"Ndonga", 452 | "nativeName":"Owambo" 453 | }, 454 | "nn":{ 455 | "name":"Norwegian Nynorsk", 456 | "nativeName":"Norsk nynorsk" 457 | }, 458 | "no":{ 459 | "name":"Norwegian", 460 | "nativeName":"Norsk" 461 | }, 462 | "ii":{ 463 | "name":"Nuosu", 464 | "nativeName":"ꆈꌠ꒿ Nuosuhxop" 465 | }, 466 | "nr":{ 467 | "name":"South Ndebele", 468 | "nativeName":"isiNdebele" 469 | }, 470 | "oc":{ 471 | "name":"Occitan", 472 | "nativeName":"Occitan" 473 | }, 474 | "oj":{ 475 | "name":"Ojibwe, Ojibwa", 476 | "nativeName":"ᐊᓂᔑᓈᐯᒧᐎᓐ" 477 | }, 478 | "cu":{ 479 | "name":"Old Church Slavonic, Church Slavic, Church Slavonic, Old Bulgarian, Old Slavonic", 480 | "nativeName":"ѩзыкъ словѣньскъ" 481 | }, 482 | "om":{ 483 | "name":"Oromo", 484 | "nativeName":"Afaan Oromoo" 485 | }, 486 | "or":{ 487 | "name":"Oriya", 488 | "nativeName":"ଓଡ଼ିଆ" 489 | }, 490 | "os":{ 491 | "name":"Ossetian, Ossetic", 492 | "nativeName":"ирон æвзаг" 493 | }, 494 | "pa":{ 495 | "name":"Panjabi, Punjabi", 496 | "nativeName":"ਪੰਜਾਬੀ, پنجابی‎" 497 | }, 498 | "pi":{ 499 | "name":"Pāli", 500 | "nativeName":"पाऴि" 501 | }, 502 | "fa":{ 503 | "name":"Persian", 504 | "nativeName":"فارسی" 505 | }, 506 | "pl":{ 507 | "name":"Polish", 508 | "nativeName":"polski" 509 | }, 510 | "ps":{ 511 | "name":"Pashto, Pushto", 512 | "nativeName":"پښتو" 513 | }, 514 | "pt":{ 515 | "name":"Portuguese", 516 | "nativeName":"Português" 517 | }, 518 | "qu":{ 519 | "name":"Quechua", 520 | "nativeName":"Runa Simi, Kichwa" 521 | }, 522 | "rm":{ 523 | "name":"Romansh", 524 | "nativeName":"rumantsch grischun" 525 | }, 526 | "rn":{ 527 | "name":"Kirundi", 528 | "nativeName":"kiRundi" 529 | }, 530 | "ro":{ 531 | "name":"Romanian, Moldavian, Moldovan", 532 | "nativeName":"română" 533 | }, 534 | "ru":{ 535 | "name":"Russian", 536 | "nativeName":"русский язык" 537 | }, 538 | "sa":{ 539 | "name":"Sanskrit (Saṁskṛta)", 540 | "nativeName":"संस्कृतम्" 541 | }, 542 | "sc":{ 543 | "name":"Sardinian", 544 | "nativeName":"sardu" 545 | }, 546 | "sd":{ 547 | "name":"Sindhi", 548 | "nativeName":"सिन्धी, سنڌي، سندھی‎" 549 | }, 550 | "se":{ 551 | "name":"Northern Sami", 552 | "nativeName":"Davvisámegiella" 553 | }, 554 | "sm":{ 555 | "name":"Samoan", 556 | "nativeName":"gagana faa Samoa" 557 | }, 558 | "sg":{ 559 | "name":"Sango", 560 | "nativeName":"yângâ tî sängö" 561 | }, 562 | "sr":{ 563 | "name":"Serbian", 564 | "nativeName":"српски језик" 565 | }, 566 | "gd":{ 567 | "name":"Scottish Gaelic; Gaelic", 568 | "nativeName":"Gàidhlig" 569 | }, 570 | "sn":{ 571 | "name":"Shona", 572 | "nativeName":"chiShona" 573 | }, 574 | "si":{ 575 | "name":"Sinhala, Sinhalese", 576 | "nativeName":"සිංහල" 577 | }, 578 | "sk":{ 579 | "name":"Slovak", 580 | "nativeName":"slovenčina" 581 | }, 582 | "sl":{ 583 | "name":"Slovene", 584 | "nativeName":"slovenščina" 585 | }, 586 | "so":{ 587 | "name":"Somali", 588 | "nativeName":"Soomaaliga, af Soomaali" 589 | }, 590 | "st":{ 591 | "name":"Southern Sotho", 592 | "nativeName":"Sesotho" 593 | }, 594 | "es":{ 595 | "name":"Spanish; Castilian", 596 | "nativeName":"español, castellano" 597 | }, 598 | "su":{ 599 | "name":"Sundanese", 600 | "nativeName":"Basa Sunda" 601 | }, 602 | "sw":{ 603 | "name":"Swahili", 604 | "nativeName":"Kiswahili" 605 | }, 606 | "ss":{ 607 | "name":"Swati", 608 | "nativeName":"SiSwati" 609 | }, 610 | "sv":{ 611 | "name":"Swedish", 612 | "nativeName":"svenska" 613 | }, 614 | "ta":{ 615 | "name":"Tamil", 616 | "nativeName":"தமிழ்" 617 | }, 618 | "te":{ 619 | "name":"Telugu", 620 | "nativeName":"తెలుగు" 621 | }, 622 | "tg":{ 623 | "name":"Tajik", 624 | "nativeName":"тоҷикӣ, toğikī, تاجیکی‎" 625 | }, 626 | "th":{ 627 | "name":"Thai", 628 | "nativeName":"ไทย" 629 | }, 630 | "ti":{ 631 | "name":"Tigrinya", 632 | "nativeName":"ትግርኛ" 633 | }, 634 | "bo":{ 635 | "name":"Tibetan Standard, Tibetan, Central", 636 | "nativeName":"བོད་ཡིག" 637 | }, 638 | "tk":{ 639 | "name":"Turkmen", 640 | "nativeName":"Türkmen, Түркмен" 641 | }, 642 | "tl":{ 643 | "name":"Tagalog", 644 | "nativeName":"Wikang Tagalog, ᜏᜒᜃᜅ᜔ ᜆᜄᜎᜓᜄ᜔" 645 | }, 646 | "tn":{ 647 | "name":"Tswana", 648 | "nativeName":"Setswana" 649 | }, 650 | "to":{ 651 | "name":"Tonga (Tonga Islands)", 652 | "nativeName":"faka Tonga" 653 | }, 654 | "tr":{ 655 | "name":"Turkish", 656 | "nativeName":"Türkçe" 657 | }, 658 | "ts":{ 659 | "name":"Tsonga", 660 | "nativeName":"Xitsonga" 661 | }, 662 | "tt":{ 663 | "name":"Tatar", 664 | "nativeName":"татарча, tatarça, تاتارچا‎" 665 | }, 666 | "tw":{ 667 | "name":"Twi", 668 | "nativeName":"Twi" 669 | }, 670 | "ty":{ 671 | "name":"Tahitian", 672 | "nativeName":"Reo Tahiti" 673 | }, 674 | "ug":{ 675 | "name":"Uighur, Uyghur", 676 | "nativeName":"Uyƣurqə, ئۇيغۇرچە‎" 677 | }, 678 | "uk":{ 679 | "name":"Ukrainian", 680 | "nativeName":"українська" 681 | }, 682 | "ur":{ 683 | "name":"Urdu", 684 | "nativeName":"اردو" 685 | }, 686 | "uz":{ 687 | "name":"Uzbek", 688 | "nativeName":"zbek, Ўзбек, أۇزبېك‎" 689 | }, 690 | "ve":{ 691 | "name":"Venda", 692 | "nativeName":"Tshivenḓa" 693 | }, 694 | "vi":{ 695 | "name":"Vietnamese", 696 | "nativeName":"Tiếng Việt" 697 | }, 698 | "vo":{ 699 | "name":"Volapük", 700 | "nativeName":"Volapük" 701 | }, 702 | "wa":{ 703 | "name":"Walloon", 704 | "nativeName":"Walon" 705 | }, 706 | "cy":{ 707 | "name":"Welsh", 708 | "nativeName":"Cymraeg" 709 | }, 710 | "wo":{ 711 | "name":"Wolof", 712 | "nativeName":"Wollof" 713 | }, 714 | "fy":{ 715 | "name":"Western Frisian", 716 | "nativeName":"Frysk" 717 | }, 718 | "xh":{ 719 | "name":"Xhosa", 720 | "nativeName":"isiXhosa" 721 | }, 722 | "yi":{ 723 | "name":"Yiddish", 724 | "nativeName":"ייִדיש" 725 | }, 726 | "yo":{ 727 | "name":"Yoruba", 728 | "nativeName":"Yorùbá" 729 | }, 730 | "za":{ 731 | "name":"Zhuang, Chuang", 732 | "nativeName":"Saɯ cueŋƅ, Saw cuengh" 733 | } 734 | } --------------------------------------------------------------------------------