hyprwm / Hyprland

Hyprland is an independent, highly customizable, dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
https://hyprland.org
BSD 3-Clause "New" or "Revised" License
19.89k stars 848 forks source link

Occasional display errors when using my AMD laptop with an external monitor connected via HDMI #6614

Open ajmasia opened 3 months ago

ajmasia commented 3 months ago

Regression?

No

System Info and Version

System/Version info ```sh Hyprland, built from branch at commit 1360677478e867034713e5d43d7a8a8f6bf1343d (). Date: 2024-06-17 Tag: , commits: 1360677478e867034713e5d43d7a8a8f6bf1343d flags: (if any) System Information: System name: Linux Node name: dev-system Release: 6.6.33 Version: #1-NixOS SMP PREEMPT_DYNAMIC Wed Jun 12 09:13:03 UTC 2024 GPU information: 04:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Renoir [Radeon RX Vega 6 (Ryzen 4000/5000 Mobile Series)] [1002:1636] (rev c6) (prog-if 00 [VGA controller]) os-release: ANSI_COLOR="1;34" BUG_REPORT_URL="https://github.com/NixOS/nixpkgs/issues" BUILD_ID="24.11.20240613.e9ee548" DOCUMENTATION_URL="https://nixos.org/learn.html" HOME_URL="https://nixos.org/" ID=nixos IMAGE_ID="" IMAGE_VERSION="" LOGO="nix-snowflake" NAME=NixOS PRETTY_NAME="NixOS 24.11 (Vicuna)" SUPPORT_URL="https://nixos.org/community.html" VERSION="24.11 (Vicuna)" VERSION_CODENAME=vicuna VERSION_ID="24.11" plugins: ======Config-Start====== Config File: /home/ajmasia/.config/hypr/hyprland.conf: Read Succeeded exec-once = /nix/store/y29cbwfiwb9nyi4db4apk9dgylzdjm1v-dbus-1.14.10/bin/dbus-update-activation-environment --systemd DISPLAY HYPRLAND_INSTANCE_SIGNATURE WAYLAND_DISPLAY XDG_CURRENT_DESKTOP && systemctl --user stop hyprland-session.target && systemctl --user start hyprland-session.target # ####################################################################################### # AUTOGENERATED HYPR CONFIG. # PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT, # OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS. # ####################################################################################### autogenerated = 0 # remove this line to remove the warning # This is an example Hyprland config file. # Refer to the wiki for more information. # https://wiki.hyprland.org/Configuring/Configuring-Hyprland/ # Please note not all available settings / options are set here. # For a full list, see the wiki # You can split this configuration into multiple files # Create your files separately and then link them to this file like this: # source = ~/.config/hypr/myColors.conf ################ ### MONITORS ### ################ # See https://wiki.hyprland.org/Configuring/Monitors/ # monitor=eDP-1,disable monitor=HDMI-1-0,preferred,0x0,1 monitor=eDP-1,preferred,-1920x360,1 ################### ### MY PROGRAMS ### ################### # See https://wiki.hyprland.org/Configuring/Keywords/ # Set programs that you use $terminal = alacritty $fileManager = nautilus $browser = firefox $menu = rofi -show drun -show-icons ################# ### AUTOSTART ### ################# # Autostart necessary processes (like notifications daemons, status bars, etc.) # Or execute your favorite apps at launch like this: # exec-once = $terminal # exec-once = nm-applet & # exec-once = waybar & hyprpaper & firefox exec-once = dbus-update-activation-environment --systemd --all exec-once = systemctl --user import-environment QT_QPA_PLATFORMTHEME WAYLAND_DISPLAY XDG_CURRENT_DESKTOP exec-once = swaync exec-once = hyprpaper exec-once = udiskie exec-once = sleep 10 && synology-drive exec-once = ~/.config/waybar/launch.sh exec-once = wl-paste --type text --watch cliphist store #Stores only text data exec-once = wl-paste --type image --watch cliphist store #Stores only image data ############################# ### ENVIRONMENT VARIABLES ### ############################# # See https://wiki.hyprland.org/Configuring/Environment-variables/ env = XCURSOR_SIZE,24 env = HYPRCURSOR_SIZE,24 env = QT_QPA_PLATFORMTHEME,wayland env = QT_QPA_PLATFORMTHEME,gtk3 env = QT_STYLE_OVERRIDE,gtk3 env = QT_WAYLAND_DISABLE_WINDOWDECORATION, 1 env = QT_AUTO_SCREEN_SCALE_FACTOR, 1 env = XDG_CURRENT_DESKTOP, Hyprland env = XDG_SESSION_TYPE, wayland env = XDG_SESSION_DESKTOP, Hyprland env = GDK_BACKEND, wayland, x11 env = CLUTTER_BACKEND, wayland env = NIXOS_OZONE_WL,1 env = NIXOS_XDG_OPEN_USE_PORTAL,1 env = MOZ_ENABLE_WAYLAND,1 env = WLR_RENDERER_ALLOW_SOFTWARE,1 env = WLR_NO_HARDWARE_CURSORS,1 env = SDL_VIDEODRIVER, x11 ##################### ### LOOK AND FEEL ### ##################### # Refer to https://wiki.hyprland.org/Configuring/Variables/ # https://wiki.hyprland.org/Configuring/Variables/#general general { gaps_in = 6 gaps_out = 12 border_size = 0 # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg col.inactive_border = rgba(595959aa) # Set to true enable resizing windows by clicking and dragging on borders and gaps resize_on_border = true # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on allow_tearing = false layout = dwindle } # https://wiki.hyprland.org/Configuring/Variables/#decoration decoration { rounding = 10 # Change transparency of focused and unfocused windows active_opacity = 1.0 inactive_opacity = 1.0 drop_shadow = true shadow_range = 4 shadow_render_power = 3 col.shadow = rgba(1a1a1aee) # https://wiki.hyprland.org/Configuring/Variables/#blur blur { enabled = true # size = 3 # passes = 1 # # vibrancy = 0.1696 size = 5 passes = 3 new_optimizations = on ignore_opacity = off } active_opacity = 1.0 inactive_opacity = 0.9 fullscreen_opacity = 1.0 } # https://wiki.hyprland.org/Configuring/Variables/#animations animations { enabled = true # 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 bezier = wind, 0.05, 0.9, 0.1, 1.05 bezier = winIn, 0.1, 1.1, 0.1, 1.1 bezier = winOut, 0.3, -0.3, 0, 1 bezier = liner, 1, 1, 1, 1 animation = windows, 1, 6, wind, slide animation = windowsIn, 1, 6, winIn, slide animation = windowsOut, 1, 5, winOut, slide animation = windowsMove, 1, 5, wind, slide animation = border, 1, 1, liner animation = fade, 1, 10, default animation = workspaces, 1, 5, wind } # 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 } # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more master { new_status = master } # https://wiki.hyprland.org/Configuring/Variables/#misc misc { force_default_wallpaper = 0 # Set to 0 or 1 to disable the anime mascot wallpapers disable_hyprland_logo = true # If true disables the random hyprland logo / anime girl background. :( # vrr = 1 # vfr = true } ############# ### INPUT ### ############# # https://wiki.hyprland.org/Configuring/Variables/#input input { kb_layout = us kb_variant = altgr-intl kb_model = kb_options = kb_rules = follow_mouse = 1 sensitivity = 0 # -1.0 - 1.0, 0 means no modification. touchpad { natural_scroll = false } } # https://wiki.hyprland.org/Configuring/Variables/#gestures gestures { workspace_swipe = true workspace_swipe_fingers = 3 } # Example per-device config # See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more device { name = epic-mouse-v1 sensitivity = -0.5 } #################### ### KEYBINDINGSS ### #################### # See https://wiki.hyprland.org/Configuring/Keywords/ $mainMod = SUPER # Sets "Windows" key as main modifier # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more bind = $mainMod, RETURN, exec, $terminal bind = $mainMod, W, killactive, bind = $mainMod SHIFT, M, exit, bind = $mainMod, E, exec, $fileManager bind = $mainMod, U, fullscreen, 1 bind = $mainMod SHIFT, U, fullscreen bind = $mainMod, F, togglefloating, bind = $mainMod, SPACE, exec, $menu bind = $mainMod, P, pseudo, # dwindle bind = $mainMod, J, togglesplit, # dwindle bind = $mainMod SHIFT, J, swapsplit, # dwindle bind = $mainMod, B, exec, $browser # dwindle bind = $mainMod SHIFT, C, exec, capture-screen-selection # Show screnshoting capture tool bind = $mainMod CTRL, C, exec, capture-screen-selection -o # Capture last selected area bind = $mainMod SHIFT, N, exec, swaync-client -t # Show notification panel # 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 # Example special workspace (scratchpad) bind = $mainMod, S, togglespecialworkspace, magic bind = $mainMod SHIFT, S, movetoworkspace, special:magic # 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 ############################## ### WINDOWS AND WORKSPACES ### ############################## # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more # See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules # Example windowrule v1 # windowrule = float, ^(kitty)$ # Example windowrule v2 # windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ windowrulev2 = suppressevent maximize, class:.* # You'll probably like this. # layerrule = noanim,rofi # trigger when the switch is turning off bindl = , switch:off:Lid Switch,exec,hyprctl keyword monitor "eDP-1,1920x1080@60.01,0x0,1" # trigger when the switch is turning on bindl = , switch:on:Lid Switch,exec,hyprctl keyword monitor "eDP-1, disable" ======Config-End======== ```

