home-manager.nix 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441
  1. { pkgs, packages, lib, ... }:
  2. {
  3. home.username = "oleg";
  4. home.homeDirectory = "/home/oleg";
  5. manual.manpages.enable = false;
  6. home.packages = with packages; [
  7. act
  8. ansifilter
  9. bat
  10. bandwidth
  11. bandwhich
  12. binwalk
  13. btfs
  14. chatterino2
  15. clipboard-jh
  16. clipman wayvnc wtype
  17. difftastic
  18. # alacritty
  19. # assh
  20. ssh-tools
  21. # browserpass
  22. brave
  23. buku
  24. # cabal-install
  25. cached-nix-shell
  26. catimg
  27. ctop
  28. diskus
  29. dive
  30. # dmg2img
  31. dnsperf
  32. # docker-compose
  33. docker-ls
  34. dogdns
  35. duf
  36. espanso
  37. # ferm
  38. filezilla
  39. # firefox
  40. adoptopenjdk-icedtea-web
  41. viddy
  42. fzf
  43. goldendict
  44. # geckodriver
  45. bfg-repo-cleaner
  46. git-secrets
  47. glab
  48. fac
  49. buildPackages.glibcLocales
  50. ghidra-bin
  51. go2nix
  52. glow
  53. groovy
  54. hexyl
  55. httpie
  56. mitmproxy
  57. hy
  58. hyperfine
  59. knot-resolver
  60. # lexicon
  61. ldns
  62. litecli
  63. navi
  64. lnav
  65. pastel
  66. procs
  67. zenith
  68. tokei
  69. lua
  70. luarocks
  71. sumneko-lua-language-server # renamed to lua-language-server
  72. mycli
  73. mypaint
  74. nix-bash-completions
  75. nix-generate-from-cpan
  76. nix-prefetch-docker
  77. nix-serve
  78. noti
  79. clang-tools # for clangd in lsp-mode
  80. tmpmail
  81. tribler
  82. nixd
  83. yaml-language-server
  84. logstalgia
  85. nix
  86. nixos-install-tools
  87. nixos-rebuild
  88. nixpkgs-lint
  89. # nodePackages_12_x.node2nix
  90. fup-repl
  91. nodejs
  92. cachix
  93. mongodb
  94. mongodb-tools
  95. gron
  96. pup # HTML parsing
  97. ioping
  98. iotop-c
  99. black
  100. nodePackages.vscode-json-languageserver-bin
  101. phpactor
  102. audacity
  103. scrcpy
  104. oh
  105. openjdk11
  106. packer
  107. passff-host
  108. pgcli
  109. prettyping
  110. sampler
  111. screenkey
  112. skopeo
  113. # slack
  114. # slack-term
  115. # tdesktop
  116. thc-hydra
  117. thunderbird
  118. tldr
  119. ttyd
  120. ttyplot
  121. visidata
  122. webhook
  123. wrk
  124. wtf
  125. yq
  126. vmtouch
  127. adwaita-qt
  128. quassel
  129. gping
  130. rust-analyzer
  131. bit
  132. yarn
  133. # TODO: Add xcolor after nixpkgs update.
  134. python-selenium
  135. zeal
  136. gitAndTools.delta
  137. gitAndTools.git-extras
  138. gitAndTools.git-open
  139. gitAndTools.git-recent
  140. gitAndTools.pre-commit
  141. libsForQt5.qtstyleplugins
  142. libsForQt5.kde-gtk-config
  143. lxqt.qterminal
  144. vault-bin
  145. vaultenv
  146. vagrant
  147. prometheus
  148. prometheus-pushgateway
  149. prometheus-alertmanager
  150. prometheus-dnsmasq-exporter
  151. prometheus-json-exporter
  152. OVMF.fd # UEFI for virtual machines in libvirt
  153. dhall
  154. dhall-nix
  155. dhall-json
  156. (haskell.lib.justStaticExecutables haskellPackages.dhall-yaml)
  157. json2hcl
  158. alerta
  159. # boomer
  160. deploy-rs
  161. discord
  162. elktail
  163. # eve-online
  164. firefox-52-wrapper
  165. mozilla-addons-to-nix
  166. fx_cast_bridge
  167. google-chrome
  168. chromium-wrapper # wraps google-chrome as chromium
  169. idea-ultimate
  170. idea-community
  171. ipmi
  172. ipmiview-wrapper
  173. ipmitool
  174. jenkins
  175. jenkins-job-builder
  176. # logstash
  177. jc
  178. # nim_1_0
  179. nixGLIntel
  180. nixfmt
  181. alejandra
  182. nixpkgs-fmt
  183. node2nix
  184. onefetch
  185. pycharm-professional
  186. robo3t
  187. yamllint
  188. restic-rest-server
  189. eiskaltdcpp
  190. sunshine
  191. nekoray
  192. ddcutil
  193. ];
  194. home.file = {
  195. ".bash.d/nix.bash" = {
  196. text = ''
  197. . ${packages.nix}/share/bash-completion/completions/nix
  198. . ${packages.vault-bin}/share/bash-completion/completions/vault
  199. complete -C ${packages.vault-bin}/bin/vault vault1
  200. complete -C ${packages.vault-bin}/bin/vault vault2
  201. complete -C ${packages.vault-bin}/bin/vault vault3
  202. complete -C ${packages.vault-bin}/bin/vault vault4
  203. complete -C ${packages.vault-bin}/bin/vault vault-ci
  204. '';
  205. };
  206. ".mozilla/native-messaging-hosts/passff.json" = {
  207. text = builtins.toJSON {
  208. allowed_extensions = [ "passff@wugi.info" ];
  209. description = "Host for communicating with zx2c4 pass";
  210. name = "passff";
  211. path = "${packages.passff-host}/share/passff-host/passff.py";
  212. type = "stdio";
  213. };
  214. };
  215. };
  216. programs.firefox = {
  217. enable = true;
  218. profiles =
  219. let
  220. nix = {
  221. # TODO: Manage ~/.mozilla/firefox/nix/containers.json file with Nix.
  222. # TODO: Manage ~/.mozilla/firefox/nix/cookies.sqlite somehow.
  223. # TODO: Import ~/src/ssl/cert.p12 file with Nix.
  224. extensions =
  225. with packages;
  226. with packages.nur.repos.rycee.firefox-addons;
  227. [
  228. auto_highlight
  229. auto-tab-discard
  230. clearurls
  231. container-proxy
  232. copy-all-tab-urls-we
  233. copy-link-text
  234. copy-selection-as-markdown
  235. cookie-quick-manager
  236. copy-as-org-mode
  237. darkreader
  238. foxscroller
  239. foxyproxy-standard
  240. gesturefy
  241. ghosttext
  242. google-container
  243. greasemonkey
  244. (firefox-addon-libredirect.overrideAttrs (old: {
  245. version = "2.1.0";
  246. src = pkgs.fetchurl {
  247. url = "https://addons.mozilla.org/firefox/downloads/file/3960568/libredirect-2.1.0.xpi";
  248. sha256 = "01zz4j85mlvsw41iwycw7zbyllx6q9j0i2l85sd47k0c8cf9jc14";
  249. };
  250. }))
  251. hello-goodbye
  252. (link-gopher.overrideAttrs (old: {
  253. version = "2.0.1";
  254. src = pkgs.fetchurl {
  255. url = "https://addons.mozilla.org/firefox/downloads/file/3834730/link_gopher-2.0.1.xpi";
  256. sha256 = "0kn5jl9nj6sp48ra0s75cla39w05rs40smvfsark3zdxankkmzry";
  257. };
  258. }))
  259. lovely-forks
  260. i-dont-care-about-cookies
  261. old-reddit-redirect
  262. metube-downloader
  263. new-window-without-toolbar
  264. redirector
  265. right-click-search
  266. rocker_gestures
  267. scroll_anywhere
  268. sitedelta-watch
  269. sponsorblock
  270. ublock-origin
  271. packages.access-control-allow-origin
  272. packages.snaplinksplus
  273. packages.prometheus-formatter
  274. single-file
  275. stylus
  276. tab-reloader
  277. tab-slideshow-we
  278. temporary-containers
  279. view-image
  280. view-page-archive
  281. visited-link-enabler
  282. ublacklist
  283. ultrawidify
  284. ];
  285. settings = {
  286. "browser.search.defaultenginename" = "Google";
  287. "browser.search.region" = "GB";
  288. "browser.shell.checkDefaultBrowser" = false;
  289. "browser.startup.homepage" = "about:newtab";
  290. "browser.startup.page" = 3;
  291. "distribution.searchplugins.defaultLocale" = "en-GB";
  292. "extensions.pocket.enabled" = false;
  293. "general.useragent.locale" = "en-GB";
  294. "general.warnOnAboutConfig" = false;
  295. "startup.homepage_welcome_url" = "about:newtab";
  296. "toolkit.telemetry.reportingpolicy.firstRun" = false;
  297. };
  298. };
  299. in {
  300. default = {
  301. # This profile not managed by Nix.
  302. name = "default";
  303. path = "j56dvo43.default-1520714705340";
  304. isDefault = false;
  305. id = 0;
  306. };
  307. nix = nix // {
  308. name = "nix";
  309. id = 1;
  310. isDefault = true;
  311. };
  312. twitch = {
  313. name = "twitch";
  314. id = 2;
  315. extensions =
  316. with packages;
  317. with packages.nur.repos.rycee.firefox-addons;
  318. [
  319. return-youtube-dislikes
  320. sponsorblock
  321. ublock-origin
  322. (betterttv.overrideAttrs (old: {
  323. version = "7.5.7";
  324. src = pkgs.fetchurl {
  325. url = "https://addons.mozilla.org/firefox/downloads/file/4167416/betterttv-7.5.7.xpi";
  326. sha256 = "ba9ed004c328f3dacb78537eceed9fc206d4e3a136bb80a1ed786dc9fb57b9d7";
  327. };
  328. }))
  329. metube-downloader
  330. night-video-tuner
  331. tab-reloader
  332. twitch-error-autorefresher
  333. visited-link-enabler
  334. ultrawidify
  335. web-scrobbler
  336. ];
  337. settings = {
  338. "browser.startup.homepage" = "about:addons";
  339. "browser.search.region" = "GB";
  340. "extensions.pocket.enabled" = false;
  341. "distribution.searchplugins.defaultLocale" = "en-GB";
  342. "general.useragent.locale" = "en-GB";
  343. "browser.search.defaultenginename" = "Google";
  344. };
  345. };
  346. react = {
  347. name = "react";
  348. id = 3;
  349. extensions =
  350. with packages;
  351. with packages.nur.repos.rycee.firefox-addons;
  352. [
  353. react-devtools
  354. ];
  355. settings = {
  356. "browser.search.defaultenginename" = "Google";
  357. "browser.search.region" = "GB";
  358. "browser.shell.checkDefaultBrowser" = false;
  359. "browser.startup.homepage" = "about:newtab";
  360. "browser.startup.page" = 3;
  361. "distribution.searchplugins.defaultLocale" = "en-GB";
  362. "extensions.pocket.enabled" = false;
  363. "general.useragent.locale" = "en-GB";
  364. "general.warnOnAboutConfig" = false;
  365. "startup.homepage_welcome_url" = "about:newtab";
  366. "toolkit.telemetry.reportingpolicy.firstRun" = false;
  367. };
  368. };
  369. vnc = nix // {
  370. name = "vnc";
  371. id = 4;
  372. };
  373. };
  374. };
  375. # The home.stateVersion option no longer has a default value. It used to
  376. # default to “18.09”, which was the Home Manager version that introduced the
  377. # option. If your configuration does not explicitly set this option then you
  378. # need to add
  379. home.stateVersion = "23.05";
  380. }