diff options
Diffstat (limited to 'meta/desktop')
32 files changed, 0 insertions, 1787 deletions
diff --git a/meta/desktop/default.nix b/meta/desktop/default.nix deleted file mode 100644 index 36de93a..0000000 --- a/meta/desktop/default.nix +++ /dev/null @@ -1 +0,0 @@ -_: { imports = [ ./wayland ]; } diff --git a/meta/desktop/wayland/default.nix b/meta/desktop/wayland/default.nix deleted file mode 100644 index 89f1bf0..0000000 --- a/meta/desktop/wayland/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -_: { - imports = [ - ./hyprland - ./meta - ./waybar - ]; -} diff --git a/meta/desktop/wayland/hyprland/default.nix b/meta/desktop/wayland/hyprland/default.nix deleted file mode 100644 index d371cb0..0000000 --- a/meta/desktop/wayland/hyprland/default.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ pkgs, ... }: { - imports = [ - ./hypridle - ./hyprland - ]; - - wayland.windowManager.hyprland = { - enable = true; - package = pkgs.hyprland; - - xwayland = { - enable = true; - }; - - systemd = { - enable = true; - - variables = [ "--all" ]; - }; - }; -} diff --git a/meta/desktop/wayland/hyprland/hypridle/default.nix b/meta/desktop/wayland/hyprland/hypridle/default.nix deleted file mode 100644 index 03d670c..0000000 --- a/meta/desktop/wayland/hyprland/hypridle/default.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ pkgs, ... }: { - services.hypridle = { - enable = true; - - settings = { - "$lock_command" = "pidof hyprlock || hyprlock"; - # $suspend_command = pidof steam || systemctl suspend || loginctl suspend - - general = { - lock_cmd = "$lock_command"; - # before_sleep_cmd = $suspend_command - before_sleep_cmd = "playerctl pause"; - ignore_dbus_inhibit = false; - ignore_systemd_inhibit = false; - }; - - listener = [ - { - timeout = 180; # 3 minutes - on-timeout = "$lock_command"; - } - { - timeout = 240; # 4 minutes - on-timeout = "hyprctl dispatch dpms off"; - on-resume = "hyprctl dispatch dpms on"; - } - # { - # timeout = 540; # 9 minutes - # on-timeout = "$suspend_cmd"; - # } - ]; - }; - }; -} diff --git a/meta/desktop/wayland/hyprland/hyprland/animations.nix b/meta/desktop/wayland/hyprland/hyprland/animations.nix deleted file mode 100644 index c47c164..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/animations.nix +++ /dev/null @@ -1,86 +0,0 @@ -_: { - wayland.windowManager.hyprland = { - extraConfig = '' - # animations { - # enabled = yes - - # # bezier = myBezier, 0.05, 0.9, 0.1, 1.05 - - # # animation = windows, 1, 5, myBezier - # # animation = windowsOut, 1, 7, default, popin - # # animation = border, 1, 10, default - # # animation = fade, 1, 7, default - # # animation = workspaces, 1, 6, default, slidevert - - # # bezier = overshot,0.5,0.1,0.4,1.2 - - # # animation = global, 1, 3, default - # # animation = workspaces, 1, 4, default - # # animation = windowsMove, 1, 2, default - # # animation = fade, 1, 2, default - - # bezier = overshot, 0.05, 0.5, 0.1, 1.05 - # bezier = smoothOut, 0.36, 0, 0.66, -0.56 - # bezier = smoothIn, 0.25, 0.8, 0.5, 1 - - # animation = windows, 1, 5, overshot, slide - # animation = windowsOut, 1, 4, smoothOut, slide - # animation = windowsMove, 1, 4, default - # animation = border, 1, 10, default - # animation = fade, 1, 10, smoothIn - # animation = fadeDim, 1, 10, smoothIn - # animation = workspaces, 1, 6, default - # } - - bezier = smoothIn, 0.25, 1, 0.5, 1 - bezier = wind, 0.05, 0.9, 0.1, 1.06 - bezier = winIn, 0.1, 1.1, 0.1, 1.05 - bezier = linear, 1, 1, 1, 1 - - animations { - enabled = yes - - # buttery_smoooooooth... (slide) - # animation = windows, 1, 5, default, slide - # animation = windowsOut, 1, 8, smoothIn, slide - # animation = windowsMove, 1, 7, default - # animation = fade, 1, 5, smoothIn - # animation = fadeOut, 1, 4, smoothIn - # animation = fadeDim, 1, 3, smoothIn - # animation = workspaces, 1, 5, default, slidefadevert - # animation = specialWorkspace, 1, 5, default, fade - - # buttery_smoooooooth... (Popin...) - # animation = windows, 1, 3, default, popin 70% - # animation = windowsOut, 1, 20, default, popin 85% - # animation = windowsMove, 1, 7, default - # animation = fade, 1, 6, smoothIn - # animation = fadeOut, 1, 3, smoothIn - # animation = fadeDim, 1, 3, smoothIn - # animation = workspaces, 1, 5, wind, slidefadevert 40% - - # fasssstt popin - animation = windows, 1, 2, default, popin 80% - animation = windowsOut, 1, 5, default, popin 90% - animation = windowsMove, 1, 5, default - animation = layers, 1, 3, default, popin 90% - animation = fade, 1, 4, smoothIn - animation = fadeOut, 1, 2, smoothIn - animation = fadeDim, 1, 3, smoothIn - animation = workspaces, 1, 3, default, slidefadevert 15% - animation = specialWorkspace, 1, 3, default, slidefadevert 15% - - # Random... - # animation = windows, 1, 5, wind, slide - # animation = windowsIn, 1, 4, winIn, slide - # animation = windowsOut, 1 , 7, smoothIn, slide - # animation = windowsMove, 1, 6, default - # animation = fade, 1, 5, smoothIn - # animation = fadeOut, 1, 3, smoothIn - # animation = fadeDim, 1, 3, smoothIn - # animation = workspaces, 1, 4, wind, slidefadevert 15% - # animation = specialWorkspace, 1, 3, default, slidefadevert 15% - } - ''; - }; -} diff --git a/meta/desktop/wayland/hyprland/hyprland/binds.nix b/meta/desktop/wayland/hyprland/hyprland/binds.nix deleted file mode 100644 index 5312b93..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/binds.nix +++ /dev/null @@ -1,209 +0,0 @@ -_: { - wayland.windowManager.hyprland = { - settings = { - "$mod" = "SUPER"; - "$mail" = "mailspring --password-store=\"gnome-libsecret\" --enable-features=UseOzonePlatform --ozone-platform=wayland"; - "$script_path" = "$HOME/.config/hypr/hyprland/scripts"; - "$term" = "kitty"; - - bind = ( - builtins.concatLists - (builtins.genList - ( - x: - let - ws = - let - c = (x + 1) / 10; - in - builtins.toString (x + 1 - (c * 10)); - in - [ - # Switch pseudo-tag (workspaces) - "$mod, ${ws}, exec, $script_path/switch_workspace ${toString (x + 1)}" - # "$mod, ${ws}, split-workspace, ${toString (x + 1)}" - - # Move window to pseudo-tag (workspace) - "$mod SHIFT, ${ws}, exec, $script_path/move_window_to_workspace ${toString (x + 1)}" - # "$mod SHIFT, ${ws}, split-movetoworkspacesilent, ${toString (x + 1)}" - ] - ) - 10) - ++ - [ - # Scratchpads - "$mod, apostrophe, exec, hyprctl dispatch togglespecialworkspace simple_calculator" - "$mod SHIFT, RETURN, exec, hyprctl dispatch togglespecialworkspace simple_terminal" - "$mod SHIFT, c, exec, hyprctl dispatch togglespecialworkspace chatgpt" - "$mod SHIFT, s, exec, hyprctl dispatch togglespecialworkspace spotify" - "$mod SHIFT, apostrophe, exec, hyprctl dispatch togglespecialworkspace calculator" - - # Focus - "$mod, k, movefocus, u" - "$mod, j, movefocus, d" - "$mod, l, movefocus, r" - "$mod, h, movefocus, l" - - # "$mod, j, layoutmsg, cyclenext" - # "$mod, j, layoutmsg, cycleprev" - - "$mod, tab, hycov:toggleoverview" - "$mod SHIFT, tab, overview:toggle" - - # Emoji picker - "$mod, GRAVE, exec, rofi -modi emoji -show emoji" - - # Volume control - "$mod, MINUS, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-" - "$mod SHIFT, MINUS, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 15%-" - "$mod, EQUAL, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+" - "$mod SHIFT, EQUAL, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 15%+" - - # Session control - "$mod SHIFT, Q, exec, wlogout" - "$mod SHIFT, R, exec, hyprctl reload" - - # Window control - "$mod, F, fullscreen" - # "$mod SHIFT, F, fullscreen, 2" - "$mod SHIFT, F, exec, hyprctl dispatch fakefullscreen && $script_path/fake_fullscreen_status" - "$mod, G, togglefloating" - "$mod, P, pseudo" - "$mod SHIFT, P, pin" - "$mod, T, togglesplit" - "$mod, U, focusurgentorlast" - "$mod, Q, killactive" - "$mod, S, exec, hyprctl keyword window:sticky 1" - "$mod, b, exec, pkill -SIGUSR1 waybar" - "$mod, SPACE, layoutmsg, swapwithmaster" - "$mod, V, exec, $script_path/toggle_layout" - - # Application binds - "$mod, W, exec, $BROWSER" - "$mod SHIFT, W, exec, $term -e sudo nmtui" - "$mod, E, exec, $mail" - "$mod SHIFT, R, exec, $term -e htop" - "$mod, R, exec, rofi -show run" - "$mod SHIFT, D, exec, bitwarden-desktop" - "$mod, RETURN, exec, $term" - "$mod SHIFT, N, exec, $BROWSER https://sumi.news" - "$mod, M, exec, spotify" - "$mod SHIFT, M, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" - "$mod ALT, A, exec, hyprpicker -a" - - # Launchers - "$mod, D, exec, rofi -show combi" - "$mod, C, exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy" - - # Spotify control - "$mod, P, exec, spt pb --toggle" - "$mod SHIFT, P, exec, mpc pause; pauseallmpv" - "$mod, BRACKETLEFT, exec, spt pb --seek -10" - "$mod SHIFT, BRACKETLEFT, exec, spt pb --seek -60" - "$mod, BRACKETRIGHT, exec, spt pb --seek +10" - "$mod SHIFT, BRACKETRIGHT, exec, spt pb --seek +60" - "$mod, COMMA, exec, spt pb --pp" - "$mod, PERIOD, exec, spt pb --next" - "$mod SHIFT, PERIOD, exec, spt pb --previous" - - # Gaps control - "$mod, a, exec, $script_path/toggle_gaps" - "$mod SHIFT, a, exec, bash -c 'hyprctl keyword general:gaps_in 5; hyprctl keyword general:gaps_out 10'" - - # Increment gaps - "$mod, mouse_up, exec, hyprctl keyword general:gaps_out `expr $(hyprctl getoption general:gaps_out | awk '{ print $3 }') + 3`" - "$mod, mouse_up, exec, hyprctl keyword general:gaps_in `expr $(hyprctl getoption general:gaps_in | awk '{ print $3 }') + 2`" - - # Decrement gaps - "$mod, mouse_down, exec, hyprctl keyword general:gaps_out `expr $(hyprctl getoption general:gaps_out | awk '{ print $3 }') - 3`" - "$mod, mouse_down, exec, hyprctl keyword general:gaps_in `expr $(hyprctl getoption general:gaps_in | awk '{ print $3 }') - 2`" - - # Move focus to monitor - "$mod, LEFT, exec, $script_path/move_focus_to_monitor left" - "$mod, RIGHT, exec, $script_path/move_focus_to_monitor right" - - # Move window to monitor - "$mod SHIFT, h, exec, $script_path/move_window_to_monitor left" - "$mod SHIFT, l, exec, $script_path/move_window_to_monitor right" - - # Screenshot - ", Print, exec, screenshot --area" - "$mod SHIFT, Print, exec, screenshot --window" - "$mod CTRL, Print, exec, screenshot --monitor" - "$mod, Print, exec, screenshot --now" - "$mod SHIFT, v, exec, screenshot --now --clipboard && pypr toggle spgpt && ydotool key 42:1 1:1 1:0 42:0 29:1 47:1 29:0 47:0" - - # Media keys - # ... - ] - ); - - binde = ( - [ - # Increment gaps - "$mod, Z, exec, hyprctl --batch \"keyword general:gaps_out `expr $(hyprctl getoption general:gaps_out | awk '{ print $3 }') + 3`; keyword general:gaps_in `expr $(hyprctl getoption general:gaps_in | awk '{ print $3 }') + 2`\"" - - # Decrement gaps - "$mod, X, exec, hyprctl --batch \"keyword general:gaps_out `expr $(hyprctl getoption general:gaps_out | awk '{ print $3 }') - 3`; keyword general:gaps_in `expr $(hyprctl getoption general:gaps_in | awk '{ print $3 }') - 2`\"" - - # Resize active window - "$mod SHIFT, UP, resizeactive, 0 -50" - "$mod SHIFT, DOWN, resizeactive, 0 50" - "$mod SHIFT, RIGHT, resizeactive, 50 0" - "$mod SHIFT, LEFT, resizeactive, -50 0" - - # Move active window - "$mod ALT, k, moveactive, 0 -100" - "$mod ALT, j, moveactive, 0 100" - "$mod ALT, l, moveactive, 100 0" - "$mod ALT, h, moveactive, -100 0" - ] - ); - - bindm = ( - [ - # Move window with mouse - "$mod, mouse:272, movewindow" - "$mod, mouse:273, resizewindow" - "$mod SHIFT, mouse:273, resizewindow 1" - ] - ); - }; - - extraConfig = '' - # Media keys - bind = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle - bind = , XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0%- && wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+ - bind = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0%+ && wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- - bind = , XF86AudioPrev, exec, playerctl previous - bind = , XF86AudioNext, exec, playerctl next - bind = , XF86AudioPause, exec, playerctl play-pause - bind = , XF86AudioPlay, exec, playerctl play-pause - bind = , XF86AudioStop, exec, playerctl stop - bind = , XF86AudioRewind, exec, playerctl position -10 - bind = , XF86AudioForward, exec, playerctl position +10 - bind = , XF86AudioMedia, exec, spotify - bind = , XF86AudioMicMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle - - # Other media keys - bind = , XF86Calculator, exec, $term -e bc -l - bind = , XF86Sleep, exec, sudo -A zzz - bind = , XF86WWW, exec, $BROWSER - bind = , XF86DOS, exec, $term - bind = , XF86ScreenSaver, exec, pidof hyprlock || hyprlock && hyprctl dispatch dpms off - bind = , XF86TaskPane, exec, $term -e htop - bind = , XF86Mail, exec, $mail - bind = , XF86MyComputer, exec, $term -e ranger - bind = , XF86Launch1, exec, hyprctl dispatch dpms off - - # Touchpad control - bind = , XF86TouchpadToggle, exec, (synclient | grep 'TouchpadOff.*1' && synclient TouchpadOff=0) || synclient TouchpadOff=1 - bind = , XF86TouchpadOff, exec, synclient TouchpadOff=1 - bind = , XF86TouchpadOn, exec, synclient TouchpadOff=0 - - # Brightness control - bind = , XF86MonBrightnessUp, exec, xbacklight -inc 15 - bind = , XF86MonBrightnessDown, exec, xbacklight -dec 15 - ''; - }; -} diff --git a/meta/desktop/wayland/hyprland/hyprland/decoration.nix b/meta/desktop/wayland/hyprland/hyprland/decoration.nix deleted file mode 100644 index feb9145..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/decoration.nix +++ /dev/null @@ -1,43 +0,0 @@ -_: { - wayland.windowManager.hyprland.settings.decoration = { - rounding = 10; - drop_shadow = true; - shadow_ignore_window = true; - shadow_range = 8; - shadow_render_power = 10; - shadow_offset = "2 2"; - "col.shadow" = "rgba(00000055)"; # 2A - - blurls = [ - "gtk-layer-shell" - "lockscreen" - ]; - - # active_opacity = 0.9 - # inactive_opacity = 0.7 - # fullscreen_opacity = 1.0 - active_opacity = 1.0; - inactive_opacity = 0.95; - - blur = { - enabled = true; - xray = true; - special = false; - # size = 1; - passes = 2; - ignore_opacity = true; - new_optimizations = true; - # vibrancy = 0.1696; - # noise = 0.01; - brightness = 1; - contrast = 1; - - popups = true; - popups_ignorealpha = 0.6; - }; - - dim_special = 0.35; - dim_inactive = false; - dim_strength = 0.1; - }; -} diff --git a/meta/desktop/wayland/hyprland/hyprland/default.nix b/meta/desktop/wayland/hyprland/hyprland/default.nix deleted file mode 100644 index e2538fd..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/default.nix +++ /dev/null @@ -1,43 +0,0 @@ -_: { - imports = [ - ./animations.nix - ./binds.nix - ./decoration.nix - ./environment.nix - ./executions.nix - ./general.nix - ./plugins.nix - ./rules.nix - ./workspaces.nix - ]; - - xdg.configFile = ( - let - scripts = [ - "common.sh" - "fake_fullscreen_status" - "hycov_easymotion" - "initialise_gtk" - "initialise_waybar" - "initialise_xdg_portal" - "move_focus_to_monitor" - "move_window_to_monitor" - "move_window_to_workspace" - "switch_workspace" - "toggle_gaps" - "toggle_layout" - ]; - in - ( - builtins.listToAttrs (map - (script: { - name = "hypr/hyprland/scripts/${script}"; - - value = { - source = ./scripts/${script}; - }; - }) - scripts) - ) - ); -} diff --git a/meta/desktop/wayland/hyprland/hyprland/environment.nix b/meta/desktop/wayland/hyprland/hyprland/environment.nix deleted file mode 100644 index 81046ff..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/environment.nix +++ /dev/null @@ -1,80 +0,0 @@ -_: -let cursorSize = "18"; in -{ - wayland.windowManager.hyprland.settings.env = [ - # Proton - "PROTON_ENABLE_NGX_UPDATER, 1" - - # Cursor - "XCURSOR_SIZE, ${cursorSize}" - "HYPRCURSOR_SIZE, ${cursorSize}" - "HYPERCURSOR_THEME, Bibata-Modern-Ice" # WhiteSur-cursors - "XCURSOR_THEME, Bibata-Modern-Ice" - - # Wayland & Xwayland - "GDK_BACKEND, wayland,x11,*" - "SDL_VIDEODRIVER, wayland" - "CLUTTER_BACKEND, wayland" - "XWAYLAND_NO_GLAMOR, 1" # Gamescope - - # Nvidia - "LIBVA_DRIVER_NAME, nvidia" - "GBM_BACKEND, nvidia-drm" - "__GLX_VENDOR_LIBRARY_NAME, nvidia" - "__VK_LAYER_NV_optimus, NVIDIA_only" - "__NV_PRIME_RENDER_OFFLOAD, 1" - "NVD_BACKEND, direct" - - # OpenGL - "__GL_GSYNC_ALLOWED, 1" - "__GL_VRR_ALLOWED, 1" - "__GL_MaxFramesAllowed, 1" - - # Electron - # "ELECTRON_OZONE_PLATFORM_HINT, auto" - "OZONE_PLATFORM, wayland" - - # Qt - "QT_AUTO_SCREEN_SCALE_FACTOR, 1" - "QT_QPA_PLATFORM, wayland;xcb" - "QT_WAYLAND_DISABLE_WINDOWDECORATION, 1" - "QT_QPA_PLATFORMTHEME, qt5ct" - # "QT_STYLE_OVERRIDE, kvantum" - - # wlroots - "WLR_NO_HARDWARE_CURSORS, 1" - "WLR_DRM_NO_ATOMIC, 1" - "WLR_USE_LIBINPUT, 1" - "WLR_RENDERER_ALLOW_SOFTWARE, 1" - "WLR_DRM_DEVICES, /dev/dri/card0" - # "WLR_EGL_NO_MODIFIERS, 1" - - # XDG - "XDG_SESSION_TYPE, wayland" - "XDG_CURRENT_DESKTOP, Hyprland" - "XDG_SESSION_DESKTOP, Hyprland" - - # Mozilla - "MOZ_ENABLE_WAYLAND, 1" - "MOZ_DISABLE_RDD_SANDBOX, 1" - - # Fcitx - # https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland - "QT_IM_MODULE, fcitx" - "XMODIFIERS, @im=fcitx" - # "GTK_IM_MODULE, wayland" - # "GTK_IM_MODULE, fcitx" - "SDL_IM_MODULE, fcitx" - "GLFW_IM_MODULE, ibus" - "INPUT_METHOD, fcitx" - - # GTK - "GTK_USE_PORTAL, 1" - - # Java - "_JAVA_AWT_WM_NONREPARENTING, 1" - - # SSH - # "SSH_AUTH_SOCK, $XDG_RUNTIME_DIR/ssh-agent.socket" - ]; -} diff --git a/meta/desktop/wayland/hyprland/hyprland/executions.nix b/meta/desktop/wayland/hyprland/hyprland/executions.nix deleted file mode 100644 index 2ff364f..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/executions.nix +++ /dev/null @@ -1,55 +0,0 @@ -{ pkgs, ... }: { - wayland.windowManager.hyprland.settings = { - exec-once = ([ - # One-shots - "hyprctl dispatch workspace 1" - "swww-daemon" - "gammastep -l 45.540750:-122.385330 >/dev/null" - "${pkgs.pyprland}/bin/pypr" - "hyprpm reload" - "swaddle" - # "${pkgs.waybar}/bin/waybar" - "waybar" - "hyprctl setcursor Bibata-Modern-Ice 18" - - # Fcitx5 - "fcitx5-remote -r" - "fcitx5 -d --replace" - "fcitx5-remote -r" - - # GTK - "$script_path/initialise_gtk" - - # KWallet - # "pam_kwallet_init" - # "kwalletd6" - - # GNOME/Keyring - "gnome-keyring-daemon --replace --components=pkcs11,secrets,ssh,gpg" - "/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 || /usr/libexec/polkit-gnome-authentication-agent-1" - - # XDG, XDPH, & Qt - "dbus-update-activation-environment --systemd --all" - "dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP" - "systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP" - "systemctl --user import-environment QT_QPA_PLATFORMTHEME" - "$script_path/initialise_xdg_portal" - - # Clipboard - "wl-paste --type text --watch cliphist store" - "wl-paste --type image --watch cliphist store" - - # JamesDSP & Solaar - "jamesdsp -t" - # "solaar -w hide" - - # SSH - # "killall -q ssh-agent" - # "eval $(ssh-agent -c)" - # "set -Ux SSH_AUTH_SOCK $SSH_AUTH_SOCK" - # "set -Ux SSH_AGENT_PID $SSH_AGENT_PID" - # "set -Ux SSH_AUTH_SOCK $SSH_AUTH_SOCK" - # "export SSH_AUTH_SOCK=\"$XDG_RUNTIME_DIR/ssh-agent.socket\"" - ]); - }; -} diff --git a/meta/desktop/wayland/hyprland/hyprland/general.nix b/meta/desktop/wayland/hyprland/hyprland/general.nix deleted file mode 100644 index e0821d5..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/general.nix +++ /dev/null @@ -1,119 +0,0 @@ -_: { - wayland.windowManager.hyprland = { - settings = { - monitor = [ - "HDMI-A-2, [email protected], 0x0, 1" - "DP-2, [email protected], 1920x0, 1" - "DP-1, [email protected], 3840x0, 1" - ]; - - source = "/home/fuwn/.cache/wal/colors-hyprland"; - - general = { - gaps_in = 5; - gaps_out = 10; - border_size = 0; - layout = "master"; - allow_tearing = true; - resize_on_border = true; - no_focus_fallback = true; - }; - - input = { - kb_layout = "us"; - # kb_variant = - # kb_model = - # kb_options = - # kb_rules = - repeat_rate = 35; # 50 - repeat_delay = 250; # 200 - follow_mouse = 1; - special_fallthrough = true; - - touchpad = { - natural_scroll = true; - disable_while_typing = true; - clickfinger_behavior = true; - scroll_factor = 0.15; - tap-to-click = true; - middle_button_emulation = true; - }; - - sensitivity = -0.5; - accel_profile = "flat"; - scroll_factor = 1.0; - # natural_scroll = false; - }; - - binds = { - allow_workspace_cycles = true; - scroll_event_delay = 0; - workspace_back_and_forth = true; - }; - - dwindle = { - pseudotile = true; - preserve_split = true; - force_split = 2; - smart_split = false; - smart_resizing = false; - no_gaps_when_only = 0; - special_scale_factor = 0.98; - }; - - master = { - allow_small_split = true; - new_is_master = false; - mfact = 0.55; - # no_gaps_when_only = yes; - orientation = "left"; - inherit_fullscreen = false; - }; - - gestures = { - workspace_swipe = true; - workspace_swipe_distance = 700; - workspace_swipe_fingers = 4; - workspace_swipe_cancel_ratio = 0.2; - workspace_swipe_min_speed_to_force = 5; - workspace_swipe_direction_lock = true; - workspace_swipe_direction_lock_threshold = 10; - workspace_swipe_create_new = true; - }; - - misc = { - vrr = false; - vfr = false; - enable_swallow = true; - swallow_regex = "^(kitty|footclient|foot|Alacritty|wezterm)$"; - disable_hyprland_logo = true; - disable_splash_rendering = true; - force_default_wallpaper = 0; - mouse_move_enables_dpms = true; - # key_press_enables_dpms = true; - # focus_on_activate = true; - animate_manual_resizes = true; - # animate_mouse_windowdragging = false; - mouse_move_focuses_monitor = true; - # new_window_takes_over_fullscreen = 2; - allow_session_lock_restore = true; - initial_workspace_tracking = false; - }; - - cursor = { - hide_on_key_press = true; - enable_hyprcursor = true; - }; - - xwayland = { - force_zero_scaling = true; - }; - - debug = { - watchdog_timeout = 0; - disable_logs = false; - damage_blink = false; - }; - }; - }; -} diff --git a/meta/desktop/wayland/hyprland/hyprland/plugins.nix b/meta/desktop/wayland/hyprland/hyprland/plugins.nix deleted file mode 100644 index 61d73e3..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/plugins.nix +++ /dev/null @@ -1,69 +0,0 @@ -_: { - wayland.windowManager.hyprland.settings.plugin = { - # split-monitor-workspaces = { - # count = 10; - # keep_focused = 0; - # enable_notifications = 0; - # }; - - hyprtrails = { - color = "rgba(cfddf619)"; - }; - - hyprfocus = { - enabled = true; - animate_floating = true; - animate_workspacechange = true; - focus_animation = "flash"; - - bezier = [ - "bezIn, 0.5, 0.0, 1.0, 0.5" - "bezOut, 0.0, 0.5, 0.5, 1.0" - "overshot, 0.05, 0.9, 0.1, 1.05" - "smoothOut, 0.36, 0, 0.66, -0.56" - "smoothIn, 0.25, 1, 0.5, 1" - "realsmooth, 0.28, 0.29, .69, 1.08" - ]; - - flash = { - flash_opacity = 0.85; - in_bezier = "realsmooth"; - in_speed = 0.5; - out_bezier = "realsmooth"; - out_speed = 3; - }; - - shrink = { - shrink_percentage = 0.99; - in_bezier = "realsmooth"; - in_speed = 1; - out_bezier = "realsmooth"; - out_speed = 2; - }; - }; - - hycov = { - overview_gappo = 10; # gaps width from screen edge - overview_gappi = 10; # gaps width from clients - enable_hotarea = 0; # enable mouse cursor hotarea, when cursor enter hotarea, it will toggle overview - enable_click_action = 1; # enable mouse left button jump and right button kill in overview mode - hotarea_monitor = "all"; # monitor name which hotarea is in, default is all - hotarea_pos = 1; # position of hotarea (1: bottom left, 2: bottom right, 3: top left, 4: top right) - hotarea_size = 10; # hotarea size, 10x10 - swipe_fingers = 4; # finger number of gesture,move any directory - move_focus_distance = 100; # distance for movefocus,only can use 3 finger to move - enable_gesture = 0; # enable gesture - auto_exit = 1; # enable auto exit when no client in overview - auto_fullscreen = 0; # auto make active window maximize after exit overview - only_active_workspace = 0; # only overview the active workspace - only_active_monitor = 0; # only overview the active monitor - enable_alt_release_exit = 1; # alt swith mode arg,see readme for detail - alt_replace_key = "Super_L"; # alt swith mode arg,see readme for detail - alt_toggle_auto_next = 0; # auto focus next window when toggle overview in alt swith mode - click_in_cursor = 1; # when click to jump,the target windwo is find by cursor, not the current foucus window. - height_of_titlebar = 0; # height deviation of title bar height - show_special = 0; # show windwos in special workspace in overview. - raise_float_to_top = 1; # raise the window that is floating before to top after leave overview mode - }; - }; -} diff --git a/meta/desktop/wayland/hyprland/hyprland/rules.nix b/meta/desktop/wayland/hyprland/hyprland/rules.nix deleted file mode 100644 index 862d8f1..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/rules.nix +++ /dev/null @@ -1,78 +0,0 @@ -_: { - wayland.windowManager.hyprland = { - settings = { - # Layer Rules - layerrule = [ - "animation slide, notifications" - "noanim, selection" - "noanim, picker" - ]; - - windowrulev2 = [ - # Dialog Rules - "float, class:file_progress" - "float, class:confirm" - "float, class:dialog" - "float, class:download" - "float, class:notification" - "float, class:error" - "float, class:splash" - "float, class:confirmreset" - "float, title:Open File" - "float, title:branchdialog" - "float, title:^(Open File)(.*)$" - "float, title:^(Select a File)(.*)$" - "float, title:^(Choose wallpaper)(.*)$" - "float, title:^(Open Folder)(.*)$" - "float, title:^(Save As)(.*)$" - "float, title:^(Library)(.*)$" - "float, initialClass:^(xdg-desktop-portal-.*)$" - - # Control Application Rules - "float, class:^(Network)$" - "float, class:^(pavucontrol)$" - "float, class:^(Color Picker)$" - "float, class:^(File Picker)$" - "float, class:^(nm-connection-editor)$" - "float, class:pavucontrol-qt" - "float, class:pavucontrol" - "float, title:^(Media viewer)$" - "float, title:^(Volume Control)$" - "float, title:^(Picture-in-Picture)$" - "float, class:^(blueberry.py)$" - "float, class:Lxappearance" - "pseudo, class:fcitx" - "size 50% 50%, title:^(Volume Control)$" - - # Application Rules - "float, class:^(transmission-gtk)$" - "float, class:viewnior" - "float, class:feh" - "float, class:^(steam)$" - "float, class:file-roller" - "center, class:feh" - "workspace 9, initialTitle:^(Spotify Premium)$" - "tile, initialTitle:^(Photopea)$" - "tile, initialTitle:^(WorldsPlayer by Worlds Inc)$" - # "size 75% 75%, class:feh" - - # XWayland Video Bridge - "noblur, class:^(xwaylandvideobridge)$" - "noanim, class:^(xwaylandvideobridge)$" - "noinitialfocus, class:^(xwaylandvideobridge)$" - "opacity 0.0 override, class:^(xwaylandvideobridge)$" - "maxsize 1 1, class:^(xwaylandvideobridge)$" - - # Tearing - "immediate, class:.*\.exe" - "immediate, class:(steam_app)" - - # Idle Inhibit - # "idleinhibit fullscreen, class:^(*)$" - # "idleinhibit fullscreen, title:^(*)$" - "idleinhibit fullscreen, fullscreen:1" - "idleinhibit focus, class:mpv" - ]; - }; - }; -} diff --git a/meta/desktop/wayland/hyprland/hyprland/scripts/common.sh b/meta/desktop/wayland/hyprland/hyprland/scripts/common.sh deleted file mode 100644 index 25be5b6..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/scripts/common.sh +++ /dev/null @@ -1,146 +0,0 @@ -#!/usr/bin/env bash - -# . "$(dirname "$(readlink -f "${BASH_SOURCE[0]}" 2>/dev/null || echo "${0}")" || true)/common.sh" -# or -# . "${HOME}/.config/hypr/hyprland/scripts/common.sh" - -get_hyprctl_monitors() { - hyprctl monitors -j || true -} - -get_hyprctl_workspaces() { - hyprctl workspaces -j || true -} - -get_focused_monitor() { - (get_hyprctl_monitors || true) | - jq -r '.[] | select(.focused) | .name' -} - -get_active_monitor() { - get_focused_monitor -} - -get_active_workspaces() { - local monitor=$1 - - (get_hyprctl_workspaces || true) | - (jq -r ".[] | select(.monitor == \"${monitor}\") | .id" || true) | - grep -v '-' -} - -get_active_workspace() { - local monitor=$1 - - (get_hyprctl_monitors || true) | - jq -r ".[] | select(.name == \"${monitor}\") | .activeWorkspace.id" -} - -get_current_workspace() { - (hyprctl activeworkspace -j || true) | - jq -r ".id" -} - -get_empty_workspace() { - local monitor=$1 - - (hyprctl workspaces -j || true) | - (jq -r ".[] | select(.monitor == \"${monitor}\" and .windows == 0) | .id" || true) | - (grep -v '-' || true) | - head -n 1 -} - -get_workspace_client_count() { - local workspace=$1 - - (hyprctl workspaces -j || true) | jq -r ".[] | select(.id == ${workspace}) | .windows" -} - -get_relative_target_workspace() { - target_workspace=$1 - workspace=0 - - case "$(get_focused_monitor)" in - "HDMI-A-2") - workspace=$((target_workspace + 10)) - ;; - "DP-2") - workspace=${target_workspace} - ;; - "DP-1") - workspace=$((target_workspace + 20)) - ;; - *) - exit 1 - ;; - esac - - echo "${workspace}" -} - -is_monitor_fullscreen() { - monitor=$1 - - (hyprctl workspaces -j || true) | - jq -r ".[] | select(.monitor == \"${monitor}\") | select(.id == $(get_active_workspace "${monitor}" || true)) | .hasfullscreen" -} - -get_relative_target_monitor() { - direction=$1 - ignore_fullscreen=${2:-0} - - case $(get_focused_monitor) in - "HDMI-A-2") - if [[ "${direction}" == "right" ]]; then - target_monitor="DP-2" - else - target_monitor="DP-1" - fi - ;; - "DP-2") - if [[ "${direction}" == "right" ]]; then - target_monitor="DP-1" - else - target_monitor="HDMI-A-2" - fi - ;; - "DP-1") - if [[ "${direction}" == "left" ]]; then - target_monitor="DP-2" - else - target_monitor="HDMI-A-2" - fi - ;; - *) - exit 1 - ;; - esac - - if [[ "$(is_monitor_fullscreen "${target_monitor}")" == "true" && "${ignore_fullscreen}" = 0 ]]; then - case $target_monitor in - "HDMI-A-2") - if [[ "$direction" == "right" ]]; then - target_monitor="DP-2" - else - target_monitor="DP-1" - fi - ;; - "DP-2") - if [[ "$direction" == "right" ]]; then - target_monitor="DP-1" - else - target_monitor="HDMI-A-2" - fi - ;; - "DP-1") - if [[ "$direction" == "left" ]]; then - target_monitor="DP-2" - else - target_monitor="HDMI-A-2" - fi - ;; - esac - fi - - echo "${target_monitor}" -} diff --git a/meta/desktop/wayland/hyprland/hyprland/scripts/fake_fullscreen_status b/meta/desktop/wayland/hyprland/hyprland/scripts/fake_fullscreen_status deleted file mode 100755 index e198758..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/scripts/fake_fullscreen_status +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env bash - -. "${HOME}/.config/hypr/hyprland/scripts/common.sh" - -previous_id=$(cat /tmp/fake_fullscreen_notify_id 2>/dev/null) -previous_id_flag="" - -if [[ -n "${previous_id}" ]]; then - previous_id_flag="-r ${previous_id}" -fi - -id=$(notify-send -p ${previous_id_flag} "$(hyprctl activewindow -j | jq -r '.title') - -Fake fullscreen is $([[ "$(hyprctl activewindow -j | jq -r '.fakeFullscreen')" == "true" ]] && - echo "enabled" || - echo "disabled").") - -echo "${id}" >/tmp/fake_fullscreen_notify_id diff --git a/meta/desktop/wayland/hyprland/hyprland/scripts/hycov_easymotion b/meta/desktop/wayland/hyprland/hyprland/scripts/hycov_easymotion deleted file mode 100755 index ab7c3bb..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/scripts/hycov_easymotion +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env dash - -workspace_name=$(hyprctl -j activeworkspace | jq -r '.name') - -if [ "${workspace_name}" = "OVERVIEW" ]; then - hyprctl dispatch hycov:leaveoverview -else - hyprctl dispatch hycov:enteroverview - hyprctl dispatch 'easymotion action:hyprctl --batch "dispatch focuswindow address:{} ; dispatch hycov:leaveoverview"' -fi diff --git a/meta/desktop/wayland/hyprland/hyprland/scripts/initialise_gtk b/meta/desktop/wayland/hyprland/hyprland/scripts/initialise_gtk deleted file mode 100755 index 861aa12..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/scripts/initialise_gtk +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env dash - -THEME='WhiteSur-Dark' -ICONS='WhiteSur-dark' -FONT='SF Pro Text' -# CURSOR='WhiteSur-cursors' -CURSOR='Bibata-Modern-Ice' -CURSOR_SIZE='18' -SCHEMA='gsettings set org.gnome.desktop.interface' - -apply_themes() { - ${SCHEMA} gtk-theme "${THEME}" - ${SCHEMA} icon-theme "${ICONS}" - ${SCHEMA} cursor-theme "${CURSOR}" - ${SCHEMA} cursor-size "${CURSOR_SIZE}" - ${SCHEMA} font-name "${FONT}" -} - -apply_themes diff --git a/meta/desktop/wayland/hyprland/hyprland/scripts/initialise_waybar b/meta/desktop/wayland/hyprland/hyprland/scripts/initialise_waybar deleted file mode 100755 index 09f7ff9..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/scripts/initialise_waybar +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env dash - -CONFIG_FILES="${HOME}/.config/waybar/config.json ${HOME}/.config/waybar/default-modules.json ${HOME}/.config/waybar/style.css ${HOME}/.cache/wal/colors-waybar.css" - -trap "pkill -x waybar" EXIT - -\cp -r ~/.cache/wal/colors-waybar.css ~/.config/waybar/ - -while true; do - if ! pgrep -x "waybar" >/dev/null; then - waybar -c ~/.config/waybar/config.json -s ~/.config/waybar/style.css & - fi - - inotifywait -e create,modify ${CONFIG_FILES} - - pkill -x waybar - - while pgrep -x waybar >/dev/null; do sleep 0.5; done -done diff --git a/meta/desktop/wayland/hyprland/hyprland/scripts/initialise_xdg_portal b/meta/desktop/wayland/hyprland/hyprland/scripts/initialise_xdg_portal deleted file mode 100755 index 10470eb..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/scripts/initialise_xdg_portal +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env dash - -sleep 1 - -killall -e xdg-desktop-portal-hyprland -killall -e xdg-desktop-portal-wlr -killall xdg-desktop-portal - -/usr/lib/xdg-desktop-portal-hyprland & - -sleep 2 - -/usr/lib/xdg-desktop-portal & diff --git a/meta/desktop/wayland/hyprland/hyprland/scripts/move_focus_to_monitor b/meta/desktop/wayland/hyprland/hyprland/scripts/move_focus_to_monitor deleted file mode 100755 index 27562a9..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/scripts/move_focus_to_monitor +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -. "${HOME}/.config/hypr/hyprland/scripts/common.sh" - -target_monitor=$(get_relative_target_monitor "$1" 1) - -if [[ -n "${target_monitor}" ]]; then - hyprctl dispatch focusmonitor "${target_monitor}" -fi diff --git a/meta/desktop/wayland/hyprland/hyprland/scripts/move_window_to_monitor b/meta/desktop/wayland/hyprland/hyprland/scripts/move_window_to_monitor deleted file mode 100755 index 06e4f94..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/scripts/move_window_to_monitor +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env bash - -. "${HOME}/.config/hypr/hyprland/scripts/common.sh" - -target_monitor=$(get_relative_target_monitor "$1") -target_workspace=$(get_active_workspace "${target_monitor}") - -# target_workspace=$(get_empty_workspace $target_monitor) - -# if [[ -z "$target_workspace" ]]; then -# target_workspace=$(get_active_workspaces $target_monitor | head -n 1) -# fi - -if [[ -n "${target_workspace}" ]]; then - hyprctl dispatch movetoworkspace "${target_workspace}" -fi diff --git a/meta/desktop/wayland/hyprland/hyprland/scripts/move_window_to_workspace b/meta/desktop/wayland/hyprland/hyprland/scripts/move_window_to_workspace deleted file mode 100755 index 4256a9f..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/scripts/move_window_to_workspace +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env bash - -. "${HOME}/.config/hypr/hyprland/scripts/common.sh" - -initial_active_workspace="$(get_current_workspace)" -target_workspace="$(get_relative_target_workspace "${1}")" - -hyprctl dispatch movetoworkspace "${target_workspace}" - -if [[ $(get_workspace_client_count "${target_workspace}") -gt 2 ]]; then - hyprctl dispatch workspace "${initial_active_workspace}" -fi diff --git a/meta/desktop/wayland/hyprland/hyprland/scripts/switch_workspace b/meta/desktop/wayland/hyprland/hyprland/scripts/switch_workspace deleted file mode 100755 index fc8900c..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/scripts/switch_workspace +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env bash - -. "${HOME}/.config/hypr/hyprland/scripts/common.sh" - -hyprctl dispatch workspace "$(get_relative_target_workspace "${1}")" diff --git a/meta/desktop/wayland/hyprland/hyprland/scripts/toggle_gaps b/meta/desktop/wayland/hyprland/hyprland/scripts/toggle_gaps deleted file mode 100755 index d593ab2..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/scripts/toggle_gaps +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env dash - -inner_gap_size=5 -outer_gap_size=10 - -if [ "$(hyprctl getoption general:gaps_in | awk '{print $3}' || true)" -eq 0 ] && - [ "$(hyprctl getoption general:gaps_out | awk '{print $3}' || true)" -eq 0 ]; then - hyprctl keyword general:gaps_in "${inner_gap_size}" - hyprctl keyword general:gaps_out "${outer_gap_size}" -else - hyprctl keyword general:gaps_in 0 - hyprctl keyword general:gaps_out 0 -fi diff --git a/meta/desktop/wayland/hyprland/hyprland/scripts/toggle_layout b/meta/desktop/wayland/hyprland/hyprland/scripts/toggle_layout deleted file mode 100755 index 1ef8774..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/scripts/toggle_layout +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/env dash - -layout=$(hyprctl -j getoption general:layout) -new_layout="" - -case "$(echo "${layout}" | jq -r .str)" in -dwindle) - hyprctl keyword general:layout master - - new_layout="master" - - ;; -master) - hyprctl keyword general:layout dwindle - - new_layout="dwindle" - - ;; -*) ;; -esac - -notify-send "You've changed the layout to ${new_layout}." diff --git a/meta/desktop/wayland/hyprland/hyprland/workspaces.nix b/meta/desktop/wayland/hyprland/hyprland/workspaces.nix deleted file mode 100644 index 89644ae..0000000 --- a/meta/desktop/wayland/hyprland/hyprland/workspaces.nix +++ /dev/null @@ -1,38 +0,0 @@ -_: { - wayland.windowManager.hyprland.settings.workspace = ( - let - generateWorkspaces = monitor: workspaces: offset: - builtins.genList - (x: - let - ws = - let - c = (x + 1) / workspaces; - in - builtins.toString (x + 1 - (c * workspaces)); - in - [ "${toString (x + offset + 1)}, monitor:${monitor}" ] - ) - workspaces; - generateWorkspacesAll = monitors: tags: - builtins.concatLists (builtins.map - (monitor: generateWorkspaces - (builtins.elemAt monitors monitor) - tags - (builtins.elemAt - (builtins.genList - (index: index * tags) - (builtins.length monitors)) - monitor)) - (builtins.genList (index: index) (builtins.length monitors)) - ); - in - builtins.concatLists (generateWorkspacesAll [ "DP-2" "HDMI-A-2" "DP-1" ] 10) - ) ++ [ - "special:simple_terminal, on-created-empty:[float;center;size 50% 65%] kitty --class simple_terminal" - "special:simple_calculator, on-created-empty:[float;center;size 50% 50%] kitty --class simple_calculator -e bc -lq" - "special:chatgpt, on-created-empty:[float;center;size 65% 75%] thorium-browser --user-data-dir=/home/fuwn/.local/share/spgpt --app='https://chatgpt.com/'" - "special:spotify, on-created-empty:[float;center;size 65% 90%] LD_PRELOAD=/usr/lib/spotifywm.so /opt/spotify/spotify" - "special:calculator, on-created-empty:[float;center;size 50% 50%] qalculate-gtk" - ]; -} diff --git a/meta/desktop/wayland/meta/default.nix b/meta/desktop/wayland/meta/default.nix deleted file mode 100644 index 0115f30..0000000 --- a/meta/desktop/wayland/meta/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -_: { - imports = [ - ./screenshot - ]; -} diff --git a/meta/desktop/wayland/meta/screenshot/default.nix b/meta/desktop/wayland/meta/screenshot/default.nix deleted file mode 100644 index 5900ee2..0000000 --- a/meta/desktop/wayland/meta/screenshot/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - grim - slurp - ]; -} diff --git a/meta/desktop/wayland/waybar/default.nix b/meta/desktop/wayland/waybar/default.nix deleted file mode 100644 index a582651..0000000 --- a/meta/desktop/wayland/waybar/default.nix +++ /dev/null @@ -1,91 +0,0 @@ -{ pkgs, ... }: { - programs.waybar = { - enable = true; - style = ./waybar/style.css; - settings = ( - let - defaultModules = - (import ./waybar/default-modules.nix { - inherit pkgs; - }); - hyprland-workspaces-base = { - disable-scroll = true; - disable-markup = false; - all-outputs = false; - format = "{icon}"; - }; - in - [ - (defaultModules // { - output = "HDMI-A-2"; - "hyprland/workspaces" = hyprland-workspaces-base // { - format-icons = { - "11" = "一"; - "12" = "二"; - "13" = "三"; - "14" = "四"; - "15" = "五"; - "16" = "六"; - "17" = "七"; - "18" = "八"; - "19" = "九"; - "20" = "十"; - }; - }; - }) - (defaultModules // { - output = "DP-2"; - "hyprland/workspaces" = hyprland-workspaces-base // { - format-icons = { - "1" = "一"; - "2" = "二"; - "3" = "三"; - "4" = "四"; - "5" = "五"; - "6" = "六"; - "7" = "七"; - "8" = "八"; - "9" = "九"; - "10" = "十"; - }; - }; - }) - (defaultModules // { - output = "DP-1"; - "hyprland/workspaces" = hyprland-workspaces-base // { - format-icons = { - "21" = "一"; - "22" = "二"; - "23" = "三"; - "24" = "四"; - "25" = "五"; - "26" = "六"; - "27" = "七"; - "28" = "八"; - "29" = "九"; - "30" = "十"; - }; - }; - }) - ] - ); - }; - xdg.configFile = ( - let - scripts = [ - "mediaplayer.py" - ]; - in - ( - builtins.listToAttrs (map - (script: { - name = "waybar/scripts/${script}"; - - value = { - source = ./waybar/scripts/${script}; - }; - }) - scripts) - ) - ); -} diff --git a/meta/desktop/wayland/waybar/waybar/default-modules.nix b/meta/desktop/wayland/waybar/waybar/default-modules.nix deleted file mode 100644 index a793332..0000000 --- a/meta/desktop/wayland/waybar/waybar/default-modules.nix +++ /dev/null @@ -1,214 +0,0 @@ -{ pkgs, ... }: { - layer = "top"; - position = "top"; - margin-left = 8; - margin-right = 8; - height = 40; - - bluetooth = { - format = ""; - on-click = "${pkgs.blueberry}/bin/blueberry"; - }; - - clock = { - locale = "ja_JP.utf8"; - interval = 5; - tooltip-format = "<tt><small>{calendar}</small></tt>"; - # format = "{:%m月 %d日 %H:%M:%S}"; - format = "{:L%m月 %d日 %H:%M}"; - format-alt = "{:L%G年%b %d日 %A}"; - }; - - # For when clock doesn't work - "custom/clock" = { - exec = "date '+%m月 %d日 %H:%M'"; - tooltip = false; - interval = 5; - }; - - cpu = { - interval = 5; - format = " {usage}% ({load})"; - - states = { - warning = 70; - critical = 90; - }; - - on-click = "kitty -e '${pkgs.bottom}/bin/btm'"; - }; - - memory = { - interval = 5; - format = " {}%"; - format-alt = " {used:0.1f}/{total:0.1f}ギガ"; - - # I might remove these. I have 64GB of RAM .... - states = { - warning = 70; - critical = 90; - }; - }; - - network = { - interval = 1; - # format-wifi = " {bandwidthUpBytes} {bandwidthDownBytes}", - # format-ethernet = " {bandwidthUpBytes} {bandwidthDownBytes}", - format = " {bandwidthUpBytes} {bandwidthDownBytes}"; - format-disconnected = "⚠ Disconnected"; - tooltip-format = "{ifname}: {ipaddr}"; - on-click = "kitty -e 'nmtui'"; - }; - - "hyprland/mode" = { - format = "{}"; - tooltip = false; - }; - - "hyprland/window" = { - format = "{}"; - max-length = 120; - separate-outputs = true; - icon = false; - - rewrite = { - "(.*) - Thorium" = " $1"; - "(.*) - NVIM" = " $1"; - "ChatGPT" = " ChatGPT"; - "~(.*)" = " ~$1"; - "…(.*)" = " …$1"; - "zsh" = " ~"; - "fish" = " ~"; - "kitty" = " ~"; - "Volume Control" = " Volume Control"; - "Bluetooth" = " Bluetooth"; - "JamesDSP for Linux" = " JamesDSP"; - }; - }; - - pulseaudio = { - scroll-step = 1; - format = "{icon} {volume}%"; - # format-bluetooth = "{volume}% {icon} {format_source}"; - # format-bluetooth-muted = " {icon} {format_source}"; - format-muted = ""; - - format-icons = { - headphone = ""; - hands-free = "וֹ"; - headset = ""; - phone = ""; - portable = ""; - car = ""; - - default = [ "" ]; - }; - - on-click = "pactl set-sink-mute @DEFAULT_SINK@ toggle"; - on-click-right = "${pkgs.pavucontrol}/bin/pavucontrol"; - on-scroll-up = "pactl set-sink-volume @DEFAULT_SINK@ +2%"; - on-scroll-down = "pactl set-sink-volume @DEFAULT_SINK@ -2%"; - }; - - tray = { - spacing = 10; - show-passive-items = true; - }; - - "image#album-art" = { - path = "/tmp/mediaplayer_art"; - size = 22.5; # (18 + (18 / 4)) - interval = 5; - on-click = "${pkgs.playerctl}/bin/playerctl play-pause"; - }; - - "custom/media" = { - format = "{icon} {}"; - return-type = "json"; - max-length = 40; - - format-icons = { - spotify = " "; - default = " "; - }; - - escape = true; - exec = "/usr/bin/env python3 ~/.config/waybar/scripts/mediaplayer.py 2> /dev/null"; - on-click = "${pkgs.playerctl}/bin/playerctl play-pause"; - on-scroll-up = "${pkgs.playerctl}/bin/playerctl next"; - on-scroll-down = "${pkgs.playerctl}/bin/playerctl previous"; - }; - - cava = { - framerate = 280; - autosens = 1; - sensitivity = 3; - bars = 26; - lower_cutoff_freq = 50; - higher_cutoff_freq = 10000; - method = "pipewire"; - source = "auto"; - stereo = true; - reverse = true; - bar_delimiter = 0; - monstercat = false; - waves = false; - hide_on_silence = true; - noise_reduction = 0.77; - input_delay = 0; - on-click = "${pkgs.playerctl}/bin/playerctl play-pause"; - - # actions = { - # on-click-right = "mode"; - # }; - - # format-icons = ["░", "▒", "▓", "█", "█", "█", "█", "█"] - # format-icons = ["⎺", "⎻", "⎼", "⎽", "⎼", "⎻", "⎺", "⎹"] - # format-icons = ["▏", "▎", "▍", "▌", "▋", "▊", "▉", "█"] - format-icons = [ "⠁" "⠃" "⠇" "⠋" "⠛" "⠟" "⠿" "⣿" ]; - # format-icons = ["◰", "◳", "◲", "◱", "▘", "▝", "▖", "▗"] - # format-icons = ["▖", "▗", "▘", "▝", "▚", "▞", "▛", "▟"] - # format-icons = ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█", "▉", "▊"] - # format-icons = ["⎯", "⎰", "⎱", "⎲", "⎳", "⎴", "⎵", "⎶"] - # format-icons = ["⎺", "⎻", "⎼", "⎽", "⎾", "⎿", "⏀", "⏁"] - # format-icons = ["♪", "♫", "♬", "♭", "♮", "♯", "♩", "♪"] - # format-icons = ["→", "⇉", "⇒", "⇉", "→", "⇉", "⇒", "⇉"] - # format-icons = ["·", ":", "⁙", "⁘", "⁙", ":", "·", "•"] - # format-icons = ["○", "◔", "◑", "◕", "●", "◍", "◎", "◉"] - # format-icons = ["△", "▲", "▴", "▸", "▶", "▹", "►", "▻"] - # format-icons = ["◇", "◈", "◉", "◍", "◎", "◯", "⦿", "◑"] - # format-icons = ["-", "–", "—", "––", "–––", "——", "———", "——––"] - # format-icons = ["-", "=", "≡", "≣", "≠", "≢", "≜", "≝"] - # format-icons = ["✓", "✔", "✕", "✖", "✗", "✘", "✙", "✚"] - # format-icons = ["✩", "✪", "✫", "✬", "✭", "✮", "✯", "✰"] - }; - - "custom/gpu" = { - exec = "nvidia-smi --query-gpu=utilization.gpu --format=csv,noheader | sed 's/ %/%/'"; - interval = 5; - format = " {}"; - on-click = "kitty -e 'nvtop'"; - }; - - modules-left = [ - "hyprland/workspaces" - "hyprland/window" - "custom/media" - "image#album-art" - ]; - - modules-center = [ - "clock" - ]; - - modules-right = [ - "cava" - # "network" - "tray" - "cpu" - "custom/gpu" - "memory" - "bluetooth" - "pulseaudio" - ]; -} diff --git a/meta/desktop/wayland/waybar/waybar/scripts/mediaplayer.py b/meta/desktop/wayland/waybar/waybar/scripts/mediaplayer.py deleted file mode 100755 index c44ee0b..0000000 --- a/meta/desktop/wayland/waybar/waybar/scripts/mediaplayer.py +++ /dev/null @@ -1,152 +0,0 @@ -#!/usr/bin/env python3 - -import argparse -import logging -import os -import sys -import signal -import gi -import json - -gi.require_version("Playerctl", "2.0") - -from gi.repository import Playerctl, GLib - -logger = logging.getLogger(__name__) - - -def write_output(text, player): - logger.info("Writing output") - - output = { - "text": text, - "class": "custom-" + player.props.player_name, - "alt": player.props.player_name, - "art": player.props.metadata["mpris:artUrl"], - } - - sys.stdout.write(json.dumps(output) + "\n") - sys.stdout.flush() - - -def on_play(player, status, manager): - logger.info("Received new playback status") - on_metadata(player, player.props.metadata, manager) - - -def on_metadata(player, metadata, manager): - logger.info("Received new metadata") - - track_info = "" - - if ( - player.props.player_name == "spotify" - and "mpris:trackid" in metadata.keys() - and ":ad:" in player.props.metadata["mpris:trackid"] - ): - track_info = "AD PLAYING" - elif player.get_artist() != "" and player.get_title() != "": - track_info = "{title} - {artist}".format( - artist=player.get_artist(), title=player.get_title() - ) - else: - track_info = player.get_title() - - if "file://" in player.props.metadata["mpris:artUrl"]: - os.system( - f"cp $(echo '{player.props.metadata['mpris:artUrl']}' | sed -E 's/file:\\/\\///g') /tmp/mediaplayer_art" - ) - else: - os.system( - f"curl --silent $(echo '{player.props.metadata['mpris:artUrl']}' | sed -E 's/file:\\/\\///g') --output /tmp/mediaplayer_art" - ) - - # if player.props.status != 'Playing' and track_info: - # track_info = ' ' + track_info - - write_output(track_info, player) - - -def on_player_appeared(manager, player, selected_player=None): - if player is not None and ( - selected_player is None or player.name == selected_player - ): - init_player(manager, player) - else: - logger.debug("New player appeared, but it's not the selected player, skipping") - - -def on_player_vanished(manager, player): - logger.info("Player has vanished") - sys.stdout.write("\n") - sys.stdout.flush() - os.system("rm /tmp/mediaplayer_art") - - -def init_player(manager, name): - logger.debug("Initialize player: {player}".format(player=name.name)) - - player = Playerctl.Player.new_from_name(name) - - player.connect("playback-status", on_play, manager) - player.connect("metadata", on_metadata, manager) - manager.manage_player(player) - on_metadata(player, player.props.metadata, manager) - - -def signal_handler(sig, frame): - logger.debug("Received signal to stop, exiting") - sys.stdout.write("\n") - sys.stdout.flush() - # loop.quit() - sys.exit(0) - - -def parse_arguments(): - parser = argparse.ArgumentParser() - - parser.add_argument("-v", "--verbose", action="count", default=0) - parser.add_argument("--player") - - return parser.parse_args() - - -def main(): - arguments = parse_arguments() - logging.basicConfig( - stream=sys.stderr, - level=logging.DEBUG, - format="%(name)s %(levelname)s %(message)s", - ) - - logger.setLevel(max((3 - arguments.verbose) * 10, 0)) - logger.debug("Arguments received {}".format(vars(arguments))) - - manager = Playerctl.PlayerManager() - loop = GLib.MainLoop() - - manager.connect( - "name-appeared", lambda *args: on_player_appeared(*args, arguments.player) - ) - manager.connect("player-vanished", on_player_vanished) - signal.signal(signal.SIGINT, signal_handler) - signal.signal(signal.SIGTERM, signal_handler) - signal.signal(signal.SIGPIPE, signal.SIG_DFL) - - for player in manager.props.player_names: - if arguments.player is not None and arguments.player != player.name: - logger.debug( - "{player} is not the filtered player, skipping it".format( - player=player.name - ) - ) - - continue - - init_player(manager, player) - - loop.run() - - -if __name__ == "__main__": - main() diff --git a/meta/desktop/wayland/waybar/waybar/style.css b/meta/desktop/wayland/waybar/waybar/style.css deleted file mode 100644 index 9a85e83..0000000 --- a/meta/desktop/wayland/waybar/waybar/style.css +++ /dev/null @@ -1,134 +0,0 @@ -@import "/home/fuwn/.cache/wal/colors-waybar.css"; - -* { - /* font-family: CartographCF Nerd Font, Iosevka Nerd Font, cursive; */ - /* font-family: Noto Sans Mono, Sarasa Mono J, cursive; */ - /* font-family: SF Mono, cursive; */ - /* font-family: MesloLGS NF; */ - font-family: SF Pro, Hiragino Sans, cursive; - font-size: 15px; -} - -window#waybar { - background-color: rgba(0, 0, 0, 0); - color: @foreground; - /* -gtk-icon-shadow: */ - /* -1px 0 #ffffff, */ - /* 0 1px #ffffff, */ - /* 1px 0 #ffffff, */ - /* 0 -1px #ffffff; */ -} - -#battery, -#cava, -#custom-know, -#clock, -#custom-clock, -#backlight, -#cpu, -#custom-keyboard-layout, -#memory, -#mode, -#custom-weather, -#network, -#pulseaudio, -#temperature, -#tray, -#idle_inhibitor, -#window, -#bluetooth, -#custom-power, -#workspaces, -#custom-media, -#custom-gpu, -#custom-PBPbattery { - /* padding: 0.25rem 0.75rem; */ - /* margin: 10px 5px 0px 0; */ - padding: 5px 15px; - margin: 10px 1rem 0px 0; - background-color: @background; - border-radius: 10px; /* 9 */ - color: @foreground; -} - -#image { - margin-top: 10px; - border-top-right-radius: 10px; - border-bottom-right-radius: 10px; - background-color: @background; - margin-right: 1rem; - padding-right: 1rem; -} - -#image > * { - border-radius: 10px; -} - -#image.empty { - background-color: transparent; - min-width: 0; - min-height: 0; - margin: 0; - padding: 0; -} - -window#waybar #custom-media { - border-top-right-radius: 0; - border-bottom-right-radius: 0; - padding-right: 1rem; - margin-right: 0; -} - -window#waybar.empty #window { - background-color: transparent; - padding: 0; - margin: 0; -} - -window#custom-media.empty #window { - background-color: transparent; -} - -#workspaces button.active { - color: @color11; -} - -#workspaces button:hover { - background-color: unset; -} - -#pulseaudio { - border-top-left-radius: 0; - border-bottom-left-radius: 0; - margin-left: 0; - padding-left: 0.5rem; -} - -#bluetooth { - border-top-right-radius: 0; - border-bottom-right-radius: 0; - margin-right: 0; - padding-right: 0.5rem; -} - -#memory { - border-top-left-radius: 0; - border-bottom-left-radius: 0; - margin-left: 0; - padding-left: 0.5rem; -} - -#custom-gpu { - border-radius: 0; - margin-right: 0; - margin-left: 0; - padding-right: 0.5rem; - padding-left: 0.5rem; -} - -#cpu { - border-top-right-radius: 0; - border-bottom-right-radius: 0; - margin-right: 0; - padding-right: 0.5rem; -} |