Font Awesome Issues (especially powermenu)

I didn’t actually change anything in the powermenu script, so that didn’t help either unfortunately

can you post your powermenu.sh :pray: ( copy your file then reply. use </> button for paste )

#!/usr/bin/env bash
#
# Use rofi/zenity to change system runstate thanks to systemd.
#
# Note: this currently relies on associative array support in the shell.
#
# Inspired from i3pystatus wiki:
# https://github.com/enkore/i3pystatus/wiki/Shutdown-Menu
#
# Copyright 2015 Benjamin Chrétien <chretien at lirmm dot fr>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

# modified to work with latest rofi update by joekamprad <joekamprad@endeavouros.com>

#######################################################################
#                            BEGIN CONFIG                             #
#######################################################################

# Use a custom lock script
#LOCKSCRIPT="i3lock-extra -m pixelize"

# Colors: FG (foreground), BG (background), HL (highlighted)
FG_COLOR="#bbbbbb"
BG_COLOR="#111111"
HLFG_COLOR="#111111"
HLBG_COLOR="#bbbbbb"
BORDER_COLOR="#222222"

# Options not related to colors (most rofi options do not work anymore)
ROFI_OPTIONS=(-theme ~/.config/rofi/powermenu.rasi)
# Zenity options
ZENITY_TITLE="Power Menu"
ZENITY_TEXT="Action:"
ZENITY_OPTIONS=(--column= --hide-header)

#######################################################################
#                             END CONFIG                              #
#######################################################################

# Whether to ask for user's confirmation
enable_confirmation=false

# Preferred launcher if both are available
preferred_launcher="rofi"

usage="$(basename "$0") [-h] [-c] [-p name] -- display a menu for shutdown, reboot, lock etc.

where:
    -h  show this help text
    -c  ask for user confirmation
    -p  preferred launcher (rofi or zenity)

This script depends on:
  - systemd,
  - i3,
  - rofi or zenity."

# Check whether the user-defined launcher is valid
launcher_list=(rofi zenity)
function check_launcher() {
  if [[ ! "${launcher_list[@]}" =~ (^|[[:space:]])"$1"($|[[:space:]]) ]]; then
    echo "Supported launchers: ${launcher_list[*]}"
    exit 1
  else
    # Get array with unique elements and preferred launcher first
    # Note: uniq expects a sorted list, so we cannot use it
    i=1
    launcher_list=($(for l in "$1" "${launcher_list[@]}"; do printf "%i %s\n" "$i" "$l"; let i+=1; done \
      | sort -uk2 | sort -nk1 | cut -d' ' -f2- | tr '\n' ' '))
  fi
}

# Parse CLI arguments
while getopts "hcp:" option; do
  case "${option}" in
    h) echo "${usage}"
       exit 0
       ;;
    c) enable_confirmation=true
       ;;
    p) preferred_launcher="${OPTARG}"
       check_launcher "${preferred_launcher}"
       ;;
    *) exit 1
       ;;
  esac
done

# Check whether a command exists
function command_exists() {
  command -v "$1" &> /dev/null 2>&1
}

# systemctl required
if ! command_exists systemctl ; then
  exit 1
fi

# menu defined as an associative array
typeset -A menu

# Menu with keys/commands

menu=(
  [ Shutdown]="systemctl poweroff"
  [ Reboot]="systemctl reboot"
  [ Suspend]="systemctl suspend"
  [ Hibernate]="systemctl hibernate"
  [ Lock]="~/.config/i3/scripts/blur-lock.sh"
  [ Logout]="i3-msg exit"
  [ Cancel]=""
)

