diff --git a/config/hypr/hyprland.conf b/config/hypr/hyprland.conf index 8d62399..e7047be 100644 --- a/config/hypr/hyprland.conf +++ b/config/hypr/hyprland.conf @@ -1,50 +1,141 @@ -monitor=,preferred,auto,1 -$terminal = kitty -$fileManager = kitty -e ranger + +# This is an example Hyprland config file. +# Refer to the wiki for more information. +# https://wiki.hyprland.org/Configuring/ + +# Please note not all available settings / options are set here. +# For a full list, see the wiki + +# You can split this configuration into multiple files +# Create your files separately and then link them to this file like this: +# source = ~/.config/hypr/myColors.conf + + +################ +### MONITORS ### +################ + +# See https://wiki.hyprland.org/Configuring/Monitors/ +monitor=eDP-1, disable +monitor=HDMI-A-1,1920x1080@75,auto,1 + + +################### +### MY PROGRAMS ### +################### + +# See https://wiki.hyprland.org/Configuring/Keywords/ + +# Set programs that you use +$terminal = foot +$fileManager = dolphin $menu = wofi --show drun -$screenie = screenie +$reload_waybar = pkill waybar; waybar & + +################# +### AUTOSTART ### +################# + +# Autostart necessary processes (like notifications daemons, status bars, etc.) +# Or execute your favorite apps at launch like this: + +# exec-once = $terminal +# exec-once = nm-applet & exec-once = waybar & -exec-once = swww-daemon & -exec-once = swww img ~/files/pics/wall22.png & -exec-once = hyprctl setcursor breeze_cursors 24 & -exec-once = mako & +exec-once = hyprctl setcursor Adwaita 24 +exec-once = hyprpaper & + + +############################# +### ENVIRONMENT VARIABLES ### +############################# + +# See https://wiki.hyprland.org/Configuring/Environment-variables/ + env = XCURSOR_SIZE,24 env = HYPRCURSOR_SIZE,24 + +################### +### PERMISSIONS ### +################### + +# See https://wiki.hyprland.org/Configuring/Permissions/ +# Please note permission changes here require a Hyprland restart and are not applied on-the-fly +# for security reasons + +# ecosystem { +# enforce_permissions = 1 +# } + +# permission = /usr/(bin|local/bin)/grim, screencopy, allow +# permission = /usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland, screencopy, allow +# permission = /usr/(bin|local/bin)/hyprpm, plugin, allow + + +##################### +### LOOK AND FEEL ### +##################### + +# Refer to https://wiki.hyprland.org/Configuring/Variables/ + +# https://wiki.hyprland.org/Configuring/Variables/#general general { gaps_in = 5 - gaps_out = 7 - border_size = 1 + gaps_out = 10 + + border_size = 0 + + # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors + col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg + col.inactive_border = rgba(595959aa) + + # Set to true enable resizing windows by clicking and dragging on borders and gaps resize_on_border = false - allow_tearing = false - layout = dwindl/ - col.active_border = rgba(646496ee) rgba(121218ee) 45deg - col.inactive_border = rgba(404040cc) + + # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on + allow_tearing = true + + layout = master } + +# https://wiki.hyprland.org/Configuring/Variables/#decoration decoration { - rounding = 12 + rounding = 0 rounding_power = 2 + + # Change transparency of focused and unfocused windows active_opacity = 1.0 inactive_opacity = 1.0 + shadow { enabled = true range = 4 render_power = 3 color = rgba(1a1a1aee) } + + # https://wiki.hyprland.org/Configuring/Variables/#blur blur { enabled = true size = 3 passes = 1 + vibrancy = 0.1696 } } + +# https://wiki.hyprland.org/Configuring/Variables/#animations animations { enabled = yes, please :) + + # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + bezier = easeOutQuint,0.23,1,0.32,1 bezier = easeInOutCubic,0.65,0.05,0.36,1 bezier = linear,0,0,1,1 bezier = almostLinear,0.5,0.5,0.75,1.0 bezier = quick,0.15,0,0.1,1 + animation = global, 1, 10, default animation = border, 1, 5.39, easeOutQuint animation = windows, 1, 4.79, easeOutQuint @@ -62,52 +153,93 @@ animations { animation = workspacesIn, 1, 1.21, almostLinear, fade animation = workspacesOut, 1, 1.94, almostLinear, fade } + +# Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/ +# "Smart gaps" / "No gaps when only" +# uncomment all if you wish to use that. +# workspace = w[tv1], gapsout:0, gapsin:0 +# workspace = f[1], gapsout:0, gapsin:0 +# windowrule = bordersize 0, floating:0, onworkspace:w[tv1] +# windowrule = rounding 0, floating:0, onworkspace:w[tv1] +# windowrule = bordersize 0, floating:0, onworkspace:f[1] +# windowrule = rounding 0, floating:0, onworkspace:f[1] + +# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more dwindle { pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below preserve_split = true # You probably want this } + +# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more master { new_status = master } + +# https://wiki.hyprland.org/Configuring/Variables/#misc misc { force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :( } + + +############# +### INPUT ### +############# + +# https://wiki.hyprland.org/Configuring/Variables/#input input { kb_layout = us kb_variant = kb_model = kb_options = kb_rules = + follow_mouse = 1 + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. + touchpad { natural_scroll = false } } + +# https://wiki.hyprland.org/Configuring/Variables/#gestures gestures { workspace_swipe = false } + +# Example per-device config +# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more device { name = epic-mouse-v1 sensitivity = -0.5 } + + +################### +### KEYBINDINGS ### +################### + +# See https://wiki.hyprland.org/Configuring/Keywords/ $mainMod = SUPER # Sets "Windows" key as main modifier -bind = $mainMod, B, exec, firefox-bin -bind = $mainMod, PRINT, exec, screenie + +# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more bind = $mainMod, Return, exec, $terminal bind = $mainMod, S, killactive, -bind = $mainMod, Q, exit, +bind = $mainMod, M, exit, bind = $mainMod, F, exec, $fileManager bind = $mainMod, V, togglefloating, -bind = $mainMod, W, fullscreen, bind = $mainMod, R, exec, $menu bind = $mainMod, P, pseudo, # dwindle bind = $mainMod, J, togglesplit, # dwindle + +# 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 mainMod + [0-9] bind = $mainMod, 1, workspace, 1 bind = $mainMod, 2, workspace, 2 bind = $mainMod, 3, workspace, 3 @@ -118,6 +250,8 @@ 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 @@ -128,20 +262,49 @@ bind = $mainMod SHIFT, 7, movetoworkspace, 7 bind = $mainMod SHIFT, 8, movetoworkspace, 8 bind = $mainMod SHIFT, 9, movetoworkspace, 9 bind = $mainMod SHIFT, 0, movetoworkspace, 10 + +bind = $mainMod, P, exec, $reload_waybar + +bind = $mainMod, Print, exec, hyprshot -m region + +# Example special workspace (scratchpad) +bind = $mainMod, Q, 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 + +# Laptop multimedia keys for volume and LCD brightness bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+ bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle bindel = ,XF86MonBrightnessUp, exec, brightnessctl -e4 -n2 set 5%+ bindel = ,XF86MonBrightnessDown, exec, brightnessctl -e4 -n2 set 5%- + +# Requires playerctl bindl = , XF86AudioNext, exec, playerctl next bindl = , XF86AudioPause, exec, playerctl play-pause bindl = , XF86AudioPlay, exec, playerctl play-pause bindl = , XF86AudioPrev, exec, playerctl previous + +############################## +### WINDOWS AND WORKSPACES ### +############################## + +# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more +# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules + +# Example windowrule +# windowrule = float,class:^(kitty)$,title:^(kitty)$ + +# Ignore maximize requests from apps. You'll probably like this. windowrule = suppressevent maximize, class:.* + +# Fix some dragging issues with XWayland windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0 diff --git a/config/hypr/hyprpaper.conf b/config/hypr/hyprpaper.conf new file mode 100644 index 0000000..74625eb --- /dev/null +++ b/config/hypr/hyprpaper.conf @@ -0,0 +1,3 @@ +preload = ~/Pictures/Wallpapers/wallhaven-d8p7w3_1920x1080.png +wallpaper = HDMI-A-1,~/Pictures/Wallpapers/wallhaven-d8p7w3_1920x1080.png +wallpaper = eDP-1,~/Pictures/Wallpapers/wallhaven-d8p7w3_1920x1080.png diff --git a/config/waybar/.#style.css b/config/waybar/.#style.css deleted file mode 120000 index 745da9d..0000000 --- a/config/waybar/.#style.css +++ /dev/null @@ -1 +0,0 @@ -coast@core.397306:1751199772 \ No newline at end of file diff --git a/config/waybar/.style.css.swp b/config/waybar/.style.css.swp deleted file mode 100644 index 9b484a6..0000000 Binary files a/config/waybar/.style.css.swp and /dev/null differ diff --git a/config/waybar/config b/config/waybar/config deleted file mode 100644 index 666acc9..0000000 --- a/config/waybar/config +++ /dev/null @@ -1,56 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/Alexays/Waybar/master/schemas/config.schema.json", - "layer": "top", - "position": "top", - "height": 32, - "spacing": 4, - "margin": "4 6 2 6", - "modules-left": ["hyprland/workspaces"], - "modules-center": ["clock"], - "modules-right": ["pulseaudio", "cpu", "battery", "tray"], - - "hyprland/workspaces": { - "format": "{name}", - "format-icons": { - "active": "●", - "default": "○", - "urgent": "!" - }, - "on-click": "activate", - "disable-scroll": false - }, - - "clock": { - "format": "{:%I:%M %p}", - "tooltip-format": "{:%A, %d %B}", - "interval": 60 - }, - - "cpu": { - "format": "CPU {usage}%", - "interval": 5 - }, - - "battery": { - "format": "BAT {capacity}%", - "format-icons": ["", "", "", "", ""], - "states": { - "warning": 20, - "critical": 10 - }, - "interval": 5 - }, - - "pulseaudio": { - "format": "VOL {volume}%", - "format-muted": "󰝟 Muted", - "format-icons": ["", "", ""], - "scroll-step": 5, - "on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle" - }, - - "tray": { - "spacing": 6, - "icon-size": 16 - } -} diff --git a/config/waybar/config.jsonc b/config/waybar/config.jsonc index a78366e..28a5507 100644 --- a/config/waybar/config.jsonc +++ b/config/waybar/config.jsonc @@ -1,44 +1,78 @@ +// -*- mode: jsonc -*- { - "layer": "top", - "position": "top", + "layer": "bottom", + "position": "bottom", + "height": 30, + "spacing": 4, - "modules-left": ["sway/workspaces", "custom/sway-layout", "sway/window"], - "modules-center": [], - "modules-right": ["custom/dwmstatus"], + // Choose the order of the modules + "modules-left": [ + "hyprland/workspaces", + "hyprland/window", + ], + "modules-center": [ + ], - "sway/workspaces": { - "format": "{name}", - "format-focused": "[{name}]", - "format-unfocused": "{name}", - "format-visible": "{name}", - "format-urgent": "<{name}>", - "disable-scroll": true, - "persistent-workspaces": { - "1": [], - "2": [], - "3": [], - "4": [], - "5": [], - "6": [], - "7": [], - "8": [], - "9": [] - } - }, - - "sway/window": { - "format": " | {title}", - "tooltip": false - }, - - "custom/sway-layout": { - "exec": "~/.config/waybar/sway-layout.sh", - "interval": 1 - }, + "modules-right": [ + "cpu", + "memory", + "disk", + "clock", + "tray" + ], - "custom/dwmstatus": { - "exec": "~/.config/waybar/dwmbar.sh", - "interval": 1 - } + // Modules configuration + "hyprland/workspaces": { + "disable-scroll": true, + "all-outputs": true, + "warp-on-scroll": false, + "format": "{name}", + }, + "hyprland/window" : { + "max-length": 40, + "seperate-outputs": false + }, + "tray": { + // "icon-size": 21, + "spacing": 10 + // "icons": { + // "blueman": "bluetooth", + // "TelegramDesktop": "$HOME/.local/share/icons/hicolor/16x16/apps/telegram.png" + // } + }, + "clock": { + "format-alt": "{:%Y-%m-%d}" + }, + "cpu": { + "format": "CPU: {usage}%", + "tooltip": false + }, + "memory": { + "format": "Mem: {used}GiB" + }, + "disk": { + "interval": 60, + "path": "/", + "format": "Disk: {free}" + }, + "battery": { + "states": { + "good": 95, + "warning": 30, + "critical": 15 + }, + "format": "Bat: {capacity}% {icon} {time}", + "format-plugged": "{capacity}% ", + "format-alt": "Bat {capacity}%", + "format-time": "{H}:{M}", + "format-icons": ["", "", "", "", ""] + }, + "network": { + "format": "Online", + "format-disconnected": "Disconnected ⚠" + }, + "custom/sep": { + "format" : "|", + "interval" : 0 + } } - diff --git a/config/waybar/dwmbar.sh b/config/waybar/dwmbar.sh deleted file mode 100755 index 03ec3f7..0000000 --- a/config/waybar/dwmbar.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash - -cpu() { - awk '/^cpu / { - usage = ($2 + $4) * 100 / ($2 + $4 + $5) - printf "%.1f%%", usage - }' /proc/stat -} - -mem() { - free | awk '/Mem:/ { - used = $3 / $2 * 100 - printf "%.1f%%", used - }' -} - -localip() { - sb-network -} - -vol() { - sb-volume -} - -charging() { - bat-symbol -} - -get_time() { - date '+%I:%M-%p' -} - -echo "[$(vol)] [$(cpu)] [$(mem)] $(charging) [$(get_time)]" - diff --git a/config/waybar/style.css b/config/waybar/style.css index 87df473..51f11b4 100644 --- a/config/waybar/style.css +++ b/config/waybar/style.css @@ -1,43 +1,97 @@ +@define-color bg #1c1c1c; /* Dark grey */ +@define-color fg #d3d3d3; /* Light grey */ +@define-color blk #000000; /* Black */ +@define-color white #ffffff; /* White */ + * { - font-family: "Departure Mono"; - font-size: 19px; - padding: 0; - margin: 0; - border: none; - box-shadow: none; - background: #000000; - color: #ffffff; + font-family: "JetBrainsMono Nerd Font", monospace; + font-size: 16px; + font-weight: bold; } window#waybar { - background: #000000; - color: #ffffff; + background-color: @bg; + color: @fg; } #workspaces button { - background: #000000; - color: #888888; - padding: 0 4px; - margin: 0 1px; + padding: 0 6px; + color: @fg; /* Light grey */ + background: transparent; + border-bottom: 3px solid @bg; +} +#workspaces button.active { + color: @fg; /* Light grey */ + border-bottom: 3px solid @fg; /* Light grey */ +} +#workspaces button.empty { + color: @white; /* White */ +} +#workspaces button.empty.active { + color: @fg; /* Light grey */ + border-bottom: 3px solid @fg; /* Light grey */ +} + +#workspaces button.urgent { + background-color: @blk; /* Black */ +} + +button:hover { + background: inherit; + box-shadow: inset 0 -3px @white; /* White */ +} + +#clock, +#custom-sep, +#battery, +#cpu, +#memory, +#disk, +#network, +#tray { + padding: 0 8px; + color: @white; /* White */ +} + +#custom-sep { + color: @bg; /* Dark grey */ +} + +#clock { + color: @fg; /* Light grey */ + border-bottom: 4px solid @fg; /* Light grey */ +} + +#battery { + color: @fg; /* Light grey */ + border-bottom: 4px solid @fg; /* Light grey */ +} + +#disk { + color: @fg; /* Light grey */ + border-bottom: 4px solid @fg; /* Light grey */ +} + +#memory { + color: @fg; /* Light grey */ + border-bottom: 4px solid @fg; /* Light grey */ } -#workspaces button.focused { - color: #ffffff; - font-weight: bold; +#cpu { + color: @fg; /* Light grey */ + border-bottom: 4px solid @fg; /* Light grey */ } -#sway-layout { - margin-left: 8px; - margin-right: 8px; - min-width: 20px; +#network { + color: @fg; /* Light grey */ + border-bottom: 4px solid @fg; /* Light grey */ } -#sway-window { - font-style: italic; - color: #cccccc; +#network.disconnected { + background-color: @blk; /* Black */ } -#custom-dwmstatus { - margin-right: 10px; +#tray { + background-color: @bg; /* Dark grey */ } diff --git a/config/waybar/sway-layout.sh b/config/waybar/sway-layout.sh deleted file mode 100755 index e47203b..0000000 --- a/config/waybar/sway-layout.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash - -layout=$(swaymsg -t get_workspaces | jq -r '.[] | select(.focused) | .layout') - -case "$layout" in - splith|splitv) - echo " []=" - ;; - tabbed) - echo " |||" - ;; - stacked) - echo " TTT" - ;; - floating) - echo " ><>" - ;; - *) - echo "$layout" - ;; -esac diff --git a/config/wofi/config b/config/wofi/config new file mode 100644 index 0000000..0f7e7ba --- /dev/null +++ b/config/wofi/config @@ -0,0 +1,32 @@ +# mode & placement +show=drun +location=top +width=700 +lines=8 +columns=2 +dynamic_lines=false + +# icons +allow_images=true +image_size=36 + +# search & UX +matching=fuzzy +insensitive=true +hide_scroll=false +prompt= + +# terminal +term=foot + +# keybinds (vim-ish) +key_up=Ctrl-k +key_down=Ctrl-j +key_left=Ctrl-h +key_right=Ctrl-l +key_submit=Return +key_forward=Tab +key_backward=Shift-ISO_Left_Tab + +# stylesheet +style=/home/tony/.config/wofi/style.css diff --git a/config/wofi/style.css b/config/wofi/style.css new file mode 100644 index 0000000..4ee72bd --- /dev/null +++ b/config/wofi/style.css @@ -0,0 +1,59 @@ +* { + font-family: "UbuntuMono", monospace; + font-size: 16px; + font-weight: bold; +} + +window { + margin: 0px; + border: 2px solid #7f7f7f; /* Bright grey */ + border-radius: 5px; + background-color: #1c1c1c; /* Dark grey */ + font-family: monospace; + font-size: 12px; +} + +#input { + margin: 5px; + border: 1px solid #1c1c1c; /* Dark grey */ + color: #d3d3d3; /* Light grey */ + background-color: #1c1c1c; /* Dark grey */ +} + +#input image { + color: #d3d3d3; /* Light grey */ +} + +#inner-box { + margin: 5px; + border: none; + background-color: #1c1c1c; /* Dark grey */ +} + +#outer-box { + margin: 5px; + border: none; + background-color: #1c1c1c; /* Dark grey */ +} + +#scroll { + margin: 0px; + border: none; +} + +#text { + margin: 5px; + border: none; + color: #d3d3d3; /* Light grey */ +} + +#entry:selected { + background-color: #7f7f7f; /* Bright grey */ + font-weight: normal; +} + +#text:selected { + background-color: #7f7f7f; /* Bright grey */ + font-weight: normal; +} +