modules: add easymotion for hyprland
This commit is contained in:
parent
629c9e995c
commit
105d7278dd
8 changed files with 78 additions and 20 deletions
|
@ -16,8 +16,6 @@ in
|
||||||
xmonad.projects = import ./xmonad-projects.secret.nix;
|
xmonad.projects = import ./xmonad-projects.secret.nix;
|
||||||
};
|
};
|
||||||
|
|
||||||
local.programs.terminals.wezterm.enable = false;
|
|
||||||
|
|
||||||
# local.programs.dev-tools.k8s.enable = true;
|
# local.programs.dev-tools.k8s.enable = true;
|
||||||
|
|
||||||
local.programs.libreoffice.enable = false;
|
local.programs.libreoffice.enable = false;
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./xmonad.nix
|
|
||||||
./hyprland.nix
|
|
||||||
./polybar.nix
|
./polybar.nix
|
||||||
|
./xmonad
|
||||||
|
./hyprland
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,8 @@
|
||||||
|
|
||||||
let
|
let
|
||||||
cfg = config.local.window-manager.hyprland;
|
cfg = config.local.window-manager.hyprland;
|
||||||
|
|
||||||
|
easyfocus = pkgs.callPackage ./easyfocus-hyprland.nix { };
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.local.window-manager.hyprland = with lib; {
|
options.local.window-manager.hyprland = with lib; {
|
||||||
|
@ -10,13 +12,36 @@ in
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
home.packages = with pkgs.unstable; [
|
home.packages = with pkgs.unstable; [
|
||||||
foot
|
|
||||||
wl-clipboard
|
wl-clipboard
|
||||||
wlsunset
|
wlsunset
|
||||||
swaybg
|
|
||||||
dmenu-wayland
|
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 = {
|
wayland.windowManager.hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.unstable.hyprland;
|
package = pkgs.unstable.hyprland;
|
||||||
|
@ -26,7 +51,7 @@ in
|
||||||
settings = {
|
settings = {
|
||||||
# monitors
|
# monitors
|
||||||
|
|
||||||
monitor = ",preferred,auto,auto";
|
monitor = ",preferred,auto,1";
|
||||||
|
|
||||||
# env
|
# env
|
||||||
|
|
||||||
|
@ -41,7 +66,7 @@ in
|
||||||
gaps_in = 5;
|
gaps_in = 5;
|
||||||
gaps_out = 20;
|
gaps_out = 20;
|
||||||
|
|
||||||
border_size = 2;
|
border_size = 1;
|
||||||
|
|
||||||
"col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg";
|
"col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg";
|
||||||
"col.inactive_border" = "rgba(595959aa)";
|
"col.inactive_border" = "rgba(595959aa)";
|
||||||
|
@ -80,8 +105,11 @@ in
|
||||||
workspace_swipe = false;
|
workspace_swipe = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
xwayland = {
|
||||||
|
force_zero_scaling = true;
|
||||||
|
};
|
||||||
|
|
||||||
"$terminal" = "foot";
|
"$terminal" = "wezterm start";
|
||||||
"$browser" = "librewolf";
|
"$browser" = "librewolf";
|
||||||
"$fileManager" = "vifm";
|
"$fileManager" = "vifm";
|
||||||
"$menu" = "dmenu-wl_run";
|
"$menu" = "dmenu-wl_run";
|
||||||
|
@ -90,32 +118,44 @@ in
|
||||||
|
|
||||||
bind = lib.flatten [
|
bind = lib.flatten [
|
||||||
# programs
|
# programs
|
||||||
|
|
||||||
"$mod SHIFT, Return, exec, $terminal"
|
"$mod SHIFT, Return, exec, $terminal"
|
||||||
"$mod SHIFT, S, exec, flameshot gui"
|
|
||||||
"$mod SHIFT, B, exec, $browser"
|
"$mod SHIFT, B, exec, $browser"
|
||||||
"$mod, p, exec, $menu"
|
"$mod, p, exec, $menu"
|
||||||
|
|
||||||
# Move focus
|
# focus
|
||||||
(lib.flip lib.mapAttrsToList { L = "r"; H = "l"; J = "d"; K = "u"; } (k: d:
|
(lib.flip lib.mapAttrsToList { k = "prev"; j = "next"; } (k: d: [
|
||||||
"$mod, ${k}, movefocus, ${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:
|
(lib.flip map [ 1 2 3 4 5 6 7 8 9 0 ] (i:
|
||||||
let wid = if i == 0 then 10 else i; in
|
let wid = if i == 0 then 10 else i; in
|
||||||
[
|
[
|
||||||
# switch warkspaces with mod + [0-9]
|
# switch warkspaces with mod + [0-9]
|
||||||
"$mod, ${toString i}, workspace, ${toString wid}"
|
"$mod, ${toString i}, workspace, ${toString wid}"
|
||||||
# move active window to a workspace with mod + shift + [0-9]
|
# 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 = [
|
bindm = [
|
||||||
"$mod, mouse:272, movewindow"
|
"$mod, mouse:272, movewindow"
|
||||||
"$mod, mouse:273, resizewindow"
|
"$mod, mouse:273, resizewindow"
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
input = let kb = config.home.keyboard; in {
|
input = let kb = config.home.keyboard; in {
|
||||||
|
@ -124,7 +164,6 @@ in
|
||||||
kb_variant = kb.variant;
|
kb_variant = kb.variant;
|
||||||
kb_options = lib.head kb.options;
|
kb_options = lib.head kb.options;
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
|
@ -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 ];
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
--
|
-
|
||||||
-- xmonad example config file.
|
-- xmonad example config file.
|
||||||
--
|
--
|
||||||
-- A template showing all available configuration hooks,
|
-- A template showing all available configuration hooks,
|
|
@ -11,7 +11,7 @@ let
|
||||||
rev = version;
|
rev = version;
|
||||||
hash = "sha256-IyAcTCDSjOmZ6KPr9nYKdxWA0qryeU4jTwxRWzt2NOY=";
|
hash = "sha256-IyAcTCDSjOmZ6KPr9nYKdxWA0qryeU4jTwxRWzt2NOY=";
|
||||||
};
|
};
|
||||||
vendorHash = "sha256-pir78zXidz7N9Z6uw9YqkkjVRUho0PuKgDTQFli/4fs=";
|
vendorHash = "sha256-s7lt5amq6Zsn+1AM2SlNeXSZIRbJ+vYKZmdWEDC4Sp4=";
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -60,6 +60,8 @@ in
|
||||||
font_size = ${toString cfg.fontSize},
|
font_size = ${toString cfg.fontSize},
|
||||||
color_scheme = "myCoolTheme",
|
color_scheme = "myCoolTheme",
|
||||||
hide_tab_bar_if_only_one_tab = true,
|
hide_tab_bar_if_only_one_tab = true,
|
||||||
|
-- https://github.com/wez/wezterm/issues/4483
|
||||||
|
enable_wayland = false,
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue