packages.nix (3366B)
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 lazygit 90 ]; 91 92 network = [ 93 whois 94 nmap 95 wireguard-tools 96 localsend 97 ] 98 ++ lib.optionals (!isDarwin) [ 99 uxplay 100 localsend 101 nextcloud-client 102 tigervnc 103 ]; 104 105 xorg = [ 106 xclip 107 feh 108 redshift 109 xidlehook 110 xcompmgr 111 xdotool 112 scrot 113 ] 114 ++ (with suckless; [ 115 dwm 116 st 117 dmenu 118 slock 119 dwmblocks 120 ]); 121 122 fonts = [ 123 noto-fonts-color-emoji 124 font-awesome 125 noto-fonts 126 ]; 127 128 media = [ 129 mpv 130 spotify 131 inkscape 132 imagemagick 133 ghostscript 134 pandoc 135 mediainfo 136 transmission_4 137 ] 138 ++ lib.optionals (!isDarwin) [ 139 vlc 140 sxiv 141 gimp 142 chromium 143 power-profiles-daemon 144 libnotify 145 pavucontrol 146 xkblayout-state 147 cryptsetup 148 rsync 149 devour 150 pamixer 151 pulseaudio 152 dunst 153 ]; 154 155 communication = [ 156 discord 157 telegram-desktop 158 ]; 159 160 fileManagement = [ 161 lf 162 file 163 ffmpegthumbnailer 164 poppler-utils 165 atool 166 odt2txt 167 djvulibre 168 ueberzugpp 169 zathura 170 zathuraPkgs.zathura_ps 171 zathuraPkgs.zathura_cb 172 zathuraPkgs.zathura_djvu 173 zathuraPkgs.zathura_pdf_mupdf 174 ] 175 ++ lib.optionals (!isDarwin) [ 176 nautilus 177 gnome-epub-thumbnailer 178 ]; 179 180 office = [ 181 groff 182 texliveFull 183 ] 184 ++ lib.optionals (!isDarwin) [ 185 libreoffice-fresh 186 ]; 187 188 email = [ 189 neomutt 190 msmtp 191 isync 192 abook 193 lynx 194 ]; 195 196 development = [ 197 gh 198 tree-sitter 199 python313Packages.tiktoken 200 python313Packages.pylatexenc 201 luajitPackages.jsregexp 202 203 nil 204 marksman 205 nodejs 206 pnpm 207 208 cmake 209 gnumake 210 gcc 211 212 luarocks 213 javaPackages.compiler.openjdk17 214 lua5_1 215 go 216 ruby 217 php 218 julia-bin 219 python3 220 python313Packages.pip 221 rustup 222 ]; 223 }