Description

Randomly at the beginning and more frequently as I spend hours working, display errors occur on the screen as shown in the video, mainly on the external screen and sometimes on the laptop screen.

System: NixOS 24.11 (Vicuna)

https://github-production-user-asset-6210df.s3.amazonaws.com/23419327/336187303-7e56f804-12f4-4d52-bdd5-0e0422e314cb.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAVCODYLSA53PQK4ZA%2F20240621%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240621T050452Z&X-Amz-Expires=300&X-Amz-Signature=17bb29bd7f238e3e0f6070279970a484d3c6384902e512ec53f546bc4c9660c1&X-Amz-SignedHeaders=host&actor_id=23419327&key_id=0&repo_id=470730648

How to reproduce

I use NixOS with this configuration for hyprland

Flake

{
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
    nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-23.11";

    home-manager = {
      url = "github:nix-community/home-manager";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
}

Hyprland module

{ inputs, pkgs, ... }: {

  programs.hyprland = {
    enable = true;

    package = inputs.hyprland.packages.${pkgs.system}.hyprland;
    xwayland.enable = true;
  };

  programs.dconf.enable = true;

  environment.sessionVariables = { };

  services = {
    # Applications messaging system
    dbus = {
      enable = true;

      packages = with pkgs; [
        gcr # crypto services (from gnome)
        dconf # settings daemon (from gnome)
      ];
    };
  };

  xdg = {
    portal = {
      enable = true;

      extraPortals = with pkgs; [
        xdg-desktop-portal-gtk
      ];
      configPackages = [
        pkgs.xdg-desktop-portal-gtk
      ];
    };
  };

  hardware = {
    opengl =
      {
        enable = true;

        driSupport = true;
        driSupport32Bit = true;
      };
  };
}

Crash reports, logs, images, videos

[LOG] Instance Signature: 1360677478e867034713e5d43d7a8a8f6bf1343d_1718944812_1078073319
[LOG] Runtime directory: /run/user/1000/hypr/1360677478e867034713e5d43d7a8a8f6bf1343d_1718944812_1078073319
[LOG] Hyprland PID: 3552
[LOG] ===== SYSTEM INFO: =====
[LOG] System name: Linux
[LOG] Node name: dev-system
[LOG] Release: 6.6.33
[LOG] Version: #1-NixOS SMP PREEMPT_DYNAMIC Wed Jun 12 09:13:03 UTC 2024

[LOG] GPU information:
04:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Renoir [Radeon RX Vega 6 (Ryzen 4000/5000 Mobile Series)] [1002:1636] (rev c6) (prog-if 00 [VGA controller])

[LOG] os-release:
ANSI_COLOR="1;34"
BUG_REPORT_URL="https://github.com/NixOS/nixpkgs/issues"
BUILD_ID="24.11.20240613.e9ee548"
DOCUMENTATION_URL="https://nixos.org/learn.html"
HOME_URL="https://nixos.org/"
ID=nixos
IMAGE_ID=""
IMAGE_VERSION=""
LOGO="nix-snowflake"
NAME=NixOS
PRETTY_NAME="NixOS 24.11 (Vicuna)"
SUPPORT_URL="https://nixos.org/community.html"
VERSION="24.11 (Vicuna)"
VERSION_CODENAME=vicuna
VERSION_ID="24.11"

[LOG] ========================

[INFO] If you are crashing, or encounter any bugs, please consult https://wiki.hyprland.org/Crashes-and-Bugs/

[LOG]
Current splash: It's like Hypr, but better.

[LOG] Creating the EventLoopManager!
[LOG] Creating the HookSystem!
[LOG] Creating the KeybindManager!
[LOG] Creating the AnimationManager!
[LOG] Created a bezier curve, baked 255 points, mem usage: 4.08kB, time to bake: 68.17µs. Estimated average calc time: 0.33µs.
[LOG] Creating the ConfigManager!
[LOG] Created a bezier curve, baked 255 points, mem usage: 4.08kB, time to bake: 17.32µs. Estimated average calc time: 0.24µs.
[LOG] Using config: /home/ajmasia/.config/hypr/hyprland.conf
[INFO] !!!!HEY YOU, YES YOU!!!!: further logs to stdout / logfile are disabled by default. BEFORE SENDING THIS LOG, ENABLE THEM. Use debug:disable_logs = false to do so: https://wiki.hyprland.org/Configuring/Variables/#debug
ajmasia commented 3 months ago

I have found that when I use Hyprland with the laptop screen closed, this does not happen.

ajmasia commented 3 months ago

I've tested too with my desktop PC with the same config and two monitors. I get the same issue. When I only use one monitor works fine :thinking:

vaxerski commented 3 months ago

are you sure this is not a regression? Have you tried 0.39.1?

ajmasia commented 3 months ago

No @vaxerski, I will switch back to the 0.39.1 version to see if it fails :blush:

ajmasia commented 3 months ago

@vaxerski I've tested 0.39.1 and don't works fine ... :blush:

vaxerski commented 3 months ago

then it could be a driver bug, no clue how hyprland would be doing this.

musicfunfan commented 3 months ago

I have the same thing on my system. HyprlandBug

I did not say anything because i was thinking it was something hardware related....

I have for some time now...

ajmasia commented 3 months ago

@musicfunfan I don't think it is hardware related because I have tried with other Tile Managers like i3 and even Gnome and it works fine.

vaxerski commented 3 months ago

does sway work fine? If 0.39.1 has the same bug I am unsure what could be causing this.

ajmasia commented 3 months ago

@vaxerski the same happens with version 0.39.1

Is it possible that this is due to the kernel version?

vaxerski commented 3 months ago

I have no clue, I use amd and have never seen this.

ajmasia commented 3 months ago

@vaxerski @fufexan I have been testing how I have it implemented starting from scratch and I have realized that it starts to fail if I manage the configuration from home-manager. If I manage the configuration manually, these problems start to appear randomly. There must be something that defines the home-manager module that makes it not work properly. I insist, this only happens when more than one screen is connected.

My current config: (home-manager config is disabled)

window0manager.nix (NixOS module)

{ inputs, pkgs, ... }: {

  programs.hyprland = {
    enable = true;
    # package = inputs.hyprland.packages.${pkgs.system}.hyprland;
  };

  programs.dconf.enable = true;

  environment.sessionVariables = {
    NIXOS_OZONE_WL = "1"; # hint electron apps to use wayland
    NIXOS_XDG_OPEN_USE_PORTAL = "1"; # needed to open apps after web login

    MOZ_ENABLE_WAYLAND = "1"; # ensure enable wayland for Firefox

    WLR_RENDERER_ALLOW_SOFTWARE = "1"; # enable software rendering for wlroots
    WLR_NO_HARDWARE_CURSORS = "1"; # disable hardware cursors for wlroots
  };

  services = {
    # Applications messaging system
    dbus = {
      enable = true;

      packages = with pkgs; [
        gcr # crypto services (from gnome)
        dconf # settings daemon (from gnome)
      ];
    };
  };

  xdg = {
    portal = {
      enable = true;

      extraPortals = with pkgs; [
        xdg-desktop-portal-gtk
        xdg-desktop-portal
      ];
      configPackages = with pkgs; [
        xdg-desktop-portal-gtk
        xdg-desktop-portal
        xdg-desktop-portal-hyprland
      ];
    };
  };
  # hardware opengl settings enabled by nixos-hardware flake
  # https://github.com/NixOS/nixos-hardware/blob/master/common/gpu/amd/default.nix
}

hyprland.conf

# You can split this configuration into multiple files
# Create your files separately and then link them to this file like this:
# source = ~/.config/hypr/myColors.config

# Environment
# See https://wiki.hyprland.org/Configuring/Environment-variables/
env = XCURSOR_SIZE,24
env = HYPRCURSOR_SIZE,24

env = QT_QPA_PLATFORMTHEME,gtk3
env = QT_STYLE_OVERRIDE,gtk3
env = QT_WAYLAND_DISABLE_WINDOWDECORATION, 1
env = QT_AUTO_SCREEN_SCALE_FACTOR, 1

# Variables
# https://wiki.hyprland.org/Configuring/Keywords/#defining-variables
$terminal = alacritty
$fileManager = nautilus
$menu = rofi -show drun -show-icons
$mainMod = SUPER # sets windows key as main modifier

# Monitors
# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=HDMI-1-0,preferred,0x0,1
monitor=eDP-1,preferred,-1920x360,1

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

# Ensure dbus environment and systemd variables are set properly when hyprland will be started
exec-once = dbus-update-activation-environment --systemd --all
# Ensure user systemd environment variables are set properly when hyprland will be started
exec-once = systemctl --user import-environment QT_QPA_PLATFORMTHEME WAYLAND_DISPLAY XDG_CURRENT_DESKTOP

# Launch hyprpaper wallpaper daemon
exec-once=systemctl --user start hyprpaper.service
# Launch hyprland idle daemon
exec-once=systemctl --user start swayidle.service
# Launch gammastep color temperature daemon
exec-once=systemctl --user start gammastep.service
# Launch network manager applet daemon
exec-once=systemctl --user start nm-applet.service
# Launch swaync notification daemon
exec-once = swaync
# Launch waybar status bar
exec-once = ~/.config/waybar/launch.sh
# Launch synology drive client
exec-once = sleep 10 && synology-drive
# Launch udiskie automount daemon
exec-once = udiskie

# Look and feel
# General 
# https://wiki.hyprland.org/Configuring/Variables/#general
general { 
    gaps_in = 6
    gaps_out = 12

    border_size = 2

    # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
    col.active_border = rgb(f5bde6)
    col.inactive_border = rgb(24273a)

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

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

    layout = dwindle
}

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

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

    drop_shadow = true
    shadow_range = 4
    shadow_render_power = 3
    col.shadow = rgba(1a1a1aee)

    # https://wiki.hyprland.org/Configuring/Variables/#blur
    blur {
        enabled = true
        size = 3
        passes = 1
        vibrancy = 0.1696
    }
}

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

    # 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
}

