<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://lug.mtu.edu/w/index.php?action=history&amp;feed=atom&amp;title=Minutes_2026-10-29</id>
	<title>Minutes 2026-10-29 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://lug.mtu.edu/w/index.php?action=history&amp;feed=atom&amp;title=Minutes_2026-10-29"/>
	<link rel="alternate" type="text/html" href="https://lug.mtu.edu/w/index.php?title=Minutes_2026-10-29&amp;action=history"/>
	<updated>2026-11-08T16:46:31Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://lug.mtu.edu/w/index.php?title=Minutes_2026-10-29&amp;diff=8182&amp;oldid=prev</id>
		<title>Simone: fix formatting... oopsie</title>
		<link rel="alternate" type="text/html" href="https://lug.mtu.edu/w/index.php?title=Minutes_2026-10-29&amp;diff=8182&amp;oldid=prev"/>
		<updated>2026-10-29T23:54:30Z</updated>

		<summary type="html">&lt;p&gt;fix formatting... oopsie&lt;/p&gt;
&lt;a href=&quot;https://lug.mtu.edu/w/index.php?title=Minutes_2026-10-29&amp;amp;diff=8182&amp;amp;oldid=8181&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Simone</name></author>
	</entry>
	<entry>
		<id>https://lug.mtu.edu/w/index.php?title=Minutes_2026-10-29&amp;diff=8181&amp;oldid=prev</id>
		<title>Simone: create page with the notes</title>
		<link rel="alternate" type="text/html" href="https://lug.mtu.edu/w/index.php?title=Minutes_2026-10-29&amp;diff=8181&amp;oldid=prev"/>
		<updated>2026-10-29T23:53:57Z</updated>

		<summary type="html">&lt;p&gt;create page with the notes&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;BASH scripting by Freya!&lt;br /&gt;
&lt;br /&gt;
Scripting?&lt;br /&gt;
    Executables are not binary&lt;br /&gt;
    Files start with #! (Shebang)&lt;br /&gt;
        Defines what binary to run the file in&lt;br /&gt;
        Usually /bin/bash&lt;br /&gt;
        Can do it with other programming langues or anything!&lt;br /&gt;
    Good for automation/customization&lt;br /&gt;
What languages?&lt;br /&gt;
    Any&lt;br /&gt;
    Can even do auto-compiled C with GCC&lt;br /&gt;
    Usually POSIX shell like bash&lt;br /&gt;
        env/bin/bash is more &amp;#039;proper&amp;#039;&lt;br /&gt;
    Python&lt;br /&gt;
        Some scripts on your system&lt;br /&gt;
        Pacman&lt;br /&gt;
    Other shells&lt;br /&gt;
        fish, csh, zsh&lt;br /&gt;
    Shell (server) uses ZSH&lt;br /&gt;
    Other shells come with their own languages since that&amp;#039;s just what they are&lt;br /&gt;
    All high-level&lt;br /&gt;
        All terminal commands are shell commands&lt;br /&gt;
        Pipes (part of bash language)&lt;br /&gt;
        Bash is part of POSIX standard so it&amp;#039;s common on Linux/UNIX&lt;br /&gt;
    Bash language&lt;br /&gt;
        It&amp;#039;s old&lt;br /&gt;
            Bounre shell&lt;br /&gt;
            Dates back to 60s&lt;br /&gt;
Use cases&lt;br /&gt;
    Run scripts on keybind&lt;br /&gt;
        You can bind any executable to a keybind&lt;br /&gt;
        Shortcuts (open apps) as well&lt;br /&gt;
    See the weather&lt;br /&gt;
    Interactive menus&lt;br /&gt;
        dmenu&lt;br /&gt;
        Take in a list of things and sort through them&lt;br /&gt;
            Useful for menus&lt;br /&gt;
    Repetitive tasks&lt;br /&gt;
    Examples:&lt;br /&gt;
        Transferring pictures off a camera&lt;br /&gt;
    Freya found a Youtube channel with a lot of cool shell scripts&lt;br /&gt;
        Videos edited with scripts&lt;br /&gt;
            Automated FFmpeg scripts&lt;br /&gt;
    Stringing together data&lt;br /&gt;
        Screenshots&lt;br /&gt;
            Can use slurp/grim on Wayland&lt;br /&gt;
        Usually scripted&lt;br /&gt;
            Can make it dynamic&lt;br /&gt;
    Process data&lt;br /&gt;
