about summary refs log tree commit diff
path: root/home/modules/profiles/base/default.nix
blob: 20ddb77efa18c641d6ebbdc90970b7f683962e3c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
{ config, lib, pkgs, self, ... }:
let
  cfg = config.profiles.base;

  inherit (self.packages.x86_64-linux) neovim iosevka-pure-bin sf-mono-liga-bin wallpapers;
in
  {
    options.profiles.base.enable = lib.mkEnableOption
      "The base profile, should be always enabled";

    config = lib.mkIf cfg.enable {
      home.sessionVariables = rec {
        EDITOR = "nvim";
        VISUAL = "nvim";
        GIT_EDITOR = EDITOR;
      };

      gtk.enable = true;
      gtk.iconTheme.package = pkgs.papirus-icon-theme;
      gtk.iconTheme.name = "Papirus-Dark";

      home.keyboard.layout = "us";
      home.packages = [
        pkgs.hydra-check
        neovim

        # Fonts
        iosevka-pure-bin
        sf-mono-liga-bin
	pkgs.dina-font
	pkgs.sarasa-gothic
	pkgs.scientifica
        pkgs.jetbrains-mono
        pkgs.twemoji-color-font
        pkgs.symbola
        pkgs.emacs-all-the-icons-fonts
        (pkgs.nerdfonts.override { fonts = [ "Iosevka" "JetBrainsMono" ]; })
      ];


      wayland.windowManager.sway = {
        enable = true;

        config = {
          bars = [{ command = "${pkgs.waybar}/bin/waybar"; }];
          keybindings = { };
        };

        extraConfig = import ./config/sway.nix { inherit pkgs wallpapers; };
      };

      programs = {
        bat.enable = true;
        direnv.enable = true;
        direnv.nix-direnv.enable = true;
        exa.enable = true;
        exa.enableAliases = true;
        home-manager.enable = true;
        htop.enable = true;

        foot = {
          enable = true;
          server.enable = true;
          settings = import ./config/foot.nix;
        };

        waybar = {
          enable = config.wayland.windowManager.sway.enable;

          settings = [ (import ./config/waybar-settings.nix) ];

          style = import ./config/waybar-style.nix;
        };

        zsh = {
          enable = true;

          enableCompletion = true;
          enableAutosuggestions = true;

          autocd = true;

          dotDir = ".config/zsh";

          plugins = [
            {
              name = "powerlevel10k";
              src = pkgs.zsh-powerlevel10k;
              file = "share/zsh-powerlevel10k/powerlevel10k.zsh-theme";
            }

            {
              name = "powerlevel10k-config";
              src = lib.cleanSource ./p10k-config;
              file = "p10k.zsh";
            }

            {
              name = "zsh-syntax-highlighting";
              src = pkgs.fetchFromGitHub {
                owner = "zsh-users";
                repo = "zsh-syntax-highlighting";
                rev = "0.7.1";
                sha256 = "03r6hpb5fy4yaakqm3lbf4xcvd408r44jgpv4lnzl9asp4sb9qc0";
              };
            }
          ];

          shellAliases = config.programs.zshell.aliases;
        };
      };

      services.wlsunset = {
        enable = true;
        latitude = "36.5";
        longitude = "127.2";
      };

      nixpkgs.allowedUnfree = [ "symbola" ];
    };
  }