# Layouts
# 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
}

# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
master {
    new_status = master
}

# Other variables
# https://wiki.hyprland.org/Configuring/Variables/#misc
misc { 
    force_default_wallpaper = 0 # Set to 0 or 1 to disable the anime mascot wallpapers
    disable_hyprland_logo = true # If true disables the random hyprland logo / anime girl background. :(
}

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

    # mouse
    follow_mouse = 1
    sensitivity = 0

    touchpad {
        natural_scroll = false
    }
}

# Gestures
# https://wiki.hyprland.org/Configuring/Variables/#gestures
gestures {
    workspace_swipe = true
    workspace_swipe_fingers = 3
}

# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
# Run hyprctl devices to see detected devices
device {
    name = logitech-mx-vertical-1
    sensitivity = 0
}

# Keybinds
# See https://wiki.hyprland.org/Configuring/Keywords/

# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, SPACE, exec, $menu
bind = $mainMod, W, killactive,
bind = $mainMod SHIFT, M, exit,
bind = $mainMod, U, fullscreen, 1
bind = $mainMod SHIFT, U, fullscreen
bind = $mainMod, F, togglefloating,
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, J, togglesplit, # dwindle
bind = $mainMod SHIFT, J, swapsplit, # dwindle

bind = $mainMod, RETURN, exec, $terminal
bind = $mainMod, E, exec, $fileManager
bind = $mainMod, B, exec, $browser

bind = $mainMod SHIFT, C, exec, capture-screen-selection # Show screnshoting capture tool 
bind = $mainMod CTRL, C, exec, capture-screen-selection -o # Capture last selected area
bind = $mainMod SHIFT, N, exec, swaync-client -t # Show notification panel 

# 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

# Example special workspace (scratchpad)
bind = $mainMod, S, togglespecialworkspace, magic
bind = $mainMod SHIFT, S, movetoworkspace, special:magic

# 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

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

windowrulev2 = suppressevent maximize, class:.*
fufexan commented 3 months ago

I have been testing how I have it implemented starting from scratch and I have realized that it starts to fail if I manage the configuration from home-manager. If I manage the configuration manually, these problems start to appear randomly. There must be something that defines the home-manager module that makes it not work properly.

You could compare the config generated by Home Manager with the manually created one, and see what the differences are.

musicfunfan commented 3 months ago

I did not use the home-manager (I do not know what this is.) I have written my config file base on basic example. You can find my config file here.

ajmasia commented 3 months ago

@fufexan home-manager generate and empty config file and if you enable systemd add to the top this config:

exec-once = /nix/store/y29cbwfiwb9nyi4db4apk9dgylzdjm1v-dbus-1.14.10/bin/dbus-update-activation-environment --systemd DISPLAY HYPRLAND_INSTANCE_SIGNATURE WAYLAND_DISPLAY XDG_CURRENT_DESKTOP && systemctl --user stop hyprland-session.target && systemctl --user start hyprland-session.target

It is very strange and frustrating. I love Hyprland and can't use it normally :blush:

fufexan commented 3 months ago

generate and empty config file

If you don't provide anything in hyprland.settings or hyprland.extraConfig, then yes, that's expected.

ajmasia commented 2 months ago

@fufexan @vaxerski It seems that the problem is due to the gammastep service. I have deactivated it and it does not seem to fail. I am still observing ... :blush:

musicfunfan commented 2 months ago

I do not use gammastep. But i use wlsunset. To set temperature color. But on my system the artifacts is random and its very rare.

vaxerski commented 2 months ago

my guess is that those apps change the gamma ramps every now and then and the driver may produce some artifacts whenever the gamma changes.

ajmasia commented 2 months ago

I've been using this for almost 24 hours now and it seems to be working fine. What you say @vaxerski, could it be solved? You mean the AMD driver right?

ajmasia commented 2 months ago

Testing wlsunset today I noticed no artifacts in the morning changes when wlsunset changed the color temperature.

image

vaxerski commented 2 months ago

likely the AMD driver, I can't be sure though. Pretty sure it's not hyprland, tho.

ajmasia commented 2 months ago

Thanks @vaxerski and the others devs! Hyprland is amazing!

vaxerski commented 2 months ago

you should also keep an eye on #6608, as that yanks wlroots. Could either improve or degrade this.

musicfunfan commented 2 months ago

I can confirm that the problem occur on the hours wlsunset changes my color temp. For this is happening with wlsunset too.