aboutsummaryrefslogtreecommitdiff
path: root/home/profiles/gui/default.nix
diff options
context:
space:
mode:
authorsefidel <contact@sefidel.net>2023-07-25 18:58:27 +0900
committersefidel <contact@sefidel.net>2023-07-25 18:58:27 +0900
commitec647eecd447bfbbd8f7b6f2fe5bb65ebf9abf16 (patch)
treee36c9348852f95d95040ed61f7ee7a2b4501ef89 /home/profiles/gui/default.nix
parent6ccd70ae9afee4f9c98135502abca8f9d0f2b58d (diff)
downloadnixrc-ec647eecd447bfbbd8f7b6f2fe5bb65ebf9abf16.zip
feat(home): split gui from base
Diffstat (limited to 'home/profiles/gui/default.nix')
-rw-r--r--home/profiles/gui/default.nix142
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";
+ };
+ };
+ };
+}