1
0
mirror of https://github.com/tiyn/dotfiles.git synced 2025-04-28 20:47:46 +02:00

wayland: preliminary migration done

This commit is contained in:
tiyn 2025-04-09 02:31:49 +02:00
parent 45bfcbf68e
commit 170020a287
9 changed files with 473 additions and 19 deletions
.config
.local/bin/etc
.profile

1
.config/swaylock/config Normal file

@ -0,0 +1 @@
image=~/.local/share/lock

86
.config/swhkd/swhkdrc Normal file

@ -0,0 +1,86 @@
super + b
$BROWSER
super + m
thunderbird
super + u
record_stop
super + i
record_start
super + o
record_replay_start
super + p
record_replay_save
super + a
lmc previous
super + s
lmc playpause
super + d
lmc next
super + c
lmc loop
super + x
lmc shuffle
super + bracketright
lmc mute_toggle
super + backslash
lmc deaf_toggle
super + apostrophe
lmc tap_toggle
super + bracketleft
dnd toggle
super + shift + b
killall -SIGUSR1 waybar
super + shift + r
pkill -HUP swhkd ; notify-send -u low 'SWHKD' 'Reloaded hotkeys'
super + shift + space
dunstctl close-all
super + F7
mount_menu
super + F8
umount_menu
super + F9
systemctl restart NetworkManager ; notify-send -u low 'Network' 'Restartet NM'
super + F10
prompt "Lock computer?" "swaylock -i ~/.local/share/lock"
super + shift + F10
prompt "Hibernate computer?" "systemctl hibernate"
super + F11
prompt "Shutdown computer?" "shutdown -h now"
super + F12
prompt "Reboot computer?" "reboot now"
Print
screenshot
XF86AudioMute
lmc deaf_toggle
XF86AudioLowerVolume
lmc down
XF86AudioRaiseVolume
lmc up

@ -0,0 +1,84 @@
{
"layer": "bottom", // Waybar at top layer
"position": "top", // Waybar position (top|bottom|left|right)
"height": 5, // Waybar height (to be removed for auto height)
// "width": 1280, // Waybar width
// Choose the order of the modules
"modules-left": ["dwl/tags", "dwl/window"],
"modules-right": ["cpu", "memory", "pulseaudio#output", "pulseaudio#input", "network", "battery", "clock", "tray"],
// Modules configuration
// "sway/workspaces": {
// "disable-scroll": true,
// "all-outputs": true,
// "format": "{name}: {icon}",
// "format-icons": {
// "1": "",
// "2": "",
// "3": "",
// "4": "",
// "5": "",
// "urgent": "",
// "focused": "",
// "default": ""
// }
// },
"dwl/tags": {
"tag-labels": [ "", "", "", "", "", "", "", "", "", "" ]
},
"dwl/window": {
"format": "{layout} {title}"
},
"tray": {
"icon-size": 20,
"spacing": 10
},
"clock": {
"format": " {:%d %b %I:%M}"
},
"battery": {
"states": {
"good": 75,
"warning": 25,
"critical": 15
},
"format": "{icon}",
"format-icons": {
"default": ["<span color=\"#f00\"></span>", "<span color=\"#ff0\"></span>", "", "", ""],
"charging": ["<span color=\"#f00\"></span>", "<span color=\"#ff0\"></span>", "", "", ""]
}
// "format-charging": "{capacity}%",
// "format-plugged": "{capacity}%",
// "format-alt": "{time} ",
// "format-good": "", // An empty format will hide the module
// "format-full": "",
},
"network": {
// "interface": "wlp2*", // (Optional) To force the use of this interface
"format-wifi": "{icon}",
"format-ethernet": "󰈀",
"format-disconnected": "<span color=\"#f00\"></span>",
"format-icons": [ "" ]
},
"pulseaudio#output": {
// "scroll-step": 1, // %, can be a float
"format-source": "",
"format-source-muted": "<span color=\"#f00\"></span>",
"format": "{format_source}"
},
"pulseaudio#input": {
// "scroll-step": 1, // %, can be a float
"format": "{icon}",
"format-muted": "<span color=\"#f00\"></span>",
"format-bluetooth": "{format_source}",
"format-icons": [ "<span color=\"#f00\"></span>", "", "", ""]
},
//disk-usage, gpu
"cpu": {
"format": "",
"tooltip": true
},
"memory": {
"format": ""
}
}

238
.config/waybar/style.css Normal file

