packages.nix (3282B)
1 { pkgs, isDarwin }: 2 let 3 fetchSucklessRepo = 4 repo: hash: 5 pkgs.fetchgit { 6 url = "git://popovic.xyz/${repo}.git"; 7 inherit hash; 8 }; 9 10 suckless = with pkgs; { 11 dwm = dwm.overrideAttrs (old: { 12 src = fetchSucklessRepo "dwm" "sha256-Hj985b6fRcYZm49Sd6188OewhCrBk5N0uWwQF3q7TH0="; 13 buildInputs = old.buildInputs ++ [ libxcb ]; 14 }); 15 16 st = st.overrideAttrs (old: { 17 src = fetchSucklessRepo "st" "sha256-RYWB2LmEAafQUXhhtKi+7iJ6Ey5qLyTjjfLwOvNhu6U="; 18 }); 19 20 dmenu = dmenu.overrideAttrs (old: { 21 src = fetchSucklessRepo "dmenu" "sha256-YPtt7+wMickAYs271+lgKaUlWjxPwnsOJmaN/BS3ZzU="; 22 }); 23 24 slock = slock.overrideAttrs (old: { 25 src = fetchSucklessRepo "slock" "sha256-4cKVyYRqgv9YGYYHFzzkIoJhdMlzb5GC72RQsCSEbG0="; 26 buildInputs = 27 old.buildInputs 28 ++ (with xorg; [ 29 libxinerama 30 imlib2 31 libxft 32 ]); 33 }); 34 35 dwmblocks = dwmblocks.overrideAttrs (old: { 36 src = fetchSucklessRepo "dwmblocks" "sha256-08Afj+djz37J16Uz9jnl2iBwd/h4N11UU9nBvfkzVsU="; 37 }); 38 }; 39 in 40 with pkgs; 41 { 42 system = [ 43 home-manager 44 nix 45 just 46 htop 47 sops 48 direnv 49 ]; 50 51 shell = [ 52 zsh 53 zsh-fast-syntax-highlighting 54 zsh-system-clipboard 55 tmux 56 neovim 57 ]; 58 59 wayland = [ 60 swaybg 61 swaylock 62 xwayland-satellite 63 fuzzel 64 dmenu-wayland 65 wl-clipboard 66 grim 67 mako 68 swayidle 69 ]; 70 71 cli = [ 72 (pass.withExtensions (exts: [ exts.pass-otp ])) 73 ripgrep 74 fzf 75 wget 76 curl 77 tree 78 fd 79 zip 80 unzip 81 bzip2 82 killall 83 zbar 84 pstree 85 bat 86 gptfdisk 87 qrencode 88 jq 89 ]; 90 91 network = [ 92 whois 93 nmap 94 wireguard-tools 95 ] 96 ++ lib.optionals (!isDarwin) [ 97 nextcloud-client 98 tigervnc 99 ]; 100 101 xorg = [ 102 xclip 103 feh 104 redshift 105 xidlehook 106 xcompmgr 107 xdotool 108 scrot 109 ] 110 ++ (with suckless; [ 111 dwm 112 st 113 dmenu 114 slock 115 dwmblocks 116 ]); 117 118 fonts = [ 119 noto-fonts-color-emoji 120 font-awesome 121 noto-fonts 122 ]; 123 124 media = [ 125 mpv 126 spotify 127 inkscape 128 imagemagick 129 ghostscript 130 pandoc 131 mediainfo 132 transmission_4 133 ] 134 ++ lib.optionals (!isDarwin) [ 135 vlc 136 sxiv 137 gimp 138 chromium 139 power-profiles-daemon 140 libnotify 141 pavucontrol 142 xkblayout-state 143 cryptsetup 144 rsync 145 devour 146 pamixer 147 pulseaudio 148 dunst 149 ]; 150 151 communication = [ 152 discord 153 telegram-desktop 154 ]; 155 156 fileManagement = [ 157 lf 158 file 159 ffmpegthumbnailer 160 poppler-utils 161 atool 162 odt2txt 163 djvulibre 164 ueberzugpp 165 zathura 166 zathuraPkgs.zathura_ps 167 zathuraPkgs.zathura_cb 168 zathuraPkgs.zathura_djvu 169 zathuraPkgs.zathura_pdf_mupdf 170 ] 171 ++ lib.optionals (!isDarwin) [ 172 nautilus 173 gnome-epub-thumbnailer 174 ]; 175 176 office = [ 177 groff 178 texliveFull 179 ] 180 ++ lib.optionals (!isDarwin) [ 181 libreoffice-fresh 182 ]; 183 184 email = [ 185 neomutt 186 msmtp 187 isync 188 abook 189 lynx 190 ]; 191 192 development = [ 193 gh 194 tree-sitter 195 python313Packages.tiktoken 196 luajitPackages.jsregexp 197 198 nil 199 marksman 200 nodejs 201 pnpm 202 203 cmake 204 gnumake 205 gcc 206 207 luarocks 208 javaPackages.compiler.openjdk17 209 lua5_1 210 go 211 ruby 212 php 213 julia-bin 214 python3 215 python313Packages.pip 216 rustup 217 ]; 218 }