#!/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin export ASSUME_ALWAYS_YES=yes export FORCE_PKG_REGISTER=1 ### Functions checkArch () { ARCH=`sysctl -n hw.machine_arch` case $ARCH in 'amd64') ;; 'i386') ;; *) echo "$ARCH is not supported." exit 1 ;; esac } checkVersion () { VERSION=`freebsd-version -k | awk '{print substr($0, 0, 2)}'` } checkRoot () { if [ "$(id -u)" != "0" ]; then echo "This script must be run as root" 1>&2 exit 1 fi } checkVirtual () { SYSTEM=`kenv -q smbios.system.product` case $SYSTEM in 'VirtualBox') VBOXGUEST=1 ;; 'VMware Virtual Platform') VMWAREGUEST=1 ;; *) ;; esac } echoMessage () { dialog --msgbox "$1" 6 76 } addConf () { EXSIST=`egrep -c "^$1" $3` if [ $EXSIST -ne 0 ] then sed -i "" -e "s/^$1/#$1/" $3 fi echo $1"=\"$2\"" >> $3 unset EXSIST } addComment () { echo "\n#"$1 >> $2 } addFstab () { EXSIST=`egrep -c "^$1" /etc/fstab` if [ $EXSIST -eq 0 ] then echo "$2" >> /etc/fstab fi unset EXSIST } portsUpdate () { if [ ! -f /var/db/portsnap/INDEX ] then portsnap --interactive fetch extract > /dev/null 2>&1 & else portsnap --interactive fetch update > /dev/null 2>&1 & fi } selectDesktop () { DESKTOP=`dialog --stdout --no-tags --nocancel --checklist \ "Select desktop environment. " 20 76 11 \ mate MATE on \ xfce Xfce off \ kde KDE off \ gnome GNOME3 off \ lxde LXDE off \ cinnamon Cinnamon off \ lumina Lumina off \ fluxbox Fluxbox off \ awesome awesome off \ openbox openbox off \ windowmaker "Window Maker" off \ ` } packageDesktop () { PACKAGE_DESKTOP='' for i in $DESKTOP; do case $i in 'mate') PACKAGE_DESKTOP="$PACKAGE_DESKTOP\ mate " ;; 'kde') PACKAGE_DESKTOP="$PACKAGE_DESKTOP\ kde ja-kde-l10n \ gtk-qt-engine \ gtk-oxygen-engine \ gtk3-oxygen-engine " KDE=1 ;; 'gnome') PACKAGE_DESKTOP="$PACKAGE_DESKTOP\ gnome3 " GNOME=1 ;; 'xfce') PACKAGE_DESKTOP="$PACKAGE_DESKTOP\ xfce " ;; 'lxde') PACKAGE_DESKTOP="$PACKAGE_DESKTOP\ lxde-meta " ;; 'lumina') PACKAGE_DESKTOP="$PACKAGE_DESKTOP\ lumina " ;; 'fluxbox') PACKAGE_DESKTOP="$PACKAGE_DESKTOP\ fluxbox " ;; 'windowmaker') PACKAGE_DESKTOP="$PACKAGE_DESKTOP\ windowmaker " ;; 'awesome') PACKAGE_DESKTOP="$PACKAGE_DESKTOP\ awesome " ;; 'i3') PACKAGE_DESKTOP="$PACKAGE_DESKTOP\ i3 i3status i3lock " ;; 'openbox') PACKAGE_DESKTOP="$PACKAGE_DESKTOP\ openbox " ;; 'cinnamon') PACKAGE_DESKTOP="$PACKAGE_DESKTOP\ cinnamon mate " ;; 'enlightenment') PACKAGE_DESKTOP="$PACKAGE_DESKTOP\ enlightenment " ;; esac done unset i } selectIm () { IM=`dialog --stdout --no-tags --nocancel --radiolist \ "Select input method. " 20 76 3 \ ibus ibus on \ fcitx fcitx off \ uim uim off ` case $IM in 'ibus') IM_ENGINE=`dialog --stdout --no-tags --nocancel --radiolist \ "Select IM engine. " 20 76 3 \ mozc-jp mozc on \ anthy anthy off \ skk skk off ` PACKAGE_IM="dconf " case $IM_ENGINE in 'mozc-jp') PACKAGE_IM=$PACKAGE_IM"ja-ibus-mozc " ;; 'anthy') PACKAGE_IM=$PACKAGE_IM"ja-ibus-anthy " ;; 'skk') PACKAGE_IM=$PACKAGE_IM"ja-ibus-skk " ;; esac ;; 'fcitx') IM_ENGINE=`dialog --stdout --no-tags --nocancel --radiolist \ "Select IM engine. " 20 76 3 \ mozc-jp mozc on \ anthy anthy off \ skk skk off ` PACKAGE_IM="zh-fcitx-configtool " case $IM_ENGINE in 'mozc-jp') PACKAGE_IM=$PACKAGE_IM"ja-fcitx-mozc " if [ "$GNOME" != "" ] then PACKAGE_IM=$PACKAGE_IM"ja-ibus-mozc " fi ;; 'anthy') PACKAGE_IM=$PACKAGE_IM"ja-fcitx-anthy " if [ "$GNOME" != "" ] then PACKAGE_IM=$PACKAGE_IM"ja-ibus-anthy " fi ;; 'skk') PACKAGE_IM=$PACKAGE_IM"ja-fcitx-skk " if [ "$GNOME" != "" ] then PACKAGE_IM=$PACKAGE_IM"ja-ibus-skk " fi ;; esac ;; 'uim') IM_ENGINE=`dialog --stdout --no-tags --nocancel --radiolist \ "Select IM engine. " 20 76 2 \ mozc-jp mozc on \ anthy anthy off \ ` PACKAGE_IM="uim-gtk uim-gtk3 uim-qt4 " case $IM_ENGINE in 'mozc-jp') PACKAGE_IM=$PACKAGE_IM"ja-uim-mozc " if [ "$GNOME" != "" ] then PACKAGE_IM=$PACKAGE_IM"ja-ibus-mozc " fi ;; 'anthy') PACKAGE_IM=$PACKAGE_IM"ja-uim-anthy " if [ "$GNOME" != "" ] then PACKAGE_IM=$PACKAGE_IM"ja-ibus-anthy " fi ;; esac ;; esac } settingIm () { KEYMAP_JP=`egrep -c "^keymap=\"jp(.*)?\"" /etc/rc.conf` if [ $KEYMAP_JP -eq 0 ] then # US配列ユーザー向け設定 echo "setxkbmap us" >> /usr/local/etc/X11/xinit/xinitrc case $IM in 'ibus') case $IM_ENGINE in 'mozc-jp') sed -i "" -e \ "s@.*@ja@" \ /usr/local/share/ibus/component/mozc.xml sed -i "" -e \ "s@.*@99@" \ /usr/local/share/ibus/component/mozc.xml sed -i "" -e \ "s@.*@us@" \ /usr/local/share/ibus/component/mozc.xml ;; 'anthy') sed -i "" -e \ "s@.*@us@" \ /usr/local/share/ibus/component/anthy.xml ;; 'skk') sed -i "" -e \ "s@.*@us@" \ /usr/local/share/ibus/component/skk.xml ;; esac ;; *) ;; esac else # JIS配列ユーザー向け設定 echo "setxkbmap jp" >> /usr/local/etc/X11/xinit/xinitrc case $IM in 'ibus') case $IM_ENGINE in 'mozc-jp') sed -i "" -e \ "s@.*@ja@" \ /usr/local/share/ibus/component/mozc.xml sed -i "" -e \ "s@.*@99@" \ /usr/local/share/ibus/component/mozc.xml sed -i "" -e \ "s@.*@jp@" \ /usr/local/share/ibus/component/mozc.xml ;; *) ;; esac ;; *) ;; esac fi unset $KEYMAP_JP case $IM in 'ibus') cat >> /usr/local/etc/X11/xinit/xinitrc << EOF export XMODIFIERS=@im=ibus export GTK_IM_MODULE=ibus export QT_IM_MODULE=ibus export XIM=ibus export XIM_PROGRAM="ibus-daemon" export XIM_ARGS="-r -d -x" if [ ! -f \$HOME/.ibus_firsttime ] then dconf write /desktop/ibus/general/engines-order "['$IM_ENGINE', 'xkb:jp::jpn']" dconf write /desktop/ibus/general/preload-engines "['$IM_ENGINE', 'xkb:jp::jpn']" dconf write /desktop/ibus/panel/show-icon-on-systray true dconf write /desktop/ibus/panel/show 1 touch \$HOME/.ibus_firsttime fi case \$1 in 'wmaker') \$XIM_PROGRAM \$XIM_ARGS ;; 'awesome') \$XIM_PROGRAM \$XIM_ARGS ;; 'fluxbox') \$XIM_PROGRAM \$XIM_ARGS ;; *) ;; esac EOF ;; 'fcitx') cat >> /usr/local/etc/X11/xinit/xinitrc << EOF export XMODIFIERS=@im=fcitx export GTK_IM_MODULE="fcitx" export QT_IM_MODULE="fcitx" export XIM=fcitx export XIM_PROGRAM="fcitx" export XIM_ARGS="-r -d" \$XIM_PROGRAM \$XIM_ARGS EOF ;; 'uim') cat >> /usr/local/etc/X11/xinit/xinitrc << EOF export XMODIFIERS=@im=uim export GTK_IM_MODULE="uim" export QT_IM_MODULE="uim" export XIM=uim export XIM_PROGRAM="uim-xim" export XIM_ARGS="&" \$XIM_PROGRAM \$XIM_ARGS & EOF ;; esac } selectExtra () { EXTRA=`dialog --stdout --no-tags --nocancel --checklist \ "Select extra packages. " 20 76 54 \ flash "Adobe Flash Player" off \ firefox "Firefox (Web browser)" off \ chromium "Chrome (Web browser)" off \ thunderbird "Thunderbird (Mail client)" off \ sylpheed "Sylpheed (Mail client)" off \ libreoffice "LibreOffice (Office suite)" off \ lyx "LyX (Document Processor)" off \ filezilla "Filezilla (FTP and SFTP client)" off \ xchat "XChat (IRC client)" off \ transmission "Transmission (BitTorrent client)" off \ qbittorrent "qBittorrent (BitTorrent client)" off \ vlc "VLC (Media player)" off \ smplayer "SMPlayer (Media player)" off \ audacious "Audacious (Audio player)" off \ gimp "GIMP (Image Manipulation)" off \ rawtherapee "RawTherapee (RAW image processing)" off \ darktable "Darktable (Photo workflow software)" off \ shotwell "Shotwell (Photo manager)" off \ blender "Blender (3D graphics and animation software)" off \ Imagemagick "Imagemagick (Image manipulation software)" off \ Inkscape "Inkscape (vector graphics editor)" off \ mypaint "MyPaint (painting/scribbling program)" off \ scribus "Scribus (Comprehensive desktop publishing program)" off \ synfigstudio "Synfig Studio (Vector-based 2D animation software)" off \ fontforge "FontForge (Font editor)" off \ agave "Agave (Color scheme builder)" off \ xsane "SANE (Scanner API tool)" off \ openshot "OpenShot Video Editor (Non-linear video editor)" off \ pitivi "Pitivi (Non-linear video editor)" off \ kdenlive "Kdenlive (Non-linear video editor)" off \ dvdstyler "DVDStyler (DVD recoding and authoring programs)" off \ subtitleeditor "Subtitle Editor (Subtitle editor)" off \ AudioProduction "Audio Production Softwares (Meta package)" off \ xfburn "XfBurn (CD/DVD Burning)" off \ k3b "K3B (CD/DVD Burning)" off \ brasero "Brasero (CD/DVD Burning)" off \ epdfview "epdfview (PDF viewer)" off \ py27-mcomix "MComix (Comic viewer)" off \ calibre "calibre (E-book viewer)" off \ geany "Geany (Develop environment)" off \ vim "Vim (Develop environment)" off \ emacs24 "Emacs (Develop environment)" off \ eclipse "Eclipse (Develop environment)" off \ meld "Meld (Visual diff and merge tool)" off \ openjdk8 "OpenJDK 8 (Java development kit)" off \ virtualbox "VirtualBox (Virtual machine)" off \ wine "Wine (Windows compatibility environment)" off \ playonbsd "PlayOnBSD (Wine application install and launch helper)" off \ android-tools-adb "ADB (Android debug bridge)" off \ clamav "ClamAV (Antivirus)" off \ tor "TOR (Anonymizing overlay network for TCP)" off \ wifimgr "Wifimgr (WiFi Networks Manager)" off \ zsh "ZSH (Shell)" off \ minecraft-client "Minecraft (Game)" off \ ` } packageExtra () { PACKAGE_EXTRA='' PORTS_EXTRA='' for i in $EXTRA; do case $i in 'flash') PACKAGE_EXTRA="$PACKAGE_EXTRA\ nspluginwrapper \ gmake \ python \ perl5 \ pcre \ libiconv \ glib \ gettext " PORTS_EXTRA="$PORTS_EXTRA\ www/linux-c6-flashplugin11 " ;; 'libreoffice') PACKAGE_EXTRA="$PACKAGE_EXTRA\ libreoffice ja-libreoffice " ;; 'firefox') PACKAGE_EXTRA="$PACKAGE_EXTRA\ firefox firefox-i18n " PACKAGE_FIREFOX=1 ;; 'thunderbird') PACKAGE_EXTRA="$PACKAGE_EXTRA\ thunderbird thunderbird-i18n " PACKAGE_THUNDERBIRD=1 ;; 'wine') if [ $ARCH == "amd64" ] then PACKAGE_EXTRA="$PACKAGE_EXTRA\ i386-wine-devel " else PACKAGE_EXTRA="$PACKAGE_EXTRA\ wine-devel " fi ;; 'vlc') if [ $KDE != "" ] then PACKAGE_EXTRA="$PACKAGE_EXTRA\ vlc-qt4 " else PACKAGE_EXTRA="$PACKAGE_EXTRA\ vlc " fi ;; 'virtualbox') if [ $VERSION == 10 ] then PACKAGE_EXTRA="$PACKAGE_EXTRA\ virtualbox-ose \ virtualbox-ose-kmod " PACKAGE_VBOX=1 else echoMessage "$i package not found on FreeBSD $VERSION" fi ;; 'tor') PACKAGE_EXTRA="$PACKAGE_EXTRA\ tor " PACKAGE_TOR=1 ;; 'clamav') PACKAGE_EXTRA="$PACKAGE_EXTRA\ clamav \ clamtk " PACKAGE_CLAMAV=1 ;; 'eclipse') PACKAGE_EXTRA="$PACKAGE_EXTRA\ eclipse " PACKAGE_ECLIPSE=1 ;; 'audacious') PACKAGE_EXTRA="$PACKAGE_EXTRA\ audacious \ audacious-skins \ audacious-plugins " ;; 'AudioProduction') PACKAGE_EXTRA="$PACKAGE_EXTRA\ audacity \ ardour \ hydrogen \ lmms \ musescore \ sooperlooper \ idjc \ rsynth qsynth whysynth \ xsynth-dssi fluidsynth-dssi \ spiralsynth spiralsynthmodular \ qjackctl \ jackit \ jack-keyboard \ jack-rack \ jack-smf-utils \ jack_ghero \ jack_mixer \ jack_umidi " PACKAGE_AUDIO_PRODUCTION=1 ;; 'playonbsd') PACKAGE_EXTRA="$PACKAGE_EXTRA\ playonbsd \ cabextract \ ImageMagick \ wget \ icoutils " PACKAGE_PLAYONBSD=1 ;; *) PACKAGE_EXTRA=$PACKAGE_EXTRA"$i ";; esac done unset i if [ "$VBOXGUEST" != "" ] then PACKAGE_EXTRA="$PACKAGE_EXTRA\ virtualbox-ose-additions " fi if [ "$VMWAREGUEST" != "" ] then PACKAGE_EXTRA="$PACKAGE_EXTRA\ open-vm-tools \ xf86-video-vmware " fi } selectPackages () { # デスクトップ環境 while [ "$DESKTOP" == "" ] do selectDesktop if [ "$DESKTOP" == "" ] then echoMessage "Please select least one." fi done packageDesktop # 日本語入力 while [ "$PACKAGE_IM" == "" ] do selectIm if [ "$PACKAGE_IM" == "" ] then echoMessage "Please select least one." fi done # 追加パッケージ selectExtra packageExtra } confirm () { CONFIRM_MESSAGE="[Desktop environment]\n $DESKTOP\n \n [Input method]\n $IM $IM_ENGINE\n \n [Extra packages]\n $EXTRA " CONFIRM=1 dialog --defaultno --yesno \ "Please confirm. \ \n\n$CONFIRM_MESSAGE" 20 76 if [ $? -ne 0 ] then unset CONFIRM unset DESKTOP unset PACKAGE_IM unset EXTRA unset PACKAGE_EXTRA fi } install () { kldload linux sed -i "" -e 's@url: "pkg+http://pkg.FreeBSD.org/\${ABI}/.*"@url: "pkg+http://pkg.FreeBSD.org/\${ABI}/latest"@' \ /etc/pkg/FreeBSD.conf pkg install -y xorg-minimal \ xorg-drivers \ xrandr \ hal dbus \ setxkbmap \ xterm gksu octopkg \ zip p7zip rar lha \ ja-font-migu \ ja-font-ipamjm \ urwfonts-ttf \ droid-fonts-ttf \ liberation-fonts-ttf \ slim slim-themes \ uhidd volman \ swapexd webcamd \ fusefs-ext4fuse \ fusefs-ntfs \ e2fsprogs ntfsprogs \ cuse4bsd-kmod \ panicmail \ cups avahi \ gmake ffmpegthumbnailer \ linux_base-c6 \ $PACKAGE_DESKTOP \ $PACKAGE_IM \ $PACKAGE_EXTRA if [ $? -ne 0 ] then echoMessage "Pakage install failed." exit 1 fi if [ "$PORTS_EXTRA" != "" ] then while [ `ps|grep -v grep|grep -c "/bin/sh /usr/sbin/portsnap"` -ne 0 ] do echo -n "waiting for portsnap... " sleep 1 done for i in $PORTS_EXTRA do make BATCH=yes -C /usr/ports/$i install clean if [ $? -ne 0 ] then echoMessage "Ports install failed." exit 1 fi done unset i fi } setup (){ addFstab proc "proc /proc procfs rw 0 0" addFstab linprocfs "linprocfs /compat/linux/proc linprocfs rw 0 0" addFstab linsysfs "linprocfs /compat/linux/sys linsysfs rw 0 0" addFstab fdesc "fdesc /dev/fd fdescfs rw 0 0" mkdir /tmpfs > /dev/null 2>&1 echo "tmpfs /tmpfs tmpfs rw,mode=01777 0 0" >> /etc/fstab sed -i "" -e "s/^#sessiondir/sessiondir/" /usr/local/etc/slim.conf sed -i "" -e "s/^login_cmd/#login_cmd/" /usr/local/etc/slim.conf echo "login_cmd exec /bin/sh - /usr/local/etc/X11/xinit/xinitrc %session" \ >> /usr/local/etc/slim.conf sed -i "" -e "s/^current_theme/#current_theme/" /usr/local/etc/slim.conf echo "current_theme fbsd" \ >> /usr/local/etc/slim.conf sed -i "" -e "s/^session_msg/#session_msg/" /usr/local/etc/slim.conf echo "session_msg [F1]Session:" \ >> /usr/local/etc/slim.conf addConf legal.intel_iwi.license_ack 1 /boot/loader.conf addConf legal.intel_ipw.license_ack 1 /boot/loader.conf addConf legal.realtek.license_ack 1 /boot/loader.conf addConf kern.ipc.shmseg 1024 /boot/loader.conf addConf kern.ipc.shmmni 1024 /boot/loader.conf addConf kern.maxproc 10000 /boot/loader.conf addConf kern.cam.scsi_delay 500 /boot/loader.conf addConf kern.hz 100 /boot/loader.conf addConf hint.acpi_throttle.0.disabled 1 /boot/loader.conf addConf machdep.disable_mtrrs 1 /boot/loader.conf addConf hw.memtest.tests 0 /boot/loader.conf addConf hw.pci.do_power_nodriver 3 /boot/loader.conf addConf net.graph.maxdata 65536 /boot/loader.conf addConf drm_load "YES" /boot/loader.conf addConf drm2_load "YES" /boot/loader.conf addConf iicbus_load "YES" /boot/loader.conf addConf ums_load "YES" /boot/loader.conf addConf aesni_load "YES" /boot/loader.conf addConf linux_load "YES" /boot/loader.conf kldload drm drm2 iicbus ums aesni > /dev/null 2>&1 addConf kern.coredump 0 /etc/sysctl.conf sysctl kern.coredump=0 addConf kern.maxfiles 49312 /etc/sysctl.conf sysctl kern.maxfiles=49312 addConf kern.sched.preempt_thresh 224 /etc/sysctl.conf sysctl kern.sched.preempt_thresh=224 addConf kern.shutdown.poweroff_delay 500 /etc/sysctl.conf sysctl kern.shutdown.poweroff_delay=500 SHMMAX=`sysctl -n hw.physmem` addConf kern.ipc.shmmax $SHMMAX /etc/sysctl.conf sysctl kern.ipc.shmmax=$SHMMAX SHMALL=`expr $SHMMAX / 4096` addConf kern.ipc.shmall $SHMALL /etc/sysctl.conf sysctl kern.ipc.shmall=$SHMALL addConf kern.ipc.shm_allow_removed 1 /etc/sysctl.conf sysctl kern.ipc.shm_allow_removed=1 addConf vfs.usermount 1 /etc/sysctl.conf sysctl vfs.usermount=1 addConf hw.usb.no_shutdown_wait 1 /etc/sysctl.conf sysctl hw.usb.no_shutdown_wait=1 addConf hw.syscons.bell 0 /etc/sysctl.conf sysctl hw.syscons.bell=0 addConf kld_list "libiconv libmchain msdosfs_iconv cuse4bsd sem fdescfs \ linsysfs ext2fs acpi_video fuse" /etc/rc.conf addConf kldxref_enable "YES" /etc/rc.conf addConf kldxref_clobber "YES" /etc/rc.conf addConf linux_enable "YES" /etc/rc.conf addConf clear_tmp_enable "YES" /etc/rc.conf addConf clean_tmp_X "YES" /etc/rc.conf addConf fsck_y_enable "YES" /etc/rc.conf addConf dumpdev "AUTO" /etc/rc.conf addConf panicmail_enable "YES" /etc/rc.conf addConf panicmail_autosubmit "YES" /etc/rc.conf addConf autofs_enable "YES" /etc/rc.conf addConf swapexd_enable "YES" /etc/rc.conf addConf powerd_enable "YES" /etc/rc.conf addConf powerd_flags "-a hiadaptive -b adaptive" /etc/rc.conf addConf performance_cx_lowest "Cmax" /etc/rc.conf addConf economy_cx_lowest "Cmax" /etc/rc.conf addConf moused_enable "YES" /etc/rc.conf addConf uhidd_enable "YES" /etc/rc.conf addConf volmand_enable "YES" /etc/rc.conf addConf webcamd_enable "YES" /etc/rc.conf addConf cupsd_enable "YES" /etc/rc.conf addConf avahi_daemon_enable "YES" /etc/rc.conf addConf devd_enable "YES" /etc/rc.conf addConf devfs_enable "YES" /etc/rc.conf addConf devfs_system_ruleset "devfsrules_common" /etc/rc.conf addConf hald_enable "YES" /etc/rc.conf addConf dbus_enable "YES" /etc/rc.conf addConf slim_enable "YES" /etc/rc.conf if [ "$PACKAGE_FIREFOX" != "" ] then cat > /usr/local/lib/firefox/defaults/pref/local-settings.js << EOF pref("general.config.obscure_value", 0); pref("general.config.filename", "localize.js"); EOF cat > /usr/local/lib/firefox/localize.js << EOF pref("extensions.bootstrappedAddons", "{"langpack-ja@firefox.mozilla.org":{"type":"locale","descriptor":"/usr/local/lib/firefox/browser/extensions/langpack-ja@firefox.mozilla.org","multiprocessCompatible":false}}"); pref("extensions.autoDisableScopes", 0); pref("general.useragent.locale", "ja-JP"); pref("font.language.group", "ja"); pref("intl.accept_languages", "ja-JP, ja, en-US, en"); pref("font.name.monospace.ja", "Migu 1M"); pref("font.name.sans-serif.ja", "Migu 1C"); pref("font.name.serif.ja", "IPAmjMincho"); pref("startup.homepage_welcome_url", ""); pref("startup.homepage_welcome_url.additional", ""); EOF fi if [ "$PACKAGE_THUNDERBIRD" != "" ] then cat > /usr/local/lib/thunderbird/defaults/pref/local-settings.js << EOF pref("general.config.obscure_value", 0); pref("general.config.filename", "localize.js"); EOF cat > /usr/local/lib/thunderbird/localize.js << EOF pref("extensions.bootstrappedAddons", "{"langpack-ja@thunderbird.mozilla.org":{"type":"locale","descriptor":"/usr/local/lib/thunderbird/extensions/langpack-ja@thunderbird.mozilla.org","multiprocessCompatible":false}}"); pref("extensions.autoDisableScopes", 0); pref("general.useragent.locale", "ja-JP"); pref("font.language.group", "ja"); pref("intl.accept_languages", "ja-JP, ja, en-US, en"); pref("font.name.monospace.ja", "Migu 1M"); pref("font.name.sans-serif.ja", "Migu 1C"); pref("font.name.serif.ja", "IPAmjMincho"); pref("startup.homepage_welcome_url", ""); pref("startup.homepage_welcome_url.additional", ""); EOF fi if [ "$PACKAGE_VBOX" != "" ] then addConf vboxnet_enable "YES" /etc/rc.conf addConf vboxwatchdog_enable "YES" /etc/rc.conf addConf vboxwatchdog_user "root" /etc/rc.conf chmod +x /usr/local/lib/virtualbox/VirtualBox fi if [ "$VBOXGUEST" != "" ] then addConf vboxguest_enable "YES" /etc/rc.conf addConf vboxservice_enable "YES" /etc/rc.conf fi if [ "$VMWAREGUEST" != "" ] then addConf vmware_guest_vmblock_enable "YES" /etc/rc.conf addConf vmware_guest_vmhgfs_enable "YES" /etc/rc.conf addConf vmware_guest_vmmemctl_enable "YES" /etc/rc.conf addConf vmware_guest_vmxnet_enable "YES" /etc/rc.conf addConf vmware_guestd_enable "YES" /etc/rc.conf fi if [ "$PACKAGE_TOR" != "" ] then addConf tor_enable "YES" /etc/rc.conf addConf net.inet.ip.random_id "1" /boot/loader.conf sysctl net.inet.ip.random_id=1 rm -r /var/db/tor /var/run/tor > /dev/null 2>&1 mkdir -p /var/db/tor/data /var/run/tor touch /var/log/tor chown -R _tor:_tor /var/db/tor /var/log/tor /var/run/tor chmod -R 700 /var/db/tor fi if [ "$PACKAGE_CLAMAV" != "" ] then sed -i "" -e "s/^User/#User/" /usr/local/etc/clamd.conf echo "User root" \ >> /usr/local/etc/clamd.conf #addConf clamav_clamd_enable "YES" /etc/rc.conf addConf clamav_freshclam_enable "YES" /etc/rc.conf /usr/local/bin/freshclam fi if [ "$PACKAGE_ECLIPSE" != "" ] then fetch http://www.eclipse.org/ecd/img/eclipse256.png -o /usr/local/share/eclipse cd /tmp fetch http://svn.sourceforge.jp/svnroot/mergedoc/trunk/Pleiades/build/pleiades.zip tar xvzf pleiades.zip cp -a plugins/* /usr/local/lib/eclipse/plugins/ cp -a features/* /usr/local/lib/eclipse/features/ sed -i "" -e "s@^-Xms.*m@-Xms1024m@" \ /usr/local/lib/eclipse/eclipse.ini 1>&2 sed -i "" -e "s@^-Xmx.*m@-Xmx1024m@" \ /usr/local/lib/eclipse/eclipse.ini 1>&2 cd - cat > /usr/local/share/applications/eclipse.desktop << EOF [Desktop Entry] Encoding=UTF-8 Version=1.0 Name=Eclipse Comment=Eclipse Development Environment Exec=eclipse -vmargs -Xverify:none -javaagent:/usr/local/lib/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar -Xms1024m -Xmx1024m %F Terminal=false Type=Application Icon=/usr/local/share/eclipse/eclipse256.png Categories=Development; MimeType=text/plain;text/x-chdr;text/x-csrc;text/x-c++hdr;text/x-c++src;text/x-java;text/x-dsrc;text/x-pascal;text/x-perl;text/x-python;application/x-php;application/x-httpd-php3;application/x-httpd-php4;application/x-httpd-php5;application/xml;text/html;text/css;text/x-sql;text/x-diff; EOF cat > /usr/local/share/applications/eclipse-clean.desktop << EOF [Desktop Entry] Encoding=UTF-8 Version=1.0 Name=Eclipse (clean) Comment=Eclipse Development Environment Exec=eclipse -clean Terminal=false Type=Application Icon=/usr/local/share/eclipse/eclipse256.png Categories=Development; MimeType=text/plain;text/x-chdr;text/x-csrc;text/x-c++hdr;text/x-c++src;text/x-java;text/x-dsrc;text/x-pascal;text/x-perl;text/x-python;application/x-php;application/x-httpd-php3;application/x-httpd-php4;application/x-httpd-php5;application/xml;text/html;text/css;text/x-sql;text/x-diff; EOF fi sed -i "" -e "s/^Categories.*/Categories=Settings;/" \ /usr/local/share/applications/flash-player-properties.desktop 2>&1 sed -i "" -e "s/^Categories.*/Categories=Network;/" \ /usr/local/share/applications/bssh.desktop 2>&1 sed -i "" -e "s/^Categories.*/Categories=Network;/" \ /usr/local/share/applications/bvnc.desktop 2>&1 sed -i "" -e "s/^Categories.*/Categories=AudioVideo;Audio;/" \ /usr/local/share/applications/jack-rack.desktop 2>&1 sed -i "" -e "s/^Categories.*/Categories=AudioVideo;Audio;/" \ /usr/local/share/applications/jack_mixer.desktop 2>&1 sed -i "" -e "s/^Categories.*/Categories=AudioVideo;Audio;/" \ /usr/local/share/applications/hydrogen.desktop 2>&1 sed -i "" -e "s/^Categories.*/Categories=AudioVideo;Audio;/" \ /usr/local/share/applications/lmms.desktop 2>&1 sed -i "" -e "s/^Categories.*/Categories=AudioVideo;Audio;/" \ /usr/local/share/applications/mscore.desktop 2>&1 sed -i "" -e "s/^Categories.*/Categories=AudioVideo;Audio;/" \ /usr/local/share/applications/qjackctl.desktop 2>&1 sed -i "" -e "s/^Categories.*/Categories=AudioVideo;Audio;/" \ /usr/local/share/applications/qsynth.desktop 2>&1 sed -i "" -e "s/^Categories.*/Categories=Utility;/" \ /usr/local/share/applications/gucharmap.desktop 2>&1 sed -i "" -e "s@^Icon=.*@Icon=/usr/local/share/hydrogen/data/img/gray/icon.svg@" \ /usr/local/share/applications/hydrogen.desktop 2>&1 echo "Name[ja]=OctoPkg パッケージマネージャー" \ >> /usr/local/share/applications/octopkg.desktop echo "GenericName[ja]=パッケージマネージャー" \ >> /usr/local/share/applications/octopkg.desktop echo "Comment[ja]=パッケージの追加と削除" \ >> /usr/local/share/applications/octopkg.desktop if [ "$PACKAGE_AUDIO_PRODUCTION" != "" ] then cat > /usr/local/share/applications/ardour.desktop << EOF [Desktop Entry] Encoding=UTF-8 Version=1.0 Name=Ardour Digital Audio Workstation Comment=Record, mix and master multi-track audio Exec=ardour2 %U Terminal=false Type=Application Icon=/usr/local/share/ardour2/icons/ardour_icon_48px.png Categories=AudioVideo;Audio; MimeType=application/x-ardour; EOF fi if [ "$PACKAGE_PLAYONBSD" != "" ] then cat > /usr/local/share/applications/playonbsd.desktop << EOF [Desktop Entry] Version=1.0 Encoding=UTF-8 Name=PlayOnBSD Comment=PlayOnBSD Type=Application Exec=playonbsd Icon=/usr/local/lib/playonbsd/etc/playonlinux.png Categories=Game; EOF fi echo "/media -media -nosuid" >> /etc/auto_master mv /etc/X11/xorg.conf /etc/X11/xorg.conf.`date +%s` > /dev/null 2>&1 echo "link /tmpfs shm" >> /etc/devfs.conf mv /etc/devfs.rules /etc/devfs.rules.`date +%s` > /dev/null 2>&1 cat >> /etc/devfs.rules << EOF [devfsrules_common=7] add path 'devstat' mode 444 add path 'ad[0-9]*' mode 666 add path 'da[0-9]*' mode 666 add path 'acd[0-9]*' mode 666 add path 'cd[0-9]*' mode 666 add path 'cuaU[0-9]*' mode 666 add path 'cuad[0-9]*' mode 666 add path 'bpf[0-9]*' mode 666 add path 'bpf' mode 666 add path 'fuse' mode 666 add path 'mmcsd[0-9]*' mode 666 add path 'pass[0-9]*' mode 666 add path 'xpt[0-9]*' mode 666 add path 'ugen[0-9]*' mode 666 add path 'usbctl' mode 666 add path 'usb/*' mode 666 add path 'lpt[0-9]*' mode 666 add path 'ulpt[0-9]*' mode 666 add path 'unlpt[0-9]*' mode 666 add path 'fd[0-9]*' mode 666 add path 'uscan[0-9]*' mode 666 add path 'video[0-9]*' mode 666 add path 'ukbd[0-9]*' mode 666 add path 'dvb/*' mode 666 add path 'vmm/*' mode 66 add path 'msdosfs/*' mode 666 add path 'dri/*' mode 666 add path 'mdctl' mode 666 add path 'md[0-9]' mode 666 add path 'uhid[0-9]' mode 666 add path 'uvhid[0-9]' mode 666 add path 'vkbd[0-9]' mode 666 add path 'vkbdctl[0-9]' mode 666 EOF if [ ! -d /usr/local/share/xsessions ] then mkdir -p /usr/local/share/xsessions fi for i in $DESKTOP; do case $i in 'kde') cat > /usr/local/share/xsessions/kde.desktop << EOF [Desktop Entry] Version=1.0 Name=KDE Comment=Use this session to run KDE as your desktop environment Exec=startkde Icon= Type=Application EOF ;; 'fluxbox') cat > /usr/local/share/xsessions/fluxbox.desktop << EOF [Desktop Entry] Version=1.0 Name=fluxbox Comment=Use this session to run fluxbox as your desktop environment Exec=fluxbox Icon= Type=Application EOF ;; 'windowmaker') cat > /usr/local/share/xsessions/wmaker.desktop << EOF [Desktop Entry] Version=1.0 Name=Window Maker Comment=Use this session to run WindowMaker as your desktop environment Exec=wmaker Icon= Type=Application EOF ;; 'cinnamon') SOUND=`sysctl -n hw.snd.default_unit` cat >> /usr/local/etc/pulse/default.pa << EOF set-default-sink $SOUND set-default-source $SOUND EOF ;; *) ;; esac done unset i mv /usr/local/etc/X11/xinit/xinitrc \ /usr/local/etc/X11/xinit/xinitrc.`date +%s` 1>&2 cat >> /usr/local/etc/X11/xinit/xinitrc << EOF export LC_ALL=ja_JP.UTF-8 export LANGUAGE=ja_JP.UTF-8 export LANG=ja_JP.UTF-8 EOF /compat/linux/usr/bin/localedef -i ja_JP -f UTF-8 ja_JP.UTF-8 settingIm cat >> /usr/local/etc/X11/xinit/xinitrc << EOF if [ ! -f \$HOME/.nspluginwrapper_setup -a -f /usr/local/bin/nspluginwrapper ] then nspluginwrapper -a -i touch \$HOME/.nspluginwrapper_setup fi case \$1 in 'gnome-session') if [ ! -f \$HOME/.dconf_gnome_setup ] then #gsettings set org.gnome.settings-daemon.plugins.keyboard active false dconf write /org/gnome/desktop/interface/gtk-im-module "'ibus'" dconf write /org/gnome/desktop/input-sources/sources "[('ibus', '$IM_ENGINE')]" touch \$HOME/.dconf_gnome_setup fi ;; 'mate-session') if [ ! -f \$HOME/.dconf_mate_setup ] then dconf write /org/mate/marco/general/theme "'Menta'" dconf write /org/mate/desktop/interface/icon-theme "'matefaenza'" dconf write /org/mate/desktop/peripherals/mouse/cursor-theme "'mate'" dconf write /org/mate/notification-daemon/theme "'slider'" touch \$HOME/.dconf_mate_setup fi ;; 'cinnamon-session-cinnamon') if [ ! -f \$HOME/.dconf_cinnamon_setup ] then dconf write /org/cinnamon/desktop/interface/icon-theme "'matefaenza'" dconf write /org/cinnamon/desktop/interface/cursor-theme "'mate'" dconf write /org/cinnamon/desktop/interface/gtk-theme "'Menta'" dconf write /org/cinnamon/desktop/wm/preferences/theme "'Menta'" dconf write /org/cinnamon/theme/name "'cinnamon'" touch \$HOME/.dconf_cinnamon_setup fi ;; *) ;; esac exec \$1 EOF } ### Execute checkRoot checkArch checkVersion checkVirtual portsUpdate while [ "$CONFIRM" == "" ] do selectPackages confirm done install setup mount -a service kld start service devd restart service devfs restart service automount start service automountd start service autounmountd start service -R