├── 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 [](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 | 
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 |
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 |
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 | }
--------------------------------------------------------------------------------