pub-solar-os/profiles/graphical/sway/default.nix

95 lines
2.2 KiB
Nix
Raw Normal View History

2019-12-16 07:54:46 +00:00
{ lib, config, options, pkgs, ... }:
let
2020-01-04 05:06:31 +00:00
inherit (builtins) readFile;
inherit (config.hardware) pulseaudio;
2020-07-31 04:17:28 +00:00
in
{
2020-01-04 05:06:31 +00:00
imports = [ ../qutebrowser ];
sound.enable = true;
2019-12-16 07:54:46 +00:00
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
'';
2020-01-04 05:06:31 +00:00
extraPackages = with pkgs;
options.programs.sway.extraPackages.default ++ [
dmenu
networkmanager_dmenu
qt5.qtwayland
alacritty
volnoti
wl-clipboard
(waybar.override { pulseSupport = pulseaudio.enable; })
2020-01-30 17:12:24 +00:00
grim
slurp
2020-01-04 05:06:31 +00:00
];
2019-12-16 07:54:46 +00:00
};
environment.etc = {
"sway/config".text =
let volnoti = import ../misc/volnoti.nix { inherit pkgs; };
2020-07-31 04:17:28 +00:00
in
''
set $volume ${volnoti}
set $mixer "${pkgs.alsaUtils}/bin/amixer -q set Master"
2019-12-16 07:54:46 +00:00
# set background
output * bg ${pkgs.adapta-backgrounds}/share/backgrounds/adapta/tri-fadeno.jpg fill
2019-12-16 07:54:46 +00:00
${readFile ./config}
'';
2019-12-16 07:54:46 +00:00
"xdg/waybar".source = ./waybar;
};
programs.tmux.extraConfig = lib.mkBefore ''
set -g @override_copy_command 'wl-copy'
'';
2019-12-16 07:54:46 +00:00
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" ];
2020-01-04 05:06:31 +00:00
script = "${pkgs.volnoti}/bin/volnoti -n";
2019-12-16 07:54:46 +00:00
serviceConfig = {
Restart = "always";
RestartSec = 3;
};
};
}