├── .gitignore
├── Common
├── CDE
│ ├── cde.desktop
│ └── xinitrc
├── CINNAMON
│ └── xinitrc
├── FLUXBOX
│ └── xinitrc
├── GNOME
│ └── xinitrc
├── ICEWM
│ └── xinitrc
├── KDE
│ └── xinitrc
├── KODI
│ └── xinitrc
├── LUMINA
│ ├── gtkrc
│ └── xinitrc
├── LXDE
│ └── xinitrc
├── LXQT
│ └── xinitrc
├── MATE
│ └── xinitrc
├── OTHER
│ └── xinitrc
├── SDDM
│ └── sddm.conf
├── WMAKER
│ └── xinitrc
├── XDM
│ └── GiveConsole
├── XFCE4
│ └── xinitrc
├── Xdefaults-xterm
└── battery-shutdown.cron
├── Doc
├── cups
├── desktop-installer.dbk
└── qmediamanager.png
├── FreeBSD
├── XDM
│ ├── Xsetup_0
│ ├── beastie.xpm
│ ├── bsd_background.jpg
│ └── xdmshutdown
├── desktop-installer
└── desktop-installer.man
├── LICENSE
├── NetBSD
├── XDM
│ ├── Xsetup_0
│ ├── netbsd-background.jpg
│ └── xdmshutdown
├── desktop-installer
├── desktop-installer.man
├── getting-started.md
├── smartos-install.sh
└── todo
├── OpenBSD
├── XenoDM
│ ├── GiveConsole
│ ├── Xsetup_0
│ ├── openbsd-background.jpg
│ └── xenodmshutdown
├── desktop-installer
├── desktop-installer.man
└── getting-started.md
├── Plugins
└── Asus
│ └── desktop-installer-eeepc-1015pe
├── README.md
├── Scripts
└── battery-shutdown.sh
├── WIP
├── 40-virtualbox.conf
└── desktop-menu
├── notes
├── rock64.md
└── todo
/.gitignore:
--------------------------------------------------------------------------------
1 | README.html
2 | getting-started.html
3 |
--------------------------------------------------------------------------------
/Common/CDE/cde.desktop:
--------------------------------------------------------------------------------
1 | [Desktop Entry]
2 | Exec=/usr/local/dt/bin/Xsession
3 | Encoding=ISO-8859-1
4 | Icon=CDE
5 | Type=Application
6 | Name=CDE
7 | Name[vi]=CDE
8 | Comment=Common Desktop Environment
9 |
--------------------------------------------------------------------------------
/Common/CDE/xinitrc:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # $Xorg: xinitrc.cpp,v 1.3 2000/08/17 19:54:30 cpqbld Exp $
3 |
4 | userresources=$HOME/.Xresources
5 | usermodmap=$HOME/.Xmodmap
6 | sysresources=/usr/local/lib/X11/xinit/.Xresources
7 | sysmodmap=/usr/local/lib/X11/xinit/.Xmodmap
8 |
9 | # merge in defaults and keymaps
10 |
11 | if [ -f $sysresources ]; then
12 | xrdb -merge $sysresources
13 | fi
14 |
15 | if [ -f $sysmodmap ]; then
16 | xmodmap $sysmodmap
17 | fi
18 |
19 | if [ -f "$userresources" ]; then
20 | xrdb -merge "$userresources"
21 | fi
22 |
23 | if [ -f "$usermodmap" ]; then
24 | xmodmap "$usermodmap"
25 | fi
26 |
27 | aa_dir=/usr/local/etc/auto-admin
28 | for local_xsession in $aa_dir/xsession.*; do
29 | if [ -e ] && /usr/local/sbin/auto-file-secure $local_xsession; then
30 | . $local_xsession
31 | fi
32 | done
33 |
34 | ln -sf /usr/local/dt/bin/Xsession $HOME/.Xsession
35 | env LANG=C /usr/local/dt/bin/dtsession
36 |
--------------------------------------------------------------------------------
/Common/CINNAMON/xinitrc:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # $Xorg: xinitrc.cpp,v 1.3 2000/08/17 19:54:30 cpqbld Exp $
3 |
4 | userresources=$HOME/.Xresources
5 | usermodmap=$HOME/.Xmodmap
6 | sysresources=/usr/local/lib/X11/xinit/.Xresources
7 | sysmodmap=/usr/local/lib/X11/xinit/.Xmodmap
8 |
9 | # merge in defaults and keymaps
10 |
11 | if [ -f $sysresources ]; then
12 | xrdb -merge $sysresources
13 | fi
14 |
15 | if [ -f $sysmodmap ]; then
16 | xmodmap $sysmodmap
17 | fi
18 |
19 | if [ -f "$userresources" ]; then
20 | xrdb -merge "$userresources"
21 | fi
22 |
23 | if [ -f "$usermodmap" ]; then
24 | xmodmap "$usermodmap"
25 | fi
26 |
27 | aa_dir=/usr/local/etc/auto-admin
28 | for local_xsession in $aa_dir/xsession.*; do
29 | if [ -e ] && /usr/local/sbin/auto-file-secure $local_xsession; then
30 | . $local_xsession
31 | fi
32 | done
33 |
34 | cinnamon-session
35 |
--------------------------------------------------------------------------------
/Common/FLUXBOX/xinitrc:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # $Xorg: xinitrc.cpp,v 1.3 2000/08/17 19:54:30 cpqbld Exp $
3 |
4 | userresources=$HOME/.Xresources
5 | usermodmap=$HOME/.Xmodmap
6 | sysresources=/usr/local/lib/X11/xinit/.Xresources
7 | sysmodmap=/usr/local/lib/X11/xinit/.Xmodmap
8 |
9 | # merge in defaults and keymaps
10 |
11 | if [ -f $sysresources ]; then
12 | xrdb -merge $sysresources
13 | fi
14 |
15 | if [ -f $sysmodmap ]; then
16 | xmodmap $sysmodmap
17 | fi
18 |
19 | if [ -f "$userresources" ]; then
20 | xrdb -merge "$userresources"
21 | fi
22 |
23 | if [ -f "$usermodmap" ]; then
24 | xmodmap "$usermodmap"
25 | fi
26 |
27 | # FIXME: Should this be necessary, or is it a WM responsibility?
28 | if sysctl dev.acpi.0.%desc | fgrep -q VBOX; then
29 | # VBoxClient is part of guest additions, which may not be installed
30 | VBoxClient --display || true
31 | fi
32 |
33 | aa_dir=/usr/local/etc/auto-admin
34 | for local_xsession in $aa_dir/xsession.*; do
35 | if [ -e ] && /usr/local/sbin/auto-file-secure $local_xsession; then
36 | . $local_xsession
37 | fi
38 | done
39 |
40 | exec startfluxbox
41 |
--------------------------------------------------------------------------------
/Common/GNOME/xinitrc:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # $Xorg: xinitrc.cpp,v 1.3 2000/08/17 19:54:30 cpqbld Exp $
3 |
4 | userresources=$HOME/.Xresources
5 | usermodmap=$HOME/.Xmodmap
6 | sysresources=/usr/local/lib/X11/xinit/.Xresources
7 | sysmodmap=/usr/local/lib/X11/xinit/.Xmodmap
8 |
9 | # merge in defaults and keymaps
10 |
11 | if [ -f $sysresources ]; then
12 | xrdb -merge $sysresources
13 | fi
14 |
15 | if [ -f $sysmodmap ]; then
16 | xmodmap $sysmodmap
17 | fi
18 |
19 | if [ -f "$userresources" ]; then
20 | xrdb -merge "$userresources"
21 | fi
22 |
23 | if [ -f "$usermodmap" ]; then
24 | xmodmap "$usermodmap"
25 | fi
26 |
27 | aa_dir=/usr/local/etc/auto-admin
28 | for local_xsession in $aa_dir/xsession.*; do
29 | if [ -e ] && /usr/local/sbin/auto-file-secure $local_xsession; then
30 | . $local_xsession
31 | fi
32 | done
33 |
34 | # Modern Gnome3
35 | export XDG_SESSION_TYPE=x11
36 | export GDK_BACKEND=x11
37 | exec gnome-session
38 |
--------------------------------------------------------------------------------
/Common/ICEWM/xinitrc:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # $Xorg: xinitrc.cpp,v 1.3 2000/08/17 19:54:30 cpqbld Exp $
3 |
4 | userresources=$HOME/.Xresources
5 | usermodmap=$HOME/.Xmodmap
6 | sysresources=/usr/local/lib/X11/xinit/.Xresources
7 | sysmodmap=/usr/local/lib/X11/xinit/.Xmodmap
8 |
9 | # merge in defaults and keymaps
10 |
11 | if [ -f $sysresources ]; then
12 | xrdb -merge $sysresources
13 | fi
14 |
15 | if [ -f $sysmodmap ]; then
16 | xmodmap $sysmodmap
17 | fi
18 |
19 | if [ -f "$userresources" ]; then
20 | xrdb -merge "$userresources"
21 | fi
22 |
23 | if [ -f "$usermodmap" ]; then
24 | xmodmap "$usermodmap"
25 | fi
26 |
27 | # FIXME: Should this be necessary, or is it a WM responsibility?
28 | if sysctl dev.acpi.0.%desc | fgrep -q VBOX; then
29 | # VBoxClient is part of guest additions, which may not be installed
30 | VBoxClient --display || true
31 | fi
32 |
33 | aa_dir=/usr/local/etc/auto-admin
34 | for local_xsession in $aa_dir/xsession.*; do
35 | if [ -e ] && /usr/local/sbin/auto-file-secure $local_xsession; then
36 | . $local_xsession
37 | fi
38 | done
39 |
40 | exec icewm-session
41 |
--------------------------------------------------------------------------------
/Common/KDE/xinitrc:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # $Xorg: xinitrc.cpp,v 1.3 2000/08/17 19:54:30 cpqbld Exp $
3 |
4 | userresources=$HOME/.Xresources
5 | usermodmap=$HOME/.Xmodmap
6 | sysresources=/usr/local/lib/X11/xinit/.Xresources
7 | sysmodmap=/usr/local/lib/X11/xinit/.Xmodmap
8 |
9 | # merge in defaults and keymaps
10 |
11 | if [ -f $sysresources ]; then
12 | xrdb -merge $sysresources
13 | fi
14 |
15 | if [ -f $sysmodmap ]; then
16 | xmodmap $sysmodmap
17 | fi
18 |
19 | if [ -f "$userresources" ]; then
20 | xrdb -merge "$userresources"
21 | fi
22 |
23 | if [ -f "$usermodmap" ]; then
24 | xmodmap "$usermodmap"
25 | fi
26 |
27 | aa_dir=/usr/local/etc/auto-admin
28 | for local_xsession in $aa_dir/xsession.*; do
29 | if [ -e ] && /usr/local/sbin/auto-file-secure $local_xsession; then
30 | . $local_xsession
31 | fi
32 | done
33 |
34 | startplasma-x11
35 |
--------------------------------------------------------------------------------
/Common/KODI/xinitrc:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # $Xorg: xinitrc.cpp,v 1.3 2000/08/17 19:54:30 cpqbld Exp $
3 |
4 | userresources=$HOME/.Xresources
5 | usermodmap=$HOME/.Xmodmap
6 | sysresources=/usr/local/lib/X11/xinit/.Xresources
7 | sysmodmap=/usr/local/lib/X11/xinit/.Xmodmap
8 |
9 | # merge in defaults and keymaps
10 |
11 | if [ -f $sysresources ]; then
12 | xrdb -merge $sysresources
13 | fi
14 |
15 | if [ -f $sysmodmap ]; then
16 | xmodmap $sysmodmap
17 | fi
18 |
19 | if [ -f "$userresources" ]; then
20 | xrdb -merge "$userresources"
21 | fi
22 |
23 | if [ -f "$usermodmap" ]; then
24 | xmodmap "$usermodmap"
25 | fi
26 |
27 | aa_dir=/usr/local/etc/auto-admin
28 | for local_xsession in $aa_dir/xsession.*; do
29 | if [ -e ] && /usr/local/sbin/auto-file-secure $local_xsession; then
30 | . $local_xsession
31 | fi
32 | done
33 |
34 | kodi-standalone
35 |
--------------------------------------------------------------------------------
/Common/LUMINA/gtkrc:
--------------------------------------------------------------------------------
1 | gtk-theme-name="QtCurve"
2 | gtk-icon-theme-name="oxygen"
3 | gtk-font-name="Sans Serif 10.000000"
4 | gtk-cursor-theme-name="Adwaita"
5 | gtk-cursor-theme-size=0
6 | gtk-toolbar-style=GTK_TOOLBAR_ICONS
7 | gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
8 | gtk-button-images=1
9 | gtk-menu-images=1
10 | gtk-enable-event-sounds=1
11 | gtk-enable-input-feedback-sounds=1
12 | gtk-xft-antialias=1
13 | gtk-xft-hinting=1
14 | gtk-xft-hintstyle="hintfull"
15 | gtk-xft-rgba="none"
16 |
--------------------------------------------------------------------------------
/Common/LUMINA/xinitrc:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # $Xorg: xinitrc.cpp,v 1.3 2000/08/17 19:54:30 cpqbld Exp $
3 |
4 | userresources=$HOME/.Xresources
5 | usermodmap=$HOME/.Xmodmap
6 | sysresources=/usr/local/lib/X11/xinit/.Xresources
7 | sysmodmap=/usr/local/lib/X11/xinit/.Xmodmap
8 |
9 | # merge in defaults and keymaps
10 |
11 | if [ -f $sysresources ]; then
12 | xrdb -merge $sysresources
13 | fi
14 |
15 | if [ -f $sysmodmap ]; then
16 | xmodmap $sysmodmap
17 | fi
18 |
19 | if [ -f "$userresources" ]; then
20 | xrdb -merge "$userresources"
21 | fi
22 |
23 | if [ -f "$usermodmap" ]; then
24 | xmodmap "$usermodmap"
25 | fi
26 |
27 | aa_dir=/usr/local/etc/auto-admin
28 | for local_xsession in $aa_dir/xsession.*; do
29 | if [ -e ] && /usr/local/sbin/auto-file-secure $local_xsession; then
30 | . $local_xsession
31 | fi
32 | done
33 |
34 | /usr/local/bin/start-lumina-desktop
35 |
--------------------------------------------------------------------------------
/Common/LXDE/xinitrc:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # $Xorg: xinitrc.cpp,v 1.3 2000/08/17 19:54:30 cpqbld Exp $
3 |
4 | userresources=$HOME/.Xresources
5 | usermodmap=$HOME/.Xmodmap
6 | sysresources=/usr/local/lib/X11/xinit/.Xresources
7 | sysmodmap=/usr/local/lib/X11/xinit/.Xmodmap
8 |
9 | # merge in defaults and keymaps
10 |
11 | if [ -f $sysresources ]; then
12 | xrdb -merge $sysresources
13 | fi
14 |
15 | if [ -f $sysmodmap ]; then
16 | xmodmap $sysmodmap
17 | fi
18 |
19 | if [ -f "$userresources" ]; then
20 | xrdb -merge "$userresources"
21 | fi
22 |
23 | if [ -f "$usermodmap" ]; then
24 | xmodmap "$usermodmap"
25 | fi
26 |
27 | aa_dir=/usr/local/etc/auto-admin
28 | for local_xsession in $aa_dir/xsession.*; do
29 | if [ -e ] && /usr/local/sbin/auto-file-secure $local_xsession; then
30 | . $local_xsession
31 | fi
32 | done
33 |
34 | startlxde
35 |
--------------------------------------------------------------------------------
/Common/LXQT/xinitrc:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # $Xorg: xinitrc.cpp,v 1.3 2000/08/17 19:54:30 cpqbld Exp $
3 |
4 | userresources=$HOME/.Xresources
5 | usermodmap=$HOME/.Xmodmap
6 | sysresources=/usr/local/lib/X11/xinit/.Xresources
7 | sysmodmap=/usr/local/lib/X11/xinit/.Xmodmap
8 |
9 | # merge in defaults and keymaps
10 |
11 | if [ -f $sysresources ]; then
12 | xrdb -merge $sysresources
13 | fi
14 |
15 | if [ -f $sysmodmap ]; then
16 | xmodmap $sysmodmap
17 | fi
18 |
19 | if [ -f "$userresources" ]; then
20 | xrdb -merge "$userresources"
21 | fi
22 |
23 | if [ -f "$usermodmap" ]; then
24 | xmodmap "$usermodmap"
25 | fi
26 |
27 | aa_dir=/usr/local/etc/auto-admin
28 | for local_xsession in $aa_dir/xsession.*; do
29 | if [ -e ] && /usr/local/sbin/auto-file-secure $local_xsession; then
30 | . $local_xsession
31 | fi
32 | done
33 |
34 | startlxqt
35 |
--------------------------------------------------------------------------------
/Common/MATE/xinitrc:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # $Xorg: xinitrc.cpp,v 1.3 2000/08/17 19:54:30 cpqbld Exp $
3 |
4 | userresources=$HOME/.Xresources
5 | usermodmap=$HOME/.Xmodmap
6 | sysresources=/usr/local/lib/X11/xinit/.Xresources
7 | sysmodmap=/usr/local/lib/X11/xinit/.Xmodmap
8 |
9 | # merge in defaults and keymaps
10 |
11 | if [ -f $sysresources ]; then
12 | xrdb -merge $sysresources
13 | fi
14 |
15 | if [ -f $sysmodmap ]; then
16 | xmodmap $sysmodmap
17 | fi
18 |
19 | if [ -f "$userresources" ]; then
20 | xrdb -merge "$userresources"
21 | fi
22 |
23 | if [ -f "$usermodmap" ]; then
24 | xmodmap "$usermodmap"
25 | fi
26 |
27 | aa_dir=/usr/local/etc/auto-admin
28 | for local_xsession in $aa_dir/xsession.*; do
29 | if [ -e ] && /usr/local/sbin/auto-file-secure $local_xsession; then
30 | . $local_xsession
31 | fi
32 | done
33 |
34 | mate-session
35 |
--------------------------------------------------------------------------------
/Common/OTHER/xinitrc:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # $Xorg: xinitrc.cpp,v 1.3 2000/08/17 19:54:30 cpqbld Exp $
3 |
4 | userresources=$HOME/.Xresources
5 | usermodmap=$HOME/.Xmodmap
6 | sysresources=/usr/local/lib/X11/xinit/.Xresources
7 | sysmodmap=/usr/local/lib/X11/xinit/.Xmodmap
8 |
9 | # merge in defaults and keymaps
10 |
11 | if [ -f $sysresources ]; then
12 | xrdb -merge $sysresources
13 | fi
14 |
15 | if [ -f $sysmodmap ]; then
16 | xmodmap $sysmodmap
17 | fi
18 |
19 | if [ -f "$userresources" ]; then
20 | xrdb -merge "$userresources"
21 | fi
22 |
23 | if [ -f "$usermodmap" ]; then
24 | xmodmap "$usermodmap"
25 | fi
26 |
27 | aa_dir=/usr/local/etc/auto-admin
28 | for local_xsession in $aa_dir/xsession.*; do
29 | if [ -e ] && /usr/local/sbin/auto-file-secure $local_xsession; then
30 | . $local_xsession
31 | fi
32 | done
33 |
34 | start-session
35 |
--------------------------------------------------------------------------------
/Common/SDDM/sddm.conf:
--------------------------------------------------------------------------------
1 | [Theme]
2 |
3 | Current=sddm-freebsd-black-theme
4 |
--------------------------------------------------------------------------------
/Common/WMAKER/xinitrc:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # $Xorg: xinitrc.cpp,v 1.3 2000/08/17 19:54:30 cpqbld Exp $
3 |
4 | userresources=$HOME/.Xresources
5 | usermodmap=$HOME/.Xmodmap
6 | sysresources=/usr/local/lib/X11/xinit/.Xresources
7 | sysmodmap=/usr/local/lib/X11/xinit/.Xmodmap
8 |
9 | # merge in defaults and keymaps
10 |
11 | if [ -f $sysresources ]; then
12 | xrdb -merge $sysresources
13 | fi
14 |
15 | if [ -f $sysmodmap ]; then
16 | xmodmap $sysmodmap
17 | fi
18 |
19 | if [ -f "$userresources" ]; then
20 | xrdb -merge "$userresources"
21 | fi
22 |
23 | if [ -f "$usermodmap" ]; then
24 | xmodmap "$usermodmap"
25 | fi
26 |
27 | # FIXME: Should this be necessary, or is it a WM responsibility?
28 | if sysctl dev.acpi.0.%desc | fgrep -q VBOX; then
29 | # VBoxClient is part of guest additions, which may not be installed
30 | VBoxClient --display || true
31 | fi
32 |
33 | aa_dir=/usr/local/etc/auto-admin
34 | for local_xsession in $aa_dir/xsession.*; do
35 | if [ -e ] && /usr/local/sbin/auto-file-secure $local_xsession; then
36 | . $local_xsession
37 | fi
38 | done
39 |
40 | exec wmaker
41 |
--------------------------------------------------------------------------------
/Common/XDM/GiveConsole:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # Assign ownership of the console to the invoking user
3 | #
4 | # By convention, both xconsole and xterm -C check that the
5 | # console is owned by the invoking user and is readable before attaching
6 | # the console output. This way a random user can invoke xterm -C without
7 | # causing serious grief.
8 | #
9 | chown $USER /dev/console
10 | pid=$(cat /var/run/xdmshutdown.pid 2> /dev/null)
11 | test -n "$pid" && kill -9 $pid 2> /dev/null
12 |
--------------------------------------------------------------------------------
/Common/XFCE4/xinitrc:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # $Xorg: xinitrc.cpp,v 1.3 2000/08/17 19:54:30 cpqbld Exp $
3 |
4 | userresources=$HOME/.Xresources
5 | usermodmap=$HOME/.Xmodmap
6 | sysresources=/usr/local/lib/X11/xinit/.Xresources
7 | sysmodmap=/usr/local/lib/X11/xinit/.Xmodmap
8 |
9 | # merge in defaults and keymaps
10 |
11 | if [ -f $sysresources ]; then
12 | xrdb -merge $sysresources
13 | fi
14 |
15 | if [ -f $sysmodmap ]; then
16 | xmodmap $sysmodmap
17 | fi
18 |
19 | if [ -f "$userresources" ]; then
20 | xrdb -merge "$userresources"
21 | fi
22 |
23 | if [ -f "$usermodmap" ]; then
24 | xmodmap "$usermodmap"
25 | fi
26 |
27 | aa_dir=/usr/local/etc/auto-admin
28 | for local_xsession in $aa_dir/xsession.*; do
29 | if [ -e ] && /usr/local/sbin/auto-file-secure $local_xsession; then
30 | . $local_xsession
31 | fi
32 | done
33 |
34 | startxfce4
35 |
--------------------------------------------------------------------------------
/Common/Xdefaults-xterm:
--------------------------------------------------------------------------------
1 |
2 | # Some nicer defaults for xterm
3 | xterm*geometry: 80x30
4 | xterm*faceName: Monospace
5 | xterm*faceSize: 12
6 | xterm*foreground: white
7 | xterm*background: black
8 | xterm*saveLines: 1000
9 | xterm*scrollBar: true
10 |
--------------------------------------------------------------------------------
/Common/battery-shutdown.cron:
--------------------------------------------------------------------------------
1 | SHELL=/bin/sh
2 | PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
3 |
4 | * * * * * root /usr/local/sbin/battery-shutdown.sh > /var/log/battery-shutdown 2>&1
5 |
--------------------------------------------------------------------------------
/Doc/cups:
--------------------------------------------------------------------------------
1 | To enable printing with local printer you need to give group 'cups'
2 | r/w access to printer device:
3 |
4 | 1) Add following to /etc/devfs.rules (create if it doesn't exist):
5 |
6 | [system=10]
7 | add path 'unlpt*' mode 0660 group cups
8 | add path 'ulpt*' mode 0660 group cups
9 | add path 'lpt*' mode 0660 group cups
10 |
11 | 2) And following to /etc/rc.conf:
12 |
13 | devfs_system_ruleset="system"
14 |
15 | 3) Restart devfs: /etc/rc.d/devfs restart
16 |
17 | If your system supports 'devd' you can copy
18 | $PREFIX/share/examples/cups/lpt-cupsd.conf to $PREFIX/etc/devd/
19 |
20 | To enable printing under Gimp and MS-Windows clients do the following:
21 |
22 | 1) Uncomment application/octet-stream line in mime.types
23 | 2) Uncomment application/octet-stream line in mime.convs
24 | 3) Restart cupsd
25 | ======================================================================
26 |
27 |
--------------------------------------------------------------------------------
/Doc/desktop-installer.dbk:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Desktop-installer Guide
5 |
6 |
7 | User your cleverness for creativity
8 |
9 | How would you like to spend minimal time setting up
10 | your workstation or laptop, and most of it doing creative
11 | work? This is the design goal of desktop-installer, and
12 | FreeBSD helps make it possible.
13 |
14 | The core purpose of desktop-installer is to help you
15 | quickly and easily create the most reliable and secure desktop
16 | system available, so you can spend your time on productive
17 | work rather than tedious systems management.
18 |
19 | FreeBSD provides the vast majority of the features
20 | necessary to make a great desktop system for WEB browsing,
21 | editing documents, playing music and videos, developing
22 | software, and much more. It also offers solid support for most
23 | popular PC hardware. However, fully configuring a stock
24 | FreeBSD desktop system by hand is a bit like assembling a
25 | 1,000-piece jigsaw puzzle. Unless your goal is to learn how to
26 | integrate the components of a Unix desktop environment, manual
27 | configuration would not be a good use of your valuable time.
28 |
29 |
30 | There are some important issues that new FreeBSD users
31 | are unlikely to know about, such as ensuring that your ports
32 | tree and packages are in sync, how to correctly configure
33 | devd, sound devices and graphics drivers, to name a few.
34 |
35 |
36 | Desktop-installer is a post-install script that
37 | embodies the extensive knowledge needed to configure a clean,
38 | reliable FreeBSD desktop system. It automates the process of
39 | configuring a FreeBSD workstation or laptop computer, allowing
40 | typical users to set up a fully functional desktop environment
41 | in less than an hour.
42 |
43 | More than a dozen popular desktop environments and
44 | window managers are explicitly supported and any other can be
45 | configured with relative ease using the "Custom" option.
46 |
47 |
48 | Desktop-installer installs and configures
49 | desktop-independent tools and features, such as QMediaManager
50 | (shown in ), a GUI application
51 | that is automatically launched when removable media are
52 | inserted.
53 |
54 |
55 | Qmediamanager
56 |
58 |
59 |
60 |
61 | The VirtualBox guest environment is automatically
62 | detected and configured with the VirtualBox guest additions,
63 | so you can easily try out desktop-installer even if you don't
64 | have a spare PC. Parallels and VMWare Fusion are also
65 | automatically detected and configured with a basic graphics
66 | setup. Hyper V can also run FreeBSD, but in our experience it
67 | is slow and unreliable. Windows users are advised to install
68 | VirtualBox instead. Note that Hyper V should be disabled via
69 | Control Panel if you are running a different virtualization
70 | system.
71 |
72 |
73 |
74 | Design principles
75 |
76 |
77 | Desktop-installer is strictly a configuration tool, i.e. a
78 | convenient user interface for integrating standard FreeBSD
79 | tools and ports. Unlike most desktop distributions built on
80 | FreeBSD and Linux, desktop-installer does not duplicate
81 | components of or add components to the FreeBSD base. Our goal
82 | is to work with the underlying operating system, not around
83 | it, integrating the many features already provided by FreeBSD
84 | to create a fast, stable, and secure desktop experience.
85 |
86 |
87 |
88 | Any general enhancements made to FreeBSD for the sake of
89 | desktop-installer will be desktop-independent and available
90 | via the ports collection for use with or without
91 | desktop-installer.
92 |
93 |
94 |
95 | One of the primary objectives of desktop-installer is
96 | long-term sustainability. Since man-hours are costly, efforts
97 | are focused on improving the functionality of the end-result,
98 | not the appearance of the tool.
99 |
100 |
101 |
102 | Desktop-installer does not try to compensate for FreeBSD's
103 | shortcomings. We prefer to leave them exposed so that there is
104 | motivation to fix them in the FreeBSD base or ports system.
105 |
106 |
107 |
108 | Desktop-installer will not impose any arbitrary limitations.
109 | While the GUI distributions tend to support only AMD64 systems
110 | running the latest FreeBSD release, desktop-installer allows
111 | you to use any supported version of FreeBSD on any supported
112 | CPU architecture. ARM, PowerPC, RISC-V and Sparc are treated
113 | no differently than x86. Desktop-installer is tested on an
114 | iMac G5 and a Rock 64, in addition to numerous x86 PCs and
115 | laptops. While we can't guarantee that all ports/packages will
116 | work on all platforms, desktop-installer won't stand in your
117 | way.
118 |
119 |
120 |
121 |
122 | How it Works
123 |
124 |
125 | The desktop-installer script installs necessary
126 | ports/packages, configures the graphical desktop of your
127 | choice and performs basic setup for devices and services such
128 | as devd, WiFi, sound, Bluetooth, printing and remote login.
129 |
130 |
131 |
132 | Using desktop-installer, a typical desktop system can be fully
133 | configured and ready to use in less than an hour on reasonably
134 | modern hardware with a reasonably fast Internet connection.
135 |
136 |
137 |
138 | Some user input is required, but desktop-installer should
139 | provide sufficient guidance. You should not have to search the
140 | web for complicated instructions on configuring software and
141 | services. Anything that does not work out-of-the-box is
142 | considered a bug and should be reported. The end-user is only
143 | expected to run desktop-installer and answer the questions.
144 |
145 |
146 |
147 |
--------------------------------------------------------------------------------
/Doc/qmediamanager.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/outpaddling/desktop-installer/05d1d01fc32b361d975168394ff46444a60decc7/Doc/qmediamanager.png
--------------------------------------------------------------------------------
/FreeBSD/XDM/Xsetup_0:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # $Xorg: Xsetup_0,v 1.3 2000/08/17 19:54:17 cpqbld Exp $
3 |
4 | # put me in /usr/local/etc/X11/xdm
5 |
6 | # Use FreeBSD logo as background instead default steelblue
7 | # /usr/local/bin/xsetroot -solid steelblue
8 | /usr/local/bin/feh --bg-fill /usr/local/share/pixmaps/bsd_background.jpg
9 |
10 | # Add shutdown, reboot, restart X11 buttons
11 | # xwininfo sees multiple monitors as one big screen
12 | # Use xrandr to separate them. Assuming monitors are side-by-side,
13 | # so xwininfo is fine for height.
14 | # width=`xwininfo -root | awk '$1 == "Width:" { print $2 }'`
15 |
16 | # Uncomment these to debug
17 | # xwininfo -root > /root/xwininfo
18 | # xrandr --screen 0 > /root/xrandr
19 |
20 | height=`xwininfo -root | awk '$1 == "Height:" { print $2 }'`
21 |
22 | # First component of field containing ####x###+#+#
23 | width=`xrandr --screen 0 | grep -E '[0-9]+x[0-9]+\+[0-9]+\+[0-9]+' | awk -F x '{ print $1 }' | awk '{ print $NF }'`
24 |
25 | printf "width = $width height = $height\n" > /root/dims
26 |
27 | # Primary display could be on left or right. 3rd value in xrandr output
28 | # is the offset of the left edge of a monitor, e.g.
29 | # VGA-1 connected primary 1280x1024+1925+0
30 | left_edge=`xrandr --screen 0 | grep primary | awk '{ print $4 }' \
31 | | awk -F [x\+] '{ print $3 }'`
32 |
33 | x=$(( $left_edge + ($width - 150) / 2 ))
34 | y=$(( ($height - 10) / 2 + 120 ))
35 | /usr/local/sbin/xdmshutdown -geometry +$x+$y &
36 | echo $! > /var/run/xdmshutdown.pid
37 |
--------------------------------------------------------------------------------
/FreeBSD/XDM/beastie.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char * bsd2_xpm[] = {
3 | "151 161 129 2",
4 | " c None",
5 | ". c #6E6B75",
6 | "+ c #8B362C",
7 | "@ c #B9B7B8",
8 | "# c #C7C8C8",
9 | "$ c #2E2932",
10 | "% c #FBEDCB",
11 | "& c #E0C5B3",
12 | "* c #D0B39E",
13 | "= c #4A494D",
14 | "- c #FEFEFE",
15 | "; c #A7A4A7",
16 | "> c #AB4134",
17 | ", c #53472A",
18 | "' c #506C9A",
19 | ") c #72322B",
20 | "! c #F2F2F2",
21 | "~ c #0C0305",
22 | "{ c #27140E",
23 | "] c #4A3124",
24 | "^ c #474763",
25 | "/ c #E35733",
26 | "( c #CEAB1D",
27 | "_ c #C44B3A",
28 | ": c #A59169",
29 | "< c #F2C916",
30 | "[ c #B0901B",
31 | "} c #ECEBEB",
32 | "| c #F0DDC1",
33 | "1 c #DADADA",
34 | "2 c #E4E4E4",
35 | "3 c #8A534C",
36 | "4 c #FDF8DD",
37 | "5 c #D4D3D3",
38 | "6 c #50241B",
39 | "7 c #BB9593",
40 | "8 c #403B4A",
41 | "9 c #EC6845",
42 | "0 c #7E7469",
43 | "a c #39343A",
44 | "b c #C6A44E",
45 | "c c #99969A",
46 | "d c #D74D33",
47 | "e c #F7EBE4",
48 | "f c #FAF9F9",
49 | "g c #665F46",
50 | "h c #754D46",
51 | "i c #9C9BA3",
52 | "j c #DB5237",
53 | "k c #38271B",
54 | "l c #868389",
55 | "m c #7D787F",
56 | "n c #FCFAF2",
57 | "o c #EFF4F5",
58 | "p c #FAF3F0",
59 | "q c #241D25",
60 | "r c #D8C5C4",
61 | "s c #A49B9F",
62 | "t c #953F39",
63 | "u c #856360",
64 | "v c #F0D13F",
65 | "w c #C1A89B",
66 | "x c #948B91",
67 | "y c #8B8A93",
68 | "z c #CABFC0",
69 | "A c #ABAAAD",
70 | "B c #E05231",
71 | "C c #81680B",
72 | "D c #B0AAAB",
73 | "E c #42405B",
74 | "F c #636262",
75 | "G c #A64844",
76 | "H c #BCBCBD",
77 | "I c #FCFAF8",
78 | "J c #FEFDF9",
79 | "K c #381C13",
80 | "L c #E0D2D0",
81 | "M c #5E5D71",
82 | "N c #F0E4DA",
83 | "O c #BC4535",
84 | "P c #612B23",
85 | "Q c #D3D0CF",
86 | "R c #A09B83",
87 | "S c #967F28",
88 | "T c #E7EBED",
89 | "U c #B4B0B2",
90 | "V c #C1C2C3",
91 | "W c #9D8090",
92 | "X c #D0CECF",
93 | "Y c #D0D5D7",
94 | "Z c #F1EFEE",
95 | "` c #180F17",
96 | " . c #CCCACB",
97 | ".. c #EFE8E6",
98 | "+. c #E5D8D5",
99 | "@. c #D5DADC",
100 | "#. c #BDB2A6",
101 | "$. c #DDDCDD",
102 | "%. c #FEFAFB",
103 | "&. c #F4F8F8",
104 | "*. c #A06259",
105 | "=. c #F5F5F4",
106 | "-. c #B2B3B4",
107 | ";. c #54545A",
108 | ">. c #E7E6E5",
109 | ",. c #AA8379",
110 | "'. c #FAF7F7",
111 | "). c #E75E3B",
112 | "!. c #E2E1E2",
113 | "~. c #A1A0A4",
114 | "{. c #E0DFDF",
115 | "]. c #D6D5D6",
116 | "^. c #F0F1F0",
117 | "/. c #F8F7F7",
118 | "(. c #CCCFCF",
119 | "_. c #E7E6EC",
120 | ":. c #AEAEAF",
121 | "<. c #D25441",
122 | "[. c #E9E8E8",
123 | "}. c #BFBFBE",
124 | "|. c #799CCF",
125 | "1. c #FCFCFC",
126 | "2. c #FBFBFB",
127 | "3. c #929098",
128 | "4. c #EEEEED",
129 | "5. c #CC4A33",
130 | "6. c #D8D8D7",
131 | "7. c #FBFDFF",
132 | "8. c #FFFFFF",
133 | " ",
134 | " ",
135 | " ",
136 | " }.:. ",
137 | " {.m , k 0 ",
138 | " ; P P ] ] {. ",
139 | " # 3 ) + P { H !.; x U 2 ",
140 | " e s P ) t P K c A , P h ; >. ",
141 | " N h ) + > ) { m 1 m > > P u 6. ",
142 | " z h ) > > t k , } [.; + O t K g } ",
143 | " @ ) t > > G P { V 1 l + O P { W ",
144 | " r h > > O O ) K ;. @ *.5.) K { D ",
145 | " L 3 > > O O G ] { H } } } A x O > K K K . ",
146 | " +.3 + O O _ O t K { X 2 .; l 0 0 . . 0 3.-.$. !.c > 5.) { ` ] $. ",
147 | " ..u + O j 5.O > t K ~ c } 5 c g P P P P 6 K K { ` ` { , x D H >. [.c G d + K { ~ m ",
148 | " s + O d d _ O G ) 6 { k U U u 3 + > O O G G t t ) P K K { ` ` { , F s 1 } c G d t K { ~ k ]. ",
149 | " z ) t d / 5.O O G ) K K K k K P + > O O O > t + + + ) 6 K K K { { ` ~ { m s !. >.c t B G K { { ~ 3. ",
150 | " 0 ) O / B 5.O > + K P + + P { 6 > O O > ) 6 K 6 ) ) ) ) ) 6 6 K K { { { ~ K ; 1 @ c t B > P { { ~ K $. ",
151 | " h t j B j 5.O > P ) t G O G + + O O > P P P ) K K 6 P ) ) ) ) P K { { { { ~ { x $. [.1 s u 5.d t 6 { { ~ ~ ~. ",
152 | " r h O / / j 5.O ) t O O d d d 5.O 5.5.t + d B d O ) { 6 P ) ) ) ) P K { { { { ~ ` c 6.} !.1 D F P > j O + 6 { { { ~ F ",
153 | " z 3 5./ / j 5.t ) 5.d d O t > 5.d B B 5.B / B B B O P { 6 ) + ) + ) P { { { { { ~ { s D c x h ) O 5.d > + 6 { { { ~ , X ",
154 | " w 3 5./ / j O P 5.B 5.P P h P > B d O > + + > O B B G K K P + + + + ) 6 K { { K K K P t + t 5.B d d O t ) 6 { { { ~ ] V ",
155 | " #.u O / / d + O B > ) u w & u + j 5.+ + h 3 t + O B d + K P + + + + + ) ) 6 6 + > 5.d d B B B B d 5.> + P K { { { ~ ] V ",
156 | " z u > / / > ) / O 6 ,.4 % & h ) B > ) R & & 7 ) + O B O K ) + + + + + + + ) ) t O B B B B B B d 5.O t ) 6 K { { { ~ ] V ",
157 | " u 3 / d ) 5.O P ,.4 % % w P 5.O + * | | | & 7 ) t 5.d + ) + + + + + + + + + + O j B B B B d 5.O > + P K { { { { ~ , ",
158 | " ,.h 5.t + B P u 4 4 % | u + j + : % % % | & * m 6 + B 5.t + + + + + + + + + + > 5.d d d 5.O > t + P K { { { { { ~ l ",
159 | " +.h + P d + 3 4 4 % & ) O + *.% 4 % % | | & 7 ] + j B O t + + + + + + + + + t > > O > > > + + P K { { { { { ~ { !. ",
160 | " x 6 P 5.) & 4 4 % ,.) 5.t | 4 4 4 % % | & w 3 + j j _ > t + + + + + + + + + + t t t t + ) P K { { { { { { ~ l ",
161 | " Q K O + : 4 4 % | u + + 0 4 4 4 4 % % | & w m P O j 5.O > t + + + + + + + + + + + + ) P 6 K { { { { { { ~ k [. ",
162 | " L P 5.+ % 4 % % & h O t | 4 4 4 % % % | & * W + O d 5.O > t + + + + + + ) ) ) ) P P 6 K K { { { { { { ~ { s ",
163 | " # + + ,.4 4 % % w + + : % 4 4 4 % % % | & * W ) 5.d 5.O > t + + + ) ) ) P P P 6 6 K K K { { { { { { ~ ~ }. ",
164 | " x + ) r 7 c ] & N ,.+ ) | 4 4 % % % % % | & * W h O d 5._ > t + + ) ) P P 6 6 6 K K { { { { { { { { ~ { ; ",
165 | " g + 3 : s @ ~ 0 N h + + * 0 & | % % % % % | * W ) > j d 5.O > + + + ) P 6 K K K K { { { { { { { { ~ ~ ~. ",
166 | " ].P + : 0 {.] ~ , 7 ) + ~ x c ~ u % % % % % | * W ) > j d 5.O > + + + ) P K K { { { { { { { { { { ~ k ; ",
167 | " H ) 3 7 , s ~ ~ ] u ) 6 ~ .l ~ K * % % % % | * W ) > / d 5.O > + + + ) P K { { { { { { { { { { ~ { @ ",
168 | " ; + t 6 ~ ~ ~ ~ , h t K { >.g ~ ~ ,.% % % % & * W ) O / j 5.O > t + + ) 6 K { { { { { { { { { ~ ] Q ",
169 | " x > + { ~ ~ ~ ~ , 3 t ~ ~ ; k ~ ~ g % % % | & * W ) O B j 5.O > t + + ) 6 K { { { { { { { ~ { 0 {. ",
170 | " .) 5.t K ~ ~ ~ ~ K > ) ~ ~ ~ ~ ~ ~ , % % % | & * u + O B B 5.O > t + + ) 6 K { { { { { ~ ~ ] # ",
171 | " 1 t > / 5.6 ~ ~ ~ ~ + d P ~ ~ ~ ~ ~ ~ , % % % | & w h t 5.B B 5.O > t + + ) 6 K { { { { { ~ ~ ; ]. ",
172 | " 3 O B / / > P { { P O 5.P ~ ~ ~ ~ ~ ~ , % % % | & W 6 > / B B 5.O > t + ) P 6 K { { { { { ~ ~ x . ",
173 | " ,.> B / / j B > P ) > O 5.+ ~ ~ ~ ~ ~ ~ : % % % | * m ) O B B j 5.O > t + ) P 6 K { { { { ~ ~ ~ l 5 ",
174 | " 6.t j / / B j > + > > > + > O { ~ ~ ~ ~ K & % % | & 7 = > d B B d 5.O > t + ) P 6 K { { { { ~ ~ ~ m !. ",
175 | " u O / / / B O > d B B d 5.O 5.+ ~ ~ ~ ~ u | % % | w m P O d B B d 5.O > t + ) P 6 K { { { { ~ ~ ~ l [. ",
176 | " : : * e ..) 5./ / / B > B ).9 9 9 )./ O O P ~ ~ , | % | & w m 6 + d d B d 5.O > > + + ) P 6 { { { { { ~ ~ ` x ",
177 | " L [ ( S #. L ) 5./ / / d > j 9 9 9 9 9 ).d + + + { h 7 w R 3 P K K P + > O > > > t + + + ) 6 K { { { { ~ ~ ~ { x ",
178 | " & ( < C : +. r + 5./ / / B t 5.).9 9 9 9 / d + P ) > + P P + + > O O > > O O > t t + + + + P 6 K { { { { ~ ~ ~ K $. ",
179 | " : v < S , ; ..h O / / / B O ) 5.B / / / / _ ) P K + _ O 5.d B B B B / / / j 5.O t + + + ) P 6 K { { { { ~ ~ ~ m [. ",
180 | " & b < ( C , {. w > d B B B j O ) + > O O > 6 K P K + 5.d d B B B B / ).).).).j 5.t + + + ) 6 K { { { { ~ ~ ~ k :. ",
181 | " & v ( [ , H ..>.*.5.j d _ d j O ) P P P P 6 6 P ) O 5.d B B B B / ).9 ).9 )./ d > + + + P 6 K { { { { ~ ~ ~ 0 >. ",
182 | " +.[ * [ b b [ , }. 7 > <.j > ) ) 5.d > + P ) P + > _ 5.d B B B B B B / )./ / / B d O + + ) P 6 K { { { ~ ~ ~ ~ c ",
183 | " e ( ( S & & N N +.b C C !.{.0 > j _ t K ) d B d O O O d d d d B B B B B B B d d 5.O O 5.5.> + + ) 6 K { { { ~ ~ ~ ~ . } ",
184 | " : v < ( C R & [ , ; ..L h + O _ G 6 + j d d d B d B d d B B B B B d 5.O > + + + t > + + ) P 6 K { { { ~ ~ ~ ] :. ",
185 | " e b v < [ C w e * S ] g >. +.u ) + G t P t d d d d d d d d B B B d 5.O > t ) K { K P ) ) ) P 6 K { { { ` ~ ~ { c } ",
186 | " {.v v b < ( S : ..>.#.C , k >. @ u 6 + t 6 t _ d d d 5.5.d d d 5.5.O > t P { { P + + + ) 6 6 K { { { { ~ ~ { ; [. ",
187 | " ..& b b b < < [ : #.S C ] k } e @ 0 h P P t O 5.5.5.5.O O O O > + ) K K P t G G t t + P K { { { { { ~ { m >. ",
188 | " Q e N S ( < ( S C , ] : $.l 6 6 ) t > O O O G t + P K { P > O G G G G G t ) K { { { { ~ K ; 2 ",
189 | " b b b w & .. N b ( < ( C ] , +. H ) 6 ) P P ) ) P 6 K 6 P t O O O G G t t + + P K { { { ~ , s >. ",
190 | " & b v v [ S C , & & b v < [ , , #.e r 7 <.<.*.7 .. Q u ) + + P 6 6 P + O 5._ O G G G t ) ) ) ) 6 { { { ` { ; ",
191 | " r b v < < C w N w b v v < ( C , , D 7 <.).)./ B t u .. # 0 ) t O O O _ O G G t + ) P P ) ) ) P 6 { { { ~ , . ",
192 | " >.* v v ( C * & * b b ( v v v [ [ [ C , S > 9 9 9 ).B G K ; X 3 P ) + + + ) P 6 K K ) + + + + P 6 K { { ~ l ",
193 | " * b v < < < < < < < < ( ( * * [ [ C C > ).).)./ _ ) 6 m Q ) 6 K { K K K P + t > > > t t + P 6 { { ~ c ",
194 | " & b v v < < < < ( ( b N e e * [ [ S + / / / d t P k 0 $.h > > > t t > O 5.d d 5._ O O > + ) K { ` F ]. ",
195 | " e * b ( ( ( ( * | e e * C ( t > j j O ] k { 3. #.) 5.5.d d d d B B d d d d d d O > + 6 { ` k ~. ",
196 | " e | | | e ..D + O + t G ) k K , @ 1 z 3 t d B B B B B B d d d d d d d 5.> + P { { ` x ",
197 | " r G / ).).5.t ) 6 K ] k k ] h m s h t d B B B B B B B d d d d d d d 5.> + P { { ` k ; ",
198 | " 7 j ).9 9 )./ G ) K ] ] ] K { K ] ) _ j B B B B B B B B d d d d d d 5.> + P K { { ~ 0 ",
199 | " ,./ ).9 9 ).j G ] k P P ] k k K ] ) t t t > O d B B B B B d d d d 5.G > + P K { { ~ ;. ",
200 | " ,.j ).9 9 ).d t ] 6 P P ] k ] K P t O _ _ O > t + O d B B d d d d G t t + P K { { ~ , } ",
201 | " 7 _ j j j j _ t k 6 P P ] k k { t j ).).).)./ / O + + O _ d d 5.G t ) t t P { { { ` { Q ",
202 | " N *.> _ O G ) K K ) ) ] k k K K + / ).9 9 9 ).)./ d + K + t t t ) ) ) t t P { { { ~ ~ U ",
203 | " +.,.) ) P 6 ) t t ) ] k { K k { _ 9 9 9 9 9 9 9 / d t P P ] P P K + G t P { { { { ~ s ",
204 | " e 7 _ d d _ O t ) k K k ] k K d ).).9 9 9 9 9 9 j d O G + ) ) ) t G ) 6 { { { { ~ m ",
205 | " e 7 G B j _ t K { ] ] ] { O / / / / ).).9 9 ).B d _ G G t t t t + P K { { { { ~ g ",
206 | " w *.3 h 6 k ] ] k { ) / B B / / / B / / B 5._ O G t + ) t ) ] k { { { { { ~ , ",
207 | " N L +.#.] K K K ) 5.B B B / / / B j j _ G G t t + ) P ] 6 K K { { { { { ~ = ",
208 | " +.0 6 G _ 5.d j B B B j d 5._ O t t t + ) P ] k k K { { { { { { ~ g ",
209 | " z P G G O _ _ d j 5.5._ O G t t + ) ) P ] ] k K { { { { { { { ~ , ",
210 | " 0 ) t t G G O O O G G t t t + ) ) P P ] k k K { { { { { { { ~ x ",
211 | " L P P ) t t t t t t t t t + ) ) P P ] k K K K { { { { { { ~ ] >. ",
212 | " e h { P ) ) ) + t t t t ) ) ) ) P ] ] k { { { { { { { { { ~ 0 ",
213 | " N 3 ) P ) P ) ) ) ) ) ) ) ) ) ) P ] k K K { { { { { { { { ~ x ",
214 | " +.<.5.) 6 P ) ) ) ) ) ) ) ) P ] k k K K K K { { { ` { { { ~ . ",
215 | " & j B d P 6 P ) ) P P ) P ] ] K { { { { q q { { { { { { { ~ g ",
216 | " * j B B j O + 6 P 6 K K K { { { { { , g g S S K K K { { { ` k {. ",
217 | " w j / / B B d t ) 6 { { { ~ { { K K , [ [ ( ( S , k { K { { ` ; ",
218 | " z j / / / / d 5.O t ) K K K 6 P P P P K g [ S [ ( S { { K { ` g ",
219 | " L _ / B / / / B d 5.O > t + ) ) ) P P P K , [ [ ( ( [ , { { { { }. ",
220 | " ..) 5./ / / / / B d d d 5.O t + + ) P P P ] { g [ S [ ( C { { ~ . ",
221 | " ; + B / B / / B d 5.5.5.O > t + ) P P P ] k K g [ S [ ( { ` ` ] !. ",
222 | " u O / / / / B d 5._ O > t + ) P ) P ] ] ] k { { g [ g ` { { ~ m ",
223 | " r t 5.d d B B d 5.O O > + ) P P P ] k K K K { { { { ~ { { { { ~ c ",
224 | " e 7 ) > O 5.5.5.O > > t ) P P 6 ] k K { { { { { { { { { ` { { ` k 6. ",
225 | " x 6 P ) + + + + + + ) P P P ] k { { { { { { { { { { { { { { { { ] Q ",
226 | " x k 6 6 6 6 6 6 K 6 6 K K K K K { { { { { { { { { { { { { { K K ` , H ",
227 | " U k = g 0 F k K { K K k a a k { { ~ ~ ~ ~ { K ] K { { { { { K k k { { s ",
228 | " ]., , 0 0 g , k k { K , , g , k { k k ] , = a ] k { { ~ { { K k k k { K l . ",
229 | " F : R R R 0 , = { k , , g g g , ^ ' ' ' ^ ^ a ] K ; , ~ ~ { { K k k k K K F ]. ",
230 | " g 0 R R R R 0 M k g R R 0 0 0 g = ' ' ' a a k ] { s [.. K ~ { { k k K k k { , s # [. ",
231 | " # 3.;.. R 0 0 g g g ' a ] g , , , g 0 , ' ' ^ , m m a k ] 5 2 U = { { K k k K k k k K k , 0 ; H 5 ",
232 | " 2 L .# .# c . m F , 0 0 0 R R 0 M ^ k 0 R R R R 0 , = ' ' ^ . l l a k { D Q s m k ~ { K k k K K k K K ] , g 0 s .[. ",
233 | " T Y H i 3.y l u h ] K a . . a ' i R #.R 0 g k , M ^ $ a , , g R R R 0 ^ ' ' = m l m k k ` . } D 0 k { { { K k k K k k k K { K ] F c H ].2 ",
234 | " _.H -.V # V V V V ; F = ] , ' |.|.|.' ' M m ' ' ' ' ' ' a = M 0 0 g , ] a a ^ ' ' ' ' a a ] k ] { , >.V c l g k { { K K K k k k K K { K k , F l s -. .5 6.$. ",
235 | " 1 (.-.V T :.. ;.= ' ' ' ' ;.F F F ;.= a = ' ' m R m = a k a ^ ^ ^ ' ' ' ' ' ^ k k ] ] k k 1 2 ].U l g , ] { { { K K K K K K K K { K k ] , g l U X [. ",
236 | " 1 ~.V Y # . F F a M ~.# } T Y -.m ;.$ = ' F M ' ' ' ' ' ' ' ' ' ' ' ' ^ ^ a a a ] { c {.@ x , k ~ ~ ~ { { { { K ) ) ) P K { k , m . ",
237 | " T A V # T Y :.m . l V $.H l F ] = ' ' ' ' ' ' ' ' ' ' ' ' ^ ^ a a a a ] ] k F !.@ c m g g , , ] ) ) + + + ) P 6 K K . }. ",
238 | " V ; T Y -.-.# Y Y Y # H H H :.l = ; Y ~.m F k ' ' ' ' ' ' ' ' ' ' ' ^ a a a a ] k k a 8 8 ]. 5 .; 0 t > > + ) P ~ ~ m ",
239 | " .i # T Y Y Y # # # -.; l l l c # Y :.l . , k ' ' ' ' ' ' ' ^ ^ a a a a k k a 8 = ;.= 8 ]. X w G > t + 6 ~ m } ",
240 | " T i -. # c F F H H -.T # ; l . 8 k ' ' ' ' ^ = a ] ] ] ] k k $ 8 ;.;.;.= $ F >.3 > > ) { ~ x ",
241 | " 2 c ; # $.# ~.. ;.-.Y # -.-.}.# Y T Y V :.c l F 8 k a ^ = ] ] k k k k k a 8 = ;.;.;.= $ F D 2 z U *.> + 6 ~ ] ",
242 | " 2 c . l ; V V # H :.c m ;.; # -.~.c c l m m F F ;.8 8 a ] k k K k k k ] 8 E = ;.;.;.;.= 8 a 8 l [. @ k K {. 7 > + 6 ` K $. ",
243 | " @. . . . . .# V # V c # T T Y # V V V ; l F ;.;.;.= E E E = ;.;.;.;.;.;.= = a = l @ {. Y m + t ) c :.+ ) 6 { ~ k ",
244 | " @.-.H Y T # y F ;.;.;.;.;.;.;.;.= = 8 8 = ;.m ~.5 !.:.h + O _ > h .,.P P { ~ ~ ~ m ",
245 | " T Y -.-.V # # Y T Y # # :.F = = = = 8 8 $ $ $ a = . :.5 [. s h t O _ _ <._ P l :.c g ) P P K ~ ~ ~ ~ F ",
246 | " (.@ :.c c c l m m . F ;.;.F . m l c ~.H Q [. @ ,.+ > O _ <.<.<._ ) 6 6 6 6 6 K ~ ~ ~ ~ { . ",
247 | " U 3 > O O O _ _ <._ _ > + + ) 6 ~ ~ ~ ~ ~ K m 1 ",
248 | " D *.> O O O O O O _ _ > > + ) 6 { { g . c ; .} ",
249 | " # *.> O O O O > > > + + + P P P K ~ { Q ",
250 | " 6.0 ) ) + + P P P 6 ] , g g g g g g g g . 2 ",
251 | " .x c s s :.z 5 @.@._. ",
252 | " ",
253 | " ",
254 | " ",
255 | " ",
256 | " ",
257 | " ",
258 | " ",
259 | " ",
260 | " ",
261 | " ",
262 | " ",
263 | " ",
264 | " -.F F F F F F F F F F F F F . X [. $.F F F F F F F F F F F F F F F F m :. 2 . F F F F F F F F F F F m {.[. H F F F F F F F F F F F F F F F F F . ",
265 | " m ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ = $ U # ~ ~ ~ ~ ~ ~ ` ~ ~ ~ ~ ~ ~ ~ ~ ` = i 1 s ` ~ ~ ~ ` = q ~ ~ ~ ~ ~ ~ ~ ;.a . y ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ` F ",
266 | " 2 ~.~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ = 2 >.;.~ ~ ~ ~ . = ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ;.].@ } .` ~ ~ ~ $ F ` ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ F [.c ~ ~ ~ ~ ` q ` ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ . ",
267 | " [.# }.q ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ` ]. .= ~ ~ ~ = . ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ $ 8 . >.= ~ ~ ~ q = ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ = .H q ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ $ ` ~ ~ } ",
268 | " [.V :.q ~ ~ ~ ~ ~ ~ . A ; ; ~.~.D H c . 5 }.8 ~ ~ ~ . $ ~ a :.A ; ~.3.q ~ ~ ~ ~ ~ ~ 8 X ` ~ ~ ~ F ~ ~ q c ~.; ; ~.~.~.D @ ;.m V -.q ~ ~ ~ ~ ~ ~ F D s s x a ~ ~ ~ a ;.~ ~ m ",
269 | " [.# :.q ~ ~ ~ ~ ~ ~ l .}.}.H H V (. 5 }.8 ~ ~ ~ F q ~ = (.H @ U -.F ~ ~ ~ ~ ~ ~ 8 >.H q ~ ~ ~ ` ~ ~ m .H }.}.H H H }.5 [.# U q ~ ~ ~ ~ ~ ~ m .@ :.A -.a ~ ~ $ c ~ ~ m ",
270 | " # :.q ~ ~ ~ ~ ~ ~ c >.6.6.6.].].$. X Q 5 # z # 1 Q X .2 1 .z z z .z z z z z z z 5 [. [.].z # .X X 5 ].].].Q .Q $. 5 H 8 ~ ~ ` F ~ ~ ;.[.6.Q H -.F ~ ~ ~ ~ ~ ~ = $.-.q ~ ~ ~ ` ~ ~ x [.1 1 1 6.6.].5 {. } .U q ~ ~ ~ ~ ~ ~ y 2 5 # -.-.8 ~ ~ $ l ~ ~ m ",
271 | " # :.q ~ ~ ~ ~ ` ~ A ; ~ ~ ~ ~ ~ ~ V m ~ ~ ~ a .U m ~ ~ ~ q m a ~ ~ ~ ~ ~ ~ ` q x X q ~ ~ ~ = m ` ~ ~ ~ ~ ~ ~ ~ ~ m 6.}.= ~ ~ q F ~ ~ . [.(.H F ~ ~ ` ` ~ ~ = 6.-.q ~ ~ ~ $ ` ~ a $. .U $ ~ ~ ~ ~ ~ ~ c } 1 V @ 8 ~ ~ q = ~ ~ m ",
272 | " # A q ~ ` ` ` ` ~ @ i ~ ` ` ` ` ` ;.q ` ` ` 8 . 8 [. l ~ ` ` ` l y ` ~ ~ ~ ~ ` ` ` q @ } {.q ~ ` ` q . ;.~ ~ ~ ~ ` ` ` ` ~ ` m 5 }.= ~ ~ q = ~ ~ m 6.V . ~ ` ` ` ` ~ 8 6.:.q ~ ` ~ a a ~ ` a ;.= = = = = = = U .-.$ ~ ` ` ` ` ~ ~. } X @ 8 ~ ` ` q ~ ~ m ",
273 | " # D q ` ` ` ` ` = ]. X ].{.y ~ ` q q 8 8 l $ ` ` ` ` ~ ` 2 6.a ` ` $ l a ~ a 8 a 8 $ ` ` ` ` 8 m ; m ~ ` ` a $ ` q 8 8 8 a ` ` ` a F ` q {.$.H = ~ ` ` q ` ~ m >.}.;.` ` ` ` ` ~ F ].A q ` ` ~ $ c q ` ` ` ` ` ` ` ` ` ~ q }. .-.$ ~ ` ` ` ` ~ ; 5 H 8 ~ ` ` ` ` ~ m ",
274 | " # A $ ` ` ` ` ` m X l m m m l U . s ].l ~ ` q $ l 8 ` ~ ` ~ ~ ~ ~ ` 6.; ` q ` F . ~ a H V H V l ` ` ` ` ` $ 8 [.$.= ` q $ 0 q ~ m .V H H a ` ` 8 c q ~ i >.}.= ~ ` ` ` ` ` a U c m . ;.` ` ` ` ` ~ 8 !.(.:.$ ` ` ` ~ F ~.$ q q q q q q q q q ` = X U a ` ` ` ` ` ~ ; ].H = ~ ` ` ` ` ~ m ",
275 | " # D a ` q q q ` $ l . q ` ` ` q ;.8 ~.5 m ` q q q $ ` ` q l 3.3.; i 8 .i ` q ` = q ` F # V @ :.y q q q q q q a {. .= ` ` a F ` $ D # }.U :.= ` q q q q ` c 2 H ;.` q { { q q ` q q ` ` ` q q q q ` m # :.$ ` ` ` ` ` ;.m = $ $ $ $ $ $ $ q q ` H ].-.a ` q q q q ` A ].H = ` ` ` ` q ` l ",
276 | " # :.a q q q q q q ` q q q q q q q ` ~.Q l ` q q q ` ` q 3.# }.}. .{.!. .3.` q q a $ ` . >.{.(.H l q q q q q q a 6.H = ` q a ;.` a 5 2 6.V -.8 ` q q ` q ` i >.H ;.` q q q q q q ` ` ` ` ` ` q q q q F z [.(.A $ q q ` ` ` ` q q q q q q q $ . a q ` H ].U a ` q q q q ` A ].H = ` q { q q ` l ",
277 | " # :.a q q $ $ q q q q q q q q q q q ~.5 l q q q q q q 8 $.].5 Q ].2 $.# y q $ q 8 a q F Q @ 3.$ q $ $ $ q 8 X H = q q = 0 q $ H $.}.-.;.q q q q q ` c >.H F q q q q q q 8 . F F F F = q q q $ M M X Q -.;.` q q ` ` ` ` ` { { q ` q q a $ q q H ].-.8 q $ q q $ ` :. ].H ;.q q q q q ` y ",
278 | " # A 8 $ $ $ $ $ q m A ~.~.~.~.:. .# V .l q $ $ $ $ q = $.V y q $ q a a q $ . . a a a $ $ $ $ $ $ 8 X @ = q q 8 . q q E i 8 a a $ $ q q q q q i !.H F q $ $ $ $ q . }.@ -.:.A x $ q $ q ^ E . ].-.m q q q ` q q q q q q q q ` q q q $ q H ].-.8 q q $ q $ q :. 5 H ;.q $ q $ $ ` y ",
279 | " .D 8 $ $ $ $ $ q 3.# }.}.}.}.# {. 2 # l q $ $ $ $ q ;. !.V y $ $ $ a a $ $ $ $ $ $ q q $ $ q $ q 8 5 @ ;.q $ a a $ $ $ $ $ $ q q q q q q q ` i >.@ M $ $ $ $ $ $ c X # # H :.3.a $ $ $ $ $ M 1 -.c a q q q q q q q q q q q q q q q $ q }.].U E $ $ $ $ $ q :. ].@ ;.q q $ $ $ q y ",
280 | " # A = $ a a a $ q ~.>.$.$.$.$.$.} !.# l $ a a a $ $ ;. 2 # 3.$ $ $ a a $ a 8 8 8 8 8 8 a a a a 8 ;.X @ ;.$ $ $ $ $ $ a 8 8 8 8 8 8 a a a 8 a ; 2 H M $ $ $ $ $ a :. 2 {.(.@ c a $ a $ $ $ M [.H :.c l = a 8 a a a a 8 $ q $ q $ $ $ q }.].U = $ $ $ a a $ -. 5 @ M $ $ $ $ $ q y ",
281 | " # :.= a a a a a $ H !.# l $ a a a a $ M !.V 3.$ a a a a $ = @ @ -.:.:.A A A :.}.{.} 5 @ ;.$ a a a a $ m }.@ -.:.A A A :.-.5 ].@ F $ a $ $ $ $ ~. $.}.c 8 a a a a $ . X @ -.-.A A A A A ; ; A m a $ $ $ $ a $ V ].U = $ a a a a $ -. 5 @ M $ a a a a $ 3. ",
282 | " # D = a 8 8 8 8 $ # !.V l a a a a a $ M 2 V 3.$ a a a a a 8 H V }.V V V }.}.V 5 [.} Q @ ;.$ a $ a a a y .V }.V }.H }.V # $. 6.@ M $ a a a a $ l !.V c E a 8 8 a $ . 2 5 # V }.V }.}.}.}.-.A ; 8 $ a $ a a $ V ].U ;.a a a 8 8 $ -. ].H M $ a a a a $ 3. ",
283 | " # :.^ 8 8 E E E a V !.V y 8 8 8 8 a a M 2 V 3.a a a a a a M !.!.{.{.!.!.!.!.{. X @ M a a a $ a a ; } {.2 !.{.!.!.2 2 ].@ . a a a a a a y # c E 8 8 8 8 a . } } } } } } ..2 ].}.~.= 8 a a a a a }.].U ;.8 8 8 8 ;.E H $.H ;.a 8 a a a $ 3. ",
284 | " # A ;.8 8 8 8 E a # {.V l 8 8 8 a 8 a M !.V c E 8 a a a 8 8 @ $.A 5 ].@ . 8 a a a 8 a . [. } } V @ ].@ . 8 8 a a 8 a 3. ].@ 3.l M = 8 8 8 8 8 . !.c i i i i i i i 3.l M 8 8 8 a a 8 E .5 D ;.8 8 8 8 8 M $. A i 3.. 8 8 8 8 8 8 E X ",
285 | " # D ;.8 8 E 8 E 8 . {.V l 8 8 8 a 8 a . 2 V :.M 8 8 a 8 8 8 M i m . . . . . . M E @ $.@ 3.8 8 8 8 8 8 E y y M . . . . M . ^ M 6.@ . 8 8 8 8 8 8 M y M ^ E E E E 8 8 8 E 8 :. @ 8 E E E E E E E E E E E 8 8 8 8 a . (.D ;.8 8 8 8 8 E m l ^ 8 E E E 8 8 8 8 a M ",
286 | " } .3.^ ^ E E E ^ E V {.V y E E 8 8 8 8 M [.# :.3.^ 8 8 8 8 ^ ^ E E E E E E E E E E H 2 @ ; M 8 8 8 8 E ^ ^ E E E E E E E E E . 5 U M E E 8 8 8 E E E E ^ ^ ^ ^ E E E E 8 M >.!.6.A E ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ E E 8 8 8 ^ @ (.c ^ E E E E E E E E ^ ^ ^ ^ ^ 8 8 8 E ^ . ",
287 | " [. .l E ^ ^ ^ ^ ^ E m {.V y E ^ ^ ^ ^ ^ ^ V Q -.; 3.;.E ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ X } }.:.i . E ^ E ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ E l ].; ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ E . 5 6.V i E ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ E 3. } # y E ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ E m ",
288 | " >.# :.i ~.i ~.; V $._. !.V A i ~.i ; -.X !. !.# :.:.~.i ~.; A A :.A A A A A A U # 2 Q @ :.A i ~.~.; A :.:.A :.:.A A :.H ]. 5 -.i ~.~.~.~.~.~.; ; ; ~.~.~.i ~.~.; -.$. 1 }.:.~.~.~.~.~.~.~.~.~.~.~.i ~.~.A H {. {.V D i ~.i i ~.~.~.~.; ~.~.~.~.~.i ~.A H {. ",
289 | " } X }.}.}.H H V $. >.(.}.H }.H }.X >. $.# }.H }.}.}.}.V V }.}.}.V V }.X 2 >.Q }.H }.}.}.}.V }.}.}.}.V }.}.# 5 1 V H H H }.}.}.}.}.}.}.}.}.}.H H }. .1 >.X }.}.}.}.}.}.}.}.}.}.}.H }.}.V # 1 >.>.{.# }.}.}.}.H }.}.}.}.}.}.}.H H H H }.# {. ",
290 | " !.1 1 1 1 1 1 >. 2 1 1 6.1 1 {. 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 !.} >.$.1 1 1 1 1 1 1 1 1 1 1 1 1 $.>. [.$.1 1 1 1 1 1 1 1 1 1 1 1 6.1 1 1 {. !.1 1 1 1 1 1 1 1 1 1 6.6.1 1 1 !.[.} } 2 {.1 1 1 1 1 6.1 1 1 1 1 1 6.1 1 1 1 !.} ",
291 | " ",
292 | " ",
293 | " "};
294 |
--------------------------------------------------------------------------------
/FreeBSD/XDM/bsd_background.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/outpaddling/desktop-installer/05d1d01fc32b361d975168394ff46444a60decc7/FreeBSD/XDM/bsd_background.jpg
--------------------------------------------------------------------------------
/FreeBSD/XDM/xdmshutdown:
--------------------------------------------------------------------------------
1 | #!/usr/local/bin/wish
2 | # NT 20 October 2002 - adapted/copied from various similar
3 | # scripts dragged kicking and screaming from the bowels of the web:)
4 | # NT 27 January 2003 - added a reboot button
5 | #
6 |
7 | proc shutdownf {} { exec /sbin/shutdown -p now 2>/dev/console >/dev/console }
8 |
9 | proc rebootf {} { exec /sbin/shutdown -r now 2>/dev/console >/dev/console }
10 |
11 | proc restartx {} { exec /bin/pkill Xorg 2>/dev/console >/dev/console }
12 |
13 | button .shutdown -text "Shutdown" -background gray -activebackground #664444 -width 15 -command shutdownf
14 |
15 | button .reboot -text "Reboot" -background gray -activebackground #446644 -width 15 -command rebootf
16 |
17 | button .restartx -text "Restart X Server" -background gray -activebackground #444466 -width 15 -command restartx
18 |
19 | pack .reboot -side top
20 | pack .shutdown -side top
21 | pack .restartx -side top
22 |
23 |
--------------------------------------------------------------------------------
/FreeBSD/desktop-installer.man:
--------------------------------------------------------------------------------
1 | .TH desktop-installer 1
2 | .SH NAME \" Section header
3 | .PP
4 | desktop-installer \- Quickly configure a FreeBSD desktop system
5 |
6 | \" Convention:
7 | \" Underline anything that is typed verbatim - commands, etc.
8 |
9 | .SH SYNOPSIS
10 | .PP
11 | .nf
12 | .na
13 | desktop-installer
14 | .ad
15 | .fi
16 |
17 | .SH "DESCRIPTION"
18 |
19 | The FreeBSD desktop configuration process requires installing many
20 | ports/packages and configuring many different subsystems, which can be a
21 | daunting task for all but the most seasoned users.
22 |
23 | The
24 | .B desktop-installer
25 | script automates the process of configuring a FreeBSD machine as a desktop
26 | system running any desktop environment or simple window manager in the
27 | FreeBSD ports tree. More than a dozen of the most popular desktops are
28 | explicitly supported and any other can be configured using the "Custom"
29 | option.
30 |
31 | To use "Custom", you need only know the category/portname of the desktop you
32 | want, and the command for starting the desktop from xinit or xsession,
33 | e.g. start-lumina-desktop for the Lumina desktop. This command can be found
34 | in category/portname/pkg-plist. The only other advantage to explicitly
35 | supported desktops is automatic installation of a few common utilities, such
36 | as qpdfview and coreterminal for Lumina. You can easily install the utilities
37 | you want using "pkg install" or "auto-admin" after a Custom desktop install.
38 |
39 | .B Desktop-installer
40 | is a post-install script, i.e. one that you run AFTER doing a standard
41 | operating system and booting the new installation for the first time.
42 | ( See details below. )
43 |
44 | .B Desktop-installer
45 | installs all the software necessary for the chosen desktop
46 | as well as common desktop-independent packages such as CUPS, Firefox,
47 | LibreOffice.org, etc.
48 |
49 | It also configures system services and settings to facilitate
50 | convenient use of CD/DVD drives, USB ports, etc.
51 |
52 | .SH "MOTIVATION"
53 |
54 | This script is meant to provide a middle-ground between totally manual
55 | configuration and complete distributions such as GhostBSD or Ubuntu Linux.
56 |
57 | The post-install script approach has some advantages over complete
58 | distributions. The post-install script itself is far easier to maintain and
59 | unlike separate distributions, the resulting desktop system is a
60 | nearly pristine FreeBSD system with minimal differences from the default
61 | install. The system can therefore be maintained and upgraded using
62 | traditional FreeBSD command-line tools (pkg install, adduser, freebsd-update,
63 | etc.), or stock tools of the chosen desktop suite.
64 |
65 | For easy management of common system settings, try the auto-admin menu.
66 |
67 | Desktop-installer supports all CPU architectures that run FreeBSD and all
68 | supported FreeBSD versions, whereas distributions are generally limited to
69 | one version on AMD64.
70 |
71 | .SH "BASIC USE"
72 |
73 | To use
74 | .B desktop-installer:
75 |
76 | 1. Install a basic FreeBSD system.
77 |
78 | The recommended install options are a basic user system including:
79 |
80 | .nf
81 | .na
82 | All binaries
83 | Docs in your preferred language(s)
84 | Source code
85 | .ad
86 | .fi
87 |
88 | Installing the ports tree from the installation media is a waste of time.
89 | It will be replaced with a git clone by desktop installer.
90 |
91 | If you neglect to install the source tree, desktop-installer will install it
92 | for you automatically.
93 |
94 | It is best to use
95 | .B desktop-installer
96 | on a pristine FreeBSD installation.
97 |
98 | .B Desktop-installer
99 | can also be used to upgrade all the software on an existing system, but there
100 | are too many possibilities for failure to support here since it is impossible
101 | to predict what kinds of system hacks it might encounter. Also, it's generally
102 | a good idea to back up your data, wipe your disk clean, and reinstall
103 | everything every few years, since data on magnetic disks can fall victim
104 | to "bit rot" (magnetic polarity fades over time)
105 | and read errors will eventually occur.
106 |
107 | .B Desktop-installer
108 | can install software from source or from binary packages (pkg install).
109 | Binary packages install much faster (seconds per package, vs minutes or
110 | hours per port built from source). However, installing from ports allows you
111 | to install on systems for which binary packages are not maintained.
112 |
113 | If you enjoy a simple life, install a -RELEASE or -STABLE version rather
114 | than -CURRENT. If you would like to help the project move forward by
115 | testing the latest changes, run -CURRENT.
116 |
117 | If you do not choose to install software from source,
118 | .B desktop-installer
119 | installs most packages over the network using "pkg install", but falling
120 | back on build-from-source where necessary. (e.g. some software cannot
121 | be distributed as a binary package for licensing reasons.)
122 |
123 | 2. Install desktop-installer:
124 |
125 | pkg install desktop-installer
126 |
127 | or (if you have a ports tree installed)
128 |
129 | cd /usr/ports/sysutils/desktop-installer
130 | make install
131 |
132 | or if you want the latest development version of desktop-installer, install
133 | from the latest freebsd-ports-wip:
134 |
135 | pkg install auto-admin
136 | auto-freebsd-wip-checkout
137 | wip-reinstall-port auto-admin
138 | wip-reinstall-port desktop-installer
139 |
140 | 3. Run desktop-installer:
141 |
142 | rehash # If using tcsh and just installed desktop-installer
143 | desktop-installer
144 |
145 | .SH "SEE ALSO"
146 | auto-admin
147 |
148 | .SH AUTHOR
149 | .nf
150 | .na
151 | J. Bacon
152 | Acadix Consulting, LLC
153 |
154 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright <2010-2020>
2 |
3 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
4 |
5 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
6 |
7 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
8 |
9 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
10 |
--------------------------------------------------------------------------------
/NetBSD/XDM/Xsetup_0:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # xconsole -geometry 480x130-50-50 -daemon -notify -verbose -fn fixed -exitOnFail
4 |
5 | # put me in /etc/X11/xdm
6 |
7 | # Use NetBSD logo as background instead default steelblue
8 | # /usr/X11R7/bin/xsetroot -solid steelblue
9 | /usr/pkg/bin/feh --bg-fill /usr/pkg/share/desktop-installer/XDM/netbsd-background.jpg
10 |
11 | # Add shutdown, reboot, restart X11 buttons
12 | # xwininfo sees multiple monitors as one big screen
13 | # Use xrandr to separate them. Assuming monitors are side-by-side,
14 | # so xwininfo is fine for height.
15 | # width=`xwininfo -root | awk '$1 == "Width:" { print $2 }'`
16 |
17 | # Uncomment these to debug
18 | # xwininfo -root > /root/xwininfo
19 | # xrandr --screen 0 > /root/xrandr
20 |
21 | height=`xwininfo -root | awk '$1 == "Height:" { print $2 }'`
22 |
23 | # First component of field containing ####x###+#+#
24 | width=`xrandr --screen 0 | grep -E '[0-9]+x[0-9]+\+[0-9]+\+[0-9]+' | awk -F x '{ print $1 }' | awk '{ print $NF }'`
25 |
26 | printf "width = $width height = $height\n" > /root/dims
27 |
28 | # Primary display could be on left or right. 3rd value in xrandr output
29 | # is the offset of the left edge of a monitor, e.g.
30 | # VGA-1 connected primary 1280x1024+1925+0
31 | left_edge=`xrandr --screen 0 | grep primary | awk '{ print $4 }' \
32 | | awk -F [x\+] '{ print $3 }'`
33 |
34 | x=$(( $left_edge + ($width - 150) / 2 ))
35 | y=$(( ($height - 10) / 2 + 160 ))
36 | /usr/pkg/share/desktop-installer/XDM/xdmshutdown -geometry +$x+$y &
37 | echo $! > /var/run/xdmshutdown.pid
38 |
--------------------------------------------------------------------------------
/NetBSD/XDM/netbsd-background.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/outpaddling/desktop-installer/05d1d01fc32b361d975168394ff46444a60decc7/NetBSD/XDM/netbsd-background.jpg
--------------------------------------------------------------------------------
/NetBSD/XDM/xdmshutdown:
--------------------------------------------------------------------------------
1 | #!/usr/pkg/bin/wish
2 | # NT 20 October 2002 - adapted/copied from various similar
3 | # scripts dragged kicking and screaming from the bowels of the web:)
4 | # NT 27 January 2003 - added a reboot button
5 | #
6 |
7 | proc shutdownf {} { exec /sbin/shutdown -p now 2>/dev/console >/dev/console }
8 |
9 | proc rebootf {} { exec /sbin/shutdown -r now 2>/dev/console >/dev/console }
10 |
11 | proc restartx {} { exec /usr/sbin/service xdm restart 2>/dev/console >/dev/console }
12 |
13 | button .shutdown -text "Shutdown" -background gray -activebackground #664444 -width 15 -command shutdownf
14 |
15 | button .reboot -text "Reboot" -background gray -activebackground #446644 -width 15 -command rebootf
16 |
17 | button .restartx -text "Restart X Server" -background gray -activebackground #444466 -width 15 -command restartx
18 |
19 | pack .reboot -side top
20 | pack .shutdown -side top
21 | pack .restartx -side top
22 |
23 |
--------------------------------------------------------------------------------
/NetBSD/desktop-installer:
--------------------------------------------------------------------------------
1 | #!/bin/sh -e
2 |
3 | ##########################################################################
4 | # Description:
5 | # NetBSD desktop-installer
6 | #
7 | # History:
8 | # Date Name Modification
9 | # 2023-06-10 J Bacon Begin
10 | ##########################################################################
11 |
12 | usage()
13 | {
14 | printf "Usage: $0\n"
15 | exit 1
16 | }
17 |
18 |
19 | ##########################################################################
20 | # Function description:
21 | # Create a global Xsession file
22 | # Arguments:
23 | #
24 | # Returns:
25 | #
26 | # History:
27 | # Date Name Modification
28 | # 2023-06-13 J Bacon Begin
29 | ##########################################################################
30 |
31 | create_xsession()
32 | {
33 | if [ $# != 1 ]; then
34 | printf "Usage: create_xsession session-command\n"
35 | exit 1
36 | fi
37 | session_cmd=$1
38 |
39 | # FIXME: Use auto-something
40 | if [ ! -e $XSESSION.ctwm ]; then
41 | mv $XSESSION $XSESSION.ctwm
42 | fi
43 |
44 | # ck-launch-session may only be necessary for LXDE to enable reboot,
45 | # shutdown, etc when exiting the session. It causes problems with LXQT.
46 | if [ $de = lxde ]; then
47 | cat << EOM > $XSESSION
48 | #!/bin/sh
49 |
50 | exec ck-launch-session dbus-launch --exit-with-session $session_cmd
51 | # exec ck-launch-session $session_cmd
52 | EOM
53 |
54 | cat << EOM > $HOME/.xinitrc
55 | #!/bin/sh -e
56 |
57 | exec ck-launch-session dbus-launch --exit-with-session $session_cmd
58 | # exec ck-launch-session $session_cmd
59 | EOM
60 | else
61 | cat << EOM > $XSESSION
62 | #!/bin/sh
63 |
64 | exec $session_cmd
65 | EOM
66 |
67 | cat << EOM > $HOME/.xinitrc
68 | #!/bin/sh -e
69 |
70 | exec $session_cmd
71 | EOM
72 | fi
73 |
74 | auto-append-line 'DisplayManager*authName' \
75 | 'DisplayManager*authName: MIT-MAGIC-COOKIE-1' $XDM_CONF nocomment
76 | }
77 |
78 |
79 | ##########################################################################
80 | # Main
81 | ##########################################################################
82 |
83 | if [ $# != 0 ]; then
84 | usage
85 | fi
86 |
87 | cat << EOM
88 |
89 | It is best to have all installed packages up-to-date before installing
90 | more packages, in case not every dependency version is checked
91 | correctly. The pkgsrc tree should also be updated in case you
92 | must install something from source, such as software than cannot
93 | be redistributed in binary form, and hence has no binary package.
94 |
95 | If you have updated recently using auto-pkgsrc-update, auto-update-system,
96 | or pkgin upgrade and cvs update, then you can skip this step now.
97 |
98 | EOM
99 | printf "Update installed packages and pkgsrc tree? [y]/n "
100 | read update
101 | if [ 0"$update" != 0n ]; then
102 | auto-pkgsrc-update --defaults
103 | fi
104 |
105 | # Digest should have been installed as a dep, but just in case
106 | # Likewise for fetch if FETCH_USING=fetch is set in mk.conf
107 | pkgin -y install digest fetch
108 | pkgin -y install git cvs gmake xz feh tk consolekit
109 |
110 | if ! auto-package-installed security/mozilla-rootcerts-openssl; then
111 | printf "Install mozilla root certs? (Needed to access many sites) [y]/n "
112 | read mz
113 | if [ 0"$mz" != 0n ]; then
114 | pkgin -y install mozilla-rootcerts-openssl
115 | fi
116 | fi
117 |
118 | # Install sets only if running a RELEASE
119 | # uname -r displays only X.Y
120 | # For non-release versions, it displays something like 10.0_BETA
121 | if uname -r | grep -E '^[0-9]+\.[0-9]+$'; then
122 | for base_set in comp games man modules text xbase xetc xcomp xfont xserver; do
123 | if [ ! -e /etc/mtree/set.$base_set ]; then
124 | printf "Installing $set...\n"
125 | auto-install-base-components $base_set
126 | else
127 | printf "$base_set already installed.\n"
128 | fi
129 | done
130 | else
131 | cat << EOM
132 |
133 | Skipping installation of base sets. If you don't have all you need,
134 | you'll have to reinstall the OS.
135 |
136 | EOM
137 | fi
138 |
139 | if [ ! -e /usr/pkgsrc ]; then
140 | printf "Installing pkgsrc tree...\n"
141 | cd /usr
142 | ftp ftp://ftp.netbsd.org/pub/pkgsrc/stable/pkgsrc.tar.xz
143 | tar -zxvf pkgsrc.tar.xz
144 | fi
145 |
146 | if [ ! -e /usr/pkgsrc/wip ]; then
147 | printf "Install pkgsrc-wip? y/[n] "
148 | read wip
149 | if [ 0"$wip" = 0y ]; then
150 | cd /usr/pkgsrc
151 | auto-pkgsrc-wip-checkout
152 | fi
153 | fi
154 |
155 | cat << EOM
156 |
157 | 1.. CTWM (NetBSD default)
158 | 2.. Gnome
159 | 3.. KDE
160 | 4.. LXDE
161 | 5.. LXQT
162 | 6.. MATE
163 | 7.. XFCE
164 | 8.. Custom
165 |
166 | EOM
167 | printf "Selection? "
168 | read de_num
169 |
170 | XDM_CONF=/etc/X11/xdm/xdm-config
171 | XSESSION=/etc/X11/xdm/Xsession
172 |
173 | de='unknown'
174 | case $de_num in
175 | 1)
176 | # Install separately so user sees error messages
177 | if [ -e $XSESSION.ctwm ]; then
178 | mv -f $XSESSION.ctwm $XSESSION
179 | fi
180 | for pkg in evince xscreensaver; do
181 | pkgin -y install $pkg
182 | done
183 | rm $HOME/.xinitrc
184 | ;;
185 |
186 | 2)
187 | # Install separately so user sees error messages
188 | for pkg in evince gnome; do
189 | pkgin -y install $pkg
190 | done
191 | create_xsession gnome-session
192 | ;;
193 |
194 | 3)
195 | # Install separately so user sees error messages
196 | pkgin -y install kde
197 | create_xsession startkde
198 | ;;
199 |
200 | 4)
201 | # Install separately so user sees error messages
202 | # xscreensaver is used if present, but not a dep
203 | for pkg in evince xscreensaver lxde; do
204 | pkgin -y install $pkg
205 | done
206 | create_xsession startlxde
207 | ;;
208 |
209 | 5)
210 | # Install separately so user sees error messages
211 | for pkg in evince lxqt; do
212 | pkgin -y install $pkg
213 | done
214 | create_xsession startlxqt
215 | ;;
216 |
217 | 6)
218 | # Install separately so user sees error messages
219 | for pkg in evince mate; do
220 | pkgin -y install $pkg
221 | done
222 | create_xsession mate-session
223 | ;;
224 |
225 | 7)
226 | # Install separately so user sees error messages
227 | for pkg in evince xfce4; do
228 | pkgin -y install $pkg
229 | done
230 | create_xsession xfce4-session
231 | ;;
232 |
233 | 8)
234 | printf "Package name? (Use pkgin search to verify) "
235 | read package
236 | printf "Session command? (See category/$package/PLIST) "
237 | read session_cmd
238 |
239 | for pkg in xscreensaver $package; do
240 | pkgin -y install $pkg
241 | done
242 | create_xsession $session_cmd
243 | ;;
244 |
245 | *)
246 | printf "Invalid selection.\n"
247 | exit 1
248 | ;;
249 |
250 | esac
251 |
252 | ##########################################################################
253 | # From guide
254 | ##########################################################################
255 |
256 | cp /usr/pkg/share/examples/rc.d/dbus /etc/rc.d
257 | # A dbus child process is started by LXQT, but it is not sufficient
258 | # to enable shutdown/reboot buttons on exit. We apparently need a dbus
259 | # service running as root.
260 | auto-enable-service dbus $0
261 |
262 | # Enhanced XDM with background and restart/shutdown/restart-x11 buttons
263 | auto-replace-file /usr/pkg/share/desktop-installer/XDM/Xsetup_0 /etc/X11/xdm/Xsetup_0
264 | auto-replace-file /usr/pkg/share/desktop-installer/XDM/GiveConsole /etc/X11/xdm/GiveConsole
265 |
266 | cat << EOM
267 |
268 | Enabling XDM will cause the screen to switch to graphics mode.
269 |
270 | If you are running desktop-installer on the primary text console,
271 | you can return to the text console by typing Ctrl+Alt+F1 on most
272 | systems (or Meta-key + F1 under VirtualBox).
273 |
274 | EOM
275 | # Offer to enable xdm if not already running
276 | if ! pgrep bin/xdm; then
277 | printf "Enable XDM graphical login? [y]/n "
278 | read xdm
279 | if [ 0"$xdm" != 0n ]; then
280 | auto-enable-service xdm $0
281 | fi
282 | fi
283 |
284 | # Enable devpubd-based external media mounting
285 | # FIXME: Tolerate failure for now, since qmediamagager is
286 | # difficult to install until a binary package exists
287 | auto-automount-setup || true
288 |
289 | for app in firefox thunderbird keepassxc; do
290 | if ! auto-package-installed $app; then
291 | printf "Install $app? y/[n] "
292 | read install
293 | if [ 0"$install" = 0y ]; then
294 | apps="$apps ${app}"
295 | fi
296 | fi
297 | done
298 | if [ ! -z "$apps" ]; then
299 | pkgin -y install $apps
300 | fi
301 |
302 | printf "Run auto-admin now to add users, etc? [y]/n "
303 | read admin
304 | if [ 0"$admin" != 0n ]; then
305 | auto-admin
306 | fi
307 |
--------------------------------------------------------------------------------
/NetBSD/desktop-installer.man:
--------------------------------------------------------------------------------
1 | .TH desktop-installer 1
2 | .SH NAME \" Section header
3 | .PP
4 | desktop-installer \- Quickly configure a NetBSD desktop system
5 |
6 | \" Convention:
7 | \" Underline anything that is typed verbatim - commands, etc.
8 |
9 | .SH SYNOPSIS
10 | .PP
11 | .nf
12 | .na
13 | desktop-installer
14 | .ad
15 | .fi
16 |
17 | .SH "DESCRIPTION"
18 |
19 | The NetBSD desktop configuration process requires installing many
20 | packages and configuring many different subsystems, which can be a
21 | daunting task for all but the most seasoned users.
22 |
23 | The
24 | .B desktop-installer
25 | script automates the process of configuring a NetBSD machine as a desktop
26 | system running any desktop environment or simple window manager in the
27 | pkgsrc tree. Several of the most popular desktops are
28 | explicitly supported and any other can be configured using the "Custom"
29 | option.
30 |
31 | To use "Custom", you need only know the category/packagename of the desktop you
32 | want, and the command for starting the desktop from xinit or xsession,
33 | e.g. xfce4-session for the XFCE desktop. This command can be found
34 | in category/packagename/pkg-plist. The only other advantage to explicitly
35 | supported desktops is automatic installation of a few common utilities.
36 | You can easily install the utilities
37 | you want using "pkgin install" or "auto-admin" after a Custom desktop install.
38 |
39 | .B Desktop-installer
40 | is a post-install script, i.e. one that you run AFTER doing a standard
41 | operating system and booting the new installation for the first time.
42 | ( See details below. )
43 |
44 | .B Desktop-installer
45 | installs all the software necessary for the chosen desktop
46 | as well as common desktop-independent packages such as CUPS, Firefox,
47 | LibreOffice.org, etc.
48 |
49 | It also configures system services and settings to facilitate
50 | convenient use of CD/DVD drives, USB ports, etc.
51 |
52 | .SH "MOTIVATION"
53 |
54 | This script is meant to provide a middle-ground between totally manual
55 | configuration and complete distributions such as GhostBSD or Ubuntu Linux.
56 |
57 | The post-install script approach has some advantages over complete
58 | distributions. The post-install script itself is far easier to maintain and
59 | unlike separate distributions, the resulting desktop system is a
60 | nearly pristine NetBSD system with minimal differences from the default
61 | install. The system can therefore be maintained and upgraded using
62 | traditional NetBSD command-line tools (pkgin install, adduser, NetBSD-update,
63 | etc.), or stock tools of the chosen desktop suite.
64 |
65 | For easy management of common system settings, try the auto-admin menu.
66 |
67 | Desktop-installer supports all CPU architectures that run NetBSD and all
68 | supported NetBSD versions, whereas distributions are generally limited to
69 | one version on AMD64.
70 |
71 | .SH "BASIC USE"
72 |
73 | To use
74 | .B desktop-installer:
75 |
76 | 1. Install a basic NetBSD system.
77 |
78 | The recommended install options are a basic user system including:
79 |
80 | .nf
81 | .na
82 | All binaries
83 | Docs in your preferred language(s)
84 | Source code
85 | .ad
86 | .fi
87 |
88 | It is best to use
89 | .B desktop-installer
90 | on a pristine NetBSD installation.
91 |
92 | .B Desktop-installer
93 | can also be used to upgrade all the software on an existing system, but there
94 | are too many possibilities for failure to support here since it is impossible
95 | to predict what kinds of system hacks it might encounter. Also, it's generally
96 | a good idea to back up your data, wipe your disk clean, and reinstall
97 | everything every few years, since data on magnetic disks can fall victim
98 | to "bit rot" (magnetic polarity fades over time)
99 | and read errors will eventually occur.
100 |
101 | .B Desktop-installer
102 | can install software from source or from binary packages (pkgin install).
103 | Binary packages install much faster (seconds per package, vs minutes or
104 | hours per package built from source). However, installing from source
105 | allows you
106 | to install on systems for which binary packages are not maintained.
107 |
108 | If you enjoy a simple life, install a -RELEASE or -STABLE version rather
109 | than -CURRENT. If you would like to help the project move forward by
110 | testing the latest changes, run -CURRENT.
111 |
112 | If you do not choose to install software from source,
113 | .B desktop-installer
114 | installs most packages over the network using "pkgin install", but falling
115 | back on build-from-source where necessary. (e.g. some software cannot
116 | be distributed as a binary package for licensing reasons.)
117 |
118 | 2. Install desktop-installer:
119 |
120 | pkgin install desktop-installer
121 |
122 | or (if you have a pkgsrc tree installed)
123 |
124 | cd /usr/pkgsrc/sysutils/desktop-installer
125 | make install
126 |
127 | or if you want the latest development version of desktop-installer, install
128 | from the latest NetBSD-pkgsrc-wip:
129 |
130 | pkgin install auto-admin
131 | auto-pkgsrc-wip-checkout
132 | wip-reinstall-pkg auto-admin
133 | wip-reinstall-pkg desktop-installer
134 |
135 | 3. Run desktop-installer:
136 |
137 | rehash # If using tcsh and just installed desktop-installer
138 | desktop-installer
139 |
140 | .SH "SEE ALSO"
141 | auto-admin
142 |
143 | .SH AUTHOR
144 | .nf
145 | .na
146 | J. Bacon
147 | Acadix Consulting, LLC
148 |
149 |
--------------------------------------------------------------------------------
/NetBSD/getting-started.md:
--------------------------------------------------------------------------------
1 |
2 | # Getting started on NetBSD
3 |
4 | ## To-dos for improving the NetBSD desktop experience
5 |
6 | - More regular binary package builds for both stable (quarterly) and current
7 | - Improvements to desktop-environment packages (LXQT, Mate, etc.)
8 | - Improvements to auto-media-format (sysutils/auto-admin)
9 | - Used by qmediamanager
10 | - Upgrade key packages such as fusefs-*
11 | - newfs requires manual use of disklabel first
12 | - Interactive fdisk seems to be the only way to create an MBR.
13 | FreeBSD's gpart does this quickly and easily:
14 | gpart create -s MBR da0
15 | - Add more configuration options to desktop-installer
16 | - Binary updates for the NetBSD base system
17 |
18 | ## System requirements
19 |
20 | - 1 GiB RAM minimum
21 | - More if building large packages like gcc, clang
22 | - More if running Gnome or KDE
23 | - Minimum 30 GB disk
24 | - If running under VirtualBox:
25 | - Download the NetBSD installer ISO image from
26 | [https://netbsd.org](https://netbsd.org).
27 | - Set pointing device to USB tablet.
28 | - 2 or more cores.
29 | - The paravirtualized network device may offer the best performance.
30 | - Boot order: Hard Disk first, then Optical (This will cause the
31 | VM to boot from the
32 | ISO image before install and the hard disk after.)
33 | - Load the ISO image into the virtual optical drive under Storage.
34 |
35 | ## NetBSD Current/Beta Installation
36 |
37 | Only NetBSD systems with binary packages are supported.
38 |
39 | Note: For non-release versions of NetBSD (e.g. 10.0-BETA),
40 | base components cannot be added after installation,
41 | so all the base sets you need must be selected during OS
42 | installation. You can choose "Full install" or choose "Custom installation"
43 | and select at least the following sets to ensure that desktop-installer will
44 | work:
45 |
46 | Compiler tools
47 | X11 sets (all)
48 |
49 | Otherwise, the installation process is the same as for NetBSD releases.
50 |
51 | ### Configuration
52 |
53 | Network (hostname only for hostname, domain is asked for after)
54 |
55 | Timezone
56 |
57 | Root shell
58 |
59 | If not using binary packages from smartos.org:
60 |
61 | Enable installation of binary packages
62 | Fetch and update binary pkgsrc
63 |
64 | Enable ntpd and ntpdate on real hardware only, not on virtual machines
65 |
66 | Other options are unimportant to desktop-installer
67 |
68 | ## Installing smartos.org pkgsrc packages
69 |
70 | Packages for the latest pkgsrc tree on select NetBSD versions
71 | are available at
72 | [https://pkgsrc.smartos.org/install-on-netbsd/](https://pkgsrc.smartos.org/install-on-netbsd/).
73 |
74 | To use these packages, download and run the install script from smartos.org.
75 | This entirely replaces /usr/pkg with a new pkgsrc installation.
76 |
77 | ```
78 | ftp https://raw.githubusercontent.com/outpaddling/desktop-installer/master/NetBSD/smartos-install.sh
79 | sh smartos-install.sh
80 | ```
81 |
82 | Note that this script is an augmented copy of the script from smartos.org
83 | and it may become outdated. Please report any issues on this Github site.
84 |
85 | Then follow the post-installation instructions below as you would for
86 | any other NetBSD installation. The main difference is you'll be using
87 | the latest "current" packages instead of "stable"
88 | (from quarterly pkgsrc snapshots).
89 |
90 | ## Post-installation
91 |
92 | Do the following as the root user:
93 |
94 | ```
95 | pkgin upgrade
96 | pkgin -y install desktop-installer
97 | desktop-installer
98 |
99 | # Follow the instructions on the screen to set up your desktop system.
100 | # If you do not understand a particular question asked by desktop-installer,
101 | # accepting the default response should be fine in most cases.
102 | ```
103 |
104 |
--------------------------------------------------------------------------------
/NetBSD/smartos-install.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh -e
2 |
3 | #
4 | # Copy and paste the lines below to install the NetBSD/amd64 set.
5 | #
6 | BOOTSTRAP_TAR="bootstrap-netbsd-trunk-x86_64-20230918.tar.gz"
7 | BOOTSTRAP_SHA="493161aa5dd4c91c99e77187fa9fc3498fd2560b"
8 |
9 | # Download the bootstrap kit to the current directory.
10 | ftp https://pkgsrc.smartos.org/packages/NetBSD/bootstrap/${BOOTSTRAP_TAR}
11 |
12 | # Verify the SHA1 checksum.
13 | echo "${BOOTSTRAP_SHA} ${BOOTSTRAP_TAR}" | sha1 -c
14 |
15 | # Verify PGP signature. This step is optional, and requires gpg.
16 | #ftp https://pkgsrc.smartos.org/packages/NetBSD/bootstrap/${BOOTSTRAP_TAR}.asc
17 | #ftp -Vo - https://pkgsrc.smartos.org/pgp/C72658C9.asc | gpg2 --import
18 | #gpg2 --verify ${BOOTSTRAP_TAR}.asc ${BOOTSTRAP_TAR}
19 |
20 | #
21 | # Remove any existing packages. Note also that the bootstrap kit will
22 | # install its own copies of the security/mozilla-rootcerts certificates
23 | # into the /etc/openssl/certs/ directory.
24 | #
25 | rm -rf /usr/pkg /var/db/pkg /var/db/pkgin
26 |
27 | # Install bootstrap kit to /usr/pkg
28 | tar -zxpf ${BOOTSTRAP_TAR} -C /
29 |
30 | cd /usr
31 | if [ -e pkgsrc ]; then
32 | printf "/usr/pkgsrc already exits. Replace? y/[n] "
33 | read install_pkgsrc
34 | else
35 | install_pkgsrc=y
36 | fi
37 | if [ 0"$install_pkgsrc" = 0y ]; then
38 | mv pkgsrc orig.pkgsrc
39 | ftp ftp://ftp.NetBSD.org/pub/pkgsrc/current/pkgsrc.tar.gz
40 | tar -zxvf pkgsrc.tar.gz -C /usr
41 | fi
42 | cd pkgsrc
43 | cvs -q up -dP || true
44 |
45 | sed -i'' -e 's|VERIFIED_INSTALLATION=always|VERIFIED_INSTALLATION=trusted|' \
46 | /usr/pkg/etc/pkg_install.conf
47 |
48 |
--------------------------------------------------------------------------------
/NetBSD/todo:
--------------------------------------------------------------------------------
1 |
2 | More on-screen instructions
3 |
4 | Password quality
5 |
6 | Suspend/resume
7 |
8 | Add NetBSD cases to auto-admin menu functions
9 |
10 | Additional wireless drivers?
11 |
12 | DRM?
13 |
14 | Software cursor?
15 |
16 | CUPS
17 |
18 | X11 forwarding
19 |
20 | Adapt to NetBSD development version and smartos.org binary packages
21 |
22 | webcam?
23 |
24 | Java/icedtea?
25 |
26 |
--------------------------------------------------------------------------------
/OpenBSD/XenoDM/GiveConsole:
--------------------------------------------------------------------------------
1 | #!/bin/ksh
2 |
3 | # Set Prefix for commands used
4 | prefix="/usr/X11R6"
5 | exec_prefix="${prefix}"
6 | prefix="/usr/X11R6"
7 | exec_prefix="${prefix}"
8 |
9 | pkill wish8.6
10 |
11 | GROUP=`id -g $USER`
12 |
13 | # Pass Ownership to the user
14 | chown $USER:$GROUP /dev/console
15 | if [ -c /dev/dri/card0 ]; then
16 | chown $USER:$GROUP /dev/dri/card0
17 | fi
18 | if [ -c /dev/dri/renderD128 ]; then
19 | chown $USER:$GROUP /dev/dri/renderD128
20 | fi
21 | # Register Session to the user
22 | ${exec_prefix}/bin/sessreg -a -l $DISPLAY -u none $USER
23 |
--------------------------------------------------------------------------------
/OpenBSD/XenoDM/Xsetup_0:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # $Xorg: Xsetup_0,v 1.3 2000/08/17 19:54:17 cpqbld Exp $
3 |
4 | # put me in /etc/X11/xenodm
5 |
6 | # Use OpenBSD logo as background instead default steelblue
7 | # /usr/local/bin/xsetroot -solid steelblue
8 | /usr/local/bin/feh --bg-fill /usr/local/share/pixmaps/openbsd-background.jpg
9 |
10 | # Add shutdown, reboot, restart X11 buttons
11 | # xwininfo sees multiple monitors as one big screen
12 | # Use xrandr to separate them. Assuming monitors are side-by-side,
13 | # so xwininfo is fine for height.
14 | # width=`xwininfo -root | awk '$1 == "Width:" { print $2 }'`
15 |
16 | # Uncomment these to debug
17 | # xwininfo -root > /root/xwininfo
18 | # xrandr --screen 0 > /root/xrandr
19 |
20 | height=`xwininfo -root | awk '$1 == "Height:" { print $2 }'`
21 |
22 | # First component of field containing ####x###+#+#
23 | width=`xrandr --screen 0 | grep -E '[0-9]+x[0-9]+\+[0-9]+\+[0-9]+' | awk -F x '{ print $1 }' | awk '{ print $NF }'`
24 |
25 | printf "width = $width height = $height\n" > /root/dims
26 |
27 | # Primary display could be on left or right. 3rd value in xrandr output
28 | # is the offset of the left edge of a monitor, e.g.
29 | # VGA-1 connected primary 1280x1024+1925+0
30 | left_edge=`xrandr --screen 0 | grep primary | awk '{ print $4 }' \
31 | | awk -F [x\+] '{ print $3 }'`
32 |
33 | x=$(( $left_edge + ($width - 150) / 2 ))
34 | y=$(( ($height - 10) / 2 + 120 ))
35 | /usr/local/sbin/xenodmshutdown -geometry +$x+$y &
36 | echo $! > /var/run/xenodmshutdown.pid
37 |
--------------------------------------------------------------------------------
/OpenBSD/XenoDM/openbsd-background.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/outpaddling/desktop-installer/05d1d01fc32b361d975168394ff46444a60decc7/OpenBSD/XenoDM/openbsd-background.jpg
--------------------------------------------------------------------------------
/OpenBSD/XenoDM/xenodmshutdown:
--------------------------------------------------------------------------------
1 | #!/usr/local/bin/wish8.6
2 |
3 | # NT 20 October 2002 - adapted/copied from various similar
4 | # scripts dragged kicking and screaming from the bowels of the web:)
5 | # NT 27 January 2003 - added a reboot button
6 | #
7 |
8 | proc shutdownf {} { exec /sbin/shutdown -p now 2>/dev/console >/dev/console }
9 |
10 | proc rebootf {} { exec /sbin/shutdown -r now 2>/dev/console >/dev/console }
11 |
12 | proc restartx {} { exec /usr/sbin/rcctl restart xenodm 2>/dev/console >/dev/console }
13 |
14 | button .shutdown -text "Shutdown" -background gray -activebackground #664444 -width 15 -command shutdownf
15 |
16 | button .reboot -text "Reboot" -background gray -activebackground #446644 -width 15 -command rebootf
17 |
18 | button .restartx -text "Restart X11" -background gray -activebackground #444466 -width 15 -command restartx
19 |
20 | pack .reboot -side top
21 | pack .shutdown -side top
22 | pack .restartx -side top
23 |
24 |
--------------------------------------------------------------------------------
/OpenBSD/desktop-installer:
--------------------------------------------------------------------------------
1 | #!/bin/sh -e
2 |
3 | ##########################################################################
4 | # Description:
5 | # OpenBSD desktop-installer
6 | #
7 | # History:
8 | # Date Name Modification
9 | # 2024-06-25 izzy Meyer Begin Work on OpenBSD Support
10 | # 2024-10-21 izzy Meyer Add auto-admin functionality
11 | ##########################################################################
12 |
13 | usage()
14 | {
15 | printf "Usage: $0\n"
16 | exit 1
17 | }
18 |
19 |
20 | ##########################################################################
21 | # Function description:
22 | # Create a global Xsession file
23 | # Arguments:
24 | #
25 | # Returns:
26 | #
27 | # History:
28 | # Date Name Modification
29 | # 2024-06-25 izzy Meyer Remove COOKIE stuff from NetBSD
30 | ##########################################################################
31 |
32 | create_xsession()
33 | {
34 | if [ $# != 1 ]; then
35 | printf "Usage: create_xsession session-command\n"
36 | exit 1
37 | fi
38 | session_cmd=$1
39 |
40 | cat << EOM > $XSESSION
41 | #!/bin/sh
42 |
43 | exec $session_cmd
44 | EOM
45 | }
46 |
47 |
48 | ##########################################################################
49 | # Main
50 | ##########################################################################
51 |
52 | if [ $# != 0 ]; then
53 | usage
54 | fi
55 |
56 | cat << EOM
57 |
58 | It is best to have all installed packages up-to-date before installing
59 | more packages, in case not every dependency version is checked
60 | correctly.
61 |
62 | If you have updated recently using pkg_add -u, then you can skip
63 | this step now.
64 |
65 | EOM
66 | printf "Update installed packages? [y]/n "
67 | read update
68 | if [ 0"$update" != 0n ]; then
69 | pkg_add -u
70 | fi
71 |
72 | # Should have been installed as a dep, but just in case
73 | pkg_add dbus avahi git gmake xz feh tk--%8.6 consolekit2
74 |
75 | cat << EOM
76 |
77 | 1.. FVWM (OpenBSD default)
78 | 2.. CWM (OpenBSD alternate)
79 | 3.. LXQT
80 | 4.. MATE
81 | 5.. XFCE
82 | 6.. Custom
83 |
84 | EOM
85 | printf "Selection? "
86 | read de_num
87 |
88 | XSESSION=/etc/X11/xenodm/Xsession
89 |
90 | de='unknown'
91 | case $de_num in
92 | 1)
93 | pkg_add xscreensaver
94 | create_xsession fvwm
95 | ;;
96 |
97 | 2)
98 | pkg_add xscreensaver
99 | create_xsession cwm
100 | ;;
101 |
102 | 3)
103 | # Install separately so user sees error messages
104 | for pkg in evince--light lxqt lxqt-extras; do
105 | pkg_add $pkg
106 | done
107 | create_xsession startlxqt
108 | ;;
109 |
110 | 4)
111 | # Install separately so user sees error messages
112 | for pkg in evince--light mate mate-extras; do
113 | pkg_add $pkg
114 | done
115 | create_xsession "ck-launch-session mate-session"
116 | ;;
117 |
118 | 5)
119 | # Install separately so user sees error messages
120 | for pkg in evince--light xfce xfce-extras; do
121 | pkg_add $pkg
122 | done
123 | create_xsession xfce4-session
124 | ;;
125 |
126 | 6)
127 | printf "Package name? (Use pkg_info -Q to verify) "
128 | read package
129 | printf "Session command? (Use pkg_info -M & the pkg-readme at /usr/local/share/doc/pkg-readmes to verify) "
130 | read session_cmd
131 |
132 | for pkg in xscreensaver $package; do
133 | pkg_add $pkg
134 | done
135 | create_xsession $session_cmd
136 | ;;
137 |
138 | *)
139 | printf "Invalid selection.\n"
140 | exit 1
141 | ;;
142 |
143 | esac
144 |
145 | ##########################################################################
146 | # From Guide
147 | ##########################################################################
148 |
149 | # Enable multicast (cannot be done with auto-enable-service as this is an option, not a service)
150 | rcctl enable multicast
151 | # Enable dbus rc service
152 | auto-enable-service messagebus $0
153 | # Enable avahi (needed for network mounts, trash://, and computer://)
154 | auto-enable-service avahi_daemon $0
155 | # Order them in the right order as avahi_daemon needs dbus running to work
156 | rcctl order messagebus avahi_daemon
157 |
158 |
159 | printf "Enable apm power manager daemon? (useful on laptops) [y]/n "
160 | read apm
161 | if [ 0"apm" != 0n ]; then
162 | auto-enable-service apmd $0
163 | fi
164 |
165 | # Enhanced XDM with background and restart/shutdown/restart-x11 buttons
166 | auto-replace-file /usr/local/share/desktop-installer/XenoDM/Xsetup_0 /etc/X11/xenodm/Xsetup_0
167 | auto-replace-file /usr/local/share/desktop-installer/XenoDM/GiveConsole /etc/X11/xenodm/GiveConsole
168 |
169 | cat << EOM
170 |
171 | Enabling XenoDM will cause the screen to switch to graphics mode.
172 |
173 | If you are running desktop-installer on the primary text console,
174 | you can return to the text console by typing Ctrl+Alt+F1 on most
175 | systems (or Meta-key + F1 under VirtualBox).
176 |
177 | EOM
178 | # Offer to enable xenodm if not already running
179 | if ! pgrep bin/xenodm; then
180 | printf "Enable XenoDM graphical login? [y]/n "
181 | read xenodm
182 | if [ 0"$xenodm" != 0n ]; then
183 | auto-enable-service xenodm $0
184 | fi
185 | fi
186 |
187 | for app in firefox thunderbird keepassxc; do
188 | if ! auto-package-installed $app; then
189 | printf "Install $app? y/[n] "
190 | read install
191 | if [ 0"$install" = 0y ]; then
192 | apps="$apps ${app}"
193 | fi
194 | fi
195 | done
196 | if [ ! -z "$apps" ]; then
197 | pkg_add $apps
198 | fi
199 |
--------------------------------------------------------------------------------
/OpenBSD/desktop-installer.man:
--------------------------------------------------------------------------------
1 | .TH desktop-installer 1
2 | .SH NAME \" Section header
3 | .PP
4 | desktop-installer \- Quickly configure a OpenBSD desktop system
5 |
6 | \" Convention:
7 | \" Underline anything that is typed verbatim - commands, etc.
8 |
9 | .SH SYNOPSIS
10 | .PP
11 | .nf
12 | .na
13 | desktop-installer
14 | .ad
15 | .fi
16 |
17 | .SH "DESCRIPTION"
18 |
19 | The OpenBSD desktop configuration process requires installing many
20 | packages and configuring many different subsystems, which can be a
21 | daunting task for all but the most seasoned users.
22 |
23 | The
24 | .B desktop-installer
25 | script automates the process of configuring a OpenBSD machine as a desktop
26 | system running any desktop environment or simple window manager in the
27 | pkgsrc tree. Several of the most popular desktops are
28 | explicitly supported and any other can be configured using the "Custom"
29 | option.
30 |
31 | To use "Custom", you need only know the category/packagename of the desktop you
32 | want, and the command for starting the desktop from xinit or xsession,
33 | e.g. xfce4-session for the XFCE desktop. This command can be found
34 | in category/packagename/pkg-plist. The only other advantage to explicitly
35 | supported desktops is automatic installation of a few common utilities.
36 | You can easily install the utilities
37 | you want using "pkg_add" after a Custom desktop install.
38 |
39 | .B Desktop-installer
40 | is a post-install script, i.e. one that you run AFTER doing a standard
41 | operating system and booting the new installation for the first time.
42 | ( See details below. )
43 |
44 | .B Desktop-installer
45 | installs all the software necessary for the chosen desktop
46 | as well as common desktop-independent packages such as CUPS, Firefox,
47 | LibreOffice.org, etc.
48 |
49 | .SH "MOTIVATION"
50 |
51 | This script is meant to provide a middle-ground between totally manual
52 | configuration and complete distributions such as GhostBSD or Ubuntu Linux.
53 |
54 | The post-install script approach has some advantages over complete
55 | distributions. The post-install script itself is far easier to maintain and
56 | unlike separate distributions, the resulting desktop system is a
57 | nearly pristine OpenBSD system with minimal differences from the default
58 | install. The system can therefore be maintained and upgraded using
59 | traditional OpenBSD command-line tools (pkg_add, useradd, sysupgrade,
60 | etc.), or stock tools of the chosen desktop suite.
61 |
62 | .SH "BASIC USE"
63 |
64 | To use
65 | .B desktop-installer:
66 |
67 | 1. Install a basic OpenBSD system.
68 |
69 | The recommended install options are a basic user system including:
70 |
71 | .nf
72 | .na
73 | All binaries
74 | Docs in your preferred language(s)
75 | Source code
76 | .ad
77 | .fi
78 |
79 | It is best to use
80 | .B desktop-installer
81 | on a pristine OpenBSD installation.
82 |
83 | .B Desktop-installer
84 | can also be used to upgrade all the software on an existing system, but there
85 | are too many possibilities for failure to support here since it is impossible
86 | to predict what kinds of system hacks it might encounter. Also, it's generally
87 | a good idea to back up your data, wipe your disk clean, and reinstall
88 | everything every few years, since data on magnetic disks can fall victim
89 | to "bit rot" (magnetic polarity fades over time)
90 | and read errors will eventually occur.
91 |
92 | .B Desktop-installer
93 | can install software from source or from binary packages (pkgin install).
94 | Binary packages install much faster (seconds per package, vs minutes or
95 | hours per package built from source). However, installing from source
96 | allows you
97 | to install on systems for which binary packages are not maintained.
98 |
99 | If you enjoy a simple life, install a -RELEASE or -STABLE version rather
100 | than -CURRENT. If you would like to help the project move forward by
101 | testing the latest changes, run -CURRENT.
102 |
103 | If you do not choose to install software from source,
104 | .B desktop-installer
105 | installs most packages over the network using "pkg_add".
106 |
107 | 2. Install desktop-installer:
108 |
109 | pkg_add desktop-installer
110 |
111 | 3. Run desktop-installer:
112 |
113 | desktop-installer
114 |
115 | .SH AUTHOR
116 | .nf
117 | .na
118 | J. Bacon
119 | Acadix Consulting, LLC
--------------------------------------------------------------------------------
/OpenBSD/getting-started.md:
--------------------------------------------------------------------------------
1 | # Getting started on OpenBSD
2 |
3 | ## To-dos for improving the OpenBSD desktop experience
4 |
5 | - Improvements to desktop-environment packages (LXQT, Mate, etc.)
6 | - Inclusion of auto-media-format from the other BSDs (sysutils/auto-admin)
7 | - Qmediamanager
8 | - Openbsd-update-notify (port freebsd-update-notify)
9 | - Add more configuration options to desktop-installer
10 | - Binary updates / security patches for the OpenBSD base system
11 | - Optimization to `sysctl.conf` & other tweaks (maybe?)
12 |
13 | ## System requirements
14 |
15 | - 1 GiB RAM minimum
16 | - More if building large packages like gcc, clang
17 | - More if running Gnome or KDE
18 | - Minimum 30 GB disk space in /usr/local
19 | - If running under VirtualBox:
20 | - Download the OpenBSD installer ISO image from
21 | [https://openbsd.org](https://openbsd.org).
22 | - Set pointing device to USB tablet.
23 | - Caution: Some OpenBSD users have reported problems when using
24 | dynamically allocated disk images.
25 | - Caution: Some users have reported trouble with I/O APIC.
26 | If you encounter problems, try disabling it under System Settings.
27 | - 2 or more cores will improve performance, but this has been known
28 | to cause system freezes in some cases.
29 | - The paravirtualized network driver may offer the best performance.
30 | - Boot order: Hard Disk first, then Optical (This will cause the
31 | VM to boot from the ISO image before install and the hard disk after.)
32 | - Load the ISO image into the virtual optical drive under Storage.
33 |
34 | ## Post-installation
35 |
36 | When adding new users via adduser(8) or auto-adduser(8), note that
37 | placing them in the "staff" login class provides higher resource limits.
38 | See login.conf(5) for details. Note also that auto-adduser(8) provides
39 | more guidance on user account parameters than the native adduser(8) command,
40 | though both provide the opportunity to assign a login class.
41 |
42 | Do the following as the root user:
43 |
44 | ```
45 | pkg_add -u
46 | pkg_add desktop-installer
47 | desktop-installer
48 |
49 | # Follow the instructions on the screen to set up your desktop system.
50 | # If you do not understand a particular question asked by desktop-installer,
51 | # accepting the default response should be fine in most cases.
52 | ```
53 |
--------------------------------------------------------------------------------
/Plugins/Asus/desktop-installer-eeepc-1015pe:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 |
4 |
5 | ##########################################################################
6 | # Add a line to a system file if string is not already present.
7 | ##########################################################################
8 |
9 | add_line()
10 | {
11 | if [ $# != 3 ]; then
12 | printf "Usage: $0 search-string line file\n"
13 | exit 1
14 | fi
15 | string=$1
16 | line=$2
17 | file=$3
18 | if ! fgrep -q $string $file; then
19 | printf "# Added by desktop-installer\n" >> $file
20 | printf "$line\n" >> $file
21 | fi
22 | }
23 |
24 | hyperthreading()
25 | {
26 | cat << EOM
27 |
28 | Intel Hyperthreading can cause suspend/resume to fail, among other
29 | problems.
30 |
31 | EOM
32 | printf "Disable hyperthreading? (y/n) "
33 | read resp
34 | if [ 0$resp = 0'y' ]; then
35 | add_line machdep.hyperthreading 'machdep.hyperthreading_allowed="0"' /boot/loader.conf
36 | fi
37 | }
38 |
39 | cat << EOM
40 | As of October 2011, ACPI features on the ASUS EEEPC are still experimental.
41 | Are you sure you want to continue? (y/n)
42 | EOM
43 | read resp
44 | if [ 0$resp != 0y ]; then
45 | exit
46 | fi
47 |
48 | # Cut power drain in suspend mode
49 | # Value is 1 (least aggressive) to 3 (most aggressive)
50 | add_line acpi_video 'acpi_video_load="YES"' /boot/loader.conf
51 | add_line do_power_nodriver 'hw.pci.do_power_nodriver=1' /boot/loader.conf
52 | # Restore video on resume
53 | add_line reset_video 'hw.acpi.reset_video=1' /etc/sysctl.conf
54 | add_line sleep_button_state 'hw.acpi.sleep_button_state=S3' /etc/sysctl.conf
55 |
56 | # FIXME: Some of this is not related to power
57 | if fgrep -q '_ASUS_ Notebook' /var/run/dmesg.boot; then
58 | # acpi_asus is still in development as of Oct 2011 and does not
59 | # work properly on 9.0-BETA3
60 | add_line acpi_asus 'acpi_asus_load="YES"' /boot/loader.conf
61 | if ! fgrep -q 'hw.acpi.asus.lcd_brightness' /etc/rc.resume; then
62 | sed -i 'orig' -E 's|exit 0|# Added by desktop-installer \
63 | sysctl hw.acpi.asus.lcd_brightness=8 \
64 | \
65 | exit 0|g' /etc/rc.resume
66 | fi
67 | # Not sure if this is necessary
68 | # add_line hint.psm.0.flags 'hint.psm.0.flags="0x2000"' /boot/device.hints
69 | add_line hw.psm.synaptics_support 'hw.psm.synaptics_support=1' /boot/loader.conf
70 | hyperthreading
71 | else
72 | printf "This does not appear to be an ASUS laptop. Aborting...\n"
73 | exit 1
74 | fi
75 |
76 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | desktop-installer
2 | =================
3 |
4 | Desktop-installer is a post-install script for configuring a desktop
5 | environment on a stock FreeBSD, NetBSD, or OpenBSD system.
6 |
7 | It facilitates the setup of a complete desktop system much more quickly,
8 | reliably, and securely than manual software installations and configurations.
9 |
10 | The end result is a fully functional
11 | graphical environment comparable to GUI-based systems such as
12 | GhostBSD or Ubuntu Linux. However, unlike those systems, desktop-installer
13 | supports *any* desktop environment or window manager provided by the
14 | native package manager and *any* hardware
15 | supported by the operating system.
16 |
17 | To use desktop-installer:
18 |
19 | 1. Perform a minimal FreeBSD, NetBSD, or OpenBSD installation using the
20 | standard installer
21 | 2. Install the desktop-installer package:
22 |
23 | FreeBSD: pkg install desktop-installer
24 |
25 | NetBSD: pkgin install desktop-installer
26 |
27 | OpenBSD: Package currently under development
28 |
29 | 3. Run "desktop-installer"
30 | 4. Carefully follow the instructions on the screen
31 |
32 | For more information, see http://acadix.biz/desktop-installer.php.
33 |
--------------------------------------------------------------------------------
/Scripts/battery-shutdown.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | ##########################################################################
4 | # Description
5 | # Auto-shutdown on low battery.
6 | #
7 | # History
8 | # Date Who Change
9 | # Dec 2010 J Bacon Derived from script by DutchDaemon
10 | # Jul 2023 J Bacon Add zenity messages
11 | ##########################################################################
12 |
13 | # Important remaining run times
14 | critical_time=5
15 | warning_time=15
16 | low_time=30
17 | low_percent=40
18 | high_percent=80
19 |
20 | # Start high to detect first drop
21 | time=1000 # For previous_time if plugged in
22 |
23 | previous_data=/root/.battery_data
24 |
25 | if [ -e $previous_data ]; then
26 | previous_percent=$(awk '{ print $1 }' $previous_data)
27 | previous_time=$(awk '{ print $2 }' $previous_data)
28 | else
29 | previous_percent=101
30 | previous_time=1000
31 | fi
32 |
33 | time=$( /sbin/sysctl -n hw.acpi.battery.time )
34 | percent=$( /sbin/sysctl -n hw.acpi.battery.life )
35 |
36 | printf "Previous percent = $previous_percent\n"
37 | printf "Previous time = $previous_time\n"
38 | printf "Current percent = $percent\n"
39 | printf "Current time = $time\n"
40 |
41 | ac_power=$( /sbin/sysctl -n hw.acpi.acline )
42 | printf "ac_power = $ac_power\n"
43 |
44 | display_users=$(ps -aexwwj | grep "DISPLAY=$DISPLAY_ID" | awk '{ print $1 }' | sort -u)
45 |
46 | # Make sure root can access the local display
47 | # NetBSD laptop, quagga
48 | for user in $display_users; do
49 | # Don't try to su to users with nologin as shell
50 | # Not sure why they would have DISPLAY set, but a user reported this issue
51 | if ! awk -F : -v user=$user '$1 == user { print $7 }' /etc/passwd | fgrep nologin; then
52 | # echo Trying $user...
53 | su -l $user -c 'env DISPLAY=:0 xhost +local:root' > /dev/null || true
54 | fi
55 | done
56 |
57 | if [ $ac_power = 0 ]; then
58 | if [ $time -ge 0 ]; then
59 | if [ $time -le $critical_time ]; then
60 | printf "Battery down to $critical_time minutes $(date)\n"
61 |
62 | # Recheck for external power before shutting down
63 | ac_power=$( /sbin/sysctl -n hw.acpi.acline )
64 | if [ $ac_power = 0 ]; then
65 | /sbin/shutdown -p now
66 | fi
67 | elif [ $time -le $warning_time ]; then
68 | printf "Battery down to $warning_time minutes $(date)\n"
69 | for user in $display_users; do
70 | if su -l $user -c "zenity --display=:0 --warning --text='Battery run time is very low.\nThe computer will be shut down\nsoon to prevent battery damage.' &" > /dev/null; then
71 | break
72 | fi
73 | done
74 | # Only show this warning once, when crossing the boundary
75 | elif [ $previous_time -gt $low_time ] && \
76 | [ $time -le $low_time ]; then
77 | printf "Battery down to $low_time minutes $(date)\n"
78 | for user in $display_users; do
79 | if su -l $user -c "zenity --display=:0 --warning --text='Battery run time is getting low.\nConsider plugging in.' &" > /dev/null; then
80 | break
81 | fi
82 | done
83 | fi
84 | fi
85 |
86 | # Only show this warning once, when crossing the boundary
87 | if [ $previous_percent -gt $low_percent ] && \
88 | [ $percent -le $low_percent ]; then
89 | printf "Battery down to $low_percent% $(date)\n"
90 | for user in $display_users; do
91 | if su -l $user -c "zenity --display=:0 --warning --text='Battery has dropped to $low_percent% charge.\nKeeping the charge of a Lithium battery between\n$low_percent% and $high_percent% will extend its life.\nNow would be a good time to plug in.' &" > /dev/null; then
92 | break
93 | fi
94 | done
95 | fi
96 | else
97 | # Only show this warning once, when crossing the boundary
98 | if [ $previous_percent -lt $high_percent ] && \
99 | [ $percent -ge $high_percent ]; then
100 | printf "Battery up to $high_percent%% $(date)\n"
101 | for user in $display_users; do
102 | if su -l $user -c "zenity --display=:0 --warning --text='Battery has reached $high_percent% charge.\nKeeping the charge of a Lithium battery between\n$low_percent% and $high_percent% will extend its life.\nUnplugging now may help your battery last longer.' &" > /dev/null; then
103 | break
104 | fi
105 | done
106 | fi
107 | fi
108 | printf "Saving previous values to $previous_data...\n"
109 | printf "$percent $time\n" > $previous_data
110 |
--------------------------------------------------------------------------------
/WIP/40-virtualbox.conf:
--------------------------------------------------------------------------------
1 | Section "Monitor"
2 | Identifier "VirtualBox-Monitor"
3 | VendorName "VirtualBox"
4 | ModelName "VirtualBox"
5 | HorizSync 30.0 - 120.0
6 | VertRefresh 50.0 - 100.0
7 | EndSection
8 |
9 | # Not all modes work with vboxsvga
10 | Section "Screen"
11 | Identifier "VirtualBox"
12 | Device "VirtualBox graphics card"
13 | Monitor "VirtualBox-Monitor"
14 | DefaultDepth 24
15 | SubSection "Display"
16 | Depth 24
17 | Modes "1366x768" "1152x864" "1280x800" "1024x768"
18 | EndSubSection
19 | EndSection
20 |
--------------------------------------------------------------------------------
/WIP/desktop-menu:
--------------------------------------------------------------------------------
1 | #!/bin/sh -e
2 |
3 | exec 3>&1
4 | desktop=`dialog --menu "Select a Desktop Environment" 0 0 0 \
5 | NONE "No desktop environment. I will install my own later." \
6 | Gnome "Gnome 3 Desktop Environment" \
7 | KDE "K Desktop Environment (heavy)" \
8 | Lumina "Lumina lightweight desktop" \
9 | LXDE "Lightweight X11 Desktop Environment" \
10 | LXQT "Lightweight QT Desktop Environment" \
11 | MATE "Fork of Gnome 2" \
12 | 2>&1 1>&3`
13 |
14 | printf "Desktop = $desktop\n"
15 |
--------------------------------------------------------------------------------
/notes:
--------------------------------------------------------------------------------
1 |
2 | timecounter issue with VirtualBox guest
3 | kern.timecounter.hardware=i8254
4 | http://alastair.d-silva.org/time-running-slow-freebsd-x64-guest-under-virtualbox
5 |
6 | Uncomment application/octet-stream line in cups/mime.convs to allow printing from Mac
7 |
--------------------------------------------------------------------------------
/rock64.md:
--------------------------------------------------------------------------------
1 | # FreeBSD and ARM-based Single Board Computers
2 |
3 | Desktop-installer has preliminary support for ARM-based single board
4 | computers (SBCs), though much work remains to be done before they are viable
5 | for everyday use. As of June, 2021, the vast majority of FreeBSD ports
6 | are building successfully on aarch64, though a few key packages still need to
7 | be fixed to enable popular desktop environments and applications. We are
8 | also awaiting infrastructure improvements to speed up the package build cycle
9 | for aarch64.
10 |
11 | The $200 [PINEBOOK Pro](https://www.pine64.org/pinebook-pro/) looks very
12 | promising as a low-cost laptop capable of competing with x86-based PCs.
13 | The [ROCKPro 64](https://www.pine64.org/rockpro64) is an equivalent SBC that
14 | can be configured as a desktop system. Unfortunately, both are out of stock
15 | at present due to a global parts shortage.
16 |
17 | If you would like to experiment or contribute in the meantime, the
18 | [ROCK64](https://www.pine64.org/devices/single-board-computers/rock64/)
19 | is very inexpensive and powerful enough for many typical uses,
20 | with up to 4 GiB RAM and 4 1.5 GHz cores. It can boot from a microSD card
21 | and also accommodate an eMMC module via a bus connector on top of the board.
22 |
23 | FreeBSD provides two ways to install on ARM-based
24 | SBCs. If your SBC can boot from USB, you can load one of the USB images
25 | onto a USB stick and install from it as you would an x86-based PC. Some SBCs
26 | don't support this and others may require some configuration to enable
27 | USB boot.
28 |
29 | FreeBSD also provides pre-built images for popular SBCs such as Raspberry-Pi
30 | and ROCK64. These images can be loaded onto the bootable media supported by
31 | your SBC, typically a micro-SD card. You will need another computer with an
32 | SD slot and probably an appropriate adapter (e.g. SD to microSD), or a USB
33 | microSD card reader.
34 |
35 | ## Using a pre-built image to install on ROCK64
36 |
37 | Download pre-built image if available, e.g.
38 | FreeBSD-13.0-RELEASE-arm64-aarch64-ROCK64.img.xz
39 | from, e.g. http://ftp9.freebsd.org/pub/FreeBSD/releases/ISO-IMAGES/13.0/
40 |
41 | See https://wiki.freebsd.org/arm/RockChip for tips
42 |
43 | Uncompress:
44 |
45 | ```unxz FreeBSD-13.0-RELEASE-arm64-aarch64-ROCK64.img.xz```
46 |
47 | Copy the uncompressed image to the microSD card, e.g. using dd:
48 |
49 | 1. Insert microSD into slot or adapter
50 |
51 | 2. Find out what device name has been assigned to it, e.g. /dev/da0:
52 |
53 | ```dmesg```
54 |
55 | 3. Copy the uncompressed image to the device:
56 |
57 | ```dd if=FreeBSD-13.0-RELEASE-arm64-aarch64-ROCK64.img of=/dev/da0 bs=4096 status=progress```
58 |
59 | (bs = 4096 is just to speed things up over the default 512)
60 |
61 | 4. Insert microSD into ROCK64
62 |
63 | As of June, 2021, the ROCK64 HDMI port does not work with FreeBSD, so you
64 | cannot just connect a monitor and keyboard and be on your way. Support is
65 | in the works. HDMI and X11 apparently work on the ROCKPro64, but these
66 | devices are currently hard to find.
67 |
68 | There are 2 ways around this:
69 |
70 | 1. Connect a serial adapter to the GPIO
71 |
72 | This will require some wiring from the GPIO pins on the board to a
73 | serial cable or more likely, a serial-USB adapter. Most modern computers
74 | don't have serial ports, so you'll need a serial-USB adapter to connect
75 | from your computer to the SBC. Not all serial-USB adapters are supported
76 | by FreeBSD.
77 |
78 | See https://wiki.freebsd.org/arm/RockChip for recommendations.
79 |
80 | 2. Boot headless with an Ethernet connection and ssh in
81 |
82 | 1. Connect the ROCK64 to your network with an Ethernet cable
83 | 2. Power on
84 | 3. Wait a minute or so for boot to complete
85 | 4. Most routers have an "attached devices" page on their web interface.
86 | At the time of this writing, the ROCK64 image reports its hostname as
87 | "generic". Find this in the attached devices list and note the IP
88 | address. If this has changed, you can always unplug the Ethernet cable
89 | and refresh the web page. Whatever host disappear is your ROCK64.
90 | 5. From another machine, run "ssh freebsd@ip-address"
91 | 6. Enter "yes" if asked to verify the new ssh destination
92 | 7. Enter "freebsd" as the password.
93 | 8. Run "passwd" to change the default password.
94 | 9. Run "su" and enter "root" as the password.
95 | 10. Run "passwd" to change the default password for root.
96 |
97 | ## Configure swap space
98 |
99 | The FreeBSD pre-built image has no swap space configured, so your processes
100 | will be limited to physical RAM by default. Given that the ROCK64 has at
101 | most 4 GiB RAM, this could prove very limiting.
102 |
103 | If you only have a microSD card, swapping will be extremely slow. MST-Bench
104 | on my ROCK64 microSD showed average write throughput of about 6 MB/s and
105 | read throughput of 24 MB/s. A modern mechanical disk will provide over
106 | 100 MB/s both read and write, while a eMMC or SSD will typically provide
107 | at least 200 MB/s write and 500 MB/s read, possibly much more.
108 |
109 | Swap on a microSD might suffice for interactive processes that sleep most of
110 | the time, such as a word
111 | processor, but anything computationally intensive will suffer extreme
112 | slow-downs if it has to swap to a microSD.
113 |
114 | An eMMC module is very fast, on the other hand, and adding a swap file on
115 | the eMMC device can extend your memory space with reasonable performance
116 | for most tasks.
117 |
--------------------------------------------------------------------------------
/todo:
--------------------------------------------------------------------------------
1 |
2 | Use asmc and ataidle to park heads when laptop is moved
3 |
4 | Portable, desktop-independent battery monitor
5 | Run minimized, show % and time remaining
6 | Popup warnings for low battery
7 | Auto-shutdown for very low battery
8 | Probably a Qt app, see qmediamanager for a model
9 |
10 | Add auto-update-system cron config
11 |
12 | https://forums.freebsd.org/threads/macbook-pro-5-1-realtek-alc889a-sound-setup.56061/
13 |
14 | Maybe enable speakers and headphone auto-switch?
15 |
16 | dev.hdaa.0.gpio_config="0=set 1=set"
17 | hw.snd.default_unit=1
18 | hint.hdaa.0.nid20.config="as=4 seq=15"
19 |
20 | Make sure /etc/hosts has a fqdn matching the hostname
21 |
22 | 127.0.0.1 localhost.localhost.domain hostname.domain hostname
23 | same for ::1
24 |
25 | List additional video drivers to install
26 | Server motherboards often have obsolete chipsets
27 |
28 | Explain need for wireless drivers
29 |
30 | Install anacron?
31 | one suggestion from vans9@yandex.ru
32 |
33 | I've meant those periodic tasks that are already in /etc/crontab - daily,
34 | weekly, monthly. They seem to run almost never at desktops, that work on
35 | daily basis and are switched off at evening. But. the other side of
36 | enabling the the periodic through anacron is that roots mail will be
37 | spammed with the periodic reports. To avoid this, there shoud be line
38 | in periodic.conf making periodic to write it's repots to file, and
39 | syslod-ng rotating this files and maybe other things should be done.....
40 | So it's an overtask for the desktop-installer possibly.
41 |
42 | Linimon:
43 |
44 | There are several structural problems:
45 |
46 | 2) the assumption that any port/pkg install failure is fatal.
47 | 3) the lack of correctly determining whether a pkg is available
48 | to install.
49 |
50 | ------------------------------------------------------------------
51 |
52 | 3) is illustrated by the following:
53 |
54 | if fgrep -q FOR_ARCHS $PORTSDIR/$pkg/Makefile
55 |
56 | Nope and nope. Completely bogus test. If you *are* going to
57 | query port Makefiles the only robust thing is something like:
58 |
59 | (cd $PORTSDIR/$pkg/Makefile && make ARCH=$arch -V IGNORE)
60 |
61 | For only thing, I already shortened ONLY_FOR_ARCHS to FOR_ARCHS.
62 | But that is still not correct.
63 |
64 | ------------------------------------------------------------------
65 |
66 | But that's the correct way for _ports_.
67 |
68 | For _packages_, which IMVVHO we should in all cases set as default
69 | for users of this script, every possible port install:
70 |
71 | if ! auto-package-installed $pkg && [ -d $PORTSDIR/$pkg ]; then
72 |
73 | should be immediately followed by something like:
74 |
75 | rdescr=$(pkg rquery %e $pkg 2> /dev/null || true)
76 | if [ -z "${rdescr}" ]; then
77 | printf "Unfortunately, recommended package $pkg is not available for your system.\n"
78 | else
79 |
80 | I can generate a patch for the ones in common_packages(). But it
81 | might be better as a refactoring of install_packages.
82 |
83 | I will wait to try that hacking until you say one way or the other.
84 |
85 | ------------------------------------------------------------------
86 |
87 |
--------------------------------------------------------------------------------