- Amber
- Disclaimer
- Features
- Screenshots
- Dependencies
- Installation
- Color schemes
- Statusbar selection
- Configuration
- Changelog
- Credit / Sources
A LeftWM minimalistic theme with very few gadgets, widgets and modules
At the moment Amber is more like a rolling-release-theme, but I'll try to mark the main changes in the changelog below. Also development and tests are done on ArcolinuxB, so that distro would likely satisfy most if not all dependencies automatically.
- multi monitor support
- multiple statusbar options (polybar / lemonbar / eww)
- color schemes
Polybar Lemonbar (basic liquid implementation) Lemonbar (experimental wrapper) EWW
- LeftWM - duh
Fonts
- Iosevka Nerd Font
- Roboto
- Noto Sans
- FontAwesome
In general it might be a good idea to install all nerd fonts.
Run by up script
- polybar / lemonbar
- feh
- numlockx
- picom
Run by polybar (and keybindings)
- dmenu
- rofi
- PulseAudio Control
- pavucontrol
- nm-connection-editor
- blueberry
- pamac
Run by lemonbar
- iwconfig
Misc
- alacritty (or change configs to match your terminal emulator)
- dunst / xfce4-notifyd (adapt up script accordingly)
- papirus-icon-theme
- iwconfig
-
Install all required dependencies
-
Clone the repository in ~/.config/leftwm/themes
cd ~/.config/leftwm/themes
git clone https://github.com/di-effe/amber.git
- Remove the symlink to your current theme if set
rm ~/.config/leftwm/themes/current
- Set this as your current theme
ln -s ~/.config/leftwm/themes/amber ~/.config/leftwm/themes/current
- Restart your window manager
$MOD + Shift + r
!!! IMPORTANT !!!
Polybar is configured with an application launcher (left side) and a powermenu (right side). If you want to use them be sure to have rofi installed.
Amber now comes with different color schemes, to better suit your mood or overall theme settings! Edit your up script and chose:
# [ COLOR SCHEME ] ###########################################################
# Available themes:
# - amber
# - catppuccin
# - dracula
# - gruvbox
# - nord
source $SCRIPTPATH/scripts/colors.sh amber
##############################################################################
By default Amber is running with a modular polybar configuration, but you can edit the up script to pick from:
# [ SETTINGS ] ###############################################################
# - CHOSE STATUS BAR
# 0) polybar
# 1) lemonbar (very basic implementation with app launcher, tags and powermenu)
# 2) eww (not yet ready)
STATUSBAR=0
##############################################################################
up is configured with the options to
- set random wallpapers from the /wallpapers folder
- set ONE wallpaper for all displays
- set MULTIPLE wallpapers for all displays (default)
Uncomment what you prefer and comment the rest. It should be clear enough reading the file.
At the moment this is a simple and dirty snippet of code placed in the up file
# KEYMAP
KEYBINDINGS=/tmp/leftwm-keybindings
if [ -f "$KEYBINDINGS" ]; then
rm $KEYBINDINGS
fi
leftwm-check -v | \
grep Keybind | \
sed -e "s/Keybind: Keybind { command: //g;s/ } true//;s/ } false//" \
> $KEYBINDINGS
KEYMAP=/tmp/leftwm-keymap
if [ -f "$KEYMAP" ]; then
rm $KEYMAP
fi
sort $KEYBINDINGS | \
tr -d '"' | \
sed -e "s/modifier: //g;s/key: //;s/value: None//;s/value: Some(//;s/)//;s/modkey,/modkey +/" | \
awk -F, '{print $3","$4","$1","$2}' | \
column -s ',' -t \
> $KEYMAP
What id does, hopefully, is to retrieve all key bindings to create a keymap to show using rofi. My config.ron file is configured like this:
[[keybind]]
command = "Execute"
value = "rofi -dmenu -input /tmp/leftwm-keymap -window-title 'Keymap' -theme ~/.config/leftwm/themes/amber/rofi/keymap.rasi"
modifier = ["modkey", "Shift"]
key = "m"
I am using a custom dmenu color scheme. If you like to use pick it from the config.ron in this repository or configure yours like this:
[[keybind]]
command = "Execute"
value = "dmenu_run -p 'Run: ' -nb '#ffb300' -nf '#000000' -sb '#333333' -sf '#FFFFFF'"
modifier = ["modkey"]
key = "p"
This is an interesting module you might want to use, just keep in mind it will grab your device description from
pactl list sinks | grep device.description
and that is usually a very long string. The pulseaudio-control module in polybar.modules has been configured to use fancier nicknames for speakers and headphone, but you have to replace my values with yours.
For speakers (without any wired or bluetooth headphone connected) check
pactl list sinks short | cut -f2
and use the output here
--sink-nickname "VALUE_DETECTED_HERE:蓼 Speakers"
For wired headphones, plug them, check again
pactl list sinks short | cut -f2
and use the output here
--sink-nickname "VALUE_DETECTED_HER: Headphones"
Systray has beed disabled by default in polybar.conig
tray-position = none
If you want to use it change position and adjust the tray-offset-x value.
By default the layout module is configured in the template.layout file
%{O20}
%{A1:leftwm-command "NextLayout" :}%{A3:leftwm-command "PreviousLayout" :}
%{F#ffb300}%{F-} [{{ workspace.layout }}]
%{A}%{A}
You can chose to
- remove it, deleting those lines
- keep it aligned to the left, but change the offset in the %{O20} field (those are 20 pixels)
- move it to the center of the screen, replacing %{O20} with %{c}
If you prefer to manage the module in your polybar.config file I left two modules
- layout0, for workspace0
- layout1, for workspace1
In the up script there are two options to run Lemonbar
# 1) Classic/simple mode - lemonbar generated by lemonbar.liquid
#leftwm-state -w $index -t $SCRIPTPATH/lemonbar.liquid | lemonbar -g "$width"x"$barheight"+"$x" -f "Iosevka Nerd Font"-11 -B"#1e1f29" -F"#f8f8f2" -u 2 -U"#ffb300"| sh&
# 2) Experimental mode - lemonbar generated by a loop in lemonbar.worker
exec ~/.config/leftwm/themes/current/lemonbar.worker $index | lemonbar -g "$width"x"$barheight"+"$x" -f "Iosevka Nerd Font"-11 -B"#1e1f29" -F"#f8f8f2" -u 2 -U"#ffb300"| sh&
Classic/simple mode will only parse what is configured inside lemonbar.liquid.
Experimental mode is an attempt to merge a liquid template, in this case lemonbar.experimental.liquid, with other simple info module like clock and volume. The core of this mode is the lemonbar.worker script.
Nothing fancy here. Statusbar is controlled by eww.yuck and styled by eww.scss. This last one is overwritten by the up script, according to the color theme selected. Source SCSS files for each theme are located in the /eww folder.
- EWW statusbar
- Lemonbar experimental wrapper
- Color schemes
Notes I did my best to implement a Lemonbar asynchronous wrapper able to provide different kind of information at different rates, but each and every attempt broke the clickable areas or the multi-monitor support. In the end I rolled back to a simple and inefficient solution. I will get back to it sooner or later.
- Lot of changes in polybar config and look
- Polybar modules (wlan, bluetooth, pulseaudio-control, arch/aur updates)
- Systray disabled by default
- Basic lemonbar implementation
- Minor improvements here and there
- Removed dependency from rofi-themes for applcation launcher
- Removed dependency from rofi-themes for powermenu
- Multi monitor support
- Amber color scheme
- Powermenu and application launcher (rofi-themes with some small tweaks)
- Picom conf for rounded corners and transparency for inactive windows
- Polybar modules to show and rotate layouts (left click next, right click previous)
- template.liquid config to show and rotate layouts (left click next, right click previous)
- Keymap
- Remove dependency on rofi-themes
- A better tag module
- Fallback fonts
-
Volume slider (using volumeicon)(systray removed) - Modular polybar config
- Basic lemonbar implementation
- Lemonbar modules implementation (kinda)
- A better implementation for powermenu
- A better keymap implementation
- eww statusbar
-
yambar statusbar -
lesbar statusbar
Built on top of basic_polybar theme by LeftWM team.
And some inspiration / patches taken from these wonderful sources:
-
@AethanFoot leftwm-theme-dracula-rounded - No license. Author doesn't state permissions on code, will update as neccessary.
-
@b4skyx leftwm-soothe - No license. Author doesn't state permissions on code, will update as neccessary.
-
@VentGrey Epitaph - MIT License copyrighted by Qwart376, author of [Blue Coffee](https://github.com/Qwart376/Blue-Coffee. So I guess this is a russian-doll license thing now.
-
Candy from Arcolinux team.
-
Polybar modules configuration style (plus snippets and scripts) from Peter Dauwe and adi1090x
Wallpapers by Atlas-ark. I am not aware of any kind of licence, but if you can buy him a beer :)
Application launcher is based on the rofi-themes-collection by LR Tech covered by a GNU General Public License v3.0
Powermenu is loosely based on the rofi-themes by adi1090x covered by a GNU General Public License v3.0
Ping me if I am messing up something here :)