Trying out wayland
This commit is contained in:
parent
a643a1f9e9
commit
d93e1ab61b
7 changed files with 540 additions and 0 deletions
217
.config/hypr/hyprland.conf
Normal file
217
.config/hypr/hyprland.conf
Normal file
|
|
@ -0,0 +1,217 @@
|
|||
#
|
||||
# Please note not all available settings / options are set here.
|
||||
# For a full list, see the wiki
|
||||
#
|
||||
#
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||
monitor=,highrr,auto,auto
|
||||
|
||||
# Some default env vars.
|
||||
env = XCURSOR_SIZE,24
|
||||
|
||||
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
|
||||
input {
|
||||
kb_layout = us
|
||||
kb_variant =
|
||||
kb_model =
|
||||
kb_options =
|
||||
kb_rules =
|
||||
|
||||
follow_mouse = 1
|
||||
|
||||
touchpad {
|
||||
natural_scroll = yes
|
||||
}
|
||||
|
||||
repeat_delay = 300
|
||||
repeat_rate = 50
|
||||
|
||||
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
|
||||
}
|
||||
|
||||
general {
|
||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||
|
||||
gaps_in = 6
|
||||
gaps_out = 12
|
||||
border_size = 2
|
||||
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
|
||||
col.inactive_border = rgba(595959aa)
|
||||
|
||||
layout = master
|
||||
|
||||
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
|
||||
allow_tearing = false
|
||||
}
|
||||
|
||||
decoration {
|
||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||
|
||||
rounding = 10
|
||||
|
||||
blur {
|
||||
enabled = true
|
||||
size = 3
|
||||
passes = 1
|
||||
}
|
||||
|
||||
drop_shadow = yes
|
||||
shadow_range = 4
|
||||
shadow_render_power = 3
|
||||
col.shadow = rgba(1a1a1aee)
|
||||
}
|
||||
|
||||
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, 7, myBezier
|
||||
animation = windowsOut, 1, 7, default, popin 80%
|
||||
animation = border, 1, 10, default
|
||||
animation = borderangle, 1, 8, default
|
||||
animation = fade, 1, 7, default
|
||||
animation = workspaces, 1, 6, default
|
||||
}
|
||||
|
||||
dwindle {
|
||||
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
||||
pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||
preserve_split = yes # you probably want this
|
||||
}
|
||||
|
||||
master {
|
||||
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
||||
new_is_master = true
|
||||
no_gaps_when_only = true
|
||||
}
|
||||
|
||||
gestures {
|
||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||
workspace_swipe = off
|
||||
}
|
||||
|
||||
misc {
|
||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||
force_default_wallpaper = 0 # Set to 0 to disable the anime mascot wallpapers
|
||||
enable_swallow = true
|
||||
swallow_regex = ^foot$
|
||||
}
|
||||
|
||||
# Example per-device config
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more
|
||||
device:epic-mouse-v1 {
|
||||
sensitivity = -0.5
|
||||
}
|
||||
|
||||
# Example windowrule v1
|
||||
# windowrule = float, ^(kitty)$
|
||||
# Example windowrule v2
|
||||
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
|
||||
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
||||
|
||||
$mainMod = SUPER
|
||||
|
||||
# Program spawning hotkeys
|
||||
bind = CONTROL ALT, BACKSPACE, exec, $TERMINAL -e $SHELL -c 'htop'
|
||||
bind = $mainMod, RETURN, exec, foot
|
||||
bind = $mainMod, W, exec, firefox
|
||||
bind = $mainMod, E, exec, $TERMINAL -e $SHELL -c 'tmp="$(mktemp)" && command lf -last-dir-path="$tmp" "$@" && test -f "$tmp" && dir="$(command cat "$tmp")" && rm -f "$tmp" && test -d "$dir" && cd "$dir" && exec $SHELL'
|
||||
bind = $mainMod SHIFT, E, exec, emacsclient -c -a 'emacs'
|
||||
|
||||
# Menu hoykeys
|
||||
bind = $mainMod, R, exec, menu-run
|
||||
|
||||
# System control keybinds
|
||||
binde = $mainMod, MINUS, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 1%-
|
||||
binde = $mainMod SHIFT, MINUS, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
|
||||
binde = $mainMod, EQUAL, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 1%+
|
||||
binde = $mainMod SHIFT, EQUAL, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
|
||||
binde = ,F7, exec, change-brightness up
|
||||
binde = ,XF86MonBrightnessUp, exec, change-brightness up
|
||||
binde = ,F6, exec, change-brightness down
|
||||
binde = ,XF86MonBrightnessDown, exec, change-brightness down
|
||||
bind = $mainMod, L, exec, swaylock -e -c 000000
|
||||
|
||||
# Kill commands
|
||||
bind = $mainMod CONTROL SHIFT, Q, exit,
|
||||
bind = $mainMod, Q, killactive,
|
||||
|
||||
# Change gaps
|
||||
binde = $mainMod, Z, exec, hyprgaps -i 3
|
||||
binde = $mainMod, X, exec, hyprgaps -d 3
|
||||
|
||||
# Master stack movement commands
|
||||
bind = $mainMod, J, layoutmsg, cyclenext
|
||||
bind = $mainMod SHIFT, J, layoutmsg, swapnext
|
||||
bind = $mainMod, K, layoutmsg, cycleprev
|
||||
bind = $mainMod SHIFT, K, layoutmsg, swapprev
|
||||
bind = $mainMod SHIFT, L, splitratio, +0.05
|
||||
bind = $mainMod SHIFT, H, splitratio, -0.05
|
||||
|
||||
# Changing number of masters
|
||||
bind = $mainMod, O, layoutmsg, addmaster
|
||||
bind = $mainMod SHIFT, O, layoutmsg, removemaster
|
||||
|
||||
# Change tiling direction
|
||||
bind = $mainMod, T, layoutmsg, orientationleft
|
||||
bind = $mainMod SHIFT, T, layoutmsg, orientationtop
|
||||
|
||||
# Special windows
|
||||
bind = $mainMod, F, togglefloating,
|
||||
bind = $mainMod, S, togglespecialworkspace, magic
|
||||
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
|
||||
|
||||
# Switch workspaces with mainMod + [0-9]
|
||||
bind = $mainMod, 1, exec, hyprdwm goto 1
|
||||
bind = $mainMod, 2, exec, hyprdwm goto 2
|
||||
bind = $mainMod, 3, exec, hyprdwm goto 3
|
||||
bind = $mainMod, 4, exec, hyprdwm goto 4
|
||||
bind = $mainMod, 5, exec, hyprdwm goto 5
|
||||
bind = $mainMod, 6, exec, hyprdwm goto 6
|
||||
bind = $mainMod, 7, exec, hyprdwm goto 7
|
||||
bind = $mainMod, 8, exec, hyprdwm goto 8
|
||||
bind = $mainMod, 9, exec, hyprdwm goto 9
|
||||
bind = $mainMod, 0, exec, hyprdwm goto 10
|
||||
|
||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||
bind = $mainMod SHIFT, 1, exec, hyprdwm moveto 1
|
||||
bind = $mainMod SHIFT, 2, exec, hyprdwm moveto 2
|
||||
bind = $mainMod SHIFT, 3, exec, hyprdwm moveto 3
|
||||
bind = $mainMod SHIFT, 4, exec, hyprdwm moveto 4
|
||||
bind = $mainMod SHIFT, 5, exec, hyprdwm moveto 5
|
||||
bind = $mainMod SHIFT, 6, exec, hyprdwm moveto 6
|
||||
bind = $mainMod SHIFT, 7, exec, hyprdwm moveto 7
|
||||
bind = $mainMod SHIFT, 8, exec, hyprdwm moveto 8
|
||||
bind = $mainMod SHIFT, 9, exec, hyprdwm moveto 9
|
||||
bind = $mainMod SHIFT, 9, exec, hyprdwm moveto 10
|
||||
|
||||
# Moving between monitors
|
||||
bind = $mainMod, COMMA, movewindow, mon:l
|
||||
bind = $mainMod, LEFT, movewindow, mon:l
|
||||
bind = $mainMod, PERIOD, movewindow, mon:r
|
||||
bind = $mainMod, RIGHT, movewindow, mon:r
|
||||
|
||||
# Scroll through existing workspaces with mainMod + scroll
|
||||
bind = $mainMod, mouse_down, workspace, e+1
|
||||
bind = $mainMod, mouse_up, workspace, e-1
|
||||
|
||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||
bindm = $mainMod, mouse:272, movewindow
|
||||
bindm = $mainMod, mouse:273, resizewindow
|
||||
|
||||
exec-once = swww init # Do this early so the daemon has time to load
|
||||
|
||||
# Set default workspace per monitor
|
||||
exec-once = hyprctl dispatch focusmonitor 1; hyprctl dispatch exec 'hyprdwm goto 1'
|
||||
exec-once = hyprctl dispatch focusmonitor 2; hyprctl dispatch exec 'hyprdwm goto 1'
|
||||
exec-once = hyprctl dispatch focusmonitor 3; hyprctl dispatch exec 'hyprdwm goto 1'
|
||||
|
||||
exec-once = waybar
|
||||
exec-once = hyprland-autoname-workspaces
|
||||
exec-once = kanshi
|
||||
exec-once = sleep 1 && swww img ~/.config/wallpaper
|
||||
|
||||
103
.config/hyprland-autoname-workspaces/config.toml
Normal file
103
.config/hyprland-autoname-workspaces/config.toml
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
version = "1.1.11"
|
||||
|
||||
[format]
|
||||
# Deduplicate icons if enable.
|
||||
# A superscripted counter will be added.
|
||||
# dedup = false
|
||||
# dedup_inactive_fullscreen = false # dedup more
|
||||
# window delimiter
|
||||
delim = ""
|
||||
|
||||
# available formatter:
|
||||
# {counter_sup} - superscripted count of clients on the workspace, and simple {counter}, {delim}
|
||||
# {icon}, {client}
|
||||
# workspace formatter
|
||||
workspace = "{id}:{delim}{clients}" # {id}, {delim} and {clients} are supported
|
||||
# workspace_empty = "{id}" # {id}, {delim} and {clients} are supported
|
||||
# client formatter
|
||||
# client = "{icon}"
|
||||
# client_active = "*{icon}*"
|
||||
|
||||
# deduplicate client formatter
|
||||
# client_fullscreen = "[{icon}]"
|
||||
# client_dup = "{client}{counter_sup}"
|
||||
# client_dup_fullscreen = "[{icon}]{delim}{icon}{counter_unfocused}"
|
||||
# client_dup_active = "*{icon}*{delim}{icon}{counter_unfocused}"
|
||||
|
||||
[class]
|
||||
# Add your icons mapping
|
||||
# use double quote the key and the value
|
||||
# take class name from 'hyprctl clients'
|
||||
"DEFAULT" = "{class}"
|
||||
"(?i)Kitty" = " "
|
||||
"(?i)foot" = " "
|
||||
"(?i)st" = " "
|
||||
"[Ff]irefox" = " "
|
||||
"(?i)slack" = " "
|
||||
"(?i)discord" = " "
|
||||
"(?i)spotify" = " "
|
||||
"(?i)chromium" = " "
|
||||
"(?i)emacs" = " "
|
||||
|
||||
# [class_active]
|
||||
# DEFAULT = "*{icon}*"
|
||||
# "(?i)ExampleOneTerm" = "<span foreground='red'>{icon}</span>"
|
||||
|
||||
# [initial_class]
|
||||
# "DEFAULT" = "test"
|
||||
# "(?i)Kitty" = "term"
|
||||
|
||||
# [initial_class_active]
|
||||
# "(?i)Kitty" = "*TERM*"
|
||||
|
||||
[title_in_class."(?i)kitty"]
|
||||
"(?i)neomutt" = "neomutt"
|
||||
|
||||
[title_in_class."(?i)foot"]
|
||||
"(?i)nvim" = "nvim"
|
||||
"(?i)neovim" = "neovim"
|
||||
|
||||
# regex captures support is supported
|
||||
# "emerge: (.+?/.+?)-.*" = "{match1}"
|
||||
|
||||
[title_in_class_active."(?i)firefox"]
|
||||
"(?i)twitch" = "<span color='purple'>{icon}</span>"
|
||||
|
||||
# [title_in_initial_class."(?i)kitty"]
|
||||
# "(?i)neomutt" = "neomutt"
|
||||
|
||||
# [initial_title_in_class."(?i)kitty"]
|
||||
# "(?i)neomutt" = "neomutt"
|
||||
|
||||
# [initial_title_in_initial_class."(?i)kitty"]
|
||||
# "(?i)neomutt" = "neomutt"
|
||||
|
||||
# [initial_title."(?i)kitty"]
|
||||
# "zsh" = "Zsh"
|
||||
|
||||
# [initial_title_active."(?i)kitty"]
|
||||
# "zsh" = "*Zsh*"
|
||||
|
||||
# Add your applications that need to be exclude
|
||||
# The key is the class, the value is the title.
|
||||
# You can put an empty title to exclude based on
|
||||
# class name only, "" make the job.
|
||||
[exclude]
|
||||
"" = "^$" # prevent displaying icon for empty class
|
||||
"(?i)fcitx" = ".*" # will match all title for fcitx
|
||||
"(?i)TestApp" = "" # will match all title for TestApp
|
||||
aProgram = "^$" # will match null title for aProgram
|
||||
"[Ss]team" = "^(Friends List.*)?$" # will match Steam friends list plus all popups (empty titles)
|
||||
|
||||
[workspaces_name]
|
||||
0 = "zero"
|
||||
1 = "one"
|
||||
2 = "two"
|
||||
3 = "three"
|
||||
4 = "four"
|
||||
5 = "five"
|
||||
6 = "six"
|
||||
7 = "seven"
|
||||
8 = "eight"
|
||||
9 = "nine"
|
||||
10 = "ten"
|
||||
9
.config/kanshi/config
Normal file
9
.config/kanshi/config
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
profile default {
|
||||
output eDP-1 enable position 0,0
|
||||
}
|
||||
|
||||
profile dual-monitor-main {
|
||||
output eDP-1 enable position 0,600
|
||||
output DP-3 enable mode 1920x1080@143.856003Hz position 1920,0
|
||||
}
|
||||
|
||||
72
.config/waybar/config
Normal file
72
.config/waybar/config
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
{
|
||||
"layer": "top",
|
||||
"position": "top",
|
||||
"height": 27,
|
||||
|
||||
"modules-left": ["hyprland/workspaces", "custom/scratch", "hyprland/mode", "hyprland/window"],
|
||||
"modules-center": [],
|
||||
"modules-right": ["memory", "network", "pulseaudio", "clock", "tray", "battery"],
|
||||
|
||||
"hyprland/workspaces": {
|
||||
"disable-scroll": true,
|
||||
"disable-markup": true,
|
||||
"format": "{name}"
|
||||
},
|
||||
|
||||
"hyprland/window": {
|
||||
"format": "{}",
|
||||
"max-length": 150
|
||||
},
|
||||
|
||||
"tray": {
|
||||
"icon-size": 18,
|
||||
"spacing": 15
|
||||
},
|
||||
|
||||
"clock": {
|
||||
"format": "{: %a %b%e %R}",
|
||||
"interval": 30
|
||||
},
|
||||
|
||||
"memory": {
|
||||
"interval": 5,
|
||||
"format": " {used:0.1f}G/{total:0.1f}G "
|
||||
},
|
||||
|
||||
"battery": {
|
||||
"bat": "BAT0",
|
||||
"states": {
|
||||
"full": 99,
|
||||
"good": 98,
|
||||
"normal": 98,
|
||||
"warning": 20,
|
||||
"critical": 20
|
||||
},
|
||||
"format": "{icon} {capacity}%",
|
||||
"format-good": "{icon} {capacity}%",
|
||||
"format-full": " {capacity}%",
|
||||
"format-charging": " {capacity}%",
|
||||
"format-icons": ["", "", "", "", ""],
|
||||
"interval": 30
|
||||
},
|
||||
|
||||
"network": {
|
||||
"interface": "wlp0s20f3",
|
||||
"format-wifi": " {essid} ",
|
||||
"format-disconnected": " ",
|
||||
"interval": 60
|
||||
},
|
||||
|
||||
"pulseaudio": {
|
||||
"format": "{icon} {volume}% ",
|
||||
"format-bluetooth": " {volume}% ",
|
||||
"format-muted":"婢 Mute ",
|
||||
"interval": 60,
|
||||
|
||||
"format-icons": {
|
||||
"default": [""]
|
||||
},
|
||||
|
||||
"on-click": "blueman-manager"
|
||||
}
|
||||
}
|
||||
78
.config/waybar/style.css
Normal file
78
.config/waybar/style.css
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
* {
|
||||
font-family: FiraCode Nerd Font, FontAwesome;
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background-color: rgba(0, 0, 0, 0.8);
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
#window {
|
||||
color: #ffffff;
|
||||
padding: 0px 10px 0px 10px;
|
||||
}
|
||||
|
||||
button:hover {
|
||||
color: #ffffff;
|
||||
border-bottom: 3px solid #ffffff;
|
||||
background: rgba(150, 150, 150, 0.5);
|
||||
box-shadow: inset 0 -3px #ffffff;
|
||||
}
|
||||
|
||||
.modules-left {
|
||||
padding: 0px 0px 0px 0px;
|
||||
}
|
||||
|
||||
.modules-right {
|
||||
padding: 0px 5px 0px 0px;
|
||||
}
|
||||
|
||||
|
||||
#custom-scratch {
|
||||
color: #b8b8b8;
|
||||
padding: 0px 9px 0px 9px;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
padding: 0px 11px 0px 11px;
|
||||
min-width: 1px;
|
||||
color: #888888;
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
padding: 0px 11px 0px 11px;
|
||||
color: #ffffff;
|
||||
box-shadow: inset 0 -3px #ffffff;
|
||||
}
|
||||
|
||||
#mode {
|
||||
background-color: #900000;
|
||||
color: #ffffff;
|
||||
padding: 0px 5px 0px 5px;
|
||||
border: 1px solid #2f343a;
|
||||
}
|
||||
|
||||
#network, #temperature, #backlight, #pulseudio, #battery {
|
||||
padding: 0px 15px 0px 15px;
|
||||
}
|
||||
|
||||
#clock {
|
||||
margin: 0px 15px 0px 15px;
|
||||
}
|
||||
|
||||
#tray{
|
||||
padding: 0px 8px 0px 5px;
|
||||
margin: 0px 5px 0px 5px;
|
||||
}
|
||||
|
||||
#battery.critical {
|
||||
color: #ff5555;
|
||||
}
|
||||
|
||||
#network.disconnected {
|
||||
color: #ff5555;
|
||||
}
|
||||
|
||||
32
.local/bin/hyprdwm
Executable file
32
.local/bin/hyprdwm
Executable file
|
|
@ -0,0 +1,32 @@
|
|||
#!/usr/bin/env sh
|
||||
# This is a script aimed at replicating the functionality of DWM where
|
||||
# there are 9 workspaces per monitor.
|
||||
|
||||
if [ ! "$1" = "goto" ] && [ ! "$1" = "moveto" ]; then
|
||||
echo "Invalid instruction"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
case $2 in
|
||||
''|*[!0-9]*)
|
||||
echo "Provide a number"
|
||||
exit 1
|
||||
;;
|
||||
*) ;;
|
||||
esac
|
||||
|
||||
monitor="$(hyprctl activeworkspace | grep "monitorID:" | awk '{print $2}')"
|
||||
workspace="$(($monitor * 10 + $2))"
|
||||
hyprctl dispatch moveworkspacetomonitor "$workspace" "$monitor"
|
||||
hyprctl dispatch focusmonitor "$monitor"
|
||||
|
||||
case "$1" in
|
||||
goto)
|
||||
hyprctl dispatch workspace "$workspace"
|
||||
;;
|
||||
moveto)
|
||||
hyprctl dispatch movetoworkspace "$workspace"
|
||||
;;
|
||||
*) ;;
|
||||
esac
|
||||
|
||||
29
.local/bin/hyprgaps
Executable file
29
.local/bin/hyprgaps
Executable file
|
|
@ -0,0 +1,29 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
increase=0
|
||||
if [ "$1" != "-i" ] && [ "$1" != "-d" ] || [ -z "$2" ]; then
|
||||
echo "Wrong number of arguments"
|
||||
exit 1
|
||||
else
|
||||
[ "$1" = "-i" ] && increase=1
|
||||
fi
|
||||
|
||||
amount="$2"
|
||||
curr_out="$(hyprctl -j getoption general:gaps_out | jq '.int')"
|
||||
|
||||
if [ $increase = 1 ]; then
|
||||
new_out=$(($curr_out + $amount))
|
||||
else
|
||||
new_out=$(($curr_out - $amount))
|
||||
fi
|
||||
|
||||
new_in="$(($new_out / 2))"
|
||||
|
||||
if [ $new_out -lt 0 ] || [ $new_in -lt 0 ]; then
|
||||
new_out=0
|
||||
new_in=0
|
||||
fi
|
||||
|
||||
hyprctl keyword general:gaps_out "$new_out"
|
||||
hyprctl keyword general:gaps_in "$new_in"
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue