Hyprland icon indicating copy to clipboard operation
Hyprland copied to clipboard

Behaviour of going next after the edge is weird

Open littleblack111 opened this issue 1 year ago • 2 comments

Already reported ? *

  • [X] I have searched the existing open and closed issues.

Regression?

Yes, No

System Info and Version

System/Version info
Hyprland, built from branch main at commit 6ae89940c761d4ed4317df0af29e8df41d472091  (layout: add merge_floated_into_tiled_on_groupbar (8042)).
Date: Wed Oct 9 17:58:49 2024
Tag: v0.44.0-24-g6ae89940, commits: 5323
built against aquamarine 0.4.2


flags: (if any)


System Information:
System name: Linux
Node name: Arch-Linux
Release: 6.11.2-zen1-1-zen
Version: #1 ZEN SMP PREEMPT_DYNAMIC Fri, 04 Oct 2024 21:51:07 +0000


GPU information: 
00:02.0 VGA compatible controller [0300]: Intel Corporation Raptor Lake-S GT1 [UHD Graphics 770] [8086:a780] (rev 04) (prog-if 00 [VGA controller])
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation AD103 [GeForce RTX 4080 SUPER] [10de:2702] (rev a1) (prog-if 00 [VGA controller])
NVRM version: NVIDIA UNIX x86_64 Kernel Module  560.35.03  Fri Aug 16 21:39:15 UTC 2024


os-release: NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo


plugins:
  hypr-darkwindow by micha4w ver 1.0.0
  hyprchroma by alexhulbert ver 1.0.0
  Hyprspace by KZdkm ver 0.1
  dynamic-cursors by Virt ver 0.1

======Config-Start======


Config File: /home/system/.config/hypr/hyprland.conf: Read Succeeded
################
### MONITORS ###
################

# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=,highres@160,auto,auto,bitdepth,10
# monitor=,preferred,auto,auto,bitdepth,10


###################
### MY PROGRAMS ###
###################

# Program defaults
$terminal = alacritty
$termfloat = alacritty --class 'alacritty-float,alacritty-float'
$editor = lvim
$browser = thorium-browser
$fileManager = thunar
$sessionManager = sddm
$menu = rofi -i -dmenu -theme $HOME/.config/rofi/configs.rasi

# Dirs
$HYPRDIR = $HOME/.config/hypr
$WAYBARDIR = $HOME/.config/waybar
$SCRIPTSDIR = $HOME/scripts
$rofiexec = $HOME/.config/rofi/scripts

# global vars
$outer_gaps = 14

source = $HYPRDIR/colors.conf

# misc
$waylandarg = --enable-features=WaylandWindowDecorations,UseOzonePlatform --ozone-platform-hint=auto


#####################
### LOOK AND FEEL ###
#####################

# Refer to https://wiki.hyprland.org/Configuring/Variables/

# https://wiki.hyprland.org/Configuring/Variables/#general
general { 
    gaps_in = 5
    gaps_out = 10
    border_size = 3

    # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
    # col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg # DO THIS LATER
    # col.inactive_border = rgba(595959aa)
    # col.active_border = rgb(00a7f5) rgb(538620) rgb(538620) rgb(00a7f5) 90deg
    # col.inactive_border = rgb(00a7f5) rgb(538620) rgb(538620) rgb(00a7f5) 90deg
    # col.active_border = rgb(00a7f5) rgb(538620)
    # col.inactive_border = rgb(00a7f5) rgb(538620)
    col.inactive_border = $background
    col.active_border = $color15 $color13 $color10 $color8 $color6 $color4 $color2 $color0 # 45deg

    # Set to true enable resizing windows by clicking and dragging on borders and gaps
    resize_on_border = false 

    # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
    allow_tearing = true

    layout = dwindle
}

xwayland {
  force_zero_scaling = true
}

# https://wiki.hyprland.org/Configuring/Variables/#decoration
decoration {
    rounding = 7

    # Change transparency of focused and unfocused windows
    active_opacity = 0.95
    inactive_opacity = 0.85
    fullscreen_opacity = 1.0

    drop_shadow = true
    shadow_range = 15
    shadow_render_power = 4
    # col.shadow = rgba(1a1a1aee)
    col.shadow = $background
    screen_shader = /usr/share/hyprshade/shaders/vibrance.glsl

    # dim_inactive = true
    # dim_strength = 0.4

    # https://wiki.hyprland.org/Configuring/Variables/#blur
    blur {
        enabled = true
        size = 6
        passes = 3
        # vibrancy = 1
        popups = true
        ignore_opacity = true # KEEP THIS, THIS MAKE BLUR ACTUALLY BLUR COOL
    }
}

