├── wall.jpg ├── master.zip ├── yinstall.png ├── ypsteam.png ├── yrchrome.png ├── ysacolyte.png ├── ysettings.png ├── epic-games.zip ├── ysettingsnew.png ├── ystartboosting.png ├── steam-acolyte.tar.xz ├── idp ├── idc ├── idw ├── video-camera ├── video-stream ├── steam-acolyte ├── info ├── boost ├── logo ├── LICENSE ├── steam-compat ├── steam-wine ├── steam-winepro ├── config-neofetch ├── yet.py ├── README.md ├── reconfig-mini ├── steam-acolyte-sh ├── reconfig ├── utils ├── network └── run /wall.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steambsd/os/HEAD/wall.jpg -------------------------------------------------------------------------------- /master.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steambsd/os/HEAD/master.zip -------------------------------------------------------------------------------- /yinstall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steambsd/os/HEAD/yinstall.png -------------------------------------------------------------------------------- /ypsteam.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steambsd/os/HEAD/ypsteam.png -------------------------------------------------------------------------------- /yrchrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steambsd/os/HEAD/yrchrome.png -------------------------------------------------------------------------------- /ysacolyte.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steambsd/os/HEAD/ysacolyte.png -------------------------------------------------------------------------------- /ysettings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steambsd/os/HEAD/ysettings.png -------------------------------------------------------------------------------- /epic-games.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steambsd/os/HEAD/epic-games.zip -------------------------------------------------------------------------------- /ysettingsnew.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steambsd/os/HEAD/ysettingsnew.png -------------------------------------------------------------------------------- /ystartboosting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steambsd/os/HEAD/ystartboosting.png -------------------------------------------------------------------------------- /steam-acolyte.tar.xz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/steambsd/os/HEAD/steam-acolyte.tar.xz -------------------------------------------------------------------------------- /idp: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | echo 'enter id: ' 3 | read ans 4 | winepro steam.exe steam://install/$ans 5 | -------------------------------------------------------------------------------- /idc: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | echo 'enter id: ' 3 | read ans 4 | /opt/steam-utils/bin/steam "steam://install/$ans" 5 | -------------------------------------------------------------------------------- /idw: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | echo 'enter id: ' 3 | read ans 4 | wine ~/.wine/drive_c/Program\ Files/Steam/steam.exe "steam://install/$ans" 5 | -------------------------------------------------------------------------------- /video-camera: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | #Sets the webcam's video size. The default is sif. Can be 3 | #one of 'sqcif', 'qsif', 'qcif', 'sif', 'cif' or 'vga', 4 | pwcview -s sif & 5 | read ans 6 | -------------------------------------------------------------------------------- /video-stream: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | echo 'Enter link (example http://192.168.43.103:8080/video): ' 3 | read ans 4 | mpv --no-cache --keep-open --hwdec-codecs=all --cache-secs=0 --no-cache-pause --geometry=400x320+20+30 $ans & 5 | read ans 6 | -------------------------------------------------------------------------------- /steam-acolyte: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | if [ -d .steam ]; then 3 | sleep 5 4 | .local/bin/steam-acolyte 5 | else 6 | #sleep 1300 7 | echo 'I will be run after reboot' 8 | echo 'Please install steam before acolyte' 9 | printf "\033[1;34mAfter install you may close terminals\033[0;m\n" 10 | #.local/bin/steam-acolyte 11 | fi 12 | read ans 13 | 14 | -------------------------------------------------------------------------------- /info: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | neofetch --color_blocks off --refresh_rate on --ascii .logo --config .config-neofetch 3 | S0=' Good night and good luck! ' 4 | S1='Telegram Group: ' 5 | S2=`echo 'https://t.me/steambsd'` 6 | printf "\033[1;34m${S0} \033[1;31m${S1}\033[0;m${S2}\n" 7 | C0=' ¯\\\(°_o)/¯ ' 8 | C1='$: ' 9 | C2=`echo 'https://www.donationalerts.com/r/steambsd'` 10 | printf "\033[1;34m${C0} \033[1;31m${C1}\033[0;m${C2}\n" 11 | echo ' ' 12 | /usr/local/bin/bash 13 | -------------------------------------------------------------------------------- /boost: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | echo '==> Start boost PC...' 4 | sleep 2 5 | 6 | sudo killall -HUP wine 7 | sudo killall -HUP wine.bin 8 | sudo killall -HUP chrome 9 | sudo killall -HUP compton 10 | sudo killall -HUP cairo-clock 11 | 12 | sudo service syslogd stop 13 | sudo service cleartmp stop 14 | 15 | sudo service lpd stop 16 | sudo service cupsd stop 17 | sudo service cups_browsed stop 18 | 19 | sudo kldunload ext2fs 20 | sudo kldunload udf 21 | 22 | sudo sysctl kern.vt.enable_bell=0 23 | sudo sysctl hw.syscons.bell=0 24 | 25 | sleep 2 26 | -------------------------------------------------------------------------------- /logo: -------------------------------------------------------------------------------- 1 | 2 | ${c1} ./////////////. 3 | //..///////////////////. ./ 4 | ///////////////....//////. 5 | .//////////////. ....../////. 6 | .///////////////./. .///// 7 | .//////////////. // ./ 8 | ////////////. ... 9 | ///////. .//////.. 10 | ////// ././// /////////////. 11 | ///// /. ./ /////////////// 12 | //// /. / /////////////// 13 | .//// //.../ .//////////////. 14 | .//// /////////////// 15 | .///////////////////////. 16 | .///////////////////. 17 | ./////////////. 18 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2020 - current date, SteamBSD operating system. 2 | 3 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 4 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 5 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 6 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 7 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 8 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 9 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 10 | ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 11 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 12 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 13 | -------------------------------------------------------------------------------- /steam-compat: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | sleep 10 3 | if [ -d .steam ]; then 4 | 5 | #IMPORTANT!!! 6 | IGNORE_OSVERSION=yes /usr/local/wine-proton/bin/pkg32.sh install -y wine-proton mesa-dri 7 | /opt/steam-utils/bin/lsu-bootstrap --allow-stealing-my-passwords,-browser-history-and-ssh-keys 8 | #IMPORTANT!!! 9 | /opt/steam-utils/bin/steam 10 | else 11 | rm -rf /home/steamdev/.steam 12 | sudo su steamdev -c /opt/steam-utils/bin/steam-install 13 | sudo mv /home/steamdev/.steam /home/$USER/.steam 14 | #/opt/steam-utils/bin/lsu-pkg32 install -y wine-proton mesa-dri 15 | #/usr/local/wine-proton/bin/pkg32.sh install -y wine-proton mesa-dri 16 | sudo chown -R $USER:wheel /home/$USER/.steam 17 | #IMPORTANT!!! 18 | IGNORE_OSVERSION=yes /usr/local/wine-proton/bin/pkg32.sh install -y wine-proton mesa-dri 19 | /opt/steam-utils/bin/lsu-bootstrap --allow-stealing-my-passwords,-browser-history-and-ssh-keys 20 | #IMPORTANT!!! 21 | /opt/steam-utils/bin/steam 22 | #/opt/steam-utils/bin/steam steam://open/minigameslist -no-browser 23 | fi 24 | read ans 25 | 26 | -------------------------------------------------------------------------------- /steam-wine: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | sleep 4 3 | while true 4 | do 5 | if [ -f "/home/$USER/.wine/drive_c/Program Files/Steam/steam.exe" ]; then 6 | echo '-===WINE 32 VERSION OF STEAM===-' 7 | echo 'Continue run steam?' 8 | echo 'Press any key to proceed.' 9 | read ans 10 | wine ~/.wine/drive_c/Program\ Files/Steam/steam.exe steam://open/minigameslist -no-browser 11 | sleep 8 12 | echo 'If you want reinstall steam-wine, please remove .wine folder and reboot pc' 13 | echo 'Press any key to run steam again' 14 | else 15 | echo '-===WINE 32 VERSION OF STEAM===-' 16 | echo 'Do you want install steam?' 17 | echo 'Press any key to install.' 18 | read ans 19 | 20 | # block of wine-32 installation 21 | /usr/local/share/wine/pkg32.sh install -y wine mesa-dri 22 | winetricks -q 7zip 23 | 24 | cd "/home/$USER/.wine/dosdevices/c:/Program Files" 25 | fetch https://cdn.cloudflare.steamstatic.com/client/installer/SteamSetup.exe 26 | wine SteamSetup.exe /S 27 | rm SteamSetup.exe 28 | wine ~/.wine/drive_c/Program\ Files/Steam/Steam.exe /S 29 | wine ~/.wine/drive_c/Program\ Files/Steam/steam.exe steam://open/minigameslist -no-browser 30 | fi 31 | read ans 32 | done 33 | 34 | -------------------------------------------------------------------------------- /steam-winepro: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | sleep 4 3 | while true 4 | do 5 | if [ -f "/home/$USER/.winepro/drive_c/Program Files (x86)/Steam/steam.exe" ]; then 6 | echo '-===WINEPRO 32-64 VERSION OF STEAM===-' 7 | echo 'Continue run steam?' 8 | echo 'Press any key to proceed.' 9 | read ans 10 | cd '.winepro/drive_c/Program Files (x86)/Steam/' 11 | winepro steam.exe steam://open/minigameslist -no-browser 12 | cd ~ 13 | sleep 8 14 | echo 'If you want reinstall steam-winepro, please remove .winepro folder and reboot pc' 15 | echo 'Press any key to run steam again' 16 | else 17 | echo '-===WINEPRO 32-64 VERSION OF STEAM===-' 18 | echo 'Do you want install steam?' 19 | echo 'Press any key to install.' 20 | read ans 21 | fetch https://cdn.cloudflare.steamstatic.com/client/installer/SteamSetup.exe 22 | winepro SteamSetup.exe /S 23 | rm SteamSetup.exe 24 | cd '.winepro/drive_c/Program Files (x86)/Steam/' 25 | winepro Steam.exe /S 26 | winepro steam.exe steam://open/minigameslist -no-browser 27 | cd ~ 28 | 29 | echo '[Desktop Entry]' > Desktop/Steam64.desktop 30 | echo 'Name=Steam64' >> Desktop/Steam64.desktop 31 | echo 'Type=Application' >> Desktop/Steam64.desktop 32 | echo 'Exec=winepro steam.exe steam://open/minigameslist -no-browser' >> Desktop/Steam64.desktop 33 | echo 'Terminal=false' >> Desktop/Steam64.desktop 34 | echo 'Icon=/usr/local/share/pixmaps/ypsteam.png' >> Desktop/Steam64.desktop 35 | 36 | fi 37 | read ans 38 | done 39 | 40 | -------------------------------------------------------------------------------- /config-neofetch: -------------------------------------------------------------------------------- 1 | print_info() { 2 | 3 | info title 4 | info underline 5 | 6 | prin "OS" "$(cat /etc/motd.safe | grep SteamBSD)" 7 | info "DE" de 8 | prin "MBB" "$(kenv | grep smbios | grep planar.product | cut -d"\"" -f2 ; kenv | grep smbios | grep bios.version | cut -d"\"" -f2)" 9 | info "CPU" cpu 10 | prin "CUS" "$(CPU_COUNT=`sysctl -n hw.ncpu`;vmstat -Pn0 -c2 -w0.1 | awk 'BEGIN{getline;getline;getline}{for(c='$CPU_COUNT'-1;c>=0;c--){print 100-$(NF-c*3)"% ";}}' | awk '{sum+=$1}{print $1} END {print " | "int(sum/'$CPU_COUNT')"%"}')" 11 | info "GPU" gpu 12 | prin "MBBT" "$(sysctl -a | grep -E 'acpi.thermal.*temperature|dev.cpu.^temperature' | cut -d":" -f2 ; echo '[normal 35C, critical 70C]')" 13 | prin "CPUT" "$(sudo sysctl -a | grep dev.cpu.0.temperature | cut -d":" -f2 ; echo '[normal 45C, critical 90C]')" 14 | prin "GPUT" "$(gpuc=`nvidia-smi -q | grep 'GPU Current Temp' | cut -d":" -f2 | cut -d" " -f2 | awk '{print $0".0C"}'`; if [ "$gpuc" != '' ]; then echo $gpuc; else sysctl -a | grep dev.cpu.0.temperature | 15 | cut -d":" -f2 | cut -d" " -f2 ; fi; echo '[normal 50C, critical 95C]')" 16 | info "Disk" disk 17 | prin "Dizk" "$(zfs list tank | tail -n1 | awk 'BEGIN{s=0}{s+=$2}{s+=$3}END{print $2,"/", s"G","avail:",$3}')" 18 | prin "Swap" "$(swapinfo -m | tail -n1 | awk '{print $3"M"," / ",$2"M"," avail: ",$4"M"}' | tr -s "\t " " ")" 19 | info "Memory" memory 20 | info "Uptime" uptime 21 | info "Local IP" local_ip 22 | info "Resolution" resolution 23 | 24 | info cols 25 | } 26 | 27 | -------------------------------------------------------------------------------- /yet.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'yet.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.15.4 6 | # 7 | # WARNING: Any manual changes made to this file will be lost when pyuic5 is 8 | # run again. Do not edit this file unless you know what you are doing. 9 | 10 | 11 | from PyQt5 import QtCore, QtGui, QtWidgets 12 | 13 | 14 | class Ui_MainWindow(object): 15 | def setupUi(self, MainWindow): 16 | MainWindow.setObjectName("MainWindow") 17 | MainWindow.resize(130, 97) 18 | self.centralwidget = QtWidgets.QWidget(MainWindow) 19 | self.centralwidget.setObjectName("centralwidget") 20 | self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget) 21 | self.verticalLayout.setObjectName("verticalLayout") 22 | self.label = QtWidgets.QLabel(self.centralwidget) 23 | self.label.setOpenExternalLinks(True) 24 | self.label.setObjectName("label") 25 | self.verticalLayout.addWidget(self.label) 26 | MainWindow.setCentralWidget(self.centralwidget) 27 | self.menubar = QtWidgets.QMenuBar(MainWindow) 28 | self.menubar.setGeometry(QtCore.QRect(0, 0, 130, 21)) 29 | self.menubar.setObjectName("menubar") 30 | MainWindow.setMenuBar(self.menubar) 31 | self.statusbar = QtWidgets.QStatusBar(MainWindow) 32 | self.statusbar.setObjectName("statusbar") 33 | MainWindow.setStatusBar(self.statusbar) 34 | 35 | self.retranslateUi(MainWindow) 36 | QtCore.QMetaObject.connectSlotsByName(MainWindow) 37 | 38 | def retranslateUi(self, MainWindow): 39 | _translate = QtCore.QCoreApplication.translate 40 | MainWindow.setWindowTitle(_translate("MainWindow", "Yet")) 41 | self.label.setText(_translate("MainWindow", "

Welcome to SteamBSD!

See documentation

")) 42 | 43 | 44 | if __name__ == "__main__": 45 | import sys 46 | app = QtWidgets.QApplication(sys.argv) 47 | MainWindow = QtWidgets.QMainWindow() 48 | ui = Ui_MainWindow() 49 | ui.setupUi(MainWindow) 50 | MainWindow.show() 51 | sys.exit(app.exec_()) 52 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

SteamBSD installation on the internet (develop)

