

Currently working out how to achieve with keyboard only.
Any idea?
Code: Select all
If you want keybind submaps, for example if you press ALT+R, you can enter a “resize” mode, resize with arrow keys, and leave with escape, do it like this:
bind=ALT,R,submap,resize # will switch to a submap called resize
submap=resize # will start a submap called "resize"
binde=,right,resizeactive,10 0
binde=,left,resizeactive,-10 0
binde=,up,resizeactive,0 -10
binde=,down,resizeactive,0 10
bind=,escape,submap,reset # use reset to go back to the global submap
submap=reset # will reset the submap, meaning end the current one and return to the global one.
# keybinds further down will be global again...
IMPORTANT: do not forget a keybind to reset the keymap while inside it! (In this case, escape)
If you get stuck inside a keymap, you can use hyprctl dispatch submap reset to go back. If you do not have a terminal open, tough luck buddy. I warned you.
https://wiki.hyprland.org/Configuring/Window-Rules/window isn't centered when switched to floating
Code: Select all
#Window Rules
windowrule = workspace 2,^(firefox)$
windowrule = workspace 3,^(Emacs)$
windowrule = workspace 4,^(Spotify)$
windowrule = workspace 5,^(discord)$
windowrule = tile,^(Spotify)$
windowrule = float, ^(pavucontrol)$
windowrule = center, ^(pavucontrol)$
windowrule = size 800 500, ^(pavucontrol)$
windowrulev2 = float,class:^(Steam)$,title:^(Friends List)(.*)$
windowrulev2 = size 391 1225,class:^(Steam)$,title:^(Friends List)$
windowrule = idleinhibit focus,^(steam_app)(.*)$
Code: Select all
windowrule = centerCode: Select all
# Float Necessary Windows
windowrule=float,Rofi
windowrule=float,pavucontrol
windowrulev2 = float,class:^()$,title:^(Picture in picture)$
windowrulev2 = float,class:^(brave)$,title:^(Save File)$
windowrulev2 = float,class:^(brave)$,title:^(Open File)$
windowrulev2 = float,class:^(LibreWolf)$,title:^(Picture-in-Picture)$
windowrulev2 = float,class:^(blueman-manager)$
windowrulev2 = float,class:^(org.twosheds.iwgtk)$
windowrulev2 = float,class:^(blueberry.py)$
windowrulev2 = float,class:^(xdg-desktop-portal-gtk)$
windowrulev2 = float,class:^(geeqie)$
Code: Select all
windowrulev2 = center,classe:^(firefox-bin)$,floating:1
Code: Select all
# This is an example Hyprland config file.
#
# Refer to the wiki for more information.
#
# 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=,preferred,auto,auto
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
# Execute your favorite apps at launch
# exec-once = waybar & hyprpaper & firefox
exec-once = dunst
# Source a file (multi-file configs)
# source = ~/.config/hypr/myColors.conf
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
input {
kb_layout = fr
kb_variant =
kb_model =
kb_options =
kb_rules =
follow_mouse = 1
touchpad {
natural_scroll = no
}
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
}
general {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
gaps_in = 5
gaps_out = 20
border_size = 5
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
col.inactive_border = rgba(595959aa)
layout = dwindle
}
decoration {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
rounding = 10
blur = yes
blur_size = 3
blur_passes = 1
blur_new_optimizations = on
drop_shadow = yes
shadow_range = 4
shadow_render_power = 3
col.shadow = rgba(1a1a1aee)
}
animations {
enabled = no
# 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 = 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
}
gestures {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
workspace_swipe = off
}
# 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
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
$mainMod = SUPER
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, return, exec, foot
bind = $mainMod, K, killactive,
bind = $mainMod, E, exit,
bind = $mainMod, F, exec, pcmanfm
bind = $mainMod, V, togglefloating,
bind = $mainMod, X, exec, wofi --show drun
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, J, togglesplit, # dwindle
# Move focus with mainMod + arrow keys
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d
# 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
# 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
# will switch to a submap called resize
bind=ALT,R,submap,resize
# will start a submap called "resize"
submap=resize
# sets repeatable binds for resizing the active window
binde=,right,resizeactive,10 0
binde=SHIFT,right,resizeactive,10 0
binde=,left,resizeactive,-10 0
binde=SHIFT,left,resizeactive,-10 0
binde=,up,resizeactive,0 -10
binde=SHIFT,up,resizeactive,0 -10
binde=,down,resizeactive,0 10
binde=SHIFT,down,resizeactive,0 10
# use reset to go back to the global submap
bind=,escape,submap,reset
# will reset the submap, meaning end the current one and return to the global one
submap=reset
windowrulev2 = center,classe:^(firefox-bin)$,floating:1Code: Select all
windowrulev2 = center,classe:^(firefox-bin)$,flowhat if, you specify your monitor res. instead of auto?monitor=,preferred,auto,auto >>> for pluggin in random monitors
Code: Select all
windowrulev2 = float,class:^(firefox)$,title:^(firefox)$Code: Select all
windowrule=float,firefox
windowrule=center,firefox

