diff --git a/flake.lock b/flake.lock index edb744b..67652a6 100644 --- a/flake.lock +++ b/flake.lock @@ -349,11 +349,11 @@ ] }, "locked": { - "lastModified": 1716576411, - "narHash": "sha256-FIN1wMoyePBTtibCbaeJaoKNLuAYIGwLCWAYC1DJanw=", + "lastModified": 1718368322, + "narHash": "sha256-VfMg3RsnRLQzbq0hFIh1dCM09b5C/F/qPFUOgU/CRi0=", "owner": "hyprwm", "repo": "hyprcursor", - "rev": "57298fc4f13c807e50ada2c986a3114b7fc2e621", + "rev": "dd3a853c8239d1c3f3f37de7d2b8ae4b4f3840df", "type": "github" }, "original": { @@ -366,17 +366,18 @@ "inputs": { "hyprcursor": "hyprcursor", "hyprlang": "hyprlang", + "hyprutils": "hyprutils", "hyprwayland-scanner": "hyprwayland-scanner", "nixpkgs": "nixpkgs", "systems": "systems_3", "xdph": "xdph" }, "locked": { - "lastModified": 1717576964, - "narHash": "sha256-+iTjt2ujiWJZW7J36s/CzMiF1CEOi20TTK+Uq53tlxk=", + "lastModified": 1718480796, + "narHash": "sha256-BMLFzvIn5Qdrfc1zyIXWTMA5FHx+R9JNDJ7dkwbvdzk=", "ref": "refs/heads/main", - "rev": "fefa55d406e38eda481ce75178cef3e43298762d", - "revCount": 4763, + "rev": "1f5fd7e64a1c0e8d1815bdd6d168193bf9c28d6d", + "revCount": 4839, "submodules": true, "type": "git", "url": "https://github.com/hyprwm/Hyprland" @@ -436,6 +437,10 @@ }, "hyprlang": { "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], "nixpkgs": [ "hyprland", "nixpkgs" @@ -446,11 +451,11 @@ ] }, "locked": { - "lastModified": 1716473782, - "narHash": "sha256-+qLn4lsHU6iL3+HTo1gTQ1tWzet8K9h+IfVemzEQZj8=", + "lastModified": 1717881852, + "narHash": "sha256-XeeVoKHQgfKuXoP6q90sUqKyl7EYy3ol2dVZGM+Jj94=", "owner": "hyprwm", "repo": "hyprlang", - "rev": "87d5d984109c839482b88b4795db073eb9ed446f", + "rev": "ec6938c66253429192274d612912649a0cfe4d28", "type": "github" }, "original": { @@ -459,6 +464,31 @@ "type": "github" } }, + "hyprutils": { + "inputs": { + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1718271409, + "narHash": "sha256-8KvVqtApNt4FWTdn1TqVvw00rpqyG9UuUPA2ilPVD1U=", + "owner": "hyprwm", + "repo": "hyprutils", + "rev": "8e10e0626fb26a14b859b3811b6ed7932400c86e", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprutils", + "type": "github" + } + }, "hyprwayland-scanner": { "inputs": { "nixpkgs": [ @@ -471,11 +501,11 @@ ] }, "locked": { - "lastModified": 1716058375, - "narHash": "sha256-CwjWoVnBZE5SBpRx9dgSQGCr4Goxyfcyv3zZbOhVqzk=", + "lastModified": 1718119275, + "narHash": "sha256-nqDYXATNkyGXVmNMkT19fT4sjtSPBDS1LLOxa3Fueo4=", "owner": "hyprwm", "repo": "hyprwayland-scanner", - "rev": "3afed4364790aebe0426077631af1e164a9650cc", + "rev": "1419520d5f7f38d35e05504da5c1b38212a38525", "type": "github" }, "original": { @@ -542,11 +572,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1716330097, - "narHash": "sha256-8BO3B7e3BiyIDsaKA0tY8O88rClYRTjvAp66y+VBUeU=", + "lastModified": 1718318537, + "narHash": "sha256-4Zu0RYRcAY/VWuu6awwq4opuiD//ahpc2aFHg2CWqFY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "5710852ba686cc1fd0d3b8e22b3117d43ba374c2", + "rev": "e9ee548d90ff586a6471b4ae80ae9cfcbceb3420", "type": "github" }, "original": { @@ -983,11 +1013,11 @@ ] }, "locked": { - "lastModified": 1716290197, - "narHash": "sha256-1u9Exrc7yx9qtES2brDh7/DDZ8w8ap1nboIOAtCgeuM=", + "lastModified": 1718272114, + "narHash": "sha256-KsX7sAwkEFpXiwyjt0HGTnnrUU58wW1jlzj5IA/LRz8=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "91e48d6acd8a5a611d26f925e51559ab743bc438", + "rev": "24be4a26f0706e456fca1b61b8c79f7486a9e86d", "type": "github" }, "original": { diff --git a/home/home.nix b/home/home.nix index 3dee4e3..4d60aac 100644 --- a/home/home.nix +++ b/home/home.nix @@ -5,9 +5,11 @@ imports = [ ./theme.nix + ../pkgs/cfgs ../pkgs/helix ../pkgs/yazi ../pkgs/waybar + ../pkgs/hyprland/hyprshade ]; #services.blueman-applet.enable = true; diff --git a/hosts/dlaptop/services.nix b/hosts/dlaptop/services.nix index 83d0b0c..f9e4b27 100644 --- a/hosts/dlaptop/services.nix +++ b/hosts/dlaptop/services.nix @@ -42,6 +42,8 @@ }; }; + services.openssh.enable = true; + systemd.services.sshd.wantedBy = lib.mkForce []; services.tailscale.enable = true; services.syncthing.enable = true; #services.blueman.enable = true; diff --git a/pkgs/apps.nix b/pkgs/apps.nix index 8b42af3..5fc6ae3 100644 --- a/pkgs/apps.nix +++ b/pkgs/apps.nix @@ -211,7 +211,15 @@ in { programs.xfconf.enable = true; programs.virt-manager.enable = true; - programs.steam.enable = true; + programs.steam = { + enable = true; + package = pkgs.steam.override (old: { + extraBwrapArgs = [ + "--setenv SSL_CERT_FILE /etc/ssl/certs/ca-certificates.crt" + "--setenv SSL_CERT_DIR ${pkgs.cacert.unbundled}/etc/ssl/certs" + ]; + }); + }; programs.steam.gamescopeSession.enable = true; programs.noisetorch.enable = true; programs.gamemode.enable = true; diff --git a/pkgs/cfgs/default.nix b/pkgs/cfgs/default.nix new file mode 100644 index 0000000..0013dfd --- /dev/null +++ b/pkgs/cfgs/default.nix @@ -0,0 +1,63 @@ +{ pkgs, lib, ... }: + +{ + # .nix for small config files that do not deserve separate folder + + home.file.".config/foot/foot.ini".text = '' +font=FiraCode Nerd Font Mono Light:size=7 +#box-drawings-uses-font-glyphs=true +dpi-aware=true +resize-delay-ms=10 + +[tweak] +max-shm-pool-size-mb=2048 +font-monospace-warn=false +box-drawing-solid-shades=true +[cursor] +style=beam +blink=false +[colors] +alpha=1 + +#maybe change theme to cat /usr/share/foot/themes/visibone idk + +#foreground=cdd6f4 # Text +##background=1e1e2e # Base +#background=000000 # Base +#regular0=45475a # Surface 1 +#regular1=f38ba8 # red +#regular2=a6e3a1 # green +#regular3=f9e2af # yellow +#regular4=89b4fa # blue +#regular5=f5c2e7 # pink +#regular6=94e2d5 # teal +#regular7=bac2de # Subtext 1 +#bright0=585b70 # Surface 2 +#bright1=f38ba8 # red +#bright2=a6e3a1 # green +#bright3=f9e2af # yellow +#bright4=89b4fa # blue +#bright5=f5c2e7 # pink +#bright6=94e2d5 # teal +#bright7=a6adc8 # Subtext 0 + +foreground=ffffff # Text +background=000000 # Base +regular0=666666 # Surface 1 +regular1=cc6666 # red +regular2=66cc99 # green +regular3=cc9966 # yellow +regular4=6699cc # blue +regular5=cc6699 # pink +regular6=66cccc # teal +regular7=cccccc # Subtext 1 +bright0=999999 # Surface 2 +bright1=ff9999 # red +bright2=99ffcc # green +bright3=ffcc99 # yellow +bright4=99ccff # blue +bright5=ff99cc # pink +bright6=99ffff # teal +bright7=ffffff # Subtext 0 + ''; +} diff --git a/pkgs/hyprland/default.nix b/pkgs/hyprland/default.nix index 87a7486..e5f4638 100644 --- a/pkgs/hyprland/default.nix +++ b/pkgs/hyprland/default.nix @@ -2,5 +2,6 @@ imports = [ ./hypr ./anyrun + ../scripts ]; } diff --git a/pkgs/hyprland/hypr/default.nix b/pkgs/hyprland/hypr/default.nix index b1e5b06..719a7af 100644 --- a/pkgs/hyprland/hypr/default.nix +++ b/pkgs/hyprland/hypr/default.nix @@ -25,6 +25,9 @@ python3 grimblast networkmanagerapplet + hyprshade # hyprshade toggle blue-light-filter + gammastep # gammastep -O 4500K + hyprlock ]; # environment.systemPackages = [ # inputs.hyprland-contrib.packages.${pkgs.system}.grimblast.override { license = licenses.gpl3; } @@ -64,5 +67,6 @@ # "https://github.com/zakk4223/hyprland-easymotion" # ]; }; + home.file.".config/hypr/env_var.conf".text = builtins.readFile ./env_var.conf; }; } diff --git a/pkgs/hyprland/hypr/env_var.conf b/pkgs/hyprland/hypr/env_var.conf new file mode 100644 index 0000000..f27e78c --- /dev/null +++ b/pkgs/hyprland/hypr/env_var.conf @@ -0,0 +1,58 @@ +# Environment Variables +# see https://wiki.hyprland.org/Configuring/Environment-variables/ + +#env = BROWSER,chromium +env = TERMINAL,footclient +#env = LC_TIME,ru_RU.UTF-8 + +# Theming Related Variables +# Set cursor size. See FAQ below for why you might want this variable set. +# https://wiki.hyprland.org/FAQ/ +#env = XCURSOR_SIZE,24 + +# Set a GTK theme manually, for those who want to avoid appearance tools such as lxappearance or nwg-look +#env = GTK_THEME, + +# Set your cursor theme. The theme needs to be installed and readable by your user. +#env = XCURSOR_THEME, + +# the line below may help with multiple monitors +#env = WLR_EGL_NO_MODIFIERS,1 + +#XDG Specifications +env = XDG_CURRENT_DESKTOP,Hyprland +env = XDG_SESSION_TYPE,wayland +env = XDG_SESSION_DESKTOP,Hyprland + +# Toolkit Backend Variables + +# GTK: Use wayland if available, fall back to x11 if not. +#env = GDK_BACKEND,wayland,x11 + +# QT: Use wayland if available, fall back to x11 if not. +#env = QT_QPA_PLATFORM,wayland,xcb + +# Run SDL2 applications on Wayland. Remove or set to x11 if games that +# provide older versions of SDL cause compatibility issues +env = SDL_VIDEODRIVER,wayland + +# Clutter package already has wayland enabled, this variable +#will force Clutter applications to try and use the Wayland backend +env = CLUTTER_BACKEND,wayland + +# QT Variables + +# (From the QT documentation) enables automatic scaling, based on the monitor’s pixel density +# https://doc.qt.io/qt-5/highdpi.html +#env = QT_AUTO_SCREEN_SCALE_FACTOR,1 + +# Tell QT applications to use the Wayland backend, and fall back to x11 if Wayland is unavailable +#env = QT_QPA_PLATFORM,wayland,xcb + +# Disables window decorations on QT applications +env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1 + +#Tells QT based applications to pick your theme from qt5ct, use with Kvantum. +# env = QT_QPA_PLATFORMTHEME,qt5ct +env = QT_SCALE_FACTOR,2 +env = GDK_SCALE,2 diff --git a/pkgs/hyprland/hypr/hypridle.conf b/pkgs/hyprland/hypr/hypridle.conf index dee67a2..8f2adfa 100644 --- a/pkgs/hyprland/hypr/hypridle.conf +++ b/pkgs/hyprland/hypr/hypridle.conf @@ -18,7 +18,7 @@ listener { listener { timeout = 260 # in seconds - on-timeout = ~/scripts/swaylock # command to run when timeout has passed + on-timeout = hyprlock # command to run when timeout has passed } listener { diff --git a/pkgs/hyprland/hypr/hyprland.conf b/pkgs/hyprland/hypr/hyprland.conf index 4121537..a96869f 100644 --- a/pkgs/hyprland/hypr/hyprland.conf +++ b/pkgs/hyprland/hypr/hyprland.conf @@ -53,6 +53,7 @@ exec-once = hyprctl setcursor Bibata-Modern-Classic 16 # exec-once = trayscale --hide-window # change tp ktailctl later # exec-once = hyprctl dispatch -- exec [workspace special:hdrop silent] "QT_QPA_PLATFORM=xcb telegram-desktop" exec-once = /home/delta/.config/hypr/hdrop -b -g '30' -h '60' -f 'keepassxc_lite' --class org.keepassxc.KeePassXC +exec-once = hyprdrop kitty -b -i kitty_hyprdrop exec-once = dropbox exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP @@ -380,7 +381,7 @@ bind = ALT, B, exec, swaync-client --close-latest # close lathest notify bind = $mainMod, F4, killactive, # close the active window bind = $mainMod, TAB, killactive, # close the active window bind = $mainMod SHIFT, TAB, killactive, # close the active window -bind = $mainMod, Escape, exec, /home/delta/scripts/swaylock # Lock the screen +bind = $mainMod, Escape, exec, hyprlock # Lock the screen bind = $mainMod, M, exec, wlogout --protocol layer-shell # show the logout window bind = $mainMod SHIFT, M, exit, # Exit Hyprland all together no (force quit Hyprland) bind = $mainMod, E, exec, thunar # Show the graphical file browser @@ -410,8 +411,8 @@ bind = ,Print , exec, wl-paste | swappy -f - # take a screenshot #bind = $mainMod, S, exec, hyprshot -m output -s -c --clipboard-only # take a screenshot #bind = ALT, V, exec, cliphist list | wofi -dmenu | cliphist decode | wl-copy # open clipboard manager #bind = ALT, V, exec, cliphist list | /home/delta/scripts/fzfmenu | cliphist decode | wl-copy # open clipboard manager -bind = ALT, V, exec, cliphist list | /home/delta/scripts/fzfmenuft | cliphist decode | wl-copy # && wtype -M ctrl v -m ctrl # open clipboard manager -bind = ALT SHIFT, V, exec, /home/delta/scripts/clipfzfkt # && wtype -M ctrl v -m ctrl # open clipboard manager +bind = ALT, V, exec, fzfclipboard # && wtype -M ctrl v -m ctrl # open clipboard manager +#bind = ALT SHIFT, V, exec, /home/delta/scripts/clipfzfkt # && wtype -M ctrl v -m ctrl # open clipboard manager bind = $mainMod, R, exec, footclient --title=emoji_manager sh -c "~/scripts/shmoji/shmoji fzf | wl-copy" & hyprctl switchxkblayout at-translated-set-2-keyboard 0 #bind = $mainMod, T, exec, ~/.config/HyprV/hyprv_util vswitch # switch HyprV version bind = $mainMod, X, togglesplit, # dwindle diff --git a/pkgs/hyprland/hypr/hyprland.png b/pkgs/hyprland/hypr/hyprland.png new file mode 100644 index 0000000..c066c7e Binary files /dev/null and b/pkgs/hyprland/hypr/hyprland.png differ diff --git a/pkgs/hyprland/hypr/media-binds.conf b/pkgs/hyprland/hypr/media-binds.conf new file mode 100644 index 0000000..03c0c24 --- /dev/null +++ b/pkgs/hyprland/hypr/media-binds.conf @@ -0,0 +1,18 @@ +$SCRIPT = ~/.config/HyprV/waybar/scripts + +bind = , xf86audioraisevolume, exec, $SCRIPT/volume --inc +bind = , xf86audiolowervolume, exec, $SCRIPT/volume --dec +bind = , xf86AudioMicMute, exec, $SCRIPT/volume --toggle-mic +bind = , xf86audioMute, exec, $SCRIPT/volume --toggle + +#bind = , XF86PowerOff, exec, swaynag -m 'Shutdown?' -Z 'No' '' -b 'Yes' 'systemctl poweroff' + +bind = , xf86KbdBrightnessDown, exec, $SCRIPT/kb-brightness --dec +bind = , xf86KbdBrightnessUp, exec, $SCRIPT/kb-brightness --inc + +bind = , xf86MonBrightnessDown, exec, $SCRIPT/brightness --dec +bind = , xf86MonBrightnessUp, exec, $SCRIPT/brightness --inc + +bind = , XF86AudioPlay, exec, playerctl play-pause +bind = , XF86AudioNext, exec, playerctl next +bind = , XF86AudioPrev, exec, playerctl previous diff --git a/pkgs/hyprland/hyprshade/default.nix b/pkgs/hyprland/hyprshade/default.nix new file mode 100644 index 0000000..8231ab0 --- /dev/null +++ b/pkgs/hyprland/hyprshade/default.nix @@ -0,0 +1,10 @@ +{ pkgs, lib, ... }: + +{ + + home.file.".config/hypr/shaders/extradark.glsl".text = builtins.readFile ./extradark.glsl; + home.file.".config/hypr/shaders/noblue-light.glsl".text = builtins.readFile ./noblue-light.glsl; + home.file.".config/hypr/shaders/noblue-smart.glsl".text = builtins.readFile ./noblue-smart.glsl; + home.file.".config/hypr/shaders/noblue.glsl".text = builtins.readFile ./noblue.glsl; + +} diff --git a/pkgs/hyprland/hyprshade/extradark.glsl b/pkgs/hyprland/hyprshade/extradark.glsl new file mode 100644 index 0000000..5e1cae4 --- /dev/null +++ b/pkgs/hyprland/hyprshade/extradark.glsl @@ -0,0 +1,17 @@ +precision mediump float; +varying vec2 v_texcoord; +uniform sampler2D tex; + +void main() { + + vec4 pixColor = texture2D(tex, v_texcoord); + + // red + pixColor[0] *= 0.7; + // green + pixColor[1] *= 0.6; + // blue + pixColor[2] *= 0.5; + + gl_FragColor = pixColor; +} diff --git a/pkgs/hyprland/hyprshade/grayscale.glsl.mustache b/pkgs/hyprland/hyprshade/grayscale.glsl.mustache new file mode 100644 index 0000000..60ab52d --- /dev/null +++ b/pkgs/hyprland/hyprshade/grayscale.glsl.mustache @@ -0,0 +1,55 @@ +/* + * Grayscale + */ + +precision highp float; +varying vec2 v_texcoord; +uniform sampler2D tex; + +// Enum for type of grayscale conversion +const int LUMINOSITY = 0; +const int LIGHTNESS = 1; +const int AVERAGE = 2; + +/** + * Type of grayscale conversion. + */ +const int Type = {{#nc}}{{type}} ? LUMINOSITY{{/nc}}; + +// Enum for selecting luma coefficients +const int PAL = 0; +const int HDTV = 1; +const int HDR = 2; + +/** + * Formula used to calculate relative luminance. + * (Only applies to type = "luminosity".) + */ +const int LuminosityType = {{#nc}}{{luminosity_type}} ? HDR{{/nc}}; + +void main() { + vec4 pixColor = texture2D(tex, v_texcoord); + + float gray; + if (Type == LUMINOSITY) { + // https://en.wikipedia.org/wiki/Grayscale#Luma_coding_in_video_systems + if (LuminosityType == PAL) { + gray = dot(pixColor.rgb, vec3(0.299, 0.587, 0.114)); + } else if (LuminosityType == HDTV) { + gray = dot(pixColor.rgb, vec3(0.2126, 0.7152, 0.0722)); + } else if (LuminosityType == HDR) { + gray = dot(pixColor.rgb, vec3(0.2627, 0.6780, 0.0593)); + } + } else if (Type == LIGHTNESS) { + float maxPixColor = max(pixColor.r, max(pixColor.g, pixColor.b)); + float minPixColor = min(pixColor.r, min(pixColor.g, pixColor.b)); + gray = (maxPixColor + minPixColor) / 2.0; + } else if (Type == AVERAGE) { + gray = (pixColor.r + pixColor.g + pixColor.b) / 3.0; + } + vec3 grayscale = vec3(gray); + + gl_FragColor = vec4(grayscale, pixColor.a); +} + +// vim: ft=glsl diff --git a/pkgs/hyprland/hyprshade/noblue-light.glsl b/pkgs/hyprland/hyprshade/noblue-light.glsl new file mode 100644 index 0000000..74b37f7 --- /dev/null +++ b/pkgs/hyprland/hyprshade/noblue-light.glsl @@ -0,0 +1,18 @@ +precision mediump float; +varying vec2 v_texcoord; +uniform sampler2D tex; + +void main() { + vec4 pixColor = texture2D(tex, v_texcoord); + + // Apply night-shift effect by reducing blue and enhancing red/orange + // red + pixColor[0] *= 1.1; + // green + pixColor[1] *= 0.9; + // blue + pixColor[2] *= 0.7; + + gl_FragColor = pixColor; +} + diff --git a/pkgs/hyprland/hyprshade/noblue-smart.glsl b/pkgs/hyprland/hyprshade/noblue-smart.glsl new file mode 100644 index 0000000..b20885e --- /dev/null +++ b/pkgs/hyprland/hyprshade/noblue-smart.glsl @@ -0,0 +1,29 @@ +precision mediump float; +varying vec2 v_texcoord; +uniform sampler2D tex; +uniform bool makeWarmer; // Uniform to control whether to apply warm effect + +void main() { + vec4 pixColor = texture2D(tex, v_texcoord); + + // Check if the pixel is blue-ish but not white + if (pixColor.b > 0.1 && pixColor.r < 0.7 && pixColor.g < 0.7) { + // Remove more blue from blue-ish colors + pixColor.b *= 0.1; + } else { + // Apply your original transformations to non-blue colors + pixColor.r *= 1.2; + pixColor.g *= 0.9; + // Note: We don't multiply pixColor.b here since we only want to affect blue + // components in blue-ish colors, not overall. + } + + // Apply the warm effect if makeWarmer is true + if (false) { + pixColor.r *= 1.2; + pixColor.g *= 0.8; + // You can adjust these factors to control the warmth effect + } + + gl_FragColor = pixColor; +} diff --git a/pkgs/hyprland/hyprshade/noblue.glsl b/pkgs/hyprland/hyprshade/noblue.glsl new file mode 100644 index 0000000..f16af85 --- /dev/null +++ b/pkgs/hyprland/hyprshade/noblue.glsl @@ -0,0 +1,17 @@ +precision mediump float; +varying vec2 v_texcoord; +uniform sampler2D tex; + +void main() { + vec4 pixColor = texture2D(tex, v_texcoord); + + // Apply night-shift effect by reducing blue and enhancing red/orange + // red + pixColor[0] *= 1.2; + // green + pixColor[1] *= 0.9; + // blue + pixColor[2] *= 0.35; + + gl_FragColor = pixColor; +} diff --git a/pkgs/scripts/default.nix b/pkgs/scripts/default.nix new file mode 100644 index 0000000..a876af5 --- /dev/null +++ b/pkgs/scripts/default.nix @@ -0,0 +1,18 @@ +{ config, pkgs, ... }: +let + # Helper function to create script binaries + mkScriptBin = name: pkgs.writeScriptBin name (builtins.readFile ./${name}.sh); + + # List of script names + scriptNames = [ + "fzfclipboard" + "fzfmenuft" + "swaylock" + ]; + + # Generate the script binaries + scriptBins = map mkScriptBin scriptNames; + +in { + users.users.delta.packages = scriptBins; +} diff --git a/pkgs/scripts/fzfclipboard.sh b/pkgs/scripts/fzfclipboard.sh new file mode 100755 index 0000000..3791b18 --- /dev/null +++ b/pkgs/scripts/fzfclipboard.sh @@ -0,0 +1 @@ +cliphist list | fzfmenuft | cliphist decode | wl-copy diff --git a/pkgs/scripts/fzfmenuft.sh b/pkgs/scripts/fzfmenuft.sh new file mode 100755 index 0000000..08f668e --- /dev/null +++ b/pkgs/scripts/fzfmenuft.sh @@ -0,0 +1,76 @@ +#!/usr/bin/env bash + +#coomented !/usr/bin/env bash +# fzfmenu - fzf as dmenu replacement + +CONFIG="${XDG_CONFIG_HOME:-~/.config}/fzfmenu/fzfrc" +if [ -f "$CONFIG" ]; then + # load config + . "$CONFIG" +fi + +awkVal() { + awk -v Val="$1" 'BEGIN{FS=OFS=" "} {for(i=1;i<=NF;i++){if($i==Val){print $(i+1);next}}}' +} + +input=$(mktemp -u --suffix .fzfmenu.input) +output=$(mktemp -u --suffix .fzfmenu.output) +mkfifo "$input" +mkfifo "$output" +chmod 600 $input $output + +while getopts "fbip:l:w:" opt; do case "${opt}" in + i) FZF_OPTS="$FZF_OPTS -$opt" ;; + l) FZF_OPTS="$FZF_OPTS --height $OPTARG" ;; + p) FZF_OPTS="$FZF_OPTS --header $OPTARG" ;; + w) TERM_OPTS="-into $OPTARG" ;; + f|b) printf '%s\n' "${0##*/}: option $opt ignored" ;; + *) printf '%s\n' "${0##*/}: invalid option $opt" >&2 ; exit 1 ;; +esac done +shift $(( OPTIND -1 )) + +# add options from config and replace others if necesary +runHeight=$(printf '%s\n' $FZF_OPTS | awkVal "height") +if [ -z "$runHeight" ] || [ "${runHeight%\%}" -le 50 ]; then + FZF_OPTS="$FZF_OPTS $FZF_HEIGHT" +fi + +runPrompt=$(printf '%s\n' $FZF_OPTS | awkVal "heder") +if [ -z "$runPrompt" ]; then + FZF_OPTS="$FZF_OPTS $FZF_HEADER" +fi + +FZF_OPTS="$FZF_OPTS $FZF_MENU_OPTS" +FZF_OPTS="$FZF_OPTS $FZF_COLORS" + +export FZF_OPTS + +if [ -z "$FLOATING_TERMINAL" ]; then + FLOATING_TERMINAL='footclient --title=clipboard_manager' +fi +if [ -z "$EXEC_FLAG" ]; then + EXEC_FLAG=' ' +fi + +$FLOATING_TERMINAL $TERM_OPTS $EXEC_FLAG sh -c "cat $input | fzf $FZF_OPTS | tee $output" & disown + +termPID=$! + +# consume stdin into named pipe +cat > "$input" + +for arg in "$@"; do + # if it's a pipe then drain it to input + [ -p "$arg" ] && { cat "$arg" > "$input"; }; +done + +# handle ctrl+c outside child terminal window +cleanup() { + if kill -0 "$termPID" 2>/dev/null; then + kill $termPID 2>/dev/null + fi + rm -f "$input $output" +} +trap cleanup EXIT + +cat "$output" diff --git a/pkgs/scripts/swaylock-config b/pkgs/scripts/swaylock-config new file mode 100644 index 0000000..a0affd2 --- /dev/null +++ b/pkgs/scripts/swaylock-config @@ -0,0 +1,36 @@ +color=000000 +ignore-empty-password +show-failed-attempts +daemonize +show-keyboard-layout +font=Iosevka +font-size=30 +indicator-radius=100 +bs-hl-color=f4dbd6 +caps-lock-bs-hl-color=f4dbd6 +caps-lock-key-hl-color=a6da95 +inside-color=00000000 +inside-clear-color=00000000 +inside-caps-lock-color=00000000 +inside-ver-color=00000000 +inside-wrong-color=00000000 +key-hl-color=a6da95 +layout-bg-color=00000000 +layout-border-color=00000000 +layout-text-color=cad3f5 +line-color=00000000 +line-clear-color=00000000 +line-caps-lock-color=00000000 +line-ver-color=00000000 +line-wrong-color=00000000 +ring-color=b7bdf80F +ring-clear-color=f4dbd6 +ring-caps-lock-color=f5a97f +ring-ver-color=8aadf4 +ring-wrong-color=ee99a0 +separator-color=00000000 +text-color=cad3f5 +text-clear-color=f4dbd6 +text-caps-lock-color=f5a97f +text-ver-color=8aadf4 +text-wrong-color=ee99a0 diff --git a/pkgs/scripts/swaylock.sh b/pkgs/scripts/swaylock.sh new file mode 100755 index 0000000..f4a0ac5 --- /dev/null +++ b/pkgs/scripts/swaylock.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +sh -c "swaylock -C /home/delta/.config/swaylock/config --indicator-x-position $(shuf -i 100-1750 -n 1) --indicator-y-position $(shuf -i 50-1000 -n 1)" & hyprctl switchxkblayout at-translated-set-2-keyboard 0 + +#X_POS=$(shuf -i 100-1750 -n 1) +#Y_POS=$(shuf -i 50-1000 -n 1) + +#swaylock -C .config/swaylock/config2 --indicator-x-position $X_POS --indicator-y-position $Y_POS diff --git a/pkgs/waybar/config-offline.jsonc b/pkgs/waybar/config-offline.jsonc index 38308f4..b9bb5a2 100644 --- a/pkgs/waybar/config-offline.jsonc +++ b/pkgs/waybar/config-offline.jsonc @@ -96,7 +96,7 @@ "low": 15 }, "interval": 10, - "format": " {usage}%", + "format": " {usage}%", "max-length": 10, "format-alt-click": "click-right", "format-alt": " ", diff --git a/pkgs/waybar/style.css b/pkgs/waybar/style.css index baa671c..97d5d67 100644 --- a/pkgs/waybar/style.css +++ b/pkgs/waybar/style.css @@ -2,7 +2,7 @@ border: none; border-radius: 0; font-family: "Iosevka Comfy Wide Duo"; - font-weight: bold; + font-weight: normal; font-size: 16px; min-height: 0; }