Compare commits

...

4 Commits

Author SHA1 Message Date
Thomas Avé 6557a6d94e Update Hyprland config 2023-12-02 00:04:40 +01:00
Thomas Avé 2f0c0617d8 Add awesome full-screen 2023-12-02 00:04:32 +01:00
Thomas Avé 79609ea132 Add Waybar 2023-12-02 00:04:22 +01:00
Thomas Avé 9c779766b7 Add HyprLand config 2023-12-02 00:04:13 +01:00
6 changed files with 404 additions and 8 deletions

View File

@ -258,13 +258,6 @@ keys.globalkeys = gears.table.join(
{description = "-10%", group = "hotkeys"}
),
-- Brightness
awful.key({ }, "XF86MonBrightnessDown", function ()
awful.spawn("xbacklight -dec 15") end),
awful.key({ }, "XF86MonBrightnessUp", function ()
awful.spawn("xbacklight -inc 15") end),
-- ALSA volume control
awful.key({}, "XF86AudioRaiseVolume",
function()
@ -665,6 +658,15 @@ keys.clientkeys = gears.table.join(
c:raise()
end,
{description = "(un)maximize", group = "client"}
),
-- Full Screen
awful.key({modkey}, "F11",
function(c)
c.fullscreen = not c.fullscreen
c:raise()
end,
{description = "(un)fullscreen", group = "client"}
)
)

View File

@ -8,10 +8,20 @@ CHILD_PID=$(pgrep -P $1)
GRAND_CHILD_PID=$(pgrep -P $CHILD_PID)
[[ $? == 0 ]] && [[ $(ps -p $GRAND_CHILD_PID -o comm=) == "ssh" ]] && RUNNING_SSH=true && CHILD_PID=$GRAND_CHILD_PID
if [ $RUNNING_SSH == true ]; then
CLIENT=$(ps -p $CHILD_PID -o args --no-headers | awk '{ print $2 }')
PORT=$(ss -tnpa | grep ssh | grep "pid=$CHILD_PID" | awk '{ print $4 }' | grep -o '[0-9]*$')
alacritty -e ssh $CLIENT -t "cd \"\$(readlink -e /proc/\$(cat /tmp/ssh_session_$PORT)/cwd)\"; zsh --login"
else
alacritty --working-directory "$(readlink -e /proc/$CHILD_PID/cwd)"
if [ $(ps -p $1 -o comm=) == "alacritty" ]; then
CWD=$(readlink -e /proc/$CHILD_PID/cwd)
if [ $CWD != "" ]; then
alacritty --working-directory "$CWD"
else
alacritty
fi
else
alacritty
fi
fi

144
hypr/hyprland.conf Normal file
View File

@ -0,0 +1,144 @@
exec-once=hyprpaper
env = WLR_DRM_DEVICES,/dev/dri/card0:/dev/dri/card1
monitor=,preferred,auto,1
exec-once=waybar
exec-once=sudo wg-quick up wg0
exec-once=sleep 0.7 && swaylock
input {
kb_layout = us
follow_mouse = 1
kb_options = compose:rctrl
}
general {
gaps_in = 1
gaps_out = 5
border_size = 2
col.active_border = rgba(002f5fee)
col.inactive_border = rgba(ffffff00)
layout = dwindle
}
xwayland {
force_zero_scaling = true
}
misc {
disable_hyprland_logo = 1
}
decoration {
rounding = 1
blur {
enabled = false
}
}
animations {
enabled = yes
# Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
animation = windows, 1, 2, myBezier
animation = windowsOut, 1, 2, default, popin 80%
animation = border, 1, 2, default
animation = borderangle, 1, 2, default
animation = fade, 1, 2, default
animation = workspaces, 1, 1, default
}
dwindle {
preserve_split = yes
no_gaps_when_only = 1
force_split = 2
}
gestures {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
workspace_swipe = on
workspace_swipe_invert = false
}
$mainMod = SUPER
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bindr = $mainMod, SUPER_L, exec, /home/user/.config/awesome/scripts/toggle_rofi.sh
bind = $mainMod, return, exec, /home/user/.config/awesome/scripts/launch_alacritty.sh $(hyprctl activewindow -j | jq .pid)
bind = $mainMod SHIFT, return, exec, alacritty
bind = $mainMod, Q, killactive,
bind = $mainMod, A, exec, nautilus
bind = $mainMod, B, exec, MOZ_ENABLE_WAYLAND=1 firefox
bind = $mainMod, M, fullscreen, 1
bind = $mainMod, F11, fullscreen
bind = $mainMod, F, togglefloating,
bind = $mainMod, SPACE, togglesplit, # dwindle
bind = CONTROL_L ALT_L, L, exec, swaylock
bind = $mainMod, C, exec, CM_LAUNCHER=rofi-script rofi -modi "clipmenu:/usr/bin/clipmenu" -show clipmenu
bind = $mainMod, Y, exec, /home/user/.config/rofi/rofi-ykman.sh
bind = Control Mod2 Mod4, Q, exec, systemctl suspend
bind = $mainMod, Escape, exec, rofi -show power-menu -modi power-menu:/home/user/.config/awesome/scripts/rofi-power-menu
bind = ,XF86PowerOff, exec, rofi -show power-menu -modi power-menu:/home/user/.config/awesome/scripts/rofi-power-menu
bind = ,XF86MonBrightnessUp, exec, xbacklight -inc 10
bind = ,XF86MonBrightnessDown, exec, xbacklight -dec 10
bind = ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 10%+ --limit 1.0
bind = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 10%-
bind = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
bind = ,XF86AudioNext, exec, playerctl next
bind = ,XF86AudioPrev, exec, playerctl previous
bind = $mainMod,XF86AudioMute, exec, playerctl play-pause
bind = $mainMod,XF86AudioRaiseVolume, exec, playerctl next
bind = $mainMod,XF86AudioLowerVolume, exec, playerctl previous
# Move focus with mainMod + arrow keys
bind = $mainMod, H, movefocus, l
bind = $mainMod, L, movefocus, r
bind = $mainMod, K, movefocus, u
bind = $mainMod, J, movefocus, d
bind = $mainMod SHIFT, H, movewindow, l
bind = $mainMod SHIFT, L, movewindow, r
bind = $mainMod SHIFT, K, movewindow, u
bind = $mainMod SHIFT, J, movewindow, d
bind = $mainMod CONTROL_L, L, resizeactive, 20 0
bind = $mainMod CONTROL_L, H, resizeactive, -20 0
bind = $mainMod CONTROL_L, K, resizeactive, 0 -20
bind = $mainMod CONTROL_L, J, resizeactive, 0 20
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10
bind = $mainMod SHIFT, T, movetoworkspace, empty
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, TAB, workspace, e+1
bind = $mainMod SHIFT, TAB, workspace, e-1
bind = $mainMod, T, workspace, empty
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow

