108 lines
3.2 KiB
Nix
108 lines
3.2 KiB
Nix
|
{ config, pkgs, lib, ... }:
|
||
|
with lib;
|
||
|
let
|
||
|
cfg = config.local.gui.i3;
|
||
|
in
|
||
|
{
|
||
|
options.local.gui.i3.enable = mkEnableOption "i3 window manager";
|
||
|
config = mkIf cfg.enable {
|
||
|
xsession.windowManager.i3 = {
|
||
|
enable = true;
|
||
|
package = pkgs.i3-gaps;
|
||
|
|
||
|
config =
|
||
|
let
|
||
|
mod = "Mod4";
|
||
|
in
|
||
|
{
|
||
|
modifier = mod;
|
||
|
# revisar luego si config.bars tiene un default danino
|
||
|
|
||
|
fonts = {
|
||
|
names = [ "JetBrains Mono" ];
|
||
|
style = "Regular";
|
||
|
size = 8.0;
|
||
|
};
|
||
|
|
||
|
gaps = {
|
||
|
inner = 10;
|
||
|
outer = -10;
|
||
|
};
|
||
|
|
||
|
window = {
|
||
|
hideEdgeBorders = "both";
|
||
|
};
|
||
|
|
||
|
colors = {
|
||
|
focused = {
|
||
|
background = "#222222";
|
||
|
border = "#4c7899";
|
||
|
childBorder = "#222222";
|
||
|
indicator = "#292d2e";
|
||
|
text = "#888888";
|
||
|
};
|
||
|
};
|
||
|
|
||
|
# mkOptionDefault hace que se ponga la config por default
|
||
|
# y se sobreescriba las cosas que pongo acA
|
||
|
# NO QUITARLO. ver man home-configuration.nix
|
||
|
keybindings = mkOptionDefault {
|
||
|
"${mod}+Return" = "exec ${pkgs.kitty}/bin/kitty ${pkgs.tmux}/bin/tmux";
|
||
|
"${mod}+Tab" = "focus right";
|
||
|
"${mod}+Shift+Tab" = "focus left";
|
||
|
"${mod}+Shift+s" = "exec ${pkgs.maim}/bin/maim -s -u | ${pkgs.xclip}/bin/xclip -selection clipboard -t image/png -i";
|
||
|
"${mod}+Shift+w" = "move workspace to output right";
|
||
|
"${mod}+l" = "exec ${pkgs.betterlockscreen}/bin/betterlockscreen -l";
|
||
|
};
|
||
|
|
||
|
startup = [
|
||
|
{
|
||
|
command = "${pkgs.xss-lock}/bin/xss-lock --transfer-sleep-lock -- ${pkgs.i3lock}/bin/i3lock --nofork";
|
||
|
notification = false;
|
||
|
}
|
||
|
{
|
||
|
command = "${pkgs.networkmanagerapplet}/bin/nm-applet";
|
||
|
notification = false;
|
||
|
}
|
||
|
{
|
||
|
command = "${pkgs.feh}/bin/feh --bg-fill ${config.home.homeDirectory}/Pictures/wallpapers/jupiter.png";
|
||
|
notification = false;
|
||
|
always = true;
|
||
|
}
|
||
|
{
|
||
|
command = "${pkgs.i3-gaps}/bin/i3-msg 'workspace 1; exec ${pkgs.firefox}/bin/firefox'";
|
||
|
}
|
||
|
{
|
||
|
command = "${pkgs.i3-gaps}/bin/i3-msg 'workspace 2; exec ${pkgs.tdesktop}/bin/telegram-desktop'";
|
||
|
}
|
||
|
{
|
||
|
command = "${pkgs.i3-gaps}/bin/i3-msg 'workspace 2; exec ${pkgs.element-desktop}/bin/element-desktop'";
|
||
|
}
|
||
|
{
|
||
|
command = "${pkgs.systemd}/bin/systemctl --user restart polybar.service";
|
||
|
notification = false;
|
||
|
always = true;
|
||
|
}
|
||
|
{
|
||
|
command = "${pkgs.autorandr}/bin/autorandr -c";
|
||
|
notification = false;
|
||
|
always = true;
|
||
|
}
|
||
|
];
|
||
|
|
||
|
workspaceOutputAssign = [
|
||
|
{
|
||
|
output = config.local.display."0";
|
||
|
workspace = "1";
|
||
|
}
|
||
|
] ++ optional (config.local.display."1" != null) {
|
||
|
output = config.local.display."1";
|
||
|
workspace = "10";
|
||
|
};
|
||
|
|
||
|
bars = [ ];
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
}
|