{ lib, config, pkgs, ... }: with lib; let cfg = config.modules.desktop.sway; in { options.modules.desktop.sway = { enable = mkEnableOption "enable Sway Windows Manager"; kanshi = mkOption { type = types.bool; default = false; description = "configure laptop mode"; }; }; imports = [ ./includes/fuzzel.nix ./includes/kanshi.nix ./includes/mako.nix ./includes/sway.nix ./includes/swayidle.nix ./includes/swaylock.nix ./includes/waybar.nix ]; config = mkIf cfg.enable { programs.fuzzel.enable = true; home.packages = with pkgs; [ dejavu_fonts emojione font-awesome grim lato liberation_ttf libertine libnotify (nerdfonts.override { fonts = [ "FiraCode" ]; }) noto-fonts-emoji noto-fonts-cjk slurp wl-clipboard xdg-utils ]; programs.zsh.loginExtra = '' if [ "$(tty)" = "/dev/tty1" ]; then exec sway &> /dev/null fi ''; gtk = { enable = true; theme = { name = "Arc-Dark"; package = pkgs.arc-theme; }; iconTheme = { name = "Papirus Dark"; package = pkgs.papirus-icon-theme; }; font = { name = "Deja Vu Sans"; package = "${pkgs.dejavu_fonts}"; size = 10; }; }; home.pointerCursor = { name = "Adwaita"; package = pkgs.gnome.adwaita-icon-theme; size = 24; x11 = { enable = true; defaultCursor = "Adwaita"; }; }; qt = { enable = true; platformTheme = "gnome"; style.name = "adwaita-dark"; }; xdg = { enable = true; mimeApps.enable = true; userDirs = { enable = true; createDirectories = true; documents = "${config.home.homeDirectory}/documents"; download = "${config.home.homeDirectory}/downloads"; music = "${config.home.homeDirectory}/medias/musics"; pictures = "${config.home.homeDirectory}/medias/images"; videos = "${config.home.homeDirectory}/medias/videos"; templates = "${config.home.homeDirectory}/tmp"; desktop = "${config.home.homeDirectory}/documents"; publicShare = "${config.home.homeDirectory}/tmp/public"; }; }; }; }