summaryrefslogtreecommitdiff
path: root/hyprland.org
diff options
context:
space:
mode:
Diffstat (limited to 'hyprland.org')
-rw-r--r--hyprland.org462
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