pub-solar-os/profiles/graphical/sway/default.nix
2020-06-09 10:38:34 -06:00

93 lines
2.2 KiB
Nix

{ lib, config, options, pkgs, ... }:
let
inherit (builtins) readFile;
inherit (config.hardware) pulseaudio;
in {
imports = [ ../qutebrowser ];
sound.enable = true;
programs.sway = {
enable = true;
extraSessionCommands = ''
export SDL_VIDEODRIVER=wayland
# 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
'';
extraPackages = with pkgs;
options.programs.sway.extraPackages.default ++ [
dmenu
networkmanager_dmenu
qt5.qtwayland
alacritty
volnoti
wl-clipboard
(waybar.override { pulseSupport = pulseaudio.enable; })
grim
slurp
];
};
environment.etc = {
"sway/config".text = let
volnoti =
pkgs.writeScript "volnoti.sh" (import ./volnoti.nix { inherit pkgs; });
in ''
set $volume ${volnoti}
# set background
output * bg ${pkgs.adapta-backgrounds}/share/backgrounds/adapta/tri-fadeno.jpg fill
${readFile ./config}
'';
"xdg/waybar".source = ./waybar;
};
programs.tmux.extraConfig = lib.mkBefore ''
set -g @override_copy_command 'wl-copy'
'';
services.redshift = {
enable = true;
temperature.night = 3200;
};
location = {
latitude = 38.833881;
longitude = -104.821365;
};
systemd.user.targets.sway-session = {
enable = true;
description = "sway compositor session";
documentation = [ "man:systemd.special(7)" ];
bindsTo = [ "graphical-session.target" ];
wants = [ "graphical-session-pre.target" ];
after = [ "graphical-session-pre.target" ];
requiredBy = [ "graphical-session.target" "graphical-session-pre.target" ];
};
systemd.user.services.volnoti = {
enable = true;
description = "volnoti volume notification";
documentation = [ "volnoti --help" ];
wantedBy = [ "sway-session.target" ];
script = "${pkgs.volnoti}/bin/volnoti -n";
serviceConfig = {
Restart = "always";
RestartSec = 3;
};
};
}