aboutsummaryrefslogtreecommitdiff
path: root/custom
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-01-18 00:45:26 -0600
committerCraig Jennings <c@cjennings.net>2026-01-18 00:45:26 -0600
commiteb9539d467ccddda739e3b6eec0d611f83bcf9a8 (patch)
tree6898d057c511c5ae054c38d6d77939c642ff5b30 /custom
parentf678d66c096c14554abd66d5515e40f8a1654ab9 (diff)
downloadarchangel-eb9539d467ccddda739e3b6eec0d611f83bcf9a8.tar.gz
archangel-eb9539d467ccddda739e3b6eec0d611f83bcf9a8.zip
Fix fzf selections: disk parsing, WiFi, show all locales/keymaps
- Fix disk selection awk parsing for empty MODEL field - Add fzf-based WiFi network selection with signal/security preview - Remove pre-filter on locale/keymap so all options visible - Add helpful header hints for searching
Diffstat (limited to 'custom')
-rwxr-xr-xcustom/install-archzfs52
1 files changed, 41 insertions, 11 deletions
diff --git a/custom/install-archzfs b/custom/install-archzfs
index 1bef8ef..17abd83 100755
--- a/custom/install-archzfs
+++ b/custom/install-archzfs
@@ -135,8 +135,7 @@ get_locale() {
| awk '{print $1}' \
| sort -u \
| fzf --height=20 --layout=reverse --border \
- --header="Select Locale" \
- --query="en_US" \
+ --header="Select Locale (type to search, e.g. 'de_DE', 'fr_FR')" \
--preview='
loc={}
echo "Locale: $loc"
@@ -167,8 +166,7 @@ get_keymap() {
KEYMAP=$(localectl list-keymaps \
| fzf --height=20 --layout=reverse --border \
- --header="Select Keyboard Layout" \
- --query="us" \
+ --header="Select Keyboard Layout (type to search)" \
--preview='
echo "Keymap: {}"
echo ""
@@ -197,7 +195,7 @@ get_disks() {
# Get list of available disks with info
local disk_list
- disk_list=$(lsblk -d -n -o NAME,SIZE,MODEL,TYPE | awk '$4=="disk"{printf "/dev/%-8s %8s %s\n", $1, $2, $3}')
+ disk_list=$(lsblk -d -n -o NAME,SIZE,TYPE | awk '$3=="disk"{printf "/dev/%-8s %8s\n", $1, $2}')
if [[ -z "$disk_list" ]]; then
error "No disks found!"
@@ -406,16 +404,48 @@ get_wifi() {
echo ""
info "Scanning for networks..."
nmcli device wifi rescan 2>/dev/null || true
- sleep 2
+ sleep 3
+
+ # Get list of networks for fzf
+ local networks
+ networks=$(nmcli -t -f SSID,SIGNAL,SECURITY device wifi list | grep -v '^$' | sort -t: -k2 -rn | uniq)
+
+ if [[ -z "$networks" ]]; then
+ warn "No WiFi networks found."
+ info "Skipping WiFi configuration."
+ return
+ fi
+
echo ""
- echo "Available networks:"
- nmcli device wifi list
+ info "Select network (ENTER to confirm, ESC to skip)"
echo ""
- prompt "Enter WiFi SSID:"
- read -p "> " WIFI_SSID
+ # Use fzf to select network
+ WIFI_SSID=$(echo "$networks" \
+ | fzf --height=15 --layout=reverse --border \
+ --header="Select WiFi Network" \
+ --delimiter=':' \
+ --with-nth=1 \
+ --preview='
+ IFS=":" read -r ssid signal security <<< {}
+ echo "Network: $ssid"
+ echo ""
+ echo "Signal: ${signal}%"
+ echo "Security: ${security:-Open}"
+ echo ""
+ if [[ -z "$security" ]]; then
+ echo "WARNING: Open network (no encryption)"
+ fi
+ ' \
+ --preview-window=right:40% \
+ | cut -d: -f1)
+
+ if [[ -z "$WIFI_SSID" ]]; then
+ info "Skipping WiFi configuration."
+ return
+ fi
- prompt "Enter WiFi password:"
+ prompt "Enter WiFi password for '$WIFI_SSID':"
read -s -p "> " WIFI_PASSWORD
echo ""