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