@ -0,0 +1,238 @@
* {
border: none;
border-radius: 4px;
/* `ttf-font-awesome` is required to be installed for icons */
font-family: Mono, Helvetica, Arial, sans-serif;
/* adjust font-size value to your liking: */
font-size: 15px;
min-height: 0;
}
window#waybar {
background-color: rgba(0, 0, 0, 1);
/* border-bottom: 3px solid rgba(100, 114, 125, 0.5); */
color: #ffffff;
/* transition-property: background-color; */
/* transition-duration: .5s; */
/* border-radius: 0; */
}
/* window#waybar.hidden {
opacity: 0.2;
} */
/*
window#waybar.empty {
background-color: transparent;
}
window#waybar.solo {
background-color: #FFFFFF;
}
*/
/* window#waybar.termite {
background-color: #000000;
}
window#waybar.chromium {
background-color: #000000;
border: none;
} */
#tags button {
/* padding: 0 0.4em; */
/* background-color: transparent; */
color: #ffffff;
/* Use box-shadow instead of border so the text isn't offset */
box-shadow: inset 0 -3px transparent;
}
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
#tags button:hover {
background: rgba(0, 0, 0, 0.9);
/* box-shadow: inset 0 -3px #ffffff; */
}
#tags button.occupied {
/* background-color: #282828; */
box-shadow: inset 0 -3px #ffffff;
}
#tags button.focused {
background-color: #555a63;
/* box-shadow: inset 0 -3px #ffffff; */
}
#tags button.urgent {
background-color: #eb4d4b;
}
#mode {
background-color: #64727D;
/* border-bottom: 3px solid #ffffff; */
}
#clock,
#battery,
#cpu,
#memory,
#temperature,
#backlight,
#network,
#pulseaudio,
#custom-media,
#tray,
#mode,
#idle_inhibitor,
#mpd {
padding: 0 10px;
margin: 6px 3px;
color: #000000;
}
#window,
#tags {
margin: 0 4px;
}
/* If workspaces is the leftmost module, omit left margin */
.modules-left > widget:first-child > #tags {
margin-left: 0;
}
/* If workspaces is the rightmost module, omit right margin */
.modules-right > widget:last-child > #tags {
margin-right: 0;
}
#clock {
background-color: #000000;
color: white;
}
#battery {
background-color: #000000;
color: white;
}
#battery.charging {
color: #ffffff;
background-color: #000000;
}
@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: #000000;
color: #ffffff;
}
#memory {
background-color: #000000;
color: white;
}
#backlight {
background-color: #000000;
color:white;
}
#network {
background-color: #000000;
color:white;
}
#network.disconnected {
background-color: #000000;
}
#pulseaudio {
background-color: #000000;
color: #ffffff;
}
#pulseaudio.muted {
background-color: #000000;
color: #ffffff;
}
#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: #000000;
}
#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: #bbccdd;
color: #333333;
padding: 0 5px;
margin: 6px 3px;
min-width: 16px;
}

22
.config/wayland/wayland.conf Executable file

@ -0,0 +1,22 @@
#!/bin/sh
$STATUSBAR & # use environment variable
unclutter & # hide cursor
xss-lock -- swaylock & # enable locking the screen upon sleep
swaybg -i ~/.local/share/bg &
dunst &
dunstctl rule dnd_low disable &
dunstctl rule dnd_normal disable &
swhks && swhkd &
pavucontrol &
easyeffects --gapplication-service &
nextcloud &
keepassxc &
zen-browser &
discord &
signal-desktop &
# monitor toggle &
# touchpad off &
# xset r rate 300 50 & # Speed xrate up
# redshift & # redshift for saving your eyes

@ -5,13 +5,18 @@ audio_2=${CAPTURE_OUTPUT_AUDIO:-easyeffects_source}
output=${CAPTURE_DIR:-$HOME/downloads}
device=${CAPTURE_DEVICE:-cpu}
window=$(xdotool getwindowfocus)
fps=60
format="mp4"
v_codec="h264"
a_codec="opus"
lenght=20
if [ $DISPLAY_SERVER = "wayland" ]; then
window="screen"
elif [ $DISPLAY_SERVER = "xorg" ]; then
window=$(xdotool getwindowfocus)
fi
gpu-screen-recorder -encoder $device -w $window -f $fps -a $audio_1 -a $audio_2 -c $format -k $v_codec -ac $a_codec -r $lenght -o $output &
# gpu-screen-recorder -encoder $device -w screen -f $fps -a $audio_1 -a $audio_2 -c $format -k $v_codec -ac $a_codec -r $lenght -o $output & # wayland command
notify-send -u low 'Screen record' 'Replay started'

