diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf new file mode 100644 index 0000000..1b61207 --- /dev/null +++ b/.config/hypr/hyprland.conf @@ -0,0 +1,190 @@ +# See https://wiki.hyprland.org/Configuring/Keywords/ for more + +# Execute your favorite apps at launch +exec=pkill kanshi; kanshi +exec=pidof hyprpaper || hyprpaper +exec=pidof wlsunset || wlsunset + +# Source a file (multi-file configs) +# source = ~/.config/hypr/myColors.conf + +# Some default env vars. +env = XCURSOR_SIZE,24 + +# env setting for nvidia +env = LIBVA_DRIVER_NAME,nvidia +env = XDG_SESSION_TYPE,wayland +# env = GBM_BACKEND,nvidia-drm +env = WLR_DRM_DEVICES,/dev/dri/card0:/dev/dri/card1 +env = __GLX_VENDOR_LIBRARY_NAME,nvidia +env = WLR_NO_HARDWARE_CURSORS,1 + +# For all categories, see https://wiki.hyprland.org/Configuring/Variables/ +input { + kb_layout = us + kb_variant = + kb_model = + kb_options = + kb_rules = + + follow_mouse = 1 + + touchpad { + natural_scroll = true + } + + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. +} + +general { + gaps_in = 4 + gaps_out = 8 + border_size = 1 + col.active_border = rgb(fbf1c7) + col.inactive_border = rgb(928374) + cursor_inactive_timeout = 10 + resize_on_border = true + layout = dwindle +} + +decoration { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + + rounding = 4 + + blur { + enabled = false + } + + drop_shadow = true +} + +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 + force_split = 2 + no_gaps_when_only = 1 + default_split_ratio = 1.2 +} + +master { + # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more + new_is_master = true +} + +gestures { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + workspace_swipe = on +} + +misc { + disable_splash_rendering = true + vrr = 1 + disable_autoreload = true + focus_on_activate = true +} + +xwayland { + force_zero_scaling = true +} + +# Example per-device config +# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more +device:epic-mouse-v1 { + sensitivity = -0.5 +} + +# Example windowrule v1 +# windowrule = float, ^(kitty)$ +# Example windowrule v2 +# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ +# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more + + +# See https://wiki.hyprland.org/Configuring/Keywords/ for more +$mainMod = SUPER + +# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more +bind = $mainMod, N, exec, kitty +bind = $mainMod, W, killactive, +bind = $mainMod + CTRL, Q, exit, +bind = $mainMod + SHIFT, SPACE, togglefloating, +bind = $mainMod + SHIFT, RETURN, exec, wofi --show drun +bind = $mainMod + SHIFT, P, pseudo, # 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 + +# Move focus with hjkl also +bind = $mainMod, h, movefocus, l +bind = $mainMod, l, movefocus, r +bind = $mainMod, k, movefocus, u +bind = $mainMod, j, movefocus, d + +# Move windows with hjkl +bind = $mainMod + SHIFT, h, swapwindow, l +bind = $mainMod + SHIFT, l, swapwindow, r +bind = $mainMod + SHIFT, k, swapwindow, u +bind = $mainMod + SHIFT, j, swapwindow, 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 + +# Resize windows +bind = $mainMod SHIFT, 60, resizeactive, -10% 0 +bind = $mainMod SHIFT, 59, resizeactive, 10% 0 +bind = $mainMod SHIFT, 21, resizeactive, 0 -10% +bind = $mainMod, 20, resizeactive, 0 10% + +# 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 + +# AutoExecs: +# Systemd +exec-once=/usr/libexec/sway-systemd/session.sh +exec-once=/usr/libexec/sway-systemd/assign-cgroups.py diff --git a/.config/hypr/hyprpaper.conf b/.config/hypr/hyprpaper.conf new file mode 100644 index 0000000..7ada119 --- /dev/null +++ b/.config/hypr/hyprpaper.conf @@ -0,0 +1,3 @@ +preload = ~/.config/sway/Wallpaper/bg.png +wallpaper = HDMI-A-1, ~/.config/sway/Wallpaper/bg.png +ipc = off diff --git a/.config/kanshi/config b/.config/kanshi/config new file mode 100644 index 0000000..9fa9764 --- /dev/null +++ b/.config/kanshi/config @@ -0,0 +1,9 @@ +profile docked { + output eDP-1 disable + output "XMI Redmi 27 NU 3948622WH08F4" mode 3840x2160@60Hz position 2560,0 transform 270 scale 1.5 + output "Lectron Company Ltd LECOO M2412HL GG30A137" mode 2560x1440@74.96800Hz position 0,0 +} + +profile mobile { + output eDP-1 enable +} diff --git a/.config/kitty/kitty.conf b/.config/kitty/kitty.conf index 3bc617b..35373be 100644 --- a/.config/kitty/kitty.conf +++ b/.config/kitty/kitty.conf @@ -8,6 +8,10 @@ font_size 13.5 symbol_map U+23FB-U+23FE,U+2B58,U+E200-U+E2A9,U+E0A0-U+E0A3,U+E0B0-U+E0BF,U+E0C0-U+E0C8,U+E0CC-U+E0CF,U+E0D0-U+E0D2,U+E0D4,U+E700-U+E7C5,U+F000-U+F2E0,U+2665,U+26A1,U+F400-U+F4A8,U+F67C,U+E000-U+E00A,U+F300-U+F313,U+E5FA-U+E62B Symbols Nerd Font Mono +# Performance + +sync_to_monitor yes + # shell stuff shell_integration enabled diff --git a/.config/mpv/arguments.py b/.config/mpv/arguments.py new file mode 100644 index 0000000..82678e5 --- /dev/null +++ b/.config/mpv/arguments.py @@ -0,0 +1,87 @@ +import argparse +import collections +import json +import pathlib + + +class Profile: + def __init__(self, object, json, groups_key="setting-groups"): + self.json = json + self.groups_key = groups_key + + self._settings = [] + self._shaders = [] + + self._collect(object) + + def _collect(self, object): + self._settings.extend(object.get("settings", [])) + self._shaders.extend(object.get("shaders", [])) + + for key in object.get(self.groups_key, []): + self._collect(self.json["setting-groups"][key]) + + +parser = argparse.ArgumentParser() + +parser.add_argument("--profile", default=None) +parser.add_argument( + "--path", default=f"{pathlib.Path.home()}/.config/mpv/default-shader-pack") +parser.add_argument("--config", default=False, action="store_true") + +arguments = parser.parse_args() +arguments.path = str(pathlib.Path(arguments.path)) + + +# with open(pathlib.Path(arguments.path, "pack.json"), "rb") as file: +with open(pathlib.Path(arguments.path, "pack-hq.json"), "rb") as file: + json_ = json.load(file) + + +if arguments.profile is None: + for profile in json_["profiles"].values(): + print(profile["displayname"]) + +else: + if arguments.config: + prefix = "" + end = None + + else: + prefix = "--" + end = " " + + default_profile = Profile( + json_, json_, groups_key="default-setting-groups") + + (_,) = ( + profile + for profile in json_["profiles"].values() + if profile["displayname"] == arguments.profile + ) + profile = Profile(_, json_) + for key, value in collections.OrderedDict( + default_profile._settings + profile._settings + ).items(): + key = key.replace("_", "-") + + if value is True: + print(prefix, key, sep="", end=end) + continue + + print(prefix, key, "=", value, sep="", end=end) + + print( + prefix, + "glsl-shaders=", + ":".join( + str(pathlib.Path(arguments.path, "shaders", shader)) + for shader in collections.OrderedDict( + (_, None) for _ in default_profile._shaders + profile._shaders + ).keys() + ), + sep="", + end=end, + ) + + print() diff --git a/.config/mpv/default-shader-pack b/.config/mpv/default-shader-pack new file mode 160000 index 0000000..ca506a6 --- /dev/null +++ b/.config/mpv/default-shader-pack @@ -0,0 +1 @@ +Subproject commit ca506a6bf3937881ebd1ab35bfbaf3d9b0221e0d diff --git a/.config/mpv/mpv.conf b/.config/mpv/mpv.conf index acd1e79..faa00c9 100644 --- a/.config/mpv/mpv.conf +++ b/.config/mpv/mpv.conf @@ -1,3 +1,19 @@ -volume=50 +volume=70 sub-auto=fuzzy -hwdec=auto-safe +# hwdec=auto-safe + +# mpv options with upscaling + +deband +deband-grain=0 +deband-range=12 +deband-threshold=32 +hwdec=auto-copy +profile=gpu-hq +gpu-api=opengl +fbo-format=rgba16f +dither-depth=auto +dither=fruit +glsl-shaders-append=/home/ryan/.config/mpv/default-shader-pack/shaders/noise_static_luma.hook +glsl-shaders-append=/home/ryan/.config/mpv/default-shader-pack/shaders/noise_static_chroma.hook +glsl-shaders-append=/home/ryan/.config/mpv/default-shader-pack/shaders/CAS-scaled.glsl diff --git a/.config/sway/config b/.config/sway/config index d734f82..3e7034f 100644 --- a/.config/sway/config +++ b/.config/sway/config @@ -1,5 +1,5 @@ -include ~/.config/sway/config.d/custom include ~/.config/sway/config.d/display -include ~/.config/sway/config.d/exec include ~/.config/sway/config.d/theme include ~/.config/sway/config.d/keybinds +include ~/.config/sway/config.d/custom +include ~/.config/sway/config.d/exec diff --git a/.config/sway/config.d/display b/.config/sway/config.d/display index 161970d..b345821 100644 --- a/.config/sway/config.d/display +++ b/.config/sway/config.d/display @@ -6,7 +6,7 @@ bindswitch --reload --locked lid:on output $laptop disable bindswitch --reload --locked lid:off output $laptop enable # bar -bar swaybar_command waybar +# bar swaybar_command waybar #workspace_auto_back_and_forth yes force_display_urgency_hint 500 ms diff --git a/.config/sway/config.d/exec b/.config/sway/config.d/exec index 0bb42fb..daf3a43 100644 --- a/.config/sway/config.d/exec +++ b/.config/sway/config.d/exec @@ -3,9 +3,9 @@ ##starting userspace software # exec_always sh -c ~/.config/sway/scripts/update-wallpaper.sh exec mkfifo /tmp/kitty -exec wlsunset -s 19:00 -S 07:00 +exec wlsunset -s 19:00 -S 07:00 -d 1800 exec light -S 70 # exec gentoo-pipewire-launcher -exec swaync +# exec swaync exec playerctld daemon # exec dbus-update-activation-environment --all diff --git a/.config/sway/config.d/keybinds b/.config/sway/config.d/keybinds index 02daade..bec5f61 100644 --- a/.config/sway/config.d/keybinds +++ b/.config/sway/config.d/keybinds @@ -6,7 +6,7 @@ set $down j set $up k set $right l set $term kitty -1 -set $menu wofi | xargs swaymsg exec -- +set $menu wofi # my keybinds diff --git a/.config/sway/scripts/logout.sh b/.config/sway/scripts/logout.sh index b8daec3..e2fb54a 100755 --- a/.config/sway/scripts/logout.sh +++ b/.config/sway/scripts/logout.sh @@ -2,16 +2,16 @@ choice=`echo -e "suspend\nshutdown\npoweroff\nreboot\nlock" | wofi -d --prompt "󰚥 Choose power option" -Oalphabetical` if test "$choice" = lock ; then - bright=`light` - swayidle -w \ - timeout 5 "light -S 1" resume "light -S $bright" \ - timeout 10 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \ - & - idlepid=$! - swaylock -e -c 282828 --inside-color 00000003 - kill $idlepid - swaymsg "output * power on" - light -S $bright - return 0 + bright=`light` + swayidle -w \ + timeout 5 "light -S 1" resume "light -S $bright" \ + timeout 10 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \ + & + idlepid=$! + swaylock -e -c 282828 --inside-color 00000003 + kill $idlepid + swaymsg "output * power on" + light -S $bright +else + loginctl $choice fi -loginctl $choice diff --git a/.config/waybar/config b/.config/waybar/config index 42a52ac..f74733b 100644 --- a/.config/waybar/config +++ b/.config/waybar/config @@ -1,11 +1,11 @@ { "layer": "top", "modules-left": [ - "sway/workspaces" + "hyprland/workspaces" ], "fixed-center": false, "modules-center": [ - "sway/window" + "hyprland/window" ], "modules-right": [ "tray", @@ -17,8 +17,13 @@ "battery", "clock" ], - "sway/window": { - "max-length": 50 + "hyprland/workspaces": { + "on-scroll-up": "hyprctl dispatch workspace e+1", + "on-scroll-down": "hyprctl dispatch workspace e-1" + }, + "hyprland/window": { + "max-length": 50, + "separate-outputs": true }, "tray": { "spacing": 10 diff --git a/.config/waybar/style.css b/.config/waybar/style.css index e3d1c8c..6bc15a8 100644 --- a/.config/waybar/style.css +++ b/.config/waybar/style.css @@ -27,7 +27,7 @@ window#waybar { color: @background_b; } -#workspaces button.focused { +#workspaces button.active { color: @foreground; font-weight: bold; } diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..c868336 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule ".config/mpv/default-shader-pack"] + path = .config/mpv/default-shader-pack + url = https://github.com/iwalton3/default-shader-pack.git diff --git a/Pictures/wall/sway/dark/181818.png b/Pictures/wall/sway/dark/181818.png deleted file mode 100644 index a5e8528..0000000 Binary files a/Pictures/wall/sway/dark/181818.png and /dev/null differ diff --git a/Pictures/wall/sway/light/fbf1c7.png b/Pictures/wall/sway/light/fbf1c7.png deleted file mode 100644 index bc7e43c..0000000 Binary files a/Pictures/wall/sway/light/fbf1c7.png and /dev/null differ