Trying out wayland

This commit is contained in:
agryphus 2023-12-05 22:12:36 -05:00
parent a643a1f9e9
commit d93e1ab61b
7 changed files with 540 additions and 0 deletions

217
.config/hypr/hyprland.conf Normal file
View 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

View 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
View 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
View 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
View 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;
}