summaryrefslogtreecommitdiffstats
path: root/home-configuration/default.nix
blob: caf2f76e4ba8bd3576fa81ffd431da26c26de26b (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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
{ inputs, config, pkgs, ... }:
let
  configs = {
    niri = "niri";
    alacritty = "alacritty";
    rofi = "rofi";
    nvim = "nvim";
    zathura = "zathura";
    quickshell = "quickshell";
  };
in
{
  imports = [
    #./managed/waybar
    ./managed/discord
    ./managed/git
    ./managed/prismlauncher
    ./managed/obs-studio
    ./managed/xserver
    ./managed/fetchit
    ./managed/mindustry
  ];

  home.username = "coast";
  home.homeDirectory = "/home/coast";
  home.stateVersion = "26.05";
  home.enableNixpkgsReleaseCheck = false;

  home.sessionVariables = {
    ADW_DEBUG_COLOR_SCHEME = "prefer-dark";
    ADW_DISABLE_PORTAL = "1";
  };

  xdg.configFile = builtins.mapAttrs
    (key: subpath: {
      source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/Configuration/home-configuration/config/${subpath}";
    })
    configs;

  dconf.settings = {
    "org/gnome/desktop/interface" = {
      color-scheme = "prefer-dark";
      gtk-theme = "Adwaita-dark";
    };
    "org/virt-manager/virt-manager/connections" = {
      autoconnect = [ "qemu:///system" ];
      uris = [ "qemu:///system" ];
    };
  };

  gtk = {
    enable = true;
    theme = {
      name = "Adwaita-dark";
      package = pkgs.gnome-themes-extra;
    };
    gtk3.extraConfig = {
      gtk-application-prefer-dark-theme = 1;
    };
    gtk4.extraConfig = {
      gtk-application-prefer-dark-theme = 1;
    };
  };

  systemd.user.sessionVariables = config.home.sessionVariables;

  xdg.portal = {
    enable = true;
    extraPortals = [ pkgs.xdg-desktop-portal-gnome pkgs.xdg-desktop-portal-gtk ];
    config = {
      common = {
        default = [ "gnome" "gtk" ];
      };
    };
  };

  qt = {
    enable = true;
    platformTheme.name = "kvantum";
    style.name = "kvantum";
  };

  home.packages = [
    pkgs.gruvbox-kvantum
    pkgs.catppuccin-kvantum
    pkgs.xdg-desktop-portal-gnome
    pkgs.xdg-desktop-portal-gtk
    pkgs.glib
    pkgs.python3
    pkgs.starship
    pkgs.libarchive
    pkgs.fastfetch
    pkgs.alacritty
    pkgs.xwayland-satellite
    pkgs.telegram-desktop
    pkgs.mpv
    pkgs.jdk25
    pkgs.nil
    pkgs.nixpkgs-fmt
    pkgs.qbittorrent
    pkgs.nautilus
    pkgs.xray
    pkgs.git
    pkgs.gnumake
    pkgs.gcc
    pkgs.clang-tools
    pkgs.haskell-language-server
    pkgs.imagemagick
    pkgs.xclip
    pkgs.picom
    pkgs.dnsutils
    pkgs.python3Packages.pip
    pkgs.cmake
    pkgs.libtool
    pkgs.brightnessctl
    pkgs.pkg-config
    pkgs.lua
    pkgs.lua-language-server
    pkgs.rust-analyzer
    pkgs.rustc
    pkgs.cargo
    pkgs.rustfmt
    pkgs.clippy
    pkgs.ffmpeg
    pkgs.mumble
    pkgs.eog
    pkgs.zathura
    pkgs.gimp3
    pkgs.gamescope
    pkgs.xkill
    pkgs.trayer
    pkgs.libnotify
    pkgs.kdePackages.kdenlive
    pkgs.obs-cmd
    pkgs.feishin
    pkgs.alsa-utils
    pkgs.gnome-themes-extra
    pkgs.sxhkd
    pkgs.hsetroot
    pkgs.pamixer
    pkgs.qemu
    pkgs.OVMF.fd
    pkgs.unzip
    pkgs.zig
    pkgs.btop
    pkgs.playerctl
    inputs.qml-niri.packages.${pkgs.system}.quickshell
  ];

  services.polkit-gnome.enable = true;
  services.swayidle.enable = true;

  systemd.user.services.polkit-gnome-authentication-agent-1 = {
    Unit = {
      Description = "polkit-gnome-authentication-agent-1";
      After = [ "graphical-session.target" ];
      Wants = [ "graphical-session.target" ];
      PartOf = [ "graphical-session.target" ];
    };
    Service = {
      Type = "simple";
      ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
      Restart = "on-failure";
      RestartSec = 1;
      TimeoutStopSec = 10;
    };
    Install = {
      WantedBy = [ "graphical-session.target" ];
    };
  };
}