| @ -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; | |||||
| } | |||||