From 6ce3c585324d63ed93bb11a1e06c1c9d91ecb026 Mon Sep 17 00:00:00 2001 From: Tobias Sachs Date: Fri, 28 Apr 2023 18:03:51 +0200 Subject: [PATCH] sway and stuff.. --- install/ui | 4 +- stow/bin/.bin/sensible-terminal.sh | 2 +- stow/i3/.config/i3/config | 35 ++-- stow/waybar/.config/waybar/config | 167 ++++++++++++++++ stow/waybar/.config/waybar/style.css | 280 +++++++++++++++++++++++++++ 5 files changed, 471 insertions(+), 17 deletions(-) create mode 100644 stow/waybar/.config/waybar/config create mode 100644 stow/waybar/.config/waybar/style.css diff --git a/install/ui b/install/ui index cf5bff8..6e9ecc7 100644 --- a/install/ui +++ b/install/ui @@ -1,6 +1,8 @@ dmenu dunst -i3 +sway +alacritty +waybar network-manager-gnome pasystray xfce4-power-manager diff --git a/stow/bin/.bin/sensible-terminal.sh b/stow/bin/.bin/sensible-terminal.sh index 74c4605..c2a143c 100755 --- a/stow/bin/.bin/sensible-terminal.sh +++ b/stow/bin/.bin/sensible-terminal.sh @@ -2,7 +2,7 @@ # # copied from /usr/bin/i3-sensible-terminal and modified for my needs # -for terminal in urxvt xfce4-terminal lxterminal terminator x-terminal-emulator konsole gnome-terminal rxvt termit Eterm aterm uxterm xterm roxterm termite terminology st qterminal lilyterm tilix terminix kitty guake tilda alacritty hyper; do +for terminal in alacritty urxvt xfce4-terminal lxterminal terminator x-terminal-emulator konsole gnome-terminal rxvt termit Eterm aterm uxterm xterm roxterm termite terminology st qterminal lilyterm tilix terminix kitty guake tilda hyper; do if command -v "$terminal" > /dev/null 2>&1; then if command -v "$terminal" > /dev/null 2>&1; then notify-send -t 300 "$0 exec '$terminal'" diff --git a/stow/i3/.config/i3/config b/stow/i3/.config/i3/config index a398b95..087aa23 100644 --- a/stow/i3/.config/i3/config +++ b/stow/i3/.config/i3/config @@ -29,17 +29,16 @@ bindsym $mod+Control+l exec --no-startup-id i3lock # NetworkManager is the most popular way to manage wireless networks on Linux, # and nm-applet is a desktop environment-independent system tray GUI for it. +exec waybar exec dunst -exec --no-startup-id nm-applet -exec --no-startup-id /usr/bin/pasystray +#exec --no-startup-id /usr/bin/pasystray exec --no-startup-id ~/.bin/touchpad.sh -exec --no-startup-id /usr/bin/xfce4-power-manager -exec --no-startup-id /usr/bin/firefox +#exec --no-startup-id /usr/bin/xfce4-power-manager +exec --no-startup-id firefox # exec --no-startup-id /usr/bin/x2goclient exec --no-startup-id "sleep 10; /usr/bin/nextcloud" exec --no-startup-id "sleep 12; /usr/bin/pass git pull" exec --no-startup-id nitrogen --set-zoom-fill --random ~/.walls/ -exec --no-startup-id "/usr/bin/setxkbmap -option grp:alt_shift_toggle us,de" default_border pixel 6 default_floating_border pixel 6 @@ -59,7 +58,7 @@ floating_modifier $mod bindsym $mod+Return exec ~/.bin/sensible-terminal.sh bindsym $mod+Shift+d exec /usr/bin/dolphin bindsym $mod+Shift+f exec firefox -bindsym $mod+space exec "DISPLAY=:0 setxkbmap -query | grep 'layout:.*us' && setxkbmap de || setxkbmap us" +#bindsym $mod+space exec "DISPLAY=:0 setxkbmap -query | grep 'layout:.*us' && setxkbmap de || setxkbmap us" # start a terminal # use hefault and hope for the best. ... # bindsym $mod+Return exec /usr/bin/gnome-terminal @@ -168,6 +167,7 @@ bindsym $mod+Shift+0 move container to workspace number $ws10 bindsym $mod+Shift+c reload # restart i3 inplace (preserves your layout/session, can be used to upgrade i3) bindsym $mod+Shift+r restart + # exit i3 (logs you out of your X session) bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'" bindsym $mod+Shift+Control+e exec "shutdown -h now" @@ -175,24 +175,24 @@ bindsym $mod+Shift+Control+e exec "shutdown -h now" mode "resize" { - # These bindings trigger as soon as you enter the resize mode +# These bindings trigger as soon as you enter the resize mode - # Pressing left will shrink the window’s width. - # Pressing right will grow the window’s width. - # Pressing up will shrink the window’s height. - # Pressing down will grow the window’s height. - bindsym h resize shrink width 10 px or 10 ppt +# Pressing left will shrink the window’s width. +# Pressing right will grow the window’s width. +# Pressing up will shrink the window’s height. +# Pressing down will grow the window’s height. + bindsym h resize shrink width 10 px or 10 ppt bindsym j resize grow height 10 px or 10 ppt bindsym k resize shrink height 10 px or 10 ppt bindsym l resize grow width 10 px or 10 ppt - # same bindings, but for the arrow keys +# same bindings, but for the arrow keys bindsym Left resize shrink width 10 px or 10 ppt bindsym Down resize grow height 10 px or 10 ppt bindsym Up resize shrink height 10 px or 10 ppt bindsym Right resize grow width 10 px or 10 ppt - # back to normal: Enter or Escape or $mod+r +# back to normal: Enter or Escape or $mod+r bindsym Return mode "default" bindsym Escape mode "default" bindsym $mod+r mode "default" @@ -203,7 +203,7 @@ bindsym $mod+r mode "resize" # Start i3bar to display a workspace bar (plus the system information i3status # finds out, if available) bar { - status_command ~/.bin/i3status.sh +#status_command ~/.bin/i3status.sh # status_command i3status } @@ -249,3 +249,8 @@ client.background #1b1b1b #353535 #f0f0f0 #9FA0FF for_window [window_role="About"] floating enable for_window [class="vlc"] floating enable + +input type:keyboard { + xkb_layout us,de + xkb_options grp:win_space_toggle +} diff --git a/stow/waybar/.config/waybar/config b/stow/waybar/.config/waybar/config new file mode 100644 index 0000000..0227d00 --- /dev/null +++ b/stow/waybar/.config/waybar/config @@ -0,0 +1,167 @@ +{ + // "layer": "top", // Waybar at top layer + "position": "bottom", // Waybar position (top|bottom|left|right) + "height": 30, // Waybar height (to be removed for auto height) + // "width": 1280, // Waybar width + "spacing": 4, // Gaps between modules (4px) + // Choose the order of the modules + "modules-left": ["sway/workspaces", "sway/mode", "sway/scratchpad", "custom/media"], + "modules-center": ["sway/window"], + //"modules-right": ["mpd", "idle_inhibitor", "pulseaudio", "network", "cpu", "memory", "temperature", "backlight", "keyboard-state", "sway/language", "battery", "battery#bat2", "clock", "tray"], + "modules-right": ["idle_inhibitor", "pulseaudio", "network", "cpu", "memory", "temperature", "backlight", "keyboard-state", "sway/language", "battery", "battery#bat2", "tray", "clock"], + // Modules configuration + // "sway/workspaces": { + // "disable-scroll": true, + // "all-outputs": true, + // "format": "{name}: {icon}", + // "format-icons": { + // "1": "", + // "2": "", + // "3": "", + // "4": "", + // "5": "", + // "urgent": "", + // "focused": "", + // "default": "" + // } + // }, + "keyboard-state": { + "numlock": true, + "capslock": true, + "format": "{name} {icon}", + "format-icons": { + "locked": "", + "unlocked": "" + } + }, + "sway/mode": { + "format": "{}" + }, + "sway/scratchpad": { + "format": "{icon} {count}", + "show-empty": false, + "format-icons": ["", ""], + "tooltip": true, + "tooltip-format": "{app}: {title}" + }, + "mpd": { + "format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ {volume}% ", + "format-disconnected": "Disconnected ", + "format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ", + "unknown-tag": "N/A", + "interval": 2, + "consume-icons": { + "on": " " + }, + "random-icons": { + "off": " ", + "on": " " + }, + "repeat-icons": { + "on": " " + }, + "single-icons": { + "on": "1 " + }, + "state-icons": { + "paused": "", + "playing": "" + }, + "tooltip-format": "MPD (connected)", + "tooltip-format-disconnected": "MPD (disconnected)" + }, + "idle_inhibitor": { + "format": "{icon}", + "format-icons": { + "activated": "", + "deactivated": "" + } + }, + "tray": { + // "icon-size": 21, + "spacing": 10 + }, + "clock": { + // "timezone": "America/New_York", + "tooltip-format": "{:%Y %B}\n{calendar}", + "format-alt": "{:%Y-%m-%d}" + }, + "cpu": { + "format": "{usage}% ", + "tooltip": false + }, + "memory": { + "format": "{}% " + }, + "temperature": { + // "thermal-zone": 2, + // "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input", + "critical-threshold": 80, + // "format-critical": "{temperatureC}°C {icon}", + "format": "{temperatureC}°C {icon}", + "format-icons": ["", "", ""] + }, + "backlight": { + // "device": "acpi_video1", + "format": "{percent}% {icon}", + "format-icons": ["", "", "", "", "", "", "", "", ""] + }, + "battery": { + "states": { + // "good": 95, + "warning": 30, + "critical": 15 + }, + "format": "{capacity}% {icon}", + "format-charging": "{capacity}% ", + "format-plugged": "{capacity}% ", + "format-alt": "{time} {icon}", + // "format-good": "", // An empty format will hide the module + // "format-full": "", + "format-icons": ["", "", "", "", ""] + }, + "battery#bat2": { + "bat": "BAT2" + }, + "network": { + // "interface": "wlp2*", // (Optional) To force the use of this interface + "format-wifi": "{essid} ({signalStrength}%) ", + "format-ethernet": "{ipaddr}/{cidr} ", + "tooltip-format": "{ifname} via {gwaddr} ", + "format-linked": "{ifname} (No IP) ", + "format-disconnected": "Disconnected ⚠", + "format-alt": "{ifname}: {ipaddr}/{cidr}" + }, + "pulseaudio": { + // "scroll-step": 1, // %, can be a float + "format": "{volume}% {icon} {format_source}", + "format-bluetooth": "{volume}% {icon} {format_source}", + "format-bluetooth-muted": " {icon} {format_source}", + "format-muted": " {format_source}", + "format-source": "{volume}% ", + "format-source-muted": "", + "format-icons": { + "headphone": "", + "hands-free": "", + "headset": "", + "phone": "", + "portable": "", + "car": "", + "default": ["", "", ""] + }, + "on-click": "pavucontrol" + }, + "custom/media": { + "format": "{icon} {}", + "return-type": "json", + "max-length": 40, + "format-icons": { + "spotify": "", + "default": "🎜" + }, + "escape": true, + "exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder + // "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name + } +} + diff --git a/stow/waybar/.config/waybar/style.css b/stow/waybar/.config/waybar/style.css new file mode 100644 index 0000000..c13cbcc --- /dev/null +++ b/stow/waybar/.config/waybar/style.css @@ -0,0 +1,280 @@ +* { + /* `otf-font-awesome` is required to be installed for icons */ + font-family: FontAwesome, Roboto, Helvetica, Arial, sans-serif; + font-size: 13px; +} + +window#waybar { + background-color: rgba(43, 48, 59, 0.5); + border-bottom: 3px solid rgba(100, 114, 125, 0.5); + color: #ffffff; + transition-property: background-color; + transition-duration: .5s; +} + +window#waybar.hidden { + opacity: 0.2; +} + +/* +window#waybar.empty { + background-color: transparent; +} +window#waybar.solo { + background-color: #FFFFFF; +} +*/ + +window#waybar.termite { + background-color: #3F3F3F; +} + +window#waybar.chromium { + background-color: #000000; + border: none; +} + +button { + /* Use box-shadow instead of border so the text isn't offset */ + box-shadow: inset 0 -3px transparent; + /* Avoid rounded borders under each button name */ + border: none; + border-radius: 0; +} + +/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */ +button:hover { + background: inherit; + box-shadow: inset 0 -3px #ffffff; +} + +#workspaces button { + padding: 0 5px; + background-color: transparent; + color: #ffffff; +} + +#workspaces button:hover { + background: rgba(0, 0, 0, 0.2); +} + +#workspaces button.focused { + background-color: #64727D; + box-shadow: inset 0 -3px #ffffff; +} + +#workspaces button.urgent { + background-color: #eb4d4b; +} + +#mode { + background-color: #64727D; + border-bottom: 3px solid #ffffff; +} + +#clock, +#battery, +#cpu, +#memory, +#disk, +#temperature, +#backlight, +#network, +#pulseaudio, +#wireplumber, +#custom-media, +#tray, +#mode, +#idle_inhibitor, +#scratchpad, +#mpd { + padding: 0 10px; + color: #ffffff; +} + +#window, +#workspaces { + margin: 0 4px; +} + +/* 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; +} + +#clock { + background-color: #64727D; +} + +#battery { + background-color: #ffffff; + color: #000000; +} + +#battery.charging, #battery.plugged { + color: #ffffff; + background-color: #26A65B; +} + +@keyframes blink { + to { + background-color: #ffffff; + color: #000000; + } +} + +#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; +} + +label:focus { + background-color: #000000; +} + +#cpu { + background-color: #2ecc71; + color: #000000; +} + +#memory { + background-color: #9b59b6; +} + +#disk { + background-color: #964B00; +} + +#backlight { + background-color: #90b1b1; +} + +#network { + background-color: #2980b9; +} + +#network.disconnected { + background-color: #f53c3c; +} + +#pulseaudio { + background-color: #f1c40f; + color: #000000; +} + +#pulseaudio.muted { + background-color: #90b1b1; + color: #2a5c45; +} + +#wireplumber { + background-color: #fff0f5; + color: #000000; +} + +#wireplumber.muted { + background-color: #f53c3c; +} + +#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: #ff00ff; +} + +#tray > .passive { + -gtk-icon-effect: dim; +} + +#tray > .needs-attention { + -gtk-icon-effect: highlight; + background-color: #eb4d4b; +} + +#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; +} + +#language { + background: #00b093; + color: #740864; + padding: 0 5px; + margin: 0 5px; + min-width: 16px; +} + +#keyboard-state { + background: #97e1ad; + color: #000000; + padding: 0 0px; + margin: 0 5px; + min-width: 16px; +} + +#keyboard-state > label { + padding: 0 5px; +} + +#keyboard-state > label.locked { + background: rgba(0, 0, 0, 0.2); +} + +#scratchpad { + background: rgba(0, 0, 0, 0.2); +} + +#scratchpad.empty { + background-color: transparent; +} -- 2.39.2