เป็นไปได้ไหมที่จะตั้งค่าทางลัดสำหรับเปิด / ปิด wifi


คำตอบ:


14

สคริปต์นี้จะสลับสถานะและแสดงข้อความเพื่อยืนยันสิ่งที่ได้ทำไปแล้ว

#!/bin/bash

if [ $(rfkill list wifi | grep "Soft blocked: yes" | wc -l) -gt 0 ] ; then
    rfkill unblock wifi
    zenity --info --text "Enabled wireless"
else
    rfkill block wifi
    zenity --info --text "Disabled wireless"
fi

หากต้องการให้พรอมต์เตือนหายไปให้เปลี่ยนเป็นดังนี้:

zenity --info --text "Enabled wireless" --timeout="5"
zenity --info --text "Disabled wireless" --timeout="5"

หรือทำการแจ้งเตือนที่ปรากฏขึ้นที่มุมของหน้าจอ ข้อความแสดงแทน

sudo apt-get install libnotify-bin

แทนที่บรรทัด zenity ด้วย

notify-send -i network-wireless-full "Wireless enabled" "Your wireless adaptor has been enabled."
notify-send -i network-wireless-disconnected "Wireless disabled" "Your wireless adaptor has been disabled."

เป็นคนที่ดีที่นั่นด้วย rfkill ;-)
Pavlos G.

ดีมีวิธีอัตโนมัติข้อความหายไปหลังจากหนึ่งหรือสองวินาทีหรือไม่?
NES

ใช่คำตอบที่ปรับปรุงแล้ว มี--timeout="n"ตัวเลือกที่ไม่มีเอกสารสำหรับ zenity
มิสเตอร์เบ็น

คุณช่วยอธิบายรายละเอียดเกี่ยวกับสคริปต์ได้ไหม? ฉันสนใจถ้ามันเป็นไปได้ที่จะปิดการใช้งาน wifi เฉพาะเมื่อมีการเสียบสายอีเธอร์เน็ต ?
JJD

@misterben สคริปต์พิจารณาสถานะการเชื่อมต่ออีเทอร์เน็ตหรือไม่
JJD

4

ฉันกำลังมองหาวิธีแก้ปัญหานี้ด้วยตัวเองมาระยะหนึ่งแล้วและได้ใช้เคล็ดลับและลูกเล่นมากมายตลอด ในที่สุดฉันก็พบวิธีแก้ปัญหาที่เหมาะกับฉันและตัดสินใจที่จะสร้างมือใหม่หัดเดิน อดทนกับฉันนี่ก็เป็นโปรแกรมสำหรับผู้ที่ไม่สามารถเขียนโปรแกรมใน linux ได้มากกว่าพวกคุณหลายคนเช่นตัวฉันเอง

คลิกไอคอนตัวเรียกใช้งานที่แถบเลื่อนด้านซ้ายบน (หน้าแรกของ Dash) พิมพ์ใน 'gedit' แล้วคลิก Enter

ตอนนี้คุณจะสร้างสคริปต์ที่จะสลับ wifi

ฉันใช้ทางลัดของตัวจัดการเครือข่าย nmcli nm wifi เพื่อกำหนดสถานะ wifi และเพื่อควบคุม ฉันใช้สคริปต์การแจ้งเตือนที่ระบุในตัวอย่างด้านบนเพื่อแสดงสถานะ wifi นี่คือสคริปต์ของฉัน

#!/bin/bash

if [ $(nmcli nm wifi | grep "disabled" | wc -l) -eq 1 ] ; then
    nmcli nm wifi on
    notify-send -i network-wireless-full "Wireless enabled" "Your   wireless adaptor has been enabled."
else
    nmcli nm wifi off
    notify-send -i network-wireless-disconnected "Wireless disabled"    "Your wireless adaptor has been disabled."
fi

คัดลอกและวางสิ่งนี้ลงในโปรแกรมแก้ไขที่คุณเพิ่งเปิดและบันทึกเป็นชื่อไฟล์ใด ๆ ที่คุณเห็นว่าเหมาะสม (ของฉันคือ wifitoggle)

ขั้นตอนต่อไปคือการทำให้ไฟล์นั้นทำงานได้ (ใน Home Folder คลิกขวาที่ไฟล์คุณสมบัติแท็บการอนุญาตเครื่องหมายถูกที่ 'Run as executable')

จากนั้นวางสำเนาในไดเร็กทอรีระบบไฟล์ / usr / bin (เปิดเทอร์มินัลพิมพ์ sudo nautilus นำทางไปยังระบบไฟล์จากนั้น usr จากนั้นเปิด bin วาง y)

สุดท้ายไปที่การตั้งค่าระบบ -> แป้นพิมพ์ -> แท็บทางลัด; กดปุ่ม + เล็ก ๆ น้อย ๆ ด้านล่างกรอกชื่อสำหรับสลับของคุณและกรอกชื่อไฟล์สำหรับสคริปต์ที่คุณให้ (ในกรณีของฉันคือ wifitoggle) คลิกใช้และคลิกที่ข้อความ 'diabled' ทางด้านขวาแล้วกดปุ่มลัดของคุณ ทำ!


3

หากต้องการปิดใช้งานอะแดปเตอร์ไร้สายของคุณrfkill block wifiให้เปิดใช้งานrfkill unblock wifi

แทนที่จะใช้ wifi คุณสามารถใช้หนึ่งในคำหลักต่อไปนี้: all wifi wlan bluetooth uwb ultrawideband wimax wwan gps fm


1

ใช่คุณสามารถมีcnetworkmanager อยู่ในที่เก็บดังนั้นให้ติดตั้งและสร้างตัวเรียกใช้งานด้วยคำสั่งcnetworkmanager --wifi=noหากคุณต้องการปิดการใช้งานแบบไร้สายและคำสั่งcnetworkmanager --wifi=yesหากคุณต้องการเปิดใช้งานระบบไร้สาย


1

สิ่งที่ชอบsudo ifconfig <wlan0> downหรือsudo ifconfig <wlan0> up?

นี่คือสคริปต์ของฉัน:

#!/bin/bash
echo "Checking wireless iface status...."

if iwconfig wlan0 | grep Quality
then 
echo "Wi/Fi is being disabled...."
    if rfkill block wifi
    then
    echo "Wi/Fi is now OFF!"
    fi
else 
echo "Wi/Fi is being enabled...."
    if rfkill unblock wifi
    then
    echo "Wi/Fi is now ON!"
    fi
fi

FYI: rfkillเป็นdavidและmisterbenปัญหาจะดีกว่าในกรณีที่คุณกำลังใช้เครือข่ายผู้จัดการ
ifconfig จะปิดใช้งานอินเทอร์เฟซ แต่ Network-Manager จะเปิดใช้งานใหม่โดยอัตโนมัติ


มีความคิดที่จะใช้กับทางลัดเดียวกันหรือไม่
NES

ฉันจะตรวจสอบสิ่งนั้นและฉันจะแจ้งให้คุณทราบ ;-)
Pavlos G.

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.