Code: Select all
exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
exec-once=systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOPCode: Select all
Exec=dbus-run-session HyprlandCode: Select all
windowrule = float, ^(pavucontrol)$
windowrule = maxsize 600 800, ^(pavucontrol)$
windowrule = center, ^(pavucontrol)$Code: Select all
eix hypr
* gui-apps/hyprland-addons [2]
Available versions: [m]~0_pre20221018 [m]**9999*l {+grimblast +shellevents}
Homepage: https://github.com/hyprwm/contrib/
Description: Community scripts and utilities for Hypr projects
* gui-apps/hyprpaper [2]
Available versions: [m]~0_pre20221128 [m]**9999*l
Homepage: https://github.com/hyprwm/Hyprpaper
Description: blazing fast wayland wallpaper utility with IPC controls.
* gui-libs/xdg-desktop-portal-hyprland [2]
Available versions: [m]**9999*l {elogind systemd}
Homepage: https://github.com/hyprwm/xdg-desktop-portal-hyprland
Description: xdg-desktop-portal backend for hyprland
* gui-wm/hyprland
Available versions: [m]~0.16.0[2] [m]~0.17.0[2] [m]~0.19.2[2] [m]~0.21.0-r1[1] [m]**9999*l[2] {X grimblast shellevents system-wlroots systemd}
Homepage: https://github.com/hyprwm/Hyprland
Description: Dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
[1] "guru" /var/db/repos/guru
[2] "wayland-desktop" /var/db/repos/wayland-desktop
Code: Select all
eixi hyprland
[I] gui-wm/hyprland
Available versions: ~0.16.0[3] ~0.17.0[3] ~0.19.2_beta[2] ~0.19.2[3] ~0.20.1_beta[2] ~0.21.0-r1[1] (**)9999*l[3] (**)9999-r2*l[2] {X greetd-fix grimblast shellevents system-wlroots systemd vulkan +x11-backend VIDEO_CARDS="nvidia"}
Installed versions: 9999-r2*l[2](16:17:32 02/02/2023)(X x11-backend -greetd-fix -vulkan VIDEO_CARDS="-nvidia")
Homepage: https://github.com/hyprwm/Hyprland
Description: A dymanic tiling Wayland compositor that doesn't sacrifice on its looks.
[1] "guru" /var/db/repos/guru
[2] "thegreatmcpain" /var/db/repos/thegreatmcpain
[3] "wayland-desktop" /var/db/repos/wayland-desktop
Code: Select all
efil hyprland
* Searching for hyprland ...
* Contents of gui-wm/hyprland-9999-r2:
/usr
/usr/bin
/usr/bin/Hyprland
/usr/bin/hyprctl
/usr/lib64
/usr/lib64/libwlroots.so.12032
/usr/share
/usr/share/doc
/usr/share/doc/hyprland-9999-r2
/usr/share/doc/hyprland-9999-r2/hyprland.conf.lzma
/usr/share/hyprland
/usr/share/hyprland/header.svg
/usr/share/hyprland/hyprland.png
/usr/share/hyprland/meson.build
/usr/share/hyprland/wall_2K.png
/usr/share/hyprland/wall_4K.png
/usr/share/hyprland/wall_8K.png
/usr/share/wayland-sessions
/usr/share/wayland-sessions/hyprland.desktopCode: Select all
[Desktop Entry]
Name=Hyprland
Comment=An intelligent dynamic tiling Wayland compositor
Exec=dbus-run-session Hyprland
Type=ApplicationCode: Select all
eix -I hyprland
[I] gui-apps/hyprland-addons [2]
Available versions: [m](~)0_pre20221018 (**)9999*l{xpak} {+grimblast +shellevents}
Installed versions: 9999*l{xpak}(09:44:05 03.02.2023)(grimblast shellevents)
Homepage: https://github.com/hyprwm/contrib/
Description: Community scripts and utilities for Hypr projects
[I] gui-wm/hyprland
Available versions: [m](~)0.16.0[2] [m](~)0.17.0[2] [m](~)0.19.2[2] [m]~0.21.0-r1[1] (**)9999*l{xpak}[2] {X grimblast shellevents system-wlroots systemd}
Installed versions: 9999*l{xpak}[2](09:43:55 03.02.2023)(system-wlroots -X)
Homepage: https://github.com/hyprwm/Hyprland
Description: Dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
[1] "guru" /var/db/repos/guru
[2] "wayland-desktop" /var/db/repos/wayland-desktop
Code: Select all
Build dir: /var/tmp/portage/gui-wm/hyprland-9999/work/hyprland-9999-build
Build type: native build
meson.build:1:0: ERROR: Program or command 'jq' not found or not executable
A full log can be found at /var/tmp/portage/gui-wm/hyprland-9999/work/hyprland-9999-build/meson-logs/meson-log.txt
Code: Select all
Installed versions: 0.21.0-r1[1](18:21:21 03/02/2023)(X -grimblast -shellevents -systemd)Code: Select all
Fri Feb 3 17:54:26 2023 >>> dev-util/vulkan-headers-1.3.231
Fri Feb 3 17:56:56 2023 >>> dev-util/glslang-1.3.231-r2
Fri Feb 3 17:57:24 2023 >>> media-libs/vulkan-loader-1.3.231Emacs:29 is currently a bit of headache in this respect because it requires one binary for X GUI and another for wayland GUI.CooSee wrote:xwayland disabled - no other gui's are installed.
there's no spoon ... i mean i don't need a gui file manager - using, always loved, app-misc/mc (Midnight Commander) - with x11-terms/sakura.Out of curiosity, how do you do file browsing....

Indeed firefox-bin ends up in fullscreenCooSee wrote:it seems, that the behaviour is changing >> sometimes or with some apps which are not fully wayland compatible << if using hyprland with xwayland enabled

xwayland freeCooSee wrote:x11-terms/sakura
Code: Select all
# Config for sway
#
# Read `man 5 sway` for a complete reference.
# styles - set the folder for your theme definition file
set $theme $HOME/.config/sway/themes/SeaOwlGtkTheme
# theme variables
include $theme/definitions
# user config directory
include $HOME/.config/sway/config.d/*
# only enable this if every app you use is compatible with wayland
xwayland disable
Code: Select all
windowrule = float, firefox
...
windowrule=workspace 10 silent, jamesdsp
windowrule=float, jamesdsp
windowrule=size 1600 950, jamesdsp
windowrule=move 1120 10, jamesdsp