[HN Gopher] Let the (terminal) bells ring out
       ___________________________________________________________________
        
       Let the (terminal) bells ring out
        
       Author : hasheddan
       Score  : 33 points
       Date   : 2023-12-24 19:00 UTC (3 hours ago)
        
 (HTM) web link (muxup.com)
 (TXT) w3m dump (muxup.com)
        
       | Animats wrote:
       | I'd wanted a bell in the Rust Egui/Winit system. There's no
       | simple cross-platform "beep" or bell feature, short of bringing
       | up a whole audio system.
       | 
       | The original Teletype bell in a Model 15 Teletype is a 3-inch
       | gong with a satisfying "bong" sound. That was intended to be
       | heard across a room of noisy machines. There's also a little end
       | of line bell for typists, but that's not loud.
        
         | 10000truths wrote:
         | > The original Teletype bell in a Model 15 Teletype is a 3-inch
         | gong with a satisfying "bong" sound. That was intended to be
         | heard across a room of noisy machines. There's also a little
         | end of line bell for typists, but that's not loud.
         | 
         | What would the machine do if a mischievous prankster ran a
         | program that endlessly outputted ASCII BEL characters in a
         | tight loop?
        
           | Animats wrote:
           | Ring the bell. Doesn't hurt anything. Eventually someone will
           | turn the machine off.
           | 
           | The later ASCII machines don't have the big gong, just a
           | smaller bell.
        
       | wanderingjew wrote:
       | If you've ever wondered why it's ctrl+g:
       | 
       | https://twitter.com/ViolenceWorks/status/1335382435031252992...
        
       | efitz wrote:
       | I thought this was going to be an article about how someone used
       | a Raspberry Pi and some maker fu to connect 0x7 on their terminal
       | to a cathedral or something.
        
       | mprovost wrote:
       | 'Wuff, Wuff!!'
        
         | anilakar wrote:
         | Spawning a screen session by default is a good habit indeed.
         | Especially on remote hosts when you are doing something
         | critical.
        
       | wolfgang42 wrote:
       | The article mentions not wanting to put a bell in their terminal
       | prompt because it would cause too many notifications, but I found
       | it difficult to remember to put `;tput bel` on every command that
       | would be slow, so I compromised by configuring my shell to notify
       | only on commands that took longer than 10 seconds. I also use a
       | popup instead of a straight bell so I'll see a reminder of what
       | it was that was happening (this is for MacOS, on Linux it would
       | use `notify-send` instead):                   function preexec()
       | {           lrn_timer=${timer:-$SECONDS}
       | lrn_command="$1"         }         lrn_timer=0         function
       | precmd() {           [[ -v lrn_timer ]] || return # preexec()
       | doesn't set timer if no command run (e.g. from ^C before running)
       | timer_show=$(($SECONDS - $lrn_timer))           unset lrn_timer
       | # 10 is the notification threshold in seconds           if ((
       | ${timer_show} > 10 )); then             terminal-notifier -sound
       | default -message "Exit $? in ${timer_show}s: $lrn_command"
       | fi         }
       | 
       | (Based on
       | https://gist.github.com/petethepig/2d29e8b7e2ebc808bfe760b63...)
        
         | mklein994 wrote:
         | > [...] but I found it difficult to remember to put `;tput bel`
         | on every command that would be slow [...]
         | 
         | What I do in these situations (assuming the job is still in the
         | foreground, and can be interrupted), is suspend the task with
         | ctrl+z and resume with `fg`, chaining it with some other
         | command:                   fg; notify-send "done"
         | 
         | This uses the "job control" feature of `bash`, so it requires
         | no extra setup. Your approach has the simple advantage however,
         | that once it's set up, it just works, automatically.
        
         | JNRowe wrote:
         | One of the smart things with zsh is that the hooks1 like precmd
         | can be replaced with arrays of functions, so that you can
         | cleanly have multiple hooks per hook point. It even provides a
         | nice tool to work with the the arrays too2, which makes
         | editing/enabling/disabling far easier.
         | 
         | It makes life far easier when you see people post useful
         | snippets(like wolfgang42's), but don't want to have to mangle
         | them in to your already messy monolithic function.
         | 
         | 1
         | https://zsh.sourceforge.io/Doc/Release/Functions.html#Hook-F...
         | 
         | 2 https://zsh.sourceforge.io/Doc/Release/User-
         | Contributions.ht...
        
       | jhaenchen wrote:
       | I use BEL + IFFTT webhooks to trigger a notification on my laptop
       | and my iPhone whenever something finishes. Echo hi; notification
       | 
       | With an alias for notification
        
       ___________________________________________________________________
       (page generated 2023-12-24 23:00 UTC)