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