users/ryan/linux.nix

main · 3.0 KB · 126 lines raw

1 { pkgs, lib, inputs, ... }:
2
3 {
4 imports = [
5 ];
6
7 home.username = "ryan";
8 home.homeDirectory = "/home/ryan";
9
10 nixpkgs.config.allowUnfree = true;
11
12 fonts.fontconfig.enable = true;
13 fonts.fontconfig.defaultFonts = {
14 monospace = [ "DejaVu Sans Mono" ];
15 sansSerif = [ "Noto Sans" "DejaVu Sans" ];
16 serif = [ "Noto Serif" "DejaVu Serif" ];
17 };
18
19 gtk = {
20 enable = true;
21 font = {
22 name = "Noto Sans";
23 size = 10;
24 };
25 theme = {
26 name = "Adwaita";
27 package = pkgs.gnome-themes-extra;
28 };
29 iconTheme = {
30 name = "Adwaita";
31 package = pkgs.adwaita-icon-theme;
32 };
33 colorScheme = "dark";
34 };
35
36 qt = {
37 enable = true;
38 platformTheme.name = "gtk3";
39 };
40
41 home.pointerCursor = {
42 enable = true;
43 package = pkgs.bibata-cursors;
44 name = "Bibata-Modern-Classic";
45 size = 24;
46 gtk.enable = true;
47 x11.enable = true;
48 };
49
50 services.gpg-agent.pinentry.package = pkgs.pinentry-qt;
51
52 wayland.windowManager.hyprland = {
53 enable = true;
54 package = pkgs.hyprland;
55 configType = "hyprlang";
56 portalPackage = pkgs.xdg-desktop-portal-hyprland;
57 extraConfig = builtins.readFile ./linux/hypr/hyprland.conf;
58 };
59
60 xdg.configFile = {
61 "hypr/monitors.conf".source = ./linux/hypr/monitors.conf;
62 "hypr/kanshi.conf".source = ./linux/hypr/kanshi.conf;
63 "hypr/pyprland.toml".source = ./linux/hypr/pyprland.toml;
64 "hypr/hypridle.conf".source = ./linux/hypr/hypridle.conf;
65 "hypr/hyprlock.conf".source = ./linux/hypr/hyprlock.conf;
66 "hypr/scripts" = { source = ./linux/hypr/scripts; recursive = true; };
67 "hypr/family_guy.mp4".source = ./linux/hypr/family_guy.mp4;
68 "hypr/subwaysurfer.webm".source = ./linux/hypr/subwaysurfer.webm;
69 "wallpapers".source = ../../files/Wallpapers;
70
71 "waybar" = { source = ./linux/waybar; recursive = true; };
72 "alacritty" = { source = ./linux/alacritty; recursive = true; };
73 "foot" = { source = ./linux/foot; recursive = true; };
74 "wpaperd" = { source = ./linux/wpaperd; recursive = true; };
75 "mpv" = { source = ./linux/mpv; recursive = true; };
76
77 "pulse/client.conf".source = ./linux/pulseaudio/client.conf;
78 };
79
80 home.file = {
81 # Files that need to be in ~ go here
82 };
83
84 home.packages = with pkgs; [
85 gcc
86 pkg-config
87 wttrbar
88 wl-clip-persist
89 waypaper
90 xwayland
91 xdg-desktop-portal
92 xdg-desktop-portal-gtk
93 mpv
94 imv
95 libva
96 libvdpau
97 hypridle
98 hyprpicker
99 wpaperd
100 wl-mirror
101 pyprland
102 satty
103 sops
104 restic
105 bluetui
106 supercell-wx
107 chromium
108 foot
109 kdePackages.kdenlive
110
111 waybar
112 fuzzel
113
114 noto-fonts
115 dejavu_fonts
116 liberation_ttf
117 noto-fonts-cjk-sans
118 noto-fonts-color-emoji
119
120 inputs.clipboard-sync.packages.${pkgs.stdenv.hostPlatform.system}.default
121
122 # hyprlock itself is provided by the host-specific module (e.g.
123 # linux/guix.nix wraps it with an LD_PRELOAD shim; a plain NixOS host
124 # would just add pkgs.hyprlock here instead).
125 ];
126 }