# https://wiki.hyprland.org/Configuring/Variables/#animations
animations {
    enabled = true

    # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more

    bezier = windowovershot, 1, 1, 0, 1.05
    bezier = overshot, 0.5, 1, 0, 1.2
    bezier = slow-fast, 1, 0.33, 0.3, 1
    bezier = fast-slow, 0.33, 0.8, 0, 1
    bezier = linear, 0, 0, 1, 1
    # bezier = linear, 0, 0, 1, 1
    # bezier = md3_standard, 0.2, 0, 0, 1
    bezier = md3_decel, 0.05, 0.7, 0.1, 1
    # bezier = md3_accel, 0.3, 0, 0.8, 0.15
    # bezier = overshot, 0.05, 0.9, 0.1, 1.1
    # bezier = crazyshot, 0.1, 1.5, 0.76, 0.92 
    # bezier = hyprnostretch, 0.05, 0.9, 0.1, 1.0
    # bezier = menu_decel, 0.1, 1, 0, 1
    # bezier = menu_accel, 0.38, 0.04, 1, 0.07
    # bezier = easeInOutCirc, 0.85, 0, 0.15, 1
    # bezier = easeOutCirc, 0, 0.55, 0.45, 1
    # bezier = easeOutExpo, 0.16, 1, 0.3, 1
    # bezier = softAcDecel, 0.26, 0.26, 0.15, 1
    # bezier = md2, 0.4, 0, 0.2, 1 # use with .2s duration

    animation = fade, 1, 4, md3_decel

    animation = windows, 1, 3, overshot, popin 20%
    animation = windowsOut, 1, 2, slow-fast, popin 15%
    # animation = windowsOut, 1, 3, slow-fast, popin 15%
    animation = workspaces, 1, 6, fast-slow, slide
    animation = workspacesIn, 1, 6, fast-slow, slidefade
    animation = borderangle, 1, 100, linear, loop
}

# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
dwindle {
    pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
    preserve_split = true # You probably want this
}

# https://wiki.hyprland.org/Configuring/Variables/#misc
misc { 
    force_default_wallpaper = 1 # Set to 0 or 1 to disable the anime mascot wallpapers
    focus_on_activate = true
    disable_hyprland_logo = true # If true disables the random hyprland logo / anime girl background. :(
    # vfr = false
    # vrr = 1 # 1 = always, 2 = only in full screen
    mouse_move_enables_dpms = true
    key_press_enables_dpms = true
    # animate_manual_resizes = true
    # animate_mouse_windowdragging = true
    middle_click_paste = false
    enable_swallow = false # true
    swallow_regex = ^(Alacritty|alacritty-float)$
    new_window_takes_over_fullscreen = 2
}

group {
    groupbar {
        # enabled = false
        render_titles = false
        text_color = $foreground
        col.active = $color0
        col.inactive = $background
        col.locked_active = $color0
        col.locked_inactive = $background
    }
    col.border_active = $color0 $color15 $foreground $cursor
    col.border_inactive = $background
    col.border_locked_active = $color0 $background
    col.border_locked_inactive = $background
}

# binds {
    # workspace_back_and_forth = true
# }

render {
    explicit_sync = 1
    explicit_sync_kms = 1
    direct_scanout = true
}

opengl {
    # nvidia_anti_flicker = false
    # force_introspection = 0
}

#############
### INPUT ###
#############

# https://wiki.hyprland.org/Configuring/Variables/#input
input {
    kb_layout = us
    kb_variant =
    kb_model =
    kb_options =
    kb_rules =

    follow_mouse = 1
    # scroll_factor = 1.0

    # sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
    numlock_by_default = true
    # touchpad {
    #     natural_scroll = false
    # }
}

cursor {
    # allow_dumb_copy = true
    no_hardware_cursors = true
    no_break_fs_vrr = true
    # zoom_rigid = true
}

plugin {
    overview {
        enabled = true
        disableGestures = true
        panelHeight = 150
    }
    # hyprfocus {
    #     enabled = yes
    #     focus_animation = shrink
    #     animate_floating = yes
    #     animate_worksapcechange = yes
    # }
    dynamic-cursors {
        mode = stretch
        shake {
            effects = true
        }
        shaperule = text, none
        # shaperule = clientside, none
    }
    # chromakey_background = $background
    # hy3 {
    #     # disable gaps when only one window is onscreen
    #     # 0 - always show gaps
    #     # 1 - hide gaps with a single window onscreen
    #     # 2 - 1 but also show the window border
    #     # no_gaps_when_only = <int> # default: 0

    #     # policy controlling what happens when a node is removed from a group,
    #     # leaving only a group
    #     # 0 = remove the nested group
    #     # 1 = keep the nested group
    #     # 2 = keep the nested group only if its parent is a tab group
    #     # node_collapse_policy = <int> # default: 2

    #     # offset from group split direction when only one window is in a group
    #     # group_inset = <int> # default: 10

    #     # if a tab group will automatically be created for the first window spawned in a workspace
    #     # tab_first_window = <bool>

    #     # tab group settings
    #     tabs {
    #       # height of the tab bar
    #       # height = <int> # default: 15

    #       # padding between the tab bar and its focused node
    #       # padding = <int> # default: 5

    #       # the tab bar should animate in/out from the top instead of below the window
    #       # from_top = <bool> # default: false

    #       # rounding of tab bar corners
    #       # rounding = <int> # default: 3

    #       # render the window title on the bar
    #       # render_text = <bool> # default: true

    #       # center the window title
    #       # text_center = <bool> # default: false

    #       # font to render the window title with
    #       # text_font = <string> # default: Sans

    #       # height of the window title
    #       # text_height = <int> # default: 8

    #       # left padding of the window title
    #       # text_padding = <int> # default: 3

    #       # active tab bar segment color
    #       # col.active = <color> # default: 0xff32b4ff

    #       # urgent tab bar segment color
    #       # col.urgent = <color> # default: 0xffff4f4f

    #       # inactive tab bar segment color
    #       # col.inactive = <color> # default: 0x80808080

    #       # active tab bar text color
    #       # col.text.active = <color> # default: 0xff000000

    #       # urgent tab bar text color
    #       # col.text.urgent = <color> # default: 0xff000000

    #       # inactive tab bar text color
    #       # col.text.inactive = <color> # default: 0xff000000
    #     }

    #     # autotiling settings
    #     autotile {
    #       # enable autotile
    #       # enable = <bool> # default: false

    #       # make autotile-created groups ephemeral
    #       # ephemeral_groups = <bool> # default: true

    #       # if a window would be squished smaller than this width, a vertical split will be created
    #       # -1 = never automatically split vertically
    #       # 0 = always automatically split vertically
    #       # <number> = pixel height to split at
    #       # trigger_width = <int> # default: 0

    #       # if a window would be squished smaller than this height, a horizontal split will be created
    #       # -1 = never automatically split horizontally
    #       # 0 = always automatically split horizontally
    #       # <number> = pixel height to split at
    #       # trigger_height = <int> # default: 0

    #       # a space or comma separated list of workspace ids where autotile should be enabled
    #       # it's possible to create an exception rule by prefixing the definition with "not:"
    #       # workspaces = 1,2 # autotiling will only be enabled on workspaces 1 and 2
    #       # workspaces = not:1,2 # autotiling will be enabled on all workspaces except 1 and 2
    #       # workspaces = <string> # default: all
    #     }
    # }
}

