Added sway and waybar config
This commit is contained in:
parent
e1b9e3eccf
commit
e93d9519b0
15 changed files with 994 additions and 0 deletions
|
@ -30,8 +30,11 @@ pre_remove() {
|
|||
}
|
||||
|
||||
install_software() {
|
||||
|
||||
# Sway
|
||||
git clone https://aur.archlinux.org/sway-git.git
|
||||
cd sway-git
|
||||
makepkg
|
||||
pacman -U sway-git
|
||||
|
||||
}
|
||||
|
|
35
stow/sway/.config/sway/autostart.sh
Executable file
35
stow/sway/.config/sway/autostart.sh
Executable file
|
@ -0,0 +1,35 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# ~/.config/sway/autostart.sh
|
||||
# List of applications to autostart
|
||||
#
|
||||
|
||||
function execute () {
|
||||
setsid --fork $SHELL -c "${1}" &> /dev/null
|
||||
}
|
||||
|
||||
# Idle script
|
||||
execute "~/.scripts/idle.sh"
|
||||
|
||||
# Gamma and brightness
|
||||
execute "clight"
|
||||
|
||||
# Notification manager
|
||||
execute "dunst -verbosity crit"
|
||||
|
||||
# Fix [Slow launch for some GTK apps](https://github.com/swaywm/sway/issues/5732)
|
||||
dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK
|
||||
|
||||
# Fix JetBrain IDE's showing properly
|
||||
wmname LG3
|
||||
|
||||
|
||||
sleep 3
|
||||
# --- Everything that requires tray to be active ---
|
||||
|
||||
# Nextcloud client
|
||||
execute "nextcloud --background"
|
||||
|
||||
# Activity watch server & client
|
||||
execute "aw-qt"
|
||||
|
174
stow/sway/.config/sway/commands
Normal file
174
stow/sway/.config/sway/commands
Normal file
|
@ -0,0 +1,174 @@
|
|||
#
|
||||
# ~/.config/sway/commands
|
||||
# Keybinds for sway
|
||||
#
|
||||
|
||||
# Variables
|
||||
set {
|
||||
$alt Mod1
|
||||
$flag Mod4
|
||||
$term alacritty
|
||||
$notify ~/.scripts/notify.sh
|
||||
}
|
||||
|
||||
# Focus
|
||||
bindsym {
|
||||
$flag+h focus left
|
||||
$flag+j focus down
|
||||
$flag+k focus up
|
||||
$flag+l focus right
|
||||
|
||||
$flag+Left focus left
|
||||
$flag+Down focus down
|
||||
$flag+Up focus up
|
||||
$flag+Right focus right
|
||||
|
||||
$flag+m focus mode_toggle
|
||||
$flag+p focus parent
|
||||
}
|
||||
|
||||
# Move windows
|
||||
bindsym {
|
||||
$flag+Shift+h move left
|
||||
$flag+Shift+j move down
|
||||
$flag+Shift+k move up
|
||||
$flag+Shift+l move right
|
||||
|
||||
$flag+Shift+Left move left
|
||||
$flag+Shift+Down move down
|
||||
$flag+Shift+Up move up
|
||||
$flag+Shift+Right move right
|
||||
|
||||
$flag+Next move scratchpad
|
||||
$flag+Prior scratchpad show
|
||||
}
|
||||
|
||||
# Layouts
|
||||
bindsym {
|
||||
$flag+w layout toggle split
|
||||
$flag+x layout tabbed
|
||||
$flag+c split h
|
||||
$flag+v split v
|
||||
|
||||
$flag+f floating enable, border normal 1
|
||||
$flag+Shift+f floating disable, border pixel 1
|
||||
|
||||
$alt+Next border pixel 1 # Show window title
|
||||
$alt+Prior border normal 1 # Hide window title
|
||||
|
||||
$flag+s sticky toggle
|
||||
}
|
||||
|
||||
# Workspaces
|
||||
set {
|
||||
$ws1 "1:1"
|
||||
$ws2 "2:2"
|
||||
$ws3 "3:3"
|
||||
$ws4 "4:4"
|
||||
$ws5 "5:5"
|
||||
$ws6 "6:6"
|
||||
$ws7 "7:7"
|
||||
$ws8 "8:8"
|
||||
$ws9 "9:9"
|
||||
$ws10 "10:10"
|
||||
$ws11 "11:Soc"
|
||||
$ws12 "12:Ent"
|
||||
}
|
||||
|
||||
bindsym {
|
||||
$flag+ampersand workspace $ws1
|
||||
$flag+eacute workspace $ws2
|
||||
$flag+quotedbl workspace $ws3
|
||||
$flag+apostrophe workspace $ws4
|
||||
$flag+parenleft workspace $ws5
|
||||
$flag+section workspace $ws6
|
||||
$flag+egrave workspace $ws7
|
||||
$flag+exclam workspace $ws8
|
||||
$flag+ccedilla workspace $ws9
|
||||
$flag+agrave workspace $ws10
|
||||
$flag+parenright workspace $ws11
|
||||
$flag+minus workspace $ws12
|
||||
|
||||
$flag+Shift+ampersand move container to workspace $ws1, workspace $ws1
|
||||
$flag+Shift+eacute move container to workspace $ws2, workspace $ws2
|
||||
$flag+Shift+quotedbl move container to workspace $ws3, workspace $ws3
|
||||
$flag+Shift+apostrophe move container to workspace $ws4, workspace $ws4
|
||||
$flag+Shift+parenleft move container to workspace $ws5, workspace $ws5
|
||||
$flag+Shift+section move container to workspace $ws6, workspace $ws6
|
||||
$flag+Shift+egrave move container to workspace $ws7, workspace $ws7
|
||||
$flag+Shift+exclam move container to workspace $ws8, workspace $ws8
|
||||
$flag+Shift+ccedilla move container to workspace $ws9, workspace $ws9
|
||||
$flag+Shift+agrave move container to workspace $ws10, workspace $ws10
|
||||
$flag+Shift+parenright move container to workspace $ws11, workspace $ws11
|
||||
$flag+Shift+minus move container to workspace $ws0, workspace $ws12
|
||||
|
||||
$flag+Control+j focus output 'eDP-1'
|
||||
$flag+Control+h workspace prev_on_output
|
||||
$flag+Control+l workspace next_on_output
|
||||
$flag+Control+k focus output 'HDMI-A-1'
|
||||
|
||||
$flag+Control+Down focus output 'eDP-1'
|
||||
$flag+Control+Left workspace prev_on_output
|
||||
$flag+Control+Right workspace next_on_output
|
||||
$flag+Control+Up focus output 'HDMI-A-1'
|
||||
|
||||
$flag+Control+Shift+j \
|
||||
move container to output 'eDP-1', focus output 'eDP-1'
|
||||
$flag+Control+Shift+h \
|
||||
move container to workspace prev_on_output, workspace prev_on_output
|
||||
$flag+Control+Shift+l \
|
||||
move container to workspace next_on_output, workspace next_on_output
|
||||
$flag+Control+Shift+k \
|
||||
move container to output 'HDMI-A-1', focus output 'HDMI-A-1'
|
||||
|
||||
$flag+Control+Shift+Down \
|
||||
move container to output 'eDP-1', focus output 'eDP-1'
|
||||
$flag+Control+Shift+Left \
|
||||
move container to workspace prev_on_output, workspace prev_on_output
|
||||
$flag+Control+Shift+Right \
|
||||
move container to workspace next_on_output, workspace next_on_output
|
||||
$flag+Control+Shift+Up \
|
||||
move container to output 'HDMI-A-1', focus output 'HDMI-A-1'
|
||||
}
|
||||
|
||||
# System
|
||||
bindsym --locked {
|
||||
# Brightness
|
||||
XF86MonBrightnessDown exec brightnessctl -e s 5%- && $notify -b
|
||||
XF86MonBrightnessUp exec brightnessctl -e s +5% && $notify -b
|
||||
|
||||
# Volume control (Pulsemixer is slow!)
|
||||
XF86AudioRaiseVolume exec pamixer -i 2 --set-limit 100 && $notify -v
|
||||
XF86AudioLowerVolume exec pamixer -d 2 && $notify -v
|
||||
XF86AudioMute exec pamixer -t && $notify -v
|
||||
XF86AudioMicMute exec pactl set-source-mute @DEFAULT_SOURCE@ toggle
|
||||
|
||||
# Media control
|
||||
F7 exec playerctl play-pause
|
||||
Shift+XF86AudioLowerVolume exec playerctl previous
|
||||
Shift+XF86AudioRaiseVolume exec playerctl next
|
||||
}
|
||||
|
||||
# Special commands
|
||||
set $fzf ~/.scripts/fzf-jump
|
||||
bindsym {
|
||||
# Reload sway
|
||||
$alt+Shift+r reload
|
||||
# Dialog to exit sway
|
||||
$alt+Shift+e exec swaynag -t warning -m 'Do you really want to exit sway?' \
|
||||
-B 'Yes, exit sway' 'swaymsg exit'
|
||||
|
||||
$flag+q kill # Kill focused window
|
||||
$flag+Return exec $term -e bash -c "zellij attach || zellij" # Start a terminal
|
||||
$flag+Delete exec swaylock # Lockscreen
|
||||
|
||||
# Start application launcher
|
||||
$alt+space exec $term --title 'FZF-Jump' -e $fzf/launcher.sh
|
||||
# Window switcher
|
||||
$alt+Tab exec $term --title 'FZF-Jump' -e $fzf/standalone.sh $fzf/modules/windows.sh $fzf/modules/workspaces.sh
|
||||
|
||||
# File explorer
|
||||
$flag+e exec $term -e vifm
|
||||
# Internet explorer
|
||||
$flag+i exec firefox
|
||||
}
|
58
stow/sway/.config/sway/config
Normal file
58
stow/sway/.config/sway/config
Normal file
|
@ -0,0 +1,58 @@
|
|||
#
|
||||
# .config/sway/config
|
||||
# Personal config for sway
|
||||
# Requires noto-fonts-cjk
|
||||
#
|
||||
|
||||
# Import other config files
|
||||
include {
|
||||
commands
|
||||
modes
|
||||
style
|
||||
}
|
||||
|
||||
# Input
|
||||
input type:keyboard {
|
||||
xkb_layout "be"
|
||||
}
|
||||
|
||||
input 2:7:SynPS/2_Synaptics_TouchPad {
|
||||
natural_scroll enabled
|
||||
scroll_factor 0.6
|
||||
middle_emulation enabled
|
||||
tap enabled
|
||||
}
|
||||
|
||||
seat seat0 hide_cursor when-typing enable
|
||||
|
||||
# Output
|
||||
output * {
|
||||
bg "~/Pictures/wallpapers/bg.*" fill
|
||||
}
|
||||
|
||||
output 'Dell Inc. DELL P2214H 29C2937M4YTL' {
|
||||
# Vertical monitor
|
||||
transform 270
|
||||
}
|
||||
|
||||
output 'Samsung Electric Company SAMSUNG 0x00000001' {
|
||||
# Zoom in because long distance
|
||||
scale 2
|
||||
}
|
||||
|
||||
# Focus
|
||||
focus_follows_mouse no
|
||||
floating_modifier Mod4 normal
|
||||
|
||||
# Window rules
|
||||
for_window [window_role="pop-up"] floating enable
|
||||
for_window [window_role="task_dialog"] floating enable
|
||||
|
||||
for_window [class="Qalculate"] floating enable
|
||||
for_window [class="Caprine"] floating enable, border normal 2
|
||||
for_window [title="^FZF-Jump$"] floating enable, border pixel 0, resize set 600 350
|
||||
|
||||
for_window [class="^Betterbird$"] move container to workspace "11:Soc"
|
||||
|
||||
exec "~/.config/sway/autostart.sh"
|
||||
|
93
stow/sway/.config/sway/modes
Normal file
93
stow/sway/.config/sway/modes
Normal file
|
@ -0,0 +1,93 @@
|
|||
#
|
||||
# ~/.config/sway/modes
|
||||
# Modes for sway
|
||||
#
|
||||
|
||||
set {
|
||||
$alt Mod1
|
||||
$flag Mod4
|
||||
}
|
||||
|
||||
# Resizing
|
||||
bindsym $flag+r mode "resize"
|
||||
mode "resize" bindsym {
|
||||
l resize grow width 10 px or 10 ppt
|
||||
k resize grow height 10 px or 10 ppt
|
||||
h resize shrink width 10 px or 10 ppt
|
||||
j resize shrink height 10 px or 10 ppt
|
||||
|
||||
Shift+l resize grow width 50 px or 50 ppt
|
||||
Shift+k resize grow height 50 px or 50 ppt
|
||||
Shift+h resize shrink width 50 px or 50 ppt
|
||||
Shift+j resize shrink height 50 px or 50 ppt
|
||||
|
||||
Right resize grow width 10 px or 10 ppt
|
||||
Up resize grow height 10 px or 10 ppt
|
||||
Left resize shrink width 10 px or 10 ppt
|
||||
Down resize shrink height 10 px or 10 ppt
|
||||
|
||||
Shift+Right resize grow width 50 px or 50 ppt
|
||||
Shift+Up resize grow height 50 px or 50 ppt
|
||||
Shift+Left resize shrink width 50 px or 50 ppt
|
||||
Shift+Down resize shrink height 50 px or 50 ppt
|
||||
|
||||
$flag+h move left
|
||||
$flag+j move down
|
||||
$flag+k move up
|
||||
$flag+l move right
|
||||
|
||||
$flag+Left move left
|
||||
$flag+Down move down
|
||||
$flag+Up move up
|
||||
$flag+Right move right
|
||||
|
||||
Return mode "default"
|
||||
Escape mode "default"
|
||||
$flag+r mode "default"
|
||||
}
|
||||
|
||||
# System actions
|
||||
set $mode_system System (l)ock, (s)leep, (h)ibernate, (r)eboot, (Shift+s)hutdown
|
||||
bindsym Control+$alt+Delete mode "$mode_system"
|
||||
mode "$mode_system" bindsym {
|
||||
l exec swaylock, mode "default"
|
||||
s exec systemctl suspend, mode "default"
|
||||
h exec systemctl hibernate, mode "default"
|
||||
r exec systemctl reboot, mode "default"
|
||||
Shift+s exec systemctl poweroff -i, mode "default"
|
||||
|
||||
Return mode "default"
|
||||
Escape mode "default"
|
||||
Control+$alt+Delete mode "default"
|
||||
}
|
||||
|
||||
# Screenshots
|
||||
set $mode_screenshot Screenshot of (a)rea, current (w)indow, (s)creen - Shift to save
|
||||
set $save_format ~/Pictures/Screenshots/$(date +%F-%H-%M-%S).png
|
||||
bindsym Print mode "$mode_screenshot"
|
||||
mode "$mode_screenshot" bindsym {
|
||||
a exec grimshot copy area, mode "default"
|
||||
w exec grimshot --notify copy active, mode "default"
|
||||
s exec grimshot --notify copy screen, mode "default"
|
||||
|
||||
Print exec grimshot --notify save screen $save_format mode "default" # Super fast screens!
|
||||
Shift+a exec grimshot --notify save area $save_format, mode "default"
|
||||
Shift+w exec grimshot --notify save active $save_format, mode "default"
|
||||
Shift+s exec grimshot --notify save screen $save_format, mode "default"
|
||||
|
||||
Return mode "default"
|
||||
Escape mode "default"
|
||||
}
|
||||
|
||||
# Some preferences
|
||||
set $mode_preferences Toggle (s)unset, (n)otifications, (f)ocus
|
||||
bindsym $alt+end mode "$mode_preferences"
|
||||
mode "$mode_preferences" bindsym {
|
||||
s exec "~/.scripts/wlsunset.sh", mode "default"
|
||||
n exec "~/.scripts/dnd.sh", mode "default"
|
||||
f exec "~/.scripts/focus.sh", mode "default"
|
||||
|
||||
Return mode "default"
|
||||
Escape mode "default"
|
||||
$alt+end mode "default"
|
||||
}
|
27
stow/sway/.config/sway/style
Normal file
27
stow/sway/.config/sway/style
Normal file
|
@ -0,0 +1,27 @@
|
|||
#
|
||||
# ~/.config/sway/style
|
||||
# Styling for sway
|
||||
#
|
||||
|
||||
# Decrease the height of the window bar thing.
|
||||
font pango:monospace 1
|
||||
|
||||
bar {
|
||||
swaybar_command /usr/bin/waybar
|
||||
mode hide
|
||||
}
|
||||
|
||||
default_border pixel 1
|
||||
default_floating_border normal 1
|
||||
hide_edge_borders both
|
||||
smart_borders on
|
||||
|
||||
# Mimic no titles
|
||||
# border backgr. text indic. child_border
|
||||
client.focused #000000 #00897b #00897b #00897b #000000
|
||||
client.focused_inactive #000000 #222222 #222222 #222222 #000000
|
||||
client.unfocused #000000 #222222 #222222 #222222 #000000
|
||||
client.urgent #ff0000 #ff0000 #ff0000 #ff0000 #ff0000
|
||||
|
||||
exec gsettings set org.gnome.desktop.interface icon-theme 'IcoSystem'
|
||||
exec gsettings set org.gnome.desktop.interface gtk-theme 'Nordic'
|
45
stow/waybar/.config/waybar/config
Normal file
45
stow/waybar/.config/waybar/config
Normal file
|
@ -0,0 +1,45 @@
|
|||
//
|
||||
// ~/.config/waybar/config
|
||||
//
|
||||
|
||||
[{
|
||||
|
||||
"name": "toggle",
|
||||
|
||||
"mode": "hide",
|
||||
"ipc": true,
|
||||
|
||||
"position": "top",
|
||||
"height": 25,
|
||||
"spacing": 4,
|
||||
"margin": "-25px 0 0 0", // Show this bar on top of the other one, seemingly the "same" one.
|
||||
|
||||
"custom/sep": {
|
||||
"format": "\uf142"
|
||||
},
|
||||
|
||||
"include": [
|
||||
// Import modules (!)
|
||||
"~/.config/waybar/modules.json",
|
||||
// "~/.config/waybar/default.json"
|
||||
"~/.config/waybar/left.json"
|
||||
],
|
||||
|
||||
},
|
||||
|
||||
{
|
||||
|
||||
"name": "keep",
|
||||
"position": "top",
|
||||
"height": 25,
|
||||
"modules-left": ["sway/mode", "custom/browser"],
|
||||
"modules-center": ["sway/window"],
|
||||
"modules-right": ["clock"],
|
||||
|
||||
"include": [
|
||||
// Import modules (!)
|
||||
"~/.config/waybar/modules.json"
|
||||
],
|
||||
|
||||
}]
|
||||
|
24
stow/waybar/.config/waybar/default.json
Normal file
24
stow/waybar/.config/waybar/default.json
Normal file
|
@ -0,0 +1,24 @@
|
|||
|
||||
{
|
||||
"modules-left": [
|
||||
"idle_inhibitor",
|
||||
"custom/media"
|
||||
],
|
||||
"modules-center": [
|
||||
"sway/workspaces"
|
||||
],
|
||||
"modules-right": [
|
||||
"disk",
|
||||
"memory",
|
||||
"cpu",
|
||||
"temperature",
|
||||
"custom/sep",
|
||||
"bluetooth",
|
||||
"network",
|
||||
"pulseaudio",
|
||||
"battery",
|
||||
"custom/sep",
|
||||
"tray"
|
||||
]
|
||||
}
|
||||
|
19
stow/waybar/.config/waybar/left.json
Normal file
19
stow/waybar/.config/waybar/left.json
Normal file
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"modules-left": [
|
||||
"sway/workspaces",
|
||||
"idle_inhibitor",
|
||||
"custom/media"
|
||||
],
|
||||
"modules-right": [
|
||||
"memory",
|
||||
"cpu",
|
||||
"temperature",
|
||||
"custom/sep",
|
||||
"bluetooth",
|
||||
"network",
|
||||
"pulseaudio",
|
||||
"battery",
|
||||
"custom/sep",
|
||||
"tray"
|
||||
]
|
||||
}
|
131
stow/waybar/.config/waybar/mediaplayer.py
Executable file
131
stow/waybar/.config/waybar/mediaplayer.py
Executable file
|
@ -0,0 +1,131 @@
|
|||
#!/usr/bin/env python3
|
||||
# From:
|
||||
# https://github.com/Alexays/Waybar/blob/master/resources/custom_modules/mediaplayer.py
|
||||
|
||||
import argparse
|
||||
import logging
|
||||
import sys
|
||||
import signal
|
||||
import gi
|
||||
import json
|
||||
gi.require_version('Playerctl', '2.0')
|
||||
from gi.repository import Playerctl, GLib
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def write_output(text, player):
|
||||
logger.info('Writing output')
|
||||
|
||||
output = {'text': text,
|
||||
'class': 'custom-' + player.props.player_name,
|
||||
'alt': player.props.player_name}
|
||||
|
||||
sys.stdout.write(json.dumps(output) + '\n')
|
||||
sys.stdout.flush()
|
||||
|
||||
|
||||
def on_play(player, status, manager):
|
||||
logger.info('Received new playback status')
|
||||
on_metadata(player, player.props.metadata, manager)
|
||||
|
||||
|
||||
def on_metadata(player, metadata, manager):
|
||||
logger.info('Received new metadata')
|
||||
track_info = ''
|
||||
|
||||
if player.props.player_name == 'spotify' and \
|
||||
'mpris:trackid' in metadata.keys() and \
|
||||
':ad:' in player.props.metadata['mpris:trackid']:
|
||||
track_info = 'AD PLAYING'
|
||||
elif player.get_artist() != '' and player.get_title() != '':
|
||||
track_info = '{artist} - {title}'.format(artist=player.get_artist(),
|
||||
title=player.get_title())
|
||||
else:
|
||||
track_info = player.get_title()
|
||||
|
||||
if player.props.status != 'Playing' and track_info:
|
||||
track_info = ' ' + track_info
|
||||
write_output(track_info, player)
|
||||
|
||||
|
||||
def on_player_appeared(manager, player, selected_player=None):
|
||||
if player is not None and (selected_player is None or player.name == selected_player):
|
||||
init_player(manager, player)
|
||||
else:
|
||||
logger.debug("New player appeared, but it's not the selected player, skipping")
|
||||
|
||||
|
||||
def on_player_vanished(manager, player):
|
||||
logger.info('Player has vanished')
|
||||
sys.stdout.write('\n')
|
||||
sys.stdout.flush()
|
||||
|
||||
|
||||
def init_player(manager, name):
|
||||
logger.debug('Initialize player: {player}'.format(player=name.name))
|
||||
player = Playerctl.Player.new_from_name(name)
|
||||
player.connect('playback-status', on_play, manager)
|
||||
player.connect('metadata', on_metadata, manager)
|
||||
manager.manage_player(player)
|
||||
on_metadata(player, player.props.metadata, manager)
|
||||
|
||||
|
||||
def signal_handler(sig, frame):
|
||||
logger.debug('Received signal to stop, exiting')
|
||||
sys.stdout.write('\n')
|
||||
sys.stdout.flush()
|
||||
# loop.quit()
|
||||
sys.exit(0)
|
||||
|
||||
|
||||
def parse_arguments():
|
||||
parser = argparse.ArgumentParser()
|
||||
|
||||
# Increase verbosity with every occurrence of -v
|
||||
parser.add_argument('-v', '--verbose', action='count', default=0)
|
||||
|
||||
# Define for which player we're listening
|
||||
parser.add_argument('--player')
|
||||
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
def main():
|
||||
arguments = parse_arguments()
|
||||
|
||||
# Initialize logging
|
||||
logging.basicConfig(stream=sys.stderr, level=logging.DEBUG,
|
||||
format='%(name)s %(levelname)s %(message)s')
|
||||
|
||||
# Logging is set by default to WARN and higher.
|
||||
# With every occurrence of -v it's lowered by one
|
||||
logger.setLevel(max((3 - arguments.verbose) * 10, 0))
|
||||
|
||||
# Log the sent command line arguments
|
||||
logger.debug('Arguments received {}'.format(vars(arguments)))
|
||||
|
||||
manager = Playerctl.PlayerManager()
|
||||
loop = GLib.MainLoop()
|
||||
|
||||
manager.connect('name-appeared', lambda *args: on_player_appeared(*args, arguments.player))
|
||||
manager.connect('player-vanished', on_player_vanished)
|
||||
|
||||
signal.signal(signal.SIGINT, signal_handler)
|
||||
signal.signal(signal.SIGTERM, signal_handler)
|
||||
signal.signal(signal.SIGPIPE, signal.SIG_DFL)
|
||||
|
||||
for player in manager.props.player_names:
|
||||
if arguments.player is not None and arguments.player != player.name:
|
||||
logger.debug('{player} is not the filtered player, skipping it'
|
||||
.format(player=player.name)
|
||||
)
|
||||
continue
|
||||
|
||||
init_player(manager, player)
|
||||
|
||||
loop.run()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
156
stow/waybar/.config/waybar/modules.json
Normal file
156
stow/waybar/.config/waybar/modules.json
Normal file
|
@ -0,0 +1,156 @@
|
|||
{
|
||||
|
||||
"battery": {
|
||||
"format": "{capacity}% {icon}",
|
||||
"format-alt": "{time} {icon}",
|
||||
"format-charging": "{capacity}% \uf0e7 {icon}",
|
||||
"format-icons": ["\uf244", "\uf243", "\uf242", "\uf241", "\uf240"],
|
||||
"format-plugged": "{capacity}% \ue55c",
|
||||
"states": {
|
||||
"warning": 30,
|
||||
"critical": 15
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
"disk": {
|
||||
"interval": 30,
|
||||
"format": "{percentage_used}% \uf0a0",
|
||||
"on-click": "alacritty -e ncdu /",
|
||||
"path": "/",
|
||||
"tooltip-format": "{used} used out of {total} on {path} ({percentage_free}% or {free} free)"
|
||||
},
|
||||
|
||||
|
||||
"bluetooth": {
|
||||
"format-disabled": "<big>\uf294</big>",
|
||||
"format-off": "\uf294",
|
||||
"format-on": "<big>\uf294</big>",
|
||||
"format-connected": "<big>\uf294</big>c",
|
||||
"max-length": 10.3,
|
||||
"on-click": "alacritty --title 'FZF-Jump' -e ~/.scripts/fzf-jump/standalone.sh ~/.scripts/fzf-jump/modules/bluetooth.sh",
|
||||
"tooltip-format": "{status}",
|
||||
"tooltip-format-on": "{status}, no devices connected",
|
||||
"tooltip-format-connected": "{status} ({num_connections}):\n{device_enumerate}",
|
||||
"tooltip-format-enumerate-connected": "{device_alias} ({device_address})",
|
||||
"tooltip-format-enumerate-connected-battery": "{device_alias}\t{device_address}\t{device_battery_percentage}"
|
||||
},
|
||||
|
||||
|
||||
"clock": {
|
||||
"format": "{:%H:%M}",
|
||||
"format-alt": "{:%d/%m/%Y %H:%M}",
|
||||
"timezone": "Europe/Brussels",
|
||||
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>"
|
||||
},
|
||||
|
||||
|
||||
"custom/browser": {
|
||||
"format": "\uf120",
|
||||
"on-click": "alacritty -t 'FZF-Jump' -e ~/.scripts/fzf-jump/launcher.sh",
|
||||
"tooltip-format": "Launch an application"
|
||||
},
|
||||
|
||||
|
||||
"custom/media": {
|
||||
"escape": true,
|
||||
"exec": "~/.config/waybar/mediaplayer.py 2> /dev/null",
|
||||
"format": "{icon} {}",
|
||||
"format-icons": {
|
||||
"default": "\uf51f",
|
||||
"spotify": "\uf1bc"
|
||||
},
|
||||
"max-length": 40,
|
||||
"on-click": "playerctl play-pause",
|
||||
"return-type": "json"
|
||||
},
|
||||
|
||||
|
||||
"cpu": {
|
||||
"format": "{usage}% \uf2db",
|
||||
"on-click": "alacritty -e htop",
|
||||
"tooltip": true
|
||||
},
|
||||
|
||||
|
||||
"idle_inhibitor": {
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"activated": "\uf06e",
|
||||
"deactivated": "\uf070"
|
||||
},
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
|
||||
"memory": {
|
||||
"format": "{}% \uf1c0",
|
||||
"on-click": "alacritty -e htop"
|
||||
},
|
||||
|
||||
|
||||
"network": {
|
||||
"format-disconnected": "\uf127",
|
||||
"format-ethernet": "\uf6ff {ifname}: {ipadds}/{cidr}",
|
||||
"format-wifi": "\uf1eb",
|
||||
"interval": 5,
|
||||
"on-click-right": "alacritty -e nmtui",
|
||||
"tooltip-format": "{ifname}: {ipaddr}",
|
||||
"tooltip-format-disconnected": "Disconnected",
|
||||
"tooltip-format-wifi": "{essid} ({signalStrength}%)\n{ifname}: {ipaddr}"
|
||||
},
|
||||
|
||||
|
||||
"sway/window": {
|
||||
"max-length": 85
|
||||
},
|
||||
|
||||
|
||||
"sway/workspaces": {
|
||||
"all-outputs": false,
|
||||
"disable-scroll": true,
|
||||
"format": "{icon}{name}",
|
||||
"format-icons": {
|
||||
"default": "", // Prevent showing workspace name literal.
|
||||
"urgent": "\uf071 "
|
||||
},
|
||||
// "persistent_workspaces": {
|
||||
// "0:¯\\_(ツ)_/¯": []
|
||||
// }
|
||||
},
|
||||
|
||||
|
||||
"pulseaudio": {
|
||||
"format": "{volume}% {icon}{format_source}",
|
||||
"format-bluetooth": "{volume}% {icon}\uf294{format_source}",
|
||||
"format-bluetooth-muted": "\uf6a9 {icon}\uf294{format_source}",
|
||||
"format-muted": "\uf6a9{format_source}",
|
||||
"format-source": " {volume}% \uf130",
|
||||
"format-source-muted": "",
|
||||
"format-icons": {
|
||||
"headphone": "\uf58f",
|
||||
"hands-free": "\uf590",
|
||||
"headset": "\uf590",
|
||||
"phone": "\uf3ce",
|
||||
"portable": "\uf3ce",
|
||||
"car": "\uf1b9",
|
||||
"default": ["\uf026", "\uf027", "\uf028 "]
|
||||
},
|
||||
"on-click": "pulsemixer --toggle-mute",
|
||||
"on-click-right": "pavucontrol",
|
||||
"scroll-step": 2
|
||||
},
|
||||
|
||||
|
||||
"temperature": {
|
||||
"critical-threshold": 70,
|
||||
"format": "{temperatureC}°C {icon}",
|
||||
"format-icons": ["\uf2cb", "\uf2c9", "\uf2c7"]
|
||||
},
|
||||
|
||||
|
||||
"tray": {
|
||||
"spacing": 10
|
||||
}
|
||||
|
||||
}
|
50
stow/waybar/.config/waybar/round.css
Normal file
50
stow/waybar/.config/waybar/round.css
Normal file
|
@ -0,0 +1,50 @@
|
|||
/*
|
||||
* ~/.config/waybar/round.css
|
||||
*
|
||||
* This stylesheet has round modules and titles.
|
||||
*/
|
||||
|
||||
window#waybar {
|
||||
color: @white;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.modules-left {
|
||||
background-color: @transparent-black;
|
||||
border-radius: 0 20px 20px 0;
|
||||
/* Coloured modules must hit the border! */
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
.modules-center {
|
||||
background-color: @transparent-black;
|
||||
border-radius: 20px;
|
||||
}
|
||||
|
||||
.keep .modules-center {
|
||||
background-color: transparent;
|
||||
padding: 0 10px;
|
||||
}
|
||||
|
||||
.modules-right {
|
||||
background-color: @transparent-black;
|
||||
border-radius: 20px 0 0 20px;
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
border-radius: 20px;
|
||||
}
|
||||
|
||||
#workspaces button:hover,
|
||||
#workspaces button.focused {
|
||||
background-color: @accent;
|
||||
border-radius: 20px;
|
||||
color: @white;
|
||||
}
|
||||
|
||||
#custom-media {
|
||||
border-radius: 0 20px 20px 0;
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
23
stow/waybar/.config/waybar/sharp.css
Normal file
23
stow/waybar/.config/waybar/sharp.css
Normal file
|
@ -0,0 +1,23 @@
|
|||
/*
|
||||
* ~/.config/waybar/sharp.css
|
||||
*
|
||||
* This stylesheet is a take on a minimal layout.
|
||||
*/
|
||||
|
||||
window#waybar {
|
||||
color: @white;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
#mode,
|
||||
.toggle .modules-left,
|
||||
.toggle .modules-right {
|
||||
background-color: @transparent-black;
|
||||
}
|
||||
|
||||
#mode,
|
||||
#workspaces button.focused,
|
||||
#workspaces button:hover {
|
||||
box-shadow: inset 0 2px #ffffff;
|
||||
}
|
||||
|
132
stow/waybar/.config/waybar/style.css
Normal file
132
stow/waybar/.config/waybar/style.css
Normal file
|
@ -0,0 +1,132 @@
|
|||
/*
|
||||
* ~/.config/waybar/style.css
|
||||
*
|
||||
* `otf-font-awesome` is required to be installed for icons.
|
||||
*
|
||||
* Pick your stylesheet:
|
||||
* - sharp.css
|
||||
* - transparent.css
|
||||
* - round.css
|
||||
*/
|
||||
|
||||
@define-color transparent-black rgba(23, 23, 23, 0.9);
|
||||
@define-color white #ecf0f1;
|
||||
@define-color warning-red #eb4d4b;
|
||||
@define-color accent #00897b;
|
||||
|
||||
window#waybar {
|
||||
font-family: Letter; /* This is my personal font. */
|
||||
font-size: 13px;
|
||||
transition-property: background-color;
|
||||
transition-duration: .5s;
|
||||
}
|
||||
|
||||
#window, #workspaces {
|
||||
margin: 0 5px;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
min-width: 30px;
|
||||
padding: 0 5px;
|
||||
}
|
||||
|
||||
#workspaces button:hover,
|
||||
#workspaces button.focused {
|
||||
background-color: transparent;
|
||||
color: @white;
|
||||
}
|
||||
|
||||
#workspaces button.urgent {
|
||||
color: @white;
|
||||
background-color: @warning-red;
|
||||
}
|
||||
|
||||
/* All modules individually. */
|
||||
#backlight, #battery, #bluetooth, #clock, #cpu,
|
||||
#custom-browser, #custom-media, #disk, #idle_inhibitor,
|
||||
#memory, #mode, #mpd, #network, #pulseaudio,
|
||||
#temperature, #tray {
|
||||
padding: 0 5px;
|
||||
}
|
||||
|
||||
/* If workspaces is the leftmost module, omit left margin */
|
||||
.modules-left > widget:first-child > #workspaces {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
/* If workspaces is the rightmost module, omit right margin */
|
||||
.modules-right > widget:last-child > #workspaces {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
@keyframes blink {
|
||||
to {
|
||||
background-color: #ffffff;
|
||||
color: #000000;
|
||||
}
|
||||
}
|
||||
|
||||
label:focus {
|
||||
background-color: #000000;
|
||||
}
|
||||
|
||||
/* Module specific colours */
|
||||
|
||||
#battery.charging, #battery.plugged {
|
||||
color: #ffffff;
|
||||
background-color: #26A65B;
|
||||
}
|
||||
|
||||
#battery.critical:not(.charging) {
|
||||
background-color: #f53c3c;
|
||||
color: #ffffff;
|
||||
animation-name: blink;
|
||||
animation-duration: 0.5s;
|
||||
animation-timing-function: linear;
|
||||
animation-iteration-count: infinite;
|
||||
animation-direction: alternate;
|
||||
}
|
||||
|
||||
#bluetooth.disabled,
|
||||
#bluetooth.off,
|
||||
#network.disconnected,
|
||||
#pulseaudio.muted {
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
#custom-media {
|
||||
color: #2a5c45;
|
||||
background-color: #66cc99;
|
||||
min-width: 100px;
|
||||
}
|
||||
|
||||
#custom-media.custom-spotify {
|
||||
background-color: #66cc99;
|
||||
}
|
||||
|
||||
#custom-media.custom-vlc {
|
||||
background-color: #ffa000;
|
||||
}
|
||||
|
||||
#temperature.critical {
|
||||
background-color: #eb4d4b;
|
||||
}
|
||||
|
||||
#idle_inhibitor.activated {
|
||||
background-color: #ecf0f1;
|
||||
color: #2d3436;
|
||||
}
|
||||
|
||||
#tray > .passive {
|
||||
-gtk-icon-effect: dim;
|
||||
}
|
||||
|
||||
#tray > .needs-attention {
|
||||
-gtk-icon-effect: highlight;
|
||||
background-color: #eb4d4b;
|
||||
}
|
||||
|
||||
@import "sharp.css";
|
||||
|
24
stow/waybar/.config/waybar/transparent.css
Normal file
24
stow/waybar/.config/waybar/transparent.css
Normal file
|
@ -0,0 +1,24 @@
|
|||
/*
|
||||
* ~/.config/waybar/transparent.css
|
||||
*
|
||||
* This stylesheet is a minimalistic, transparent style.
|
||||
*/
|
||||
|
||||
@define-color transparent-black-light rgba(23, 23, 23, 0.7);
|
||||
|
||||
window#waybar {
|
||||
color: @white;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.toggle .modules-right,
|
||||
.toggle .modules-left {
|
||||
background-color: @transparent-black-light;
|
||||
}
|
||||
|
||||
#workspaces button:hover,
|
||||
#workspaces button.focused,
|
||||
#mode {
|
||||
box-shadow: inset 0 2px #ffffff;
|
||||
}
|
||||
|
Loading…
Reference in a new issue