2 |
Install FreeBSD, reboot PC and login as root: 3 |
su root 4 |
5 |
Download from git: 6 |
pkg ins git 7 |
git clone https://github.com/steambsd/os 8 |
cd os 9 |
Or download without install git: 10 |
fetch https://github.com/steambsd/os/archive/go.zip 11 |
unzip go.zip 12 |
cd os-go 13 |
14 |
Add permission: 15 |
chmod +x run 16 |
17 |
Finally, run it: 18 |
./run [your_user] [video_driver] [your_desktop] 19 |
Or run it without paramtrs (default user "admin" with pass "0000", driver "auto" and desktop "lumina"): 20 |
./run 21 |
22 |
Where: 23 |
[your_user] is user created during installation 24 |
If the user does not exist, the script will add it automatically with the password "0000", you can change the password after installation: 25 |
passwd [your_user] 26 |
[video_driver] is one of: nvidia, amdgpu, radeon, intel or vesa 27 |
auto - autodetect and install ONE driver 28 |
full - autodetect and install FULL packages of driver 29 |
nvidia - recommended, best choice for linux steam 30 |
amdgpu - not bad for wine steam 31 |
radeon - not bad for wine steam 32 |
intel - not bad for wine steam 33 |
vesa - for test virtual machines 34 |
[your_desktop] choose between lxde, lxqt, lumina and plasma 35 |
36 |
Only for this internet installer (NOT for ISO IMG) you may choose old driver: nvidia-390, nvidia-340, nvidia-304 37 |
38 |
For example: 39 |
./run ash auto lumina 40 |
./run bob full plasma 41 |
./run lee nvidia-390 lxqt 42 |
./run kim nvidia-340 lumina 43 |
./run son nvidia-304 lxde 44 |
./run den amdgpu plasma 45 |
./run zed radeon lumina 46 |
./run hanna intel lxqt 47 |
./run vmuser vesa lxde 48 |
49 |
NOTE1. If you install on VirtualBox you must choose VMSVGA+128Mb (in virtualbox of course). This is in machine "settings -> display". 50 |
NOTE2. If you install via ISO disk of FreeBSD and internet - you need synchronize rc.conf (see "run" script). Because chrome and steam may work unstable. 51 |
52 |
--- SteamBSD © is FREE operating system. 53 |
Site: https://lpros.blogspot.com/ 54 |
E-mail: steambsd@gmail.com 55 | wall 56 | -------------------------------------------------------------------------------- /reconfig-mini: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | ############################################ 4 | ### Desktop customization ### 5 | ############################################ 6 | sleep 2 7 | printf '%s\n' /desktop-/a 'background\filelist=/usr/local/share/wallpapers/wall.jpg' . w q | ex -s /root/.config/lumina-desktop/desktopsettings.conf >> /dev/null 2>&1 8 | sed -i '' '/rssreader/d' /root/.config/lumina-desktop/desktopsettings.conf >> /dev/null 2>&1 9 | 10 | cat << EOF > /root/Desktop/Chrome.desktop 11 | [Desktop Entry] 12 | Name=Chrome 13 | Exec=chrome --no-sandbox --force-dark-mode --window-size=640,760 --window-position=640,0 https://store.steampowered.com/ 14 | StartupNotify=true 15 | Type=Application 16 | Icon=/usr/local/share/pixmaps/yrchrome.png 17 | EOF 18 | cat << EOF > /root/Desktop/Installer.desktop 19 | [Desktop Entry] 20 | Name=Installer 21 | Exec=xterm -geometry 100x50-0-100 -e bsdinstall 22 | Type=Application 23 | StartupNotify=true 24 | Icon=/usr/local/share/pixmaps/yinstall.png 25 | EOF 26 | 27 | ############################################ 28 | ### Readme.txt ### 29 | ############################################ 30 | cat << EOF > /root/Desktop/Readme 31 | 32 | 33 | --- SteamBSD © is FREE operating system. 34 | Site: https://lpros.blogspot.com 35 | Github (inet): https://github.com/steambsd/os 36 | Telegram: https://t.me/steambsd 37 | 38 | --- Help to SteamBSD project 39 | MIR: 2200 7010 1498 6795 40 | YMoney: https://yoomoney.ru/to/4100117613550064 41 | DAlerts: https://www.donationalerts.com/r/steambsd 42 | 43 | --- Help to SteamBSD from BANK (Tinkoff) 44 | Beneficiary 40817810600060275658 45 | Beneficiary Bank: T-BANK 46 | BIK: 044525974 47 | 48 | --- Help to SteamBSD (CONTACT METHOD) 49 | Link: https://www.contact-sys.com/ 50 | Name: VYSOCHIN DMITRIY VALENTINOVICH 51 | My Phone: +7-963-810-26-31 52 | 53 | --- Help the SteamBSD project with cryptocurrencies 54 | DonatePay: https://new.donatepay.ru/@972255 55 | Green WT (BTC): 3GP3TM46FbczJL4YrGrFnspfH5RzXY7soo 56 | MetaMask (ETH): 0x114aB181D26807BdA2A7763e1e37c4D2c438C066 57 | 58 | --- Other information 59 | Skype: Progres Light 60 | Email: steambsd@gmail.com 61 | RSS: https://lpros.blogspot.com/feeds/posts/default 62 | EOF 63 | 64 | ############################################ 65 | ### Final ### 66 | ############################################ 67 | mv ~/reconfig-mini ~/.reconfig-mini 68 | 69 | echo '################################################' 70 | echo '### Recommendations ###' 71 | echo '################################################' 72 | echo 'If LAN not work, run "bsdconfig networking"' 73 | echo 'Or use pc-networkmanager (right-bottom tray icon)' 74 | echo 'Also run shortcut installer to install from GUI.' 75 | echo 'Just enter your parametrs...' 76 | echo '-------------------------------------' 77 | printf "\033[1;31mReconfig was successful!\033[0;m\n" 78 | printf "\033[1;34mThis is mini installation.\033[0;m\n" 79 | echo '-------------------------------------' 80 | sleep 10 81 | -------------------------------------------------------------------------------- /steam-acolyte-sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | while : 4 | do 5 | clear 6 | #echo '### different games' 7 | #echo 'ag - show popular native games' 8 | #echo 'eg - open epic-games console app' 9 | #echo '### try to open steam' 10 | #echo 'sa - open steam for user admin' 11 | #echo 'sb - open steam from browser' 12 | echo '### multi steam' 13 | echo 's1 - open steam for user steam0u1' 14 | echo 's2 - open steam for user steam0u2' 15 | echo 's3 - open steam for user steam0u3' 16 | echo 's4 - open steam for user steam0u4' 17 | #echo '### CSGO' 18 | #echo '1 - open CSGO for user steam0u1' 19 | #echo '2 - open CSGO for user steam0u2' 20 | #echo '3 - open CSGO for user steam0u3' 21 | #echo '4 - open CSGO for user steam0u4' 22 | #echo '### CSGO all' 23 | #echo 'a - open CSGO for all 4 users' 24 | echo '### system commands' 25 | echo 'yam - open mail of yandex for wine' 26 | echo 'abs - add boost and steam to start' 27 | echo 'dbs - disable boost and steam in start' 28 | echo 'per - set permission 777 on steamapps' 29 | echo 'pes - set permission 700 to .i386-wine-pkg ' 30 | echo 'rei - reinstall steam for all users' 31 | echo 'exit - close' 32 | echo '' 33 | echo -n 'Choose your number: ' 34 | read ans 35 | case "${ans}" in 36 | ag) 37 | ### native games 38 | sudo su admin -c 'xterm -geometry 40x4-0+0 -e echo "pkg ins trigger-rally 0ad xonotic" &' > /dev/null 2>&1 39 | ;; 40 | eg) 41 | ### epic-games 42 | sudo su admin -c 'xterm -geometry 40x4-0+0 -e epic auth &' > /dev/null 2>&1 43 | ;; 44 | sa) 45 | ### steam admin 46 | sudo su admin -c 'xterm -geometry 40x4-0+0 -e /opt/steam-utils/bin/steam -language russian &' > /dev/null 2>&1 47 | ;; 48 | sb) 49 | ### steam browser 50 | sudo su admin -c 'xterm -geometry 40x4-0+0 -e chrome https://store.steampowered.com/ &' > /dev/null 2>&1 51 | ;; 52 | s1) 53 | ### steam1 54 | sudo su steam0u1 -c 'xterm -geometry 40x4-0+0 -e steam -language russian &' > /dev/null 2>&1 55 | ;; 56 | s2) 57 | ### steam2 58 | sudo su steam0u2 -c 'xterm -geometry 40x4-0+0 -e steam -language russian &' > /dev/null 2>&1 59 | ;; 60 | s3) 61 | ### steam3 62 | sudo su steam0u3 -c 'xterm -geometry 40x4-0+0 -e steam -language russian &' > /dev/null 2>&1 63 | ;; 64 | s4) 65 | ### steam4 66 | sudo su steam0u4 -c 'xterm -geometry 40x4-0+0 -e steam -language russian &' > /dev/null 2>&1 67 | ;; 68 | 1) 69 | ### steam1 70 | sudo rm /tmp/`ls /tmp | grep engine` > /dev/null 2>&1 71 | sudo su steam0u1 -c 'xterm -geometry 40x4-0+0 -e steam -applaunch 730 -w 640 -novid -console &' > /dev/null 2>&1 72 | ;; 73 | 2) 74 | ### steam2 75 | sudo rm /tmp/`ls /tmp | grep engine` > /dev/null 2>&1 76 | sudo su steam0u2 -c 'xterm -geometry 40x4-0+0 -e steam -applaunch 730 -w 640 -novid -console &' > /dev/null 2>&1 77 | ;; 78 | 3) 79 | ### steam3 80 | sudo rm /tmp/`ls /tmp | grep engine` > /dev/null 2>&1 81 | sudo su steam0u3 -c 'xterm -geometry 40x4-0+0 -e steam -applaunch 730 -w 640 -novid -console &' > /dev/null 2>&1 82 | ;; 83 | 4) 84 | ### steam4 85 | sudo rm /tmp/`ls /tmp | grep engine` > /dev/null 2>&1 86 | sudo su steam0u4 -c 'xterm -geometry 40x4-0+0 -e steam -applaunch 730 -w 640 -novid -console &' > /dev/null 2>&1 87 | ;; 88 | a) 89 | ### steam1 90 | sudo rm /tmp/`ls /tmp | grep engine` >> /dev/null 2>&1 91 | sudo su steam0u1 -c 'xterm -geometry 40x4-0+0 -e steam -applaunch 730 -w 640 -novid -console &' > /dev/null 2>&1 92 | sleep 60 93 | ### steam2 94 | sudo rm /tmp/`ls /tmp | grep engine` >> /dev/null 2>&1 95 | sudo su steam0u2 -c 'xterm -geometry 40x4-0+0 -e steam -applaunch 730 -w 640 -novid -console &' > /dev/null 2>&1 96 | sleep 70 97 | ### steam3 98 | sudo rm /tmp/`ls /tmp | grep engine` >> /dev/null 2>&1 99 | sudo su steam0u3 -c 'xterm -geometry 40x4-0+0 -e steam -applaunch 730 -w 640 -novid -console &' > /dev/null 2>&1 100 | sleep 80 101 | ### steam4 102 | sudo rm /tmp/`ls /tmp | grep engine` >> /dev/null 2>&1 103 | sudo su steam0u4 -c 'xterm -geometry 40x4-0+0 -e steam -applaunch 730 -w 640 -novid -console &' > /dev/null 2>&1 104 | ;; 105 | yam) 106 | xterm -geometry 40x4-0+0 -e wine iexplore mail.yandex.ru 107 | ;; 108 | abs) 109 | echo '[Desktop Entry]' > Desktop/Htop.desktop 110 | echo 'Name=Htop' >> Desktop/Htop.desktop 111 | echo 'Type=Application' >> Desktop/Htop.desktop 112 | echo 'Exec=lxterminal --geometry=84x24 -e htop' >> Desktop/Htop.desktop 113 | echo 'Icon=htop' >> Desktop/Htop.desktop 114 | 115 | sudo su root -c "echo '[Desktop Entry]' > /usr/local/etc/xdg/autostart/boost-start.desktop" 116 | sudo su root -c "echo 'Name=boost-start' >> /usr/local/etc/xdg/autostart/boost-start.desktop" 117 | sudo su root -c "echo 'Type=Application' >> /usr/local/etc/xdg/autostart/boost-start.desktop" 118 | sudo su root -c "echo 'Exec=xterm -geometry 40x4+0-0 -e ~/.boost' >> /usr/local/etc/xdg/autostart/boost-start.desktop" 119 | sudo su root -c "echo 'Terminal=false' >> /usr/local/etc/xdg/autostart/boost-start.desktop" 120 | 121 | sudo su root -c "echo '[Desktop Entry]' > /usr/local/etc/xdg/autostart/steam-start.desktop" 122 | sudo su root -c "echo 'Name=steam-start' >> /usr/local/etc/xdg/autostart/steam-start.desktop" 123 | sudo su root -c "echo 'Type=Application' >> /usr/local/etc/xdg/autostart/steam-start.desktop" 124 | sudo su root -c "echo 'Exec=steam' >> /usr/local/etc/xdg/autostart/steam-start.desktop" 125 | sudo su root -c "echo 'Terminal=false' >> /usr/local/etc/xdg/autostart/steam-start.desktop" 126 | 127 | sudo rm /usr/local/etc/xdg/autostart/steam-acolyte-link.desktop >> /dev/null 2>&1 128 | mv ~/.steam-acolyte ~/.steam-acolyte.save >> /dev/null 2>&1 129 | ;; 130 | dbs) 131 | sudo rm Desktop/Htop.desktop >> /dev/null 2>&1 132 | sudo rm /usr/local/etc/xdg/autostart/boost-start.desktop >> /dev/null 2>&1 133 | sudo rm /usr/local/etc/xdg/autostart/steam-start.desktop >> /dev/null 2>&1 134 | mv ~/.steam-acolyte.save ~/.steam-acolyte >> /dev/null 2>&1 135 | sudo su root -c "echo '[Desktop Entry]' > /usr/local/etc/xdg/autostart/steam-acolyte-link.desktop" 136 | sudo su root -c "echo 'Name=steam-acolyte' >> /usr/local/etc/xdg/autostart/steam-acolyte-link.desktop" 137 | sudo su root -c "echo 'Type=Application' >> /usr/local/etc/xdg/autostart/steam-acolyte-link.desktop" 138 | sudo su root -c "echo 'Exec=steam-acolyte' >> /usr/local/etc/xdg/autostart/steam-acolyte-link.desktop" 139 | sudo su root -c "echo 'Terminal=false' >> /usr/local/etc/xdg/autostart/steam-acolyte-link.desktop" 140 | ;; 141 | per) 142 | sudo chmod -R 777 /home/admin/.steam/steam/steamapps 143 | ;; 144 | pes) 145 | sudo chmod -R 0700 /home/admin/.i386-wine-pkg 146 | ;; 147 | rei) 148 | sudo rm -rf /usr/home/steam0u1/.steam 149 | sudo rm -rf /usr/home/steam0u2/.steam 150 | sudo rm -rf /usr/home/steam0u3/.steam 151 | sudo rm -rf /usr/home/steam0u4/.steam 152 | sudo su steam0u1 -c steam-install 153 | sudo su steam0u2 -c steam-install 154 | sudo su steam0u3 -c steam-install 155 | sudo su steam0u4 -c steam-install 156 | sudo ln -s /usr/home/admin/.i386-wine-pkg /usr/home/steam0u1/.i386-wine-pkg 157 | sudo ln -s /usr/home/admin/.steam/steam/steamapps /usr/home/steam0u1/.steam/steam/steamapps 158 | sudo ln -s /usr/home/admin/.i386-wine-pkg /usr/home/steam0u2/.i386-wine-pkg 159 | sudo ln -s /usr/home/admin/.steam/steam/steamapps /usr/home/steam0u2/.steam/steam/steamapps 160 | sudo ln -s /usr/home/admin/.i386-wine-pkg /usr/home/steam0u3/.i386-wine-pkg 161 | sudo ln -s /usr/home/admin/.steam/steam/steamapps /usr/home/steam0u3/.steam/steam/steamapps 162 | sudo ln -s /usr/home/admin/.i386-wine-pkg /usr/home/steam0u4/.i386-wine-pkg 163 | sudo ln -s /usr/home/admin/.steam/steam/steamapps /usr/home/steam0u4/.steam/steam/steamapps 164 | ;; 165 | exit) 166 | echo 'Exit.' 167 | sleep 1 168 | break 169 | ;; 170 | *) 171 | echo "Error. Please, type number. Start again..." 172 | ;; 173 | esac 174 | done 175 | 176 | 177 | -------------------------------------------------------------------------------- /reconfig: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | ############################################ 4 | ### Filesystem ### 5 | ############################################ 6 | #sudo su root -c "rm -Rf /tmp/*" 7 | #sudo su root -c "/etc/rc.d/cleartmp start" 8 | # fstab and mount 9 | #sudo su root -c "echo 'linprocfs /compat/linux/proc linprocfs rw 0 0' >> /etc/fstab" 10 | #sudo su root -c "echo 'linsysfs /compat/linux/sys linsysfs rw 0 0' >> /etc/fstab" 11 | #sudo su root -c "echo 'tmpfs /compat/linux/dev/shm tmpfs rw,mode=1777 0 0' >> /etc/fstab" 12 | #sudo su root -c "echo 'fdesc /dev/fd fdescfs rw 0 0' >> /etc/fstab" 13 | #sudo su root -c "echo 'procfs /proc procfs rw 0 0' >> /etc/fstab" 14 | #sudo mount -a 15 | 16 | #new 17 | sudo su root -c "echo 'devfs /compat/ubuntu/dev devfs rw,late 0 0' >> /etc/fstab" 18 | sudo su root -c "echo 'tmpfs /compat/ubuntu/dev/shm tmpfs rw,late,size=1g,mode=1777 0 0' >> /etc/fstab" 19 | sudo su root -c "echo 'fdescfs /compat/ubuntu/dev/fd fdescfs rw,late,linrdlnk 0 0' >> /etc/fstab" 20 | sudo su root -c "echo 'linprocfs /compat/ubuntu/proc linprocfs rw,late 0 0' >> /etc/fstab" 21 | sudo su root -c "echo 'linsysfs /compat/ubuntu/sys linsysfs rw,late 0 0' >> /etc/fstab" 22 | sudo su root -c "echo '/tmp /compat/ubuntu/tmp nullfs rw,late 0 0' >> /etc/fstab" 23 | sudo su root -c "echo '/home /compat/ubuntu/home nullfs rw,late 0 0' >> /etc/fstab" 24 | sudo su root -c "debootstrap jammy /compat/ubuntu" 25 | sudo su root -c "mount -a" 26 | sleep 2 27 | sudo su root -c "service linux restart" 28 | sudo su root -c "service linux64 restart" 29 | 30 | # some new 31 | #pkg install -f git 32 | #git clone https://git.FreeBSD.org/ports.git /usr/ports 33 | #git -C /usr/ports pull 34 | #cd /usr/ports/games/linux-steam-utils 35 | #echo 'make USES= linux:rl9 ruby:run' >> Makefile 36 | 37 | 38 | ############################################ 39 | ### Check standart driver ### 40 | ############################################ 41 | CDRV=`cat /usr/local/etc/X11/xorg.conf.d/xorg.conf | grep "Standart"` 42 | if [ "$CDRV" != '' ]; then 43 | sudo rm /usr/local/etc/X11/xorg.conf.d/xorg.conf >> /dev/null 2>&1 44 | fi 45 | 46 | ############################################ 47 | ### Function ### 48 | ############################################ 49 | TYPI="I" 50 | if [ -d /etc/ins/All ]; then TYPI="L"; fi 51 | # package type installation (local or inet) 52 | pli() 53 | { 54 | if [ -d All ]; then 55 | zvar=`ls All | grep $1 | awk '{ print length, $0 }' | sort -n | cut -d" " -f2- | head -1` 56 | sudo pkg add -f All/$zvar 57 | else 58 | sudo pkg ins -f -y $1 59 | fi 60 | } 61 | 62 | ############################################ 63 | ### Fix bugs ### 64 | ############################################ 65 | cd /etc/ins/ 66 | pli gsettings-desktop-schemas 67 | cd ~ 68 | # clear 69 | sudo rm -rf /etc/ins/* 70 | 71 | sleep 1 72 | CHK=`cat /etc/rc.conf | grep zfs` 73 | if [ "$CHK" == '' ]; then 74 | xterm -geometry 40x4-0+0 -e steam & > /dev/null 2>&1 75 | fi 76 | 77 | ############################################ 78 | ### Start ### 79 | ############################################ 80 | sleep 2 81 | cd ~ 82 | #welcome 83 | #python3.7 .yet.py & > /dev/null 2>&1 84 | # 85 | clear 86 | echo "Start customization for user $USER" 87 | 88 | sleep 6 89 | #sudo su root -c "killall -HUP dsbmc" 90 | 91 | ############################################ 92 | ### Desktop customization ### 93 | ############################################ 94 | rm 'Desktop/chromium-browser.desktop' >> /dev/null 2>&1 95 | rm 'Desktop/lthemeengine.desktop' >> /dev/null 2>&1 96 | rm 'Desktop/lumina-config.desktop' >> /dev/null 2>&1 97 | 98 | #lxde-preset 99 | pcmanfm --set-wallpaper /usr/local/share/wallpapers/wall.jpg >> /dev/null 2>&1 100 | #printf '%s\n' /config/a 'quick_exec=1' . w q | ex -s /home/$USER/.config/libfm/libfm.conf >> /dev/null 2>&1 101 | 102 | #lxqt-preset 103 | pcmanfm-qt --set-wallpaper /usr/local/share/wallpapers/wall.jpg >> /dev/null 2>&1 104 | 105 | #lumina-preset 106 | sed -i '' '/filelist/d' /home/$USER/.config/lumina-desktop/desktopsettings.conf >> /dev/null 2>&1 107 | sleep 2 108 | sudo su root -c "cp /home/$USER/.config/lumina-desktop/pluginsettings/desktopsettings.conf /home/$USER/.config/lumina-desktop/pluginsettings/desktopsettings.conf.save" >> /dev/null 2>&1 109 | sudo su root -c "cp /home/$USER/.config/lumina-desktop/desktopsettings.conf /home/$USER/.config/lumina-desktop/desktopsettings.conf.save" >> /dev/null 2>&1 110 | sleep 2 111 | sudo su root -c "sed -i '' 's/hidepanel=false/hidepanel=true/g' /home/$USER/.config/lumina-desktop/desktopsettings.conf" >> /dev/null 2>&1 112 | sudo su root -c "printf '%s\n' /General/a 'DisableQuotes=true' . w q | ex -s /home/$USER/.config/lumina-desktop/sessionsettings.conf" >> /dev/null 2>&1 113 | sudo su root -c "printf '%s\n' /desktop-/a 'background\filelist=/usr/local/share/wallpapers/wall.jpg' . w q | ex -s /home/$USER/.config/lumina-desktop/desktopsettings.conf" >> /dev/null 2>&1 114 | sleep 7 115 | sudo su root -c "echo '[panelPlugs]' > /home/$USER/.config/lumina-desktop/pluginsettings/desktopsettings.conf" >> /dev/null 2>&1 116 | sudo su root -c "echo 'systemstart---0.0.1\MenuSize=@Size(270 568)' >> /home/$USER/.config/lumina-desktop/pluginsettings/desktopsettings.conf" >> /dev/null 2>&1 117 | sudo su root -c "echo ' ' >> /home/$USER/.config/lumina-desktop/pluginsettings/desktopsettings.conf" >> /dev/null 2>&1 118 | sudo su root -c "echo '[rssreader]' >> /home/$USER/.config/lumina-desktop/pluginsettings/desktopsettings.conf" >> /dev/null 2>&1 119 | sudo su root -c "echo 'currentfeeds=https://lpros.blogspot.com/feeds/posts/default' >> /home/$USER/.config/lumina-desktop/pluginsettings/desktopsettings.conf" >> /dev/null 2>&1 120 | #sudo su root -c "echo 'currentfeeds=https://steambsd.ga/feeds/posts/default' >> /home/$USER/.config/lumina-desktop/pluginsettings/desktopsettings.conf" >> /dev/null 2>&1 121 | sudo su root -c "echo 'default_interval_minutes=1' >> /home/$USER/.config/lumina-desktop/pluginsettings/desktopsettings.conf" >> /dev/null 2>&1 122 | 123 | #plasma-preset 124 | sed -i '' '/Image=file/d' /home/$USER/.config/plasma-org.kde.plasma.desktop-appletsrc >> /dev/null 2>&1 125 | printf '%s\n' /Wallpaper/a 'Image=file:///usr/local/share/wallpapers/wall.jpg' . w q | ex -s .config/plasma-org.kde.plasma.desktop-appletsrc >> /dev/null 2>&1 126 | ( kquitapp5 plasmashell || killall plasmashell && kstart5 plasmashell ) >> /dev/null 2>&1 127 | 128 | # relay 129 | printf "\033[1;34mPlease, wait... (5 minutes)\033[0;m\n" 130 | #sleep 150 131 | if [ $TYPI == "L" ]; then sleep 50; else sleep 200; fi 132 | rm 'Desktop/7-Zip File Manager.desktop' >> /dev/null 2>&1 133 | rm 'Desktop/7-Zip Help.desktop' >> /dev/null 2>&1 134 | #rm Desktop/Steam.desktop >> /dev/null 2>&1 135 | 136 | #shortcut 137 | #cat << EOF > Desktop/Acolyte.desktop 138 | #[Desktop Entry] 139 | #Name=Acolyte 140 | #Exec=/usr/local/bin/steam-acolyte 141 | #Type=Application 142 | #StartupNotify=true 143 | #Icon=/usr/local/share/pixmaps/ysacolyte.png 144 | #EOF 145 | cat << EOF > Desktop/Acolyte.desktop 146 | [Desktop Entry] 147 | Name=Acolyte 148 | Exec=xterm -geometry 55x25-450-50 -e ./.steam-acolyte-sh & 149 | Type=Application 150 | StartupNotify=true 151 | Icon=/usr/local/share/pixmaps/ysacolyte.png 152 | EOF 153 | cat << EOF > Desktop/Boost.desktop 154 | [Desktop Entry] 155 | Name=Boost 156 | Exec=xterm -geometry 40x4+0-0 -e ~/.boost 157 | Type=Application 158 | StartupNotify=true 159 | Icon=/usr/local/share/pixmaps/ystartboosting.png 160 | EOF 161 | cat << EOF > Desktop/Recorder.desktop 162 | [Desktop Entry] 163 | Name=Recorder 164 | Exec=simplescreenrecorder --logfile 165 | StartupNotify=true 166 | Type=Application 167 | Name=Recorder 168 | Icon=simplescreenrecorder 169 | EOF 170 | cat << EOF > Desktop/Terminal.desktop 171 | [Desktop Entry] 172 | Name=Terminal 173 | Exec=lxterminal --geometry=84x24 -e ./.info & 174 | Type=Application 175 | StartupNotify=true 176 | Icon=/usr/local/share/pixmaps/mini.xterm_48x48.xpm 177 | EOF 178 | cat << EOF > Desktop/Utils.desktop 179 | [Desktop Entry] 180 | Name=Utils 181 | Exec=xterm -geometry 73x55-0-50 -e ./.utils & 182 | Type=Application 183 | StartupNotify=true 184 | Icon=/usr/local/share/pixmaps/ysettings.png 185 | EOF 186 | cat << EOF > Desktop/Chrome.desktop 187 | [Desktop Entry] 188 | Name=Chrome 189 | Exec=chrome --force-dark-mode --window-size=640,760 --window-position=640,0 https://www.youtube.com/channel/UC8wwRY8yGWiJ-bIQlK0wvUA/videos 190 | StartupNotify=true 191 | Type=Application 192 | Icon=/usr/local/share/pixmaps/yrchrome.png 193 | EOF 194 | #cat << EOF > Desktop/Chrome.desktop 195 | #[Desktop Entry] 196 | #Name=Chrome 197 | #Exec=chrome --show-fps-counter --force-dark-mode --window-size=640,760 --window-position=640,0 https://store.steampowered.com/ 198 | #StartupNotify=true 199 | #Type=Application 200 | #Icon=/usr/local/share/pixmaps/yrchrome.png 201 | #EOF 202 | #cat << EOF > Desktop/Yet.desktop 203 | #[Desktop Entry] 204 | #Name=Yet 205 | #Exec=python3.7 .yet.py 206 | #StartupNotify=true 207 | #Type=Application 208 | #Icon=/usr/local/share/pixmaps/ysettingsnew.png 209 | #EOF 210 | #cat << EOF > Desktop/Acolyte.desktop 211 | #[Desktop Entry] 212 | #Name=Acolyte 213 | #Exec=/home/$USER/.local/bin/steam-acolyte 214 | #Type=Application 215 | #StartupNotify=true 216 | #Icon=/usr/home/$USER/.local/lib/python3.7/site-packages/steam_acolyte/acolyte.svg 217 | #EOF 218 | 219 | #sleep 50 220 | if [ $TYPI == "L" ]; then sleep 1; else sleep 50; fi 221 | ############################################ 222 | ### Readme.txt ### 223 | ############################################ 224 | cat << EOF > ~/Desktop/Readme 225 | 226 | 227 | --- SteamBSD © is FREE operating system. 228 | Site: https://lpros.blogspot.com 229 | Github (inet): https://github.com/steambsd/os 230 | Telegram: https://t.me/steambsd 231 | 232 | --- Help to SteamBSD project 233 | MIR: 2200 7010 1498 6795 234 | YMoney: https://yoomoney.ru/to/4100117613550064 235 | DAlerts: https://www.donationalerts.com/r/steambsd 236 | 237 | --- Help to SteamBSD from BANK (Tinkoff) 238 | Beneficiary 40817810600060275658 239 | Beneficiary Bank: T-BANK 240 | BIK: 044525974 241 | 242 | --- Help to SteamBSD (CONTACT METHOD) 243 | Link: https://www.contact-sys.com/ 244 | Name: VYSOCHIN DMITRIY VALENTINOVICH 245 | My Phone: +7-963-810-26-31 246 | 247 | --- Help the SteamBSD project with cryptocurrencies 248 | DonatePay: https://new.donatepay.ru/@972255 249 | Green WT (BTC): 3GP3TM46FbczJL4YrGrFnspfH5RzXY7soo 250 | MetaMask (ETH): 0x114aB181D26807BdA2A7763e1e37c4D2c438C066 251 | 252 | --- Other information 253 | Skype: Progres Light 254 | Email: steambsd@gmail.com 255 | RSS: https://lpros.blogspot.com/feeds/posts/default 256 | EOF 257 | 258 | ############################################ 259 | ### Plugins for Steam ### 260 | ############################################ 261 | #pip install steam-acolyte 262 | #export PATH=$PATH:.local/bin/ 263 | #xterm -geometry 40x4-500+0 -e steam-acolyte & 264 | 265 | ############################################ 266 | ### Final ### 267 | ############################################ 268 | mv ~/reconfig ~/.reconfig 269 | sudo su root -c "rm /usr/local/etc/xdg/autostart/wine.desktop" 270 | sudo su root -c "rm /usr/local/etc/xdg/autostart/steam-start.desktop" 271 | sudo su root -c "rm /usr/local/etc/xdg/autostart/mount-a.desktop" 272 | 273 | mv ~/.steam-wine ~/.steam-wine.save >> /dev/null 2>&1 274 | mv ~/.steam-winepro ~/.steam-winepro.save >> /dev/null 2>&1 275 | mv ~/.steam-compat ~/.steam-compat.save >> /dev/null 2>&1 276 | mv ~/.steam-acolyte ~/.steam-acolyte.save >> /dev/null 2>&1 277 | sudo su root -c "echo '[Desktop Entry]' > /usr/local/etc/xdg/autostart/steam-acolyte-link.desktop" 278 | sudo su root -c "echo 'Name=steam-acolyte-link' >> /usr/local/etc/xdg/autostart/steam-acolyte-link.desktop" 279 | sudo su root -c "echo 'Type=Application' >> /usr/local/etc/xdg/autostart/steam-acolyte-link.desktop" 280 | sudo su root -c "echo 'Exec=steam-acolyte' >> /usr/local/etc/xdg/autostart/steam-acolyte-link.desktop" 281 | sudo su root -c "echo 'Terminal=false' >> /usr/local/etc/xdg/autostart/steam-acolyte-link.desktop" 282 | 283 | ############################################ 284 | ### Fix VMs shortcut 7zip bugs ### 285 | ############################################ 286 | sleep 50 287 | cd ~ 288 | rm 'Desktop/7-Zip File Manager.desktop' >> /dev/null 2>&1 289 | rm 'Desktop/7-Zip Help.desktop' >> /dev/null 2>&1 290 | 291 | echo '################################################' 292 | echo '### Recommendations ###' 293 | echo '################################################' 294 | echo 'If LAN not work, run "doas bsdconfig networking"' 295 | echo 'Please wait if Steam updates.' 296 | echo 'It is recommended to install PROTON right now.' 297 | echo 'Just open Utils on desktop and do p1,p2,p3...' 298 | echo '-------------------------------------' 299 | printf "\033[1;32mReconfig was successful!\033[0;m\n" 300 | printf "\033[1;34mYou may reboot later.\033[0;m\n" 301 | echo '-------------------------------------' 302 | echo -n 'Do you want to reboot PC now? (yes, no): ' 303 | read ans 304 | case "$ans" in 305 | [Yy]|[Yy][Ee][Ss]) 306 | echo "OK. Good bye." 307 | sudo reboot 308 | ;; 309 | [Nn]|[Nn][Oo]) 310 | echo "OK. Go on." 311 | ;; 312 | *) 313 | echo "Error. Please, type yes or no." 314 | ;; 315 | esac 316 | -------------------------------------------------------------------------------- /utils: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | while : 4 | do 5 | 6 | clear 7 | 8 | echo '### proton' 9 | echo 'p1 - install proton' 10 | echo 'p2 - select emulators/wine-proton in Settings -> Steam Play' 11 | echo 'p3 - download simple free game (High Octane Drift)' 12 | echo '### install steam game by id' 13 | echo 'idc - install game by id for steam-compat' 14 | echo 'idp - install game by id for steam-winepro' 15 | echo 'idw - install game by id for steam-wine' 16 | echo '### reinstall steam repo (you need reboot PC)' 17 | echo 'ruc - update steam code ' 18 | echo 'rui - update steam code and i386 libraries' 19 | echo 'rup - reinstall proton with save steam' 20 | echo 'sar - script-autostart restore for wine, winepro, compat and acolyte' 21 | echo 'sam - script autostart move to save for wine, winepro, compat and acolyte' 22 | echo '### reinstall / update other programs' 23 | echo 'lur - legendary (epic-games) update/reinstall' 24 | echo 'pur - pip (python package manager) update/reinstall' 25 | echo '### add switch keyboard layout (temporary)' 26 | echo 'kru - add keyboard layout for russian (switch alt-shift)' 27 | echo 'kgr - add keyboard layout for greek (switch alt-shift)' 28 | echo '### ufs backup' 29 | echo 'uc - construct full backup of system' 30 | echo 'ud - delete all backups of system' 31 | echo 'ul - list backups of system' 32 | echo 'ur - restore latest backup of system' 33 | echo '### zfs snapshot' 34 | echo 'zc - construct full snapshot of system' 35 | echo 'zd - delete full snapshot of system' 36 | echo 'zl - list snapshot of system' 37 | echo 'zr - restore full snapshot of system' 38 | echo '### video drivers (you need reboot PC)' 39 | echo 'drm - install latest drm-kmod and addons xf86... (for intel and amdgpu)' 40 | echo 'dnv - install latest nvidia-driver, linux-nvidia-libs & nvidia-settings' 41 | echo 'gsa - graphic switch to amdgpu (if you have all preinstalled drivers)' 42 | echo 'gsn - graphic switch to nvidia (if you have all preinstalled drivers)' 43 | echo 'gsi - graphic switch to intel (if you have all preinstalled drivers)' 44 | echo '800 - add screen resolution 800x600 to xorg.conf (small window of VM)' 45 | echo '### system commands' 46 | echo 'bd - boost down' 47 | echo 'cam - test webcam using pwcview' 48 | echo 'glx - test 3d-graphic using glxgears' 49 | echo 'ovl - open video by link using mpv' 50 | echo 'clr - clear system (small files, packages and etc)' 51 | echo 'csa - open console of steam' 52 | echo 'dsa - download or run Steam-Authenticator' 53 | echo 'rad - replace automont to dsbmd (other method to mount media)' 54 | #echo 'xsr - xscreensaver restore' 55 | #echo 'xsm - xscreensaver move to save' 56 | echo 'ssh - enable SSH' 57 | echo 'rbt - reboot PC' 58 | echo 'sht - shutdown PC' 59 | echo 'yet - test python' 60 | echo 'upd - update utils' 61 | echo 'exit - close utils' 62 | echo '' 63 | echo -n 'Choose your number: ' 64 | read ans 65 | case "$ans" in 66 | pcons) 67 | ### open with console 68 | kill -9 `cat ./.steam/steam.pid` > /dev/null 2>&1 69 | sleep 2 70 | kill -9 `cat ./.steam/steam.pid` > /dev/null 2>&1 71 | lxterminal --geometry=40x4 -e /opt/steam-utils/bin/steam -console & 72 | ;; 73 | pveryold) 74 | ### install proton 6.3 75 | kill -9 `cat ./.steam/steam.pid` > /dev/null 2>&1 76 | sleep 2 77 | kill -9 `cat ./.steam/steam.pid` > /dev/null 2>&1 78 | lxterminal --geometry=40x4 -e /opt/steam-utils/bin/steam "steam://install/1580130" & 79 | ;; 80 | pold) 81 | ### install proton 7.0 82 | kill -9 `cat ./.steam/steam.pid` > /dev/null 2>&1 83 | sleep 2 84 | kill -9 `cat ./.steam/steam.pid` > /dev/null 2>&1 85 | lxterminal --geometry=40x4 -e /opt/steam-utils/bin/steam "steam://install/1887720" & 86 | ;; 87 | p1) 88 | ### install proton 8.0 89 | kill -9 `cat ./.steam/steam.pid` > /dev/null 2>&1 90 | sleep 2 91 | kill -9 `cat ./.steam/steam.pid` > /dev/null 2>&1 92 | lxterminal --geometry=40x4 -e /opt/steam-utils/bin/steam "steam://install/2348590" & 93 | ;; 94 | pdev) 95 | ### install proton 9.0 96 | kill -9 `cat ./.steam/steam.pid` > /dev/null 2>&1 97 | sleep 2 98 | kill -9 `cat ./.steam/steam.pid` > /dev/null 2>&1 99 | lxterminal --geometry=40x4 -e /opt/steam-utils/bin/steam "steam://install/xxxxxxx" & 100 | ;; 101 | p1s) 102 | ### install slrs 103 | killall -HUP lxterminal 104 | kill -9 `cat ./.steam/steam.pid` > /dev/null 2>&1 105 | sleep 2 106 | kill -9 `cat ./.steam/steam.pid` > /dev/null 2>&1 107 | lxterminal --geometry=40x4 -e /opt/steam-utils/bin/steam "steam://install/1391110" & 108 | ;; 109 | p2) 110 | ### select emulators/wine-proton in properties 111 | killall -HUP lxterminal 112 | kill -9 `cat ./.steam/steam.pid` > /dev/null 2>&1 113 | sleep 2 114 | kill -9 `cat ./.steam/steam.pid` > /dev/null 2>&1 115 | sleep 2 116 | #/opt/steam-utils/bin/lsu-register-proton 117 | lsu-register-proton 118 | sleep 6 119 | lxterminal --geometry=40x4 -e /opt/steam-utils/bin/steam & 120 | ;; 121 | p3) 122 | ### download simple game 123 | killall -HUP lxterminal 124 | kill -9 `cat ./.steam/steam.pid` > /dev/null 2>&1 125 | sleep 2 126 | kill -9 `cat ./.steam/steam.pid` > /dev/null 2>&1 127 | lxterminal --geometry=40x4 -e /opt/steam-utils/bin/steam "steam://install/457330" & 128 | ;; 129 | idc) 130 | ### install game for steam-compat 131 | lxterminal --geometry=40x4 -e sh .idc & 132 | ;; 133 | idp) 134 | ### install game for steam-compat 135 | lxterminal --geometry=40x4 -e sh .idp & 136 | ;; 137 | idw) 138 | ### install game for steam-wine 139 | lxterminal --geometry=40x4 -e sh .idw & 140 | ;; 141 | ruc) 142 | ### reinstall 143 | cd ~ 144 | rm -rf .steam 145 | sudo rm -rf /opt/steam-utils 146 | cd /etc/ins 147 | sudo rm -rf linuxulator-steam-utils-master 148 | sudo rm -rf master.zip 149 | sudo fetch https://github.com/shkhln/linuxulator-steam-utils/archive/refs/heads/master.zip 150 | sudo unzip master.zip 151 | cd linuxulator-steam-utils-master 152 | sudo make 153 | sudo make install 154 | cd ~ 155 | ### restore 156 | mv ~/.steam-wine.save ~/.steam-wine 157 | mv ~/.steam-winepro.save ~/.steam-winepro 158 | mv ~/.steam-compat.save ~/.steam-compat 159 | mv ~/.steam-acolyte.save ~/.steam-acolyte 160 | sudo su root -c "rm /usr/local/etc/xdg/autostart/steam-acolyte-link.desktop" 161 | ;; 162 | rui) 163 | ### reinstall 164 | cd ~ 165 | sudo rm -rf .steam 166 | sudo rm -rf .i386-wine-pkg 167 | sudo rm -rf /opt/steam-utils 168 | cd /etc/ins 169 | sudo rm -rf linuxulator-steam-utils-master 170 | sudo rm -rf master.zip 171 | sudo fetch https://github.com/shkhln/linuxulator-steam-utils/archive/refs/heads/master.zip 172 | sudo unzip master.zip 173 | cd linuxulator-steam-utils-master 174 | sudo make 175 | sudo make install 176 | cd ~ 177 | ### restore 178 | mv ~/.steam-wine.save ~/.steam-wine 179 | mv ~/.steam-winepro.save ~/.steam-winepro 180 | mv ~/.steam-compat.save ~/.steam-compat 181 | mv ~/.steam-acolyte.save ~/.steam-acolyte 182 | sudo su root -c "rm /usr/local/etc/xdg/autostart/steam-acolyte-link.desktop" 183 | ;; 184 | rup) 185 | ### reinstall proton with save steam 186 | rm -rf ~/.steam/steam/compatibilitytools.d/FreeBSD_Proton 187 | 188 | sudo rm -rf /opt/steam-utils 189 | cd /etc/ins 190 | sudo rm -rf linuxulator-steam-utils-master 191 | sudo rm -rf master.zip 192 | sudo fetch https://github.com/shkhln/linuxulator-steam-utils/archive/refs/heads/master.zip 193 | sudo unzip master.zip 194 | cd linuxulator-steam-utils-master 195 | sudo make 196 | sudo make install 197 | 198 | echo 'Please do p1,p2,p3 of Proton section' 199 | sleep 6 200 | cd ~ 201 | ;; 202 | rur) 203 | ### reinstall 204 | cd ~ 205 | sudo rm -rf .steam 206 | sudo rm -rf .i386-wine-pkg 207 | sudo rm -rf /opt/steam-utils 208 | cd /etc/ins 209 | sudo rm -rf linuxulator-steam-utils-master 210 | sudo rm -rf master.zip 211 | echo 'Please, enter tag: ' 212 | read tag 213 | sudo fetch https://github.com/shkhln/linuxulator-steam-utils/archive/refs/tags/$tag.zip 214 | sudo unzip $tag.zip 215 | sudo mv linuxulator-steam-utils-$tag linuxulator-steam-utils-master 216 | cd linuxulator-steam-utils-master 217 | sudo make 218 | sudo make install 219 | cd ~ 220 | ### restore 221 | mv ~/.steam-wine.save ~/.steam-wine 222 | mv ~/.steam-winepro.save ~/.steam-winepro 223 | mv ~/.steam-compat.save ~/.steam-compat 224 | mv ~/.steam-acolyte.save ~/.steam-acolyte 225 | sudo su root -c "rm /usr/local/etc/xdg/autostart/steam-acolyte-link.desktop" 226 | ;; 227 | sar) 228 | ### restore 229 | mv ~/.steam-wine.save ~/.steam-wine 230 | mv ~/.steam-winepro.save ~/.steam-winepro 231 | mv ~/.steam-compat.save ~/.steam-compat 232 | mv ~/.steam-acolyte.save ~/.steam-acolyte 233 | sudo su root -c "rm /usr/local/etc/xdg/autostart/steam-acolyte-link.desktop" 234 | ;; 235 | sam) 236 | ### move 237 | mv ~/.steam-wine ~/.steam-wine.save 238 | mv ~/.steam-winepro ~/.steam-winepro.save 239 | mv ~/.steam-compat ~/.steam-compat.save 240 | mv ~/.steam-acolyte ~/.steam-acolyte.save 241 | sudo su root -c "echo '[Desktop Entry]' > /usr/local/etc/xdg/autostart/steam-acolyte-link.desktop" 242 | sudo su root -c "echo 'Name=steam-acolyte' >> /usr/local/etc/xdg/autostart/steam-acolyte-link.desktop" 243 | sudo su root -c "echo 'Type=Application' >> /usr/local/etc/xdg/autostart/steam-acolyte-link.desktop" 244 | sudo su root -c "echo 'Exec=steam-acolyte' >> /usr/local/etc/xdg/autostart/steam-acolyte-link.desktop" 245 | sudo su root -c "echo 'Terminal=false' >> /usr/local/etc/xdg/autostart/steam-acolyte-link.desktop" 246 | ;; 247 | lur) 248 | fetch https://github.com/derrod/legendary/archive/refs/heads/master.zip 249 | unzip master.zip 250 | cd legendary-master 251 | sudo /usr/local/bin/python3.8 setup.py install 252 | cd .. 253 | rm master.zip 254 | rm -rf legendary-master 255 | ;; 256 | pur) 257 | fetch https://bootstrap.pypa.io/get-pip.py 258 | sudo /usr/local/bin/python3.7 get-pip.py 259 | rm get-pip.py 260 | ;; 261 | kru) 262 | setxkbmap -layout "us,ru" -option "grp:alt_shift_toggle,grp_led:scroll" 263 | ;; 264 | kgr) 265 | setxkbmap -layout "us,gr" -option "grp:alt_shift_toggle,grp_led:scroll" 266 | ;; 267 | uc) 268 | ### create 269 | echo '==> Starting a backup...' 270 | 271 | DATE=`date '+%Y-%m-%d-%H-%M'` 272 | TYPE='dump' 273 | NAME="${TYPE}_${DATE}.tar.gz" 274 | 275 | sudo mkdir /backup 276 | cd /backup 277 | sudo tar czvf ${NAME} --exclude=/home/${USER}/Downloads --exclude=/tmp --exclude=/mnt --exclude=/media --exclude=/proc --exclude=/zroot --exclude=/backup / 278 | 279 | cd ~ 280 | echo "==> Complete! Name of backup: ${NAME}" 281 | sleep 4 282 | ;; 283 | ud) 284 | ### delete 285 | echo '==> Starting remove all backups...' 286 | sudo rm -rf /backup/* 287 | sleep 4 288 | ;; 289 | ul) 290 | ### list 291 | echo '==> List of backups (see /backup folder):' 292 | sudo ls /backup 293 | sleep 4 294 | ;; 295 | ur) 296 | ### restore 297 | echo '==> Starting a restore...' 298 | RNAME=`sudo ls /backup | tail -n1` 299 | sudo tar xzvf /backup/${RNAME} -C / 300 | sleep 4 301 | ;; 302 | zc) 303 | ### create snapshot zroot 304 | sudo zfs snapshot -r tank@backup 305 | ;; 306 | zd) 307 | ### delete snapshot zroot 308 | sudo zfs destroy -r tank@backup 309 | ;; 310 | zl) 311 | ### list 312 | zfs list -t snapshot 313 | echo 'sleep 5 sec' 314 | sleep 5 315 | ;; 316 | zr) 317 | ### restore snapshot zroot 318 | sudo zfs rollback tank@backup 319 | sudo zfs rollback tank/ROOT@backup 320 | sudo zfs rollback tank/ROOT/default@backup 321 | #sudo zfs rollback tank/tmp@backup 322 | sudo zfs rollback tank/usr@backup 323 | sudo zfs rollback tank/usr/home@backup 324 | sudo zfs rollback tank/usr/ports@backup 325 | sudo zfs rollback tank/usr/src@backup 326 | sudo zfs rollback tank/var@backup 327 | sudo zfs rollback tank/var/audit@backup 328 | sudo zfs rollback tank/var/crash@backup 329 | sudo zfs rollback tank/var/log@backup 330 | sudo zfs rollback tank/var/mail@backup 331 | #sudo zfs rollback tank/var/tmp@backup 332 | ;; 333 | drm) 334 | ### install drm-kmod and addons 335 | sudo pkg delete -f -y drm-kmod xf86-video-amdgpu xf86-video-intel 336 | sudo pkg ins -y drm-kmod xf86-video-amdgpu xf86-video-intel 337 | ;; 338 | dnv) 339 | ### install latest nvidia-driver and addons 340 | sudo pkg delete -f -y nvidia-driver linux-nvidia-libs 341 | sudo pkg delete -f -y nvidia-driver-304 linux-nvidia-libs-304 342 | sudo pkg delete -f -y nvidia-driver-340 linux-nvidia-libs-340 343 | sudo pkg delete -f -y nvidia-driver-390 linux-nvidia-libs-390 344 | sudo pkg delete -f -y nvidia-driver-470 linux-nvidia-libs-470 345 | sudo pkg delete -f -y nvidia-settings 346 | sudo pkg ins -y nvidia-driver linux-nvidia-libs nvidia-settings 347 | ;; 348 | gsa) 349 | ### switch to amdgpu 350 | sudo rm /usr/local/etc/X11/xorg.conf.d/xorg.conf 351 | sudo sysrc kld_list="/boot/modules/amdgpu.ko" 352 | ;; 353 | gsn) 354 | ### switch to nvidia 355 | sudo cp /usr/local/etc/X11/xorg.conf.d/xorg.conf.nvidia /usr/local/etc/X11/xorg.conf.d/xorg.conf 356 | sudo sysrc kld_list="/boot/modules/nvidia-modeset.ko" 357 | ;; 358 | gsi) 359 | ### switch to intel 360 | sudo rm /usr/local/etc/X11/xorg.conf.d/xorg.conf 361 | sudo sysrc kld_list="/boot/modules/i915kms.ko" 362 | ;; 363 | 800) 364 | ### add screen resolution 800x600 365 | sudo su root -c 'cat << EOF >> /usr/local/etc/X11/xorg.conf.d/xorg.conf 366 | 367 | Section "Screen" 368 | Identifier "Screen0" 369 | Monitor "Monitor0" 370 | SubSection "Display" 371 | Viewport 0 0 372 | Depth 24 373 | Modes "800x600" 374 | EndSubSection 375 | EndSection 376 | EOF' 377 | ;; 378 | bd) 379 | ### boost down 380 | compton & 381 | cairo-clock -w 200 -h 200 -x 200 -y 200 -s -t simple & 382 | sudo service syslogd start 383 | #sudo service cleartmp start 384 | sudo kldload ext2fs 385 | sudo kldload udf 386 | sudo sysctl kern.vt.enable_bell=1 387 | sudo sysctl hw.syscons.bell=1 388 | sleep 2 389 | ;; 390 | cam) 391 | ### open webcam 392 | lxterminal --geometry=38x4 -e sh .video-camera 393 | ;; 394 | glx) 395 | ### open webcam 396 | lxterminal --geometry=38x4 -e glxgears 397 | ;; 398 | ovl) 399 | ### open video 400 | lxterminal --geometry=60x4 -e sh .video-stream 401 | ;; 402 | clr) 403 | ### clear 404 | sudo pkg clean -y 405 | sudo rm -rf /etc/ins/* 406 | rm -rf ~/.cache/winetricks/* 407 | find . -name DS_Store -type d -delete 408 | find . -name *.log -type f -delete 409 | sleep 2 410 | ;; 411 | csa) 412 | ### open console of steam 413 | killall -HUP lxterminal 414 | kill -9 `cat ./.steam/steam.pid` > /dev/null 2>&1 415 | sleep 2 416 | kill -9 `cat ./.steam/steam.pid` > /dev/null 2>&1 417 | lxterminal --geometry=40x4 -e /opt/steam-utils/bin/steam "steam://open/console" & 418 | ;; 419 | dsa) 420 | ### download steam autenticator 421 | 422 | if [ -d "/home/$USER/.wine/dosdevices/c:/Program Files/SDA" ]; then 423 | cd "/home/$USER/.wine/dosdevices/c:/Program Files/SDA" 424 | lxterminal --geometry=40x4 -e wine 'Steam Desktop Authenticator.exe' & 425 | else 426 | 427 | # block of wine-32 installation 428 | /usr/local/share/wine/pkg32.sh install -y wine mesa-dri 429 | winetricks -q 7zip 430 | 431 | mkdir "/home/$USER/.wine/dosdevices/c:/Program Files/SDA" 432 | echo "==> Please, use folder: /home/$USER/.wine/dosdevices/c:/Program Files/SDA" 433 | sleep 4 434 | cd "/home/$USER/.wine/dosdevices/c:/Program Files/SDA" 435 | fetch https://github.com/Jessecar96/SteamDesktopAuthenticator/releases/download/1.0.13/SDA.1.0.13.zip 436 | unzip SDA.1.0.13.zip 437 | rm SDA.1.0.13.zip 438 | lxterminal --geometry=40x4 -e wine 'Steam Desktop Authenticator.exe' & 439 | fi 440 | cd ~ 441 | ;; 442 | rad) 443 | # replace automont to dsbmd 444 | sudo pkg delete -f -y automount 445 | sudo pkg ins -y vlc 446 | sudo pkg ins -y dsbmc-cli 447 | sudo pkg ins -y dsbmc 448 | sudo pkg ins -y dsbmd 449 | 450 | #pkg ins -y fusefs-exfat 451 | #pkg ins -y fusefs-gphotofs 452 | #pkg ins -y fusefs-ntfs 453 | #pkg ins -y fusefs-simple-mtpfs 454 | #pkg ins -y fusefs-ext2 455 | #pkg ins -y fusefs-hfsfuse 456 | #pkg ins -y fusefs-lkl 457 | sudo sysrc dsbmd_enable=YES 458 | sudo service dsbmd start 459 | sudo echo 'dsbmc-cli -a &' >> /home/$USER/.xinitrc 460 | sudo echo 'dsbmc -i &' >> /home/$USER/.xinitrc 461 | 462 | cat << EOF > /home/$USER/.dsbmc 463 | #!/bin/sh 464 | sudo killall -HUP dsbmc 465 | dsbmc 466 | EOF 467 | sudo chmod +x dsbmc 468 | 469 | cat << EOF > Desktop/Media.desktop 470 | [Desktop Entry] 471 | Name=Media 472 | Exec=sh .dsbmc 473 | StartupNotify=true 474 | Type=Application 475 | Icon=drive-removable-media-usb-pendrive 476 | EOF 477 | ;; 478 | xsr) 479 | ### restore xscreensaver 480 | sudo rm /usr/local/bin/xscreensaver 481 | sudo mv /usr/local/bin/xscreensaver.save /usr/local/bin/xscreensaver 482 | ;; 483 | xsm) 484 | ### move xscreensaver 485 | sudo mv /usr/local/bin/xscreensaver /usr/local/bin/xscreensaver.save 486 | sudo touch /usr/local/bin/xscreensaver 487 | ;; 488 | ssh) 489 | ### ssh 490 | sudo sysrc sshd_enable=YES 491 | sudo service sshd start 492 | ;; 493 | rbt) 494 | ### reboot 495 | sudo shutdown -r now 496 | ;; 497 | sht) 498 | ### shutdown 499 | sudo shutdown -p now 500 | ;; 501 | tst) 502 | echo 'This is test.' 503 | sleep 1 504 | ;; 505 | yet) 506 | echo 'This is test of python 3.9' 507 | sleep 1 508 | python3.9 .yet.py 509 | ;; 510 | upd) 511 | ### update utils 512 | fetch https://github.com/steambsd/os/archive/go.zip 513 | unzip go.zip 514 | mv os-go/utils .utils 515 | sudo chmod +x .utils 516 | rm -rf os-go 517 | rm go.zip 518 | xterm -geometry 73x55-0-50 -e ./.utils & 519 | sleep 2 520 | break 521 | ;; 522 | exit) 523 | echo 'Exit.' 524 | sleep 1 525 | break 526 | ;; 527 | *) 528 | echo "Error. Please, type number. Start again..." 529 | ;; 530 | esac 531 | done 532 | -------------------------------------------------------------------------------- /network: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | # Copyright (c) 2017-2021 Slawomir Wojciech Wojtczak (vermaden) 4 | # All rights reserved. 5 | # 6 | # THIS SOFTWARE USES FREEBSD LICENSE (ALSO KNOWN AS 2-CLAUSE BSD LICENSE) 7 | # https://www.freebsd.org/copyright/freebsd-license.html 8 | # 9 | # Redistribution and use in source and binary forms, with or without 10 | # modification, are permitted provided that following conditions are met: 11 | # 1. Redistributions of source code must retain the above copyright 12 | # notice, this list of conditions and the following disclaimer. 13 | # 2. Redistributions in binary form must reproduce the above copyright 14 | # notice, this list of conditions and the following disclaimer in the 15 | # documentation and/or other materials provided with the distribution. 16 | # 17 | # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS 'AS IS' AND ANY 18 | # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | # DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY 21 | # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26 | # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | # 28 | # ------------------------------ 29 | # NETWORK MANAGEMENT network.sh 30 | # ------------------------------ 31 | # vermaden [AT] interia [DOT] pl 32 | # https://vermaden.wordpress.com 33 | 34 | # SETTINGS 35 | UNBOUND=0 36 | LAN_IF=em0 37 | LAN_RANDOM_MAC=0 38 | WLAN_IF=wlan0 39 | WLAN_PH=iwn0 40 | WLAN_RANDOM_MAC=0 41 | WLAN_COUNTRY=PL 42 | WLAN_REGDOMAIN=NONE 43 | WWAN_IF=tun0 44 | WWAN_PROFILE=WWAN 45 | NAME=${0##*/} 46 | NETFS="nfs,smbfs,fusefs.sshfs" 47 | TIMEOUT=16 48 | DELAY=0.5 49 | SUDO_WHICH=0 50 | SUDO=0 51 | DOAS_WHICH=0 52 | DOAS=1 53 | ROOT=0 54 | IP_REGEX='[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' 55 | 56 | # DISPLAY VERSION 57 | if [ "${1}" = "--version" -o \ 58 | "${1}" = "-version" -o \ 59 | "${1}" = "version" ] 60 | then 61 | 62 | echo " ___ ___ ___ " 63 | echo " ____ __\ \__ __ __ __ __\_ \ __ _____/ / " 64 | echo " / \/ \_ _\\\ \ \/ \ \ \/ / / __/ \ " 65 | echo " \ \ \ '__\ \_ \ \ \ \ \ \ \__\__ \ / / " 66 | echo " \__\__\__/ \___\______/____/\__\_/\_\_/____//__/ " 67 | echo 68 | echo "network.sh 0.7 2021/01/25" 69 | echo 70 | exit 0 71 | fi 72 | 73 | # CHECK doas(8) WITH which(1) 74 | if which doas 1> /dev/null 2> /dev/null 75 | then 76 | DOAS_WHICH=1 77 | else 78 | DOAS_WHICH=0 79 | fi 80 | 81 | # CHECK sudo(8) WITH which(1) 82 | if which sudo 1> /dev/null 2> /dev/null 83 | then 84 | SUDO_WHICH=1 85 | else 86 | SUDO_WHICH=0 87 | fi 88 | 89 | # CHECK USER WITH whoami(1) 90 | if [ "$( whoami )" = "root" ] 91 | then 92 | ROOT=1 93 | fi 94 | 95 | # CHOOSE ONE FROM doas(8) AND sudo(8) 96 | if [ ${DOAS_WHICH} -eq 1 -o ${SUDO_WHICH} -eq 1 ] 97 | then 98 | if [ ${DOAS} -eq 0 -a ${SUDO} -eq 1 -a ${SUDO_WHICH} -eq 1 ] 99 | then 100 | CMD=sudo 101 | elif [ ${DOAS} -eq 1 -a ${SUDO} -eq 0 -a ${DOAS_WHICH} -eq 1 ] 102 | then 103 | CMD=doas 104 | elif [ ${DOAS} -eq 1 -a ${SUDO} -eq 1 -a ${DOAS_WHICH} -eq 1 ] 105 | then 106 | CMD=doas 107 | fi 108 | elif [ ${ROOT} -eq 1 ] 109 | then 110 | CMD='' 111 | else 112 | echo "NOPE: This script needs doas(1) or sudo(1) to work properly." 113 | exit 1 114 | fi 115 | 116 | unset SUDO_WHICH 117 | unset DOAS_WHICH 118 | unset ROOT 119 | 120 | # random_mac() ---------------------------------------------------------------- 121 | __random_mac() { # 1=INTERFACE 122 | # DO NOT PUT echo '__random_mac()' HERE 123 | 124 | MAC_OUI=$( ifconfig ${1} | awk '/hwaddr/ {print $2}' | awk -F ':' '{print $1 ":" $2 ":" $3}' ) 125 | MAC_RAN=$( env LC_ALL=C tr -c -d '0-9a-f' < /dev/random | head -c 6 | sed -e 's|\(..\)|\1:|g' -e 's|:$||' ) 126 | echo ${MAC_OUI}:${MAC_RAN} 127 | } 128 | 129 | # wlan_wait_associated() ------------------------------------------------------ 130 | __wlan_wait_associated() { 131 | echo '__wlan_wait_associated()' 132 | 133 | local COUNT=0 134 | while : 135 | do 136 | local STATUS=$( ifconfig ${WLAN_IF} | awk '/status/ {print $2}' ) 137 | if [ "${STATUS}" = "associated" ] 138 | then 139 | break 140 | fi 141 | local COUNT=$(( ${COUNT} + 1 )) 142 | if [ ${COUNT} -gt ${TIMEOUT} ] 143 | then 144 | echo "NOPE: Could not associate with WLAN network." 145 | __network_reset 146 | exit 1 147 | fi 148 | sleep ${DELAY} 149 | done 150 | } 151 | 152 | # net_shares_umount() --------------------------------------------------------- 153 | __net_shares_umount() { 154 | echo '__net_shares_umount()' 155 | 156 | #DOAS# permit nopass :network as root cmd killall 157 | #SUDO# %network ALL = NOPASSWD: /usr/bin/killall * 158 | ${CMD} killall -9 sshfs & 159 | echo ${CMD} killall -9 sshfs 160 | 161 | mount -t ${NETFS} -p \ 162 | | awk '{print $2}' \ 163 | | while read MNT 164 | do 165 | 166 | #DOAS# permit nopass :network as root cmd umount 167 | #SUDO# %network ALL = NOPASSWD: /sbin/umount -f * 168 | ${CMD} umount -f "${MNT}" & 169 | echo ${CMD} umount -f "${MNT}" 170 | 171 | done 172 | } 173 | 174 | # network_status() ------------------------------------------------------------ 175 | __network_status() { 176 | 177 | local COL1='\033[38;05;1m' 178 | local COL2='\033[38;05;2m' 179 | local COL3='\033[38;05;3m' 180 | local COL4='\033[38;05;4m' 181 | local COL5='\033[38;05;5m' 182 | local COLe='\033[0m' 183 | local DNS=$( grep -m 1 nameserver /etc/resolv.conf | awk '{print $NF}' ) 184 | local ROUTE=$( route -n show default 2> /dev/null ) 185 | local DGW=$( echo "${ROUTE}" | awk '/gateway:/ {print $NF}' ) 186 | local GREP_COLOR=34 187 | 188 | if [ "$( ifconfig -u -l )" = "lo0" ] 189 | then 190 | echo 'NOPE: Network is down.' 191 | exit 0 192 | fi 193 | 194 | echo -e "${COL1}// Print Network Interfaces with netstat(1)${COLe}" 195 | echo -e "# ${COL2}netstat -W -i -f inet${COLe}" 196 | netstat -W -i -f inet | grep --color -C 256 -E "${IP_REGEX}" 197 | echo 198 | 199 | echo -e "${COL1}// Print Network Interfaces with ifconfig(8)${COLe}" 200 | echo -e "# ${COL2}ifconfig -u -f inet:cidr,inet6:cidr${COLe}" 201 | ifconfig -u -f inet:cidr,inet6:cidr | grep --color -C 256 -E "${IP_REGEX}" 202 | echo 203 | 204 | echo -e "${COL1}// Print Default Gateway with route(8)${COLe}" 205 | echo -e "# ${COL2}route -n show default${COLe}" 206 | echo "${ROUTE}" | grep --color -C 256 -E "${IP_REGEX}" 207 | echo 208 | 209 | if [ "${ROUTE}" != "" ] 210 | then 211 | return 212 | fi 213 | 214 | echo -e "${COL1}// ping(8) GW/Default Gateway${COLe}" 215 | echo -e "# ${COL2}ping -q -c 1 -t 3 -s 1 ${DGW}${COLe}" 216 | ping -q -c 1 -t 3 -s 1 ${DGW} | sed 2,3d | grep --color -C 256 -E "${IP_REGEX}" 217 | echo 218 | 219 | echo -e "${COL1}// ping(8) DNS/Domain Name Server${COLe}" 220 | echo -e "# ${COL2}ping -q -c 1 -t 3 -s 1 ${DNS}${COLe}" 221 | ping -q -c 1 -t 3 -s 1 ${DNS} | sed 2,3d | grep --color -C 256 -E "${IP_REGEX}" 222 | echo 223 | 224 | echo -e "${COL1}// Check DNS Resolution with ping(8)${COLe}" 225 | echo -e "# ${COL2}ping -q -c 1 -t 3 -s 1 freebsd.org${COLe}" 226 | ping -q -c 1 -t 3 -s 1 freebsd.org | sed 2,3d | grep --color -C 256 -E "${IP_REGEX}" 227 | echo 228 | 229 | } 230 | 231 | # network_reset() ------------------------------------------------------------- 232 | __network_reset() { 233 | echo '__network_reset()' 234 | 235 | __net_shares_umount & 236 | 237 | #DOAS# permit nopass :network as root cmd killall args -9 wpa_supplicant 238 | #SUDO# %network ALL = NOPASSWD: /usr/bin/killall -9 wpa_supplicant 239 | ${CMD} killall -9 wpa_supplicant 1> /dev/null 2> /dev/null 240 | echo ${CMD} killall -9 wpa_supplicant 241 | 242 | #DOAS# permit nopass :network as root cmd killall args -9 ppp 243 | #SUDO# %network ALL = NOPASSWD: /usr/bin/killall -9 ppp 244 | ${CMD} killall -9 ppp 1> /dev/null 2> /dev/null 245 | echo ${CMD} killall -9 ppp 246 | 247 | #DOAS# permit nopass :network as root cmd killall args -9 dhclient 248 | #SUDO# %network ALL = NOPASSWD: /usr/bin/killall -9 dhclient 249 | ${CMD} killall -9 dhclient 1> /dev/null 2> /dev/null 250 | echo ${CMD} killall -9 dhclient 251 | 252 | #DOAS# permit nopass :network as root cmd ifconfig 253 | #SUDO# %network ALL = NOPASSWD: /sbin/ifconfig * 254 | ${CMD} ifconfig ${LAN_IF} down 255 | echo ${CMD} ifconfig ${LAN_IF} down 256 | 257 | #DOAS# permit nopass :network as root cmd ifconfig 258 | #SUDO# %network ALL = NOPASSWD: /sbin/ifconfig * 259 | ${CMD} ifconfig ${WLAN_IF} down 260 | echo ${CMD} ifconfig ${WLAN_IF} down 261 | 262 | # ${CMD} ifconfig ${WLAN_IF} destroy 2> /dev/null # INSTANT KERNEL PANIC 263 | # echo ${CMD} ifconfig ${WLAN_IF} destroy # INSTANT KERNEL PANIC 264 | # #DOAS# permit nopass :network as root cmd ifconfig # INSTANT KERNEL PANIC 265 | # #SUDO# %network ALL = NOPASSWD: /sbin/ifconfig * # INSTANT KERNEL PANIC 266 | 267 | if [ "${UNBOUND}" != "1" ] 268 | then 269 | #DOAS# permit nopass :network as root cmd tee args /etc/resolv.conf 270 | #SUDO# %network ALL = NOPASSWD: /usr/bin/tee /etc/resolv.conf 271 | echo | ${CMD} tee /etc/resolv.conf 1> /dev/null 272 | echo "echo | ${CMD} tee /etc/resolv.conf" 273 | fi 274 | 275 | #DOAS# permit nopass :network as root cmd /etc/rc.d/netif args onerestart 276 | #SUDO# %network ALL = NOPASSWD: /etc/rc.d/netif onerestart 277 | ${CMD} /etc/rc.d/netif restart 1> /dev/null 2> /dev/null 278 | echo ${CMD} /etc/rc.d/netif restart 279 | } 280 | 281 | # wwan_check() ---------------------------------------------------------------- 282 | __wwan_check() { # 1=PROFILE 283 | echo 'wwan_check()' 284 | 285 | #DOAS# permit nopass :network as root cmd /bin/cat args /etc/ppp/ppp.conf 286 | #SUDO# %network ALL = NOPASSWD: /bin/cat /etc/ppp/ppp.conf 287 | if ! ${CMD} cat /etc/ppp/ppp.conf | grep -q "^${1}:$" 288 | then 289 | echo "NOPE: WWAN '${1}' profile is absent in '/etc/ppp/ppp.conf' file." 290 | exit 1 291 | fi 292 | } 293 | 294 | # dns_check_gateway() ------------------------------------------------------------- 295 | __dns_check_gateway() { 296 | echo '__dns_check_gateway()' 297 | if [ "${UNBOUND}" != "1" ] 298 | then 299 | if ! grep -q nameserver /etc/resolv.conf 300 | then 301 | "${0}" dns gw 302 | fi 303 | fi 304 | } 305 | 306 | # dns_check() ------------------------------------------------------------- 307 | __dns_check() { 308 | echo '__dns_check()' 309 | if [ "${UNBOUND}" != "1" ] 310 | then 311 | local DNS=$( awk '/^nameserver/ {print $2; exit}' /etc/resolv.conf ) 312 | if [ "${DNS}" = "0.0.0.0" ] 313 | then 314 | "${0}" dns 1.1.1.1 315 | fi 316 | fi 317 | } 318 | 319 | # squid_restart() ------------------------------------------------------------- 320 | __squid_restart() { 321 | echo '__squid_restart()' 322 | if pgrep squid 1> /dev/null 2> /dev/null 323 | then 324 | 325 | #DOAS# permit nopass :network as root cmd /usr/sbin/service args squid onerestart 326 | #SUDO# %network ALL = NOPASSWD: /usr/sbin/service squid onerestart 327 | doas service squid onerestart 1> /dev/null 2> /dev/null 328 | echo '__squid_restart()' 329 | 330 | fi 331 | } 332 | 333 | # usage() --------------------------------------------------------------------- 334 | __usage() { 335 | echo "USAGE:" 336 | echo " ${NAME} TYPE [OPTIONS]" 337 | echo 338 | echo "TYPES:" 339 | echo " lan" 340 | echo " wlan" 341 | echo " wwan" 342 | echo " dns" 343 | echo " status" 344 | echo 345 | echo "OPTIONS:" 346 | echo " scan" 347 | echo " start" 348 | echo " start SSID|PROFILE" 349 | echo " stop" 350 | echo " example" 351 | echo 352 | echo "EXAMPLES:" 353 | echo " ${NAME} lan start" 354 | echo " ${NAME} lan start IP.IP.IP.IP/MASK" 355 | echo " ${NAME} lan start IP.IP.IP.IP/MASK GW.GW.GW.GW" 356 | echo " ${NAME} lan restart" 357 | echo " ${NAME} wlan scan" 358 | echo " ${NAME} wlan start" 359 | echo " ${NAME} wlan start HOME-NETWORK-SSID" 360 | echo " ${NAME} wlan restart" 361 | echo " ${NAME} wwan example" 362 | echo " ${NAME} dns onic" 363 | echo " ${NAME} dns udns" 364 | echo " ${NAME} dns nextdns" 365 | echo " ${NAME} dns cloudflare" 366 | echo " ${NAME} dns ibm" 367 | echo " ${NAME} dns random" 368 | echo " ${NAME} dns IP.IP.IP.IP" 369 | echo " ${NAME} doas" 370 | echo " ${NAME} sudo" 371 | echo " ${NAME} status" 372 | echo 373 | exit 1 374 | } 375 | 376 | # usage_lan() ----------------------------------------------------------------- 377 | __usage_lan() { 378 | echo "USAGE:" 379 | echo " ${NAME} lan [OPTIONS]" 380 | echo 381 | echo "EXAMPLES:" 382 | echo " ${NAME} lan start" 383 | echo " ${NAME} lan start IP.IP.IP.IP/MASK" 384 | echo " ${NAME} lan start IP.IP.IP.IP/MASK GW.GW.GW.GW" 385 | echo " ${NAME} lan example" 386 | echo " ${NAME} status" 387 | echo " ${NAME} stop" 388 | echo 389 | echo "CONFIG:" 390 | echo " /etc/rc.conf" 391 | echo 392 | echo "EXAMPLE CONFIG:" 393 | echo " \$ cat /etc/rc.conf" 394 | echo " ifconfig_em0=\"DHCP\"" 395 | echo 396 | exit 1 397 | } 398 | 399 | # usage_wlan() ---------------------------------------------------------------- 400 | __usage_wlan() { 401 | echo "USAGE:" 402 | echo " ${NAME} wlan [OPTIONS]" 403 | echo 404 | echo "EXAMPLES:" 405 | echo " ${NAME} wlan scan" 406 | echo " ${NAME} wlan start" 407 | echo " ${NAME} wlan start HOME-NETWORK-SSID" 408 | echo " ${NAME} wlan example" 409 | echo " ${NAME} status" 410 | echo " ${NAME} stop" 411 | echo 412 | echo "CONFIG:" 413 | echo " /etc/wpa_supplicant.conf" 414 | echo 415 | echo "EXAMPLE CONFIG:" 416 | echo 417 | echo "\$ cat /etc/wpa_supplicant.conf" 418 | echo 419 | echo " network={" 420 | echo " key_mgmt=NONE" 421 | echo " priority=0" 422 | echo " }" 423 | echo 424 | echo " network={" 425 | echo " ssid=\"network\"" 426 | echo " psk=\"PASSWORD\"" 427 | echo " }" 428 | echo 429 | echo " network={" 430 | echo " ssid=\"C001P\"" 431 | echo " scan_ssid=1" 432 | echo " key_mgmt=WPA-EAP" 433 | echo " identity=\"1234\"" 434 | echo " password=\"PASSWORD\"" 435 | echo " eap=PEAP" 436 | echo " phase1=\"peaplabel=0\"" 437 | echo " phase2=\"auth=MSCHAPV2\"" 438 | echo " }" 439 | echo 440 | exit 1 441 | } 442 | 443 | # usage_wwan() ---------------------------------------------------------------- 444 | __usage_wwan() { 445 | echo "USAGE:" 446 | echo " ${NAME} wwan [OPTIONS]" 447 | echo 448 | echo "EXAMPLES:" 449 | echo " ${NAME} wwan start" 450 | echo " ${NAME} wwan start profile" 451 | echo " ${NAME} wwan example" 452 | echo " ${NAME} status" 453 | echo " ${NAME} stop" 454 | echo 455 | echo "CONFIG:" 456 | echo " /etc/ppp/ppp" 457 | echo 458 | echo "EXAMPLE CONFIG:" 459 | echo 460 | echo "\$ cat /etc/ppp/ppp" 461 | echo 462 | echo "default:" 463 | echo " set log Phase Chat LCP IPCP CCP tun command" 464 | echo 465 | echo "${WWAN_PROFILE}:" 466 | echo ' set device /dev/cuaU0' 467 | echo ' set speed 921600' 468 | echo ' set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \' 469 | echo ' \"\" AT OK-AT-OK \' 470 | echo ' AT+CFUN=1 OK \' 471 | echo ' AT+COPS=0 OK \' 472 | echo ' AT+CGDCONT=1,\\\"IP\\\",\\\"www.plusgsm.pl\\\" OK \' 473 | echo ' \dATDT\\T TIMEOUT 80 CONNECT"' 474 | echo ' set logout "ABORT BUSY ABORT ERROR TIMEOUT 60 \"\" +++ATH O ATH OK"' 475 | echo ' set phone *99\#' 476 | echo ' set timeout 300' 477 | echo ' set ifaddr 10.64.32.16/0 10.64.32.16/0 255.255.255.255 0.0.0.0' 478 | echo ' add default HISADDR' 479 | echo ' enable dns' 480 | echo ' disable ipv6cp' 481 | echo 482 | exit 1 483 | } 484 | 485 | # usage_dns() ----------------------------------------------------------------- 486 | __usage_dns() { 487 | echo "USAGE:" 488 | echo " ${NAME} dns [OPTIONS]" 489 | echo 490 | echo "EXAMPLES:" 491 | echo " ${NAME} dns onic" 492 | echo " ${NAME} dns udns" 493 | echo " ${NAME} dns nextdns" 494 | echo " ${NAME} dns cloudflare" 495 | echo " ${NAME} dns ibm" 496 | echo " ${NAME} dns random" 497 | echo " ${NAME} dns IP.IP.IP.IP" 498 | echo 499 | echo "CONFIG:" 500 | echo " /etc/resolv.conf" 501 | echo 502 | echo "EXAMPLE CONFIG:" 503 | echo " \$ cat resolv.conf" 504 | echo " nameserver 87.98.175.85" 505 | echo " nameserver 193.183.98.66" 506 | echo 507 | cat << __EOF 508 | NOLOGGING DNS SERVERS: 509 | 510 | OpenNIC https://servers.opennicproject.org/ 511 | 87.98.175.85 512 | 193.183.98.66 513 | 514 | UncensoredDNS https://blog.uncensoreddns.org/ 515 | 91.239.100.100 (anycast) 516 | 89.233.43.71 (unicast) 517 | 518 | Swiss Privacy Foundation http://privacyfoundation.ch/de/service/server.html 519 | 77.109.138.45 520 | 77.109.139.29 521 | 522 | CCC http://www.ccc.de/censorship/dns-howto 523 | 85.214.20.141 524 | 204.152.184.76 525 | 194.150.168.168 526 | 213.73.91.35 527 | 528 | Comodo Secure DNS https://www.comodo.com/secure-dns/ 529 | 8.26.56.26 530 | 8.20.247.20 531 | 532 | DNS Watch https://dns.watch/index 533 | 84.200.69.80 534 | 84.200.70.40 535 | 536 | Fool DNS http://www.fooldns.com/fooldns-community/ 537 | 87.118.111.215 538 | 213.187.11.62 539 | 540 | Free DNS http://freedns.zone/ 541 | 37.235.1.174 542 | 37.235.1.177 543 | 544 | __EOF 545 | exit 1 546 | } 547 | 548 | 549 | 550 | if [ "${UNBOUND}" != "1" ] 551 | then 552 | echo '__unbound_enabled_DNS_changes_disabled()' 553 | fi 554 | 555 | case ${1} in 556 | 557 | # LAN ======================================================================= 558 | (lan) # LAN BEGIN 559 | case ${2} in 560 | (start|restart) # LAN (RE)START 561 | 562 | __network_reset 563 | 564 | if [ "${LAN_RANDOM_MAC}" = "1" ] 565 | then 566 | #DOAS# permit nopass :network as root cmd ifconfig 567 | #SUDO# %network ALL = NOPASSWD: /sbin/ifconfig * 568 | echo '__random_mac()' 569 | MAC=$( __random_mac ) 570 | ${CMD} ifconfig ${LAN_IF} ether ${MAC} 571 | echo ${CMD} ifconfig ${LAN_IF} ether ${MAC} 572 | unset MAC 573 | fi 574 | 575 | #DOAS# permit nopass :network as root cmd ifconfig 576 | #SUDO# %network ALL = NOPASSWD: /sbin/ifconfig * 577 | ${CMD} ifconfig ${LAN_IF} up 578 | echo ${CMD} ifconfig ${LAN_IF} up 579 | 580 | if [ ${3} ] 581 | then # STATIC 582 | 583 | IP=${3} 584 | if ! echo ${IP} | grep -E "${IP_REGEX}" 1> /dev/null 2> /dev/null 585 | then 586 | echo "NOPE: The '${IP}' is not a valid IP address." 587 | exit 1 588 | fi 589 | 590 | #DOAS# permit nopass :network as root cmd ifconfig 591 | #SUDO# %network ALL = NOPASSWD: /sbin/ifconfig * 592 | ${CMD} ifconfig ${LAN_IF} inet ${IP} 593 | echo ${CMD} ifconfig ${LAN_IF} inet ${IP} 594 | 595 | if [ ${4} ] 596 | then # GATEWAY 597 | 598 | if ! echo ${4} | grep -E "${IP_REGEX}" 1> /dev/null 2> /dev/null 599 | then 600 | echo "NOPE: The '${4}' is not a valid IP address." 601 | exit 1 602 | fi 603 | 604 | #DOAS# permit nopass :network as root cmd route 605 | #SUDO# %network ALL = NOPASSWD: /sbin/route * 606 | ${CMD} route add default ${4} 1> /dev/null 2> /dev/null 607 | echo ${CMD} route add default ${4} 608 | 609 | #DOAS# permit nopass :network as root cmd route 610 | #SUDO# %network ALL = NOPASSWD: /sbin/route * 611 | ${CMD} route change default ${4} 1> /dev/null 2> /dev/null 612 | echo ${CMD} route change default ${4} 613 | 614 | fi 615 | 616 | else # DHCP 617 | 618 | #DOAS# permit nopass :network as root cmd dhclient 619 | #SUDO# %network ALL = NOPASSWD: /sbin/dhclient * 620 | ${CMD} dhclient -q ${LAN_IF} 1> /dev/null 2> /dev/null 621 | echo ${CMD} dhclient -q ${LAN_IF} 622 | 623 | __dns_check_gateway 624 | 625 | __dns_check 626 | 627 | __squid_restart 628 | 629 | fi 630 | 631 | ;; 632 | 633 | (example) # LAN USAGE 634 | 635 | __usage_lan 636 | 637 | ;; 638 | 639 | (*) # USAGE 640 | 641 | __usage 642 | 643 | ;; 644 | 645 | esac # LAN END 646 | ;; 647 | 648 | # WLAN ====================================================================== 649 | (wlan) # WLAN BEGIN 650 | case ${2} in 651 | (scan) 652 | 653 | #DOAS# permit nopass :network as root cmd ifconfig 654 | #SUDO# %network ALL = NOPASSWD: /sbin/ifconfig * 655 | ${CMD} ifconfig ${WLAN_IF} create wlandev ${WLAN_PH} 2> /dev/null 656 | echo ${CMD} ifconfig ${WLAN_IF} create wlandev ${WLAN_PH} 657 | 658 | #DOAS# permit nopass :network as root cmd ifconfig 659 | #SUDO# %network ALL = NOPASSWD: /sbin/ifconfig * 660 | ${CMD} ifconfig ${WLAN_IF} country ${WLAN_COUNTRY} regdomain ${WLAN_REGDOMAIN} 661 | echo ${CMD} ifconfig ${WLAN_IF} country ${WLAN_COUNTRY} regdomain ${WLAN_REGDOMAIN} 662 | 663 | #DOAS# permit nopass :network as root cmd ifconfig 664 | #SUDO# %network ALL = NOPASSWD: /sbin/ifconfig * 665 | ${CMD} ifconfig ${WLAN_IF} up 666 | echo ${CMD} ifconfig ${WLAN_IF} up 667 | 668 | #DOAS# permit nopass :network as root cmd ifconfig 669 | #SUDO# %network ALL = NOPASSWD: /sbin/ifconfig * 670 | ifconfig ${WLAN_IF} scan & 671 | echo ifconfig ${WLAN_IF} scan & 672 | sleep 3 673 | 674 | #DOAS# permit nopass :network as root cmd ifconfig 675 | #SUDO# %network ALL = NOPASSWD: /sbin/ifconfig * 676 | ifconfig ${WLAN_IF} list scan 677 | echo ifconfig ${WLAN_IF} list scan 678 | 679 | ;; 680 | 681 | (start) # WLAN (RE)START 682 | 683 | __network_reset 684 | 685 | if ! ifconfig ${WLAN_IF} 1> /dev/null 2> /dev/null 686 | then 687 | #DOAS# permit nopass :network as root cmd ifconfig 688 | #SUDO# %network ALL = NOPASSWD: /sbin/ifconfig * 689 | ${CMD} ifconfig ${WLAN_IF} create wlandev ${WLAN_PH} 2> /dev/null 690 | echo ${CMD} ifconfig ${WLAN_IF} create wlandev ${WLAN_PH} 691 | fi 692 | 693 | if [ "${WLAN_RANDOM_MAC}" = "1" ] 694 | then 695 | #DOAS# permit nopass :network as root cmd ifconfig 696 | #SUDO# %network ALL = NOPASSWD: /sbin/ifconfig * 697 | echo '__random_mac()' 698 | MAC=$( __random_mac ) 699 | ${CMD} ifconfig ${WLAN_IF} ether ${MAC} 700 | echo ${CMD} ifconfig ${WLAN_IF} ether ${MAC} 701 | MAC=0 702 | fi 703 | 704 | #DOAS# permit nopass :network as root cmd ifconfig 705 | #SUDO# %network ALL = NOPASSWD: /sbin/ifconfig * 706 | ${CMD} ifconfig ${WLAN_IF} up 707 | echo ${CMD} ifconfig ${WLAN_IF} up 708 | 709 | #DOAS# permit nopass :network as root cmd ifconfig 710 | #SUDO# %network ALL = NOPASSWD: /sbin/ifconfig * 711 | ${CMD} ifconfig ${WLAN_IF} scan & 712 | echo ${CMD} ifconfig ${WLAN_IF} scan & 713 | 714 | #DOAS# permit nopass :network as root cmd ifconfig 715 | #SUDO# %network ALL = NOPASSWD: /sbin/ifconfig * 716 | ${CMD} ifconfig ${WLAN_IF} ssid - 717 | echo ${CMD} ifconfig ${WLAN_IF} ssid - 718 | 719 | if [ "${3}" ] 720 | then 721 | #DOAS# permit nopass :network as root cmd ifconfig 722 | #SUDO# %network ALL = NOPASSWD: /sbin/ifconfig * 723 | ${CMD} ifconfig ${WLAN_IF} ssid "${3}" 724 | echo ${CMD} ifconfig ${WLAN_IF} ssid "${3}" 725 | fi 726 | 727 | #DOAS# permit nopass :network as root cmd wpa_supplicant 728 | #SUDO# %network ALL = NOPASSWD: /usr/sbin/wpa_supplicant * 729 | ${CMD} wpa_supplicant -i ${WLAN_IF} -c /etc/wpa_supplicant.conf -s -B 730 | echo ${CMD} wpa_supplicant -i ${WLAN_IF} -c /etc/wpa_supplicant.conf -s -B 731 | 732 | __wlan_wait_associated 733 | 734 | #DOAS# permit nopass :network as root cmd dhclient 735 | #SUDO# %network ALL = NOPASSWD: /sbin/dhclient * 736 | ${CMD} dhclient -q ${WLAN_IF} 1> /dev/null 2> /dev/null 737 | echo ${CMD} dhclient -q ${WLAN_IF} 738 | 739 | __dns_check_gateway 740 | 741 | __dns_check 742 | 743 | __squid_restart 744 | 745 | #DOAS# permit nopass :network as root cmd ifconfig 746 | #SUDO# %network ALL = NOPASSWD: /sbin/ifconfig * 747 | ${CMD} ifconfig ${WLAN_IF} powersave 748 | echo ${CMD} ifconfig ${WLAN_IF} powersave 749 | 750 | ;; 751 | 752 | (restart) # WLAN RESTART 753 | 754 | #DOAS# permit nopass :network as root cmd killall args -9 dhclient 755 | #SUDO# %network ALL = NOPASSWD: /usr/bin/killall -9 dhclient 756 | ${CMD} killall -9 dhclient 1> /dev/null 2> /dev/null 757 | echo ${CMD} killall -9 dhclient 758 | 759 | #DOAS# permit nopass :network as root cmd killall args -9 wpa_supplicant 760 | #SUDO# %network ALL = NOPASSWD: /usr/bin/killall -9 wpa_supplicant 761 | ${CMD} killall -9 wpa_supplicant 1> /dev/null 2> /dev/null 762 | echo ${CMD} killall -9 wpa_supplicant 763 | 764 | #DOAS# permit nopass :network as root cmd wpa_supplicant 765 | #SUDO# %network ALL = NOPASSWD: /usr/sbin/wpa_supplicant * 766 | ${CMD} wpa_supplicant -i ${WLAN_IF} -c /etc/wpa_supplicant.conf -s -B 767 | echo ${CMD} wpa_supplicant -i ${WLAN_IF} -c /etc/wpa_supplicant.conf -s -B 768 | 769 | __wlan_wait_associated 770 | 771 | #DOAS# permit nopass :network as root cmd dhclient 772 | #SUDO# %network ALL = NOPASSWD: /sbin/dhclient * 773 | ${CMD} dhclient -q ${WLAN_IF} 1> /dev/null 2> /dev/null 774 | echo ${CMD} dhclient -q ${WLAN_IF} 775 | 776 | #DOAS# permit nopass :network as root cmd ifconfig 777 | #SUDO# %network ALL = NOPASSWD: /sbin/ifconfig * 778 | ${CMD} ifconfig ${WLAN_IF} powersave 779 | echo ${CMD} ifconfig ${WLAN_IF} powersave 780 | 781 | ;; 782 | 783 | (example) # WLAN USAGE 784 | 785 | __usage_wlan 786 | 787 | ;; 788 | 789 | (*) # USAGE 790 | 791 | __usage 792 | 793 | ;; 794 | 795 | esac # WLAN END 796 | ;; 797 | 798 | # WWAN ====================================================================== 799 | (wwan) # WWAN BEGIN 800 | case ${2} in 801 | (start|restart) # WWAN (RE)START 802 | 803 | if [ ${3} ] 804 | then 805 | __wwan_check "${3}" 806 | WWAN_PROFILE="${3}" 807 | else 808 | __wwan_check "${WWAN_PROFILE}" 809 | fi 810 | 811 | __network_reset 812 | 813 | #DOAS# permit nopass :network as root cmd ppp 814 | #SUDO# %network ALL = NOPASSWD: /usr/sbin/ppp * 815 | ${CMD} ppp -ddial ${WWAN_PROFILE} 1> /dev/null 2> /dev/null 816 | echo ${CMD} ppp -ddial ${WWAN_PROFILE} 817 | 818 | __dns_check 819 | 820 | __squid_restart 821 | 822 | ;; 823 | 824 | (example) # WWAN USAGE 825 | 826 | __usage_wwan 827 | 828 | ;; 829 | 830 | (*) # USAGE 831 | 832 | __usage 833 | 834 | ;; 835 | 836 | esac 837 | ;; 838 | 839 | # DNS ======================================================================= 840 | (dns) # DNS BEGIN 841 | case ${2} in 842 | (gw) # DNS SAME AS GATEWAY 843 | 844 | if [ "${UNBOUND}" != "1" ] 845 | then 846 | 847 | GW=$( route -n -4 -v get default 2> /dev/null | awk 'END{print $2}' ) 848 | 849 | #DOAS# permit nopass :network as root cmd tee args /etc/resolv.conf 850 | #SUDO# %network ALL = NOPASSWD: /usr/bin/tee /etc/resolv.conf 851 | echo | ${CMD} tee /etc/resolv.conf 1> /dev/null 852 | echo "echo | ${CMD} tee /etc/resolv.conf" 853 | 854 | #DOAS# permit nopass :network as root cmd tee args -a /etc/resolv.conf 855 | #SUDO# %network ALL = NOPASSWD: /usr/bin/tee -a /etc/resolv.conf 856 | echo "nameserver ${GW}" | ${CMD} tee -a /etc/resolv.conf 1> /dev/null 857 | echo "echo 'nameserver ${GW}' | ${CMD} tee -a /etc/resolv.conf" 858 | 859 | fi 860 | 861 | ;; 862 | 863 | (onic) # DNS OpenNIC 864 | 865 | if [ "${UNBOUND}" != "1" ] 866 | then 867 | 868 | #DOAS# permit nopass :network as root cmd tee args /etc/resolv.conf 869 | #SUDO# %network ALL = NOPASSWD: /usr/bin/tee /etc/resolv.conf 870 | echo | ${CMD} tee /etc/resolv.conf 1> /dev/null 871 | echo "echo | ${CMD} tee /etc/resolv.conf" 872 | 873 | #DOAS# permit nopass :network as root cmd tee args -a /etc/resolv.conf 874 | #SUDO# %network ALL = NOPASSWD: /usr/bin/tee -a /etc/resolv.conf 875 | echo 'nameserver 87.98.175.85' | ${CMD} tee -a /etc/resolv.conf 1> /dev/null 876 | echo "echo 'nameserver 87.98.175.85' | ${CMD} tee -a /etc/resolv.conf" 877 | 878 | fi 879 | 880 | ;; 881 | 882 | (udns) # DNS UncensoredDNS 883 | 884 | if [ "${UNBOUND}" != "1" ] 885 | then 886 | 887 | #DOAS# permit nopass :network as root cmd tee args /etc/resolv.conf 888 | #SUDO# %network ALL = NOPASSWD: /usr/bin/tee /etc/resolv.conf 889 | echo | ${CMD} tee /etc/resolv.conf 1> /dev/null 890 | echo "echo | ${CMD} tee /etc/resolv.conf" 891 | 892 | #DOAS# permit nopass :network as root cmd tee args -a /etc/resolv.conf 893 | #SUDO# %network ALL = NOPASSWD: /usr/bin/tee -a /etc/resolv.conf 894 | echo 'nameserver 91.239.100.100' | ${CMD} tee -a /etc/resolv.conf 1> /dev/null 895 | echo "echo 'nameserver 91.239.100.100' | ${CMD} tee -a /etc/resolv.conf" 896 | 897 | fi 898 | 899 | ;; 900 | 901 | (cloudflare) # DNS CloudFlare 902 | 903 | if [ "${UNBOUND}" != "1" ] 904 | then 905 | 906 | #DOAS# permit nopass :network as root cmd tee args /etc/resolv.conf 907 | #SUDO# %network ALL = NOPASSWD: /usr/bin/tee /etc/resolv.conf 908 | echo | ${CMD} tee /etc/resolv.conf 1> /dev/null 909 | echo "echo | ${CMD} tee /etc/resolv.conf" 910 | 911 | #DOAS# permit nopass :network as root cmd tee args -a /etc/resolv.conf 912 | #SUDO# %network ALL = NOPASSWD: /usr/bin/tee -a /etc/resolv.conf 913 | echo 'nameserver 1.1.1.1' | ${CMD} tee -a /etc/resolv.conf 1> /dev/null 914 | echo "echo 'nameserver 1.1.1.1' | ${CMD} tee -a /etc/resolv.conf" 915 | 916 | fi 917 | 918 | ;; 919 | 920 | (ibm) # DNS IBM 921 | 922 | if [ "${UNBOUND}" != "1" ] 923 | then 924 | 925 | #DOAS# permit nopass :network as root cmd tee args /etc/resolv.conf 926 | #SUDO# %network ALL = NOPASSWD: /usr/bin/tee /etc/resolv.conf 927 | echo | ${CMD} tee /etc/resolv.conf 1> /dev/null 928 | echo "echo | ${CMD} tee /etc/resolv.conf" 929 | 930 | #DOAS# permit nopass :network as root cmd tee args -a /etc/resolv.conf 931 | #SUDO# %network ALL = NOPASSWD: /usr/bin/tee -a /etc/resolv.conf 932 | echo 'nameserver 9.9.9.9' | ${CMD} tee -a /etc/resolv.conf 1> /dev/null 933 | echo "echo 'nameserver 9.9.9.9' | ${CMD} tee -a /etc/resolv.conf" 934 | 935 | fi 936 | 937 | ;; 938 | 939 | (nextdns) # DNS NextDNS 940 | 941 | if [ "${UNBOUND}" != "1" ] 942 | then 943 | 944 | #DOAS# permit nopass :network as root cmd tee args /etc/resolv.conf 945 | #SUDO# %network ALL = NOPASSWD: /usr/bin/tee /etc/resolv.conf 946 | echo | ${CMD} tee /etc/resolv.conf 1> /dev/null 947 | echo "echo | ${CMD} tee /etc/resolv.conf" 948 | 949 | #DOAS# permit nopass :network as root cmd tee args -a /etc/resolv.conf 950 | #SUDO# %network ALL = NOPASSWD: /usr/bin/tee -a /etc/resolv.conf 951 | echo 'nameserver 45.90.30.114' | ${CMD} tee -a /etc/resolv.conf 1> /dev/null 952 | echo "echo 'nameserver 45.90.30.114' | ${CMD} tee -a /etc/resolv.conf" 953 | 954 | fi 955 | 956 | ;; 957 | 958 | (random) 959 | 960 | if [ "${UNBOUND}" != "1" ] 961 | then 962 | 963 | #DOAS# permit nopass :network as root cmd tee args /etc/resolv.conf 964 | #SUDO# %network ALL = NOPASSWD: /usr/bin/tee /etc/resolv.conf 965 | echo | ${CMD} tee /etc/resolv.conf 1> /dev/null 966 | echo "echo | ${CMD} tee /etc/resolv.conf" 967 | 968 | #DOAS# permit nopass :network as root cmd tee args -a /etc/resolv.conf 969 | #SUDO# %network ALL = NOPASSWD: /usr/bin/tee -a /etc/resolv.conf 970 | cat << __EOF | sort -R | head -1 | ${CMD} tee -a /etc/resolv.conf 1> /dev/null 971 | nameserver 1.1.1.1 972 | nameserver 9.9.9.9 973 | nameserver 87.98.175.85 974 | nameserver 193.183.98.66 975 | nameserver 91.239.100.100 976 | nameserver 89.233.43.71 977 | nameserver 77.109.138.45 978 | nameserver 77.109.139.29 979 | nameserver 85.214.20.141 980 | nameserver 204.152.184.76 981 | nameserver 194.150.168.168 982 | nameserver 213.73.91.35 983 | nameserver 8.26.56.26 984 | nameserver 8.20.247.20 985 | nameserver 84.200.69.80 986 | nameserver 84.200.70.40 987 | nameserver 87.118.111.215 988 | nameserver 213.187.11.62 989 | nameserver 37.235.1.174 990 | nameserver 37.235.1.177 991 | nameserver 45.90.28.114 992 | nameserver 45.90.30.114 993 | __EOF 994 | echo "cat << __EOF | sort -R | head -1 | ${CMD} tee -a /etc/resolv.conf" 995 | 996 | fi 997 | 998 | ;; 999 | 1000 | (example) 1001 | 1002 | __usage_dns 1003 | 1004 | ;; 1005 | 1006 | (*) 1007 | 1008 | if [ "${UNBOUND}" != "1" ] 1009 | then 1010 | 1011 | #DOAS# permit nopass :network as root cmd tee args /etc/resolv.conf 1012 | #SUDO# %network ALL = NOPASSWD: /usr/bin/tee /etc/resolv.conf 1013 | echo | ${CMD} tee /etc/resolv.conf 1> /dev/null 1014 | echo "echo | ${CMD} tee /etc/resolv.conf" 1015 | 1016 | if ! echo ${2} | grep -E "${IP_REGEX}" 1> /dev/null 2> /dev/null 1017 | then 1018 | echo "NOPE: The '${2}' is not a valid IP address." 1019 | exit 1 1020 | fi 1021 | 1022 | #DOAS# permit nopass :network as root cmd tee args -a /etc/resolv.conf 1023 | #SUDO# %network ALL = NOPASSWD: /usr/bin/tee -a /etc/resolv.conf 1024 | echo "nameserver ${2}" | ${CMD} tee -a /etc/resolv.conf 1> /dev/null 1025 | echo "echo 'nameserver ${2}' | ${CMD} tee -a /etc/resolv.conf" 1026 | 1027 | fi 1028 | 1029 | ;; 1030 | 1031 | esac 1032 | ;; 1033 | 1034 | # STOP ====================================================================== 1035 | (stop) 1036 | 1037 | __network_reset 1038 | 1039 | ;; 1040 | 1041 | # STATUS ==================================================================== 1042 | (status) 1043 | 1044 | __network_status 1045 | 1046 | ;; 1047 | 1048 | # DOAS ====================================================================== 1049 | (doas) 1050 | echo " # pw groupmod network -m YOURUSERNAME" 1051 | echo " # cat /usr/local/etc/doas.conf" 1052 | grep -E "^[\ \n\t]+#DOAS#" "${0}" | awk '{$1=" "}1' | sort -u | sed 1d 1053 | ;; 1054 | 1055 | # SUDO ====================================================================== 1056 | (sudo) 1057 | echo " # pw groupmod network -m YOURUSERNAME" 1058 | echo " # cat /usr/local/etc/sudoers" 1059 | grep -E "^[\ \n\t]+#SUDO#" "${0}" | awk '{$1=" "}1' | sort -u | sed 1d 1060 | ;; 1061 | 1062 | # USAGE ===================================================================== 1063 | (*) # USAGE 1064 | __usage 1065 | ;; 1066 | 1067 | esac 1068 | 1069 | echo '1' 2> /dev/null >> ~/scripts/stats/${0##*/} 1070 | -------------------------------------------------------------------------------- /run: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | ############################################ 3 | ### SIMPLE INSTALLATION ### 4 | ### STEAM ### 5 | ### ON FREEBSD ### 6 | ############ set permission ############ 7 | chmod +x reconfig 8 | chmod +x reconfig-mini 9 | chmod +x steam-acolyte 10 | chmod +x steam-acolyte-sh 11 | chmod +x steam-compat 12 | chmod +x steam-wine 13 | chmod +x steam-winepro 14 | chmod +x yet.py 15 | chmod +x utils 16 | chmod +x boost 17 | chmod +x idc 18 | chmod +x idp 19 | chmod +x idw 20 | chmod +x info 21 | chmod +x video-stream 22 | chmod +x video-camera 23 | chmod +x network 24 | 25 | ############################################ 26 | ### Parametrs ### 27 | ############################################ 28 | echo ' ' 29 | echo '####################################################################' 30 | echo '##### System timer 10 seconds, choose answer and press enter... ####' 31 | echo '####################################################################' 32 | echo 'Press 0 to shell' 33 | echo 'Press 1 to stop point' 34 | echo 'Press 2 to shutdown computer' 35 | echo 'Else - proceed' 36 | read -t 10 vop 37 | 38 | case $vop in 39 | 0) 40 | # shell 41 | /bin/sh 42 | ;; 43 | 1) 44 | # stop 45 | read ans 46 | ;; 47 | 2) 48 | # shutdown 49 | shutdown -p now 50 | ;; 51 | *) 52 | # proceed... 53 | echo '==> Proceed installation...' 54 | ;; 55 | esac 56 | 57 | ############################################ 58 | ### Variables ### 59 | ############################################ 60 | # type of installation 61 | #if [ -d All ]; then TYPI="L"; fi 62 | # main dir 63 | MATH=`echo $PWD` 64 | # user with wheel group 65 | AZER=$1 66 | # choose driver for your PC, it may be: 67 | # nvidia, amdgpu, radeon, intel or vesa 68 | DRIV=$2 69 | # desktop environment 70 | DENV=$3 71 | # version 72 | VERS=`uname -r | cut -d'-' -f1` 73 | #VERS='12.0' #not tested 74 | #VERS='12.1' #rebuild drm 75 | #VERS='12.2' #without drm 76 | 77 | ############################################ 78 | ### Function ### 79 | ############################################ 80 | # package type installation (local or inet) 81 | pli() 82 | { 83 | if [ -d All ]; then 84 | zvar=`ls All | grep $1 | awk '{ print length, $0 }' | sort -n | cut -d" " -f2- | head -1` 85 | if [ "$zvar" == '' ]; then 86 | pkg ins -y $1 87 | else 88 | pkg add All/$zvar 89 | fi 90 | #pkg add All/$1-* 91 | else 92 | pkg ins -y $1 93 | fi 94 | } 95 | 96 | ############################################ 97 | ### Update ### 98 | ############################################ 99 | if [ -d All ]; then 100 | tar xf All/pkg-* -s ",/.*/,,g" "*/pkg-static" 101 | ./pkg-static add All/pkg-* 102 | else 103 | # system 104 | env PAGER=cat freebsd-update fetch 105 | freebsd-update install 106 | # pkg 107 | env ASSUME_ALWAYS_YES=YES pkg bootstrap 108 | env ASSUME_ALWAYS_YES=YES pkg update -f 109 | fi 110 | 111 | ############################################ 112 | ### Check mode ### 113 | ############################################ 114 | CHK=`ls /dev | grep md0 | head -n1` 115 | if [ "$CHK" == 'md0' ]; then 116 | ETH=`ifconfig | grep flags | cut -d\: -f1 | head -n1 | tail -n1` 117 | dhclient $ETH 118 | fi 119 | CHK=`ls /dev | grep md1 | head -n1` 120 | if [ "$CHK" == "md1" ]; then echo '==> Detected minimal mode'; fi 121 | 122 | if [ "$DENV" == "mini" ]; then 123 | pli xorg 124 | pli lumina 125 | 126 | pli fluxbox 127 | pli fluxbox-tenr-styles-pack 128 | pli la-capitaine-icon-theme 129 | pli lumina-archiver 130 | pli lumina-calculator 131 | pli lumina-core 132 | pli lumina-coreutils 133 | pli lumina-fileinfo 134 | pli lumina-mediaplayer 135 | pli lumina-pdf 136 | pli lumina-photo 137 | pli lumina-screenshot 138 | pli lumina-textedit 139 | pli numlockx 140 | pli openjpeg 141 | pli poppler 142 | pli poppler-data 143 | pli poppler-qt5 144 | pli xbrightness 145 | 146 | pli zenity 147 | pli chromium 148 | pli pc-networkmanager 149 | echo 'start-lumina-desktop' >> /root/.xinitrc 150 | cat << EOF > /usr/local/etc/X11/xorg.conf.d/xorg.conf 151 | Section "Device" 152 | Identifier "Vesa" 153 | Driver "vesa" 154 | EndSection 155 | EOF 156 | 157 | cp reconfig-mini /root/ 158 | cp utils /root/.utils 159 | mkdir /usr/local/share/wallpapers 160 | cp wall.jpg /usr/local/share/wallpapers/wall.jpg 161 | mkdir /usr/local/share/pixmaps 162 | cp yinstall.png /usr/local/share/pixmaps/yinstall.png 163 | cp yrchrome.png /usr/local/share/pixmaps/yrchrome.png 164 | 165 | cat << EOF > /usr/local/etc/xdg/autostart/reconfig-mini.desktop 166 | [Desktop Entry] 167 | Name=reconfig-mini 168 | Type=Application 169 | Exec=xterm -geometry 50x15+0-50 -e ~/reconfig-mini 170 | Terminal=false 171 | EOF 172 | 173 | su root -c 'startx' 174 | 175 | echo '==> Minimal installation fineshed. Press any key to proceed' 176 | read ans 177 | /bin/sh 178 | exit 0 179 | fi 180 | 181 | ############################################ 182 | ### Check system ### 183 | ############################################ 184 | # blank arguments 185 | case "$#" in 186 | 0) 187 | # default: user - admin, driver - nvidia, desktop - lumina 188 | AZER='admin' 189 | pw useradd $AZER -m -b /usr/home -G wheel; echo 0000 | pw usermod $AZER -h0 190 | DRIV='auto' 191 | DENV='lumina' 192 | ;; 193 | 3) 194 | # add if not exist 195 | pw usershow $AZER || chk=1 196 | if [ $chk = 1 ]; then 197 | echo "Create user $AZER" 198 | pw useradd $AZER -m 199 | echo '0000' | pw usermod $AZER -h0 200 | fi 201 | # try to wheel 202 | pw usermod $AZER -G wheel 203 | ;; 204 | *) 205 | echo "Error. Please, type three arguments." 206 | echo "Usage: $0 [your_user] [video_driver] [your_desktop]" 207 | exit 0 208 | ;; 209 | esac 210 | 211 | ############################################ 212 | ### Motd ### 213 | ############################################ 214 | # Build date used for motd and product file 215 | #BUILDDATE=$(date +%Y%m%d) 216 | BUILDDATE="20250703" 217 | RELEASE="$VERS" 218 | DOC_URL="https://lpros.blogspot.com/" 219 | 220 | # Creating /etc/motd 221 | cat << MOTD > /etc/motd.safe 222 | SteamBSD $RELEASE $BUILDDATE 223 | $DOC_URL 224 | MOTD 225 | # Creating /etc/product file 226 | cat << PRODUCT > /etc/product.safe 227 | Name: SteamBSD Instance 228 | Image: SteamBSD $RELEASE $BUILDDATE 229 | Documentation: $DOC_URL 230 | Description: SteamBSD $RELEASE 64-bit image with just essential packages \ 231 | installed. Find your favorite game and forget about everything \ 232 | that might bother you. 233 | PRODUCT 234 | 235 | ############################################ 236 | ### Bugs ### 237 | ############################################ 238 | # drm-kmod not work on FreeBSD 12.2 239 | #if [ $DRIV != 'nvidia' ]; then DRIV='vesa'; fi 240 | 241 | ############################################ 242 | ### Tuning ### 243 | ############################################ 244 | # thermal monitoring 245 | hwmodel=`sysctl hw.model | cut -d' ' -f2 | head -c3` 246 | case "$hwmodel" in 247 | Int) 248 | # detect intel processor 249 | sysrc -f /boot/loader.conf coretemp_load=YES 250 | kldload coretemp 251 | ;; 252 | AMD) 253 | # detect amd processor 254 | sysrc -f /boot/loader.conf amdtemp_load=YES 255 | kldload amdtemp 256 | ;; 257 | *) 258 | # using two modules 259 | sysrc -f /boot/loader.conf coretemp_load=YES 260 | sysrc -f /boot/loader.conf amdtemp_load=YES 261 | kldload coretemp 262 | kldload amdtemp 263 | exit 0 264 | ;; 265 | esac 266 | 267 | # main option for /boot/loader.conf 268 | sysrc -f /boot/loader.conf autoboot_delay=2 269 | sysrc -f /boot/loader.conf beastie_disable=YES 270 | # /etc/sysctl.conf 271 | echo 'security.bsd.unprivileged_chroot=1' >> /etc/sysctl.conf 272 | sysctl security.bsd.unprivileged_chroot=1 273 | echo 'kern.coredump=0' >> /etc/sysctl.conf 274 | sysctl kern.coredump=0 275 | echo 'kern.shutdown.poweroff_delay=500' >> /etc/sysctl.conf 276 | sysctl kern.shutdown.poweroff_delay=500 277 | echo 'vfs.zfs.arc_max=536870912' >> /etc/sysctl.conf 278 | sysctl vfs.zfs.arc_max=536870912 279 | echo 'hw.usb.no_shutdown_wait=1' >> /etc/sysctl.conf 280 | sysctl hw.usb.no_shutdown_wait=1 281 | # /etc/rc.conf 282 | sysrc kld_list+=nullfs 283 | cat << EOF >> /etc/crontab 284 | @reboot root kldload nullfs 285 | EOF 286 | kldload nullfs 287 | sysrc clear_tmp_enable=YES 288 | /etc/rc.d/cleartmp start 289 | cat << EOF >> /etc/crontab 290 | @reboot root /etc/rc.d/cleartmp start 291 | @reboot root rm /home/${AZER}/*.log 292 | EOF 293 | sysrc sendmail_enable=NO 294 | sysrc moused_enable=NO 295 | sysrc sshd_enable=NO 296 | 297 | ############################################ 298 | ### Prepare ### 299 | ############################################ 300 | # privilegies 301 | pli doas 302 | pli sudo 303 | pli bash 304 | echo 'permit nopass keepenv :wheel' >> /usr/local/etc/doas.conf 305 | echo 'permit nopass keepenv root as root' >> /usr/local/etc/doas.conf 306 | echo '%wheel ALL=(ALL) NOPASSWD: ALL' >> /usr/local/etc/sudoers 307 | pw usermod $AZER -s /usr/local/bin/bash 308 | # user for steam 309 | pw useradd steam -m 310 | pw usermod steam -s /usr/local/bin/bash 311 | # user for steam development 312 | pw useradd steamdev -m 313 | pw usermod steamdev -s /usr/local/bin/bash 314 | # terminal customization 315 | echo alias ls=\'ls -G\' >> /root/.bashrc 316 | echo alias ls=\'ls -G\' >> /home/$AZER/.bashrc 317 | # linux 318 | sysrc linux_enable=YES 319 | sysrc linux64_enable=YES 320 | kldload linux 321 | kldload linux64 322 | 323 | ############################################ 324 | ### Packages ### 325 | ############################################ 326 | # web 327 | pli wget 328 | pli curl 329 | # packages for WM 330 | pli xorg 331 | pli slim 332 | # packages for wine 333 | pli wine 334 | pli winetricks 335 | pli wine-mono 336 | pli wine-gecko 337 | # packages for linux 338 | #pli linux-steam-utils 339 | # packages for console 340 | pli neofetch 341 | pli mc-4 342 | pli unrar 343 | pli gtar 344 | #pli p7zip 345 | pli htop 346 | # packages for info 347 | pli lxterminal 348 | pli leafpad 349 | # packages for comfort 350 | pli feh 351 | pli chromium 352 | pli mpv 353 | pli simplescreenrecorder 354 | pli quiterss 355 | pli abseil 356 | pli telegram-desktop 357 | # packages for desktop 358 | pli compton 359 | pli cairo-clock 360 | # python39 361 | pli python39 362 | pli py39-setuptools 363 | # compat 364 | pli gcc 365 | #pli linux-c7-devtools 366 | #pli linux-c7-libgfortran 367 | #pli linux-steam-utils 368 | #pli linux_libusb 369 | # new 370 | #pkg remove -y -f linux-base-c7 371 | pli ca_root_nss 372 | pli linux-rl9-dbus-libs 373 | pli linux-rl9-devtools 374 | pli linux-rl9-nss 375 | pli linux-rl9-ca-certificates 376 | pli debootstrap 377 | 378 | pli wine-proton 379 | pli libc6-shim 380 | pli python3 381 | pli python39 382 | pli py39-qt5 383 | 384 | # 3d test 385 | pli vulkan-tools 386 | pli mesa-demos 387 | # web-camera 388 | pli webcamd 389 | pli pwcview 390 | pli v4l-utils 391 | pli v4l_compat 392 | # battery 393 | pli batterycat 394 | # games 395 | pli ctris 396 | pli foobillard 397 | # emulators 398 | #pli dgen-sdl 399 | #pli ppsspp 400 | 401 | ############################################ 402 | ### PIP - python package manager ### 403 | ############################################ 404 | /usr/local/bin/python3.9 get-pip.py 405 | 406 | ############################################ 407 | ### DVD, USB and CLOUD ### 408 | ############################################ 409 | # Common 410 | cat << EOF >> /etc/devfs.conf 411 | 412 | # Allow all users to access optical media 413 | perm /dev/acd0 0666 414 | perm /dev/acd1 0666 415 | perm /dev/cd0 0666 416 | perm /dev/cd1 0666 417 | # Allow all USB Devices to be mounted 418 | perm /dev/da0 0666 419 | perm /dev/da1 0666 420 | perm /dev/da2 0666 421 | perm /dev/da3 0666 422 | perm /dev/da4 0666 423 | perm /dev/da5 0666 424 | # Misc other devices 425 | perm /dev/pass0 0666 426 | perm /dev/xpt0 0666 427 | perm /dev/uscanner0 0666 428 | perm /dev/video0 0666 429 | perm /dev/tuner0 0666 430 | perm /dev/dvb/adapter0/demux0 0666 431 | perm /dev/dvb/adapter0/dvr 0666 432 | perm /dev/dvb/adapter0/frontend0 0666 433 | # HDD 434 | perm /dev/ada0 0666 435 | perm /dev/ada1 0666 436 | # NVD 437 | perm /dev/nvd0 0666 438 | perm /dev/nvd1 0666 439 | EOF 440 | cat << EOF >> /etc/devfs.rules 441 | [system=10] 442 | add path 'ad[0-9]\*' mode 666 443 | add path 'ada[0-9]\*' mode 666 444 | add path 'nvd[0-9]\*' mode 666 445 | add path 'da[0-9]\*' mode 666 446 | add path 'acd[0-9]\*' mode 666 447 | add path 'cd[0-9]\*' mode 666 448 | add path 'mmcsd[0-9]\*' mode 666 449 | add path 'pass[0-9]\*' mode 666 450 | add path 'xpt[0-9]\*' mode 666 451 | add path 'ugen[0-9]\*' mode 666 452 | add path 'usbctl' mode 666 453 | add path 'usb/\*' mode 666 454 | add path 'lpt[0-9]\*' mode 666 455 | add path 'ulpt[0-9]\*' mode 666 456 | add path 'unlpt[0-9]\*' mode 666 457 | add path 'fd[0-9]\*' mode 666 458 | add path 'uscan[0-9]\*' mode 666 459 | add path 'video[0-9]\*' mode 666 460 | add path 'tuner[0-9]*' mode 666 461 | add path 'dvb/\*' mode 666 462 | EOF 463 | echo 'vfs.usermount=1' >> /etc/sysctl.conf 464 | sysctl vfs.usermount=1 465 | sysrc devfs_system_ruleset=system 466 | service devfs start 467 | service devd start 468 | 469 | # DVD 470 | pli tkdvd 471 | sysrc -f /boot/loader.conf udf_load=YES 472 | kldload udf 473 | 474 | # USB & HDD & SSD & NVD 475 | sysrc -f /boot/loader.conf fusefs_load=YES 476 | kldload fusefs 477 | sysrc -f /boot/loader.conf ext2fs_load=YES 478 | kldload ext2fs 479 | echo 'export NTFS_USE_UBLIO=0' >> /home/$AZER/.bashrc 480 | 481 | ## Automount using sysutils/automount 482 | pli automount 483 | cat << EOF >> /usr/local/etc/automount.conf 484 | USERUMOUNT=YES 485 | ATIME=NO 486 | REMOVEDIRS=YES 487 | USER=$AZER 488 | ENCODING=pl_PL.UTF-8 489 | CODEPAGE=cp852 490 | EOF 491 | service devfs restart 492 | service devd restart 493 | 494 | #Drivers 495 | #pli dsbdriverd 496 | #sysrc dsbdriverd_enable=YES 497 | #service dsbdriverd start 498 | 499 | #Printers 500 | sysrc lpd_enable=YES 501 | sysrc cupsd_enable=YES 502 | sysrc cups_browsed_enable=YES 503 | service lpd start 504 | service cupsd start 505 | service cups_browsed start 506 | 507 | ############################################ 508 | ### Web-Cam ### 509 | ############################################ 510 | sysrc -f /boot/loader.conf cuse_load=YES 511 | kldload cuse 512 | sysrc webcamd_enable=YES 513 | ncam=`usbconfig | grep CAM | cut -d':' -f1 | cut -d'n' -f2` 514 | if [ "$ncam" != '' ]; then echo "webcamd_0_flags=\"-d ugen${ncam}\"" >> /etc/rc.conf; fi 515 | ncam=`usbconfig | grep cam | cut -d':' -f1 | cut -d'n' -f2` 516 | if [ "$ncam" != '' ]; then echo "webcamd_0_flags=\"-d ugen${ncam}\"" >> /etc/rc.conf; fi 517 | ncam=`usbconfig | grep Cam | cut -d':' -f1 | cut -d'n' -f2` 518 | if [ "$ncam" != '' ]; then echo "webcamd_0_flags=\"-d ugen${ncam}\"" >> /etc/rc.conf; fi 519 | pw groupmod network -m $AZER 520 | pw groupmod webcamd -m $AZER 521 | pw groupmod video -m $AZER 522 | #also work 523 | #pw usermod $AZER -G operator,video 524 | service webcamd start 525 | service devd restart 526 | 527 | ############################################ 528 | ### Driver ### 529 | ############################################ 530 | if [ "$DRIV" == "auto" ] 531 | then 532 | gpu=`pciconf -lv | grep Intel` 533 | if [ "$gpu" != '' ]; then DRIV="intel"; fi 534 | gpu=`pciconf -lv | grep AMD` 535 | if [ "$gpu" != '' ]; then DRIV="amdgpu"; fi 536 | gpu=`pciconf -lv | grep NVIDIA` 537 | if [ "$gpu" != '' ]; then DRIV="nvidia"; fi 538 | fi 539 | 540 | case "$DRIV" in 541 | nvidia) 542 | pli nvidia-driver 543 | pli linux-nvidia-libs 544 | pli nvidia-settings 545 | sysrc kld_list="/boot/modules/nvidia-modeset.ko" 546 | kldload /boot/modules/nvidia-modeset.ko 547 | cat << EOF > /usr/local/etc/X11/xorg.conf.d/xorg.conf 548 | Section "Device" 549 | Identifier "NV Card" 550 | Driver "nvidia" 551 | EndSection 552 | EOF 553 | ;; 554 | nvidia-470) 555 | pli nvidia-driver-470 556 | pli linux-nvidia-libs-470 557 | pli nvidia-settings 558 | sysrc kld_list="/boot/modules/nvidia-modeset.ko" 559 | kldload /boot/modules/nvidia-modeset.ko 560 | cat << EOF > /usr/local/etc/X11/xorg.conf.d/xorg.conf 561 | Section "Device" 562 | Identifier "NV Card" 563 | Driver "nvidia" 564 | EndSection 565 | EOF 566 | ;; 567 | nvidia-390) 568 | pli nvidia-driver-390 569 | pli linux-nvidia-libs-390 570 | pli nvidia-settings 571 | sysrc kld_list="/boot/modules/nvidia-modeset.ko" 572 | kldload /boot/modules/nvidia-modeset.ko 573 | cat << EOF > /usr/local/etc/X11/xorg.conf.d/xorg.conf 574 | Section "Device" 575 | Identifier "NV Card" 576 | Driver "nvidia" 577 | EndSection 578 | EOF 579 | ;; 580 | nvidia-340) 581 | pli nvidia-driver-340 582 | pli linux-nvidia-libs-340 583 | pli nvidia-settings 584 | sysrc kld_list="/boot/modules/nvidia.ko" 585 | kldload /boot/modules/nvidia.ko 586 | cat << EOF > /usr/local/etc/X11/xorg.conf.d/xorg.conf 587 | Section "Device" 588 | Identifier "NV Card" 589 | Driver "nvidia" 590 | EndSection 591 | EOF 592 | ;; 593 | nvidia-304) 594 | pli nvidia-driver-304 595 | pli linux-nvidia-libs-304 596 | pli nvidia-settings 597 | sysrc kld_list="/boot/modules/nvidia.ko" 598 | kldload /boot/modules/nvidia.ko 599 | cat << EOF > /usr/local/etc/X11/xorg.conf.d/xorg.conf 600 | Section "Device" 601 | Identifier "NV Card" 602 | Driver "nvidia" 603 | EndSection 604 | EOF 605 | ;; 606 | amdgpu) 607 | pli drm-kmod 608 | pli xf86-video-amdgpu 609 | sysrc kld_list="/boot/modules/amdgpu.ko" 610 | #kldload /boot/modules/amdgpu.ko 611 | #cat << EOF > /usr/local/etc/X11/xorg.conf.d/xorg.conf 612 | #Section "Device" 613 | # Identifier "Card0" 614 | # Driver "amdgpu" 615 | #EndSection 616 | #EOF 617 | ;; 618 | radeon) 619 | pli drm-kmod 620 | #pli xf86-video-ati 621 | sysrc kld_list="/boot/modules/radeonkms.ko" 622 | #kldload /boot/modules/radeonkms.ko 623 | #cat << EOF > /usr/local/etc/X11/xorg.conf.d/xorg.conf 624 | #Section "Device" 625 | # Identifier "Card0" 626 | # Driver "radeonkms" 627 | #EndSection 628 | #EOF 629 | ;; 630 | intel) 631 | pli drm-kmod 632 | pli xf86-video-intel 633 | sysrc kld_list="/boot/modules/i915kms.ko" 634 | kldload /boot/modules/i915kms.ko 635 | #cat << EOF > /usr/local/etc/X11/xorg.conf.d/xorg.conf 636 | #Section "Device" 637 | # Identifier "Card0" 638 | # Driver "intel" 639 | #EndSection 640 | #EOF 641 | ;; 642 | full) 643 | pli nvidia-driver 644 | pli linux-nvidia-libs 645 | pli nvidia-settings 646 | cat << EOF > /usr/local/etc/X11/xorg.conf.d/xorg.conf.nvidia 647 | Section "Device" 648 | Identifier "NV Card" 649 | Driver "nvidia" 650 | EndSection 651 | EOF 652 | pli drm-kmod 653 | pli xf86-video-amdgpu 654 | pli xf86-video-intel 655 | pli xf86-video-ati 656 | 657 | gpu=`pciconf -lv | grep Intel` 658 | if [ "$gpu" != '' ]; then DRIV="intel"; fi 659 | gpu=`pciconf -lv | grep AMD` 660 | if [ "$gpu" != '' ]; then DRIV="amdgpu"; fi 661 | gpu=`pciconf -lv | grep NVIDIA` 662 | if [ "$gpu" != '' ]; then DRIV="nvidia"; fi 663 | 664 | ###ATTENTION! Integrated block 665 | case "$DRIV" in 666 | nvidia) 667 | sysrc kld_list="/boot/modules/nvidia-modeset.ko" 668 | kldload /boot/modules/nvidia-modeset.ko 669 | cat << EOF > /usr/local/etc/X11/xorg.conf.d/xorg.conf 670 | Section "Device" 671 | Identifier "NV Card" 672 | Driver "nvidia" 673 | EndSection 674 | EOF 675 | ;; 676 | amdgpu) 677 | sysrc kld_list="/boot/modules/amdgpu.ko" 678 | #kldload /boot/modules/amdgpu.ko 679 | ;; 680 | radeon) 681 | sysrc kld_list="/boot/modules/radeonkms.ko" 682 | #kldload /boot/modules/radeonkms.ko 683 | ;; 684 | intel) 685 | sysrc kld_list="/boot/modules/i915kms.ko" 686 | kldload /boot/modules/i915kms.ko 687 | ;; 688 | *) 689 | # nothing 690 | ;; 691 | esac 692 | ###ATTENTION! Integrated block 693 | 694 | ;; 695 | *) 696 | #cat << EOF > /usr/local/etc/X11/xorg.conf.d/xorg.conf 697 | # Section "Device" 698 | # Identifier "Card0" 699 | # Driver "vesa" 700 | # EndSection 701 | #EOF 702 | ;; 703 | esac 704 | 705 | case "$VERS" in 706 | 12.0) 707 | #cd /usr/ports/graphics/drm-kmod && make BATCH=yes deinstall build install clean 708 | ;; 709 | 12.1) 710 | #fetch https://download.freebsd.org/ftp/releases/amd64/12.1-RELEASE/base.txz 711 | #fetch https://download.freebsd.org/ftp/releases/amd64/12.1-RELEASE/lib32.txz 712 | #tar -xvf base.txz -C /data/jails/basejail && tar -xvf lib32.txz -C /data/jails/basejail 713 | #rm -rf base.txz && rm -rf lib32.txz 714 | svnlite checkout http://svn.freebsd.org/base/releng/12.1/ /usr/src 715 | fetch https://github.com/FreeBSDDesktop/kms-drm/archive/drm-v5.0-fbsd12.1.zip 716 | unzip drm-v5.0-fbsd12.1.zip 717 | mv kms-drm-drm-v5.0-fbsd12.1 kms-drm 718 | cd kms-drm 719 | make 720 | make install 721 | rm -rf kms-drm 722 | rm -rf drm-v5.0-fbsd12.1.zip 723 | #cp ./pci.ids /usr/local/share/pciids/pci.ids 724 | ;; 725 | 12.2) 726 | sysrc kld_list-="/boot/modules/amdgpu.ko" 727 | sysrc kld_list-="/boot/modules/i915kms.ko" 728 | sysrc kld_list-="/boot/modules/radeonkms.ko" 729 | kldunload "/boot/modules/amdgpu.ko" 730 | kldunload "/boot/modules/i915kms.ko" 731 | kldunload "/boot/modules/radeonkms.ko" 732 | ;; 733 | 13.0) 734 | echo 'Nothing' 735 | ;; 736 | 13.1) 737 | echo 'Nothing' 738 | #cat << EOF >> /etc/crontab 739 | #@reboot root mount /compat/linux/dev/shm 740 | #EOF 741 | ;; 742 | 13.2) 743 | echo 'Nothing' 744 | ;; 745 | 14.0) 746 | echo 'Nothing' 747 | ;; 748 | *) 749 | echo -n 'Script is not intended for installation on this version of the system: ' 750 | echo -n $VERS 751 | ;; 752 | esac 753 | 754 | ############################################ 755 | ### Files ### 756 | ############################################ 757 | # copy gecko for wine 758 | cp -R .cache /home/$AZER/.cache 759 | # create documents folder 760 | mkdir /home/$AZER/Documents 761 | # cp other scripts 762 | cp network /usr/local/bin/network 763 | # copy steambsd scrips 764 | cp video-camera /home/$AZER/.video-camera 765 | cp video-stream /home/$AZER/.video-stream 766 | cp boost /home/$AZER/.boost 767 | cp idc /home/$AZER/.idc 768 | cp idp /home/$AZER/.idp 769 | cp idw /home/$AZER/.idw 770 | cp info /home/$AZER/.info 771 | cp logo /home/$AZER/.logo 772 | cp config-neofetch /home/$AZER/.config-neofetch 773 | cp reconfig /home/$AZER/ 774 | cp steam-wine /home/$AZER/.steam-wine.save 775 | cp steam-winepro /home/$AZER/.steam-winepro.save 776 | cp steam-compat /home/$AZER/.steam-compat.save 777 | cp steam-acolyte /home/$AZER/.steam-acolyte.save 778 | cp steam-acolyte-sh /home/$AZER/.steam-acolyte-sh 779 | cp utils /home/$AZER/.utils 780 | cp yet.py /home/$AZER/.yet.py 781 | # wallpaper 782 | mkdir /usr/local/share/wallpapers 783 | cp wall.jpg /usr/local/share/wallpapers/wall.jpg 784 | # icons 785 | mkdir /usr/local/share/pixmaps 786 | cp yinstall.png /usr/local/share/pixmaps/yinstall.png 787 | cp ypsteam.png /usr/local/share/pixmaps/ypsteam.png 788 | cp yrchrome.png /usr/local/share/pixmaps/yrchrome.png 789 | cp ysacolyte.png /usr/local/share/pixmaps/ysacolyte.png 790 | cp ysettings.png /usr/local/share/pixmaps/ysettings.png 791 | cp ysettingsnew.png /usr/local/share/pixmaps/ysettingsnew.png 792 | cp ystartboosting.png /usr/local/share/pixmaps/ystartboosting.png 793 | #epic-games 794 | unzip epic-games.zip 795 | cd legendary-master 796 | /usr/local/bin/python3.9 setup.py install 797 | cd .. 798 | echo alias epic=\'legendary\' >> /home/$AZER/.bashrc 799 | echo alias epicpro=\'LGDRY_WINE_BINARY=/usr/local/bin/winepro legendary\' >> /home/$AZER/.bashrc 800 | # winepro 801 | echo '#!/bin/sh' > /usr/local/bin/winepro 802 | echo 'WINEPREFIX=~/.winepro /opt/steam-utils/bin/lsu-wine-env wine $1' >> /usr/local/bin/winepro 803 | chmod +x /usr/local/bin/winepro 804 | 805 | # steam-linux-devel 806 | unzip master.zip 807 | cd linuxulator-steam-utils-master 808 | make 809 | make install 810 | cd .. 811 | mv /usr/local/bin/steam /usr/local/bin/steam.save 812 | ln -s /opt/steam-utils/bin/steam /usr/local/bin/steam 813 | # steam-acolyte 814 | cp steam-acolyte.tar.xz /home/$AZER/steam-acolyte.tar.xz 815 | cp Box/.i386-wine-pkg.tar.xz /home/$AZER/.i386-wine-pkg.tar.xz 816 | # extensions 817 | if [ -d Box ]; then 818 | cp Box/Extensions.tar.xz /home/$AZER/Extensions.tar.xz 819 | cd /home/$AZER 820 | tar xvf Extensions.tar.xz 821 | rm Extensions.tar.xz 822 | else 823 | cd /home/$AZER 824 | fetch https://sourceforge.net/projects/extensions-chrome/files/Extensions.tar.xz/download 825 | tar xvf download 826 | rm download 827 | fi 828 | # unpack steam-acolyte 829 | tar xvf steam-acolyte.tar.xz 830 | rm steam-acolyte.tar.xz 831 | chown -R $AZER:wheel /home/$AZER/.local 832 | chmod -R +x /home/$AZER/.local/bin/ 833 | ln -s /home/$AZER/.local/bin/steam-acolyte /usr/local/bin/steam-acolyte 834 | tar xvf .i386-wine-pkg.tar.xz 835 | chown -R $1:wheel .i386-wine-pkg 836 | rm .i386-wine-pkg.tar.xz 837 | # steam-acolyte alias 838 | echo 'export PATH=$PATH:.local/bin/' >> /home/$AZER/.bashrc 839 | 840 | # block of steam installation 841 | # old way: 842 | export PATH=$PATH:/usr/local/bin 843 | su steamdev -c /opt/steam-utils/bin/steam-install 844 | mv /home/steamdev/.steam /home/$AZER/.steam 845 | su $AZER -c '/usr/local/wine-proton/bin/pkg32.sh install -y wine-proton mesa-dri' 846 | 847 | # new way: 848 | su $AZER -c 'IGNORE_OSVERSION=yes /usr/local/wine-proton/bin/pkg32.sh install -y wine-proton mesa-dri' 849 | su $AZER -c '/opt/steam-utils/bin/lsu-bootstrap --allow-stealing-my-passwords,-browser-history-and-ssh-keys' 850 | 851 | # new changes 852 | 853 | 854 | chown -R $AZER:wheel /home/$AZER/.steam 855 | 856 | echo '[Desktop Entry]' > /usr/local/etc/xdg/autostart/steam-start.desktop 857 | echo 'Name=steam-start' >> /usr/local/etc/xdg/autostart/steam-start.desktop 858 | echo 'Type=Application' >> /usr/local/etc/xdg/autostart/steam-start.desktop 859 | echo 'Exec=steam' >> /usr/local/etc/xdg/autostart/steam-start.desktop 860 | echo 'Terminal=false' >> /usr/local/etc/xdg/autostart/steam-start.desktop 861 | echo 'X-GNOME-Autostart-Delay=2' >> /usr/local/etc/xdg/autostart/steam-start.desktop 862 | 863 | #echo 'devfs /compat/linux/dev devfs rw,late 0 0' >> /etc/fstab 864 | #echo 'tmpfs /compat/linux/dev/shm tmpfs rw,late,size=1g,mode=1777 0 0' >> /etc/fstab 865 | #echo 'linprocfs /compat/linux/proc linprocfs rw 0 0' >> /etc/fstab 866 | #echo 'linsysfs /compat/linux/sys linsysfs rw 0 0' >> /etc/fstab 867 | #echo 'fdesc /dev/fd fdescfs rw 0 0' >> /etc/fstab 868 | #echo 'procfs /proc procfs rw 0 0' >> /etc/fstab 869 | 870 | echo '[Desktop Entry]' > /usr/local/etc/xdg/autostart/mount-a.desktop 871 | echo 'Name=mount-a' >> /usr/local/etc/xdg/autostart/mount-a.desktop 872 | echo 'Type=Application' >> /usr/local/etc/xdg/autostart/mount-a.desktop 873 | echo 'Exec=sudo mount -a' >> /usr/local/etc/xdg/autostart/mount-a.desktop 874 | echo 'Terminal=false' >> /usr/local/etc/xdg/autostart/mount-a.desktop 875 | 876 | ############################################ 877 | ### Wine ### 878 | ############################################ 879 | echo '==> Downloading 32-bit wine packages...' 880 | su $AZER -c '/usr/local/share/wine/pkg32.sh install -y wine mesa-dri' 881 | 882 | ############################################ 883 | ### Login manager ### 884 | ############################################ 885 | # slim customization 886 | sysrc dbus_enable=YES 887 | #sysrc hald_enable=YES 888 | sysrc slim_enable=YES 889 | echo "default_user $AZER" >> /usr/local/etc/slim.conf 890 | echo 'auto_login yes' >> /usr/local/etc/slim.conf 891 | echo 'focus_password yes' >> /usr/local/etc/slim.conf 892 | # bugs 893 | #cat << EOF >> /etc/crontab 894 | #@reboot root ( sleep 2 ; service slim start ) 895 | #EOF 896 | 897 | ############################################ 898 | ### Desktop environment ### 899 | ############################################ 900 | cd $MATH 901 | pw groupmod operator -m $AZER 902 | # choose desktop 903 | case "$DENV" in 904 | plasma) 905 | pli plasma5-plasma 906 | echo 'startplasma-x11' >> /home/$AZER/.xinitrc 907 | ;; 908 | lumina) 909 | pli lumina 910 | 911 | pli fluxbox 912 | pli fluxbox-tenr-styles-pack 913 | pli la-capitaine-icon-theme 914 | pli lumina-archiver 915 | pli lumina-calculator 916 | pli lumina-core 917 | pli lumina-coreutils 918 | pli lumina-fileinfo 919 | pli lumina-mediaplayer 920 | pli lumina-pdf 921 | pli lumina-photo 922 | pli lumina-screenshot 923 | pli lumina-textedit 924 | pli numlockx 925 | pli openjpeg 926 | pli poppler 927 | pli poppler-data 928 | pli poppler-qt5 929 | pli xbrightness 930 | 931 | echo 'start-lumina-desktop' >> /home/$AZER/.xinitrc 932 | #echo "FM=\"lumina-fm\"" >> /usr/local/etc/automount.conf 933 | pli pc-networkmanager 934 | pli pc-mixer 935 | cat << EOF > /usr/local/etc/xdg/autostart/pc-mixer.desktop 936 | [Desktop Entry] 937 | Name=pc-mixer 938 | Type=Application 939 | Exec=pc-mixer 940 | Terminal=false 941 | EOF 942 | ;; 943 | lxqt) 944 | pli lxqt 945 | echo 'startlxqt' >> /home/$AZER/.xinitrc 946 | printf '%s\n' /General/a 'window_manager=openbox' . w q | ex -s /usr/local/share/lxqt/session.conf 947 | ;; 948 | obox) 949 | #this experemental function 950 | pli openbox 951 | pli obconf 952 | pli pc-networkmanager 953 | pli pc-mixer 954 | pli pcmanfm 955 | pli lxpanel 956 | 957 | echo 'exec openbox-session' >> /home/$AZER/.xinitrc 958 | mkdir /home/$AZER/Desktop 959 | mkdir /home/$AZER/Downloads 960 | mkdir /home/$AZER/.config 961 | mkdir /home/$AZER/.config/openbox 962 | cp /usr/local/etc/xdg/openbox/*.* /home/$AZER/.config/openbox 963 | #cp menu.xml /home/$AZER/.config/openbox/menu.xml 964 | cat << EOF >> /home/$AZER/.cosmos 965 | xclock -geometry 200x200-50+50 966 | EOF 967 | cat << EOF >> /home/$AZER/.config/openbox/autostart 968 | sudo mount -a 969 | lxpanel & 970 | feh --bg-scale /usr/local/share/wallpapers/wall.jpg & 971 | xterm -geometry 50x15+0-50 -e ~/reconfig & 972 | xterm -geometry 40x4-750+0 -e ~/.steam-wine & 973 | xterm -geometry 40x4-500+0 -e ~/.steam-winepro & 974 | xterm -geometry 40x4-250+0 -e ~/.steam-compat & 975 | xterm -geometry 40x4-0+0 -e ~/.steam-acolyte & 976 | pc-mixer & 977 | sudo pc-nettray & 978 | winetricks -q 7zip & 979 | steam & 980 | EOF 981 | cat << EOF > /home/$AZER/.config/openbox/menu.xml 982 | 983 | 984 | 985 | 986 | 987 | 988 | 989 | steam-acolyte 990 | 991 | yes 992 | 993 | 994 | 995 | 996 | 997 | xterm -geometry 40x4+0-0 -e ./.boost 998 | 999 | yes 1000 | 1001 | 1002 | 1003 | 1004 | 1005 | chrome --show-fps-counter --force-dark-mode --window-size=640,760 --window-position=640,0 https://stadia.google.com/ 1006 | 1007 | yes 1008 | Chrome 1009 | 1010 | 1011 | 1012 | 1013 | 1014 | lxterminal --geometry=84x24 -e ./.info 1015 | 1016 | yes 1017 | 1018 | 1019 | 1020 | 1021 | 1022 | xterm -geometry 73x55-0-25 -e ./.utils 1023 | 1024 | yes 1025 | 1026 | 1027 | 1028 | 1029 | 1030 | 1031 | 1032 | 1033 | obconf 1034 | yes 1035 | 1036 | 1037 | 1038 | 1039 | batterycat 1040 | yes 1041 | 1042 | 1043 | 1044 | 1045 | xterm -e htop 1046 | yes 1047 | 1048 | 1049 | 1050 | 1051 | xterm -geometry 73x31-0-25 -e ./.cosmos 1052 | yes 1053 | 1054 | 1055 | 1056 | 1057 | xdg-open http://localhost:631/ 1058 | 1059 | no 1060 | cups 1061 | 1062 | 1063 | 1064 | 1065 | 1066 | 1067 | 1068 | 1069 | 1070 | 1071 | 1072 | 1073 | 1074 | 1075 | 1076 | 1077 | 1078 | yes 1079 | 1080 | 1081 | 1082 | 1083 | sudo reboot 1084 | 1085 | yes 1086 | 1087 | 1088 | 1089 | 1090 | 1091 | sudo poweroff 1092 | 1093 | yes 1094 | 1095 | 1096 | 1097 | 1098 | 1099 | 1100 | EOF 1101 | echo sessiondir /usr/local/share/xsessions/ >> /usr/local/slim.conf 1102 | ;; 1103 | lxde) 1104 | pli lxde-meta 1105 | pli pc-networkmanager 1106 | echo 'startlxde' >> /home/$AZER/.xinitrc 1107 | #pkg delete -f -y pc-mixer 1108 | printf '%s\n' /config/a 'quick_exec=1' . w q | ex -s /usr/local/etc/xdg/libfm/libfm.conf 1109 | ;; 1110 | *) 1111 | echo "Error. Unrecognized desktop." 1112 | exit 0 1113 | ;; 1114 | esac 1115 | 1116 | # adding buttons 1117 | #cat << EOF >> /usr/local/etc/polkit-1/rules.d/50-default.rules 1118 | #polkit.addRule(function (action, subject) 1119 | # if ((action.id == "org.freedesktop.consolekit.system.restart" || 1120 | # action.id == "org.freedesktop.consolekit.system.stop") 1121 | # && subject.isInGroup("wheel")) { 1122 | # return polkit.Result.YES; 1123 | # } 1124 | #}); 1125 | #EOF 1126 | 1127 | # autostart 1128 | cat << EOF > /usr/local/etc/xdg/autostart/reconfig.desktop 1129 | [Desktop Entry] 1130 | Name=reconfig 1131 | Type=Application 1132 | Exec=xterm -geometry 50x15+0-50 -e ~/reconfig 1133 | Terminal=false 1134 | EOF 1135 | cat << EOF > /usr/local/etc/xdg/autostart/steam-wine.desktop 1136 | [Desktop Entry] 1137 | Name=steam-wine 1138 | Type=Application 1139 | Exec=xterm -geometry 40x4-750+0 -e ~/.steam-wine 1140 | Terminal=false 1141 | EOF 1142 | cat << EOF > /usr/local/etc/xdg/autostart/steam-winepro.desktop 1143 | [Desktop Entry] 1144 | Name=steam-winepro 1145 | Type=Application 1146 | Exec=xterm -geometry 40x4-500+0 -e ~/.steam-winepro 1147 | Terminal=false 1148 | EOF 1149 | cat << EOF > /usr/local/etc/xdg/autostart/steam-compat.desktop 1150 | [Desktop Entry] 1151 | Name=steam-compat 1152 | Type=Application 1153 | Exec=xterm -geometry 40x4-250+0 -e ~/.steam-compat 1154 | Terminal=false 1155 | EOF 1156 | cat << EOF > /usr/local/etc/xdg/autostart/steam-acolyte.desktop 1157 | [Desktop Entry] 1158 | Name=steam-acolyte 1159 | Type=Application 1160 | Exec=xterm -geometry 40x4-0+0 -e ~/.steam-acolyte 1161 | Terminal=false 1162 | EOF 1163 | cat << EOF > /usr/local/etc/xdg/autostart/cairo-clock.desktop 1164 | [Desktop Entry] 1165 | Name=cairo-clock 1166 | Type=Application 1167 | Exec=cairo-clock -w 200 -h 200 -x 200 -y 200 -s -t simple 1168 | Terminal=false 1169 | EOF 1170 | cat << EOF > /usr/local/etc/xdg/autostart/compton.desktop 1171 | [Desktop Entry] 1172 | Name=compton 1173 | Type=Application 1174 | Exec=compton 1175 | Terminal=false 1176 | EOF 1177 | cat << EOF > /usr/local/etc/xdg/autostart/wine.desktop 1178 | [Desktop Entry] 1179 | Name=wine 1180 | Type=Application 1181 | Exec=winetricks -q 7zip 1182 | Terminal=false 1183 | EOF 1184 | 1185 | ############################################ 1186 | ### Custom stage ### 1187 | ############################################ 1188 | # update packages 1189 | pkg update 1190 | # update winetricks 1191 | #winetricks --self-update 1192 | # disable some packages 1193 | mv /usr/local/bin/xscreensaver /usr/local/bin/xscreensaver.save 1194 | touch /usr/local/bin/xscreensaver 1195 | # set permission 1196 | chown -R $AZER:wheel /home/$AZER/ 1197 | 1198 | ############################################ 1199 | ### Framebuffer ### 1200 | ############################################ 1201 | 1202 | cat << EOF >> /etc/crontab 1203 | @reboot root ( sleep 2 ; service slim restart ) 1204 | @reboot root ( sleep 6 ; service slim restart ) 1205 | EOF 1206 | 1207 | #gpu=`pciconf -lv | grep VirtualBox` 1208 | #if [ "$gpu" != '' ]; then 1209 | #cat << EOF >> /etc/crontab 1210 | #@reboot root ( sleep 2 ; service slim restart ) 1211 | #@reboot root ( sleep 4 ; service slim restart ) 1212 | #@reboot root ( sleep 6 ; service slim restart ) 1213 | #EOF 1214 | #fi 1215 | 1216 | case "$DRIV" in 1217 | amdgpu) 1218 | # detect amdgpu, need reboot... 1219 | #reboot 1220 | #kldunload amdgpu.ko 1221 | cat << EOF > /usr/local/etc/X11/xorg.conf.d/xorg.conf 1222 | Section "Device" 1223 | Identifier "Standart" 1224 | Driver "vesa" 1225 | EndSection 1226 | EOF 1227 | # detect amdgpu, need fix... 1228 | cat << EOF >> /etc/crontab 1229 | @reboot root ( sleep 8 ; service slim restart ) 1230 | EOF 1231 | ;; 1232 | radeon) 1233 | # detect radeon, need reboot... 1234 | #reboot 1235 | #kldunload radeonkms.ko 1236 | cat << EOF > /usr/local/etc/X11/xorg.conf.d/xorg.conf 1237 | Section "Device" 1238 | Identifier "Radeon" 1239 | Driver "vesa" 1240 | EndSection 1241 | EOF 1242 | ;; 1243 | intel) 1244 | # detect intel, need fix... 1245 | cat << EOF >> /etc/crontab 1246 | @reboot root ( sleep 8 ; service slim restart ) 1247 | EOF 1248 | ;; 1249 | vesa) 1250 | cat << EOF > /usr/local/etc/X11/xorg.conf.d/xorg.conf 1251 | Section "Device" 1252 | Identifier "Vesa" 1253 | Driver "vesa" 1254 | EndSection 1255 | EOF 1256 | ;; 1257 | *) 1258 | # detect all 1259 | 1260 | ;; 1261 | esac 1262 | 1263 | echo ' ' 1264 | echo '################################################################################' 1265 | echo '##### Installation complete!!! Press any key to reboot (15 second delay)... ####' 1266 | echo '################################################################################' 1267 | echo 'Press 0 to shell' 1268 | echo 'Press 1 to starting xorg' 1269 | echo 'Press 2 to shutdown computer' 1270 | echo 'Else - operating system go to reboot' 1271 | read -t 15 vop 1272 | 1273 | ############################################ 1274 | ### Apply parametrs ### 1275 | ############################################ 1276 | case $vop in 1277 | 0) 1278 | # shell 1279 | /bin/sh 1280 | ;; 1281 | 1) 1282 | # startx 1283 | cd /home/$AZER 1284 | service dbus start 1285 | service slim start 1286 | su $AZER -c 'startx' 1287 | ;; 1288 | 2) 1289 | # shutdown 1290 | shutdown -p now 1291 | ;; 1292 | *) 1293 | # proceed... 1294 | reboot 1295 | ;; 1296 | esac 1297 | 1298 | ############################################ 1299 | ### Final stage (deprecated) ### 1300 | ############################################ 1301 | # startx 1302 | cd /home/$AZER 1303 | service dbus start 1304 | #service hald start 1305 | service slim start 1306 | su $AZER -c 'startx' 1307 | --------------------------------------------------------------------------------