source = ~/.config/hypr/env.conf
source = ~/.config/hypr/rules.conf
source = ~/.config/hypr/binds.conf
source = ~/.config/hypr/autostart.conf
# debug:disable_logs = false

debug {
    # overlay = true # show fps
    # suppress_errors = true
    error_position = 1
}


Config File: /home/system/.config/hypr/colors.conf: Read Succeeded
$wallpaper = /home/system/.cache/full-moon-elden-ring.3840x2160.mp4.png
$background = rgb(1A1C20)
$foreground = rgb(E4F4F2)
$cursor = rgb(E4F4F2)
$color0 = rgb(404247)
$color1 = rgb(0E1C30)
$color2 = rgb(143445)
$color3 = rgb(4C5235)
$color4 = rgb(416173)
$color5 = rgb(6B899E)
$color6 = rgb(B1DFDB)
$color7 = rgb(D0E6E4)
$color8 = rgb(91A1A0)
$color9 = rgb(0E1C30)
$color10 = rgb(143445)
$color11 = rgb(4C5235)
$color12 = rgb(416173)
$color13 = rgb(6B899E)
$color14 = rgb(B1DFDB)
$color15 = rgb(D0E6E4)


Config File: /home/system/.config/hypr/env.conf: Read Succeeded
#############################
### ENVIRONMENT VARIABLES ###
#############################

# See https://wiki.hyprland.org/Configuring/Environment-variables/

env = XCURSOR_SIZE,24
env = HYPRCURSOR_SIZE,24
env = HYPRCURSOR_THEME,Bibata-Rainbow-Modern

# Nvidia
env = LIBVA_DRIVER_NAME,nvidia
env = GBM_BACKEND,nvidia-drm
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
# env = __GL_GSYNC_ALLOWED,1
env = VDPAU_DRIVER,nvidia
env = NVD_BACKEND,direct
# just in case if it tried to use igpu for hardware accel
# env = AQ_DRM_DEVICES,/dev/dri/card1:/dev/dri/card0

# XDG
env = XDG_CURRENT_DESKTOP,Hyprland
env = XDG_SESSION_TYPE,wayland
env = XDG_SESSION_DESKTOP,Hyprland

# QT
env = QT_AUTO_SCREEN_SCALE_FACTOR,1
env = QT_QPA_PLATFORM=wayland;xcb    # Not yet working for onlyoffice-editor
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
env = QT_QPA_PLATFORMTHEME,qt6ct
# env = SDL_VIDEODRIVER,wayland 
env = MOZ_ENABLE_WAYLAND,1
env = _JAVA_AWT_WM_NONREPARENTING,1

# Scale
env = QT_AUTO_SCREEN_SCALE_FACTOR,1
# env = GDK_DPI_SCALE,1.5
# env = QT_SCALE_FACTOR,2
env = ELECTRON_OZONE_PLATFORM_HINT,auto

# Input method
# env = GTK_IM_MODULE,fcitx
env = QT_IM_MODULE,fcitx
env = QT_IM_MODULES,wayland;fcitx;ibus
env = XMODIFIERS,@im=fcitx
env = SDL_IM_MODULE,fcitx
env = GLFW_IM_MODULE,fcitx
env = INPUT_METHOD,fcitx
env = XMODIFIERS,fcitx
env = IMSETTINGS_MODULE,fcitx

# wine
env = WINEPREFIX, /opt/windows.wine

# howdy avoid spam from gstreamer
env = OPENCV_LOG_LEVEL, ERROR

# temp fix for gtk apps seg fault
env = GSK_RENDERER, ngl

# Toolkit backend
env = GDK_BACKEND,wayland,x11,*
env = QT_QPA_PLATFORM,wayland;xcb
env = SDL_VIDEODRIVER,wayland # Remove or set to x11 if games that provide older versions of SDL cause compatibility issues

# QT
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
env = QT_QPA_PLATFORM,wayland;xcb



Config File: /home/system/.config/hypr/rules.conf: Read Succeeded
##############################
### WINDOWS AND WORKSPACES ###
##############################

# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules

# Tag
# workspaces
windowrulev2 = workspace 1, tag:terminal
windowrulev2 = workspace 2, tag:web
windowrulev2 = workspace 3, tag:file
windowrulev2 = workspace 4, tag:code
windowrulev2 = workspace 5, tag:office
windowrulev2 = workspace 6, tag:communication
windowrulev2 = workspace 7, tag:media
windowrulev2 = workspace 8, tag:games
windowrulev2 = workspace 9, tag:system
windowrulev2 = workspace 10, tag:misc

# GUI Utils
windowrulev2 = opacity 0.85 0.75, tag:gui-utils
windowrulev2 = pin, tag:gui-utils
windowrulev2 = size 53% 60%, tag:gui-utils
windowrulev2 = move 46.5% 5%, tag:gui-utils
windowrulev2 = animation slide right top, tag:gui-utils

# media contents
windowrulev2 = float, tag:media-contents
windowrulev2 = pin, tag:media-contents
windowrulev2 = move 100%-w-$outer_gaps, tag:media-contents
windowrulev2 = noinitialfocus, tag:media-contents
windowrulev2 = noshadow, tag:media-contents

# fake fullscreen
windowrulev2 = fullscreenstate 0 2, tag:fakefullscreen

# Games
windowrulev2 = fullscreen, tag:games
# Tearing (for better gaming performance)
windowrulev2 = immediate, tag:games

# time-sensitive app rules
windowrulev2 = stayfocused, tag:time-sensitive
windowrulev2 = pin, tag:time-sensitive
windowrulev2 = dimaround, tag:time-sensitive
windowrulev2 = center, tag:time-sensitive
windowrulev2 = float, tag:time-sensitive

# cli util apps
windowrulev2 = float, tag:cli-utils
windowrulev2 = pin, tag:cli-utils
windowrulev2 = dimaround, tag:cli-utils

# hidden
windowrulev2 = movetoworkspacesilent, special:minimized, tag:hidden

# Group
# windowrule = group, ^virt-manager$

# Terminal applications
windowrulev2 = tag terminal, class:^(Alacritty|Xfce4-terminal|Kitty)$

# Web browsers
windowrulev2 = tag web, class:^($browser|Brave-browser|chromium|firefox)$

# File managers
windowrulev2 = tag file, class:^($fileManager|Pcmanfm|Thunar|qBittorrent|Caja)$

# Code editors
windowrulev2 = tag code, class:^(Geany|code|code-url-handler|cursor-url-handler|code-oss|Code - OSS|install4j-burp-StartBurp|burp-StartBurp|Unity|jetbrains-pycharm-ce|Postman)$

# Office applications
windowrulev2 = tag office, class:^(Gucharmap|Atril|Evince|libreoffice-writer|libreoffice-calc|libreoffice-impress|libreoffice|Soffice|Typora|obsidian|figma-linux|anytype|craft-nativefier-e0958b)$

# Communication apps
windowrulev2 = tag communication, class:^(Thunderbird|TelegramDesktop|Hexchat|discord|vesktop|VencordDesktop|Chat-gpt|Whatsapp-for-linux|Chatbox)$

# Media applications
windowrulev2 = tag media, class:^(Audacity|Music|MPlayer|Lxmusic|Inkscape|Gimp|Blender|obs|zoom|Zoom|Pitivi|kdenlive|openshot|vlc|cider|Cider|shotwell|Shotwell|fr.handbrake.ghb)$
windowrulev2 = tag media, title:^(Spotify.*)$

# Games
windowrulev2 = tag games, class:^(Minecraft|Badlion|War|steam_proton|steam|csgo_linux64|minecraft-launcher|lutris|genshinimpact.exe|moe.launcher.an-anime-game-launcher|lunarclient|zenlesszonezero.exe|moe.launcher.sleepy-launcher|sober)$

# System/Settings applications
windowrulev2 = tag system, class:^(virt-manager|blueman-adapters|GParted|Xdm-app|timeshift-gtk|com.nextcloud.desktopclient.nextcloud|gearlever|Lxappearance|Lxtask|Lxrandr|Arandr|System-config-printer.py|Pavucontrol|Exo-helper-1|Protonvpn|Xfce4-power-manager-settings|Mysql-workbench-bin|Grub-customizer|Nitrogen|archlinux-tweak-tool.py|pamac-manager|helvum|Vmware|btrfs-assistant|Bitwarden|wootility-lekker|nwg-look|com.github.wwmm.easyeffects|kvantummanager)$

# Miscellaneous applications
windowrulev2 = tag misc, class:^(maxautoclicker|os_server|Os_server)$

# floating applications
windowrulev2 = float, class:^(alacritty-float|Pcmanfm|Onboard|Yad|zoom|Xdm-app|wechat|WeChat|sxiv|Sxiv|Firefox:Places|Viewnior|feh|Nm-connection-editor|install4j-burp-StartBurp|thorium-app.shortwave.com__-Default|thorium-mdpkiolbdkhdjpekfbkbmhigcaggjagi-Profile_1|float|thorium-lnachpgegbbmnnlgpokibfjlmppeciah-Default|Beeper|electron)$
windowrulev2 = float, title:^(Steam Settings)$

# specificly sized
windowrulev2 = size 40% 40%, class:^(alacritty-float)$

# Sticky applicationsp

# App that have menu on top for stayfocused, without this, menus will dissappear when you move ur mouse
windowrulev2 = stayfocused, title:(menu)

# GUI Utils applications
windowrulev2 = tag gui-utils, class:^(thorium-app.shortwave.com__-Default|thorium-mdpkiolbdkhdjpekfbkbmhigcaggjagi-Profile_1|thorium-lnachpgegbbmnnlgpokibfjlmppeciah-Default|Beeper)$
windowrulev2 = animation slide right top, tag:gui-utils

# bitwarden chrome extension popup
windowrulev2 = pin, class:^(thorium-nngceckbapebfimnlniiiahkandclblb-Default)$
windowrulev2 = float, class:^(thorium-nngceckbapebfimnlniiiahkandclblb-Default)$
windowrulev2 = stayfocused, class:^(thorium-nngceckbapebfimnlniiiahkandclblb-Default)$

# for media contents
windowrulev2 = tag media-contents, class:^(blobdrop|dragon)$
# PIP
windowrulev2 = tag media-contents, title:^(Picture in picture)$
windowrulev2 = size 25% 25%, title:^(Picture in picture)$

# removes title/border
windowrulev2 = tag fakefullscreen, class:^(thorium-mdpkiolbdkhdjpekfbkbmhigcaggjagi-Profile_1|thorium-lnachpgegbbmnnlgpokibfjlmppeciah-Default)

# Full screen applications
# time-sensitive app rules
windowrulev2 = tag time-sensitive, class:^(org.freedesktop.impl.portal.desktop.kde|polkit-gnome-authentication-agent-1|pinentry-|xdg-desktop-portal.*|hyprland-share-picker.*)$
windowrulev2 = tag time-sensitive, title:^(Open File|Open|Select a File|Choose wallpaper|Open Folder|Save As|Save File|Library|File Upload)$
windowrulev2 = dimaround, tag:time-sensitive

# rofi
# windowrulev2 = float, class:^(Rofi)
# windowrulev2 = pin, class:^(Rofi)
# windowrulev2 = dimaround, class:^(Rofi)
# util apps
windowrulev2 = tag cli-utils, title:^(nmd|cliphist|pulsemixer|ranger|btop)$
windowrulev2 = dimaround, tag:cli-utils
windowrulev2 = stayfocused, title:^(btop)$

# windowrulev2 = stayfocused, title:^(rofi - Command|rofi - Confirmation|rofi - ArchLinux (hyprland))

# No shadow for tiled window
windowrulev2 = noshadow,floating:0

# Opacity rules
# windowrule = opacity 0.89 override 0.89 override, .* set in decoration
# windowrulev2 = opacity 0.95 0.90, class:.+
windowrulev2 = opacity 0.85 0.75, class:^code-oss$
windowrulev2 = opacity 0.85 0.75, class:^code$
windowrulev2 = opacity 0.85 0.75, class:^code-url-handler$
windowrulev2 = opacity 0.85 0.75, class:^cursor-url-handler$
windowrulev2 = opacity 1.00 0.90, class:^TelegramDesktop$
windowrulev2 = opacity 0.90 0.80, title:Spotify
windowrulev2 = opacity 0.90 0.80, class:^Cider$
windowrulev2 = opacity 0.50 0.40, class:^fcitx$
windowrulev2 = opacity 0.90 0.80, class:^Brave-browser$
windowrulev2 = opacity 0.90 0.80, class:^thunar$
windowrulev2 = opacity 0.85 0.75, class:^discord$
windowrulev2 = opacity 0.90 0.80, class:^Caja$
windowrulev2 = opacity 0.80 0.70, class:^polkit-gnome-authentication-agent-1$
windowrulev2 = opacity 0.80 0.70, title:^Open$
windowrulev2 = opacity 0.8 0.5, title:^New Tab - Thorium$
# windowrulev2 = ignorezero, title:Annotation - Zoom


# Layer rules/blur
layerrule = blurpopups

layerrule = blur,rofi
layerrule = ignorezero,rofi
layerrule = dimaround,rofi
layerrule = animation popin 65%,rofi

layerrule = blur,notifications
layerrule = ignorezero,notifications
layerrule = blur,swaync-notification-window
layerrule = ignorezero,swaync-notification-window
layerrule = blur,swaync-control-center
layerrule = animation slide right,swaync-notification-window
layerrule = animation slide right,swaync-control-center
layerrule = ignorezero,swaync-control-center

layerrule = blur,logout_dialog

layerrule = blur,waybar
layerrule = ignorezero, waybar

layerrule = blur,syshud
layerrule = ignorezero, syshud
# layerrule = blur,$browser

# Misc

# xwaylandvideobridge
windowrulev2 = opacity 0.0 override, class:^(xwaylandvideobridge)$
windowrulev2 = noanim, class:^(xwaylandvideobridge)$
windowrulev2 = noinitialfocus, class:^(xwaylandvideobridge)$
windowrulev2 = maxsize 1 1, class:^(xwaylandvideobridge)$
windowrulev2 = noblur, class:^(xwaylandvideobridge)$

# Tearing (for better gaming performance)
windowrule = tag games, .*\.exe

# Roblox join private server
windowrulev2 = float, title:^(Join Friends)$ class:^(org.vinegarhq.Sober)$

# No transparency for fullscreen windows
windowrulev2 = plugin:chromakey,fullscreen:0

# Ignore maximize requests from apps. You'll probably like this.
windowrulev2 = suppressevent maximize, class:.*
# Fix some dragging issues with XWayland
windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0



Config File: /home/system/.config/hypr/binds.conf: Read Succeeded
####################
### KEYBINDINGSS ###
####################

# binds {
#     allow_workspace_cycles = yes
# }

# See https://wiki.hyprland.org/Configuring/Keywords/
$mainMod = SUPER # Sets "SUPER" key as main modifier

# Launching...
bind = $mainMod, return, exec, $terminal
bind = $mainMod shift, return, exec, $terminal --class "alacritty-float,alacritty-float"
# bind = $mainMod space, return, exec, $terminal start --class pseudo
bind = $mainMod alt, Delete, exec, pkill rofi || $rofiexec/rofi_powermenu
bind = alt, F1, exec, pkill rofi || $rofiexec/rofi_launcher
bind = alt, F2, exec, pkill rofi || $rofiexec/rofi_runner
bind = $mainMod, period, exec, pkill rofi || $rofiexec/rofi_emoji
# utils
bind = $mainMod, c, exec, pkill rofi || $rofiexec/rofi_configs
bind = $mainMod, m, exec, pkill rofi || $rofiexec/rofi_music
bind = $mainMod, n, exec, nmd
bind = $mainMod, r, exec, pkill rofi || $rofiexec/rofi_asroot
bind = $mainMod, s, exec, pkill rofi || $rofiexec/rofi_screenshot
bind = $mainMod, v, exec, pkill rofi || $rofiexec/rofi_clipboard
bind = $mainMod, w, exec, pkill rofi || $rofiexec/rofi_windows
bind = $mainMod, x, exec, pkill rofi || $rofiexec/rofi_powermenu
bind = $mainMod, b, exec, pkill rofi || $rofiexec/rofi_bluetooth
# GUI
bind = $mainMod shift, f, exec, $fileManager
bind = $mainMod shift, w, exec, $browser --restore-last-session
bind = $mainMod shift, e, exec, cursor
bind = $mainMod shift, d, exec, discord $waylandarg
bind = $mainMod shift, b, exec, beeper $waylandarg
# CLI
bind = ctrl alt, a, exec, $termfloat -T pulsemixer -e pulsemixer
bind = ctrl alt, r, exec, $termfloat -T ranger -e ranger
bind = ctrl alt, v, exec, $termfloat -e $editor

# Emergency
bindtp = ctrl alt, b, exec, $termfloat -T btop -e sudo nice -n -20 ionice -c 1 sudo btop
bindtp = ctrl alt, delete, exec, pkill rofi || $rofiexec/rofi_shutdown_menu

# Misc
# bind = ctrl alt, m, exec, music
bind = $mainMod, p, exec, hyprpicker --autocopy
bindtp = ctrl alt, l, exec, hyprlock
# Misc
bind = $mainMod shift, g, exec, gtk-launch shortwave.desktop
# bind = $mainMod shift, c, exec, gtk-launch google-chat.desktop

# XF86 keys & Misc
bind = ,XF86Print, exec, $HOME/scripts/sysutil.sh screenshot --now
bind = alt, XF86AudioMute, exec, $HOME/scripts/sysutil.sh screenshot --in5sec
bind = $mainMod shift, s, exec, $HOME/scripts/sysutil.sh screenshot --area

# Volume
bind = ,XF86AudioRaiseVolume, exec, $HOME/scripts/sysutil.sh volume --inc
bind = ,XF86AudioLowerVolume, exec, $HOME/scripts/sysutil.sh volume --dec
bind = ,XF86AudioMute, exec, $HOME/scripts/sysutil.sh volume --toggle
bind = ,XF86AudioMicMute, exec, $HOME/scripts/sysutil.sh volume --toggle-mic
bind = ,XF86AudioNext, exec, playerctl -p spotify next
bind = ,XF86AudioPrev, exec, playerctl -p spotify previous
bindl = ,XF86AudioPlay, exec, playerctl -p spotify play-pause || LD_PRELOAD=/usr/lib/spotify-adblock.so spotify
bind = ,XF86AudioStop, exec, playerctl -p spotify stop
bind = ,XF86PowerOff, exec, pkill rofi || $rofiexec/rofi_shutdown

# Pause
bind = ,Pause, exec, hyprfreeze -s -a

# Print
bind = ,Print, exec, $HOME/scripts/hyprshot --now

# Brightness
bind = ,XF86MonBrightnessUp, exec, $HOME/scripts/sysutil.sh brightness --inc
bind = ,XF86MonBrightnessDown, exec, $HOME/scripts/sysutil.sh brightness --dec


# Window management
# bind = $mainMod, d, exec, $HOME/scripts/hyprhide h
# bind = $mainMod, i, exec, $HOME/scripts/hyprhide s
bind = $mainMod, d, movetoworkspacesilent, special:minimized
bind = $mainMod, i, togglespecialworkspace, minimized
bind = $mainMod, i, movetoworkspace, +0
bind = $mainMod, q, killactive
bind = $mainMod shift, q, exec, kill -9 $(hyprctl activewindow | grep pid | tail -1 | awk '{print$2}')
bind = ctrl alt, escape, exec, hyprctl kill
bind = ctrl $mainMod shift, r, exec, systemctl restart $sessionManager
# restart bar
bind = ctrl $mainMod, escape, exec, killall -SIGUSR2 waybar || waybar &
# reload wall
bind = $mainMod alt, b, exec, killall wallust; killall mpvpaper.sh; $SCRIPTSDIR/mpvpaper.sh
# bind = ctrl, up, hyprexpo:expo, on
# bind = ctrl, down, hyprexpo:expo, off
bind = $mainMod ctrl, up, overview:open
bind = $mainMod ctrl, down, overview:close
# bind = alt, tab, exec, hyprswitch gui
# bind = alt, grave, exec, hyprswitch gui --reverse
# bindr = alt, tab, exec, hyprswitch close
# bindr = alt, grave, exec, hyprswitch close
bind = alt, tab, exec, /home/system/.cargo/bin/hyprswitch gui --mod-key alt_l --key tab --close mod-key-release --reverse-key=key=grave && hyprswitch dispatch
bind = alt, grave, exec, /home/system/.cargo/bin/hyprswitch gui --mod-key alt_l --key tab --close mod-key-release --reverse-key=key=grave && hyprswitch dispatch -r

bind = ctrl alt, left, workspace, -1
bind = ctrl alt, right, workspace, +1
bind = $mainMod shift, left, movewindow, l
bind = $mainMod shift, right, movewindow, r
bind = $mainMod shift, up, movewindow, u
bind = $mainMod shift, down, movewindow, d
bind = alt shift, left, resizeactive, left -20 -20
bind = alt shift, right, resizeactive, 0 20
bind = alt shift, up, resizeactive, 0 -20
bind = alt shift, down, resizeactive, 20 0
bind = $mainMod ctrl, left, resizeactive, -20 0
bind = $mainMod ctrl, right, resizeactive, 20 0
bind = $mainMod ctrl, up, resizeactive, 0 -20
bind = $mainMod ctrl, down, resizeactive, 0 20
bind = $mainMod, f, fullscreen,
bind = $mainMod, space, togglefloating,
bind = $mainMod shift, space, pseudo, # dwindle
bind = $mainMod shift, h, 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, movetoworkspacesilent, 10

# Scroll through existing workspaces with mainMod + scroll
# use waybar
# 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

# bind = $mainMod, mouse:272, pin
# bindri = $mainMod, mouse:272, pin, disable


bindi = ,mouse:276, exec, exec -a autoclicker-left zsh -c 'while true; do wlrctl pointer click; sleep $((0.$RANDOM/10)); done'
bindi = ,mouse:275, exec, exec -a autoclicker-right zsh -c 'while true; do wlrctl pointer click right; sleep $((0.$RANDOM/10)); done'
bindri = ,mouse:276, exec, kill $(pgrep -f autoclicker-left)
bindri = ,mouse:275, exec, kill $(pgrep -f autoclicker-right)

# Make group
bind = $mainMod, g, togglegroup

# bindie = ,mouse:276, exec, wlrctl pointer click
# bindie = ,mouse:275, exec, wlrctl pointer click right
# bindri = ,mouse:276, exec, kill $(pgrep -f autoclicker-left)
# bindri = ,mouse:275, exec, kill $(pgrep -f autoclicker-right)

# chroma
bind = $mainMod, O, togglechromakey


Config File: /home/system/.config/hypr/autostart.conf: Read Succeeded
#################
### AUTOSTART ###
#################

# Autostart necessary processes (like notifications daemons, status bars, etc.)
# Or execute your favorite apps at launch like this:

# seems to be builtin?
# exec-once = dbus-update-activation-environment --all && dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
# exec-once = systemctl --user import-environment XDG_SESSION_TYPE XDG_CURRENT_DESKTOP WAYLAND_DISPLAY QT_QPA_PLATFORMTHEME
# FIX CURSOR because keep reseting(see: https://www.reddit.com/r/hyprland/comments/1fgfmqb/gtk_apps_not_respecting_cursor_theme/)
# exec-once = gsettings set org.gnome.desktop.interface cursor-theme Bibata-Rainbow-Modern
exec-once = hyprctl setcursor Bibata-Rainbow-Modern 24

