From 394063b9d245f554704cb10bb5c5b584a7b120f7 Mon Sep 17 00:00:00 2001 From: Vladan Popovic Date: Tue, 27 Dec 2022 23:16:55 +0100 Subject: [PATCH] add sway config to tree (etc) --- config/sway/bin/keyboard-layout-per-window.py | 42 ++++ config/sway/config | 1 + config/sway/config.d/10-variables.conf | 15 ++ config/sway/config.d/20-output.conf | 16 ++ config/sway/config.d/30-input.conf | 27 +++ config/sway/config.d/50-style.conf | 47 +++++ config/sway/config.d/60-app-windows.conf | 34 ++++ config/sway/config.d/90-bindings.conf | 150 ++++++++++++++ config/sway/config.d/91-swaysome.conf | 52 +++++ config/sway/config.d/99-startup.conf | 3 + config/waybar/config | 177 ++++++++-------- config/waybar/keyboard-layout.py | 36 ++++ config/waybar/style.css | 192 +++++------------- x13-gen1-sway-desktop.yaml | 14 +- 14 files changed, 573 insertions(+), 233 deletions(-) create mode 100755 config/sway/bin/keyboard-layout-per-window.py create mode 100644 config/sway/config create mode 100644 config/sway/config.d/10-variables.conf create mode 100644 config/sway/config.d/20-output.conf create mode 100644 config/sway/config.d/30-input.conf create mode 100644 config/sway/config.d/50-style.conf create mode 100644 config/sway/config.d/60-app-windows.conf create mode 100644 config/sway/config.d/90-bindings.conf create mode 100644 config/sway/config.d/91-swaysome.conf create mode 100644 config/sway/config.d/99-startup.conf create mode 100755 config/waybar/keyboard-layout.py diff --git a/config/sway/bin/keyboard-layout-per-window.py b/config/sway/bin/keyboard-layout-per-window.py new file mode 100755 index 0000000..15e5dfb --- /dev/null +++ b/config/sway/bin/keyboard-layout-per-window.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python + +# This script keeps track of active keyboard layouts per window. +# +# This script requires i3ipc-python package (install it from a system package +# manager or pip). +# +# https://github.com/swaywm/sway/pull/4504/files +import i3ipc + +sway = i3ipc.Connection() +prev_focused = sway.get_tree().find_focused().id +windows = {} + +def on_window_focus(ipc, event): + global windows, prev_focused + + # Save current layouts + layouts = {input.identifier: input.xkb_active_layout_index for input in sway.get_inputs()} + windows[prev_focused] = layouts + + # Restore layout of the newly focused window + if event.container.id in windows: + for (input_id, layout_index) in windows[event.container.id].items(): + if layout_index != layouts[input_id]: + sway.command(f'input "{input_id}" xkb_switch_layout {layout_index}') + + prev_focused = event.container.id + +def on_window_close(ipc, event): + global windows + if event.container.id in windows: + del(windows[event.container.id]) + +def on_window(ipc, event): + if event.change == "focus": + on_window_focus(ipc, event) + elif event.change == "close": + on_window_close(ipc, event) + +sway.on("window", on_window) +sway.main() diff --git a/config/sway/config b/config/sway/config new file mode 100644 index 0000000..a1fafba --- /dev/null +++ b/config/sway/config @@ -0,0 +1 @@ +include /etc/sway/config.d/* diff --git a/config/sway/config.d/10-variables.conf b/config/sway/config.d/10-variables.conf new file mode 100644 index 0000000..afc9aff --- /dev/null +++ b/config/sway/config.d/10-variables.conf @@ -0,0 +1,15 @@ +### Variables +# +# Logo key. Use Mod1 for Alt. +set $mod Mod4 +# Home row direction keys, like vim +set $left h +set $down j +set $up k +set $right l +# Your preferred terminal emulator +set $term alacritty +# Your preferred application launcher +# Note: it's recommended that you pass the final command to sway +# set $menu wofi -c $HOME/.config/wofi/config -s $HOME/.config/wofi/style.css | xargs swaymsg exec -- +set $menu ~/src/wldash/target/release/wldash diff --git a/config/sway/config.d/20-output.conf b/config/sway/config.d/20-output.conf new file mode 100644 index 0000000..3a723ab --- /dev/null +++ b/config/sway/config.d/20-output.conf @@ -0,0 +1,16 @@ +### Output configuration +# +# Example configuration: +# +# output HDMI-A-1 resolution 1920x1080 position 1920,0 +# +# You can get the names of your outputs by running: swaymsg -t get_outputs +# +output DP-1 bg ~/.config/sway/bkg2.jpg fill +output DP-1 scale 1.2 res 3840x2160 pos 0 0 +output DP-2 bg ~/.config/sway/bkg2.jpg fill +output DP-2 scale 1.2 res 3840x2160 pos 0 0 +output HDMI-A-1 bg ~/.config/sway/bkg2.jpg fill +output HDMI-A-1 scale 1.2 res 3840x2160 pos 0 0 +output eDP-1 bg ~/.config/sway/bkg.jpg fill +output eDP-1 scale 1.0 res 1920x1080 pos 640 1800 diff --git a/config/sway/config.d/30-input.conf b/config/sway/config.d/30-input.conf new file mode 100644 index 0000000..9dfbe9d --- /dev/null +++ b/config/sway/config.d/30-input.conf @@ -0,0 +1,27 @@ +### Input configuration +# +# Example configuration: +# +# input "2:14:SynPS/2_Synaptics_TouchPad" { +# dwt enabled +# tap enabled +# natural_scroll enabled +# middle_emulation enabled +# } +# +# You can get the names of your inputs by running: swaymsg -t get_inputs +# Read `man 5 sway-input` for more information about this section. + +input * xkb_layout "us,mk" +input * xkb_variant "typewriter" +input * xkb_options "grp:caps_toggle" + +# Pulse Audio controls +bindsym XF86AudioRaiseVolume exec pactl set-sink-volume 0 +5% #increase sound volume +bindsym XF86AudioLowerVolume exec pactl set-sink-volume 0 -5% #decrease sound volume +bindsym XF86AudioMute exec pactl set-sink-mute 0 toggle # mute sound +bindsym XF86AudioMicMute exec pactl set-source-mute alsa_input.pci-0000_00_1b.0.analog-stereo toggle # mute mic + +# Sreen brightness controls +bindsym XF86MonBrightnessUp exec brightnessctl -q s +10% +bindsym XF86MonBrightnessDown exec brightnessctl -q s 10%- diff --git a/config/sway/config.d/50-style.conf b/config/sway/config.d/50-style.conf new file mode 100644 index 0000000..49f4ab4 --- /dev/null +++ b/config/sway/config.d/50-style.conf @@ -0,0 +1,47 @@ +# +# Status Bar: +# +# Read `man 5 sway-bar` for more information about this section. +bar { + position top + + # When the status_command prints a new line to stdout, swaybar updates. + # The default just shows the current date and time. + swaybar_command waybar +} + +# Remove title from windows +default_border pixel 1 +default_floating_border normal +bindsym $mod+t border toggle + +hide_edge_borders smart + +# Background +set $bg #232425 +# Background active +set $ba #191919 +# Background inactive +set $bi #3f3f3f +# Foreground active +set $fa #eff1f5 +# Foreground inactive +set $fi #646464 +# Border active +set $bra #9a9a9a +# Border inactive +set $bri #000000 + +# class border backgr. text indicator child_border +client.focused $bra $bra $bg $bg $bra +client.focused_inactive $bra $ba $fa $bg $bri +client.unfocused $bri $bi $fi $bg $bri +#client.urgent $br $br $fg $bg $br #currently not implemented +#client.placeholder $br $br $fg $bg $br #currently not implemented +client.background $bg + +gaps inner 0 +gaps outer 0 +#smart_gaps on + +for_window [app_id=".*"] border normal diff --git a/config/sway/config.d/60-app-windows.conf b/config/sway/config.d/60-app-windows.conf new file mode 100644 index 0000000..e5221e2 --- /dev/null +++ b/config/sway/config.d/60-app-windows.conf @@ -0,0 +1,34 @@ +for_window [class="Firefox"] mark Browser +for_window [class="Firefox" window_role="Browser"] { + border normal 0 +} +# firefox floating menus +for_window [window_role="pop-up"] floating enable +for_window [window_role="task_dialog"] floating enable +for_window [window_role="pop-up"] floating enable +for_window [window_role="bubble"] floating enable +for_window [window_role="task_dialog"] floating enable +for_window [window_role="Preferences"] floating enable +for_window [window_type="dialog"] floating enable +for_window [window_type="menu"] floating enable +for_window [title="About Mozilla Firefox"] floating enabled +for_window [title="Password Required - Mozilla Firefox"] floating enabled +for_window [app_id="pinentry-qt"] { + move position center + floating enable +} +for_window [app_id="pavucontrol"] { + move position center + floating enable +} +for_window [app_id="wdisplays"] { + floating enable +} +for_window [app_id="com.nextcloud.desktopclient.nextcloud"] { + border normal 1 + floating enable +} + +for_window [app_id="avizo-service"] border pixel 0 +for_window [app_id="avizo-service"] sticky toggle +no_focus [app_id="avizo-service"] diff --git a/config/sway/config.d/90-bindings.conf b/config/sway/config.d/90-bindings.conf new file mode 100644 index 0000000..51af250 --- /dev/null +++ b/config/sway/config.d/90-bindings.conf @@ -0,0 +1,150 @@ +### Key bindings +# +# Basics: +# + # start a terminal + bindsym $mod+Return exec $term + + # kill focused window + bindsym $mod+Shift+q kill + + # start your launcher + bindsym $mod+d exec $menu + + # Drag floating windows by holding down $mod and left mouse button. + # Resize them with right mouse button + $mod. + # Despite the name, also works for non-floating windows. + # Change normal to inverse to use left mouse button for resizing and right + # mouse button for dragging. + floating_modifier $mod normal + + # reload the configuration file + bindsym $mod+Shift+c reload + + # exit sway (logs you out of your Wayland session) + bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -b 'Yes, exit sway' 'swaymsg exit' +# +# Moving around: +# + # Move your focus around + bindsym $mod+$left focus left + bindsym $mod+$down focus down + bindsym $mod+$up focus up + bindsym $mod+$right focus right + # or use $mod+[up|down|left|right] + bindsym $mod+Left focus left + bindsym $mod+Down focus down + bindsym $mod+Up focus up + bindsym $mod+Right focus right + + # _move_ the focused window with the same, but add Shift + bindsym $mod+Shift+$left move left + bindsym $mod+Shift+$down move down + bindsym $mod+Shift+$up move up + bindsym $mod+Shift+$right move right + # ditto, with arrow keys + bindsym $mod+Shift+Left move left + bindsym $mod+Shift+Down move down + bindsym $mod+Shift+Up move up + bindsym $mod+Shift+Right move right +# +# Workspaces: +# + # switch to workspace + bindsym $mod+1 workspace 1 + bindsym $mod+2 workspace 2 + bindsym $mod+3 workspace 3 + bindsym $mod+4 workspace 4 + bindsym $mod+5 workspace 5 + bindsym $mod+6 workspace 6 + bindsym $mod+7 workspace 7 + bindsym $mod+8 workspace 8 + bindsym $mod+9 workspace 9 + bindsym $mod+0 workspace 10 + # move focused container to workspace + bindsym $mod+Shift+1 move container to workspace 1 + bindsym $mod+Shift+2 move container to workspace 2 + bindsym $mod+Shift+3 move container to workspace 3 + bindsym $mod+Shift+4 move container to workspace 4 + bindsym $mod+Shift+5 move container to workspace 5 + bindsym $mod+Shift+6 move container to workspace 6 + bindsym $mod+Shift+7 move container to workspace 7 + bindsym $mod+Shift+8 move container to workspace 8 + bindsym $mod+Shift+9 move container to workspace 9 + bindsym $mod+Shift+0 move container to workspace 10 + # Note: workspaces can have any name you want, not just numbers. + # We just use 1-10 as the default. +# +# Layout stuff: +# + # You can "split" the current object of your focus with + # $mod+b or $mod+v, for horizontal and vertical splits + # respectively. + bindsym $mod+b splith + bindsym $mod+v splitv + + # Switch the current container between different layout styles + bindsym $mod+s layout stacking + bindsym $mod+w layout tabbed + bindsym $mod+e layout toggle split + + # Make the current focus fullscreen + bindsym $mod+f fullscreen + + # Toggle the current focus between tiling and floating mode + bindsym $mod+Shift+space floating toggle + + # Swap focus between the tiling area and the floating area + bindsym $mod+space focus mode_toggle + + # move focus to the parent container + bindsym $mod+a focus parent +# +# Scratchpad: +# + # Sway has a "scratchpad", which is a bag of holding for windows. + # You can send windows there and get them back later. + + # Move the currently focused window to the scratchpad + bindsym $mod+Shift+minus move scratchpad + + # Show the next scratchpad window or hide the focused scratchpad window. + # If there are multiple scratchpad windows, this command cycles through them. + bindsym $mod+minus scratchpad show + + + +# Lock screen +bindsym $mod+z exec swaylock -c 000000 + +# Take full screen screenshot with PrtScr +bindsym Print exec grim -t png /tmp/screen.png +# Take area screenshot with Shift+PrtScr +bindsym Shift+Print exec grim -g "$(slurp)" /tmp/screen.png + +# +# Resizing containers: +# + bindsym $mod+r mode "resize" + + mode "resize" { + # left will shrink the containers width + # right will grow the containers width + # up will shrink the containers height + # down will grow the containers height + bindsym $left resize shrink width 10px + bindsym $down resize grow height 10px + bindsym $up resize shrink height 10px + bindsym $right resize grow width 10px + + # ditto, with arrow keys + bindsym Left resize shrink width 10px + bindsym Down resize grow height 10px + bindsym Up resize shrink height 10px + bindsym Right resize grow width 10px + + # return to default mode + bindsym Return mode "default" + bindsym Escape mode "default" + } + diff --git a/config/sway/config.d/91-swaysome.conf b/config/sway/config.d/91-swaysome.conf new file mode 100644 index 0000000..7f5308f --- /dev/null +++ b/config/sway/config.d/91-swaysome.conf @@ -0,0 +1,52 @@ +# Change focus between workspaces +unbindsym $mod+1 +unbindsym $mod+2 +unbindsym $mod+3 +unbindsym $mod+4 +unbindsym $mod+5 +unbindsym $mod+6 +unbindsym $mod+7 +unbindsym $mod+8 +unbindsym $mod+9 +unbindsym $mod+0 +bindsym $mod+1 exec "swaysome focus 1" +bindsym $mod+2 exec "swaysome focus 2" +bindsym $mod+3 exec "swaysome focus 3" +bindsym $mod+4 exec "swaysome focus 4" +bindsym $mod+5 exec "swaysome focus 5" +bindsym $mod+6 exec "swaysome focus 6" +bindsym $mod+7 exec "swaysome focus 7" +bindsym $mod+8 exec "swaysome focus 8" +bindsym $mod+9 exec "swaysome focus 9" +bindsym $mod+0 exec "swaysome focus 0" + +# Move containers between workspaces +unbindsym $mod+Shift+1 +unbindsym $mod+Shift+2 +unbindsym $mod+Shift+3 +unbindsym $mod+Shift+4 +unbindsym $mod+Shift+5 +unbindsym $mod+Shift+6 +unbindsym $mod+Shift+7 +unbindsym $mod+Shift+8 +unbindsym $mod+Shift+9 +unbindsym $mod+Shift+0 +bindsym $mod+Shift+1 exec "swaysome move 1" +bindsym $mod+Shift+2 exec "swaysome move 2" +bindsym $mod+Shift+3 exec "swaysome move 3" +bindsym $mod+Shift+4 exec "swaysome move 4" +bindsym $mod+Shift+5 exec "swaysome move 5" +bindsym $mod+Shift+6 exec "swaysome move 6" +bindsym $mod+Shift+7 exec "swaysome move 7" +bindsym $mod+Shift+8 exec "swaysome move 8" +bindsym $mod+Shift+9 exec "swaysome move 9" +bindsym $mod+Shift+0 exec "swaysome move 0" + +# Move focused container to next output +bindsym $mod+o exec "swaysome next_output" + +# Move focused container to previous output +bindsym $mod+Shift+o exec "swaysome prev_output" + +# Init workspaces for every screen +exec "swaysome init 1" diff --git a/config/sway/config.d/99-startup.conf b/config/sway/config.d/99-startup.conf new file mode 100644 index 0000000..12814dd --- /dev/null +++ b/config/sway/config.d/99-startup.conf @@ -0,0 +1,3 @@ +exec "/usr/local/bin/keyboard-layout-per-window.py" +exec "systemctl --user start sway-session.target" +exec dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway diff --git a/config/waybar/config b/config/waybar/config index 8b81d45..2bc2738 100644 --- a/config/waybar/config +++ b/config/waybar/config @@ -1,95 +1,90 @@ { - "layer": "top", - "position": "bottom", - "height": 24, - "modules-left": ["sway/workspaces", "idle_inhibitor", "sway/mode"], - "modules-center": ["sway/window"], - "modules-right": [ "pulseaudio", "backlight", "network", "cpu", "memory", "battery#bat0", "battery#bat1", - "tray", "sway/language", "clock" ], - "sway/workspaces": { - "disable-scroll": true, - "all-outputs": true, - "format": "{index} {name}" + "layer": "top", // Waybar at top layer + "position": "bottom", // Waybar position (top|bottom|left|right) + "height": 30, + "modules-left": ["sway/workspaces", "sway/mode", "sway/window"], + "modules-center": [], + "modules-right": ["temperature", "network", "battery", "pulseaudio", "backlight", "cpu", "memory", "custom/layout", "clock", "tray"], + // Module config + "sway/mode": { + "tooltip": true, + "format": "{}" + }, + "temperature": { + "thermal-zone": 1, + "hwmon-path": "/sys/class/hwmon/hwmon2/temp3_input", + "critical-threshold": 80, + "format-critical": "🌡 {temperatureC}°C", + "format": "ī‹‹ {temperatureC}°C" + }, + "custom/vpn": { + }, + "network": { + "tooltip": false, + "interface": "wlp3s0*", + "format-wifi": "ī‡Ģ {essid} ({signalStrength}%)", + "format-ethernet": "{ifname}: {ipaddr}/{cidr}", + "format-linked": "{ifname} (No IP)", + "format-alt": "{ifname}: {ipaddr}", + "format-disconnected": "No internet" + }, + "battery": { + "tooltip": false, + "states": { + "good": 95, + "warning": 30, + "critical": 15 }, - "sway/mode": { - "format": "{}" + "format": "{icon} {capacity}%", + "format-alt": "{time} {icon} {power}", + "format-charging": "ī‡Ļ {capacity}%", + "format-icons": ["đŸĒĢ", "ī‰", "🔋"], + "format-plugged": "ī‡Ļ {capacity}%" + }, + "backlight": { + "device": "amdgpu_bl0", + "format": "{icon} {percent}%", + "format-icons": ["ī„‘", "ī†…"] + }, + "pulseaudio": { + "tooltip": true, + "scroll-step": 1.0, + "format": "{icon} {volume}%", + "format-bluetooth": "ī‚ą {volume}%", + "format-muted": "🔇", + "format-source": "{volume}%", + "format-source-muted": "🔇", + "format-icons": { + "headphones": "🎧", + "handsfree": "🎧", + "headset": "🎧", + "phone": "ī‚•", + "portable": "ī‚•", + "car": "ī†š", + "default": ["🔊"] }, - "sway/language": { - "format": "{}", - "max-length": 50 - }, - "tray": { - // "icon-size": 21, - "spacing": 10 - }, - "clock": { - "tooltip-format": "{:%A\n%d %B %Y\n%H:%M}", - "format": "{:%a %d %b %H:%M}", - "format-alt": "{:%H:%M}" - }, - "cpu": { - "format": "{usage:2}% ī‹›" - }, - "memory": { - "format": "{}% īƒ‰" - }, - "battery#bat0": { - "bat": "BAT0", - "name": "BAT0", - "states": { - "warning": 20, - "critical": 10 - }, - "format": "{capacity}% {icon}", - "format-icons": ["ī‰„", "ī‰ƒ", "ī‰‚", "ī‰", "ī‰€"] - }, - "battery#bat1": { - "bat": "BAT1", - "name": "BAT1", - "states": { - "warning": 20, - "critical": 10 - }, - "format": "{capacity}% {icon}", - "format-icons": ["ī‰„", "ī‰ƒ", "ī‰‚", "ī‰", "ī‰€"] - }, - "network": { - "interval": 1, - "max-width": 50, - // "interface": "wlp2s0", // (Optional) To force the use of this interface - "format-wifi": "ī‡Ģ", - "format-ethernet": "{bandwidthUpBits} {bandwidthDownBits} īƒ", - "format-disconnected": "⚠", - "tooltip-format-wifi": "ī‡Ģ {essid}: {frequency}Mhz ({signalStrength}%)\n{bandwidthUpBits}\n{bandwidthDownBits}", - "tooltip-format-ethernet": "īƒ {ifname}: {ipaddr}/{cidr}", - "tooltip-format-disconnected": "⚠ Disconnected" - }, - "pulseaudio": { - //"scroll-step": 1, - "format": "{volume}% {icon}", - "format-bluetooth": "{volume}% {icon}īŠ”", - "format-muted": "ī€Ļ", - "format-icons": { - "headphones": "ī€Ĩ", - "handsfree": "ī–", - "headset": "ī–", - "phone": "ī‚•", - "portable": "ī‚•", - "car": "ī†š", - "default": ["ī€§", "ī€¨"] - }, - "on-click": "pavucontrol" - }, - "backlight": { - "device": "intel_backlight", - "format": "{percent}% {icon}", - "format-icons": ["ī†…", "ī„‘"] - }, - "idle_inhibitor": { - "format": "{icon}", - "format-icons": { - "activated": "īŽ", - "deactivated": "ī°" - } - } + "on-click": "pavucontrol" + }, + "cpu": { + "interval": 5, + "tooltip": false, + "format": "ī„ˆ {usage}%" + }, + "memory": { + "format": "īƒ‰ {}%" + }, + "custom/layout": { + "exec": "/etc/xdg/waybar/keyboard-layout.py", + "return-type": "json", + "format": "| {}" + }, + "clock": { + "tooltip": false, + "format": "| {:%d.%m.%Y %H:%M}" + }, + "tray": { + "tooltip": false, + "icon-size": 18, + "spacing": 5 + } } diff --git a/config/waybar/keyboard-layout.py b/config/waybar/keyboard-layout.py new file mode 100755 index 0000000..92f132a --- /dev/null +++ b/config/waybar/keyboard-layout.py @@ -0,0 +1,36 @@ +#!/usr/bin/python +import i3ipc +import json + + +long_to_short = { + 'English (US)': 'en', + 'Macedonian': 'mk', +} + +def print_status(keyboard): + layout = keyboard.xkb_active_layout_name + short_code = long_to_short.get(layout, layout) + output = {"text": short_code, "tooltip": layout, "class": short_code} + print(json.dumps(output), flush=True) + +def find_keyboard(sway): + # *the* keyboard is the one with more than one layout + for input_dev in sway.get_inputs(): + if input_dev.type == 'keyboard' and len(input_dev.xkb_layout_names) > 1: + return input_dev + +def on_input(sway, event): + if event.change == "xkb_layout" and \ + event.input.identifier == sway.keyboard.identifier: + print_status(event.input) + +def main(): + sway = i3ipc.Connection() + sway.keyboard = find_keyboard(sway) + print_status(sway.keyboard) + + sway.on(i3ipc.Event.INPUT, on_input) + sway.main() + +main() diff --git a/config/waybar/style.css b/config/waybar/style.css index f9db8d2..1bd9166 100644 --- a/config/waybar/style.css +++ b/config/waybar/style.css @@ -1,14 +1,13 @@ * { border: none; border-radius: 0; - font-family: Roboto, Helvetica, Arial, sans-serif; - font-size: 13px; + font-family: Consolas, "Material Design Icons"; + font-size: 1em; min-height: 0; } window#waybar { - background-color: rgba(43, 48, 59, 0.5); - border-bottom: 3px solid rgba(100, 114, 125, 0.5); + background-color: rgba(11, 11, 11, 0.8); color: #ffffff; transition-property: background-color; transition-duration: .5s; @@ -18,6 +17,20 @@ window#waybar.hidden { opacity: 0.2; } +#window { + padding: 0 15px; +} + +window { + color: rgba(217, 216, 216, 1); + background: rgba(35, 31, 32, 0.00); +} + +window#waybar.solo { + color: rgba(217, 216, 216, 1); + background: rgba(35, 31, 32, 0.85); +} + /* window#waybar.empty { background-color: transparent; @@ -27,187 +40,84 @@ window#waybar.solo { } */ -window#waybar.termite { - background-color: #3F3F3F; -} - -window#waybar.chromium { - background-color: #000000; - border: none; -} - +/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */ #workspaces button { padding: 0 5px; background-color: transparent; - color: #ffffff; - border-bottom: 3px solid transparent; -} - -/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */ -#workspaces button:hover { - background: rgba(0, 0, 0, 0.2); - box-shadow: inherit; - border-bottom: 3px solid #ffffff; + border-bottom: 2px solid rgba(180, 14, 25, 0.5); + color: #999999; } #workspaces button.focused { - background-color: #64727D; - border-bottom: 3px solid #ffffff; + color: #ffffff; + background-color: #333333; + border-bottom: 2px solid #ff9600; } #workspaces button.urgent { background-color: #eb4d4b; } -#mode { - background-color: #64727D; - border-bottom: 3px solid #ffffff; -} - +#clock, +#custom-vpn, +#battery, #cpu, #memory, -#temperature, #backlight, #network, #pulseaudio, -#custom-media, #tray, +#temperature, #mode, #idle_inhibitor { - padding: 0 10px; + padding: 0 5px; margin: 0 4px; + background-color: transparent; + border-bottom: 2px solid #bdbd45; color: #ffffff; } -#clock { - padding: 0 10px; - color: #ffffff; - background-color: #64727D; +#temperature { + border-bottom: 2px solid #42a832; +} +#mode { + background-color: #00ff96; + color: #000000; } -#battery .BAT0 { - margin-left: 9px; -} -#battery .BAT1 { - margin-right: 9px; +#pulseaudio, +#clock, +#tray, +#cpu { + border-bottom: transparent; } + #battery { - padding: 0 10px; - background-color: #ffffff; - color: #000000; + border-bottom: 2px solid #bff874; } #battery.charging { - color: #ffffff; - background-color: #26A65B; -} - -@keyframes blink { - to { - background-color: #ffffff; - color: #000000; - } + border-bottom: 2px solid #00ff96; } +#custom-vpn.down, +#temperature.critical, #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; + border-bottom: 2px solid #dd2241; } label:focus { background-color: #000000; } -#cpu { - background-color: #2ecc71; - color: #000000; -} - -#memory { - background-color: #9b59b6; -} - -#backlight { - background-color: #90b1b1; -} - -#network { - background-color: #2980b9; -} - #network.disconnected { - background-color: #f53c3c; + border-bottom: 2px solid #dd2241; } -#pulseaudio { - background-color: #f1c40f; - color: #000000; +#pulseaudio.bluetooth { + border-bottom: 2px solid #1a8cff; } #pulseaudio.muted { - background-color: #90b1b1; - color: #2a5c45; + border-bottom: 2px solid #fff569; } - -#custom-media { - background-color: #66cc99; - color: #2a5c45; - min-width: 100px; -} - -#custom-media.custom-spotify { - background-color: #66cc99; -} - -#custom-media.custom-vlc { - background-color: #ffa000; -} - -#temperature { - background-color: #f0932b; -} - -#temperature.critical { - background-color: #eb4d4b; -} - -#tray { - background-color: #2980b9; -} - -#idle_inhibitor { - background-color: #2d3436; -} - -#idle_inhibitor.activated { - background-color: #ecf0f1; - color: #2d3436; -} - -#mpd { - background-color: #66cc99; - color: #2a5c45; -} - -#mpd.disconnected { - background-color: #f53c3c; -} - -#mpd.stopped { - background-color: #90b1b1; -} - -#mpd.paused { - background-color: #51a37a; -} -#custom-layout { - background-color: #ecf0f1; - color: #2d3436; - min-width: 2em; -} - diff --git a/x13-gen1-sway-desktop.yaml b/x13-gen1-sway-desktop.yaml index c96cf14..4c37db3 100644 --- a/x13-gen1-sway-desktop.yaml +++ b/x13-gen1-sway-desktop.yaml @@ -356,4 +356,16 @@ add-files: - ["config/modprobe.d/i2c_i801-blacklist.conf", "/etc/modprobe.d/i2c_i801-blacklist.conf"] - ["config/environment.d/wayland.conf", "/etc/environment.d/wayland.conf"] - ["config/greetd/config.toml", "/etc/greetd/config.toml"] - - ["config/greetd/environments", "/etc/greetd/environments"] + - ["config/sway/config", "/etc/sway/config"] + - ["config/sway/config.d/10-variables.conf", "/etc/sway/config.d/10-variables.conf"] + - ["config/sway/config.d/20-output.conf", "/etc/sway/config.d/20-output.conf"] + - ["config/sway/config.d/30-input.conf", "/etc/sway/config.d/30-input.conf"] + - ["config/sway/config.d/50-style.conf", "/etc/sway/config.d/50-style.conf"] + - ["config/sway/config.d/60-app-windows.conf", "/etc/sway/config.d/60-app-windows.conf"] + - ["config/sway/config.d/90-bindings.conf", "/etc/sway/config.d/90-bindings.conf"] + - ["config/sway/config.d/91-swaysome.conf", "/etc/sway/config.d/91-swaysome.conf"] + - ["config/sway/config.d/99-startup.conf", "/etc/sway/config.d/99-startup.conf"] + - ["config/sway/bin/keyboard-layout-per-window.py", "/usr/bin/keyboard-layout-per-window.py"] + - ["config/waybar/config", "/etc/xdg/waybar/config"] + - ["config/waybar/style.css", "/etc/xdg/waybar/style.css"] + - ["config/waybar/keyboard-layout.py", "/etc/xdg/waybar/keyboard-layout.py"]