diff options
author | sefidel <contact@sefidel.net> | 2023-07-25 18:58:27 +0900 |
---|---|---|
committer | sefidel <contact@sefidel.net> | 2023-07-25 18:58:27 +0900 |
commit | ec647eecd447bfbbd8f7b6f2fe5bb65ebf9abf16 (patch) | |
tree | e36c9348852f95d95040ed61f7ee7a2b4501ef89 /home/profiles/gui/default.nix | |
parent | 6ccd70ae9afee4f9c98135502abca8f9d0f2b58d (diff) | |
download | nixrc-ec647eecd447bfbbd8f7b6f2fe5bb65ebf9abf16.tar.gz nixrc-ec647eecd447bfbbd8f7b6f2fe5bb65ebf9abf16.zip |
feat(home): split gui from base
Diffstat (limited to 'home/profiles/gui/default.nix')
-rw-r--r-- | home/profiles/gui/default.nix | 142 |
1 files changed, 142 insertions, 0 deletions
diff --git a/home/profiles/gui/default.nix b/home/profiles/gui/default.nix new file mode 100644 index 0000000..ac7b55b --- /dev/null +++ b/home/profiles/gui/default.nix @@ -0,0 +1,142 @@ +{ 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-effects + 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 + ]; + + 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 pkgs neotheme; }; + }; + + 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-effects}/bin/swaylock -fFc ${neotheme.colors.background} --indicator --grace 2 --fade-in 0.2"; } + { event = "lock"; command = "${pkgs.swaylock-effects}/bin/swaylock -fFc ${neotheme.colors.background} --indicator --grace 2 --fade-in 0.2"; } + ]; + timeouts = [ + { timeout = 270; command = "${pkgs.libnotify}/bin/notify-send -t 30000 'Locking screen in 30 seconds'"; } + { timeout = 300; command = "${pkgs.swaylock-effects}/bin/swaylock -fFc ${neotheme.colors.background} --indicator --grace 2 --fade-in 0.2"; } + { + timeout = 600; + command = "${pkgs.sway}/bin/swaymsg 'output * dpms off'"; + resumeCommand = "${pkgs.sway}/bin/swaymsg 'output * dpms on'"; + } + { + timeout = 900; + command = "${pkgs.systemd}/bin/systemctl suspend"; + } + ]; + }; + + wlsunset = { + enable = true; + latitude = "36.5"; + longitude = "127.2"; + }; + }; + }; +} |