diff --git a/bin/omarchy-menu b/bin/omarchy-menu index a24f296b..86da69f8 100755 --- a/bin/omarchy-menu +++ b/bin/omarchy-menu @@ -127,7 +127,7 @@ show_setup_menu() { local options=" Audio\n Wifi\n󰂯 Bluetooth\n󱐋 Power Profile\n󰍹 Monitors" [ -f ~/.config/hypr/bindings.conf ] && options="$options\n Keybindings" [ -f ~/.config/hypr/input.conf ] && options="$options\n Input" - options="$options\n Config\n󰈷 Fingerprint\n Fido2" + options="$options\n󰱔 DNS\n Config\n󰈷 Fingerprint\n Fido2" case $(menu "Setup" "$options") in *Audio*) alacritty --class=Wiremix -e wiremix ;; @@ -143,6 +143,7 @@ show_setup_menu() { *Monitors*) edit_in_nvim ~/.config/hypr/monitors.conf ;; *Keybindings*) edit_in_nvim ~/.config/hypr/bindings.conf ;; *Input*) edit_in_nvim ~/.config/hypr/input.conf ;; + *DNS*) present_terminal omarchy-setup-dns ;; *Config*) show_setup_config_menu ;; *Fingerprint*) present_terminal omarchy-setup-fingerprint ;; *Fido2*) present_terminal omarchy-setup-fido2 ;; diff --git a/bin/omarchy-setup-dns b/bin/omarchy-setup-dns new file mode 100755 index 00000000..aa1924c1 --- /dev/null +++ b/bin/omarchy-setup-dns @@ -0,0 +1,48 @@ +#!/bin/bash + +if [[ -z $1 ]]; then + dns=$(gum choose --height 5 --header "Select DNS provider" Cloudflare DHCP Custom) +else + dns=$1 +fi + +case "$dns" in +Cloudflare) + sudo tee /etc/systemd/resolved.conf >/dev/null <<'EOF' +[Resolve] +DNS=1.1.1.1#cloudflare-dns.com 1.0.0.1#cloudflare-dns.com +FallbackDNS=8.8.8.8#dns.google 8.8.4.4#dns.google +DNSOverTLS=opportunistic +EOF + sudo systemctl restart systemd-resolved + ;; + +DHCP) + sudo tee /etc/systemd/resolved.conf >/dev/null <<'EOF' +[Resolve] +DNS= +FallbackDNS= +DNSOverTLS=no +EOF + sudo systemctl restart systemd-resolved + ;; + +Custom) + echo "Enter your DNS servers (space-separated, e.g. '192.168.1.1 1.1.1.1'):" + read -r dns_servers + + if [[ -z "$dns_servers" ]]; then + echo "Error: No DNS servers provided." + exit 1 + fi + + sudo tee /etc/systemd/resolved.conf >/dev/null <