Basics of bash&lt;br /&gt;
    No built in functions&lt;br /&gt;
        Just call commandline applications&lt;br /&gt;
    Built on commands like cs, ls&lt;br /&gt;
    Familiar if you use CLI a lot&lt;br /&gt;
    Bash environment is entirely dependent on what you have installed&lt;br /&gt;
        JSON parsing (bad) and dependent on system packages&lt;br /&gt;
    Lots of cool programs to do nice things&lt;br /&gt;
    Environment variables&lt;br /&gt;
        Just a bash variable&lt;br /&gt;
        East to access in shell environments&lt;br /&gt;
        They can be complicated on other languages&lt;br /&gt;
    Awful syntax but decently powerful&lt;br /&gt;
    Good for stringing commands together with pipes&lt;br /&gt;
    Variables&lt;br /&gt;
        Assign a string to a name&lt;br /&gt;
        Easy to access with $&lt;br /&gt;
    Echo&lt;br /&gt;
        Print statements&lt;br /&gt;
    Read lines from standard input&lt;br /&gt;
        Grab user data&lt;br /&gt;
    If statements must end in fi&lt;br /&gt;
        Some bash statements are ended with themselves backwards&lt;br /&gt;
        Really weird getting arguments&lt;br /&gt;
            Square brackets with required spaces&lt;br /&gt;
            Brackets are technically a command...&lt;br /&gt;
    Typical programming languages things (Loops, brackets, else-if)&lt;br /&gt;
    Bash is a mess....&lt;br /&gt;
        Is this how professors feel teaching Java 8 to students?&lt;br /&gt;
        Or C89?&lt;br /&gt;
    Exit codes are like return statements to exit or give errors&lt;br /&gt;
Built-in things&lt;br /&gt;
    $n gets number 0 to 9&lt;br /&gt;
    $? gets error codes&lt;br /&gt;
        See if program failed unless it&amp;#039;s being weird&lt;br /&gt;
    $@ gets arguments as arrays&lt;br /&gt;
    $! gets PID of background commnand&lt;br /&gt;
        Lets you run things asynchronously&lt;br /&gt;
Environment values&lt;br /&gt;
    Home directory&lt;br /&gt;
    Current username&lt;br /&gt;
    PATH variable&lt;br /&gt;
    XDG variables&lt;br /&gt;
        .config&lt;br /&gt;
        cache home&lt;br /&gt;
        local home&lt;br /&gt;
    Don&amp;#039;t hardcode paths, use variables instead&lt;br /&gt;
        Better for portability&lt;br /&gt;
Things to remember&lt;br /&gt;
    Commands make life easy&lt;br /&gt;
    Learn to use awk, sed, and jq&lt;br /&gt;
        Text replacement&lt;br /&gt;
        JSON parsing&lt;br /&gt;
    Curl for internet stuff&lt;br /&gt;
        Or wget&lt;br /&gt;
    There&amp;#039;s functions&lt;br /&gt;
        Make things easy for yourself&lt;br /&gt;
        But nobody uses them except for fork bombs&lt;br /&gt;
Demo time!&lt;br /&gt;
    Window manager mishaps...&lt;br /&gt;
    Example scripts&lt;br /&gt;
    National weather service provides prerendered radar GIFs&lt;br /&gt;
        Just a URL&lt;br /&gt;
        Always updated&lt;br /&gt;
        Can grab them with a script&lt;br /&gt;
            Downloads the gif to /tmp and plays it&lt;br /&gt;
        Make widgets?&lt;br /&gt;
        Uses just curl and mpv&lt;br /&gt;
    QR generator script&lt;br /&gt;
        Save text&lt;br /&gt;
        qrencode then print as image&lt;br /&gt;
    Scan QR from screen or camera&lt;br /&gt;
    All very simple, just stringing shell commands together&lt;br /&gt;
    Aurora script&lt;br /&gt;
        Shows it on a map in a window&lt;br /&gt;
        Free API from NOAA&lt;br /&gt;
        Graph of probability&lt;br /&gt;
    Script to add todo list item&lt;br /&gt;
        Doesn&amp;#039;t work...&lt;br /&gt;
    Brightness control&lt;br /&gt;
        Drivers for brightnessctl may be broken&lt;br /&gt;
        Complaining about chromeOS?&lt;br /&gt;
        Converts value to percentage&lt;br /&gt;
        Hardcoded path.....&lt;br /&gt;
    Waybar extension&lt;br /&gt;
        Outputs todo status to the bar&lt;br /&gt;
        Just a loop to show items&lt;br /&gt;
Cronjobs&lt;br /&gt;
    Do custom things on schedules&lt;br /&gt;
        Weather alerts&lt;br /&gt;
Scripting Magnum Opus&lt;br /&gt;
    Grabs days of weathers&lt;br /&gt;
    Pulled from weather services&lt;br /&gt;
    Only took 2 hours&lt;br /&gt;
    Very easy&lt;br /&gt;
    It&amp;#039;s free!&lt;br /&gt;
        Don&amp;#039;t pay for weather APIs&lt;br /&gt;
        National weather service is free and good&lt;br /&gt;
        Raw model data is also free&lt;br /&gt;
            Even the notes they&amp;#039;re taking&lt;br /&gt;
    Forecast function takes in URLs and outputs JSON&lt;br /&gt;
    Freya also wrote scripts for brightness and volume&lt;br /&gt;
    Wants to bind it to a shortcut&lt;br /&gt;
Inspiration&lt;br /&gt;
    Bread on Penguins&lt;br /&gt;
        Videos showing scripts&lt;br /&gt;
        Automated with ffmpeg&lt;br /&gt;
        Cool things&lt;br /&gt;
One more thing&lt;br /&gt;
    LUG lan party 3 on Sunday&lt;br /&gt;
End&lt;/div&gt;</summary>
		<author><name>Simone</name></author>
	</entry>
</feed>