commit 6711294f5e6e64fcfa5b1f3d7994ec9c8f293af8 Author: Szymon P Date: Tue Mar 4 14:37:46 2025 +0100 inital commit diff --git a/private_dot_config/hypr/hypridle.conf b/private_dot_config/hypr/hypridle.conf new file mode 100644 index 0000000..33bdb82 --- /dev/null +++ b/private_dot_config/hypr/hypridle.conf @@ -0,0 +1,22 @@ +general { + lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances. + before_sleep_cmd = loginctl lock-session # lock before suspend. + after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display. +} + + +listener { + timeout = 300 # 5min + on-timeout = loginctl lock-session # lock screen when timeout has passed +} + +listener { + timeout = 330 # 5.5min + on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed + on-resume = hyprctl dispatch dpms on # screen on when activity is detected after timeout has fired. +} + +listener { + timeout = 1800 # 30min + on-timeout = systemctl suspend # suspend pc +} diff --git a/private_dot_config/hypr/hyprland.conf b/private_dot_config/hypr/hyprland.conf new file mode 100644 index 0000000..daa536c --- /dev/null +++ b/private_dot_config/hypr/hyprland.conf @@ -0,0 +1,34 @@ + + +$mainMod = SUPER # Sets "Windows" key as main modifier +$terminal = uwsm app -- kitty +$menu = uwsm app -- $(wofi --show drun --define=drun-print_desktop_file=true) + +monitor=,preferred,auto,auto + +env = XCURSOR_SIZE,24 +env = HYPRCURSOR_SIZE,24 + +# TO BE MOVED +bind = $mainMod, M, exit, + + +misc { + force_default_wallpaper = 0 # Set to 0 or 1 to disable the anime mascot wallpapers + disable_hyprland_logo = true # If true disables the random hyprland logo / anime girl background. :( +} + +gestures { + workspace_swipe = false +} + +# IMPORTS + +source = ./hyprland/binds/* +source = ./hyprland/rules/* +source = ./hyprland/input.conf +source = ./hyprland/general.conf +source = ./hyprland/decoration.conf +source = ./hyprland/animations.conf +source = ./hyprland/layouts.conf +source = ./hyprland/workspaces.conf diff --git a/private_dot_config/hypr/hyprland/animations.conf b/private_dot_config/hypr/hyprland/animations.conf new file mode 100644 index 0000000..53a93c9 --- /dev/null +++ b/private_dot_config/hypr/hyprland/animations.conf @@ -0,0 +1,28 @@ +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 + animation = windowsIn, 1, 4.1, easeOutQuint, popin 87% + animation = windowsOut, 1, 1.49, linear, popin 87% + animation = fadeIn, 1, 1.73, almostLinear + animation = fadeOut, 1, 1.46, almostLinear + animation = fade, 1, 3.03, quick + animation = layers, 1, 3.81, easeOutQuint + animation = layersIn, 1, 4, easeOutQuint, fade + animation = layersOut, 1, 1.5, linear, fade + animation = fadeLayersIn, 1, 1.79, almostLinear + animation = fadeLayersOut, 1, 1.39, almostLinear + animation = workspaces, 1, 1.94, almostLinear, fade + animation = workspacesIn, 1, 1.21, almostLinear, fade + animation = workspacesOut, 1, 1.94, almostLinear, fade +} diff --git a/private_dot_config/hypr/hyprland/binds/audio.conf b/private_dot_config/hypr/hyprland/binds/audio.conf new file mode 100644 index 0000000..de0b2b7 --- /dev/null +++ b/private_dot_config/hypr/hyprland/binds/audio.conf @@ -0,0 +1,11 @@ +# Requires pactl +bindl=, XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+ && ~/.local/bin/wp-vol.sh && paplay /usr/share/sounds/freedesktop/stereo/bell.oga +bindl=, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- && ~/.local/bin/wp-vol.sh && paplay /usr/share/sounds/freedesktop/stereo/bell.oga +bindl=, XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle +bindl=, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle + +# Requires playerctl +bindl = , XF86AudioNext, exec, playerctl next +bindl = , XF86AudioPause, exec, playerctl play-pause +bindl = , XF86AudioPlay, exec, playerctl play-pause +bindl = , XF86AudioPrev, exec, playerctl previous diff --git a/private_dot_config/hypr/hyprland/binds/open_apps.conf b/private_dot_config/hypr/hyprland/binds/open_apps.conf new file mode 100644 index 0000000..c865d7b --- /dev/null +++ b/private_dot_config/hypr/hyprland/binds/open_apps.conf @@ -0,0 +1,13 @@ +# general + +bind = $mainMod, RETURN, exec, $terminal +bind = $mainMod L_SHIFT, P, exec, $menu + +# Workspace binded apps + +bind = $mainMod Control_L, 1, exec, uwsm app -- vesktop +bind = $mainMod Control_L, 2, exec, uwsm app -- zen-browser +bind = $mainMod Control_L, 3, exec, uwsm app -- mangohud steam +bind = $mainMod Control_L, 4, exec, uwsm app -- gimp +bind = $mainMod Control_L, 9, exec, uwsm app -- spotify-launcher +bind = $mainMod Control_L, 0, exec, uwsm app -- obs diff --git a/private_dot_config/hypr/hyprland/binds/power.conf b/private_dot_config/hypr/hyprland/binds/power.conf new file mode 100644 index 0000000..cb1187e --- /dev/null +++ b/private_dot_config/hypr/hyprland/binds/power.conf @@ -0,0 +1,4 @@ +bind = $mainMod L_SHIFT ctrl, l, exec, hyprlock # lock +bind = $mainMod L_SHIFT ctrl, r, exec, systemctl reboot +bind = $mainMod L_SHIFT ctrl, p, exec, systemctl poweroff +bind = $mainMod L_SHIFT ctrl, s, exec, systemctl suspend diff --git a/private_dot_config/hypr/hyprland/binds/screenshots.conf b/private_dot_config/hypr/hyprland/binds/screenshots.conf new file mode 100644 index 0000000..80204b2 --- /dev/null +++ b/private_dot_config/hypr/hyprland/binds/screenshots.conf @@ -0,0 +1,19 @@ +# screenshots fullscreen (mainMod) + +bindt = , PRINT, exec, ~/.local/bin/screenshots.sh fullscreen --copy --save +bindt = L_SHIFT, PRINT, exec, ~/.local/bin/screenshots.sh fullscreen --edit + + +# screenshots region (alt) + +bindt = alt_l, PRINT, exec, ~/.local/bin/screenshots.sh region --copy --save +bindt = alt_l L_SHIFT, PRINT, exec, ~/.local/bin/screenshots.sh region --edit + + +# screenshots window (control) + +bindt = Control_L, PRINT, exec, ~/.local/bin/screenshots.sh window --copy --save +bindt = Control_L SHIFT_L, PRINT, exec, ~/.local/bin/screenshots.sh window --edit + +# color picker +bindt = $mainMod, PRINT, exec, ~/.local/bin/screenshots.sh color diff --git a/private_dot_config/hypr/hyprland/binds/windows.conf b/private_dot_config/hypr/hyprland/binds/windows.conf new file mode 100644 index 0000000..8b5c8ba --- /dev/null +++ b/private_dot_config/hypr/hyprland/binds/windows.conf @@ -0,0 +1,82 @@ +# Move focus with mainMod + vim keys +bind = $mainMod, h, movefocus, l +bind = $mainMod, l, movefocus, r +bind = $mainMod, k, movefocus, u +bind = $mainMod, j, movefocus, d + +# Resize with mainMod + shift + vim keys +binde = $mainMod L_SHIFT, l, resizeactive, 10 0 # right +binde = $mainMod L_SHIFT, h, resizeactive, -10 0 # left +binde = $mainMod L_SHIFT, k, resizeactive, 0 -10 #up +binde = $mainMod L_SHIFT, j, resizeactive, 0 10 # down + +# Move/resize windows with mainMod + LMB/RMB and dragging +bindm = $mainMod, mouse:272, movewindow +bindm = $mainMod, mouse:273, resizewindow + +# Scroll through existing workspaces with mainMod + scroll +bind = $mainMod, mouse_down, workspace, e+1 +bind = $mainMod, mouse_up, workspace, e-1 + +# Move to different monitor +bind = $mainMod L_SHIFT, right, exec, sleep 1 && hyprctl dispatch movecurrentworkspacetomonitor +1 +bind = $mainMod L_SHIFT, left, exec, sleep 1 && hyprctl dispatch movecurrentworkspacetomonitor -1 + +# 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 + +# Switch workspaces with mainMod + alt [10-19] +bind = $mainMod L_ALT, 1, workspace, 11 +bind = $mainMod L_ALT, 2, workspace, 12 +bind = $mainMod L_ALT, 3, workspace, 13 +bind = $mainMod L_ALT, 4, workspace, 14 +bind = $mainMod L_ALT, 5, workspace, 15 +bind = $mainMod L_ALT, 6, workspace, 16 +bind = $mainMod L_ALT, 7, workspace, 17 +bind = $mainMod L_ALT, 8, workspace, 18 +bind = $mainMod L_ALT, 9, workspace, 19 +bind = $mainMod L_ALT, 0, workspace, 20 + +# 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 + +bind = $mainMod SHIFT L_ALT, 1, movetoworkspace, 11 +bind = $mainMod SHIFT L_ALT, 2, movetoworkspace, 12 +bind = $mainMod SHIFT L_ALT, 3, movetoworkspace, 13 +bind = $mainMod SHIFT L_ALT, 4, movetoworkspace, 14 +bind = $mainMod SHIFT L_ALT, 5, movetoworkspace, 15 +bind = $mainMod SHIFT L_ALT, 6, movetoworkspace, 16 +bind = $mainMod SHIFT L_ALT, 7, movetoworkspace, 17 +bind = $mainMod SHIFT L_ALT, 8, movetoworkspace, 18 +bind = $mainMod SHIFT L_ALT, 9, movetoworkspace, 19 +bind = $mainMod SHIFT L_ALT, 0, movetoworkspace, 20 + +# Change display settings +bindd = $mainMod, F, Make app fullscreen, fullscreen +bindd = $mainMod, T, Toggle floating, togglefloating +bindd = $mainMod, P, Toggle pseudo, pseudo +bindd = $mainMod, P, Toggle pseudo, pseudo +bindd = $mainMod, S, Toggle split, togglesplit +bindd = $mainMod L_SHIFT, Q, Kill active window, killactive + +# special workspace +bind = $mainMod, TAB, togglespecialworkspace, magic +bind = $mainMod SHIFT, TAB, movetoworkspace, special:magic diff --git a/private_dot_config/hypr/hyprland/decoration.conf b/private_dot_config/hypr/hyprland/decoration.conf new file mode 100644 index 0000000..5c6194f --- /dev/null +++ b/private_dot_config/hypr/hyprland/decoration.conf @@ -0,0 +1,25 @@ +# https://wiki.hyprland.org/Configuring/Variables/#decoration +decoration { + rounding = 10 + 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 + } +} diff --git a/private_dot_config/hypr/hyprland/general.conf b/private_dot_config/hypr/hyprland/general.conf new file mode 100644 index 0000000..2a9e556 --- /dev/null +++ b/private_dot_config/hypr/hyprland/general.conf @@ -0,0 +1,19 @@ +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 +} + diff --git a/private_dot_config/hypr/hyprland/input.conf b/private_dot_config/hypr/hyprland/input.conf new file mode 100644 index 0000000..27fae7c --- /dev/null +++ b/private_dot_config/hypr/hyprland/input.conf @@ -0,0 +1,24 @@ +input { + kb_layout = pl + kb_variant = + kb_model = + kb_options = + kb_rules = + + follow_mouse = 1 + left_handed = true + + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. + + touchpad { + natural_scroll = true + } +} + +cursor { + no_hardware_cursors = true + inactive_timeout = 5 + warp_on_change_workspace = 1 + zoom_factor = 1.0 + hide_on_key_press = 1 +} diff --git a/private_dot_config/hypr/hyprland/layouts.conf b/private_dot_config/hypr/hyprland/layouts.conf new file mode 100644 index 0000000..e718778 --- /dev/null +++ b/private_dot_config/hypr/hyprland/layouts.conf @@ -0,0 +1,8 @@ +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 +} + +master { + new_status = master +} diff --git a/private_dot_config/hypr/hyprland/rules/bitwarden.conf b/private_dot_config/hypr/hyprland/rules/bitwarden.conf new file mode 100644 index 0000000..6d75ebd --- /dev/null +++ b/private_dot_config/hypr/hyprland/rules/bitwarden.conf @@ -0,0 +1,2 @@ +windowrulev2 = float, title:(.*)(itwarden)(.*) +windowrulev2 = float, title:^(Rozszerzenie: (Menedżer Haseł Bitwarden) - Bitwarden — Zen Browser)$ diff --git a/private_dot_config/hypr/hyprland/rules/browser.conf b/private_dot_config/hypr/hyprland/rules/browser.conf new file mode 100644 index 0000000..76f98a5 --- /dev/null +++ b/private_dot_config/hypr/hyprland/rules/browser.conf @@ -0,0 +1,12 @@ +windowrulev2 = workspace 2 silent, class:^(zen-beta)$ +windowrulev2 = noinitialfocus, class:^(zen-beta)$ +windowrulev2 = suppressevent activatefocus, class:^(zen-beta)$ +windowrulev2 = size 40% 40%, class:^(zen-beta)$ + +windowrulev2 = pseudo, title:^(Obraz w obrazie)$ +windowrulev2 = workspace 2, title:^(Obraz w obrazie)$ +windowrulev2 = noinitialfocus, title:^(Obraz w obrazie)$ +windowrulev2 = suppressevent activatefocus, title:^(Obraz w obrazie)$ + +windowrulev2 = float, title:^(Logowanie – Konta Google — Zen Browser)$ +windowrulev2 = center, title:^(Logowanie – Konta Google — Zen Browser)$ diff --git a/private_dot_config/hypr/hyprland/rules/feh.conf b/private_dot_config/hypr/hyprland/rules/feh.conf new file mode 100644 index 0000000..c5ca726 --- /dev/null +++ b/private_dot_config/hypr/hyprland/rules/feh.conf @@ -0,0 +1 @@ +windowrulev2 = animation:disabled, class:^(feh)$ diff --git a/private_dot_config/hypr/hyprland/rules/gimp.conf b/private_dot_config/hypr/hyprland/rules/gimp.conf new file mode 100644 index 0000000..4f88a21 --- /dev/null +++ b/private_dot_config/hypr/hyprland/rules/gimp.conf @@ -0,0 +1 @@ +windowrulev2 = workspace 4, class:^(gimp)-(.*) diff --git a/private_dot_config/hypr/hyprland/rules/heroic.conf b/private_dot_config/hypr/hyprland/rules/heroic.conf new file mode 100644 index 0000000..17ad035 --- /dev/null +++ b/private_dot_config/hypr/hyprland/rules/heroic.conf @@ -0,0 +1 @@ +windowrulev2 = workspace 3, class:^(heroic)$ diff --git a/private_dot_config/hypr/hyprland/rules/kitty.conf b/private_dot_config/hypr/hyprland/rules/kitty.conf new file mode 100644 index 0000000..5385ac7 --- /dev/null +++ b/private_dot_config/hypr/hyprland/rules/kitty.conf @@ -0,0 +1 @@ +windowrulev2 = workspace 4, class:^(kitty)$ diff --git a/private_dot_config/hypr/hyprland/rules/lutris.conf b/private_dot_config/hypr/hyprland/rules/lutris.conf new file mode 100644 index 0000000..07791ae --- /dev/null +++ b/private_dot_config/hypr/hyprland/rules/lutris.conf @@ -0,0 +1 @@ +windowrulev2 = workspace 3, class:^(net.lutris.Lutris)$ diff --git a/private_dot_config/hypr/hyprland/rules/misc.conf b/private_dot_config/hypr/hyprland/rules/misc.conf new file mode 100644 index 0000000..5dc1c42 --- /dev/null +++ b/private_dot_config/hypr/hyprland/rules/misc.conf @@ -0,0 +1,5 @@ +# Ignore maximize requests from apps. +windowrulev2 = suppressevent maximize, class:.* + +# Fix some dragging issues with XWayland +windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0 diff --git a/private_dot_config/hypr/hyprland/rules/obs.conf b/private_dot_config/hypr/hyprland/rules/obs.conf new file mode 100644 index 0000000..7d70dcf --- /dev/null +++ b/private_dot_config/hypr/hyprland/rules/obs.conf @@ -0,0 +1 @@ +windowrulev2 = workspace 10, class:^(com.obsproject.Studio)$ diff --git a/private_dot_config/hypr/hyprland/rules/pavucontrol.conf b/private_dot_config/hypr/hyprland/rules/pavucontrol.conf new file mode 100644 index 0000000..29195c9 --- /dev/null +++ b/private_dot_config/hypr/hyprland/rules/pavucontrol.conf @@ -0,0 +1,4 @@ +windowrulev2 = float, class:^(org.pulseaudio.pavucontrol)$ +windowrulev2 = size 80% 60%, class:^(org.pulseaudio.pavucontrol)$ +windowrulev2 = stayfocused, class:^(org.pulseaudio.pavucontrol)$ +windowrulev2 = pin, class:^(org.pulseaudio.pavucontrol)$ diff --git a/private_dot_config/hypr/hyprland/rules/rpcs3.conf b/private_dot_config/hypr/hyprland/rules/rpcs3.conf new file mode 100644 index 0000000..d92f7e9 --- /dev/null +++ b/private_dot_config/hypr/hyprland/rules/rpcs3.conf @@ -0,0 +1 @@ +windowrulev2 = workspace 3, class:^(rpcs3)$ diff --git a/private_dot_config/hypr/hyprland/rules/spotify.conf b/private_dot_config/hypr/hyprland/rules/spotify.conf new file mode 100644 index 0000000..fedc222 --- /dev/null +++ b/private_dot_config/hypr/hyprland/rules/spotify.conf @@ -0,0 +1 @@ +windowrulev2 = workspace 9 silent, class:.*potify diff --git a/private_dot_config/hypr/hyprland/rules/steam.conf b/private_dot_config/hypr/hyprland/rules/steam.conf new file mode 100644 index 0000000..ff689ac --- /dev/null +++ b/private_dot_config/hypr/hyprland/rules/steam.conf @@ -0,0 +1,8 @@ +windowrulev2 = workspace 3 silent, class:^(steam)$ +windowrulev2 = noinitialfocus, class:^(steam)$ +windowrulev2 = suppressevent activatefocus, class:^(steam)$ +windowrulev2 = stayfocused, title:^(Sign in to Steam)$, class:^(steam)$ + +windowrulev2 = float, title:^(Lista znajomych)$ +windowrulev2 = center, title:^(Lista znajomych)$ +windowrulev2 = size 40% 60%, title:^(Lista znajomych)$ diff --git a/private_dot_config/hypr/hyprland/rules/swappy.conf b/private_dot_config/hypr/hyprland/rules/swappy.conf new file mode 100644 index 0000000..12bd072 --- /dev/null +++ b/private_dot_config/hypr/hyprland/rules/swappy.conf @@ -0,0 +1,2 @@ +windowrulev2 = pin, title:swappy +windowrulev2 = stayfocused, title:swappy diff --git a/private_dot_config/hypr/hyprland/rules/vesktop.conf b/private_dot_config/hypr/hyprland/rules/vesktop.conf new file mode 100644 index 0000000..5af54d3 --- /dev/null +++ b/private_dot_config/hypr/hyprland/rules/vesktop.conf @@ -0,0 +1,8 @@ +windowrulev2 = workspace 1 silent, class:^(vesktop)$ +windowrulev2 = noinitialfocus, class:^(vesktop)$ +windowrulev2 = focusonactivate 0, class:^(vesktop)$ +windowrulev2 = renderunfocused, class:^(vesktop)$ +windowrulev2 = opacity 0.95, class:^(vesktop)$ +windowrulev2 = fullscreen, class:^(vesktop)$ + + diff --git a/private_dot_config/hypr/hyprland/workspaces.conf b/private_dot_config/hypr/hyprland/workspaces.conf new file mode 100644 index 0000000..c61df57 --- /dev/null +++ b/private_dot_config/hypr/hyprland/workspaces.conf @@ -0,0 +1,6 @@ +workspace = 1, monitor:HDMI-A-1 +workspace = 2, monitor:DP-1 +workspace = 3, monitor:DP-1 +workspace = 4, monitor:DP-1 +workspace = 9, monitor:HDMI-A-1 +workspace = 10, monitor:HDMI-A-1 diff --git a/private_dot_config/hypr/hyprlock.conf b/private_dot_config/hypr/hyprlock.conf new file mode 100644 index 0000000..f22033b --- /dev/null +++ b/private_dot_config/hypr/hyprlock.conf @@ -0,0 +1,32 @@ +general { + ignore_empty_input = 1 +} + +background { + monitor = + color = black + +} + +input-field { + monitor = + size = 200, 50 + outline_thickness = 3 + rounding = -1 + halign = center + valign = center + color = white +} + +label { + monitor = + text = Aktualna godzina: $TIME + text_align = center + color = white + font_size = 25 + font_family = Noto Sans + position = 0, 80 + halign = center + valign = center + shadow_passes =1 +} diff --git a/private_dot_config/mako/config b/private_dot_config/mako/config new file mode 100644 index 0000000..5b4484e --- /dev/null +++ b/private_dot_config/mako/config @@ -0,0 +1,10 @@ +[app-name=wp-vol] +layer=overlay +history=0 +anchor=top-right + +[mode=do-not-disturb] +invisible=1 + +[mode=do-not-disturb app-name=wp-vol] +invisible=0 diff --git a/private_dot_local/bin/executable_screenshots.sh b/private_dot_local/bin/executable_screenshots.sh new file mode 100644 index 0000000..ac39565 --- /dev/null +++ b/private_dot_local/bin/executable_screenshots.sh @@ -0,0 +1,123 @@ +#!/bin/bash + +### DEPENDENCIES: +## libnotify +## feh +## grim +## slurp +## swappy +## wl-clipboard + +dir_target="$HOME/Obrazy/zrzuty" # where your screenshots are stored +file_name="zrzut_$(date +'%H-%M-%S_%d-%m-%Y').png" # name of your screenshot +file_path="$dir_target/$file_name" # full path combined of the above +tmp_path="/tmp/$file_name" # path of temporary file + +# flags +edit=false # edit after screenshotting +save=false # save to the disk +copy=false # copy to clipboard + +# messages + +error_message="No argument provided. Use -h or --help for help message." +help_message="\nUsage: screenShot [flags] [type-of-screen-shot / color (for color picker)\n\nFlags:\n\t-c | --copy \t Copies to clipboard\n\t-s | --save \t Saves to $dir_target\n\t-e | --edit \t Edit screenshot with swappy\n\nTypes:\n\tfullscreen\n\twindow\n\tregion\n" + +# don't go crazy when directory doesn't exist + +if [[ ! -d $dir_target ]]; then + echo "Target directory does not exist. Creating..." + notify-send "Screenshot" "Target directory does not exist. Creating..." + mkdir -p $dir_target +fi + +# handle flags +while [[ $# -gt 0 ]]; do + case "$1" in + -c | --copy) + copy=true + ;; + -s | --save) + save=true + ;; + -e | --edit) + edit=true + ;; + -h | --help) + echo -e "$help_message" + exit 0 + ;; + fullscreen | window | region | color) + type_of_screenshot="$1" + ;; + *) + echo "$error_message" + exit 1 + ;; + esac + shift +done + +# actually screenshot +case "$type_of_screenshot" in +fullscreen) + grim -o $(hyprctl monitors -j | jq -r '.[] | select(.focused == true) | .name') "$tmp_path" + ;; +window) + active_window_position="$(hyprctl clients -j | jq -r '.[] | select(.focusHistoryID == 0) | .at')" + active_window_size="$(hyprctl clients -j | jq -r '.[] | select(.focusHistoryID == 0) | .size')" + + x=$(echo "$active_window_position" | jq '.[0]') + y=$(echo "$active_window_position" | jq '.[1]') + width=$(echo "$active_window_size" | jq '.[0]') + height=$(echo "$active_window_size" | jq '.[1]') + + grim -g "${x},${y} ${width}x${height}" "$tmp_path" + ;; +region) + grim -o $(hyprctl monitors -j | jq -r '.[] | select(.focused == true) | .name') "$tmp_path" && feh --fullscreen "$tmp_path" & + sleep 0.5 + feh_pid=$(pgrep feh) + grim -g "$(slurp)" "$tmp_path" + echo "Killing feh…" + kill -9 "$feh_pid" + ;; +color) + grim -o $(hyprctl monitors -j | jq -r '.[] | select(.focused == true) | .name') "$tmp_path" && feh --fullscreen "$tmp_path" & + sleep 0.5 + feh_pid=$(pgrep feh) + position=$(slurp -p) + sleep 1.0 + color_hex=$(grim -g "$position" -t ppm - | magick convert - -format '%[pixel:p{0,0}]' txt:- | sed -n '2p' | awk '{print $3}') + wl-copy $color_hex + notify-send "Color picker" "Copied $color_hex to clipboard" + kill -9 "$feh_pid" + exit 0 + ;; + +esac + +case "$copy-$save" in +"true-true") + cp "$tmp_path" "$file_path" + wl-copy <"$tmp_path" + notify-send -i "$tmp_path" "Screenshot" "Copied and saved to $file_path" + ;; +"false-true") + cp "$tmp_path" "$file_path" + notify-send -i "$tmp_path" "Screenshot" "Saved screenshot to $file_path" + ;; +"true-false") + wl-copy <"$tmp_path" + notify-send -i "$tmp_path" "Screenshot" "Copied screenshot" + ;; +"false-false") + if [ "$edit" = "true" ]; then + swappy -f "$tmp_path" + fi + ;; +esac + +rm $tmp_path + +exit 0 diff --git a/private_dot_local/bin/executable_system_setup.sh b/private_dot_local/bin/executable_system_setup.sh new file mode 100644 index 0000000..669f2a4 --- /dev/null +++ b/private_dot_local/bin/executable_system_setup.sh @@ -0,0 +1,34 @@ +#!/bin/bash +set -e +sudo pacman -Syu fish neovim uwsm python3 util-linux libnewt wofi kitty yazi playerctl tldr flatpak zen-browser-avx2-bin wl-clipboard hyprland hyprpaper hypridle hyprlock xdg-desktop-portal-hyprland xdg-desktop-portal-gtk scx-scheds pipewire wireplumber pavucontrol man-db fastfetch btop pipewire-audio pipewire-alsa pipewire-pulse mako libnotify feh slurp grim swappy cliphist file nerd-fonts ffmpeg 7zip jq poppler fd ripgrep fzf zoxide imagemagick bat eza npm bc vesktop mangohud goverlay steam gimp spotify-launcher obs-studio gamescope gamemode bluez bluez-utils blueman heroic-games-launcher chezmoi github-cli --needed --noconfirm + +if ! groups "$USER" | grep -qw "gamemode"; then + sudo usermod -aG gamemode "$USER" +fi + +if ! echo $PATH | grep -q "$HOME/.local/bin"; then + fish_add_path "$HOME/.local/bin" +fi + +if ! echo $SHELL | grep -qw "/usr/bin/fish"; then + chsh -s "$(command -v fish)" +fi + +if ! pacman -Q yay &>/dev/null; then + echo "Yay is not installed, installing..." + sudo pacman -S --needed git base-devel + git clone https://aur.archlinux.org/yay.git $HOME/yay + cd $HOME/yay + makepkg -si + cd .. + rm yay -rf +else + echo "Yay is installed..." + yay -S hyprsunset hyprpolkitagent eww --needed +fi + +flatpak update --noninteractive +flatpak install --noninteractive net.rpcs3.RPCS3 + +systemctl --user enable hypridle hyprpolkitagent pipewire-pulse hypridle +sudo systemctl enable bluetooth diff --git a/private_dot_local/bin/executable_wp-vol.sh b/private_dot_local/bin/executable_wp-vol.sh new file mode 100644 index 0000000..9ac60ba --- /dev/null +++ b/private_dot_local/bin/executable_wp-vol.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +# Get the volume level and convert it to a percentage +volume=$(wpctl get-volume @DEFAULT_AUDIO_SINK@) +volume=$(echo "$volume" | awk '{print $2}') +volume=$(echo "( $volume * 100 ) / 1" | bc) + +notify-send -t 1000 -a 'wp-vol' -h int:value:$volume "Volume: ${volume}%"