menu_nrows=${#menu[@]}

# Menu entries that may trigger a confirmation message
menu_confirm="Shutdown Reboot Hibernate Suspend Halt Logout"

launcher_exe=""
launcher_options=""
rofi_colors=""

function prepare_launcher() {
  if [[ "$1" == "rofi" ]]; then
    rofi_colors=(-bc "${BORDER_COLOR}" -bg "${BG_COLOR}" -fg "${FG_COLOR}" \
        -hlfg "${HLFG_COLOR}" -hlbg "${HLBG_COLOR}")
    launcher_exe="rofi"
    launcher_options=(-dmenu -i -lines "${menu_nrows}" -p "${ROFI_TEXT}" \
        "${rofi_colors}" "${ROFI_OPTIONS[@]}")
  elif [[ "$1" == "zenity" ]]; then
    launcher_exe="zenity"
    launcher_options=(--list --title="${ZENITY_TITLE}" --text="${ZENITY_TEXT}" \
        "${ZENITY_OPTIONS[@]}")
  fi
}

for l in "${launcher_list[@]}"; do
  if command_exists "${l}" ; then
    prepare_launcher "${l}"
    break
  fi
done

# No launcher available
if [[ -z "${launcher_exe}" ]]; then
  exit 1
fi

launcher=(${launcher_exe} "${launcher_options[@]}")
selection="$(printf '%s\n' "${!menu[@]}" | sort | "${launcher[@]}")"

function ask_confirmation() {
  if [ "${launcher_exe}" == "rofi" ]; then
    confirmed=$(echo -e "Yes\nNo" | rofi -dmenu -i -lines 2 -p "${selection}?" \
      "${rofi_colors}" "${ROFI_OPTIONS[@]}")
    [ "${confirmed}" == "Yes" ] && confirmed=0
  elif [ "${launcher_exe}" == "zenity" ]; then
    zenity --question --text "Are you sure you want to ${selection,,}?"
    confirmed=$?
  fi

  if [ "${confirmed}" == 0 ]; then
    i3-msg -q "exec ${menu[${selection}]}"
  fi
}

if [[ $? -eq 0 && ! -z ${selection} ]]; then
  if [[ "${enable_confirmation}" = true && \
        ${menu_confirm} =~ (^|[[:space:]])"${selection}"($|[[:space:]]) ]]; then
    ask_confirmation
  else
    i3-msg -q "exec ${menu[${selection}]}"
  fi
fi

strange very … work ok + ok in terminal

hmm work

i try new install in asap , see if have problem

1 Like

That’s the thing, I didn’t change the powermenu file at all, the font awesome fonts just aren’t working right

I just updated Bspwm and have the same issue.

1 Like

My icons are ok but spaces do not display correctly. I removed them for now.

2021-12-17_16-39

I guess it might have happened after an update but it’s hard to say for sure since I don’t look at it too often.

2021-12-19_14-02
having ttf and otf packages of awesome fonts installed could be an issue… ?
They provide the same sets of icons only in different folders and different formats.
and awesome-terminal-fonts also provide the same regular and devicons in another folder but in the same format as ttf-font-awesome … we do currently use awesome-terminal-fonts for i3 setup, as it has a more complete set:
2021-12-19_14-06

I would not use these together.

1 Like

Thanks for the detailed reply. Like you show above, I have both the OTF and TTF fonts in my /usr/share/fonts directory. Would you recommend removing all of those and just keeping the awesome-terminal-fonts package, or does that overlap with the OTF/TTF package?

talking about the packages…? or do you copy files to fonts manually before?
I think the packages do not overlapping on files… but they provide the same fonts in different formats and folders… and this could be an issue if they are not exactly the same …
So I would recommend to only use one package, default used for i3 is awesome-terminal-fonts (what is used to create the configs)

I guess I should uninstall everything but the awesome-terminal-fonts package then? I feel like I tried that and some icons were still missing. Here’s what I have in my fonts folders:

2021-12-20-10:46:13-screenshot

2021-12-20_18-27
awesome-terminal-fonts package has all of these and in addition devicons octicons and pomicons.
So what to try ?
uninstall all of them and reinstall only awesome-terminal-fonts package.