FreeBSD on only TTY as a Daily Driver

I spend much of my time in text mode, usually in an Xterm under LXDE and am climbing the learning cliff of emacs, although I've recently found it is less steep in doom emacs. tmux is something I wish had come across ten years ago rather than relatively recently.

One thing I would like to find is a good text mode program for playing music. I have mpg123, but would like to have something which handles more formats. Any recommendations?
I came across https://www.emacswiki.org/emacs/MusicPlayers

but have yet to work out how to this integrated into emacs .
 
I came across https://www.emacswiki.org/emacs/MusicPlayers

but have yet to work out how to this integrated into emacs .

Apparently C-h v auto-mode-alist shows a list of mappings
I came across https://www.emacswiki.org/emacs/MusicPlayers

but have yet to work out how to this integrated into emacs .

Further info....

I need to add this to my config.el

Code:
(add-to-list 'dired-guess-shell-alist-user
             '("\\.mp3\\'" "mpg123"))

But I don't know how to invoke it.
 
One thing I would like to find is a good text mode program for playing music. I have mpg123, but would like to have something which handles more formats. Any recommendations?
You can find Sox as the backend in alot of GUI programs. You can easily play music with it from the command line. It is "The Swiss Army Knife" of sound..
audio/sox
 
Google AI,
  • PulseAudio RTP Receiver: Install this via F-Droid to receive a raw stream from your PC.
  • Simple Protocol Player: This app can receive audio from a PulseAudio "simple protocol" module configured on your computer.
  • AudioRelay: A user-friendly commercial alternative that achieves similar results without manual command-line configuration.
 
Pulseaudio and Pipewire can send to airplay receiver. Don't known if the iPhone can be configured as aiplay receiver...
 
Had a look at xpdf?
I guess I am still a little bitter at the move from xpdf3/Motif to xpdf4/Qt but I don't find the code particularly great.

Specifically libpoppler (which is the backend pdf capability of xpdf isolated). But now that you have suggested it, I will take a look at an older version and see if the code is better.
 
Google AI,
  • PulseAudio RTP Receiver: Install this via F-Droid to receive a raw stream from your PC.
  • Simple Protocol Player: This app can receive audio from a PulseAudio "simple protocol" module configured on your computer.
  • AudioRelay: A user-friendly commercial alternative that achieves similar results without manual command-line configuration.
sorry, Gov block all AI except deepsick.
 
Hello everyone, hope everyone is doing fine with the holidays.

I'm using FreeBSD for a years by now and something that I noticed for my usage is that I only use applications that works perfectly fine on TTY sessions, I don't like cluttering or using the mouse (yes, I could use a tilling window manager or something like that) but my work doesn't require me to do that. I can always power-on an simple Desktop environment on my Linux machine that is at my home. With that introduction, I would like to ask some suggestion (mainly if you use FreeBSD as a server or something that is somewhat align with I'm planing to do next year).


Just wondered if you had come across misc/pdmenu.
It's quite a handy program launcher for text mode.
 
There's another trove here:- https://github.com/rothgar/awesome-tuis

And this article talks about using multiplexers like screen and tmux as tty 'window managers'. On a 27" or 30" 4K screen you can do some quite sophisticated stuff like this.

I'm not certain how many of these are on freebsd; screen and tmux are at least, of course.
 
Had a look at xpdf?
There's a thing called 'fbigs' on the linux console, I think it may be an svgalib app, can't remember. It's part of a suite by the same guy, he has an image viewer called 'fbi'. The stuff works, you can read pdf's on the linux console with 'fbigs'. I don't think there's a freebsd port though, sadly.
 
You can get a terminal weather forecast for today from a finger request to 'graph.no'. If you don't have a 'finger' client available, just use netcat.
The server uses the norweigian weather service to provide a forecast from anywhere in the world.
Here's a little script to get today's forecast. Just change the value of $CITY to whatever you want.
You can also run this in termux under android.:cool:

Code:
#!/bin/sh
#weather.sh
CITY="new york"
#finger ${CITY}@graph.no | sed '$d'
# if no finger client available, use nc
echo $CITY | nc graph.no 79 | sed -e '$ d'

The output looks like this.

