commit 1c4268600b4637a56a4105fa12e4831d22fc41d1 Author: Pablu23 Date: Fri May 24 13:34:37 2024 +0200 Initial commit diff --git a/.config/alacritty/alacritty.toml b/.config/alacritty/alacritty.toml new file mode 100644 index 0000000..8d834f4 --- /dev/null +++ b/.config/alacritty/alacritty.toml @@ -0,0 +1,12 @@ +[font] +normal={family = "Hack Nerd Font Mono", style = "Regular"} + +[window] +opacity=0.7 +blur=true + +[keyboard] +bindings = [{ key = "V", mods = "Control", action = "Paste"}] + +# [colors.primary] +# foreground = "#000000" diff --git a/.config/hypr/config/binds.conf b/.config/hypr/config/binds.conf new file mode 100644 index 0000000..a5cfa53 --- /dev/null +++ b/.config/hypr/config/binds.conf @@ -0,0 +1,66 @@ +source = programs.conf + +$mainMod = SUPER # Sets "Windows" key as main modifier + +# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more +bind = $mainMod, T, exec, $terminal +bind = $mainMod, Q, killactive, +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 = $mainMod, D, exec, $discord +bind = $mainMod, B, exec, $browser +bind = $mainMod, L, exec, $hyprlock +# also make sure you created a directory called screenshots in Pictures/ otherwise the screenshots won't appear anywhere +bind = $mainMod, S, exec, grim -o DP-3 "${HOME}/Pictures/screenshots/screenshot-$(date +%F-%T).png" +# screenshot + crop keybind +bind = $mainMod SHIFT, S, exec, grim -g "$(slurp)" "${HOME}/Pictures/screenshots/screenshot-$(date +%F-%T).png" + +# Move focus with mainMod + arrow keys +# Maybe H J K L +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 +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 + + diff --git a/.config/hypr/config/env.conf b/.config/hypr/config/env.conf new file mode 100644 index 0000000..567e8eb --- /dev/null +++ b/.config/hypr/config/env.conf @@ -0,0 +1,9 @@ +env = XCURSOR_SIZE,24 +env = HYPRCURSOR_SIZE,24 +env = LIBVA_DRIVER_NAME,nvidia +env = XDG_SESSION_TYPE,wayland +env = GBM_BACKEND,nvidia-drm +env = __GLX_VENDOR_LIBRARY_NAME,nvidia +env = NVD_BACKEND,direct + + diff --git a/.config/hypr/config/general.conf b/.config/hypr/config/general.conf new file mode 100644 index 0000000..5b7cae1 --- /dev/null +++ b/.config/hypr/config/general.conf @@ -0,0 +1,115 @@ +monitor=DP-3,2560x1440@240,1920x-360,1 +workspace=DP3,1 +monitor=DP-2,1920x1080@240,0x0,1 +workspace=DP-2,6 + +general { + gaps_in = 5 + gaps_out = 20 + + border_size = 2 + + # 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 + + # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on + allow_tearing = false + + layout = dwindle +} + +# https://wiki.hyprland.org/Configuring/Variables/#decoration +decoration { + rounding = 10 + + # Change transparency of focused and unfocused windows + active_opacity = 1.0 + inactive_opacity = 1.0 + + drop_shadow = true + shadow_range = 4 + shadow_render_power = 3 + col.shadow = 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 = true + + # 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 +} + +# 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_is_master = true +} + +# 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 = de + kb_variant = + kb_model = + kb_options = + kb_rules = + + follow_mouse = 1 + + sensitivity = 0.2 # -1.0 - 1.0, 0 means no modification. + accel_profile = flat + force_no_accel=1 + + 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 +} diff --git a/.config/hypr/config/programs.conf b/.config/hypr/config/programs.conf new file mode 100644 index 0000000..8dc354d --- /dev/null +++ b/.config/hypr/config/programs.conf @@ -0,0 +1,12 @@ +$terminal = alacritty +$fileManager = dolphin +$menu = wofi --show drun +$browser = firefox +$discord = LIBVA_DRIVER_NAME=nvidia discord --ignore-gpu-blocklist --disable-features=UseOzonePlatform --enable-features=VaapiVideoDecoder --use-gl=desktop --enable-gpu-rasterization --enable-zero-copy +$hyprlock = hyprlock + +# exec-once = hyprctl dispatch workspace 1 +exec-once = [workspace 1 silent] $terminal +exec-once = [workspace 6 silend] $discord +exec-once = waybar +exec-once = hyprpaper diff --git a/.config/hypr/config/rules.conf b/.config/hypr/config/rules.conf new file mode 100644 index 0000000..c4fd397 --- /dev/null +++ b/.config/hypr/config/rules.conf @@ -0,0 +1,12 @@ +windowrulev2 = suppressevent maximize, class:.* # You'll probably like this. + +workspace=1,monitor:DP-3,default:true,persistent:true +workspace=2,monitor:DP-3,persistent:true +workspace=3,monitor:DP-3,persistent:true +workspace=4,monitor:DP-3,persistent:true +workspace=5,monitor:DP-3,persistent:true +workspace=6,monitor:DP-2,default:true,persistent:true +workspace=7,monitor:DP-2,persistent:true +workspace=8,monitor:DP-2,persistent:true +workspace=9,monitor:DP-2,persistent:true +workspace=0,monitor:DP-2,persistent:true diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf new file mode 100644 index 0000000..d9da494 --- /dev/null +++ b/.config/hypr/hyprland.conf @@ -0,0 +1,6 @@ +source = config/general.conf +source = config/env.conf +source = config/binds.conf +# Dont source because it is sourced in binds.conf to set Program specific keybinds +# source = config/programs.conf +source = config/rules.conf diff --git a/.config/hypr/hyprland.conf.bak b/.config/hypr/hyprland.conf.bak new file mode 100644 index 0000000..bc7b9db --- /dev/null +++ b/.config/hypr/hyprland.conf.bak @@ -0,0 +1,289 @@ +# This is an example Hyprland config file. +# Refer to the wiki for more information. +# https://wiki.hyprland.org/Configuring/Configuring-Hyprland/ + +# 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=DP-3,2560x1440@240,1920x-360,1 +workspace=DP3,1 +monitor=DP-2,1920x1080@240,0x0,1 +workspace=DP-2,11 + + +################### +### MY PROGRAMS ### +################### + +# See https://wiki.hyprland.org/Configuring/Keywords/ + +# Set programs that you use +$terminal = alacritty +$fileManager = dolphin +$menu = wofi --show drun +$browser = firefox +$discord = LIBVA_DRIVER_NAME=nvidia discord --ignore-gpu-blocklist --disable-features=UseOzonePlatform --enable-features=VaapiVideoDecoder --use-gl=desktop --enable-gpu-rasterization --enable-zero-copy + +################# +### AUTOSTART ### +################# + +# Autostart necessary processes (like notifications daemons, status bars, etc.) +# Or execute your favorite apps at launch like this: + + +# exec-once = nm-applet & +# exec-once = waybar & hyprpaper & firefox +exec-once = hyprctl dispatch workspace 1 +exec-once = $terminal +exec-once = $discord +exec-once = waybar + +############################# +### ENVIRONMENT VARIABLES ### +############################# + +# See https://wiki.hyprland.org/Configuring/Environment-variables/ + +env = XCURSOR_SIZE,24 +env = HYPRCURSOR_SIZE,24 +env = LIBVA_DRIVER_NAME,nvidia +env = XDG_SESSION_TYPE,wayland +env = GBM_BACKEND,nvidia-drm +env = __GLX_VENDOR_LIBRARY_NAME,nvidia +env = NVD_BACKEND,direct + +##################### +### LOOK AND FEEL ### +##################### + +# Refer to https://wiki.hyprland.org/Configuring/Variables/ + +# https://wiki.hyprland.org/Configuring/Variables/#general +general { + gaps_in = 5 + gaps_out = 20 + + border_size = 2 + + # 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 + + # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on + allow_tearing = false + + layout = dwindle +} + +# https://wiki.hyprland.org/Configuring/Variables/#decoration +decoration { + rounding = 10 + + # Change transparency of focused and unfocused windows + active_opacity = 1.0 + inactive_opacity = 1.0 + + drop_shadow = true + shadow_range = 4 + shadow_render_power = 3 + col.shadow = 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 = true + + # 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 +} + +# 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_is_master = true +} + +# 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 = de + kb_variant = + kb_model = + kb_options = + kb_rules = + + follow_mouse = 1 + + sensitivity = 0.2 # -1.0 - 1.0, 0 means no modification. + accel_profile = flat + force_no_accel=1 + + 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 +} + + +#################### +### KEYBINDINGSS ### +#################### + +# See https://wiki.hyprland.org/Configuring/Keywords/ +$mainMod = SUPER # Sets "Windows" key as main modifier + +# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more +bind = $mainMod, Q, exec, $terminal +bind = $mainMod, C, killactive, +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 = $mainMod, D, exec, $discord +bind = $mainMod, F, exec, $browser + +# also make sure you created a directory called screenshots in Pictures/ otherwise the screenshots won't appear anywhere +bind = $mainMod, S, exec, grim -o DP-3 "${HOME}/Pictures/screenshots/screenshot-$(date +%F-%T).png" +# screenshot + crop keybind +bind = $mainMod SHIFT, S, exec, grim -g "$(slurp)" "${HOME}/Pictures/screenshots/screenshot-$(date +%F-%T).png" + +# 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, exec, hyprsome workspace 1 +bind = $mainMod, 2, exec, hyprsome workspace 2 +bind = $mainMod, 3, exec, hyprsome workspace 3 +bind = $mainMod, 4, exec, hyprsome workspace 4 +bind = $mainMod, 5, exec, hyprsome workspace 5 +bind = $mainMod, 6, exec, hyprsome workspace 6 +bind = $mainMod, 7, exec, hyprsome workspace 7 +bind = $mainMod, 8, exec, hyprsome workspace 8 +bind = $mainMod, 9, exec, hyprsome workspace 9 +# bind = $mainMod, 0, exec, hyprsome workspace 10 + +# Move active window to a workspace with mainMod + SHIFT + [0-9] +bind = $mainMod SHIFT, 1, exec, hyprsome move 1 +bind = $mainMod SHIFT, 2, exec, hyprsome move 2 +bind = $mainMod SHIFT, 3, exec, hyprsome move 3 +bind = $mainMod SHIFT, 4, exec, hyprsome move 4 +bind = $mainMod SHIFT, 5, exec, hyprsome move 5 +bind = $mainMod SHIFT, 6, exec, hyprsome move 6 +bind = $mainMod SHIFT, 7, exec, hyprsome move 7 +bind = $mainMod SHIFT, 8, exec, hyprsome move 8 +bind = $mainMod SHIFT, 9, exec, hyprsome move 9 +bind = $mainMod SHIFT, 0, exec, hyprsome move 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 + + +############################## +### 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 v1 +# windowrule = float, ^(kitty)$ + +# Example windowrule v2 +# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ + +windowrulev2 = suppressevent maximize, class:.* # You'll probably like this. + +workspace=1,monitor:DP-3 +workspace=2,monitor:DP-3 +workspace=3,monitor:DP-3 +workspace=4,monitor:DP-3 +workspace=5,monitor:DP-3 +workspace=6,monitor:DP-3 +workspace=7,monitor:DP-3 +workspace=8,monitor:DP-3 +workspace=9,monitor:DP-3 +# workspace=0,monitor:DP-3 + + +workspace=11,monitor:DP-2 +workspace=12,monitor:DP-2 +workspace=13,monitor:DP-2 +workspace=14,monitor:DP-2 +workspace=15,monitor:DP-2 +workspace=16,monitor:DP-2 +workspace=17,monitor:DP-2 +workspace=18,monitor:DP-2 +workspace=19,monitor:DP-2 +# workspace=20,monitor:DP-2 diff --git a/.config/hypr/hyprlock.conf b/.config/hypr/hyprlock.conf new file mode 100644 index 0000000..86daa35 --- /dev/null +++ b/.config/hypr/hyprlock.conf @@ -0,0 +1,89 @@ +# source = ~/.cache/wal/colors-hyprland.conf + +# BACKGROUND +background { + monitor = DP-3 + path = /home/zam/.config/wallpapers/wall0.png + blur_passes = 3 + contrast = 0.8916 + brightness = 0.8172 + vibrancy = 0.1696 + vibrancy_darkness = 0.0 +} + +background { + monitor = DP-2 + path = /home/zam/.config/wallpapers/wall1.png + blur_passes = 3 + contrast = 0.8916 + brightness = 0.8172 + vibrancy = 0.1696 + vibrancy_darkness = 0.0 +} + +# GENERAL +general { + no_fade_in = false + grace = 0 + disable_loading_bar = true +} + +# INPUT FIELD +input-field { + monitor = DP-3 + size = 250, 60 + outline_thickness = 2 + dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8 + dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0 + dots_center = true + outer_color = rgba(0, 0, 0, 0) + inner_color = rgba(0, 0, 0, 0.5) + font_color = rgb(200, 200, 200) + fade_on_empty = false + font_family = JetBrains Mono Nerd Font Mono + placeholder_text = Input Password... + hide_input = false + position = 0, -120 + halign = center + valign = center +} + +# TIME +label { + monitor = + text = cmd[update:1000] date +"%-I:%M%p" + # color = $foreground + color = rgba(255, 255, 255, 0.6) + font_size = 120 + font_family = JetBrains Mono Nerd Font Mono ExtraBold + position = 0, -300 + halign = center + valign = top +} + +# USER +label { + monitor = DP-3 + text = Hi there, Zam + # color = $foreground + color = rgba(255, 255, 255, 0.6) + font_size = 25 + font_family = JetBrains Mono Nerd Font Mono + position = 0, -40 + halign = center + valign = center +} + +# CURRENT SONG +# label { +# monitor = DP-3 +# text = cmd[update:1000] echo "$(~/Documents/Scripts/whatsong.sh)" +# color = $foreground +# #color = rgba(255, 255, 255, 0.6) +# font_size = 18 +# font_family = JetBrainsMono, Font Awesome 6 Free Solid +# position = 0, -50 +# halign = center +# valign = bottom +# } +# diff --git a/.config/hypr/hyprpaper.conf b/.config/hypr/hyprpaper.conf new file mode 100644 index 0000000..473071c --- /dev/null +++ b/.config/hypr/hyprpaper.conf @@ -0,0 +1,6 @@ +preload = ~/.config/wallpapers/wall0.jpg +preload = ~/.config/wallpapers/wall1.jpg + +wallpaper = DP-3,~/.config/wallpapers/wall0.jpg +wallpaper = DP-2,~/.config/wallpapers/wall1.jpg + diff --git a/.config/nvim b/.config/nvim new file mode 160000 index 0000000..1cda309 --- /dev/null +++ b/.config/nvim @@ -0,0 +1 @@ +Subproject commit 1cda3098b29b60b9a447422eb3266d83397f3373 diff --git a/.config/wallpapers/wall0.jpg b/.config/wallpapers/wall0.jpg new file mode 100644 index 0000000..260c9a3 Binary files /dev/null and b/.config/wallpapers/wall0.jpg differ diff --git a/.config/wallpapers/wall0.png b/.config/wallpapers/wall0.png new file mode 100644 index 0000000..82154c0 Binary files /dev/null and b/.config/wallpapers/wall0.png differ diff --git a/.config/wallpapers/wall1.jpg b/.config/wallpapers/wall1.jpg new file mode 100644 index 0000000..91d94ce Binary files /dev/null and b/.config/wallpapers/wall1.jpg differ diff --git a/.config/wallpapers/wall1.png b/.config/wallpapers/wall1.png new file mode 100644 index 0000000..3d75933 Binary files /dev/null and b/.config/wallpapers/wall1.png differ diff --git a/.config/waybar/config b/.config/waybar/config new file mode 100644 index 0000000..8745770 --- /dev/null +++ b/.config/waybar/config @@ -0,0 +1,215 @@ +{ + "layer": "top", + "position": "top", + + "modules-left": [ + "hyprland/mode", + "hyprland/workspaces", + "custom/arrow10", + "hyprland/window" + ], + + "modules-right": [ + "custom/arrow9", + "pulseaudio", + "custom/arrow8", + "network", + "custom/arrow7", + "memory", + "custom/arrow6", + "cpu", + "custom/arrow5", + "temperature", + "custom/arrow4", + "battery", + "custom/arrow3", + "hyprland/language", + "custom/arrow2", + "tray", + "clock#date", + "custom/arrow1", + "clock#time" + ], + + // Modules + + "battery": { + "interval": 10, + "states": { + "warning": 30, + "critical": 15 + }, + "format-time": "{H}:{M:02}", + "format": "{icon} {capacity}% ({time})", + "format-charging": " {capacity}% ({time})", + "format-charging-full": " {capacity}%", + "format-full": "{icon} {capacity}%", + "format-alt": "{icon} {power}W", + "format-icons": [ + "", + "", + "", + "", + "" + ], + "tooltip": false + }, + + "clock#time": { + "interval": 10, + "format": "{:%H:%M}", + "tooltip": false + }, + + "clock#date": { + "interval": 20, + "format": "{:%e %b %Y}", + "tooltip": false + //"tooltip-format": "{:%e %B %Y}" + }, + + "cpu": { + "interval": 5, + "tooltip": false, + "format": " {usage}%", + "format-alt": " {load}", + "states": { + "warning": 70, + "critical": 90 + } + }, + + "hyprland/language": { + "format": " {}", + "min-length": 5, + "on-click": "hyprlandmsg 'input * xkb_switch_layout next'", + "tooltip": false + }, + + "memory": { + "interval": 5, + "format": " {used:0.1f}G/{total:0.1f}G", + "states": { + "warning": 70, + "critical": 90 + }, + "tooltip": false + }, + + "network": { + "interval": 5, + "format-wifi": " {essid} ({signalStrength}%)", + "format-ethernet": " {ifname}", + "format-disconnected": "No connection", + "format-alt": " {ipaddr}/{cidr}", + "tooltip": false + }, + + "hyprland/mode": { + "format": "{}", + "tooltip": false + }, + + "hyprland/window": { + "format": "{}", + "max-length": 30, + "tooltip": false + }, + + "hyprland/workspaces": { + "disable-scroll-wraparound": true, + "smooth-scrolling-threshold": 4, + "enable-bar-scroll": true, + "format": "{name}" + }, + + "pulseaudio": { + "format": "{icon} {volume}%", + "format-bluetooth": "{icon} {volume}%", + "format-muted": "", + "format-icons": { + "headphone": "", + "hands-free": "", + "headset": "", + "phone": "", + "portable": "", + "car": "", + "default": ["", ""] + }, + "scroll-step": 1, + "on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle", + "tooltip": false + }, + + "temperature": { + "critical-threshold": 90, + "interval": 5, + "format": "{icon} {temperatureC}°", + "format-icons": [ + "", + "", + "", + "", + "" + ], + "tooltip": false + }, + + "tray": { + "icon-size": 18 + //"spacing": 10 + }, + + "custom/arrow1": { + "format": "", + "tooltip": false + }, + + "custom/arrow2": { + "format": "", + "tooltip": false + }, + + "custom/arrow3": { + "format": "", + "tooltip": false + }, + + "custom/arrow4": { + "format": "", + "tooltip": false + }, + + "custom/arrow5": { + "format": "", + "tooltip": false + }, + + "custom/arrow6": { + "format": "", + "tooltip": false + }, + + "custom/arrow7": { + "format": "", + "tooltip": false + }, + + "custom/arrow8": { + "format": "", + "tooltip": false + }, + + "custom/arrow9": { + "format": "", + "tooltip": false + }, + + "custom/arrow10": { + "format": "", + "tooltip": false + } +} + +// vi:ft=jsonc + diff --git a/.config/waybar/config.jsonc b/.config/waybar/config.jsonc new file mode 100644 index 0000000..329275b --- /dev/null +++ b/.config/waybar/config.jsonc @@ -0,0 +1,202 @@ +// -*- mode: jsonc -*- +{ + // "layer": "top", // Waybar at top layer + // "position": "bottom", // Waybar position (top|bottom|left|right) + "height": 30, // 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": [ + "sway/workspaces", + "sway/mode", + "sway/scratchpad", + "custom/media" + ], + "modules-center": [ + "sway/window" + ], + "modules-right": [ + "mpd", + "idle_inhibitor", + "pulseaudio", + "network", + "power-profiles-daemon", + "cpu", + "memory", + "temperature", + "backlight", + "keyboard-state", + "sway/language", + "battery", + "battery#bat2", + "clock", + "tray" + ], + // Modules configuration + // "sway/workspaces": { + // "disable-scroll": true, + // "all-outputs": true, + // "warp-on-scroll": false, + // "format": "{name}: {icon}", + // "format-icons": { + // "1": "", + // "2": "", + // "3": "", + // "4": "", + // "5": "", + // "urgent": "", + // "focused": "", + // "default": "" + // } + // }, + "keyboard-state": { + "numlock": true, + "capslock": true, + "format": "{name} {icon}", + "format-icons": { + "locked": "", + "unlocked": "" + } + }, + "sway/mode": { + "format": "{}" + }, + "sway/scratchpad": { + "format": "{icon} {count}", + "show-empty": false, + "format-icons": ["", ""], + "tooltip": true, + "tooltip-format": "{app}: {title}" + }, + "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": 5, + "consume-icons": { + "on": " " + }, + "random-icons": { + "off": " ", + "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": { + // "icon-size": 21, + "spacing": 10 + }, + "clock": { + // "timezone": "America/New_York", + "tooltip-format": "{:%Y %B}\n{calendar}", + "format-alt": "{:%Y-%m-%d}" + }, + "cpu": { + "format": "{usage}% ", + "tooltip": false + }, + "memory": { + "format": "{}% " + }, + "temperature": { + // "thermal-zone": 2, + // "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input", + "critical-threshold": 80, + // "format-critical": "{temperatureC}°C {icon}", + "format": "{temperatureC}°C {icon}", + "format-icons": ["", "", ""] + }, + "backlight": { + // "device": "acpi_video1", + "format": "{percent}% {icon}", + "format-icons": ["", "", "", "", "", "", "", "", ""] + }, + "battery": { + "states": { + // "good": 95, + "warning": 30, + "critical": 15 + }, + "format": "{capacity}% {icon}", + "format-full": "{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" + }, + "power-profiles-daemon": { + "format": "{icon}", + "tooltip-format": "Power profile: {profile}\nDriver: {driver}", + "tooltip": true, + "format-icons": { + "default": "", + "performance": "", + "balanced": "", + "power-saver": "" + } + }, + "network": { + // "interface": "wlp2*", // (Optional) To force the use of this interface + "format-wifi": "{essid} ({signalStrength}%) ", + "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": 1, // %, 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/media": { + "format": "{icon} {}", + "return-type": "json", + "max-length": 40, + "format-icons": { + "spotify": "", + "default": "🎜" + }, + "escape": true, + "exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder + // "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name + } +} diff --git a/.config/waybar/mediaplayer.sh b/.config/waybar/mediaplayer.sh new file mode 100755 index 0000000..38dfd93 --- /dev/null +++ b/.config/waybar/mediaplayer.sh @@ -0,0 +1,8 @@ +#!/bin/sh +player_status=$(playerctl status 2> /dev/null) +if [ "$player_status" = "Playing" ]; then + echo "$(playerctl metadata artist) - $(playerctl metadata title)" +elif [ "$player_status" = "Paused" ]; then + echo " $(playerctl metadata artist) - $(playerctl metadata title)" +fi + diff --git a/.config/waybar/style.css b/.config/waybar/style.css new file mode 100644 index 0000000..db4b7ce --- /dev/null +++ b/.config/waybar/style.css @@ -0,0 +1,266 @@ +/* Keyframes */ + +@keyframes blink-critical { + to { + /*color: @white;*/ + background-color: @critical; + } +} + + +/* Styles */ + +/* Colors (gruvbox) */ +@define-color black #282828; +@define-color red #cc241d; +@define-color green #98971a; +@define-color yellow #d79921; +@define-color blue #458588; +@define-color purple #b16286; +@define-color aqua #689d6a; +@define-color gray #a89984; +@define-color brgray #928374; +@define-color brred #fb4934; +@define-color brgreen #b8bb26; +@define-color bryellow #fabd2f; +@define-color brblue #83a598; +@define-color brpurple #d3869b; +@define-color braqua #8ec07c; +@define-color white #ebdbb2; +@define-color bg2 #504945; + + +@define-color warning @bryellow; +@define-color critical @red; +@define-color mode @black; +@define-color unfocused @bg2; +@define-color focused @braqua; +@define-color inactive @purple; +@define-color sound @brpurple; +@define-color network @purple; +@define-color memory @braqua; +@define-color cpu @green; +@define-color temp @brgreen; +@define-color layout @bryellow; +@define-color battery @aqua; +@define-color date @black; +@define-color time @white; + +/* Reset all styles */ +* { + border: none; + border-radius: 0; + min-height: 0; + margin: 0; + padding: 0; + box-shadow: none; + text-shadow: none; + icon-shadow: none; +} + +/* The whole bar */ +#waybar { + background: rgba(40, 40, 40, 0.8784313725); /* #282828e0 */ + color: @white; + font-family: JetBrains Mono, Siji; + font-size: 10pt; + /*font-weight: bold;*/ +} + +/* Each module */ +#battery, +#clock, +#cpu, +#language, +#memory, +#mode, +#network, +#pulseaudio, +#temperature, +#tray, +#backlight, +#idle_inhibitor, +#disk, +#user, +#mpris { + padding-left: 8pt; + padding-right: 8pt; +} + +/* Each critical module */ +#mode, +#memory.critical, +#cpu.critical, +#temperature.critical, +#battery.critical.discharging { + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; + animation-name: blink-critical; + animation-duration: 1s; +} + +/* Each warning */ +#network.disconnected, +#memory.warning, +#cpu.warning, +#temperature.warning, +#battery.warning.discharging { + color: @warning; +} + +/* And now modules themselves in their respective order */ + +/* Current sway mode (resize etc) */ +#mode { + color: @white; + background: @mode; +} + +/* Workspaces stuff */ +#workspaces button { + /*font-weight: bold;*/ + padding-left: 2pt; + padding-right: 2pt; + color: @white; + background: @unfocused; +} + +/* Inactive (on unfocused output) */ +#workspaces button.visible { + color: @white; + background: @inactive; +} + +/* Active (on focused output) */ +#workspaces button.focused { + color: @black; + background: @focused; +} + +/* Contains an urgent window */ +#workspaces button.urgent { + color: @black; + background: @warning; +} + +/* Style when cursor is on the button */ +#workspaces button:hover { + background: @black; + color: @white; +} + +#window { + margin-right: 35pt; + margin-left: 35pt; +} + +#pulseaudio { + background: @sound; + color: @black; +} + +#network { + background: @network; + color: @white; +} + +#memory { + background: @memory; + color: @black; +} + +#cpu { + background: @cpu; + color: @white; +} + +#temperature { + background: @temp; + color: @black; +} + +#language { + background: @layout; + color: @black; +} + +#battery { + background: @battery; + color: @white; +} + +#tray { + background: @date; +} + +#clock.date { + background: @date; + color: @white; +} + +#clock.time { + background: @time; + color: @black; +} + +#custom-arrow1 { + font-size: 11pt; + color: @time; + background: @date; +} + +#custom-arrow2 { + font-size: 11pt; + color: @date; + background: @layout; +} + +#custom-arrow3 { + font-size: 11pt; + color: @layout; + background: @battery; +} + +#custom-arrow4 { + font-size: 11pt; + color: @battery; + background: @temp; +} + +#custom-arrow5 { + font-size: 11pt; + color: @temp; + background: @cpu; +} + +#custom-arrow6 { + font-size: 11pt; + color: @cpu; + background: @memory; +} + +#custom-arrow7 { + font-size: 11pt; + color: @memory; + background: @network; +} + +#custom-arrow8 { + font-size: 11pt; + color: @network; + background: @sound; +} + +#custom-arrow9 { + font-size: 11pt; + color: @sound; + background: transparent; +} + +#custom-arrow10 { + font-size: 11pt; + color: @unfocused; + background: transparent; +} + diff --git a/.zshrc b/.zshrc new file mode 100644 index 0000000..0f3f273 --- /dev/null +++ b/.zshrc @@ -0,0 +1,101 @@ +# If you come from bash you might have to change your $PATH. +# export PATH=$HOME/bin:$HOME/.local/bin:/usr/local/bin:$PATH + +# Path to your oh-my-zsh installation. +export ZSH="$HOME/.oh-my-zsh" + +# Set name of the theme to load --- if set to "random", it will +# load a random theme each time oh-my-zsh is loaded, in which case, +# to know which specific one was loaded, run: echo $RANDOM_THEME +# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes +ZSH_THEME="dogenpunk" + +# Set list of themes to pick from when loading at random +# Setting this variable when ZSH_THEME=random will cause zsh to load +# a theme from this variable instead of looking in $ZSH/themes/ +# If set to an empty array, this variable will have no effect. +# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" ) + +# Uncomment the following line to use case-sensitive completion. +# CASE_SENSITIVE="true" + +# Uncomment the following line to use hyphen-insensitive completion. +# Case-sensitive completion must be off. _ and - will be interchangeable. +# HYPHEN_INSENSITIVE="true" + +# Uncomment one of the following lines to change the auto-update behavior +# zstyle ':omz:update' mode disabled # disable automatic updates +# zstyle ':omz:update' mode auto # update automatically without asking +# zstyle ':omz:update' mode reminder # just remind me to update when it's time + +# Uncomment the following line to change how often to auto-update (in days). +# zstyle ':omz:update' frequency 13 + +# Uncomment the following line if pasting URLs and other text is messed up. +# DISABLE_MAGIC_FUNCTIONS="true" + +# Uncomment the following line to disable colors in ls. +# DISABLE_LS_COLORS="true" + +# Uncomment the following line to disable auto-setting terminal title. +# DISABLE_AUTO_TITLE="true" + +# Uncomment the following line to enable command auto-correction. +# ENABLE_CORRECTION="true" + +# Uncomment the following line to display red dots whilst waiting for completion. +# You can also set it to another string to have that shown instead of the default red dots. +# e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f" +# Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765) +# COMPLETION_WAITING_DOTS="true" + +# Uncomment the following line if you want to disable marking untracked files +# under VCS as dirty. This makes repository status check for large repositories +# much, much faster. +# DISABLE_UNTRACKED_FILES_DIRTY="true" + +# Uncomment the following line if you want to change the command execution time +# stamp shown in the history command output. +# You can set one of the optional three formats: +# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" +# or set a custom format using the strftime function format specifications, +# see 'man strftime' for details. +# HIST_STAMPS="mm/dd/yyyy" + +# Would you like to use another custom folder than $ZSH/custom? +# ZSH_CUSTOM=/path/to/new-custom-folder + +# Which plugins would you like to load? +# Standard plugins can be found in $ZSH/plugins/ +# Custom plugins may be added to $ZSH_CUSTOM/plugins/ +# Example format: plugins=(rails git textmate ruby lighthouse) +# Add wisely, as too many plugins slow down shell startup. +plugins=(git z zsh-autosuggestions zsh-syntax-highlighting ) + +source $ZSH/oh-my-zsh.sh + +# User configuration + +# export MANPATH="/usr/local/man:$MANPATH" + +# You may need to manually set your language environment +# export LANG=en_US.UTF-8 + +# Preferred editor for local and remote sessions +# if [[ -n $SSH_CONNECTION ]]; then +# export EDITOR='vim' +# else +# export EDITOR='mvim' +# fi + +# Compilation flags +# export ARCHFLAGS="-arch x86_64" + +# Set personal aliases, overriding those provided by oh-my-zsh libs, +# plugins, and themes. Aliases can be placed here, though oh-my-zsh +# users are encouraged to define aliases within the ZSH_CUSTOM folder. +# For a full list of active aliases, run `alias`. +# +# Example aliases +# alias zshconfig="mate ~/.zshrc" +# alias ohmyzsh="mate ~/.oh-my-zsh" diff --git a/README.md b/README.md new file mode 100644 index 0000000..89a81e6 --- /dev/null +++ b/README.md @@ -0,0 +1,4 @@ +# Use +pacman -S stow +cd ~/dotfiles +stow .