modules: add easymotion for hyprland

This commit is contained in:
Dmitriy Pleshevskiy 2024-04-23 11:51:15 +03:00
parent 629c9e995c
commit 105d7278dd
Signed by: pleshevskiy
GPG key ID: 17041163DA10A9A2
8 changed files with 78 additions and 20 deletions

View file

@ -16,8 +16,6 @@ in
xmonad.projects = import ./xmonad-projects.secret.nix;
};
local.programs.terminals.wezterm.enable = false;
# local.programs.dev-tools.k8s.enable = true;
local.programs.libreoffice.enable = false;

View file

@ -2,8 +2,8 @@
{
imports = [
./xmonad.nix
./hyprland.nix
./polybar.nix
./xmonad
./hyprland
];
}

View file

@ -2,6 +2,8 @@
let
cfg = config.local.window-manager.hyprland;
easyfocus = pkgs.callPackage ./easyfocus-hyprland.nix { };
in
{
options.local.window-manager.hyprland = with lib; {
@ -10,13 +12,36 @@ in
config = lib.mkIf cfg.enable {
home.packages = with pkgs.unstable; [
foot
wl-clipboard
wlsunset
swaybg
dmenu-wayland
];
xdg.configFile."easyfocus-hyprland/config.yaml".text = ''
chars: 'aoeuhtns'
window_background_color: '1d1f21'
window_background_opacity: 0.2
label_background_color: '1d1f21'
label_background_opacity: 1.0
label_text_color: 'c5c8c6'
focused_background_color: '285577'
focused_background_opacity: 1.0
focused_text_color: 'ffffff'
font_family: monospace
font_weight: bold
font_size: 60px
label_padding_x: 16
label_padding_y: 16
label_border_radius: 4
label_margin_x: 4
label_margin_y: 16
'';
wayland.windowManager.hyprland = {
enable = true;
package = pkgs.unstable.hyprland;
@ -26,7 +51,7 @@ in
settings = {
# monitors
monitor = ",preferred,auto,auto";
monitor = ",preferred,auto,1";
# env
@ -41,7 +66,7 @@ in
gaps_in = 5;
gaps_out = 20;
border_size = 2;
border_size = 1;
"col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg";
"col.inactive_border" = "rgba(595959aa)";
@ -80,8 +105,11 @@ in
workspace_swipe = false;
};
xwayland = {
force_zero_scaling = true;
};
"$terminal" = "foot";
"$terminal" = "wezterm start";
"$browser" = "librewolf";
"$fileManager" = "vifm";
"$menu" = "dmenu-wl_run";
@ -90,32 +118,44 @@ in
bind = lib.flatten [
# programs
"$mod SHIFT, Return, exec, $terminal"
"$mod SHIFT, S, exec, flameshot gui"
"$mod SHIFT, B, exec, $browser"
"$mod, p, exec, $menu"
# Move focus
(lib.flip lib.mapAttrsToList { L = "r"; H = "l"; J = "d"; K = "u"; } (k: d:
"$mod, ${k}, movefocus, ${d}"
))
# focus
(lib.flip lib.mapAttrsToList { k = "prev"; j = "next"; } (k: d: [
"$mod, ${k}, layoutmsg, cycle${d}"
"$mod SHIFT, ${k}, layoutmsg, swap${d}"
]))
"$mod, Return, layoutmsg, swapwithmaster, master"
"$mod, s, exec, ${easyfocus}/bin/easyfocus-hyprland"
# comma (,)
"$mod, code:44, layoutmsg, addmaster"
# period (.)
"$mod, code:46, layoutmsg, removemaster"
# windows
"MOD4 SHIFT, C, killactive"
"$mod, Space, fullscreen, 0"
# workspaces
(lib.flip map [ 1 2 3 4 5 6 7 8 9 0 ] (i:
let wid = if i == 0 then 10 else i; in
[
# switch warkspaces with mod + [0-9]
"$mod, ${toString i}, workspace, ${toString wid}"
# move active window to a workspace with mod + shift + [0-9]
"$mod SHIFT, ${toString i}, movetoworkspace, ${toString wid}"
"$mod SHIFT, ${toString i}, movetoworkspacesilent, ${toString wid}"
]
))
# syste
"MOD4 SHIFT, Q, exit"
];
bindm = [
"$mod, mouse:272, movewindow"
"$mod, mouse:273, resizewindow"
];
input = let kb = config.home.keyboard; in {
@ -124,7 +164,6 @@ in
kb_variant = kb.variant;
kb_options = lib.head kb.options;
};
};
};
};

View file

@ -0,0 +1,19 @@
{ pkgs, ... }:
pkgs.rustPlatform.buildRustPackage {
pname = "easyfocus-hyprland";
version = "2024-03-14";
src = pkgs.fetchFromGitHub {
owner = "PostCyberPunk";
repo = "easyfocus-hyprland";
rev = "382efb8bcdbb5e35a417d4ef415f92f5fca0d41e";
hash = "sha256-BLX3ASmTq+xkUOQQ0yBCn/mhsnz6JU2u+lor1YYHkdI=";
};
cargoHash = "sha256-M72KO6Z/ZCsns1yZd5eqz94CSIZ/dI4SpGjnqJ9LYko=";
nativeBuildInputs = with pkgs;
[ pkg-config glib ];
buildInputs = with pkgs; [ glib gtk3 gtk-layer-shell ];
}

View file

@ -1,4 +1,4 @@
--
-
-- xmonad example config file.
--
-- A template showing all available configuration hooks,

View file

@ -11,7 +11,7 @@ let
rev = version;
hash = "sha256-IyAcTCDSjOmZ6KPr9nYKdxWA0qryeU4jTwxRWzt2NOY=";
};
vendorHash = "sha256-pir78zXidz7N9Z6uw9YqkkjVRUho0PuKgDTQFli/4fs=";
vendorHash = "sha256-s7lt5amq6Zsn+1AM2SlNeXSZIRbJ+vYKZmdWEDC4Sp4=";
});
};

View file

@ -60,6 +60,8 @@ in
font_size = ${toString cfg.fontSize},
color_scheme = "myCoolTheme",
hide_tab_bar_if_only_one_tab = true,
-- https://github.com/wez/wezterm/issues/4483
enable_wayland = false,
}
'';
};