devos/users/profiles/sway/desktop.nix

103 lines
2.8 KiB
Nix
Raw Normal View History

2022-02-22 22:01:49 +01:00
{ pkgs, lib, ... }@inputs:
2021-07-15 18:51:27 +02:00
let
2021-08-31 23:21:03 +02:00
rofi = pkgs.rofi.override { plugins = [ pkgs.rofi-emoji ]; };
2022-02-22 22:01:49 +01:00
scripts = ((import ./scripts.nix) inputs);
2021-07-15 18:51:27 +02:00
in
2021-04-15 01:06:10 +02:00
{
imports = [ ./swayidle.nix ];
2021-07-15 18:51:27 +02:00
wayland.windowManager.sway = rec {
2021-04-15 01:06:10 +02:00
enable = true;
config = {
2021-07-15 18:51:27 +02:00
terminal = "${pkgs.alacritty}/bin/alacritty";
menu = "${rofi}/bin/rofi -show combi";
2021-04-15 01:06:10 +02:00
modifier = "Mod4";
input = {
"*" = {
xkb_layout = "pl";
accel_profile = "flat";
2021-06-06 12:22:12 +02:00
dwt = "disabled";
2021-08-31 23:21:03 +02:00
pointer_accel = "0.0";
2021-04-15 01:06:10 +02:00
};
};
bars = [{
id = "top";
statusCommand = "${pkgs.i3status-rust}/bin/i3status-rs";
position = "top";
trayOutput = "*";
}];
floating.criteria = [{ title = "Steam - Update News"; }];
2021-08-31 23:20:46 +02:00
startup = [
2021-08-31 23:21:03 +02:00
# Copied from https://git.sr.ht/~sumner/home-manager-config/tree/master/item/modules/window-manager/wayland.nix#L64
# See https://github.com/nix-community/home-manager/issues/2028
# Make all the pinentry stuff work
# See: https://github.com/NixOS/nixpkgs/issues/119445#issuecomment-820507505
# and: https://github.com/NixOS/nixpkgs/issues/57602#issuecomment-820512097
{ command = "dbus-update-activation-environment WAYLAND_DISPLAY"; }
2021-08-31 23:20:46 +02:00
];
keybindings = lib.mkOptionDefault {
"XF86PowerOff" = "exec systemctl suspend";
};
2021-04-15 01:06:10 +02:00
};
wrapperFeatures.gtk = true;
systemdIntegration = true;
2021-05-07 12:06:29 +02:00
extraSessionCommands = ''
#export SDL_VIDEODRIVER=wayland
2021-05-07 12:06:29 +02:00
# needs qt5.qtwayland in systemPackages
export QT_QPA_PLATFORM=wayland
export QT_WAYLAND_DISABLE_WINDOWDECORATION="1"
# Fix for some Java AWT applications (e.g. Android Studio),
# use this if they aren't displayed properly:
export _JAVA_AWT_WM_NONREPARENTING=1
'';
2021-04-15 01:06:10 +02:00
};
2021-08-31 23:21:03 +02:00
2021-07-15 18:51:27 +02:00
programs.rofi = {
2021-08-31 23:21:03 +02:00
enable = true;
package = rofi;
theme = "purple";
extraConfig = {
modi = "combi";
combi-modi = "drun,emoji";
};
2021-07-15 18:51:27 +02:00
};
2021-04-15 01:06:10 +02:00
2021-08-15 00:45:20 +02:00
programs.mako = {
2021-08-31 23:21:03 +02:00
enable = true;
defaultTimeout = 2000;
2021-08-15 00:45:20 +02:00
};
2021-04-15 01:06:10 +02:00
programs.i3status-rust = {
enable = true;
bars.bar_0 = {
blocks = [
{
block = "disk_space";
path = "/";
info_type = "available";
2021-05-30 19:48:55 +02:00
unit = "GB";
2021-04-15 01:06:10 +02:00
interval = 60;
warning = 20.0;
alert = 10.0;
}
{
block = "memory";
display_type = "memory";
2021-05-30 19:48:55 +02:00
format_mem = "{mem_used}/{mem_total}({mem_used_percents})";
format_swap = "{swap_used}/{swap_total}({swap_used_percents})";
2021-04-15 01:06:10 +02:00
}
{
block = "cpu";
interval = 1;
}
{ block = "sound"; }
{
block = "time";
interval = 60;
format = "%a %d/%m %R";
}
];
};
};
2022-02-22 22:01:49 +01:00
home.packages = [ scripts.lockscreen ];
2021-04-15 01:06:10 +02:00
}