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
21.83k stars 908 forks source link

no hot reloading for env? #8386

Closed littleblack111 closed 2 weeks ago

littleblack111 commented 2 weeks ago

Already reported ? *

Regression?

Yes, No

System Info and Version

System/Version info ```sh Hyprland 0.44.0 built from branch main at commit f73106cd47172910701085079e78d2ba322d0d72 (). Date: Fri Nov 8 17:27:29 2024 Tag: v0.44.0-137-gf73106cd, commits: 5436 built against aquamarine 0.4.2 flags set: debug System Information: System name: Linux Node name: Arch-Linux Release: 6.11.6-zen1-1-zen Version: #1 ZEN SMP PREEMPT_DYNAMIC Fri, 01 Nov 2024 03:30:35 +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 565.57.01 Thu Oct 10 12:29:05 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: ======Config-Start====== Config File: /home/system/.config/hypr/hyprland.conf: Read Succeeded ################ ### MONITORS ### ################ # See https://wiki.hyprland.org/Configuring/Monitors/ monitor=,highres@highrr,auto,auto # ,bitdepth,10 # monitor=,preferred,auto,auto,bitdepth,10 ################### ### MY PROGRAMS ### ################### # Program defaults $terminal = alacritty $termfloat = [float; size 40% 40%; workspace +0] alacritty $editor = lvim # $browser = thorium-browser $browser = zen-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 = 12 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 = 7 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 snap { enabled = true } } 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 = outsideIn, 0.5, 1.1, 0, 0.9 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 # animation = windowsOut, 1, 2, slow-fast, popin 15% animation = windowsOut, 1, 2, slow-fast, popin 15% # animation = windowsMove, 1, 2, md3_accel # when new window appears, it will block it for a while since its slower then windowIn animation 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 force_split = 3 } # 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)$ 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 repeat_delay = 300 # touchpad { # natural_scroll = false # } } cursor { # allow_dumb_copy = true no_hardware_cursors = true no_break_fs_vrr = true # zoom_rigid = true persistent_warps = 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 = # 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 = # default: 2 # # offset from group split direction when only one window is in a group # # group_inset = # default: 10 # # if a tab group will automatically be created for the first window spawned in a workspace # # tab_first_window = # # tab group settings # tabs { # # height of the tab bar # # height = # default: 15 # # padding between the tab bar and its focused node # # padding = # default: 5 # # the tab bar should animate in/out from the top instead of below the window # # from_top = # default: false # # rounding of tab bar corners # # rounding = # default: 3 # # render the window title on the bar # # render_text = # default: true # # center the window title # # text_center = # default: false # # font to render the window title with # # text_font = # default: Sans # # height of the window title # # text_height = # default: 8 # # left padding of the window title # # text_padding = # default: 3 # # active tab bar segment color # # col.active = # default: 0xff32b4ff # # urgent tab bar segment color # # col.urgent = # default: 0xffff4f4f # # inactive tab bar segment color # # col.inactive = # default: 0x80808080 # # active tab bar text color # # col.text.active = # default: 0xff000000 # # urgent tab bar text color # # col.text.urgent = # default: 0xff000000 # # inactive tab bar text color # # col.text.inactive = # default: 0xff000000 # } # # autotiling settings # autotile { # # enable autotile # # enable = # default: false # # make autotile-created groups ephemeral # # ephemeral_groups = # 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 # # = pixel height to split at # # trigger_width = # 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 # # = pixel height to split at # # trigger_height = # 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 = # default: all # } # } # hyprwinwrap { # class = winwrap # } } 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/5598973-uhd_3840_2160_30fps.mp4.png $background = rgb(1F1F1D) $foreground = rgb(E1E5E7) $cursor = rgb(E1E5E7) $color0 = rgb(454643) $color1 = rgb(1D2116) $color2 = rgb(262730) $color3 = rgb(6B6F7D) $color4 = rgb(9FADB8) $color5 = rgb(AFB2BB) $color6 = rgb(A8B5BA) $color7 = rgb(CBD1D4) $color8 = rgb(8E9394) $color9 = rgb(1D2116) $color10 = rgb(262730) $color11 = rgb(6B6F7D) $color12 = rgb(9FADB8) $color13 = rgb(AFB2BB) $color14 = rgb(A8B5BA) $color15 = rgb(CBD1D4) 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_QPA_PLATFORM = xcb env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1 env = QT_QPA_PLATFORMTHEME,qt6ct # env = SDL_VIDEODRIVER,wayland 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 # Electron blurry etc fix 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 # firefox env = MOZ_DISABLE_RDD_SANDBOX, 1 env = MOZ_ENABLE_WAYLAND,1 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% 4.8%, 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 # It grabs our focus when it change video windowrulev2 = suppressevent activatefocus, 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|thorium|zen-alpha)$ # 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.*|libreoffice.*|Soffice|Typora|obsidian|figma-linux|anytype|craft-nativefier-e0958b|evince)$ # 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|Spotify)$ # Games windowrulev2 = tag games, class:^(Minecraft|Badlion|War|steam_proton|steam|csgo_linux64|cs2|minecraft-launcher|lutris|genshinimpact.exe|moe.launcher.an-anime-game-launcher|lunarclient|Lunar Client.*|zenlesszonezero.exe|moe.launcher.sleepy-launcher|org.vinegarhq.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:^(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|com.github.rafostar.Clapper)|Sign in – Google accounts$ windowrulev2 = float, title:^(Steam Settings)$ # pin apps windowrulev2 = pin, title:^(zoom_linux_float_video_window)$ # 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)$ # firefox windowrulev2 = float, title:^Extension # 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.*|gcr-prompter|io.missioncenter.MissionCenter)$ windowrulev2 = tag time-sensitive, title:^(Open File|Open|Select a File|Choose wallpaper|Open Folder|Save As|Save File|Library|File Upload|.*- Properties)$ 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, class:^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 # no blurs windowrulev2 = noblur, 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 # movefocus_cycles_fullscreen = true } # See https://wiki.hyprland.org/Configuring/Keywords/ $mainMod = SUPER # Sets "SUPER" key as main modifier # Launching... bind = $mainMod, return, execr, $terminal bind = $mainMod shift, return, exec, $termfloat # bind = $mainMod space, return, execr, $terminal start --class pseudo bind = $mainMod alt, Delete, execr, pkill rofi || $rofiexec/rofi_powermenu bind = alt, F1, execr, pkill rofi || $rofiexec/rofi_launcher bind = alt, F2, execr, pkill rofi || $rofiexec/rofi_runner bind = $mainMod, period, execr, pkill rofi || $rofiexec/rofi_emoji # utils bind = $mainMod, c, execr, pkill rofi || $rofiexec/rofi_configs bind = $mainMod, m, execr, pkill rofi || $rofiexec/rofi_music bind = $mainMod, n, execr, nmd bind = $mainMod, r, execr, pkill rofi || $rofiexec/rofi_asroot bind = $mainMod, s, execr, pkill rofi || $rofiexec/rofi_screenshot bind = $mainMod, v, execr, pkill rofi || $rofiexec/rofi_clipboard bind = $mainMod, w, execr, pkill rofi || $rofiexec/rofi_windows bind = $mainMod, x, execr, pkill rofi || $rofiexec/rofi_powermenu bind = $mainMod, b, execr, pkill rofi || $rofiexec/rofi_bluetooth # GUI bind = $mainMod shift, f, execr, $fileManager # bind = $mainMod shift, w, execr, $browser --restore-last-session bind = $mainMod shift, w, execr, $browser # -new-tab about:sessionrestore bind = $mainMod shift, e, execr, cursor bind = $mainMod shift, d, execr, discord $waylandarg bind = $mainMod shift, b, execr, 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, execr, pkill rofi || $rofiexec/rofi_shutdown_menu bindtp = ctrl shift, escape, execr, missioncenter # Misc # bind = ctrl alt, m, execr, music bind = $mainMod, p, execr, hyprpicker --autocopy bindtp = ctrl alt, l, execr, loginctl lock-session # Misc bind = $mainMod shift, g, execr, gtk-launch shortwave.desktop # bind = $mainMod shift, c, execr, gtk-launch google-chat.desktop # XF86 keys & Misc bind = ,XF86Print, execr, pidof slurp || $HOME/scripts/sysutil.sh screenshot --now bind = alt, XF86AudioMute, execr, $HOME/scripts/sysutil.sh screenshot --in5sec bind = $mainMod shift, s, execr, $HOME/scripts/sysutil.sh screenshot --area # Volume binde = ,XF86AudioRaiseVolume, execr, $HOME/scripts/sysutil.sh volume --inc binde = ,XF86AudioLowerVolume, execr, $HOME/scripts/sysutil.sh volume --dec bind = ,XF86AudioMute, execr, $HOME/scripts/sysutil.sh volume --toggle bind = ,XF86AudioMicMute, execr, $HOME/scripts/sysutil.sh volume --toggle-mic bind = ,XF86AudioNext, execr, playerctl -p spotify next bind = ,XF86AudioPrev, execr, playerctl -p spotify previous bindl = ,XF86AudioPlay, exec, [workspace 7 silent; noinitialfocus] $HOME/scripts/play-pause.sh || LD_PRELOAD=/usr/lib/spotify-adblock.so spotify bind = ,XF86AudioStop, execr, playerctl -p spotify stop bind = ,XF86PowerOff, execr, pkill rofi || $rofiexec/rofi_shutdown # Pause bind = ,Pause, execr, hyprfreeze -s -a # Print bind = ,Print, execr, $HOME/scripts/hyprshot --now # Brightness bind = ,XF86MonBrightnessUp, execr, $HOME/scripts/sysutil.sh brightness --inc bind = ,XF86MonBrightnessDown, execr, $HOME/scripts/sysutil.sh brightness --dec # Window management # bind = $mainMod, d, execr, $HOME/scripts/hyprhide h # bind = $mainMod, i, execr, $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, execr, kill -9 $(hyprctl activewindow | grep pid | tail -1 | awk '{print$2}') bind = ctrl alt, escape, execr, hyprctl kill bind = ctrl $mainMod shift, r, execr, systemctl restart $sessionManager # restart bar bind = ctrl $mainMod, escape, execr, killall -SIGUSR2 waybar || waybar & # reload wall bind = $mainMod alt, b, execr, killall wallust; killall mpvpaper.sh; $SCRIPTSDIR/mpvpaper.sh # bind = ctrl, up, hyprexpo:expo, on # bind = ctrl, down, hyprexpo:expo, off bind = ctrl $mainMod alt, up, overview:open bind = ctrl $mainMod alt, down, overview:close # bind = alt, tab, execr, hyprswitch gui # bind = alt, grave, execr, hyprswitch gui --reverse # bindr = alt, tab, execr, hyprswitch close # bindr = alt, grave, execr, hyprswitch close bind = alt, tab, execr, hyprswitch gui --mod-key alt_l --key tab --close mod-key-release --reverse-key=key=grave && hyprswitch dispatch bind = alt, grave, execr, hyprswitch gui --mod-key alt_l --key tab --close mod-key-release --reverse-key=key=grave && hyprswitch dispatch -r binde = ctrl alt, left, workspace, -1 binde = ctrl alt, right, workspace, +1 binde = $mainMod shift, left, movewindow, l binde = $mainMod shift, right, movewindow, r binde = $mainMod shift, up, movewindow, u binde = $mainMod shift, down, movewindow, d binde = $mainMod shift, h, movewindow, l binde = $mainMod shift, l, movewindow, r binde = $mainMod shift, k, movewindow, u binde = $mainMod shift, j, movewindow, d # binde = ctrl shift, left, resizeactive, -20 0 # binde = ctrl shift, left, moveactive, 20 0 # binde = ctrl shift, right, resizeactive, -20 0 # binde = ctrl shift, up, resizeactive, 0 -20 # binde = ctrl shift, up, moveactive, 0 20 # binde = ctrl shift, down, resizeactive, 0 -20 binde = ctrl $mainMod, left, resizeactive, 20 0 binde = ctrl $mainMod, left, moveactive, -20 0 binde = ctrl $mainMod, right, resizeactive, 20 0 binde = ctrl $mainMod, up, resizeactive, 0 20 binde = ctrl $mainMod, up, moveactive, 0 -20 binde = ctrl $mainMod, down, resizeactive, 0 20 binde = ctrl $mainMod alt, f, setfloating, 1 binde = ctrl $mainMod alt, f, centerwindow, 1 binde = shift alt, left, moveactive, -20 0 binde = shift alt, right, moveactive, 20 0 binde = shift alt, up, moveactive, 0 -20 binde = shift alt, down, moveactive, 0 20 # window shortcuts bind = $mainMod, f, fullscreen, bind = $mainMod, space, togglefloating, bind = $mainMod shift, space, pseudo, # dwindle bind = $mainMod shift, m, togglesplit, # dwindle # Move focus with mainMod + arrow keys binde = $mainMod, left, movefocus, l binde = $mainMod, right, movefocus, r binde = $mainMod, up, movefocus, u binde = $mainMod, down, movefocus, d # vim binds binde = $mainMod, h, movefocus, l binde = $mainMod, l, movefocus, r binde = $mainMod, k, movefocus, u binde = $mainMod, j, 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:275, execr, exec -a autoclicker-left zsh -c 'while true; do wlrctl pointer click; sleep $((0.$RANDOM/10)); done' bindi = ,mouse:276, execr, exec -a autoclicker-right zsh -c 'while true; do wlrctl pointer click right; sleep $((0.$RANDOM/10)); done' bindri = ,mouse:275, execr, kill $(pgrep -f autoclicker-left) bindri = ,mouse:276, execr, kill $(pgrep -f autoclicker-right) # Make group # bind = $mainMod, g, togglegroup # bindie = ,mouse:276, execr, wlrctl pointer click # bindie = ,mouse:275, execr, wlrctl pointer click right # bindri = ,mouse:276, execr, kill $(pgrep -f autoclicker-left) # bindri = ,mouse:275, execr, kill $(pgrep -f autoclicker-right) # chroma bind = $mainMod, O, togglechromakey # input capture bind = $mainMod SHIFT, escape, releaseinputcapture 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 exec-once = systemctl --user start hyprpolkitagent # 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 --size-factor 5 # 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 # exec-once = $HOME/scripts/hyprsunset.sh # user applications exec-once = udiskie exec-once = bitwarden-desktop # exec-once = kdeconnectd exec-once = input-leap # works with https://github.com/3l0w/Hyprland/tree/feat/input-capture-impl exec-once = nextcloud --background exec-once = [workspace 6 silent; noinitialfocus] discord --start-minimized exec-once = beeper --no-sandbox --hidden --default-frame # 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

i.e. env=test,1 it wont be working unless i restart hyprland(echo $test wont echo nothing) and if i remove it, it'd still exist (verify by echo $test)

How to reproduce

  1. set env var
  2. u cant use it until restart
  3. unset/remove env var
  4. its not removed until restart

Crash reports, logs, images, videos

No response

vaxerski commented 2 weeks ago

No hot reloading for env, its documented