From ac33d3aaa72fae5fbb2ade159ec35c494af4c946 Mon Sep 17 00:00:00 2001 From: Eduard Urbach Date: Thu, 29 Feb 2024 22:11:08 +0100 Subject: [PATCH] Added hyprland and waybar --- .config/hypr/hyprland.conf | 208 +++++++++++++++++++++++++++++++++++++ .config/waybar/config | 83 +++++++++++++++ .config/waybar/style.css | 144 +++++++++++++++++++++++++ .gitignore | 2 + 4 files changed, 437 insertions(+) create mode 100644 .config/hypr/hyprland.conf create mode 100644 .config/waybar/config create mode 100644 .config/waybar/style.css diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf new file mode 100644 index 0000000..a0ab3d8 --- /dev/null +++ b/.config/hypr/hyprland.conf @@ -0,0 +1,208 @@ +# See https://wiki.hyprland.org/Configuring/Monitors/ +monitor=,highrr,auto,auto + +# Some default env vars. +env = XCURSOR_SIZE,24 +env = QT_QPA_PLATFORMTHEME,qt6ct + +# SSH +env = SSH_AUTH_SOCK,$XDG_RUNTIME_DIR/gcr/ssh + +# Nvidia +env = LIBVA_DRIVER_NAME,nvidia +env = XDG_SESSION_TYPE,wayland +env = GBM_BACKEND,nvidia-drm +env = __GLX_VENDOR_LIBRARY_NAME,nvidia +env = WLR_NO_HARDWARE_CURSORS,1 + +# See https://wiki.hyprland.org/Configuring/Keywords/ for more + +# Execute your favorite apps at launch +exec-once=swaync +exec-once=waybar +exec-once=waypaper --restore +exec-once = wl-paste --watch cliphist store +exec-once = dbus-update-activation-environment --all +exec-once = gnome-keyring-daemon --start --components=pkcs11,secrets,ssh + +# Source a file (multi-file configs) +# source = ~/.config/hypr/myColors.conf + +# Set programs that you use +$terminal = alacritty +$browser = firefox +$fileManager = nautilus +$menu = fuzzel +$email = geary + +# Autostart +exec-once=[workspace 1 silent] godot +exec-once=[workspace 2 silent] code +exec-once=[workspace 3 silent] $browser +exec-once=[workspace 4 silent] $terminal +exec-once=[workspace 5 silent] $terminal +exec-once=[workspace 6 silent] $terminal +exec-once=[workspace 7 silent] $fileManager +exec-once=[workspace 9 silent] $email + +# 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 = 20 + border_size = 2 + col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg + col.inactive_border = rgba(595959aa) + + layout = dwindle + + # 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 = 10 + + 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, 1, 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 { + # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more + new_is_master = 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 = 1 # Set to 0 or 1 to disable the anime mascot wallpapers +} + +# 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, T, exec, $terminal +bind = $mainMod, B, exec, $browser +bind = $mainMod, C, killactive, +bind = $mainMod, F, fullscreen, +bind = $mainMod, M, exit, +bind = $mainMod, E, exec, $fileManager +bind = $mainMod, V, togglefloating, +bind = $mainMod, R, exec, $menu +bind = $mainMod, P, pseudo, # dwindle +bind = $mainMod, J, togglesplit, # dwindle +bind = , Print, exec, grim -g "$(slurp -d)" - | wl-copy + +# Move focus with mainMod + arrow keys +bind = $mainMod, left, movefocus, l +bind = $mainMod, right, movefocus, r +bind = $mainMod, up, movefocus, u +bind = $mainMod, down, movefocus, d + +# Switch workspaces with numpad +bind = , KP_Home, workspace, 1 +bind = , KP_Up, workspace, 2 +bind = , KP_Prior, workspace, 3 +bind = , KP_Left, workspace, 4 +bind = , KP_Begin, workspace, 5 +bind = , KP_Right, workspace, 6 +bind = , KP_End, workspace, 7 +bind = , KP_Down, workspace, 8 +bind = , KP_Next, workspace, 9 + +# 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 + +# 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 + +# Media keys +# l -> do stuff even when locked +# e -> repeats when key is held +bindle =, XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05+ +bindle =, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05- +#bindle =, XF86MonBrightnessUp, exec, bri --up +#bindle =, XF86MonBrightnessDown, exec, bri --down +#bindle =, XF86Search, exec, launchpad +# bindl =, XF86AudioMute, exec, amixer set Master toggle +bindl =, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle +bindl =, XF86AudioPlay, exec, playerctl play-pause # the stupid key is called play , but it toggles +bindl =, XF86AudioNext, exec, playerctl next +bindl =, XF86AudioPrev, exec, playerctl previous diff --git a/.config/waybar/config b/.config/waybar/config new file mode 100644 index 0000000..1c57c1e --- /dev/null +++ b/.config/waybar/config @@ -0,0 +1,83 @@ +{ + "layer": "top", + "modules-left": ["custom/launcher","hyprland/workspaces"], + "modules-center": ["clock","cpu","memory","network","disk"], + "modules-right": ["mpris","wireplumber"], + "clock": { + "interval": 60, + "format": "{:%a %H:%M}", + "tooltip-format": "{:%Y-%m-%d}" + }, + "cpu": { + "interval": 2, + "format": " {}%", + "max-length": 10 + }, + "memory": { + "interval": 2, + "format": "󰍜 {}%", + "max-length": 10 + }, + "network": { + "interval": 2, + "format": "{ifname}", + "format-wifi": " {essid}", + "format-ethernet": "󰛳 {bandwidthTotalBytes}", + "format-disconnected": "", + "tooltip-format": "{ifname} via {gwaddr}", + "tooltip-format-wifi": " {essid} ({signalStrength}%)", + "tooltip-format-ethernet": " {ifname}", + "tooltip-format-disconnected": "Disconnected", + "max-length": 50 + }, + "disk": { + "interval": 30, + "format": "󰋊 {used}", + "path": "/" + }, + "mpris": { + "format": "{player_icon} {title}", + "format-paused": "{status_icon} {title}", + "player-icons": { + "default": "󰝚", + "mpv": "󰝚" + }, + "status-icons": { + "paused": "󰏤" + }, + "title-len": 30, + }, + "wireplumber": { + "format": "{icon} {volume}%", + "format-muted": "", + "scroll-step": 5, + "on-click": "helvum", + "format-icons": ["", "", ""] + }, + "hyprland/workspaces": { + "format": "{icon}", + "on-click": "activate", + "persistent-workspaces": { + "1": [], + "2": [], + "3": [], + "4": [], + "5": [], + "6": [], + "7": [], + "8": [], + "9": [], + }, + "format-icons": { + "urgent": "", + "active": "", + "default": "" + }, + "sort-by-number": true + }, + "custom/launcher":{ + "format": " ", + "on-click": "fuzzel", + "on-click-right": "killall fuzzel" + } +} diff --git a/.config/waybar/style.css b/.config/waybar/style.css new file mode 100644 index 0000000..4ecd377 --- /dev/null +++ b/.config/waybar/style.css @@ -0,0 +1,144 @@ +* { + border: none; + border-radius: 10; + font-family: "Ubuntu Nerd Font"; + font-size: 16px; + min-height: 10px; +} + +window#waybar { + background: transparent; +} + +window#waybar.hidden { + opacity: 0.2; +} + +#window { + margin-top: 6px; + padding-left: 10px; + padding-right: 10px; + border-radius: 10px; + transition: none; + color: transparent; + background: transparent; +} + +#clock, +#cpu, +#disk, +#memory, +#mpris, +#network, +#wireplumber, +#workspaces { + margin-top: 6px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + margin-bottom: 0px; + border-radius: 10px; + transition: none; +} + +#clock { + color: #161320; + background: #ABE9B3; +} + +#cpu { + color: #161320; + background: #96CDFB; +} + +#disk { + color: #161320; + background: #E8A2AF; +} + +#memory { + color: #161320; + background: #DDB6F2; +} + +#mpris { + color: #1A1826; + background: #FAE3B0; +} + +#network { + color: #161320; + background: #bd93f9; +} + +#wireplumber { + color: #1A1826; + background: #FAE3B0; +} + +#workspaces { + color: white; + background: transparent; +} + +#custom-launcher { + font-size: 24px; + margin-top: 6px; + margin-left: 8px; + padding-left: 10px; + padding-right: 5px; + border-radius: 10px; + transition: none; + color: #89DCEB; + background: transparent; +} + +#custom-power { + font-size: 20px; + margin-top: 6px; + margin-left: 8px; + margin-right: 8px; + padding-left: 10px; + padding-right: 5px; + margin-bottom: 0px; + border-radius: 10px; + transition: none; + color: #161320; + background: #F28FAD; +} + +#custom-wallpaper { + margin-top: 6px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + margin-bottom: 0px; + border-radius: 10px; + transition: none; + color: #161320; + background: #C9CBFF; +} + +#custom-updates { + margin-top: 6px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + margin-bottom: 0px; + border-radius: 10px; + transition: none; + color: #161320; + background: #E8A2AF; +} + +#custom-media { + margin-top: 6px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + margin-bottom: 0px; + border-radius: 10px; + transition: none; + color: #161320; + background: #F2CDCD; +} diff --git a/.gitignore b/.gitignore index 88782a6..c178dbe 100644 --- a/.gitignore +++ b/.gitignore @@ -10,7 +10,9 @@ !/.config/alacritty !/.config/fish !/.config/htop +!/.config/hypr !/.config/nushell !/.config/nvim !/.config/tmux !/.config/vscode +!/.config/waybar