Code:
$ ./weather
                  -= Meteogram for New York, United States =-        
 'C                                                                   Rain (mm)
  7                                                        
  6                                                               ^^^
  5                                                            ^^^
  4                                                         =--
  3^^^                                                   =--
  2   ^^^---                                          =--  
  1         ---------                                      
  0                  ---=--=--^^^===------------------     
 -1                                                        
 -2                                                        
    17 18 19 20 21 22 23 13/01 02 03 04 05 06 07_08_09_10_11_12_13_14 Hour
 
    SW SW SW SW  W  W SW SW SW SW SW  W  W  W SW SW SW SW SW SW  S  S Wind dir.
     4  4  4  4  4  4  4  4  4  3  3  3  3  3  3  3  2  2  3  2  2  4 Wind(m/s)
 
Legend left axis:   - Sunny   ^ Scattered   = Clouded   =V= Thunder   # Fog
Legend right axis:  | Rain    ! Sleet       * Snow

There's a website here: https://graph.no/finger/

If you

$echo help | nc graph.no 79

you get a list of various things you can query from the server.

Code:
$ echo help | nc graph.no 79
Weather via finger, graph.no
 
* Code: https://github.com/ways/fingr/
* https://nominatim.org/ is used for location lookup.
* https://www.yr.no/ is used for weather data.
* Hosted by Copyleft Solutions AS: https://copyleft.no/
* Contact: finger@falkp.no
 
Usage:
    finger oslo@graph.no
 
Using coordinates:
    finger 59.1,10.1@graph.no
 
Using imperial units:
    finger ^oslo@graph.no
 
Using the Beaufort wind scale:
    finger £oslo@graph.no
 
Ask for wider output, longer forecast (~<screen width>):
    finger oslo~200@graph.no
 
Specify another location when names conflict:
    finger "oslo, united states"@graph.no
 
Display "wind chill" / "feels like" temperature:
    finger ¤oslo@graph.no
 
No graph, just a one-line forecast (needs improvement):
    finger o:oslo@graph.no
 
Hammering will get you blacklisted. Remember the data doesn't change more than once an hour.
 
News:
* Launched in 2012
* 2021-05: total rewrite due to API changes. Much better location searching, proper hour-by-hour for most of the world.

Trying some different cities this evening, some return "internal server error", for example, 'sydney'. So maybe there are some bugs at the server end. Or perhaps norway's weather service doesn't cover sydney.
 
Last edited:
You can get a terminal weather forecast for today from a finger request to 'graph.no'. If you don't have a 'finger' available, just use netcat.
The server uses the norweigian weather service to provide a forecast from anywhere in the world.
Here's a little script to get today's forecast. Just change the value of $CITY to whatever you want.
You can also run this in termux under android.:cool:

Code:
#!/bin/sh
#weather.sh
CITY="new york"
#finger ${CITY}@graph.no | sed '$d'
# if no finger client available, use nc
echo $CITY | nc graph.no 79 | sed -e '$ d'

The output looks like this.

Code:
$ ./weather
                  -= Meteogram for New York, United States =-         
 'C                                                                   Rain (mm)
  7                                                         
  6                                                               ^^^
  5                                                            ^^^
  4                                                         =--
  3^^^                                                   =--
  2   ^^^---                                          =--   
  1         ---------                                       
  0                  ---=--=--^^^===------------------      
 -1                                                         
 -2                                                         
    17 18 19 20 21 22 23 13/01 02 03 04 05 06 07_08_09_10_11_12_13_14 Hour
 
    SW SW SW SW  W  W SW SW SW SW SW  W  W  W SW SW SW SW SW SW  S  S Wind dir.
     4  4  4  4  4  4  4  4  4  3  3  3  3  3  3  3  2  2  3  2  2  4 Wind(m/s)
 
Legend left axis:   - Sunny   ^ Scattered   = Clouded   =V= Thunder   # Fog
Legend right axis:  | Rain    ! Sleet       * Snow

There's a website here: https://graph.no/finger/

If you

$echo help | nc graph.no 79

you get a list of various things you can query from the server.

Code:
$ echo help | nc graph.no 79
Weather via finger, graph.no
 
* Code: https://github.com/ways/fingr/
* https://nominatim.org/ is used for location lookup.
* https://www.yr.no/ is used for weather data.
* Hosted by Copyleft Solutions AS: https://copyleft.no/
* Contact: finger@falkp.no
 
Usage:
    finger oslo@graph.no
 
Using coordinates:
    finger 59.1,10.1@graph.no
 
Using imperial units:
    finger ^oslo@graph.no
 
Using the Beaufort wind scale:
    finger £oslo@graph.no
 
Ask for wider output, longer forecast (~<screen width>):
    finger oslo~200@graph.no
 
Specify another location when names conflict:
    finger "oslo, united states"@graph.no
 
