Perfect ALARM Mk 2: Installation Part 5 (Powerline and Zsh stuff here!)

This page summarizes the projects mentioned and recommended in the original post on /r/archlinuxarm

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • wttr.in

    :partly_sunny: The right way to check the weather

  • # File: ~/tmux.conf # Info: Tmux settings # Set your terminal set -g default-terminal "xterm-256color" # Recommended especially if you are using a terminal that supports 256 colors # set -g default-terminal "xterm-termite" # Use this if you are using termite as your terminal # Set your shell set -g default-command /usr/bin/bash # Bash is enabled by default. We don't really need this line, but we will anyway. # set -g default-command /usr/bin/zsh # We'll use this for zsh later. This will be required later. # Enable Powerline # The availability of the `powerline-config` command is required for powerline support. # The location of this script may be specified in the $POWERLINE_CONFIG_COMMAND environment variable. source /usr/share/powerline/bindings/tmux/powerline.conf # For a full list of supported plugins see https://github.com/tmux-plugins # To install plugins: # 1. Add a new plugin to this list with `set -g @plugin '...'` # 2. Fetch and Install Plugins with CTRL+B then SHIFT+I (uppercase I) # To update plugins: # 1. CTRL+B then SHIFT+U (uppercase U) # To uninstall unused plugins: # 1. Remove (or comment out) plugin from the list. # 2. CTRL+B then ALT+U (lowercase U) # To reload the Tmux environment run # tmux source-file ~/.tmux.conf set -g @plugin 'tmux-plugins/tpm' # Tmux plugin manager (required) # ====== TMUX Plugins ====== # TODO: See if we can source our plugins into another file. set -g @plugin 'tmux-plugins/tmux-resurrect' # Restore tmux environment after system restart (required for tmux-continuum) set -g @plugin 'tmux-plugins/tmux-continuum' # Automatic saving and restoration of the tmux environment when the computer turns on. set -g @plugin 'tmux-plugins/tmux-sessionist' # Lightweight tmux utils for manipulating sessions set -g @plugin 'tmux-plugins/tmux-sidebar' # A sidebar with directory tree for the current path. set -g @plugin 'tmux-plugins/tmux-copycat' # A plugin for regex searches in tmux and fast match selection. set -g @plugin 'tmux-plugins/tmux-yank' # Enable enables copying highlighted text to the system clipboard (TODO: list what apps are the system clipboard) set -g @plugin 'tmux-plugins/tmux-open' # A plugin for quickly opening highlighted files or URLs set -g @plugin 'tmux-plugins/tmux-cpu' # A more functional display of CPU information set -g @plugin 'tmux-plugins/tmux-logging' # Easy logging and screen capturing for Tmux set -g @plugin 'tmux-plugins/tmux-online-status' # Display online status set -g @plugin 'tmux-plugins/tmux-net-speed' # Display connection speeds # set -g @plugin 'tmux-plugins/tmux-battery' # Tmux Battery Display (Sorry we can't use this.) set -g @plugin 'tmux-plugins/tmux-pain-control' # Vim-like pane management (hjkl) (Note: The command for last active window CTRL+L is now CTRL+A so that this plugin can use the L key to move right.) # Some non-standard plugins set -g @plugin 'Brutuski/tmux-ticker' # A simple stock ticker, but it only tracks ONE stock at the moment. set -g @plugin 'aaronpowell/tmux-weather' # Fetch the current weather from wttr.in # ====== End of Plugins ====== # ====== Plugin Settings ====== # TODO: See if we can source our plugin settings into another file. # Tmux-resurrect settings set -g @resurrect-strategy-vim 'session' # for vim set -g @resurrect-strategy-nvim 'session' # for neovim # Tmux-continnuum settings # set -g @continuum-restore 'on' # Automatic restore tmux to the last saved environment # Tmux-cpu # Uncomment to use custom values. # The ones here are the values used by default. # set -g @cpu_low_icon "=" # icon when cpu is low # set -g @cpu_medium_icon "≡" # icon when cpu is medium # set -g @cpu_high_icon "≣" # icon when cpu is high # # set -g @cpu_low_fg_color "" # foreground color when cpu is low # set -g @cpu_medium_fg_color "" # foreground color when cpu is medium # set -g @cpu_high_fg_color "" # foreground color when cpu is high # # set -g @cpu_low_bg_color "#[bg=green]" # background color when cpu is low # set -g @cpu_medium_bg_color "#[bg=yellow]" # background color when cpu is medium # set -g @cpu_high_bg_color "#[bg=red]" # background color when cpu is high # # set -g @cpu_percentage_format "%3.1f%%" # printf format to use to display percentage # # set -g @cpu_medium_thresh "30" # medium percentage threshold # set -g @cpu_high_thresh "80" # high percentage threshold # # set -g @ram_(low_icon,high_bg_color,etc...) # same defaults as above # # set -g @cpu_temp_format "%2.0f" # printf format to use to display temperature # set -g @cpu_temp_unit "C" # supports C & F # # set -g @cpu_temp_medium_thresh "80" # medium temperature threshold # set -g @cpu_temp_high_thresh "90" # high temperature threshold # # set -g @cpu_temp_(low_icon,high_bg_color,etc...) # same defaults as above # Tmux-online-status settings # Enable these if you can't see icons. # TODO: How do I get it to display Interface and IP address? # set -g @online_icon "ok" # set -g @offline_icon "offline!" # Tmux-net-speed # TODO: See if we can use down and up arrow emojis as labels. # For @net_speed_interfaces: # * Interfaces are space separated. # * If it is not set, it will grab all interfaces listed in /sys/class/net # This plugin stores total output for all interfaces in a file in /tmp. # The current user must have read and write access from that directory. set -g @net_speed_interfaces "wlan0" # set -g @download_speed_format "%10s" # set -g @upload_speed_format "%10s" # set -g @net_speed_format "D:%10s U:%10s" # Tmux-pain-control # set -g @pane_resize "10" # Resize the cells by this may lines/characters (Default is 5) # Tmux-sidebar # Note: Don't forget keybindings are prefixed with Ctrl+B) # TODO: Make sure that the keys here are simpatico with Tmux-pain-control. # TODO: Need to figure out if tmux-sidebar uses the vim-devicons # set -g @sidebar-tree-command 'ls -1' # Run some other command in the sidebar # set -g @sidebar-tree-position 'right' # Move the sidebar to the 'left' (default) or 'right'. # set -g @sidebar-tree 'e' # Change the key to open sidebar (default is Tab.) # set -g @sidebar-tree-focus 'w' # Change the key to focus on the sidebar (Default is Backspace.) # set -g @sidebar-tree-pager 'view -' # Use 'view' as the pager. (Default is 'less') # set -g @sidebar-tree-width '60' # Set the sidebar width. (default is 40 columns) # set -g @sidebar-tree-command 'tree -C' # Enable this to colorize tree directory listings in the sidebar. (I would if they aren't already). # Brutuski's tmux-ticker # UH OH! This app only tracks ONE stock. # TODO: What if there's more than one stock you want to follow? # set -g @ticker_stock 'GME' # Set ticker symbol # Aaron Powell's tmux-weather # See https://github.com/chubin/wttr.in for format options. # Note: Units on wttr.in will display in your locale. # So the same weather units in Los Angeles (e.g. Fahrenheit for Temperature) # will appear in the same units if you look up another city like Mexico City # even though Mexico uses the metric system. set -g @forecast-format '%l+%C+%t+%f+%w' # Set forecast format. (Default is '%C+%t+%w') # ====== End of Plugin Settings ====== # ====== Status Bar Settings ====== # Status Interval # Set somewhere between 5 (faster) and 60 (slower) seconds. set -g status-interval 5 # Length of the bars # set -g status-left-length 150 # set -g status-right-length 150 # ==== Options ==== # TODO: List all options here! # %a # %h # %d # %H # %M # # == Interpolations == # # tmux-cpu settings # Note: The ones starting with g or gpu are show GPU information. # TODO: What if you have multiple cores? # #{cpu_icon} - will display a CPU status icon # #{cpu_percentage} - will show CPU percentage (averaged across cores) # #{cpu_bg_color} - will change the background color based on the CPU percentage # #{cpu_fg_color} - will change the foreground color based on the CPU percentage # #{ram_icon} - will display a RAM status icon # #{ram_percentage} - will show RAM percentage (averaged across cores) # #{ram_bg_color} - will change the background color based on the RAM percentage # #{ram_fg_color} - will change the foreground color based on the RAM percentage # #{cpu_temp_icon} - will display a CPU temperature status icon # #{cpu_temp} - will show CPU temperature (averaged across cores) # #{cpu_temp_bg_color} - will change the background color based on the CPU temperature # #{cpu_temp_fg_color} - will change the foreground color based on the CPU temperature # #{gpu_icon} - will display a GPU status icon # #{gpu_percentage} - will show GPU percentage (averaged across devices) # #{gpu_bg_color} - will change the background color based on the GPU percentage # #{gpu_fg_color} - will change the foreground color based on the GPU percentage # #{gram_icon} - will display a GPU RAM status icon # #{gram_percentage} - will show GPU RAM percentage (total across devices) # #{gram_bg_color} - will change the background color based on the GPU RAM percentage # #{gram_fg_color} - will change the foreground color based on the GPU RAM percentage # #{gpu_temp_icon} - will display a GPU temperature status icon # #{gpu_temp} - will show GPU temperature (average across devices) # #{gpu_temp_bg_color} - will change the background color based on the GPU temperature # #{gpu_temp_fg_color} - will change the foreground color based on the GPU temperature # # tmux-online-status # #{online_status} Display online status # # tmux-net-speed # Note: These are recommended to be put in the status-right # #{download_speed} Display download only # #{upload_speed} Display upload only # #{net_speed} Display both. Download then Upload # # Brutuski's tmux-ticker # #{ticker_dji} #{ticker_dji_change} Dow Jones Industrial Average (DJI) # #{ticker_nasdaq} #{ticker_nasdaq_change} NASDAQ Composite Index (COMP) # #{ticker_sp500} #{ticker_sp500_change} S&P 500 Index (SPX) # #{ticker_sp100} #{ticker_sp100_change} S&P 100 Index (OEX) # #{ticker_stock} #{ticker_stock_change} Any stock ticker # #{ticker_crypto} Any crypto ticker # # aaronpowell's tmux-weather # #{forecast} Add a weather widget # set -g status-left "......#[fg=#21252D,bg=#5AD1AA] #{ticker_nasdaq} ~ #{ticker_nasdaq_change} ~ #{ticker_stock} #{ticker_stock_change} " set -g status-right "Online: #{online_status} | #{net_speed} | #{cpu_bg_color} CPU: #{cpu_icon} #{cpu_percentage} | #{forecast} | %a %h-%d %H:%M " # Initialize Tmux Plugin Manager (keep this line at the end) # NOTE: You shouldn't have to add any of the 'run-shell' commands # some plugins need for manual installation after this line. # Since using TPM is AUTOMATIC installation, it should be unnecessary # to add anything else after the line below. run '~/.tmux/plugins/tpm/tpm'

  • fast

    Minimal zero-dependency utility for testing your internet download speed from terminal (by ddo)

  • If you want to test the bandwidth with any of those apps or if you want to find out your download speed from the terminal, the AUR has an app called fast that you can do that with. Just be sure to have one of the bandwidth apps running before you launch fast.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • nvm

    Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions

  • We will need to install the Node Version Manager (nvm) through yay.

  • list

    A list of tmux plugins. (by tmux-plugins)

  • In this section, we address configuring ~/.tmux.conf. There is a repository on Github that lists Tmux Plugins. But to use them, there's one particular plugin that you need: TPM. TPM is the Tmux Plugin Manager.

  • tmux-resurrect

    Persists tmux environment across system restarts.

  • tmux-plugins/tmux-resurrect and tmux-plugins/tmux-continuum. These two plugins restore a Tmux session on restart and add features to save and restore sessions on computer restart. tmux-resurrect can even restore session in vim or neovim, provided you have tpope/vim-obsession installed as a plugin in vim or neovim if the file Session.vim exists. We will definitely want to install that later.

  • tmux-sessionist

    Lightweight tmux utils for manipulating sessions

  • tmux-plugins/tmux-sessionist - Lightweight tmux utilities for manipulating sessions. Allows for better control of creating and manipulating tmux sessions.

  • tmux-sidebar

    A sidebar with the directory tree for the current path. Tries to make tmux more IDE like.

  • tmux-plugins/tmux-sidebar - A sidebar with the directory tree for the current path. Think of it as NerdTree for tmux instead of vim. It has a lot of options.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • tmux-copycat

    A plugin that enhances tmux search

  • tmux-plugins/tmux-copycat - A plugin that enhances tmux search. You should install gawk if you haven't already. As of tmux 3.1, regex searches are now natively supported. However, search result highlighting and predefined searches are reasons enough to keep using tmux-copycat.

  • tmux-yank

    Tmux plugin for copying to system clipboard. Works on OSX, Linux and Cygwin.

  • tmux-plugins/tmux-yank - A plugin that lets you copy to the system clipboard in tmux. You will need to install xsel or xclip if you are using X11 Window Manager (i.e. i3) or wl-clipboard if you are using Wayland Window Manager (i.e. sway). If you have tmux 1.5 or newer and are using xterm, you can use the y command in copy mode and mouse selection without tmux-yank. See the tmux(1) man page entry for the set-clipboard option.

  • tmux-open

    Tmux key bindings for quick opening of a highlighted file or url

  • tmux-plugins/tmux-open - A plugin for opening highlighted selections directly from Tmux copy mode.

  • tmux-cpu

    Plug and play cpu percentage and icon indicator for Tmux.

  • tmux-plugins/tmux-cpu - While it is easy to view CPU load averages by looking in the header of htop or just typing the uptime command, tmux does have the ability to show this information as well in the status bar. But tmux-cpu provides a more comprehensible display of this information including color levels. It also displays GPU information, which I'm not sure if that will matter on a Raspberry Pi unless it can report the status of the embedded graphics chip. This plugin does have some optional requirements that should be installed such as iostat and sar to get accurate CPU percentages, free to obtain system RAM status, and lm-sensors to find CPU temperature. Since iostat and sar are part of the sysstat package, free should already be installed as one of the core applications, and the closes thing to a mention of lm-sensors is a community repo package called i2c-tools, there are going to be some things to install. Oh, and probably something VERY IMPORTANT, install the raspberrypi-firmware-tools package. Because of this point, I had to go back and add another section. (There is sooo going to be a Mk3 later.)

  • berry

    📦🐈 Active development trunk for Yarn ⚒

  • Yarn (yarn) a package manager "that doubled down as a project manager". (Basically, I've though of it as to what yay is to pacman.

  • TypeScript-Website

    The Website and web infrastructure for learning TypeScript

  • TypeScript (tsc) and ts-node, a super-set of JavaScript. Just about every TypeScript package on NPM starts with @types. I highly recommend using TypeScript over JavaScript in a Node project.

  • tmux-logging

    Easy logging and screen capturing for Tmux.

  • tmux-plugins/tmux-logging - Easy logging and screen capture for Tmux. The data is saved in a .log file.

  • Courier MTA

    Courier Mail Server

  • tmux-plugins/tmux-maildir-counter - Sadly, this plugin is no longer being developed. Maildir is still active, and eventually I would like to use a textual mail client (like mutt) to report a daily rundown of all the things going on the server in the Maildir format to internally log activities. It's just not going to happen with this plugin.

  • tmux-online-status

    Tmux plugin that displays online status of your computer.

  • tmux-plugins/tmux-online-status - Show the online status of your device. Probably not very useful if you are SSHing into your device, but useful if you access it directly.

  • prettier

    Prettier is an opinionated code formatter.

  • Prettier (prettier) Opinionated Linting.

  • tmux-net-speed

    Tmux plugin to monitor upload and download speed of one or all interfaces

  • tmux-plugins/tmux-net-speed - Show the download and upload speeds of your connection.

  • node

    Node.js JavaScript runtime ✨🐢🚀✨

  • We need to install Node.js for a plugin later. Also, I kinda need this for a project I'm working on.

  • ESLint

    Find and fix problems in your JavaScript code.

  • ESLint (eslint) for lining JavaScript and TypeScript.

  • tmux-pain-control

    standard pane key-bindings for tmux

  • tmux-plugins/tmux-pain-control - Many people have written in their ~/.tmux.conf file Vim-like keybinding to navigate between panes. This plugin pretty much standardizes it.

  • tmux-ticker

    A Tmux plugin to monitor various indexes and stock prices.

  • Brutuski/tmux-ticker - This ticker fetches stock information from Marketwatch and cryptocurrency value from Cryptonator. I'm more interested in it fetching the first thing. I decided not to use this yet since it only tracks one stock.

  • tmux-battery

    Plug and play battery percentage and icon indicator for Tmux.

  • tmux-plugins/tmux-battery - Because the Raspberry Pi does not have its own battery, using tmux-battery seems to be pretty pointless. You can get a Pi Sugar module for your Pi 4 or Pi Zero W, but I haven't tried those items yet. Secondly, because of how ALARM's aarch64 distro handles GPIO setup (which still needs to be set up), I can't determine if it will work or not. (If you have one and know how to get it to work, please tells us in the comments below!)

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts