{ config, lib, inputs, pkgs, self, ... }: let cfg = config.profiles.gui; neotheme = config.neotheme; in { imports = [ ../../modules/misc/neotheme ]; options.profiles.gui.enable = lib.mkEnableOption "The gui profile, sets up sway and related applications."; config = lib.mkIf cfg.enable { gtk.enable = true; gtk.iconTheme.package = pkgs.papirus-icon-theme; gtk.iconTheme.name = "Papirus-Dark"; gtk.theme.package = (pkgs.orchis-theme.override { tweaks = [ "primary" "compact" ]; }); gtk.theme.name = "Orchis-dark-compact"; gtk.font.name = "Dina 10"; home.file.".icons/default".source = "${pkgs.vanilla-dmz}/share/icons/Vanilla-DMZ-AA"; neotheme = { name = "Softjelly"; identifier = "softjelly"; colors = { background = "151515"; foreground = "cbc0ab"; alt0 = "404040"; alt1 = "606060"; color0 = "3c3c3c"; color1 = "cf6a4c"; color2 = "99ad6a"; color3 = "dfa358"; color4 = "8197bf"; color5 = "b3a3ff"; color6 = "8fbfdc"; color7 = "cbc0ab"; bright0 = "4c4c4c"; bright1 = "d98870"; bright2 = "adbd88"; bright3 = "e5b579"; bright4 = "9aaccc"; bright5 = "c2b5ff"; bright6 = "a5cce3"; bright7 = "d5cdbc"; }; }; home.packages = [ # Sway pkgs.autotiling pkgs.swaylock pkgs.swaybg pkgs.wayland-utils pkgs.wl-clipboard pkgs.grim pkgs.slurp pkgs.sway-contrib.grimshot pkgs.waybar pkgs.bemenu pkgs.qt5.qtwayland pkgs.xdg-utils # Fix gpg not recognizing foot terminfo pkgs.foot.terminfo ]; home.sessionVariables = { _JAVA_AWT_WM_NONREPARENTING = "1"; # Fix 'grey screen' issue on java apps }; wayland.windowManager.sway = { enable = true; wrapperFeatures = { base = true; gtk = true; }; config = { bars = [{ command = "${pkgs.waybar}/bin/waybar"; }]; keybindings = { }; }; extraSessionCommands = '' export XDG_CURRENT_DESKTOP=sway; ''; extraConfig = import ./config/sway.nix { inherit config pkgs neotheme; }; }; i18n.inputMethod.enabled = "fcitx5"; i18n.inputMethod.fcitx5.addons = with pkgs; [ fcitx5-gtk fcitx5-mozc ]; programs = { foot = { enable = true; settings = import ./config/foot.nix { inherit neotheme; }; }; waybar = { enable = config.wayland.windowManager.sway.enable; settings = [ (import ./config/waybar/settings.nix { inherit neotheme; }) ]; style = import ./config/waybar/style.nix { inherit neotheme; }; }; }; services = { dunst = { enable = true; settings = import ./config/dunst.nix { inherit neotheme; }; }; swayidle = { enable = true; events = [ { event = "before-sleep"; command = "${pkgs.swaylock}/bin/swaylock -fFc ${neotheme.colors.background} --indicator --grace 2"; } { event = "lock"; command = "${pkgs.swaylock}/bin/swaylock -fFc ${neotheme.colors.background} --indicator --grace 2"; } ]; timeouts = [ # 4m30s { timeout = 270; command = "${pkgs.libnotify}/bin/notify-send -t 30000 'Locking screen in 30 seconds'"; } # 5m { timeout = 300; command = "${pkgs.swaylock}/bin/swaylock -fFc ${neotheme.colors.background} --indicator --grace 2"; } # 10m { timeout = 600; command = "${pkgs.sway}/bin/swaymsg 'output * dpms off'"; resumeCommand = "${pkgs.sway}/bin/swaymsg 'output * dpms on'"; } # 15m { timeout = 900; command = "${pkgs.systemd}/bin/systemctl suspend"; } ]; }; wlsunset = { enable = true; latitude = "36.5"; longitude = "127.2"; }; }; }; }