Display "wind chill" / "feels like" temperature:
    finger ¤oslo@graph.no
 
No graph, just a one-line forecast (needs improvement):
    finger o:oslo@graph.no
 
Hammering will get you blacklisted. Remember the data doesn't change more than once an hour.
 
News:
* Launched in 2012
* 2021-05: total rewrite due to API changes. Much better location searching, proper hour-by-hour for most of the world.

Trying some different cities this evening, some return "internal server error", for example, 'sydney'. So maybe there are some bugs.


you can curl wttr.in/Paris or another city ;)
 
Does anyone using predominantly text mode use a start up program to automatically load the most used apps?
You can set up screen or tmux to automatically load a number of programs into different windows, in your .screenrc for example. Then you just start screen itself and it will open all the windows you've asked for and run the programs you specified inside them.

Eg see http://stackoverflow.com/questions/5609192/ddg#5752901
 
Actually, I meant how do you get tmux to start automatically on boot.
Autologin if you want it entirely automatic. (Did you get that issue in the thread resolved? I recall it being a little fiddly)

And then in your .profile, you will want something like:

Code:
if [ "$(tty)" = "/dev/ttyv0" ]; then
  exec tmux
fi

(There are tmux arguments that attach to an existing one if running or starting a new one if not but I don't have my old scripts on me to check currently)

I find the following steps work quite well for tmux autostart
  1. start tmux in background
  2. start irssi in tmux
  3. start mutt in tmux
  4. attach to tmux
 
Apparently C-h v auto-mode-alist shows a list of mappings


Further info....

I need to add this to my config.el

Code:
(add-to-list 'dired-guess-shell-alist-user
             '("\\.mp3\\'" "mpg123"))

But I don't know how to invoke it.
Google AI,

Thinking
Searching








To use the provided code to open
.mp3 files with mpg123 from within Emacs Dired, follow these steps:

  1. Enable dired-x: The dired-guess-shell-alist-user variable is part of the dired-x (Dired Extra) library. You must load this library in your Emacs configuration file (usually ~/.emacs, ~/.emacs.d/init.el, or ~/.config/emacs/init.el).
  2. Add the Configuration: Add the following code snippet to your configuration file:
    elisp (with-eval-after-load 'dired (require 'dired-x) (add-to-list 'dired-guess-shell-alist-user '("\\.mp3\\'" "mpg123")))
    Use code with caution.

  • Reload Configuration: Evaluate the code or restart Emacs.
  • Usage in Dired:
    • Open a directory in Dired (M-x dired).
    • Navigate to an .mp3 file.
    • Press ! (the dired-do-shell-command key).
    • Emacs will now suggest mpg123 as the default command in the minibuffer. Press RET to execute.
Note for 2026: Ensure mpg123 is installed on your system's PATH. If you prefer a GUI player or a different command, replace "mpg123" with your preferred executable (e.g., "vlc" or "mpv").
 
FreeBSD on only TTY as a Daily Driver


Yes - possible.

I would start with these settings in /boot/loader.conf file (assuming you have 1080p screen).
Code:
  screen.font="6x12"
  kern.vt.fb.default.mode="1920x1080"
  efi_max_resolution="1920x1080"
  vbe_max_resolution="1920x1080"

Then also change colors the way you like in /boot/loader.conf file:
Code:
# COLORS
  kern.vt.color.0.rgb="#000000"
  kern.vt.color.1.rgb="#dc322f"
  kern.vt.color.2.rgb="#859900"
  kern.vt.color.3.rgb="#b58900"
  kern.vt.color.4.rgb="#268bd2"
  kern.vt.color.5.rgb="#ec0048"
  kern.vt.color.6.rgb="#2aa198"
  kern.vt.color.7.rgb="#94a3a5"
  kern.vt.color.8.rgb="#586e75"
  kern.vt.color.9.rgb="#cb4b16"
  kern.vt.color.10.rgb="#859900"
  kern.vt.color.11.rgb="#b58900"
  kern.vt.color.12.rgb="#268bd2"
  kern.vt.color.13.rgb="#d33682"
  kern.vt.color.14.rgb="#2aa198"
  kern.vt.color.15.rgb="#6c71c4"

Then use screen(1) or tmux(1) or even term39(1) as 'window manager'.

They have FreeBSD binaries here:
- https://github.com/alejandroqh/term39

Here for latest version:
- https://github.com/alejandroqh/term.../term39-1.1.0-freebsd-64bit-x86-binary.tar.gz

It looks like that :)








vermaden_2026-01-17_11-40-38.png
 
Back
Top