Run Hyprland on Riva
This commit is contained in:
parent
84b400bb6d
commit
fa9e9e25af
|
@ -2,8 +2,7 @@
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
(import ./utils/common.nix { inherit inputs config pkgs; })
|
(import ./utils/desktop.nix { inherit inputs config pkgs; })
|
||||||
./ssh
|
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.ssh.matchBlocks."*".identityFile = "/home/user/.secrets/SSH/Riva/id_ed25519";
|
programs.ssh.matchBlocks."*".identityFile = "/home/user/.secrets/SSH/Riva/id_ed25519";
|
||||||
|
@ -13,4 +12,19 @@
|
||||||
jq
|
jq
|
||||||
evince
|
evince
|
||||||
];
|
];
|
||||||
|
wayland.windowManager.hyprland.settings = {
|
||||||
|
"$mainMod" = pkgs.lib.mkForce "ALT_L";
|
||||||
|
"$altMod" = pkgs.lib.mkForce "SUPER";
|
||||||
|
monitor = [
|
||||||
|
"Virtual-1,2000x1200@60,0x0,1"
|
||||||
|
];
|
||||||
|
general.gaps_out = 1;
|
||||||
|
};
|
||||||
|
services.hyprpaper = {
|
||||||
|
settings = {
|
||||||
|
wallpaper = [
|
||||||
|
"Virtual-1,${./hyprland/files/wallpaper.png}"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
let
|
let
|
||||||
playerctl = "${pkgs.playerctl}/bin/playerctl";
|
playerctl = "${pkgs.playerctl}/bin/playerctl";
|
||||||
wl-paste = "${pkgs.wl-clipboard}/bin/wl-paste";
|
wl-paste = "${pkgs.wl-clipboard}/bin/wl-paste";
|
||||||
ags = "${pkgs.ags}/bin/ags";
|
|
||||||
nautilus = "${pkgs.nautilus}/bin/nautilus";
|
nautilus = "${pkgs.nautilus}/bin/nautilus";
|
||||||
gnome-calendar = "${pkgs.gnome-calendar}/bin/gnome-calendar";
|
gnome-calendar = "${pkgs.gnome-calendar}/bin/gnome-calendar";
|
||||||
wpctl = "${pkgs.wireplumber}/bin/wpctl";
|
wpctl = "${pkgs.wireplumber}/bin/wpctl";
|
||||||
|
@ -11,12 +10,12 @@ let
|
||||||
rofi = "${pkgs.rofi}/bin/rofi";
|
rofi = "${pkgs.rofi}/bin/rofi";
|
||||||
jq = "${pkgs.jq}/bin/jq";
|
jq = "${pkgs.jq}/bin/jq";
|
||||||
rofi-ykman = pkgs.writeShellScriptBin "rofi-ykman" ''
|
rofi-ykman = pkgs.writeShellScriptBin "rofi-ykman" ''
|
||||||
accounts=$(${pkgs.yubikey-manager}/bin/ykman oath accounts list)
|
accounts=$(${pkgs.yubikey-manager}/bin/ykman oath accounts list)
|
||||||
prompt="YubiKey OATH"
|
prompt="YubiKey OATH"
|
||||||
account=$(echo "''${accounts/, TOTP/\n}" | awk '{ print $0 "\0icon\x1fyubioath"; }' | ${rofi} -dmenu -i -p "$prompt" ''${shortcuts[@]})
|
account=$(echo "''${accounts/, TOTP/\n}" | awk '{ print $0 "\0icon\x1fyubioath"; }' | ${rofi} -dmenu -i -p "$prompt" ''${shortcuts[@]})
|
||||||
code=$(${pkgs.yubikey-manager}/bin/ykman oath accounts code "$account")
|
code=$(${pkgs.yubikey-manager}/bin/ykman oath accounts code "$account")
|
||||||
IFS=', ' read -r -a code <<< "$code"
|
IFS=', ' read -r -a code <<< "$code"
|
||||||
echo -n "''${code[-1]}" | ${pkgs.wl-clipboard}/bin/wl-copy;
|
echo -n "''${code[-1]}" | ${pkgs.wl-clipboard}/bin/wl-copy;
|
||||||
'';
|
'';
|
||||||
|
|
||||||
workspace_command_prefix = "split-";
|
workspace_command_prefix = "split-";
|
||||||
|
@ -27,47 +26,47 @@ let
|
||||||
# hyprland_plugins = [];
|
# hyprland_plugins = [];
|
||||||
|
|
||||||
launch_alacritty = pkgs.writeShellScriptBin "launch_alacritty" ''
|
launch_alacritty = pkgs.writeShellScriptBin "launch_alacritty" ''
|
||||||
function find_leaf_pid(){
|
function find_leaf_pid(){
|
||||||
local PID=$1
|
local PID=$1
|
||||||
local CHILD_PID=$(pgrep -P "$PID")
|
local CHILD_PID=$(pgrep -P "$PID")
|
||||||
if [ "$CHILD_PID" != "" ]; then
|
if [ "$CHILD_PID" != "" ]; then
|
||||||
local RET=$(find_leaf_pid "$CHILD_PID")
|
local RET=$(find_leaf_pid "$CHILD_PID")
|
||||||
if [ "$RET" != "" ]; then
|
if [ "$RET" != "" ]; then
|
||||||
PID=$RET
|
PID=$RET
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
local NAME=$(ps -p "$PID" -o comm=)
|
local NAME=$(ps -p "$PID" -o comm=)
|
||||||
if [ "$NAME" == "zsh" ]; then
|
if [ "$NAME" == "zsh" ]; then
|
||||||
echo "$PID"
|
echo "$PID"
|
||||||
elif [ "$NAME" == "ssh" ]; then
|
elif [ "$NAME" == "ssh" ]; then
|
||||||
echo "$PID"
|
echo "$PID"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
LEAF_PID=$(find_leaf_pid "$1")
|
LEAF_PID=$(find_leaf_pid "$1")
|
||||||
if [ "$(ps -p "$LEAF_PID" -o comm=)" == "ssh" ]; then
|
if [ "$(ps -p "$LEAF_PID" -o comm=)" == "ssh" ]; then
|
||||||
SSH_COMMAND=$(ps -p "$LEAF_PID" -o args --no-headers)
|
SSH_COMMAND=$(ps -p "$LEAF_PID" -o args --no-headers)
|
||||||
if [[ "$SSH_COMMAND" == *"waypipe"* ]]; then
|
if [[ "$SSH_COMMAND" == *"waypipe"* ]]; then
|
||||||
CLIENT=$(echo "$SSH_COMMAND" | awk '{ print $5 }')
|
CLIENT=$(echo "$SSH_COMMAND" | awk '{ print $5 }')
|
||||||
PREVIOUS_SESSION_ID=$(grep -z "SSH_SESSION_ID" "/proc/$LEAF_PID/environ" | xargs -0 -n 1 | grep -oP "[0-9]*")
|
PREVIOUS_SESSION_ID=$(grep -z "SSH_SESSION_ID" "/proc/$LEAF_PID/environ" | xargs -0 -n 1 | grep -oP "[0-9]*")
|
||||||
SSH_SESSION_ID=$RANDOM
|
SSH_SESSION_ID=$RANDOM
|
||||||
${alacritty} -e zsh -c "SSH_SESSION_ID=$SSH_SESSION_ID waypipe ssh -t \"$CLIENT\" env SSH_SESSION_ID=\"$SSH_SESSION_ID\" PREVIOUS_SESSION_ID=\"$PREVIOUS_SESSION_ID\" \"zsh --login\""
|
${alacritty} -e zsh -c "SSH_SESSION_ID=$SSH_SESSION_ID waypipe ssh -t \"$CLIENT\" env SSH_SESSION_ID=\"$SSH_SESSION_ID\" PREVIOUS_SESSION_ID=\"$PREVIOUS_SESSION_ID\" \"zsh --login\""
|
||||||
else
|
else
|
||||||
${alacritty} -e zsh -c "ssh -t \"$(echo "$SSH_COMMAND" | awk '{ print $2 }')\""
|
${alacritty} -e zsh -c "ssh -t \"$(echo "$SSH_COMMAND" | awk '{ print $2 }')\""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
else # Not an ssh session
|
else # Not an ssh session
|
||||||
if [ "$(ps -p "$1" -o comm=)" == "alacritty" ]; then
|
if [ "$(ps -p "$1" -o comm=)" == "alacritty" ]; then
|
||||||
CWD=$(readlink -e /proc/"$LEAF_PID"/cwd)
|
CWD=$(readlink -e /proc/"$LEAF_PID"/cwd)
|
||||||
if [ "$CWD" != "" ]; then
|
if [ "$CWD" != "" ]; then
|
||||||
${alacritty} --working-directory "$CWD"
|
${alacritty} --working-directory "$CWD"
|
||||||
else
|
else
|
||||||
${alacritty}
|
${alacritty}
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
${alacritty}
|
${alacritty}
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
'';
|
'';
|
||||||
in {
|
in {
|
||||||
home.packages = [
|
home.packages = [
|
||||||
|
@ -96,7 +95,8 @@ in {
|
||||||
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
|
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
|
||||||
plugins = [ ] ++ hyprland_plugins;
|
plugins = [ ] ++ hyprland_plugins;
|
||||||
settings = {
|
settings = {
|
||||||
"$mainMod" = "SUPER";
|
"$mainMod" = pkgs.lib.mkDefault "SUPER";
|
||||||
|
"$altMod" = pkgs.lib.mkDefault "ALT_L";
|
||||||
exec-once = [
|
exec-once = [
|
||||||
"hyprpaper"
|
"hyprpaper"
|
||||||
"ags"
|
"ags"
|
||||||
|
@ -130,7 +130,7 @@ in {
|
||||||
input = {
|
input = {
|
||||||
kb_layout = "us";
|
kb_layout = "us";
|
||||||
follow_mouse = 1;
|
follow_mouse = 1;
|
||||||
kb_options = pkgs.lib.mkDefault "compose:rctrl";
|
kb_options = pkgs.lib.mkDefault "compose:rctrl, shift:both_capslock, caps:ctrl_modifier";
|
||||||
numlock_by_default = true;
|
numlock_by_default = true;
|
||||||
};
|
};
|
||||||
binds = { scroll_event_delay = 1; };
|
binds = { scroll_event_delay = 1; };
|
||||||
|
@ -162,8 +162,7 @@ in {
|
||||||
workspace_swipe_invert = false;
|
workspace_swipe_invert = false;
|
||||||
};
|
};
|
||||||
bindr = [
|
bindr = [
|
||||||
"$mainMod, SUPER_L, exec, pkill rofi || ${rofi} -show drun"
|
"$mainMod, $mainMod, exec, pkill rofi || ${rofi} -show drun"
|
||||||
"$mainMod, SUPER_R, exec, pkill rofi || ${rofi} -show drun"
|
|
||||||
];
|
];
|
||||||
bindm = [
|
bindm = [
|
||||||
"$mainMod, mouse:272, movewindow"
|
"$mainMod, mouse:272, movewindow"
|
||||||
|
@ -181,14 +180,10 @@ in {
|
||||||
"$mainMod, F, togglefloating,"
|
"$mainMod, F, togglefloating,"
|
||||||
"$mainMod, SPACE, togglesplit, # dwindle"
|
"$mainMod, SPACE, togglesplit, # dwindle"
|
||||||
"CONTROL_L ALT_L, L, exec, ${swaylock}"
|
"CONTROL_L ALT_L, L, exec, ${swaylock}"
|
||||||
''
|
''$mainMod, C, exec, cliphist list | awk '{print $0, "\0icon\x1fcom.github.davidmhewitt.clipped"; }' | ${rofi} -dmenu -display-columns 2 | cliphist decode | wl-copy''
|
||||||
$mainMod, C, exec, cliphist list | awk '{print $0, "\0icon\x1fcom.github.davidmhewitt.clipped"; }' | ${rofi} -dmenu -display-columns 2 | cliphist decode | wl-copy''
|
|
||||||
"$mainMod, Y, exec, ${rofi-ykman}/bin/rofi-ykman"
|
"$mainMod, Y, exec, ${rofi-ykman}/bin/rofi-ykman"
|
||||||
"$mainMod, N, exec, ${./files/rofi-ssh.sh}"
|
"$mainMod, N, exec, ${./files/rofi-ssh.sh}"
|
||||||
|
"$mainMod, Escape, exec, ${rofi} -show power-menu -modi power-menu:${ ./files/rofi-power-menu.sh }"
|
||||||
"$mainMod, Escape, exec, ${rofi} -show power-menu -modi power-menu:${
|
|
||||||
./files/rofi-power-menu.sh
|
|
||||||
}"
|
|
||||||
|
|
||||||
",XF86MonBrightnessUp, exec, ${pkgs.brightnessctl}/bin/brightnessctl set +10%"
|
",XF86MonBrightnessUp, exec, ${pkgs.brightnessctl}/bin/brightnessctl set +10%"
|
||||||
",XF86MonBrightnessDown, exec, ${pkgs.brightnessctl}/bin/brightnessctl set 10%-"
|
",XF86MonBrightnessDown, exec, ${pkgs.brightnessctl}/bin/brightnessctl set 10%-"
|
||||||
|
@ -217,26 +212,27 @@ in {
|
||||||
"$mainMod SHIFT, L, movewindow, r"
|
"$mainMod SHIFT, L, movewindow, r"
|
||||||
"$mainMod SHIFT, K, movewindow, u"
|
"$mainMod SHIFT, K, movewindow, u"
|
||||||
"$mainMod SHIFT, J, movewindow, d"
|
"$mainMod SHIFT, J, movewindow, d"
|
||||||
"$mainMod ALT, L, resizeactive, 20 0"
|
"$mainMod $altMod, L, resizeactive, 20 0"
|
||||||
"$mainMod ALT, H, resizeactive, -20 0"
|
"$mainMod $altMod, H, resizeactive, -20 0"
|
||||||
"$mainMod ALT, K, resizeactive, 0 -20"
|
"$mainMod $altMod, K, resizeactive, 0 -20"
|
||||||
"$mainMod ALT, J, resizeactive, 0 20"
|
"$mainMod $altMod, J, resizeactive, 0 20"
|
||||||
"$mainMod SHIFT, T, ${workspace_command_prefix}movetoworkspace, empty"
|
"$mainMod SHIFT, T, ${workspace_command_prefix}movetoworkspace, empty"
|
||||||
"$mainMod, T, ${workspace_command_prefix}workspace, empty"
|
"$mainMod, T, ${workspace_command_prefix}workspace, empty"
|
||||||
"$mainMod, TAB, ${workspace_command_prefix}workspace, m+1"
|
"$mainMod, TAB, ${workspace_command_prefix}workspace, m+1"
|
||||||
"$mainMod SHIFT, TAB, ${workspace_command_prefix}workspace, m-1"
|
"$mainMod SHIFT, TAB, ${workspace_command_prefix}workspace, m-1"
|
||||||
|
"$mainMod, Caps_Lock, ${workspace_command_prefix}workspace, m+1"
|
||||||
|
"$mainMod SHIFT, Caps_Lock, ${workspace_command_prefix}workspace, m-1"
|
||||||
] ++ (
|
] ++ (
|
||||||
# workspaces
|
# workspaces
|
||||||
# binds $mod + [shift +] {1..10} to [move to] workspace {1..10}
|
# binds $mod + [shift +] {1..10} to [move to] workspace {1..10}
|
||||||
builtins.concatLists (builtins.genList
|
builtins.concatLists (builtins.genList (x:
|
||||||
(x:
|
let
|
||||||
let
|
ws = let c = (x + 1) / 10; in builtins.toString (x + 1 - (c * 10));
|
||||||
ws = let c = (x + 1) / 10; in builtins.toString (x + 1 - (c * 10));
|
in
|
||||||
in
|
[
|
||||||
[
|
"$mainMod, ${ws}, ${workspace_command_prefix}workspace, ${toString (x + 1)}"
|
||||||
"$mainMod, ${ws}, ${workspace_command_prefix}workspace, ${toString (x + 1)}"
|
"$mainMod SHIFT, ${ws}, ${workspace_command_prefix}movetoworkspace, ${toString (x + 1)}"
|
||||||
"$mainMod SHIFT, ${ws}, ${workspace_command_prefix}movetoworkspace, ${toString (x + 1)}"
|
]) 10));
|
||||||
]) 10));
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,7 @@ let
|
||||||
in {
|
in {
|
||||||
imports = [
|
imports = [
|
||||||
(import ../Common/default.nix { inherit inputs config pkgs; })
|
(import ../Common/default.nix { inherit inputs config pkgs; })
|
||||||
|
(import ../Common/desktop.nix { inherit inputs pkgs config; })
|
||||||
(import ../Common/nfs.nix { inherit pkgs serverIP; })
|
(import ../Common/nfs.nix { inherit pkgs serverIP; })
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -24,4 +25,11 @@ in {
|
||||||
}];
|
}];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
services.sunshine = {
|
||||||
|
enable = true;
|
||||||
|
autoStart = true;
|
||||||
|
capSysAdmin = true;
|
||||||
|
openFirewall = true;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue