diff --git a/home/programs/graphical/bars/eww/config/scripts/workspaces b/home/programs/graphical/bars/eww/config/scripts/workspaces index f8e45ed..903182e 100755 --- a/home/programs/graphical/bars/eww/config/scripts/workspaces +++ b/home/programs/graphical/bars/eww/config/scripts/workspaces @@ -4,7 +4,8 @@ source "./scripts/include" if [ "$1" = "--switch" ]; then - hyprctl dispatch focusworkspaceoncurrentmonitor "$2" >/dev/null + $HOME/.local/bin/scripts/gui/hyprland/swap-workspace "$2" >/dev/null + # hyprctl dispatch workspace "$2" >/dev/null elif [ "$1" = "--loop" ]; then hyprland_ipc "workspace|createworkspace|destroyworkspace" | ./scripts/workspaces.py "$@" else diff --git a/home/programs/graphical/wms/hyprland/config/keybinds.nix b/home/programs/graphical/wms/hyprland/config/keybinds.nix index 91bfa5a..2149596 100644 --- a/home/programs/graphical/wms/hyprland/config/keybinds.nix +++ b/home/programs/graphical/wms/hyprland/config/keybinds.nix @@ -107,15 +107,15 @@ # # Switch workspace (swapping to current monitor) # - "SUPER, 1, focusworkspaceoncurrentmonitor, 1" - "SUPER, 2, focusworkspaceoncurrentmonitor, 2" - "SUPER, 3, focusworkspaceoncurrentmonitor, 3" - "SUPER, 4, focusworkspaceoncurrentmonitor, 4" - "SUPER, 5, focusworkspaceoncurrentmonitor, 5" - "SUPER, 6, focusworkspaceoncurrentmonitor, 6" - "SUPER, 7, focusworkspaceoncurrentmonitor, 7" - "SUPER, 8, focusworkspaceoncurrentmonitor, 8" - "SUPER, 9, focusworkspaceoncurrentmonitor, 9" + "SUPER, 1, exec, hyprland-swap-workspace 1" + "SUPER, 2, exec, hyprland-swap-workspace 2" + "SUPER, 3, exec, hyprland-swap-workspace 3" + "SUPER, 4, exec, hyprland-swap-workspace 4" + "SUPER, 5, exec, hyprland-swap-workspace 5" + "SUPER, 6, exec, hyprland-swap-workspace 6" + "SUPER, 7, exec, hyprland-swap-workspace 7" + "SUPER, 8, exec, hyprland-swap-workspace 8" + "SUPER, 9, exec, hyprland-swap-workspace 9" # # Move window to workspace diff --git a/home/programs/graphical/wms/hyprland/default.nix b/home/programs/graphical/wms/hyprland/default.nix index 7b1ce94..166748f 100644 --- a/home/programs/graphical/wms/hyprland/default.nix +++ b/home/programs/graphical/wms/hyprland/default.nix @@ -16,6 +16,7 @@ in { config = mkIf cfg.enable { home.packages = [ + hyprPkgs.hyprland-swap-workspace hyprPkgs.hyprland-move-window pkgs.brightnessctl hyprPkgs.brightness diff --git a/home/programs/graphical/wms/hyprland/packages/default.nix b/home/programs/graphical/wms/hyprland/packages/default.nix index f5c76ee..bbead15 100644 --- a/home/programs/graphical/wms/hyprland/packages/default.nix +++ b/home/programs/graphical/wms/hyprland/packages/default.nix @@ -3,6 +3,7 @@ ... }: let packages = { + hyprland-swap-workspace = pkgs.callPackage ./hyprland-swap-workspace {}; hyprland-move-window = pkgs.callPackage ./hyprland-move-window {}; brightness = pkgs.callPackage ./brightness {}; }; diff --git a/home/programs/graphical/wms/hyprland/packages/hyprland-swap-workspace/default.nix b/home/programs/graphical/wms/hyprland/packages/hyprland-swap-workspace/default.nix new file mode 100644 index 0000000..25433db --- /dev/null +++ b/home/programs/graphical/wms/hyprland/packages/hyprland-swap-workspace/default.nix @@ -0,0 +1,4 @@ +{pkgs, ...}: + pkgs.writeShellScriptBin "hyprland-swap-workspace" '' + ${builtins.readFile ./hyprland-swap-workspace.sh} + '' diff --git a/home/programs/graphical/wms/hyprland/packages/hyprland-swap-workspace/hyprland-swap-workspace.sh b/home/programs/graphical/wms/hyprland/packages/hyprland-swap-workspace/hyprland-swap-workspace.sh new file mode 100644 index 0000000..64030b4 --- /dev/null +++ b/home/programs/graphical/wms/hyprland/packages/hyprland-swap-workspace/hyprland-swap-workspace.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +WORKSPACE="$1" + +monitors_out="$(hyprctl monitors -j)" +focused_mon="$(echo "$monitors_out" | jq '.[] | select(.focused==true) | .id')" +focused_wks="$(echo "$monitors_out" | jq '.[].activeWorkspace.id')" + +# Workspace is already focused, check on which monitor +if echo "$focused_wks" | grep "$WORKSPACE" >/dev/null; then + mon_id="$(echo "$monitors_out" | jq ".[] | select(.activeWorkspace.id==$WORKSPACE) | .id")" + + # If the workspace is focused on the active monitor, don't do anything (we're here). + # Otherwise, swap the workspaces. + if [ "$mon_id" -ne "$focused_mon" ]; then + hyprctl dispatch swapactiveworkspaces "$focused_mon" "$mon_id" + fi +# Switching to an unfocused workspace, always move it to focused monitor +else + hyprctl dispatch moveworkspacetomonitor "$WORKSPACE" "$focused_mon" + hyprctl dispatch workspace "$WORKSPACE" +fi diff --git a/home/programs/xdg/mime-apps.nix b/home/programs/xdg/mime-apps.nix index 6b65520..984e59e 100644 --- a/home/programs/xdg/mime-apps.nix +++ b/home/programs/xdg/mime-apps.nix @@ -39,9 +39,4 @@ "x-scheme-handler/msteams" = ["teams.desktop"]; # I need it for school, don't judge me }; }; - - home.sessionVariables = { - BROWSER = "firefox"; - DEFAULT_BROWSER = "firefox"; - }; } diff --git a/hosts/voyager/default.nix b/hosts/voyager/default.nix index ece3ddb..b67c3c4 100644 --- a/hosts/voyager/default.nix +++ b/hosts/voyager/default.nix @@ -70,13 +70,11 @@ ".local/share/nvim" ".local/state/nvim" ".local/share/zsh" - ".local/share/Smart Code ltd/Stremio" ".local/share/cargo" ".local/share/go" ]; extraFiles = [ ".config/git/git-credentials" - ".cache/walker/history.gob" ]; }; diff --git a/system/shared/multimedia/sound/default.nix b/system/shared/multimedia/sound/default.nix index af213e9..9e25e37 100644 --- a/system/shared/multimedia/sound/default.nix +++ b/system/shared/multimedia/sound/default.nix @@ -1,6 +1,5 @@ { config, - pkgs, lib, ... }: let @@ -13,13 +12,6 @@ in { enable = mkDefault false; # this just enables ALSA, which we don't really care abouyt mediaKeys.enable = true; }; - - environment.systemPackages = with pkgs; [ - # TUI tool to manage sound devices & levels - # It's made for pulseaudio, but it will work with pipewire too since we - # run a compatibility layer for pulse - pulsemixer - ]; }; }