# Launch hyprland plugins
exec-once = hyprpm reload || hyprpm update
# Start pyprland daemon
exec-once = pyprland

# Waybar
exec-once = waybar
# Hypr-Eco
# exec-once = hyprpaper
# exec-once = $SCRIPTSDIR/hyprpaper.sh
# exec-once = $SCRIPTSDIR/swww.sh
exec-once = $SCRIPTSDIR/mpvpaper.sh
exec-once = hypridle

# XWayland
exec-once = xrdb -merge ~/.Xresources

# Auth agent
# exec-once = systemctl --user start plasma-polkit-agent # doesnt respect themeing
exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
# keyring agent
exec-once = gnome-keyring-daemon --start --components=pkcs11,secrets,ssh
# Location service
exec-once = /usr/lib/geoclue-2.0/demos/agent &
# input method
exec-once = fcitx5 -d
# app armor notifications
# exec-once = aa-notify -p -s 1 -w 60 -f /var/log/audit/audit.log &

# Clipboard history
# exec-once = wl-paste --watch cliphist store
exec-once = wl-paste --type text --watch cliphist store
exec-once = wl-paste --type image --watch cliphist store
# exec-once = wl-clip-persist --clipboard regular

# Notification agent
exec-once = swaync

# window swicher daemon
exec-once = hyprswitch init

# audio auto adjust
exec-once = $HOME/scripts/audio-autoAdjust.sh --daemon

# effect for audio
exec-once = while true; do easyeffects --gapplication-service; done

# startup sound
exec-once = $HOME/scripts/startupsound.sh

# misc
# sys hud
exec-once = syshud -M audio_in,audio_out,brightness -b /sys/bus/ddcci/devices/ddcci13/backlight/ddcci13/
# night light
exec-once = gammastep -l geoclue2

# user applications
exec-once = udiskie
exec-once = bitwarden-desktop
# exec-once = kdeconnectd
# exec-once = input-leap # doesnt work yet
exec-once = nextcloud --background
exec-once = discord --start-minimized
exec-once = beeper --no-sandbox --hidden
# exec-once = echo 'ddcci 0x37' | sudo tee /sys/bus/i2c/devices/i2c-13/new_device

# Notify if stuff is already started
exec-once = warp-cli status | grep Connect && notify-send 'warp-vpn' 'connected'
exec-once = pactl get-source-mute @DEFAULT_SOURCE@ | grep 'Mute: yes' >/dev/null && notify-send 'microphone' 'muted'
exec-once = modprobe uvcvideo || notify-send 'uvcvideo' 'disabled'
exec-once = pgrep -f gpu-screen-recorder && notify-send 'recorder' 'recording'

# restore session
exec-once = hyprsession

# spam of notification at start(e.g. chromium)
exec-once = swaync-client --dnd-on && sleep 3 && swaync-client --dnd-off

======Config-End========

Description

you can see in the video, i just keep pressing super + right arrow(movefocus r)

How to reproduce

  1. spawn window and mix up the alignment(from spawn)

Crash reports, logs, images, videos

github only allow 10MB ahh https://fs.littleblack111.com/aaaaa.mp4

littleblack111 avatar Oct 10 '24 13:10 littleblack111

I have a widescreen monitor which is split into two (two cables etc.) and I observe a similar behavior.

https://github.com/user-attachments/assets/6cffcc82-c72a-402d-bc9e-4577a1c58df7

System/Version info ``` Hyprland, built from branch at commit 0c7a7e2d569eeed9d6025f3eef4ea0690d90845d (version: bump to 0.44.0). Date: Sun Oct 6 11:04:13 2024 Tag: v0.44.0, commits: 5299 built against aquamarine 0.4.2

flags: (if any)

System Information: System name: Linux Node name: om Release: 6.11.2-zen1-1.1-zen Version: #1 ZEN SMP PREEMPT_DYNAMIC Sun, 06 Oct 2024 01:37:18 +0000

GPU information: 03:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 32 [Radeon RX 7700 XT / 7800 XT] [1002:747e] (rev c8) (prog-if 00 [VGA controller]) 14:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Raphael [1002:164e] (rev c4) (prog-if 00 [VGA controller])

os-release: NAME="Arch Linux" PRETTY_NAME="Arch Linux" ID=arch BUILD_ID=rolling ANSI_COLOR="38;2;23;147;209" HOME_URL="https://archlinux.org/" DOCUMENTATION_URL="https://wiki.archlinux.org/" SUPPORT_URL="https://bbs.archlinux.org/" BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues" PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/" LOGO=archlinux-logo

plugins:

topaxi avatar Oct 10 '24 15:10 topaxi

hmm. i think we're talking about different things, my issue is the focus will move to some random window instead of next row or start

littleblack111 avatar Oct 10 '24 15:10 littleblack111

Hello there!

This issue has been closed, as we are moving from issues to discussions. More about this can be found here and in #9854.

Firstly, please make sure this issue is still relevant in latest Hyprland. If so, we ask you to open a discussion (please read the discussion guidelines first, in the pinned post)

Thank you for your understanding!

vaxerski avatar Apr 05 '25 18:04 vaxerski