Initial commit
This commit is contained in:
commit
66e488f9b3
15 changed files with 581 additions and 0 deletions
5
.gitignore
vendored
Normal file
5
.gitignore
vendored
Normal file
|
@ -0,0 +1,5 @@
|
|||
*~
|
||||
*.BAK
|
||||
*.bak
|
||||
*.EXE
|
||||
*.exe
|
11
pc/os/BOOTUP.BAT
Normal file
11
pc/os/BOOTUP.BAT
Normal file
|
@ -0,0 +1,11 @@
|
|||
@echo off
|
||||
echo ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍť
|
||||
echo ş System Configuration (C) Copyright 1985-2024, Kangaroo Punch Studios ş
|
||||
echo ĚÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍš
|
||||
echo ş Main Processor : 80486 ł Base Memory Size : 640 KB ş
|
||||
echo ş Numeric Processor : None ł Ext. Memory Size : 14912 KB ş
|
||||
echo ş Floppy Drive A : 1.44MB, 3Ť" ł Hard Disk C: Type : 47 ş
|
||||
echo ş Floppy Drive B : 1.2 MB, 5Ź" ł Hard Disk D: Type : None ş
|
||||
echo ş Display Type : VGA or EGA ł Serial Port(s) : 3F8 ş
|
||||
echo ş ROM-BIOS Date : 11/15/24 ł Parallel Port(s) : 3BC ş
|
||||
echo ČÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍź
|
1
pc/os/EDIT.BAT
Normal file
1
pc/os/EDIT.BAT
Normal file
|
@ -0,0 +1 @@
|
|||
@c:\snafu\gets\tools\se.exe %1 %2 %3 %4 %5 %6 %7 %8 %9
|
25
pc/os/SPLASH.ANS
Normal file
25
pc/os/SPLASH.ANS
Normal file
|
@ -0,0 +1,25 @@
|
|||
[?7h[40m[2J[40m
|
||||
|
||||
[0;1m [0mM [1;30mI C R O S
|
||||
M [0mI [1;30mC R O S[5C[36mMiniature PC BIOS
|
||||
[30mM I [0mC [1;30mR O S
|
||||
M I C [0mR [1;30mO S[5C[0;36mVersion 1.0
|
||||
[1;30mM I C R [0mO [1;30mS[5C[0;36mCopyright 2024 Scott Duensing
|
||||
[1;37mM I C R O S[5C[0;36mKangaroo Punch Studios
|
||||
|
||||
|
||||
[5C[37mCPU : Broadcom BCM2711 Quad Cortex-A72 ARM v8
|
||||
[5CRAM : 2097152 KB
|
||||
[5CUSB : 2x 3.0 / 2x 2.0
|
||||
RADIO : BT 5.0 BLE / 2.4GHz @ 5GHz 802.11ac
|
||||
VIDEO : 2x 1920x1080 HDMI
|
||||
|
||||
|
||||
ARM-to-x86 Translation and DOS provided by [1mDOSBox Staging
|
||||
|
||||
|
||||
|
||||
[27C[33m* * * PLEASE WAIT * * *
|
||||
|
||||
|
||||
[0m[255D
|
158
pc/os/notes.txt
Normal file
158
pc/os/notes.txt
Normal file
|
@ -0,0 +1,158 @@
|
|||
- Things we need to configure:
|
||||
|
||||
Locale
|
||||
|
||||
Keyboard
|
||||
|
||||
Timezone
|
||||
timedatectl show
|
||||
timedatectl --no-pager list-timezones
|
||||
timedatectl set-timezone <ZONE>
|
||||
|
||||
WiFi Region
|
||||
WiFi SSID
|
||||
WiFi Passkey
|
||||
Bluetooth
|
||||
Hostname
|
||||
Password
|
||||
Volume
|
||||
Audio Internal / HDMI
|
||||
|
||||
|
||||
- Change /boot/firmware/cmdline.txt:
|
||||
|
||||
console=serial0,115200 console=tty3 logo.nologo root=PARTUUID=df70021d-02 rootfstype=ext4 fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles cfg80211.ieee80211_regdom=US video=HDMI-A-1:640x480M@60,panel_orientation=up
|
||||
|
||||
|
||||
- Change /boot/firmware/config.txt (add to end):
|
||||
|
||||
[pi4]
|
||||
arm_freq=2100
|
||||
gpu_freq=750
|
||||
over_voltage=6
|
||||
|
||||
[all]
|
||||
dtoverlay=audremap,pins_18_19
|
||||
disable_splash=1
|
||||
disable_touchscreen=1
|
||||
|
||||
|
||||
- Tweak CPU:
|
||||
|
||||
sudo apt-get install cpufrequtils
|
||||
echo "CPU_DEFAULT_GOVERNOR=\"performance\"" >> /etc/cpu_governor
|
||||
|
||||
|
||||
- Hide some text:
|
||||
|
||||
echo > /etc/issue
|
||||
echo > /etc/motd
|
||||
cat <<- GETTY > /etc/systemd/system/getty@tty1.service.d/autologin.conf
|
||||
[Service]
|
||||
ExecStart=
|
||||
ExecStart=-/sbin/agetty --skip-login --nonewline --noissue --autologin ${SUDO_USER} --noclear %I $TERM
|
||||
GETTY
|
||||
touch .hushlogin
|
||||
sudo chmod -x /etc/update-motd.d/*
|
||||
|
||||
|
||||
- Set config options:
|
||||
|
||||
sudo raspi-config nonint do_update
|
||||
sudo raspi-config nonint do_hostname tinydos
|
||||
sudo raspi-config nonint do_boot_behaviour B2
|
||||
sudo raspi-config nonint do_boot_wait 0
|
||||
sudo raspi-config nonint do_audio 0 # ERRORS!
|
||||
sudo raspi-config nonint do_blanking 0
|
||||
sudo raspi-config nonint do_ssh 0
|
||||
sudo raspi-config nonint do_rpi_connect 1
|
||||
sudo raspi-config nonint do_vnc 0
|
||||
sudo raspi-config nonint do_net_names 0
|
||||
sudo raspi-config nonint do_wayland W1
|
||||
sudo raspi-config nonint do_overscan_kms 1 0
|
||||
|
||||
|
||||
- Install Samba:
|
||||
|
||||
sudo apt-get install samba samba-common-bin smbclient cifs-utils
|
||||
cat <<- SAMBA >> /etc/samba/smb.conf
|
||||
[DOS]
|
||||
comment = Tiny DOS Files
|
||||
path = /home/scott/dos
|
||||
writable = yes
|
||||
browseable = yes
|
||||
public = no
|
||||
SAMBA
|
||||
(echo "${PASSWORD}"; echo "${PASSWORD}") | sudo smbpasswd -s -a "${SUDO_USER}"
|
||||
sudo service smbd restart
|
||||
|
||||
|
||||
- Install DOSBox Staging:
|
||||
|
||||
sudo apt install flatpak
|
||||
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
|
||||
flatpak install flathub io.github.dosbox-staging
|
||||
|
||||
|
||||
- Configure DOSBox:
|
||||
|
||||
sed -i "s/fullscreen.\s*= false/fullscreen = true/" dos/dosbox-staging.conf
|
||||
sed -i "s/fullresolution.\s*= desktop/fullresolution = 1920x1080/" dos/dosbox-staging.conf
|
||||
sed -i "s/startup_verbosity.\s*= auto/startup_verbosity = quiet/" dos/dosbox-staging.conf
|
||||
sed -i "s/aspect.\s*= auto/aspect = stretch/" dos/dosbox-staging.conf
|
||||
sed -i "s/integer_scaling.\s*= auto/integer_scaling = off/" dos/dosbox-staging.conf
|
||||
sed -i "s/viewport.\s*= fit/viewport = 80%/" dos/dosbox-staging.conf
|
||||
sed -i "s/glshader.\s*= crt_auto/glshader = none/" dos/dosbox-staging.conf
|
||||
sed -i "s/cycles.\s*= auto/cycles = 40000/" dos/dosbox-staging.conf
|
||||
sed -i "s/capture_dir.\s*= capture/capture_dir = ~\/dos\/capture/" dos/dosbox-staging.conf
|
||||
sed -i "s/phonebookfile.\s*= phonebook.txt/phonebookfile = ~\/dos\/phonebook.txt" dos/dosbox-staging.conf
|
||||
sed -i "s/ipx.\s*= false/ipx = true/" dos/dosbox-staging.conf
|
||||
cat <<- STARTUP >> dos/dosbox-staging.conf
|
||||
@echo off
|
||||
cls
|
||||
mount c ~/dos/c > NUL
|
||||
c:
|
||||
call dos\bootup.bat
|
||||
autoexec.bat
|
||||
STARTUP
|
||||
|
||||
|
||||
- Start on boot:
|
||||
|
||||
cat <<- "XINIT" > .xinitrc
|
||||
amixer -q -M sset Master 100%
|
||||
xrandr --output HDMI-1 --mode "1920x1080"
|
||||
xrandr --output HDMI-2 --same-as HDMI-1
|
||||
flatpak run io.github.dosbox-staging
|
||||
XINIT
|
||||
|
||||
cat <<- "PROFILE" >> .profile
|
||||
# DOSBox Staging
|
||||
if [[ -z \"\${SSH_CLIENT}\" ]]; then
|
||||
startx -- -quiet -depth 24
|
||||
fi
|
||||
PROFILE
|
||||
|
||||
|
||||
- Set up DOS folder:
|
||||
|
||||
mkdir -p dos/c/DOS
|
||||
mkdir -p dos/capture
|
||||
ln -s /home/${USER}/.var/app/io.github.dosbox-staging/config/dosbox/dosbox-staging.conf dos/.
|
||||
cat <<- AUTOEXEC > dos/c/AUTOEXEC.BAT
|
||||
@echo off
|
||||
PATH=C:\DOS;Z:\;Y:\DOS
|
||||
dir
|
||||
AUTOEXEC
|
||||
unix2dos dos/c/AUTOEXEC.BAT
|
||||
echo "@c:\snafu\gets\tools\se.exe %1 %2 %3 %4 %5 %6 %7 %8 %9" > dos/c/DOS/EDIT.BAT
|
||||
unix2dos dos/c/DOS/EDIT.BAT
|
||||
|
||||
|
||||
- Modify Plymouth:
|
||||
|
||||
cd /usr/share/plymouth/themes/pix
|
||||
sudo mv splash.png splash.png.old
|
||||
sudo cp ~/splash.png splash.png
|
||||
sudo sed -i "s/Plymouth.SetUpdateStatusFunction(message_callback);/#Plymouth.SetUpdateStatusFunction(message_callback);/" pix.script
|
||||
sudo update-initramfs -u
|
BIN
pc/os/splash.png
Normal file
BIN
pc/os/splash.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 72 KiB |
BIN
pc/os/splash.xcf
Normal file
BIN
pc/os/splash.xcf
Normal file
Binary file not shown.
BIN
pc/settings/DIALOG.FRM
Normal file
BIN
pc/settings/DIALOG.FRM
Normal file
Binary file not shown.
BIN
pc/settings/MAIN.FRM
Normal file
BIN
pc/settings/MAIN.FRM
Normal file
Binary file not shown.
139
pc/settings/MM_SETUP.BAS
Normal file
139
pc/settings/MM_SETUP.BAS
Normal file
|
@ -0,0 +1,139 @@
|
|||
'$FORM frmMain
|
||||
|
||||
|
||||
' $INCLUDE: 'MM_SETUP.BI'
|
||||
|
||||
|
||||
DECLARE SUB comLine (n, a$(), max)
|
||||
DECLARE SUB showHelp ()
|
||||
DECLARE SUB startup ()
|
||||
|
||||
|
||||
CONST magic$ = "KSFGILWZ"
|
||||
|
||||
|
||||
' UI Colors.
|
||||
SCREEN.ControlPanel(DESKTOP_BACKCOLOR) = 1
|
||||
SCREEN.ControlPanel(DESKTOP_FORECOLOR) = 7
|
||||
SCREEN.ControlPanel(DESKTOP_PATTERN) = 32
|
||||
|
||||
|
||||
' *** DEBUGGING ***
|
||||
dialogOpen "Setup", "Loading Settings"
|
||||
loadSettings
|
||||
dialogClose
|
||||
|
||||
frmMain.Tag = magic$
|
||||
frmMain.SHOW
|
||||
|
||||
|
||||
'startup
|
||||
|
||||
STATIC SUB comLine (NumArgs AS INTEGER, Args$(), MaxArgs AS INTEGER)
|
||||
|
||||
DIM in
|
||||
DIM cl$
|
||||
DIM l
|
||||
DIM I
|
||||
DIM c$
|
||||
|
||||
NumArgs = 0: in = FALSE
|
||||
' Get the command line using the COMMAND$ function
|
||||
cl$ = COMMAND$
|
||||
l = LEN(cl$)
|
||||
' Go through the command line a character at a time
|
||||
FOR I = 1 TO l
|
||||
c$ = MID$(cl$, I, 1)
|
||||
' Test for character being a blank or a tab
|
||||
IF (c$ <> " " AND c$ <> CHR$(9)) THEN
|
||||
' Neither blank nor tab; test if you're already inside
|
||||
' an argument
|
||||
IF NOT in THEN
|
||||
' You've found the start of a new argument
|
||||
' Test for too many arguments
|
||||
IF NumArgs = MaxArgs THEN EXIT FOR
|
||||
NumArgs = NumArgs + 1
|
||||
in = TRUE
|
||||
END IF
|
||||
' Add the character to the current argument
|
||||
Args$(NumArgs) = Args$(NumArgs) + c$
|
||||
ELSE
|
||||
' Found a blank or a tab.
|
||||
' Set "Not in an argument" flag to FALSE
|
||||
in = FALSE
|
||||
END IF
|
||||
NEXT I
|
||||
|
||||
END SUB
|
||||
|
||||
STATIC SUB showHelp ()
|
||||
|
||||
PRINT "This isn't helpful yet."
|
||||
|
||||
END SUB
|
||||
|
||||
SUB startup ()
|
||||
|
||||
'
|
||||
' Read command line options from passed argument ("\ksfgilwz.$$$").
|
||||
'
|
||||
' After arguments are read, delete this file. If it re-appears, read
|
||||
' data from Linux out of it and delete it again.
|
||||
'
|
||||
' For us to send data to Linux, write it to the first argument but change
|
||||
' the extension to !!! ("\ksfgilwz.!!!"). Linux will delete it when it
|
||||
' has been processed.
|
||||
'
|
||||
' If we need to execute DOS commands, write them to the second argument
|
||||
' ("\ksfgilwz.bat") and exit this program.
|
||||
'
|
||||
|
||||
DIM p$(1 TO 10)
|
||||
DIM a$(1 TO 10)
|
||||
DIM c$
|
||||
DIM n
|
||||
DIM f
|
||||
|
||||
' Parse command line.
|
||||
CALL comLine(n, a$(), 10)
|
||||
|
||||
' Did we get exactly two arguments?
|
||||
IF (n <> 1) OR (a$(1) <> magic$) THEN
|
||||
PRINT "Do not run MM_SETUP directly. Use SETTINGS instead."
|
||||
END
|
||||
END IF
|
||||
|
||||
' Load the actual command line arguments from a file to preserve case.
|
||||
n = 0
|
||||
ON LOCAL ERROR RESUME NEXT
|
||||
f = FREEFILE
|
||||
OPEN "C:\" + magic$ + ".$$$" FOR INPUT AS f
|
||||
IF ERR = 0 THEN
|
||||
DO WHILE NOT EOF(f)
|
||||
n = n + 1
|
||||
LINE INPUT #f, p$(n)
|
||||
LOOP
|
||||
CLOSE f
|
||||
END IF
|
||||
ERR = 0
|
||||
ON LOCAL ERROR GOTO 0
|
||||
|
||||
' Did they send us any arguments? If not, go GUI!
|
||||
IF (n = 0) THEN
|
||||
frmMain.Tag = magic$
|
||||
frmMain.SHOW
|
||||
ELSE
|
||||
' Process command line arguments.
|
||||
c$ = RTRIM$(LTRIM$(UCASE$(p$(1))))
|
||||
SELECT CASE c$
|
||||
CASE "?", "/?", "HELP", "/HELP"
|
||||
showHelp
|
||||
CASE ELSE
|
||||
PRINT "Unknown option "; CHR$(34); c$; CHR$(34); "."
|
||||
PRINT "Use "; CHR$(34); "SETTINGS HELP"; CHR$(34); " for help."
|
||||
END 1
|
||||
END SELECT
|
||||
END IF
|
||||
|
||||
END SUB
|
||||
|
14
pc/settings/MM_SETUP.BI
Normal file
14
pc/settings/MM_SETUP.BI
Normal file
|
@ -0,0 +1,14 @@
|
|||
OPTION EXPLICIT
|
||||
DEFINT A-Z
|
||||
|
||||
' $INCLUDE: 'CONSTANT.BI'
|
||||
|
||||
DECLARE SUB centerForm (who AS FORM)
|
||||
DECLARE SUB dialogClose ()
|
||||
DECLARE SUB dialogOpen (titleBar AS STRING, message AS STRING)
|
||||
DECLARE SUB getList (f AS INTEGER, who AS CONTROL)
|
||||
DECLARE SUB loadSettings ()
|
||||
DECLARE SUB setList (who AS CONTROL, what AS STRING)
|
||||
|
||||
DECLARE FUNCTION getSetting (f AS INTEGER) AS STRING
|
||||
|
4
pc/settings/MM_SETUP.MAK
Normal file
4
pc/settings/MM_SETUP.MAK
Normal file
|
@ -0,0 +1,4 @@
|
|||
MM_SETUP.BAS
|
||||
MAIN.FRM
|
||||
DIALOG.FRM
|
||||
SHARED.BAS
|
39
pc/settings/SETTINGS.BAT
Normal file
39
pc/settings/SETTINGS.BAT
Normal file
|
@ -0,0 +1,39 @@
|
|||
@echo off
|
||||
|
||||
rem VBDOS is stupid and insists that command line arguments be translated
|
||||
rem to upper case. So we shove them into a file and read them from there.
|
||||
|
||||
rem "ksfgilwz" is random crap I banged into my keyboard. Nobody should have
|
||||
rem a file with that name. Right?
|
||||
set MM_RN=ksfgilwz
|
||||
|
||||
rem Specify our settings, batch, and response files.
|
||||
set MM_SF=C:\%MM_RN%.$$$
|
||||
set MM_BF=C:\%MM_RN%.bat
|
||||
set MM_RF=C:\%MM_RN%.!!!
|
||||
|
||||
if exist %MM_SF% del %MM_SF%
|
||||
if exist %MM_BF% del %MM_BF%
|
||||
if exist %MM_RF% del %MM_RF%
|
||||
|
||||
if not "%1"=="" echo %1 >> %MM_SF%
|
||||
if not "%2"=="" echo %2 >> %MM_SF%
|
||||
if not "%3"=="" echo %3 >> %MM_SF%
|
||||
if not "%4"=="" echo %4 >> %MM_SF%
|
||||
if not "%5"=="" echo %5 >> %MM_SF%
|
||||
if not "%6"=="" echo %6 >> %MM_SF%
|
||||
if not "%7"=="" echo %7 >> %MM_SF%
|
||||
if not "%8"=="" echo %8 >> %MM_SF%
|
||||
if not "%9"=="" echo %9 >> %MM_SF%
|
||||
|
||||
mm_setup.exe %MM_RN%
|
||||
|
||||
if exist %MM_BF% call %MM_BF%
|
||||
|
||||
if exist %MM_SF% del %MM_SF%
|
||||
if exist %MM_BF% del %MM_BF%
|
||||
if exist %MM_RF% del %MM_RF%
|
||||
|
||||
set MM_SF=
|
||||
set MM_BF=
|
||||
set MM_RN=
|
132
pc/settings/SHARED.BAS
Normal file
132
pc/settings/SHARED.BAS
Normal file
|
@ -0,0 +1,132 @@
|
|||
'$FORM frmMain
|
||||
'$FORM frmDialog
|
||||
|
||||
' $INCLUDE: 'MM_SETUP.BI'
|
||||
|
||||
SUB centerForm (who AS FORM)
|
||||
|
||||
' Center us on the screen.
|
||||
who.Left = ((SCREEN.Width - who.Width) / 2)
|
||||
who.Top = ((SCREEN.Height - who.Height) / 2)
|
||||
|
||||
END SUB
|
||||
|
||||
SUB dialogClose ()
|
||||
|
||||
frmDialog.HIDE
|
||||
UNLOAD frmDialog
|
||||
|
||||
END SUB
|
||||
|
||||
SUB dialogOpen (titleBar AS STRING, message AS STRING)
|
||||
|
||||
frmDialog.Caption = titleBar
|
||||
frmDialog.lblMessage.Caption = message
|
||||
frmDialog.SHOW
|
||||
|
||||
END SUB
|
||||
|
||||
SUB getList (f AS INTEGER, who AS CONTROL)
|
||||
|
||||
DIM line$
|
||||
|
||||
WHILE who.ListCount
|
||||
who.REMOVEITEM 0
|
||||
WEND
|
||||
|
||||
DO
|
||||
LINE INPUT #f, line$
|
||||
IF (line$ = "---") THEN EXIT DO
|
||||
who.ADDITEM line$
|
||||
LOOP WHILE TRUE
|
||||
|
||||
IF (who.ListCount > 0) THEN who.ListIndex = 0
|
||||
|
||||
END SUB
|
||||
|
||||
FUNCTION getSetting (f AS INTEGER) AS STRING
|
||||
|
||||
' Load a single line setting from file.
|
||||
' If setting is "---" return nothing.
|
||||
' If setting is not "---", read until we get "---".
|
||||
|
||||
DIM line$
|
||||
|
||||
getSetting = ""
|
||||
|
||||
LINE INPUT #f, line$
|
||||
IF (line$ = "---") THEN EXIT FUNCTION
|
||||
|
||||
getSetting = line$
|
||||
|
||||
DO
|
||||
LINE INPUT #f, line$
|
||||
LOOP UNTIL (line$ = "---")
|
||||
|
||||
END FUNCTION
|
||||
|
||||
SUB loadSettings ()
|
||||
|
||||
DIM f
|
||||
DIM line$
|
||||
|
||||
' We load all the settings into frmMain,
|
||||
' even if it's not going to be displayed.
|
||||
|
||||
frmMain.HIDE
|
||||
|
||||
ON LOCAL ERROR RESUME NEXT
|
||||
f = FREEFILE
|
||||
OPEN "GETINFO.OUT" FOR INPUT AS f
|
||||
IF ERR = 0 THEN
|
||||
|
||||
ON LOCAL ERROR GOTO 0
|
||||
|
||||
' Hostname
|
||||
frmMain.txtHostname.Text = getSetting(f)
|
||||
|
||||
' IPs
|
||||
getList f, frmMain.cmbCurrentIPs
|
||||
|
||||
' Timezone
|
||||
getList f, frmMain.cmbTimezone
|
||||
setList frmMain.cmbTimezone, getSetting(f)
|
||||
|
||||
' WiFi Country
|
||||
getList f, frmMain.cmbWiFiCountry
|
||||
setList frmMain.cmbWiFiCountry, getSetting(f)
|
||||
|
||||
' WiFi Network
|
||||
getList f, frmMain.cmbWiFiNetwork
|
||||
setList frmMain.cmbWiFiNetwork, getSetting(f)
|
||||
|
||||
' Bluetooth
|
||||
line$ = getSetting(f)
|
||||
|
||||
' Volume
|
||||
frmMain.hsbVolume.Value = VAL(getSetting(f))
|
||||
|
||||
' Audio Device
|
||||
getList f, frmMain.cmbAudioDevice
|
||||
setList frmMain.cmbAudioDevice, getSetting(f)
|
||||
|
||||
CLOSE f
|
||||
END IF
|
||||
ERR = 0
|
||||
ON LOCAL ERROR GOTO 0
|
||||
|
||||
END SUB
|
||||
|
||||
SUB setList (who AS CONTROL, what AS STRING)
|
||||
|
||||
DIM x
|
||||
|
||||
FOR x = 0 TO who.ListCount - 1
|
||||
IF (LEFT$(who.List(x), LEN(what)) = what) THEN
|
||||
who.ListIndex = x
|
||||
EXIT FOR
|
||||
END IF
|
||||
NEXT x
|
||||
|
||||
END SUB
|
||||
|
53
pc/settings/getInfo.sh
Executable file
53
pc/settings/getInfo.sh
Executable file
|
@ -0,0 +1,53 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Fetch all info needed for UI.
|
||||
|
||||
LINE="---"
|
||||
|
||||
# Hostname - txtHostname
|
||||
hostname
|
||||
echo "${LINE}"
|
||||
|
||||
# Assigned IP Addresses - cboCurrentIPs
|
||||
hostname -I | tr " " "\n" | grep -v -e '^[[:space:]]*$'
|
||||
echo "${LINE}"
|
||||
|
||||
# Available Timezones - cmbTimezone
|
||||
timedatectl --no-pager list-timezones
|
||||
echo "${LINE}"
|
||||
|
||||
# Current Timezone
|
||||
timedatectl show | grep Timezone | sed 's/Timezone=//'
|
||||
echo "${LINE}"
|
||||
|
||||
# Available WiFi Countries - cboWiFiCountry
|
||||
grep "^[A-Z][A-Z][[:space:]]" /usr/share/zoneinfo/iso3166.tab | sed 's/\t/ - /'
|
||||
echo "${LINE}"
|
||||
|
||||
# Current WiFi Country
|
||||
iw reg get | sed -n "0,/country/s/^country \(.\+\):.*$/\1/p"
|
||||
echo "${LINE}"
|
||||
|
||||
# Available WiFi Networks - cboWiFiNetwork
|
||||
sudo iw dev wlan0 scan | grep SSID: | sed "s/[[:space:]]SSID: //" | grep -v -e '^[[:space:]]*$' | uniq
|
||||
echo "${LINE}"
|
||||
|
||||
# Current WiFi Network
|
||||
iw wlan0 info | grep ssid | sed "s/[[:space:]]ssid //"
|
||||
echo "${LINE}"
|
||||
|
||||
# Connected Bluetooth devices
|
||||
#https://superuser.com/questions/1500383/bluetoothctl-list-connected-devices
|
||||
#bluetoothctl devices | cut -f2 -d' ' | while read uuid; do bluetoothctl info $uuid; done|grep -e "Device\|Connected\|Name"
|
||||
echo "${LINE}"
|
||||
|
||||
# Volume - hsbVolume, lblVolumeLevel
|
||||
XDG_RUNTIME_DIR=/run/user/$UID amixer sget Master | grep 'Right:' | awk -F'[][]' '{ print $2 }' | sed 's/%//'
|
||||
echo "${LINE}"
|
||||
|
||||
# Get Audio Outputs - cboAudioDevice
|
||||
aplay -l | grep "^card" | awk -F'[][]' '{ print $2 }'
|
||||
echo "${LINE}"
|
||||
|
||||
# Current Audio Output
|
||||
echo "${LINE}"
|
Loading…
Add table
Reference in a new issue