{ 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."; font = { name = lib.mkOption { type = lib.types.str; default = "Dina"; description = "Name of the primary font"; }; size = lib.mkOption { type = lib.types.number; default = 10; description = "Size for the primary font"; }; pixelSize = lib.mkOption { type = lib.types.number; default = 13; description = "Pixelsize(px) for the primary font"; }; }; }; 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 = "${cfg.font.name} ${toString cfg.font.size}"; 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.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 = { NIXOS_OZONE_WL = 1; # NOTE: might cause problems with old electron _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 = '' . "${config.home.profileDirectory}/etc/profile.d/hm-session-vars.sh" ''; 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 config neotheme; }; }; waybar = { enable = config.wayland.windowManager.sway.enable; settings = [ (import ./config/waybar/settings.nix { inherit neotheme; }) ]; style = import ./config/waybar/style.nix { inherit config neotheme; }; }; }; services = { dunst = { enable = true; settings = import ./config/dunst.nix { inherit config neotheme; }; }; kanshi = { enable = true; profiles = { haruka-standalone = { outputs = [ { criteria = "AU Optronics 0xD291 Unknown"; scale = 1.25; } ]; }; }; }; swayidle = let # TODO: remove when >1.6.11 # Fixes frequent RSOD swaylock-effects = pkgs.swaylock-effects.overrideAttrs { src = pkgs.fetchFromGitHub { owner = "jirutka"; repo = "swaylock-effects"; rev = "7c5681ce96587ce3090c6698501faeccdfdc157d"; sha256 = "sha256-09Kq90wIIF9lPjiY2anf9MSgi/EqeXKXW1mFmhxA/aM="; }; }; lockCommand = ''${swaylock-effects}/bin/swaylock \ --daemonize \ --screenshots \ --color ${neotheme.colors.background} \ --clock \ --indicator \ --show-failed-attempts \ --effect-blur 7x5 \ --effect-vignette 0.5:0.5 \ --fade-in 0.2''; in { enable = true; events = [ { event = "before-sleep"; command = lockCommand; } { event = "lock"; command = lockCommand; } ]; timeouts = [ # 4m30s { timeout = 270; command = "${pkgs.libnotify}/bin/notify-send -t 30000 'Locking screen in 30 seconds'"; } # 5m { timeout = 300; command = lockCommand; } # 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"; }; }; }; }