3
hypr/hyprpaper.conf Normal file
View File

@ -0,0 +1,3 @@
ipc = off
preload = ~/.config/awesome/images/wallpaper.png
wallpaper = eDP-1,~/.config/awesome/images/wallpaper.png

94
waybar/config Normal file
View File

@ -0,0 +1,94 @@
{
"layer": "top", // Waybar at top layer
"height": 28, // Waybar height (to be removed for auto height)
"spacing": 4, // Gaps between modules (4px)
"modules-left": ["hyprland/window"],
"modules-center": ["hyprland/workspaces"],
"modules-right": ["tray", "wireplumber", "cpu", "memory", "custom/updates", "temperature", "battery", "clock"],
"wireplumber": {
"format": "{icon} {volume}%",
"on-click": "helvum",
"format-muted": "",
"on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle",
"format-icons": ["", "", ""]
},
"hyprland/workspaces": {
"disable-scroll": true,
"all-outputs": false,
"warp-on-scroll": false
},
"hyprland/window": {
"max-length": 50,
},
"tray": {
// "icon-size": 21,
"spacing": 10
},
"clock": {
"timezone": "Europe/Brussels",
"format": "{:%H:%M:%S}",
"interval": 1,
"format-alt": "{:%Y-%m-%d}"
},
"cpu": {
"format": "{max_frequency}GHz",
"tooltip": false,
"interval": 5
},
"custom/updates": {
"exec": "bash -c \"checkupdates | wc -l\"",
"on-click": "alacritty -e bash -c \"yay ; echo '\nDone, press any key to exit...' ; read\"",
"interval": 60,
"format": "{}  ",
},
"memory": {
"interval": 5,
"format": "{used:0.2f}G"
},
"temperature": {
"thermal-zone": 6,
// "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
"critical-threshold": 80,
// "format-critical": "{temperatureC}°C {icon}",
"format": "{temperatureC}°C",
// "format-icons": ["", "", ""]
},
"battery": {
"states": {
// "good": 95,
"warning": 30,
"critical": 15
},
"format": "{icon}",
"format-plugged": "{capacity}% ",
"format-alt": "{capacity}% {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}"
},
"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
}
}

143
waybar/style.css Normal file
View File

@ -0,0 +1,143 @@
* {
/* `otf-font-awesome` is required to be installed for icons */
font-family: Ubuntu;
font-size: 14px;
font-weight:500;
}
window#waybar {
background-color: rgba(0, 0, 0, 0.3);
color: #ffffff;
transition-property: background-color;
transition-duration: .5s;
}
/* window#waybar.hidden { */
/* opacity: 0.2; */
/* } */
button {
border: none;
border-radius: 0;
}
button:hover {
background: inherit;
box-shadow: inset 0 0 #ffffff;
}
#workspaces button {
padding: 0 8px;
background-color: transparent;
color: #ffffff;
}
#workspaces button:hover {
background-color: #002F5F;
}
#workspaces button.focused {
background-color: #002F5F;
}
#workspaces button.active {
background-color: #002F5F;
}
#workspaces button.urgent {
background-color: #ed8274;
}
#window,
#clock,
#battery,
#cpu,
#memory,
#disk,
#temperature,
#backlight,
#network,
#pulseaudio,
#wireplumber,
#custom-updates,
#custom-powermode,
#tray {
padding: 0 12px;
border-radius: 5px;
color: #ffffff;
background-color: #002F5F;
margin-left:2px;
margin-right:2px;
}
#window {
font-weight:400;
font-size:14px;
margin-left:0;
}
window#waybar.empty #window {
background-color: transparent;
}
#clock {
margin-right:0;
}
#workspaces {
margin: 0 10px;
}
/* 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;
}
}
#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;
}
#custom-media {
background-color: #66cc99;
color: #2a5c45;
min-width: 100px;
}
#custom-media.custom-spotify {
background-color: #66cc99;
}
#custom-media.custom-vlc {
background-color: #ffa000;
}
#tray > .passive {
-gtk-icon-effect: dim;
}
#tray > .needs-attention {
-gtk-icon-effect: highlight;
background-color: #eb4d4b;
}