mirror of
https://github.com/traxys/Nixfiles.git
synced 2026-02-14 11:20:19 +01:00
118 lines
2.9 KiB
Nix
118 lines
2.9 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}:
|
|
with builtins;
|
|
with lib;
|
|
let
|
|
cfg = config.wm;
|
|
common = import ./i3like-utils.nix { inherit config; };
|
|
|
|
startupNotifications =
|
|
if cfg.notifications.enable then
|
|
[
|
|
{
|
|
command = "${config.services.dunst.package}/bin/dunst";
|
|
notification = false;
|
|
always = true;
|
|
}
|
|
]
|
|
else
|
|
[ ];
|
|
|
|
wallpaperSet =
|
|
if cfg.wallpaper != null then
|
|
[
|
|
{
|
|
command = "${pkgs.feh}/bin/feh --bg-scale ${cfg.wallpaper}";
|
|
always = true;
|
|
notification = false;
|
|
}
|
|
]
|
|
else
|
|
[ ];
|
|
|
|
startup = startupNotifications ++ wallpaperSet ++ cfg.startup;
|
|
in
|
|
{
|
|
config = mkIf (cfg.enable && cfg.kind == "i3") {
|
|
programs = {
|
|
i3status-rust = {
|
|
enable = true;
|
|
bars.bottom = {
|
|
blocks = [
|
|
{
|
|
block = "disk_space";
|
|
path = "/";
|
|
info_type = "used";
|
|
unit = "GB";
|
|
alert = 90;
|
|
warning = 80;
|
|
format = ":{used}/{total}";
|
|
}
|
|
{
|
|
block = "disk_space";
|
|
path = "/home";
|
|
info_type = "used";
|
|
unit = "GB";
|
|
alert = 90;
|
|
warning = 80;
|
|
format = ":{used}/{total}";
|
|
}
|
|
{
|
|
block = "load";
|
|
format = ":{1m}";
|
|
}
|
|
{
|
|
block = "sound";
|
|
driver = "pulseaudio";
|
|
}
|
|
{
|
|
block = "music";
|
|
player = "spotify";
|
|
format = "{combo}";
|
|
}
|
|
{ block = "time"; }
|
|
];
|
|
};
|
|
};
|
|
};
|
|
|
|
services.dunst = mkIf cfg.notifications.enable {
|
|
enable = true;
|
|
settings = {
|
|
global = {
|
|
timeout = "${toString cfg.notifications.defaultTimeout}ms";
|
|
inherit (cfg.notifications) font;
|
|
};
|
|
};
|
|
};
|
|
|
|
wm.printScreen.command = mkDefault "${pkgs.maim}/bin/maim -s | ${pkgs.xclip}/bin/xclip -selection clipboard -t image/png";
|
|
wm.exit.command = mkDefault "\"i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'\"";
|
|
|
|
xsession = {
|
|
enable = true;
|
|
windowManager.i3 = {
|
|
enable = true;
|
|
config = {
|
|
inherit startup;
|
|
inherit (common) keybindings;
|
|
inherit (common) workspaceOutputAssign;
|
|
inherit (common) assigns;
|
|
fonts = common.mkFont cfg.font;
|
|
inherit (cfg) modifier;
|
|
bars = [
|
|
{
|
|
fonts = common.mkFont cfg.bar.font;
|
|
statusCommand = "${config.programs.i3status-rust.package}/bin/i3status-rs ${config.home.homeDirectory}/.config/i3status-rust/config-bottom.toml";
|
|
}
|
|
];
|
|
};
|
|
};
|
|
scriptPath = ".hm-xsession";
|
|
};
|
|
};
|
|
}
|