Roughly 20 years ago, I spent countless hours immersed in the fast-paced,
team-driven world of Wolfenstein: Enemy Territory. It was one of those rare
gems - a completely free multiplayer FPS with deep strategy, addictive
gameplay, and a passionate community. Like many others, I eventually moved on
as newer games and systems came along. But recently, I stumbled across
something that instantly brought back all the memories: ET:Legacy.
For those unfamiliar, Wolfenstein: Enemy
Territory was
released back in 2003 as a standalone, free-to-play multiplayer shooter. It set
itself apart with class-based gameplay, objective-driven maps, and a strong
emphasis on team coordination. The game had a massive community, loads of
creative mods, and was a staple on LAN parties and online servers alike.
Enter ET:Legacy
ET:Legacy Radar Map
To my surprise and delight, I discovered
ET:Legacy, an open-source project that breathes
new life into this classic. The goal of the project is simple yet ambitious:
modernize Wolfenstein: Enemy Territory while preserving the original feel and
gameplay. After diving in, I can confidently say - mission accomplished.
ET:Legacy stands out for a number of reasons. First, it has flawless Linux
support. As a Linux user, it’s great to find a game that runs so well out of
the box. ET:Legacy has been rock solid on my system, with great performance and
no configuration headaches.
Second, the magic of the original is fully intact. Movement, weapons, objectives - it
all feels exactly as I remember. The developers have been careful to keep the
core experience untouched, even while refining the engine behind the scenes.
Last but not least, many of the classic mods I loved (like “NoQuarter” or
“Jaymod”) and map packs still work. That backward compatibility is a
huge deal for longtime fans and contributes to the fun.
Probably the most surprising (and heartwarming) part: there are still a ton of
people playing. Seriously. Pop into a server and you’ll find active matches,
experienced players, and even new folks discovering the game for the
first time. The community is very much alive, with ongoing development
and community events.
Back to the Battlefield
ET:Legacy Following Player
I won’t pretend I’m spending as many hours on the game now as I did two decades
ago (age and responsibilities have a way of doing that). But I’ve been playing
regularly again, and I’m loving it! There’s something comforting about
returning to a game that shaped your gaming tastes - and finding it not just
preserved, but thriving.
ET:Legacy is more than just a nostalgia trip. It’s also a testament to the
power of open source, community dedication, and the timeless appeal of great
game design. If you were a fan back in the day, or even if you’re just curious
about one of the best team-based shooters ever made, I can’t recommend it
enough.
Give it a try - you might just find yourself yelling “Fire in the hole!” all
over again.
Creating secure passwords is fundamental to maintaining robust cybersecurity
practices. While many users rely on password managers or web-based generators,
Linux provides numerous built-in and installable tools for generating strong
passwords directly from the command line. As a system administrator, I
frequently use a mixture of these methods in my daily work, depending on the
specific requirements and security contexts I encounter. This post explores
various methods to create passwords using the Linux console, from simple
built-in utilities to specialized password generation tools.
Using Linux’s Random Source (/dev/urandom)
Linux provides an excellent source of randomness through /dev/urandom, which
requires no additional software installation. This method uses pure “built-in
tools” and offers great flexibility.
Alphanumeric Passwords
To create a 16-character password with letters and numbers:
< /dev/urandom tr -dc [:alnum:]| head -c${1:-16};echo
Passwords with Special Characters
For maximum security, include all printable characters (excluding spaces):
< /dev/urandom tr -dc [:graph:]| head -c${1:-16};echo
Letters Only
Sometimes you need passwords with only alphabetic characters:
< /dev/urandom tr -dc [:alpha:]| head -c${1:-16};echo
Mixed Letters and Numbers
A specific combination of digits and letters:
< /dev/urandom tr -dc [:digit:][:alpha:]| head -c${1:-16};echo
Using the dd Command
An alternative approach using dd for a 10-character password:
One of the fastest ways to generate a password using Linux built-ins is leveraging the date command combined with md5sum:
Basic Method
date | md5sum
12-Character Password
date | md5sum | cut -c1-12
This method is extremely fast and requires no additional installations, though it’s less cryptographically secure than /dev/urandom methods.
pwgen - The Dedicated Password Generator
pwgen is a popular, purpose-built password generator that offers extensive customization options.
Installation
sudo apt install pwgen
Basic Usage
Generate a block of 160 8-character passwords:
pwgen
Secure 12-Character Passwords
Create secure passwords without ambiguous characters (like “l” and “1”):
pwgen -sB 12
Including Special Characters
pwgen -sBy 12
Batch Generation
Generate ten 12-character passwords in a single column (useful for bulk account creation):
pwgen -sBc 12 -n 10 -1
OpenSSL for Password Generation
OpenSSL, primarily used for encryption certificates and secure data transport, can also generate passwords.
Installation
sudo apt install openssl
Generate Random Password
Create a 12-character random password:
openssl rand -base64 12
Creating Numeric PINs with shuf
The shuf command, typically used for random permutations, excels at generating numeric PINs.
4-Digit PINs
Generate ten 4-digit PINs:
shuf -i 1000-9999 -n 10
8-Digit PINs
Generate ten 8-digit PINs:
shuf -i 10000000-99999999 -n 10
APG - Automated Password Generator
APG offers both pronounceable and random password generation options.
Installation
sudo apt install apg
Basic Usage (Pronounceable Phrases)
apg
Pure Random Characters
apg -a 1
Single 12-Character Random Password
apg -a 1 -m 12 -x 12 -n 1
Specialized Formats
Generate a 32-character hexadecimal password:
apg -a 1 -M nc -n 10 -m 26 -E GHIJKLMNOPQRSTUVWXYZ
Create a 20-digit numeric password:
apg -a 1 -m 20 -M N
Diceware - Word-Based Password Generation
Diceware creates memorable passwords using word lists, based on the concept of using dice rolls for true randomness.
Installation
sudo apt install diceware diceware-doc
Basic English Dictionary
diceware
German Dictionary
diceware -w de
Advanced Options
Five words with two special characters (characters replaced by symbols):
diceware -w de -n 5 -s 2
Five words with custom separator:
diceware -w de -n 5 -d .
Using Real Dice
For maximum security, use actual dice as the randomness source:
diceware -w de -n 5 -r realdice
Choosing the Right Method
The choice of password generation method depends on your specific needs:
Quick and simple: Use the date | md5sum method
Maximum security: Leverage /dev/urandom with special characters
User-friendly: Try pwgen for readable passwords
Memorable passwords: Use Diceware for word-based passphrases
Numeric PINs: Use shuf for clean numeric generation
Specialized requirements: APG offers the most customization options
Security Considerations
When generating passwords on the command line, remember:
Clear your bash history if it contains sensitive commands
Use /dev/urandom over /dev/random for better performance without sacrificing security
Consider the environment where you’re generating passwords - avoid shared systems for sensitive passwords
For maximum security with Diceware, use real dice rather than computer-generated randomness
Conclusion
Linux provides a wealth of options for password generation directly from the
console. From simple one-liners using built-in utilities to sophisticated tools
like Diceware, you can generate passwords that meet any security requirement.
The key is understanding your specific needs and choosing the appropriate tool
for the job. Whether you need a quick password for testing or a highly secure
passphrase for production systems, Linux’s command-line tools have you covered.
When I started using TMUX years ago, I frequently updated
it from its Github repository, always eager to
learn about the latest features of each new version. But, having become the
lazy slacker I am nowadays and also having become quite comfortable with my
current tmux setup, I haven’t done so for ages.
Today however, I finally did an upgrade to the latest git version and took the
opportunity to fix my TMUX configuration regarding a (mildly annoying)
shortcoming of not being able to copy mouse selection directly to the
system clipboard.
I normaly use the keyboard to copy and paste from or to tmux (CTRL-B being my tmux prefix key):
CTRL-B + [ - to enter copy mode
v - to start a selection (or V to start line selection), using the VI h,j,k and l keys to move around
y - to yank the selected text to the system clipboard
CTRL-B + p - to paste
This behaviour is achieved by these configuraton options:
# Use vi keys for navigation
set-window-option -g mode-keys vi
# begin selection
bind -T copy-mode-vi v send-keys -X begin-selection
# copy to global clipboard
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "xclip -i -f -selection prima
# paste from global clipboard
bind p run "tmux set-buffer \"$(xclip -o)\"; tmux paste-buffer"
One thing that had never worked for me however was, to copy an area of text from
tmux directly to the system clipboard by using the mouse.
To be honest, this had not bothered me enough to put a lot of energy in finding
a solution for it, because in my terminal of choice (xfce4-terminal) it is
easily possible to just hold down the shift key when doing mouse selections and
then shift-right-click to use the terminal’s native copy-paste functionality.
Nevertheless, with the new version of TMUX I finally found an easy solution by
adding these settings to my configuration file:
It’s the same command as for copying by keyboard, except the keycode being
‘‘MouseDragEnd1Pane’’.
I actually don’t know for how long this solution has been around, but I’m glad
I finally learned about it. My TMUX experience now seems to be complete :-)
And, since everybody seems to enjoy looking at other’s configuration settings,
here’s my complete ‘’.tmux.conf’’ file:
# TERM
set -g default-terminal "screen-256color"
# Statusbar
set-option -g status on
set-option -g status-bg colour235
set-option -g status-fg colour244
set-option -g status-interval 2
set -g status-right '#[fg=green]#[bg=green]#[fg=black] #(hostname) %Y-%m-%d %H:%M #[fg=colour17]#[bg=colour17]#[fg=colour39] #(whoami) #[default]'
# Highlight active window
set-window-option -g window-status-current-style fg=white
set-window-option -g window-status-current-style bg=colour235
set-option -g pane-border-style bg=colour235
set-option -g pane-border-style fg=yellow
set-option -g pane-active-border-style fg=colour244
# key bindings
set-window-option -g mode-keys vi
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
bind r source-file ~/.tmux.conf \; display-message "Config reloaded..."
bind v split-window -h
bind b split-window -v
bind-key C-b last-window
bind C-v paste-buffer
# begin selection
bind -T copy-mode-vi v send-keys -X begin-selection
# copy to global clipboard
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "xclip -i -f -selection primary | xclip -i -selection clipboard >/dev/null"
# paste from global clipboard
bind p run "tmux set-buffer \"$(xclip -o)\"; tmux paste-buffer"
# options
set-window-option -g clock-mode-colour colour33
set-window-option -g aggressive-resize on
# faster key repeat
set -s escape-time 0
# Activity monitoring
set-window-option -g monitor-activity on
set -g visual-activity on
# mouse support
set-option -g mouse on
bind -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -i -f -selection primary | xclip -i -selection clipboard >/dev/null"
# scrollback
set -g history-limit 128000
# tab numbering starts at 1
set -g base-index 1
# F1 bound to quickly create a multi pane layout for my development work
bind F1 split-window -v -l 8 \; split-window -h -p 50 \; split-window -h -p 50 \; select-pane -t 0 \; split-window -h -p 50
You may have noticed those “special characters” in the status bar setup. These
are actually some modified unicode characters coming from the font I use for my
terminal, “LiterationMono Nerd Font”, which can be found here.
Like many others I like to listen to music while sitting at my computer. When I
am coding or doing other work I need to concentrate on, I do so at a very low
volume level, just enough that the music is audible without distracting me. For
this reason I use the volume controls of my keyboard quite often to adjust the
level according to the current situation.
Normally the volume keys increase or decrease the volume level by 5%, which in
most cases is a reasonable setting. But combined with my DELL AC511 sound bar, a
step of 5% sometimes goes from “mute” directly to “too loud”, forcing me to use
the mouse to make adjustments with the volume slider control.
I was looking for some way to have a more fine-grained control over the amount
of volume change when using the keyboard and came up with two solutions to this
“problem”.
The first one is specific to the Xfce desktop environment
with the “xfce4-pulseaudio-plugin”, which is what I am using, the second one is
more generic and works in Xfce as well as in other Linux desktop environments.
Today I learned (well not actually today, but a few days ago): You can
easily mount Truecrypt
containers with cryptsetup in Linux. So let's put a quick reminder
here, just in case I need this again...
There are plenty of media players for the Linux platform out there, but
the one I like most is the QT-based Multimedia Player
QMMP. Maybe one of the reasons for this
is, that it feels very much like the original [Winamp
Player](http://www.winamp.com/), which I had adopted as my media player
of choice back in October 1998 when version 2.03 came out.