├── 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!
")) 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 |su root
4 | pkg ins git
7 | git clone https://github.com/steambsd/os
8 | cd os
9 | fetch https://github.com/steambsd/os/archive/go.zip
11 | unzip go.zip
12 | cd os-go
13 | chmod +x run
16 | ./run [your_user] [video_driver] [your_desktop]
19 | ./run
21 | passwd [your_user]
26 | ./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 |
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 |