@ -5,13 +5,17 @@ audio_2=${CAPTURE_OUTPUT_AUDIO:-easyeffects_source}
output=${CAPTURE_DIR:-$HOME/downloads}
device=${CAPTURE_DEVICE:-cpu}
window=$(xdotool getwindowfocus)
fps=30
format="mp4"
v_codec="h264"
a_codec="aac"
output="$output/recording-$(date '+%Y-%m-%d_%H-%M-%S').$format"
if [ $DISPLAY_SERVER = "wayland" ]; then
window="screen"
elif [ $DISPLAY_SERVER = "xorg" ]; then
window=$(xdotool getwindowfocus)
fi
gpu-screen-recorder -encoder $device -w $window -c $format -k $v_codec -ac $a_codec -f $fps -o $output &
# gpu-screen-recorder -encoder $device -w screen -c $format -k $v_codec -ac $a_codec -f $fps -o $output & # wayland command
notify-send -u low 'Screen record' 'Recording started'

@ -9,12 +9,21 @@ output="$output/screenshot-$(date '+%Y-%m-%d_%H-%M-%S').png"
xclip_img="xclip -sel clip -t image/png"
xclip_txt="xclip -sel clip -t text/plain"
case "$(printf "a selected area\\na selected area (copy)\\ncurrent window\\ncurrent window (copy)\\nfull screen\\nfull screen (copy)\\ncolor picker (copy)" | dmenu -l 6 -i -p "Screenshot which area?")" in
"a selected area") maim -s --hidecursor $output ;;
"a selected area (copy)") maim -s --hidecursor | ${xclip_img} ;;
"current window") maim -i "$(xdotool getactivewindow)" $output ;;
"current window (copy)") maim -i "$(xdotool getactivewindow)" | ${xclip_img} ;;
"full screen") maim $output ;;
"full screen (copy)") maim | ${xclip_img} ;;
"color picker (copy)") xcolor |tr -d '\n' | ${xclip_txt} ;;
esac
if [ $DISPLAY_SERVER = "wayland" ]; then
case "$(printf "a selected area\\na selected area (copy)\\nfull screen\\nfull screen (copy)" | dmenu -l 6 -i -p "Screenshot which area?")" in
"a selected area") grim -g "$(slurp)" $output ;;
"a selected area (copy)") grim -g "$(slurp)" - | wl-copy ;;
"full screen") grim $output ;;
"full screen (copy)") grim - | wl-copy ;;
esac
elif [ $DISPLAY_SERVER = "xorg" ]; then
case "$(printf "a selected area\\na selected area (copy)\\ncurrent window\\ncurrent window (copy)\\nfull screen\\nfull screen (copy)\\ncolor picker (copy)" | dmenu -l 6 -i -p "Screenshot which area?")" in
"a selected area") maim -s --hidecursor $output ;;
"a selected area (copy)") maim -s --hidecursor | ${xclip_img} ;;
"current window") maim -i "$(xdotool getactivewindow)" $output ;;
"current window (copy)") maim -i "$(xdotool getactivewindow)" | ${xclip_img} ;;
"full screen") maim $output ;;
"full screen (copy)") maim | ${xclip_img} ;;
"color picker (copy)") xcolor |tr -d '\n' | ${xclip_txt} ;;
esac
fi

@ -1,6 +1,9 @@
#!/bin/sh
# Profile file. Runs on login.
# sets default display server (can be overwritten in ~/.config/profile/local_profile)
export DISPLAY_SERVER="xorg"
# Adds `~/.local/bin` and all subdirectories to $PATH
export PATH="${PATH}:$(du "${HOME}/.local/bin/" | cut -f2 | tr '\n' ':' | sed 's/:*$//')"
@ -13,7 +16,6 @@ export EDITOR="nvim"
export FILE="vifmrun"
export IMAGE="sxiv"
export READER="zathura"
export STATUSBAR="dwmblocks"
export TERMINAL="st"
export QT_QPA_PLATFORMTHEME="qt6ct"
@ -83,8 +85,11 @@ echo "$0" | grep "zsh$" >/dev/null && [ -f ${ZDOTDIR}/.zshrc ] && source "${ZDOT
# load optional variables
[ -f ~/.config/profile/local_profile ] && source "${HOME}/.config/profile/local_profile"
# Start graphical server if not already running.
[ "$(tty)" = "/dev/tty1" ] && ! pgrep -x Xorg >/dev/null && exec startx
# start wayland using dwl
# dwl -s ~/.config/wayland/wayland.conf
# Start graphical server based on set display server
if [ $DISPLAY_SERVER = "wayland" ]; then
export STATUSBAR="waybar"
dwl -s ~/.config/wayland/wayland.conf
elif [ $DISPLAY_SERVER = "xorg" ]; then
export STATUSBAR="dwmblocks"
[ "$(tty)" = "/dev/tty1" ] && ! pgrep -x Xorg >/dev/null && exec startx
fi