diff options
Diffstat (limited to 'hyprland.org')
-rw-r--r-- | hyprland.org | 462 |
1 files changed, 462 insertions, 0 deletions
diff --git a/hyprland.org b/hyprland.org new file mode 100644 index 0000000..4eaa958 --- /dev/null +++ b/hyprland.org @@ -0,0 +1,462 @@ +#+title: Configuration for Hyprland +#+PROPERTY: header-args :mkdirp yes +#+STARTUP: overview + +* Hyprland +** Config +*** Keyboard & monitors +#+begin_src conf :tangle ~/.config/hypr/hyprland.conf + # See https://wiki.hyprland.org/Configuring/Monitors/ + monitor=transform,preferred,auto,auto + + # See https://wiki.hyprland.org/Configuring/Keywords/ for more + + # Some default env vars. + env = XCURSOR_SIZE,24 + + # For all categories, see https://wiki.hyprland.org/Configuring/Variables/ + input { + kb_layout = us,gr,my-cyr + kb_variant = + kb_model = + kb_options = ctrl:swapcaps, grp:alt_space_toggle, + kb_rules = + + follow_mouse = 1 + + touchpad { + natural_scroll = no + } + + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. + } +#+end_src +*** Style +#+begin_src conf :tangle ~/.config/hypr/hyprland.conf + 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 + } + + decoration { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + active_opacity = 0.99 + inactive_opacity = 0.97 + rounding = 10 + blur = no + blur_size = 3 + blur_passes = 1 + blur_new_optimizations = on + 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 { + # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more + new_is_master = false + mfact = 0.53 + } + + gestures { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + workspace_swipe = off + } + + # Personal Configuration for Hyprland + # Thanos Apollo 2023 + + # See https://wiki.hyprland.org/Configuring/ for more + + device:epic mouse V1 { + sensitivity = -0.5 + } +#+end_src +*** Keybindings +#+begin_src conf :tangle ~/.config/hypr/hyprland.conf + # See https://wiki.hyprland.org/Configuring/Keywords/ for more + $mainMod = CTRL_ALT + + # Binds, see https://wiki.hyprland.org/Configuring/Binds/ for more + bind = , F5, exec, "/home/$USER/Developer/scripts/keyboard-light-x220.sh" + bind = , F1, exec, swaylock --screenshot --clock --effect-blur 10x9 --indicator + bind = , F8, exec, brightnessctl set +5% + bind = , F7, exec, brightnessctl set 5-% + bind = , XF86AudioRaiseVolume, exec, pamixer -i 5 + bind = , XF86AudioLowerVolume, exec, pamixer -d 5 + bind = , XF86AudioMute, exec, pamixer -t + + bind = $mainMod, Return, exec, emacsclient -c + bind = $mainMod, W, exec, kitty + bind = $mainMod, Q, killactive, + bind = $mainMod SHIFT, Q, exit, + bind = $mainMod, R, exec, rofi -show drun + bind = $mainMod, E, exec, tessen --dmenu=rofi + bind = $mainMod, V, togglefloating, + bind = $mainMod, J, togglesplit, # dwindle + bind = ALT, F12, exec, grim -g "$(slurp)" + bind = ALT, F11, fullscreen + + # Move focus with mainMod + arrow keys + bind = $mainMod, B, movefocus, l + bind = $mainMod, F, movefocus, r + bind = $mainMod, N, movefocus, d + bind = $mainMod, P, movefocus, u + + bind = $mainMod SHIFT, P, movewindow, u + bind = $mainMod SHIFT, N, movewindow, d + bind = $mainMod SHIFT, F, movewindow, r + bind = $mainMod SHIFT, B, movewindow, l + + + # 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 + + # Scroll through existing workspaces with mainMod + scroll + bind = ALT, mouse_down, workspace, e+1 + bind = ALT, mouse_up, workspace, e-1 + + # Move/resize windows with mainMod + LMB/RMB and dragging + bindm = ALT, mouse:272, movewindow + bindm = ALT, mouse:273, resizewindow +#+end_src +*** Exec upon start +#+begin_src conf :tangle ~/.config/hypr/hyprland.conf + exec-once = waybar + exec = hyprpaper + exec-once = emacs --daemon + exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP + exec-once = nm-applet +#+end_src +** Hyprpaper +#+begin_src conf :tangle ~/.config/hypr/hyprpaper.conf + preload = ~/wallpapers/wallpaper-cyberpunk.jpg + preload = ~/wallpapers/science-athlete.jpg + preload = ~/wallpapers/robo-girl.jpg + preload = ~/wallpapers/chalk-board-wallpapers.jpg + + wallpaper = DP-1, ~/wallpapers/chalk-board-wallpapers.jpg + + wallpaper = HDMI-A-1, ~/wallpapers/chalk-board-wallpapers.jpg + + wallpaper = LVDS-1, ~/wallpapers/science-athlete.jpg +#+end_ +* Waybar +** Configuration +#+begin_src jsonc :tangle ~/.config/waybar/config.jsonc + { + "layer": "top", + "position": "top", + "mod": "dock", + "exclusive": true, + "passthrough": false, + "gtk-layer-shell": true, + "height": 0, + "modules-left": [ + "clock", + "custom/weather" + // "hyprland/window", + ], + "modules-center": ["wlr/workspaces"], + "modules-right": [ + "tray", + "custom/updates", + "custom/language", + "battery", + "backlight", + "custom/volume" + // "pulseaudio#microphone" + ], + + "hyprland/window": { + "format": "{}" + }, + "wlr/workspaces": { + "disable-scroll": true, + "all-outputs": true, + "on-click": "activate", + //"format": "{icon}", + "persistent_workspaces": { + "1": [], + "2": [], + "3": [], + "4": [], + "5": [], + "6": [], + "7": [], + "8": [], + "9": [], + "10": [] + } + }, + "custom/updates": { + "exec": "(pacman -Qu ; paru -Qua) | wc -l", + "interval": 7200, + "format": " {}" + }, + "custom/weather" : { + "tooltip" : true, + "format" : "{}", + "interval" : 30, + "exec" : "~/Developer/scripts/waybar-wttr.py", + "return-type" : "json" + }, + "tray": { + "icon-size": 13, + "spacing": 10 + }, + "clock": { + "format": "{: %R %d/%m}", + "tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>" + }, + "backlight": { + "device": "intel_backlight", + "format": "{icon} {percent}%", + "format-icons": ["", "", ""], + "on-scroll-up": "brightnessctl set 1%+", + "on-scroll-down": "brightnessctl set 1%-", + "min-length": 6 + }, + "battery": { + "states": { + "good": 95, + "warning": 30, + "critical": 20 + }, + "format": "{icon} {capacity}%", + "format-charging": " {capacity}%", + "format-plugged": " {capacity}%", + "format-alt": "{time} {icon}", + "format-icons": ["", "", "", "", "", "", "", "", "", "", ""] + }, + "pulseaudio": { + "format": "{icon} {volume}%", + "tooltip": false, + "format-muted": " Muted", + "on-click": "pamixer -t", + "on-scroll-up": "pamixer -i 5", + "on-scroll-down": "pamixer -d 5", + "scroll-step": 5, + "format-icons": { + "headphone": "", + "hands-free": "", + "headset": "", + "phone": "", + "portable": "", + "car": "", + "default": ["", "", ""] + } + }, + "custom/volume": { + "exec": "pamixer --get-volume", + "interval": 1, + "format": " {}%", + "tooltip": true + } + // "custom/pipewire": { + // "format": {}, + // "exec": "awk -F"[][]" '/Left:/ { print $2 }' <(amixer sget Master)", + // "interval": 10 + // }, + } +#+end_src + +** Style +#+begin_src css :tangle ~/.config/waybar/style.css + ,* { + border: none; + border-radius: 0; + font-family: Jetbrains Mono, Cartograph CF Nerd Font, monospace; + font-weight: bold; + font-size: 14px; + min-height: 0; + } + + window#waybar { + background: rgba(21, 18, 27, 0); + color: #cdd6f4; + } + + tooltip { + background: #0d1017; + border-radius: 10px; + border-width: 2px; + border-style: solid; + border-color: #11111b; + } + + #workspaces button { + padding: 5px; + color: #313244; + margin-right: 5px; + } + + #workspaces button.active { + color: #39bae6; + } + + #workspaces button.focused { + color: #a6adc8; + background: #eba0ac; + border-radius: 10px; + } + + #workspaces button.urgent { + color: #11111b; + background: #a6e3a1; + border-radius: 10px; + } + + #workspaces button:hover { + background: #11111b; + color: #cdd6f4; + border-radius: 10px; + } + + #custom-language, + #custom-updates, + #custom-caffeine, + #custom-weather, + #window, + #clock, + #battery, + #pulseaudio, + #custrom-volume, + #network, + #workspaces, + #tray, + #backlight { + background: #0d1017; + padding: 0px 10px; + margin: 3px 0px; + margin-top: 10px; + border: 1px solid #181825; + } + + #tray { + border-radius: 10px; + margin-right: 10px; + } + + #workspaces { + background: #0d1017; + border-radius: 10px; + margin-left: 10px; + padding-right: 0px; + padding-left: 5px; + } + + #custom-caffeine { + color: #89dceb; + border-radius: 10px 0px 0px 10px; + border-right: 0px; + margin-left: 10px; + } + + #custom-language { + color: #f38ba8; + border-left: 0px; + border-right: 0px; + } + + #custom-updates { + color: #ff8f40; + border-left: 0px; + border-right: 0px; + } + + #window { + border-radius: 10px; + margin-left: 20px; + margin-right: 60px; + } + + #clock { + color: #39bae6; + border-radius: 10px 0px 0px 10px; + margin-left: 0px; + border-right: 0px; + } + + #network { + color: #f9e2af; + border-left: 0px; + border-right: 0px; + } + + #pulseaudio { + color: #59c2ff; + border-left: 5px; + border-right: 5px; + } + #custom-volume { + background: #0d1017; + color: #59c2ff; + padding: 8px; + margin-top: 11px; + margin-bottom: 3px; + border-left: 0px; + border-right: 0px; + } + + #battery { + color: #a6e3a1; + border-radius: 0 10px 10px 0; + margin-right: 10px; + border-left: 0px; + + } + + #custom-weather { + border-radius: 0px 10px 10px 0px; + border-right: 0px; + margin-left: 0px; + } +#+end_src |