| @ -0,0 +1,183 @@ | |||
| # See https://wiki.hyprland.org/Configuring/Monitors/ | |||
| monitor=DVI-D-1,preferred,-1920x0,auto | |||
| monitor=HDMI-A-1,preferred,auto,auto | |||
| # workspace binding | |||
| workspace=1,monitor:DVI-D-1 | |||
| workspace=2,monitor:HDMI-A-1 | |||
| workspace=3,monitor:HDMI-A-1 | |||
| workspace=4,monitor:HDMI-A-1 | |||
| workspace=5,monitor:HDMI-A-1 | |||
| workspace=6,monitor:HDMI-A-1 | |||
| workspace=7,monitor:HDMI-A-1 | |||
| workspace=8,monitor:HDMI-A-1 | |||
| workspace=9,monitor:HDMI-A-1 | |||
| workspace=10,monitor:HDMI-A-1 | |||
| # Execute your favorite apps at launch | |||
| exec-once = ~/.config/hypr/xdg.sh | |||
| exec-once = hyprpaper | |||
| exec-once = swayidle -w timeout 600 swaylock before-sleep swaylock | |||
| exec-once = ~/.config/hypr/start-in-tray.sh | |||
| # Set programs that you use | |||
| $terminal = alacritty | |||
| $fileManager = dolphin | |||
| $menu = wofi --show drun | |||
| # Some default env vars. | |||
| env = XCURSOR_SIZE,24 | |||
| # For all categories, see https://wiki.hyprland.org/Configuring/Variables/ | |||
| input { | |||
| kb_layout = us | |||
| kb_variant = | |||
| kb_model = | |||
| kb_options = | |||
| kb_rules = | |||
| follow_mouse = 1 | |||
| touchpad { | |||
| natural_scroll = no | |||
| } | |||
| sensitivity = 0 # -1.0 - 1.0, 0 means no modification. | |||
| } | |||
| general { | |||
| # See https://wiki.hyprland.org/Configuring/Variables/ for more | |||
| gaps_in = 5 | |||
| gaps_out = 10 | |||
| border_size = 2 | |||
| col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg | |||
| col.inactive_border = rgba(595959aa) | |||
| layout = master | |||
| # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on | |||
| allow_tearing = false | |||
| } | |||
| decoration { | |||
| # See https://wiki.hyprland.org/Configuring/Variables/ for more | |||
| rounding = 5 | |||
| blur { | |||
| enabled = true | |||
| size = 3 | |||
| passes = 1 | |||
| } | |||
| drop_shadow = yes | |||
| shadow_range = 4 | |||
| shadow_render_power = 3 | |||
| col.shadow = rgba(1a1a1aee) | |||
| } | |||
| animations { | |||
| enabled = yes | |||
| # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more | |||
| bezier = myBezier, 0.05, 0.9, 0.1, 1.05 | |||
| animation = windows, 1, 7, myBezier | |||
| animation = windowsOut, 1, 7, default, popin 80% | |||
| animation = border, 1, 10, default | |||
| animation = borderangle, 1, 8, default | |||
| animation = fade, 1, 7, default | |||
| animation = workspaces, 1, 6, default | |||
| } | |||
| dwindle { | |||
| # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more | |||
| pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below | |||
| preserve_split = yes # you probably want this | |||
| } | |||
| master { | |||
| new_is_master = true | |||
| new_on_top = true | |||
| } | |||
| gestures { | |||
| # See https://wiki.hyprland.org/Configuring/Variables/ for more | |||
| workspace_swipe = off | |||
| } | |||
| misc { | |||
| # See https://wiki.hyprland.org/Configuring/Variables/ for more | |||
| force_default_wallpaper = 0 # Set to 0 to disable the anime mascot wallpapers | |||
| } | |||
| # Example per-device config | |||
| # See https://wiki.hyprland.org/Configuring/Keywords/#executing for more | |||
| device:epic-mouse-v1 { | |||
| sensitivity = -0.5 | |||
| } | |||
| # Example windowrule v1 | |||
| # windowrule = float, ^(kitty)$ | |||
| # Example windowrule v2 | |||
| # windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ | |||
| # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more | |||
| windowrulev2 = nomaximizerequest, class:.* # You'll probably like this. | |||
| # See https://wiki.hyprland.org/Configuring/Keywords/ for more | |||
| $mainMod = SUPER | |||
| # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more | |||
| bind = $mainMod SHIFT, Return, exec, $terminal | |||
| bind = $mainMod, Q, killactive, | |||
| bind = $mainMod SHIFT, Q, exit, | |||
| bind = $mainMod, V, togglefloating, | |||
| bind = $mainMod, P, exec, $menu | |||
| # DWM style window management | |||
| bind = $mainMod, Return, layoutmsg, swapwithmaster | |||
| bind = $mainMod, J, layoutmsg, cyclenext | |||
| bind = $mainMod, K, layoutmsg, cycleprev | |||
| bind = $mainMod, I, layoutmsg, addmaster | |||
| bind = $mainMod, D, layoutmsg, removemaster | |||
| # 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 | |||
| @ -0,0 +1,4 @@ | |||
| preload = ~/Pictures/arch-wp-1.png | |||
| wallpaper = DVI-D-1,~/Pictures/arch-wp-1.png | |||
| wallpaper = HDMI-A-1,~/Pictures/arch-wp-1.png | |||
| @ -0,0 +1,34 @@ | |||
| #!/bin/sh | |||
| # start waybar and programs with tray icons after pause | |||
| waybar_loop() { | |||
| # restart waybar on crash (after suspend mode) | |||
| WAYBAR_RESTARTS=0 | |||
| while [ $WAYBAR_RESTARTS != 6 ]; do # limited to 5 restars | |||
| pgrep Hyprland || break # exit if Hyprland is not running | |||
| waybar | |||
| let WAYBAR_RESTARTS++ | |||
| notify-send -a "start-in-tray.sh" "Waybar crashed!" | |||
| sleep 1 | |||
| done | |||
| } | |||
| # wait for xdg-desktop-portal-hyprland to start | |||
| until pgrep -f 'xdg-desktop-portal-hyprland'; do echo 'test' && sleep 2; done | |||
| # override monitor for workspace 2 and 4 with eDP-2 | |||
| # hyprctl monitors | grep eDP-2 && \ | |||
| # hyprctl --batch "keyword workspace 2,monitor:eDP-2 ; keyword workspace 4,monitor:eDP-2" | |||
| waybar_loop & | |||
| sleep 1 # wait for waybar | |||
| nm-applet --indicator & | |||
| # crow & | |||
| # syncthingtray --wait & | |||
| XDG_CURRENT_DESKTOP=gnome telegram-desktop & | |||
| # blueman-applet & | |||
| hyprctl dispatch workspace 1 | |||
| # hyprctl dispatch moveworkspacetomonitor 2 0 | |||
| @ -0,0 +1,8 @@ | |||
| #!/bin/bash | |||
| sleep 1 | |||
| killall -e xdg-desktop-portal-hyprland | |||
| killall -e xdg-desktop-portal-wlr | |||
| killall xdg-desktop-portal | |||
| /usr/lib/xdg-desktop-portal-hyprland & | |||
| sleep 2 | |||
| /usr/lib/xdg-desktop-portal & | |||
| @ -0,0 +1,161 @@ | |||
| { | |||
| "layer": "top", // Waybar at top layer | |||
| "position": "top", // Waybar position (top|bottom|left|right) | |||
| "height": 34, // Waybar height (to be removed for auto height) | |||
| // "width": 1280, // Waybar width | |||
| "spacing": 4, // Gaps between modules (4px) | |||
| // Choose the order of the modules | |||
| "modules-left": ["hyprland/workspaces", "idle_inhibitor", "pulseaudio", "network", "custom/updates"], | |||
| "modules-center": ["hyprland/window"], | |||
| "modules-right": ["cpu", "memory", "temperature", "tray", "clock"], | |||
| // Modules configuration | |||
| "hyprland/workspaces": { | |||
| "disable-scroll": true, | |||
| "on-click": "activate", | |||
| "all-outputs": false, | |||
| // "format": "{name}: {icon}", | |||
| "format": "{name}", | |||
| "on-scroll-up": "hyprctl dispatch workspace m-1 > /dev/null", | |||
| "on-scroll-down": "hyprctl dispatch workspace m+1 > /dev/null", | |||
| }, | |||
| "keyboard-state": { | |||
| "numlock": false, | |||
| "capslock": false, | |||
| "format": "{name} {icon}", | |||
| "format-icons": { | |||
| "locked": "", | |||
| "unlocked": "" | |||
| } | |||
| }, | |||
| "hyprland/window": { | |||
| "max-length": 50, | |||
| "separate-outputs": true | |||
| }, | |||
| "mpd": { | |||
| "format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ {volume}% ", | |||
| "format-disconnected": "Disconnected ", | |||
| "format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ", | |||
| "unknown-tag": "N/A", | |||
| "interval": 2, | |||
| "consume-icons": { | |||
| "on": " " | |||
| }, | |||
| "random-icons": { | |||
| "off": "<span color=\"#f53c3c\"></span> ", | |||
| "on": " " | |||
| }, | |||
| "repeat-icons": { | |||
| "on": " " | |||
| }, | |||
| "single-icons": { | |||
| "on": "1 " | |||
| }, | |||
| "state-icons": { | |||
| "paused": "", | |||
| "playing": "" | |||
| }, | |||
| "tooltip-format": "MPD (connected)", | |||
| "tooltip-format-disconnected": "MPD (disconnected)" | |||
| }, | |||
| "idle_inhibitor": { | |||
| "format": "{icon}", | |||
| "format-icons": { | |||
| "activated": "", | |||
| "deactivated": "" | |||
| } | |||
| }, | |||
| "tray": { | |||
| "spacing": 0 | |||
| }, | |||
| "clock": { | |||
| "tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>", | |||
| "format-alt": "{:%Y-%m-%d}" | |||
| }, | |||
| "cpu": { | |||
| "format": "{usage}% ", | |||
| "tooltip": false | |||
| }, | |||
| "memory": { | |||
| "format": "{}% " | |||
| }, | |||
| "temperature": { | |||
| "critical-threshold": 80, | |||
| "format": "{temperatureC}°C {icon}", | |||
| "format-icons": ["", "", ""] | |||
| }, | |||
| "battery": { | |||
| "states": { | |||
| // "good": 95, | |||
| "warning": 30, | |||
| "critical": 15 | |||
| }, | |||
| "format": "{capacity}% {icon}", | |||
| "format-charging": "{capacity}% 🗲", | |||
| "format-plugged": "{capacity}% ", | |||
| "format-alt": "{time} {icon}", | |||
| // "format-good": "", // An empty format will hide the module | |||
| // "format-full": "", | |||
| "format-icons": ["", "", "", "", ""] | |||
| }, | |||
| "battery#bat2": { | |||
| "bat": "BAT2" | |||
| }, | |||
| "network": { | |||
| // "interface": "wlan0", // (Optional) To force the use of this interface | |||
| "format-wifi": "{essid} ", | |||
| "format-ethernet": "{ipaddr}/{cidr} ", | |||
| "tooltip-format": "{ifname} via {gwaddr} ", | |||
| "format-linked": "{ifname} (No IP) ", | |||
| "format-disconnected": "Disconnected ⚠", | |||
| "format-alt": "{ifname}: {ipaddr}/{cidr}" | |||
| }, | |||
| "pulseaudio": { | |||
| // "scroll-step": 10, // %, can be a float | |||
| "format": "{volume}%{icon} {format_source}", | |||
| "format-bluetooth": "{volume}% {icon} {format_source}", | |||
| "format-bluetooth-muted": " {icon} {format_source}", | |||
| "format-muted": " {format_source}", | |||
| "format-source": "{volume}% ", | |||
| "format-source-muted": "", | |||
| "format-icons": { | |||
| "headphone": "", | |||
| "hands-free": "", | |||
| "headset": "", | |||
| "phone": "", | |||
| "portable": "", | |||
| "car": "", | |||
| "default": ["", "", ""] | |||
| }, | |||
| "on-click": "pavucontrol" | |||
| }, | |||
| "custom/notification": { | |||
| "tooltip": false, | |||
| "format": "{} {icon}", | |||
| "format-icons": { | |||
| "notification": "<span foreground='red'><sup></sup></span> ", | |||
| "none": "", | |||
| "dnd-notification": "<span foreground='red'><sup></sup></span> ", | |||
| "dnd-none": "", | |||
| "inhibited-notification": "<span foreground='red'><sup></sup></span> ", | |||
| "inhibited-none": "", | |||
| "dnd-inhibited-notification": "<span foreground='red'><sup></sup></span> ", | |||
| "dnd-inhibited-none": "" | |||
| }, | |||
| "return-type": "json", | |||
| "exec-if": "which swaync-client", | |||
| "exec": "swaync-client -swb", | |||
| "on-click": "sleep 0.1 && swaync-client -t -sw", | |||
| "on-click-right": "swaync-client -d -sw", | |||
| "escape": true | |||
| }, | |||
| "custom/updates": { | |||
| "format": "{} {icon}", | |||
| "return-type": "json", | |||
| "format-icons": { | |||
| "has-updates": "", | |||
| "updated": "" | |||
| }, | |||
| "exec-if": "which waybar-module-pacman-updates", | |||
| "exec": "waybar-module-pacman-updates" | |||
| } | |||
| } | |||
| @ -0,0 +1,98 @@ | |||
| @define-color base00 #181818; | |||
| @define-color base01 #2b2e37; | |||
| @define-color base02 #3b3e47; | |||
| @define-color base03 #585858; | |||
| @define-color base04 #b8b8b8; | |||
| @define-color base05 #d8d8d8; | |||
| @define-color base06 #e8e8e8; | |||
| @define-color base07 #f8f8f8; | |||
| @define-color base08 #ab4642; | |||
| @define-color base09 #dc9656; | |||
| @define-color base0A #f7ca88; | |||
| @define-color base0B #a1b56c; | |||
| @define-color base0C #86c1b9; | |||
| @define-color base0D #7cafc2; | |||
| @define-color base0E #ba8baf; | |||
| @define-color base0F #a16946; | |||
| * { | |||
| transition: none; | |||
| box-shadow: none; | |||
| } | |||
| #waybar { | |||
| font-family: 'Source Code Pro', sans-serif; | |||
| font-size: 1.2em; | |||
| font-weight: 400; | |||
| color: @base04; | |||
| background: @base01; | |||
| } | |||
| #workspaces { | |||
| margin: 0 4px; | |||
| } | |||
| #workspaces button { | |||
| margin: 4px 0; | |||
| padding: 0 4px; | |||
| color: @base05; | |||
| } | |||
| #workspaces button.visible { | |||
| } | |||
| #workspaces button.active { | |||
| border-radius: 4px; | |||
| background-color: @base02; | |||
| } | |||
| #workspaces button.urgent { | |||
| color: rgba(238, 46, 36, 1); | |||
| } | |||
| #tray { | |||
| margin: 4px 4px 4px 4px; | |||
| border-radius: 4px; | |||
| background-color: @base02; | |||
| } | |||
| #tray * { | |||
| padding: 0 6px; | |||
| border-left: 1px solid @base00; | |||
| } | |||
| #tray *:first-child { | |||
| border-left: none; | |||
| } | |||
| #mode, #battery, #cpu, #memory, #network, #pulseaudio, #idle_inhibitor, #backlight, #custom-storage, #custom-updates, #custom-weather, #custom-mail, #clock, #temperature { | |||
| margin: 4px 2px; | |||
| padding: 0 6px; | |||
| background-color: @base02; | |||
| border-radius: 4px; | |||
| min-width: 20px; | |||
| } | |||
| #pulseaudio.muted { | |||
| color: @base0F; | |||
| } | |||
| #pulseaudio.bluetooth { | |||
| color: @base0C; | |||
| } | |||
| #clock { | |||
| margin-left: 0px; | |||
| margin-right: 4px; | |||
| background-color: transparent; | |||
| } | |||
| #temperature.critical { | |||
| color: @base0F; | |||
| } | |||
| #window { | |||
| font-size: 0.9em; | |||
| font-weight: 400; | |||
| font-family: sans-serif; | |||
| } | |||
| @ -0,0 +1,46 @@ | |||
| /* | |||
| Arc-Dark Color Scheme | |||
| */ | |||
| @define-color highlight #fbf1c7; | |||
| @define-color base1 #ffffff; | |||
| @define-color base3 #282828; | |||
| *{ | |||
| font-family: UbuntuMono; | |||
| } | |||
| window { | |||
| border: 1px solid @highlight; | |||
| } | |||
| #input { | |||
| margin-bottom: 15px; | |||
| padding:3px; | |||
| border-radius: 5px; | |||
| border:none; | |||
| color: #282828; | |||
| } | |||
| #inner-box { | |||
| background-color: @base3; | |||
| } | |||
| #outer-box { | |||
| margin: 1px; | |||
| padding:15px; | |||
| background-color: #282828; | |||
| } | |||
| #text { | |||
| padding: 5px; | |||
| color: @highlight; | |||
| } | |||
| #entry:nth-child() { | |||
| color: @base1; | |||
| } | |||
| #entry:selected { | |||
| border: 2px solid @highlight; | |||
| } | |||