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