diff options
-rw-r--r-- | configurations/eonwe/default.nix | 9 | ||||
-rw-r--r-- | flake.lock | 91 | ||||
-rw-r--r-- | modules/emacs/default.nix | 17 | ||||
-rw-r--r-- | modules/emacs/doom/config.el | 8 | ||||
-rw-r--r-- | modules/emacs/doom/init.el | 21 | ||||
-rw-r--r-- | modules/emacs/doom/packages.el | 10 | ||||
-rw-r--r-- | modules/firefox/addons.json | 3 | ||||
-rw-r--r-- | modules/firefox/addons.nix | 62 | ||||
-rw-r--r-- | modules/firefox/default.nix | 1 | ||||
-rw-r--r-- | modules/games/steam.nix | 2 | ||||
-rw-r--r-- | modules/ipfs.nix | 5 | ||||
-rw-r--r-- | modules/murmur.nix | 8 | ||||
-rw-r--r-- | overlays.nix | 56 | ||||
-rw-r--r-- | packages/emacsql-sqlite.nix | 6 | ||||
-rw-r--r-- | packages/parinfer-rust.nix | 29 | ||||
-rw-r--r-- | packages/telegram-desktop.patch | 296 |
16 files changed, 195 insertions, 429 deletions
diff --git a/configurations/eonwe/default.nix b/configurations/eonwe/default.nix index a35ad5c..a7505e7 100644 --- a/configurations/eonwe/default.nix +++ b/configurations/eonwe/default.nix @@ -24,7 +24,6 @@ with lib; beets.enable = true; bluetooth.enable = true; incus.enable = true; - ipfs.enable = true; libvirtd.enable = true; mpd.enable = true; qutebrowser.enable = true; @@ -32,7 +31,7 @@ with lib; hm = { home.packages = with pkgs; [ - calibre + # calibre # FIXME https://nixpk.gs/pr-tracker.html?pr=349884 krita qolibri radeontop @@ -149,6 +148,12 @@ with lib; }; services = { + languagetool = { + enable = true; + port = 8081; + allowOrigin = "*"; + }; + smartd = { enable = true; notifications.mail = { diff --git a/flake.lock b/flake.lock index 236aa63..af77467 100644 --- a/flake.lock +++ b/flake.lock @@ -230,11 +230,11 @@ ] }, "locked": { - "lastModified": 1727531434, - "narHash": "sha256-b+GBgCWd2N6pkiTkRZaMFOPztPO4IVTaclYPrQl2uLk=", + "lastModified": 1729281548, + "narHash": "sha256-MuojlSnwAJAwfhgmW8ZtZrwm2Sko4fqubCvReqbUzYw=", "owner": "nix-community", "repo": "disko", - "rev": "b709e1cc33fcde71c7db43850a55ebe6449d0959", + "rev": "a6a3179ddf396dfc28a078e2f169354d0c137125", "type": "github" }, "original": { @@ -368,11 +368,11 @@ ] }, "locked": { - "lastModified": 1727514110, - "narHash": "sha256-0YRcOxJG12VGDFH8iS8pJ0aYQQUAgo/r3ZAL+cSh9nk=", + "lastModified": 1729104314, + "narHash": "sha256-pZRZsq5oCdJt3upZIU4aslS9XwFJ+/nVtALHIciX/BI=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "85f7a7177c678de68224af3402ab8ee1bcee25c8", + "rev": "3c3e88f0f544d6bb54329832616af7eb971b6be6", "type": "github" }, "original": { @@ -426,11 +426,11 @@ ] }, "locked": { - "lastModified": 1727383923, - "narHash": "sha256-4/vacp3CwdGoPf8U4e/N8OsGYtO09WTcQK5FqYfJbKs=", + "lastModified": 1729459288, + "narHash": "sha256-gBOVJv+q6Mx8jGvwX7cE6J8+sZmi1uxpRVsO7WxvVuQ=", "owner": "nix-community", "repo": "home-manager", - "rev": "ffe2d07e771580a005e675108212597e5b367d2d", + "rev": "1e27f213d77fc842603628bcf2df6681d7d08f7e", "type": "github" }, "original": { @@ -442,11 +442,11 @@ "homelab-svg-assets": { "flake": false, "locked": { - "lastModified": 1726669367, - "narHash": "sha256-/dQqkVsvE1kq30LnI233tY6dK32XHnD3PNjKLjd7vvo=", + "lastModified": 1729175365, + "narHash": "sha256-r43u2HqdhRezqGwo/nbbZhHx5WUmkvAsfoLt8taFKyw=", "owner": "loganmarchione", "repo": "homelab-svg-assets", - "rev": "492c9eabbdce282b14b1e46156d5fdc01c26b36b", + "rev": "745e5d9249f2c847d58de5f1fd7ba4de2f63918e", "type": "github" }, "original": { @@ -457,11 +457,11 @@ }, "impermanence": { "locked": { - "lastModified": 1727649413, - "narHash": "sha256-FA53of86DjFdeQzRDVtvgWF9o52rWK70VHGx0Y8fElQ=", + "lastModified": 1729068498, + "narHash": "sha256-C2sGRJl1EmBq0nO98TNd4cbUy20ABSgnHWXLIJQWRFA=", "owner": "nix-community", "repo": "impermanence", - "rev": "d0b38e550039a72aff896ee65b0918e975e6d48e", + "rev": "e337457502571b23e449bf42153d7faa10c0a562", "type": "github" }, "original": { @@ -508,11 +508,11 @@ ] }, "locked": { - "lastModified": 1727747697, - "narHash": "sha256-bNZ4ykMpxyTLrPsctiDwe5d69vafvIbNTbzbWfd2CH4=", + "lastModified": 1729475340, + "narHash": "sha256-cdOVgmC6/ZNUu4ZGCwxy/vTaMJ6WaxBa9EZYcCCzxPA=", "owner": "Infinidoge", "repo": "nix-minecraft", - "rev": "30af58cedcc444da772a73286e16287f94a9fef1", + "rev": "c5905ddb8c23d6f549e47cec51038c603093d49f", "type": "github" }, "original": { @@ -528,11 +528,11 @@ ] }, "locked": { - "lastModified": 1727658919, - "narHash": "sha256-YAePt2GldkkRJ08LvZNHcuS6shIVStj+K+1DZN3gbnM=", + "lastModified": 1729394935, + "narHash": "sha256-2ntUG+NJKdfhlrh/tF+jOU0fOesO7lm5ZZVSYitsvH8=", "owner": "nix-community", "repo": "nix-index-database", - "rev": "f9fdf8285690a351e8998f1e703ebdf9cdf51dee", + "rev": "04f8a11f247ba00263b060fbcdc95484fd046104", "type": "github" }, "original": { @@ -570,11 +570,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1727665282, - "narHash": "sha256-oKtfbQB1MBypqIyzkC8QCQcVGOa1soaXaGgcBIoh14o=", + "lastModified": 1729455275, + "narHash": "sha256-THqzn/7um3oMHUEGXyq+1CJQE7EogwR3HjLMNOlhFBE=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "11c43c830e533dad1be527ecce379fcf994fbbb5", + "rev": "9fcf30fccf8435f6390efec4a4d38e69c2268a36", "type": "github" }, "original": { @@ -585,11 +585,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1727716680, - "narHash": "sha256-uMVkVHL4r3QmlZ1JM+UoJwxqa46cgHnIfqGzVlw5ca4=", + "lastModified": 1729265718, + "narHash": "sha256-4HQI+6LsO3kpWTYuVGIzhJs1cetFcwT7quWCk/6rqeo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b5b22b42c0d10c7d2463e90a546c394711e3a724", + "rev": "ccc0c2126893dd20963580b6478d1a10a4512185", "type": "github" }, "original": { @@ -632,11 +632,11 @@ }, "nixpkgs-master": { "locked": { - "lastModified": 1727796460, - "narHash": "sha256-ZERpx+GPuZ7Cg54iDNxhw/9BYmqpmzgMitvU27R5rzs=", + "lastModified": 1729497599, + "narHash": "sha256-VIL7URnjTkpYc7FQ0QJhV7Q2n2/hi3AgiFr5Ul1/glo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "8348471506d3f8abad30e848fe113cb4489ba2e9", + "rev": "f6bdbd1605b17cfbd8af51ba68db779e130d54b3", "type": "github" }, "original": { @@ -648,11 +648,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1727793663, - "narHash": "sha256-PIwGt3UeeAtiwuikQYlqxXGuOdlCHFzxyrw3FIWJ1BY=", + "lastModified": 1729489324, + "narHash": "sha256-xAa7WPbtymWsI/15oC2zUBjkpHYCZ+gFMiav2lrlRH8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "3d5d583ab403703be5b0aab368ba8d8ccc481000", + "rev": "e2589a4d25269cfa6a22022d01cd740d8abaa82b", "type": "github" }, "original": { @@ -731,11 +731,11 @@ ] }, "locked": { - "lastModified": 1727723127, - "narHash": "sha256-1Wy+v5xPsAb8GvHtU4egpIo8Rhmw1faAbGaIDduVG9I=", + "lastModified": 1729472124, + "narHash": "sha256-l1uqRV0XPDrCVXb8irXSnIHOdzmss78KiUqB6WkhDMw=", "owner": "nix-community", "repo": "srvos", - "rev": "3368388007de976ceb40f3e19f31ffd8667c36a7", + "rev": "5607765a4ac3a567cfe6bf4efb3c352193604f57", "type": "github" }, "original": { @@ -767,11 +767,11 @@ "tinted-tmux": "tinted-tmux" }, "locked": { - "lastModified": 1727723275, - "narHash": "sha256-k4HrG8TJQ0RqDS1tlDz71kvWFBNQ7qZI9T5Z0qLR85Y=", + "lastModified": 1729380793, + "narHash": "sha256-TV6NYBUqTHI9t5fqNu4Qyr4BZUD2yGxAn3E+d5/mqaI=", "owner": "danth", "repo": "stylix", - "rev": "e7e97059776da7e34b739415a7bc8f80f606b803", + "rev": "fb9399b7e2c855f42dae76a363bab28d4f24aa8d", "type": "github" }, "original": { @@ -859,16 +859,17 @@ "tinted-kitty": { "flake": false, "locked": { - "lastModified": 1665001328, - "narHash": "sha256-aRaizTYPpuWEcvoYE9U+YRX+Wsc8+iG0guQJbvxEdJY=", + "lastModified": 1716423189, + "narHash": "sha256-2xF3sH7UIwegn+2gKzMpFi3pk5DlIlM18+vj17Uf82U=", "owner": "tinted-theming", "repo": "tinted-kitty", - "rev": "06bb401fa9a0ffb84365905ffbb959ae5bf40805", + "rev": "eb39e141db14baef052893285df9f266df041ff8", "type": "github" }, "original": { "owner": "tinted-theming", "repo": "tinted-kitty", + "rev": "eb39e141db14baef052893285df9f266df041ff8", "type": "github" } }, @@ -901,11 +902,11 @@ ] }, "locked": { - "lastModified": 1727747703, - "narHash": "sha256-YbKSShfCRNC4edx39kagpdpMYgu21L4f+sMStDI5rjc=", + "lastModified": 1729475384, + "narHash": "sha256-x7ODafOKfxXMdgs/wPXVpmf04vOr7cJLEDWYT/TBjY0=", "owner": "nix-community", "repo": "nix-vscode-extensions", - "rev": "2e8837496c0f58c4342ed84d309a8bc57677bc41", + "rev": "77a421d6c7ea09381c7e33d90c3017c9727dfbc3", "type": "github" }, "original": { diff --git a/modules/emacs/default.nix b/modules/emacs/default.nix index a182d4c..455f710 100644 --- a/modules/emacs/default.nix +++ b/modules/emacs/default.nix @@ -61,11 +61,11 @@ in if [[ -x "$EMACSDIR/bin/doom" ]]; then if [[ ! -d "$EMACSDIR/.local" ]]; then PATH="''${PATH:-/bin}:${emacs.package}/bin:${git.package}/bin" \ - "$EMACSDIR/bin/doom" install --force --verbose + "$EMACSDIR/bin/doom" install --aot --force --verbose fi PATH="''${PATH:-/bin:}:${emacs.package}/bin:${git.package}/bin" \ - "$EMACSDIR/bin/doom" sync -e --gc --force --verbose + "$EMACSDIR/bin/doom" sync -e --gc --aot --force --verbose fi ''; } @@ -166,17 +166,24 @@ in (setq exec-path (append exec-path '(${concatMapStringsSep " " (x: ''"${x}/bin"'') extraBins}))) (setenv "PATH" (concat (getenv "PATH") ":${concatMapStringsSep ":" (x: "${x}/bin") extraBins}")) + (appendq! auth-sources '(("${config.secrets.authinfo.path}"))) + ;; HACK Explicitly load specific Emacs packages from Nixpkgs. ;; For some reason providing them as "extraPackages" doesn't ;; work. (add-to-list 'load-path "${pkgs.mu.mu4e}/share/emacs/site-lisp/mu4e") (add-to-list 'load-path "${pkgs.emacsPackages.vterm}/share/emacs/site-lisp/elpa/vterm-${pkgs.emacsPackages.vterm.version}") - - (appendq! auth-sources '(("${config.secrets.authinfo.path}"))) + (load "${ + pkgs.fetchurl { + name = "tvl.el"; + url = "https://code.tvl.fyi/plain/tools/emacs-pkgs/tvl/tvl.el?id=84a82f6f41b422f7f76e44e3705ee509b6c6eaf6"; + hash = "sha256-vJsV7w4aMV9Y9zbXLHMIR53xAsXdUVBIXrxUTjdvty0="; + } + }") ;; :input japanese (setq migemo-dictionary "${pkgs.cmigemo}/share/migemo/utf-8/migemo-dict" - skk-large-jisyo "${pkgs.skk-dicts}/share/SKK-JISYO.L") + skk-large-jisyo "${pkgs.skkDictionaries.l}/share/skk/SKK-JISYO.L") ;; :editor parinfer (setq parinfer-rust-library "${pkgs.parinfer-rust-emacs}/lib/libparinfer_rust.so") diff --git a/modules/emacs/doom/config.el b/modules/emacs/doom/config.el index fe3b5b4..85fe4a9 100644 --- a/modules/emacs/doom/config.el +++ b/modules/emacs/doom/config.el @@ -33,12 +33,6 @@ doom-modeline-height 30) ;; -;;; TVL -;; - -(use-package! tvl) - -;; ;;; Editorconfig ;; @@ -87,7 +81,7 @@ ;;; Org ;; -(setq org-directory "~/doc/org/") +(setq! org-directory "~/doc/org/") ;; For some reason only using `after!' work here. `setq-hook!' and etc doesn't ;; produce expected results. diff --git a/modules/emacs/doom/init.el b/modules/emacs/doom/init.el index b031880..8575c3f 100644 --- a/modules/emacs/doom/init.el +++ b/modules/emacs/doom/init.el @@ -2,10 +2,12 @@ japanese :completion - company + ;; company + (corfu +icons +orderless +dabbrev) vertico :ui + deft doom (emoji +unicode) hl-todo @@ -23,14 +25,19 @@ (evil +everywhere) file-templates fold - format + (format +onsave) + lispy + ;; multiple-cursors + ;; objed parinfer + ;; rotate-text snippets word-wrap :emacs dired electric + eww ibuffer undo vc @@ -41,7 +48,7 @@ :checkers syntax - (spell +aspell +everywhere) + (spell +everywhere +icons) grammar :tools @@ -57,12 +64,12 @@ make (pass +auth) pdf + prodigy (terraform +lsp) tree-sitter upload :os - (:if (featurep :system 'macos) macos) tty :lang @@ -70,6 +77,7 @@ data emacs-lisp (go +lsp +tree-sitter) + (graphql +lsp +tree-sitter) (haskell +lsp +tree-sitter) javascript (json +lsp +tree-sitter) @@ -78,8 +86,12 @@ (nix +lsp +tree-sitter) (org +pandoc +roam2) plantuml + graphviz (python +poetry +pyright +lsp +tree-sitter) + ;; (racket +lsp +tree-sitter +xp +hash-lang) + rest (rust +lsp +tree-sitter) + ;; (scheme +chicken +guile +racket) (sh +lsp +tree-sitter) web (yaml +lsp +tree-sitter) @@ -89,6 +101,7 @@ :app calendar + emms irc (rss +org) diff --git a/modules/emacs/doom/packages.el b/modules/emacs/doom/packages.el index 0f908df..fb521bc 100644 --- a/modules/emacs/doom/packages.el +++ b/modules/emacs/doom/packages.el @@ -2,6 +2,8 @@ (unpin! (:editor parinfer)) +(unpin! evil-collection) + (package! xclip) (package! org-roam-ui) @@ -19,7 +21,7 @@ :recipe (:host gitlab :repo "emacs-ansible/emacs-ansible")) -(package! tvl - :recipe (:host nil - :repo "https://code.tvl.fyi/depot.git:/tools/emacs-pkgs/tvl.git" - :build nil)) +;; (package! tvl +;; :recipe (:host nil +;; :repo "https://code.tvl.fyi/depot.git:/tools/emacs-pkgs/tvl.git" +;; :build nil)) diff --git a/modules/firefox/addons.json b/modules/firefox/addons.json index c1ea3fa..5c6a090 100644 --- a/modules/firefox/addons.json +++ b/modules/firefox/addons.json @@ -40,5 +40,8 @@ }, { "slug": "violentmonkey" + }, + { + "slug": "switchyomega" } ] diff --git a/modules/firefox/addons.nix b/modules/firefox/addons.nix index 753a413..e416a3f 100644 --- a/modules/firefox/addons.nix +++ b/modules/firefox/addons.nix @@ -5,10 +5,10 @@ { "bitwarden" = buildFirefoxXpiAddon { pname = "bitwarden"; - version = "2024.9.0"; + version = "2024.10.0"; addonId = "{446900e4-71c2-419f-a6a7-df9c091e268b}"; - url = "https://addons.mozilla.org/firefox/downloads/file/4350677/bitwarden_password_manager-2024.9.0.xpi"; - sha256 = "8c8b97b445fe65cbdd91eda4bd07e8946d6c1b21ac89c771205a3b9225e2ef12"; + url = "https://addons.mozilla.org/firefox/downloads/file/4363548/bitwarden_password_manager-2024.10.0.xpi"; + sha256 = "9ea9428444870a74ae1999d77eb12d97a45275c85e83d6afdcbc4597fa3eccfb"; meta = with lib; { homepage = "https://bitwarden.com"; description = "At home, at work, or on the go, Bitwarden easily secures all your passwords, passkeys, and sensitive information."; @@ -35,10 +35,10 @@ }; "consent-o-matic" = buildFirefoxXpiAddon { pname = "consent-o-matic"; - version = "1.1.0"; + version = "1.1.3"; addonId = "gdpr@cavi.au.dk"; - url = "https://addons.mozilla.org/firefox/downloads/file/4298698/consent_o_matic-1.1.0.xpi"; - sha256 = "c23631cdf746fcf2896e99ba0dbc6192bd92c24275d05b0802dc7d7038b4815a"; + url = "https://addons.mozilla.org/firefox/downloads/file/4362793/consent_o_matic-1.1.3.xpi"; + sha256 = "a3ca5c64ac50376366beb4cce610d0af80e687c8c6a8c21a107c6118059896f8"; meta = with lib; { homepage = "https://consentomatic.au.dk/"; description = "Automatic handling of GDPR consent forms"; @@ -54,10 +54,10 @@ }; "darkreader" = buildFirefoxXpiAddon { pname = "darkreader"; - version = "4.9.92"; + version = "4.9.94"; addonId = "addon@darkreader.org"; - url = "https://addons.mozilla.org/firefox/downloads/file/4351387/darkreader-4.9.92.xpi"; - sha256 = "be55b3ea5bab95743d43823d9290fa820035b89c4d07943b568111d837a98226"; + url = "https://addons.mozilla.org/firefox/downloads/file/4359254/darkreader-4.9.94.xpi"; + sha256 = "251c4e7d0a30c0cab006803600e59ab92dcc0c606429740d42677846d4c9ccd6"; meta = with lib; { homepage = "https://darkreader.org/"; description = "Dark mode for every website. Take care of your eyes, use dark theme for night and daily browsing."; @@ -187,10 +187,10 @@ }; "rikaichamp" = buildFirefoxXpiAddon { pname = "rikaichamp"; - version = "1.20.0"; + version = "1.21.1"; addonId = "{59812185-ea92-4cca-8ab7-cfcacee81281}"; - url = "https://addons.mozilla.org/firefox/downloads/file/4325631/10ten_ja_reader-1.20.0.xpi"; - sha256 = "25215fe0211f2e01b5f7b75a3311214eb647999e48e4a77268e36e5ccc4efbd2"; + url = "https://addons.mozilla.org/firefox/downloads/file/4355635/10ten_ja_reader-1.21.1.xpi"; + sha256 = "81d85cfdc03cb0c921cac84547e7a7a539af11ff9a81dd901b3f3bfa67ba45f1"; meta = with lib; { homepage = "https://github.com/birchill/10ten-ja-reader/"; description = "Quickly translate Japanese by hovering over words. Formerly released as Rikaichamp."; @@ -230,12 +230,38 @@ platforms = platforms.all; }; }; + "switchyomega" = buildFirefoxXpiAddon { + pname = "switchyomega"; + version = "2.5.10"; + addonId = "switchyomega@feliscatus.addons.mozilla.org"; + url = "https://addons.mozilla.org/firefox/downloads/file/848109/switchyomega-2.5.10.xpi"; + sha256 = "dfefc2da59eeb2e92a32fc75fb05426feeea4c39ee01b7a797395ed29ed7cf77"; + meta = with lib; { + homepage = "https://github.com/FelisCatus/SwitchyOmega"; + description = "Manage and switch between multiple proxies quickly & easily."; + license = licenses.gpl3; + mozPermissions = [ + "proxy" + "tabs" + "alarms" + "storage" + "webRequest" + "downloads" + "webRequestBlocking" + "contextMenus" + "http://*/*" + "https://*/*" + "<all_urls>" + ]; + platforms = platforms.all; + }; + }; "ublock-origin" = buildFirefoxXpiAddon { pname = "ublock-origin"; - version = "1.59.0"; + version = "1.60.0"; addonId = "uBlock0@raymondhill.net"; - url = "https://addons.mozilla.org/firefox/downloads/file/4328681/ublock_origin-1.59.0.xpi"; - sha256 = "1db9c676a07d141f8d36dbbc24f9e3d64a6cc2340dbfc6c848bc4395f96cfb14"; + url = "https://addons.mozilla.org/firefox/downloads/file/4359936/ublock_origin-1.60.0.xpi"; + sha256 = "e2cda9b2a1b0a7f6e5ef0da9f87f28df52f8560587ba2e51a3003121cfb81600"; meta = with lib; { homepage = "https://github.com/gorhill/uBlock#ublock-origin"; description = "Finally, an efficient wide-spectrum content blocker. Easy on CPU and memory."; @@ -292,10 +318,10 @@ }; "violentmonkey" = buildFirefoxXpiAddon { pname = "violentmonkey"; - version = "2.23.0"; + version = "2.26.0"; addonId = "{aecec67f-0d10-4fa7-b7c7-609a2db280cf}"; - url = "https://addons.mozilla.org/firefox/downloads/file/4352761/violentmonkey-2.23.0.xpi"; - sha256 = "b3eadf855b6093376590aa63ae05933c5812e9515c9acf558550a4f2c78ab49b"; + url = "https://addons.mozilla.org/firefox/downloads/file/4362578/violentmonkey-2.26.0.xpi"; + sha256 = "47b61fd463602a38bf67591ab94c60d3f1a02ad4f81b9a8a3de97d5461b2e12e"; meta = with lib; { homepage = "https://violentmonkey.github.io/"; description = "Userscript support for browsers, open source."; diff --git a/modules/firefox/default.nix b/modules/firefox/default.nix index c694a7f..b7e47b6 100644 --- a/modules/firefox/default.nix +++ b/modules/firefox/default.nix @@ -131,6 +131,7 @@ in redirector rikaichamp skip-redirect + switchyomega ublock-origin user-agent-switcher violentmonkey diff --git a/modules/games/steam.nix b/modules/games/steam.nix index 23b4f14..d1da8ee 100644 --- a/modules/games/steam.nix +++ b/modules/games/steam.nix @@ -15,8 +15,8 @@ in nixfiles.modules = { common.nix.allowedUnfreePackages = [ "steam" - "steam-original" "steam-run" + "steam-unwrapped" ]; games = { diff --git a/modules/ipfs.nix b/modules/ipfs.nix index 1e1d23f..25f7fce 100644 --- a/modules/ipfs.nix +++ b/modules/ipfs.nix @@ -144,6 +144,11 @@ in allowedUDPPorts = allowedTCPPorts; }; + boot.kernel.sysctl = { + "net.core.rmem_max" = 7500000; + "net.core.wmem_max" = 7500000; + }; + topology = with cfg; { nodes.${this.hostname}.services.ipfs-kubo = { name = "IPFS Kubo"; diff --git a/modules/murmur.nix b/modules/murmur.nix index 7621c9e..d334015 100644 --- a/modules/murmur.nix +++ b/modules/murmur.nix @@ -22,10 +22,18 @@ in services.murmur = { enable = true; + openFirewall = true; + logDays = -1; + registerName = mkDefault my.domain.shire; + registerHostname = mkDefault my.domain.shire; + + bandwidth = 256000; + password = "$MURMUR_PASSWORD"; + environmentFile = config.secrets."murmur-environment".path; }; }; diff --git a/overlays.nix b/overlays.nix index a9dc2ec..5800a76 100644 --- a/overlays.nix +++ b/overlays.nix @@ -62,13 +62,39 @@ openssl_1_0_0 = prev.callPackage ./packages/openssl_1_0_0.nix { }; - parinfer-rust = prev.callPackage ./packages/parinfer-rust.nix { }; - telegram-desktop = (prev.telegram-desktop.override (finalAttrs: { stdenv = final.useMoldLinker finalAttrs.stdenv; })).overrideAttrs - (_: super: { patches = (super.patches or [ ]) ++ [ ./packages/telegram-desktop.patch ]; }); + ( + _: super: { + patches = + (super.patches or [ ]) + ++ ( + let + patches = "https://raw.githubusercontent.com/msva/mva-overlay/4c89938831bcce03fae22081809e53a47bdee31b/net-im/telegram-desktop/files/patches"; + in + [ + (prev.fetchpatch { + url = "${patches}/0/conditional/tdesktop_patches_hide-sponsored-messages/0000-data_data_sponsored_messages.cpp.patch"; + hash = "sha256-vVucKG0YNY41MVdqibhKfxL/2/nNPPtYw+otwat971U="; + }) + (prev.fetchpatch { + url = "${patches}/0/conditional/tdesktop_patches_allow-disable-stories/option-to-disable-stories.patch"; + hash = "sha256-ctL9wIn3cLtqgCcQFNnx7WQuBw+9IjDlMJUicmVt8no="; + }) + (prev.fetchpatch { + url = "${patches}/0/conditional/tdesktop_patches_hide-banned/0000_hide-messages-from-blocked-users.patch"; + hash = "sha256-61U3wQsUdLvB4ymHPjVecw9WvhW8W/V0Jf1cnvYUkHk="; + }) + (prev.fetchpatch { + url = "${patches}/0/conditional/tdesktop_patches_wide-baloons/style.patch"; + hash = "sha256-Ot2kb49YsEhaunw/yMgLaqrDYYS+pHPf79Yiwahxj+g="; + }) + ] + ); + } + ); vesktop = (prev.vesktop.overrideAttrs ( @@ -91,30 +117,30 @@ withTTS = false; }; - linuxPackages_xanmod_latest = prev.linuxPackages_xanmod_latest.extend ( - f: _: { + linuxPackages_latest = prev.linuxPackages_latest.extend ( + x: _: { amneziawg = - inputs.nixpkgs-amneziawg.legacyPackages.${final.system}.linuxPackages_xanmod_latest.amneziawg.override + inputs.nixpkgs-amneziawg.legacyPackages.${final.system}.linuxPackages_latest.amneziawg.override { - inherit (f) kernel; + inherit (x) kernel; }; } ); - linuxPackages_latest = prev.linuxPackages_latest.extend ( - f: _: { + linuxPackages_hardened = prev.linuxPackages_hardened.extend ( + x: _: { amneziawg = - inputs.nixpkgs-amneziawg.legacyPackages.${final.system}.linuxPackages_latest.amneziawg.override + inputs.nixpkgs-amneziawg.legacyPackages.${final.system}.linuxPackages_hardened.amneziawg.override { - inherit (f) kernel; + inherit (x) kernel; }; } ); - linuxPackages_hardened = prev.linuxPackages_hardened.extend ( - f: _: { + linuxPackages_xanmod_latest = prev.linuxPackages_xanmod_latest.extend ( + x: _: { amneziawg = - inputs.nixpkgs-amneziawg.legacyPackages.${final.system}.linuxPackages_hardened.amneziawg.override + inputs.nixpkgs-amneziawg.legacyPackages.${final.system}.linuxPackages_xanmod_latest.amneziawg.override { - inherit (f) kernel; + inherit (x) kernel; }; } ); diff --git a/packages/emacsql-sqlite.nix b/packages/emacsql-sqlite.nix index c9745fd..ad948bc 100644 --- a/packages/emacsql-sqlite.nix +++ b/packages/emacsql-sqlite.nix @@ -5,13 +5,13 @@ }: stdenv.mkDerivation (finalAttrs: { pname = "emacsql-sqlite"; - version = "3.1.1"; + version = "4.0.3"; src = fetchFromGitHub { owner = "magit"; repo = "emacsql"; - rev = finalAttrs.version; - hash = "sha256-b/QEpWMTyVOdkOEhPNJ0x8ukUy9Gc9gYGjnlh0WU9fY="; + rev = "v${finalAttrs.version}"; + hash = "sha256-MaL3t+2MhWOE6eLmt8m4ImpsKeNeUZ4S8zEoQVu51ZY="; }; sourceRoot = "source/sqlite"; diff --git a/packages/parinfer-rust.nix b/packages/parinfer-rust.nix deleted file mode 100644 index a925834..0000000 --- a/packages/parinfer-rust.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ - lib, - fetchFromGitHub, - rustPlatform, -}: -rustPlatform.buildRustPackage rec { - pname = "parinfer-rust"; - version = "0.5.0-unstable-2024-05-07"; - - src = fetchFromGitHub { - owner = "eraserhd"; - repo = "parinfer-rust"; - rev = "d84828b453e158d06406f6b5e9056f6b54ff76c9"; - hash = "sha256-Q2fYogfn5QcNDEie4sUaVydAmDmcFXnsvz35cxPCf+M="; - }; - - cargoHash = "sha256-awps5BAtImc7q/D2W/vPOrFVh45k43xqUJXbOTyZF+s="; - - buildFeatures = [ "emacs" ]; - - nativeBuildInputs = [ rustPlatform.bindgenHook ]; - - meta = with lib; { - description = "A Rust port of parinfer"; - inherit (src.meta) homepage; - license = licenses.isc; - maintainers = with maintainers; [ azahi ]; - }; -} diff --git a/packages/telegram-desktop.patch b/packages/telegram-desktop.patch deleted file mode 100644 index 8fe272b..0000000 --- a/packages/telegram-desktop.patch +++ /dev/null @@ -1,296 +0,0 @@ -diff --git i/Telegram/SourceFiles/core/click_handler_types.cpp w/Telegram/SourceFiles/core/click_handler_types.cpp -index 9b03e0b74..25af14f67 100644 ---- i/Telegram/SourceFiles/core/click_handler_types.cpp -+++ w/Telegram/SourceFiles/core/click_handler_types.cpp -@@ -345,9 +345,7 @@ void MonospaceClickHandler::onClick(ClickContext context) const { - if (const auto controller = my.sessionWindow.get()) { - auto &data = controller->session().data(); - const auto item = data.message(my.itemId); -- const auto hasCopyRestriction = item -- && (!item->history()->peer->allowsForwarding() -- || item->forbidsForward()); -+ const auto hasCopyRestriction = false; - if (hasCopyRestriction) { - controller->showToast(item->history()->peer->isBroadcast() - ? tr::lng_error_nocopy_channel(tr::now) -diff --git i/Telegram/SourceFiles/data/components/sponsored_messages.cpp w/Telegram/SourceFiles/data/components/sponsored_messages.cpp -index c20ec967e..bb3de6794 100644 ---- i/Telegram/SourceFiles/data/components/sponsored_messages.cpp -+++ w/Telegram/SourceFiles/data/components/sponsored_messages.cpp -@@ -193,7 +193,7 @@ void SponsoredMessages::inject( - } - - bool SponsoredMessages::canHaveFor(not_null<History*> history) const { -- return history->peer->isChannel(); -+ return false; - } - - void SponsoredMessages::request(not_null<History*> history, Fn<void()> done) { -diff --git i/Telegram/SourceFiles/data/data_channel.cpp w/Telegram/SourceFiles/data/data_channel.cpp -index 2f7694395..4468729e1 100644 ---- i/Telegram/SourceFiles/data/data_channel.cpp -+++ w/Telegram/SourceFiles/data/data_channel.cpp -@@ -884,7 +884,7 @@ void ChannelData::clearInvitePeek() { - } - - TimeId ChannelData::invitePeekExpires() const { -- return _invitePeek ? _invitePeek->expires : 0; -+ return 0; - } - - QString ChannelData::invitePeekHash() const { -diff --git i/Telegram/SourceFiles/data/data_stories.cpp w/Telegram/SourceFiles/data/data_stories.cpp -index 668ec4c45..0a738e229 100644 ---- i/Telegram/SourceFiles/data/data_stories.cpp -+++ w/Telegram/SourceFiles/data/data_stories.cpp -@@ -442,70 +442,7 @@ Story *Stories::parseAndApply( - not_null<PeerData*> peer, - const MTPDstoryItem &data, - TimeId now) { -- const auto media = ParseMedia(_owner, data.vmedia()); -- if (!media) { -- return nullptr; -- } -- const auto expires = data.vexpire_date().v; -- const auto expired = (expires <= now); -- if (expired && !data.is_pinned() && !hasArchive(peer)) { -- return nullptr; -- } -- const auto id = data.vid().v; -- const auto fullId = FullStoryId{ peer->id, id }; -- auto &stories = _stories[peer->id]; -- const auto i = stories.find(id); -- if (i != end(stories)) { -- const auto result = i->second.get(); -- const auto mediaChanged = (result->media() != *media); -- result->applyChanges(*media, data, now); -- const auto j = _pollingSettings.find(result); -- if (j != end(_pollingSettings)) { -- maybeSchedulePolling(result, j->second, now); -- } -- if (mediaChanged) { -- _preloaded.remove(fullId); -- if (_preloading && _preloading->id() == fullId) { -- _preloading = nullptr; -- rebuildPreloadSources(StorySourcesList::NotHidden); -- rebuildPreloadSources(StorySourcesList::Hidden); -- continuePreloading(); -- } -- _owner->refreshStoryItemViews(fullId); -- } -- return result; -- } -- const auto wasDeleted = _deleted.remove(fullId); -- const auto result = stories.emplace(id, std::make_unique<Story>( -- id, -- peer, -- StoryMedia{ *media }, -- data, -- now -- )).first->second.get(); -- -- if (const auto archive = lookupArchive(peer)) { -- const auto added = archive->ids.list.emplace(id).second; -- if (added) { -- if (archive->total >= 0 && id > archive->lastId) { -- ++archive->total; -- } -- _archiveChanged.fire_copy(peer->id); -- } -- } -- -- if (expired) { -- _expiring.remove(expires, fullId); -- applyExpired(fullId); -- } else { -- registerExpiring(expires, fullId); -- } -- -- if (wasDeleted) { -- _owner->refreshStoryItemViews(fullId); -- } -- -- return result; -+ return nullptr; - } - - StoryIdDates Stories::parseAndApply( -diff --git i/Telegram/SourceFiles/history/history_inner_widget.cpp w/Telegram/SourceFiles/history/history_inner_widget.cpp -index 1a302bd10..44ecffbed 100644 ---- i/Telegram/SourceFiles/history/history_inner_widget.cpp -+++ w/Telegram/SourceFiles/history/history_inner_widget.cpp -@@ -558,14 +558,7 @@ void HistoryInner::setupSharingDisallowed() { - } - - bool HistoryInner::hasSelectRestriction() const { -- if (!_sharingDisallowed.current()) { -- return false; -- } else if (const auto chat = _peer->asChat()) { -- return !chat->canDeleteMessages(); -- } else if (const auto channel = _peer->asChannel()) { -- return !channel->canDeleteMessages(); -- } -- return true; -+ return false; - } - - void HistoryInner::messagesReceived( -@@ -2844,12 +2837,12 @@ void HistoryInner::showContextMenu(QContextMenuEvent *e, bool showFromTouch) { - } - - bool HistoryInner::hasCopyRestriction(HistoryItem *item) const { -- return !_peer->allowsForwarding() || (item && item->forbidsForward()); -+ return false; - } - - bool HistoryInner::hasCopyMediaRestriction( - not_null<HistoryItem*> item) const { -- return hasCopyRestriction(item) || item->forbidsSaving(); -+ return false; - } - - bool HistoryInner::showCopyRestriction(HistoryItem *item) { -diff --git i/Telegram/SourceFiles/history/history_item.cpp w/Telegram/SourceFiles/history/history_item.cpp -index d9c306013..5fcd7d02b 100644 ---- i/Telegram/SourceFiles/history/history_item.cpp -+++ w/Telegram/SourceFiles/history/history_item.cpp -@@ -2243,11 +2243,6 @@ bool HistoryItem::forbidsForward() const { - } - - bool HistoryItem::forbidsSaving() const { -- if (forbidsForward()) { -- return true; -- } else if (const auto invoice = _media ? _media->invoice() : nullptr) { -- return HasExtendedMedia(*invoice); -- } - return false; - } - -diff --git i/Telegram/SourceFiles/history/view/history_view_list_widget.cpp w/Telegram/SourceFiles/history/view/history_view_list_widget.cpp -index 4155adf9b..1775ef4f4 100644 ---- i/Telegram/SourceFiles/history/view/history_view_list_widget.cpp -+++ w/Telegram/SourceFiles/history/view/history_view_list_widget.cpp -@@ -1515,13 +1515,11 @@ bool ListWidget::isEmpty() const { - } - - bool ListWidget::hasCopyRestriction(HistoryItem *item) const { -- return _delegate->listCopyRestrictionType(item) -- != CopyRestrictionType::None; -+ return false; - } - - bool ListWidget::hasCopyMediaRestriction(not_null<HistoryItem*> item) const { -- return _delegate->listCopyMediaRestrictionType(item) -- != CopyRestrictionType::None; -+ return false; - } - - bool ListWidget::showCopyRestriction(HistoryItem *item) { -@@ -1547,21 +1545,6 @@ bool ListWidget::showCopyMediaRestriction(not_null<HistoryItem*> item) { - } - - bool ListWidget::hasCopyRestrictionForSelected() const { -- if (hasCopyRestriction()) { -- return true; -- } -- if (_selected.empty()) { -- if (_selectedTextItem && _selectedTextItem->forbidsForward()) { -- return true; -- } -- } -- for (const auto &[itemId, selection] : _selected) { -- if (const auto item = session().data().message(itemId)) { -- if (item->forbidsForward()) { -- return true; -- } -- } -- } - return false; - } - -@@ -1580,8 +1563,7 @@ bool ListWidget::showCopyRestrictionForSelected() { - } - - bool ListWidget::hasSelectRestriction() const { -- return _delegate->listSelectRestrictionType() -- != CopyRestrictionType::None; -+ return false; - } - - Element *ListWidget::lookupItemByY(int y) const { -diff --git i/Telegram/SourceFiles/history/view/history_view_top_bar_widget.cpp w/Telegram/SourceFiles/history/view/history_view_top_bar_widget.cpp -index 92bd21800..297ddf1f2 100644 ---- i/Telegram/SourceFiles/history/view/history_view_top_bar_widget.cpp -+++ w/Telegram/SourceFiles/history/view/history_view_top_bar_widget.cpp -@@ -1240,15 +1240,14 @@ void TopBarWidget::updateMembersShowArea() { - } - - bool TopBarWidget::showSelectedState() const { -- return (_selectedCount > 0) -- && (_canDelete || _canForward || _canSendNow); -+ return _selectedCount > 0; - } - - void TopBarWidget::showSelected(SelectedState state) { - auto canDelete = (state.count > 0 && state.count == state.canDeleteCount); - auto canForward = (state.count > 0 && state.count == state.canForwardCount); - auto canSendNow = (state.count > 0 && state.count == state.canSendNowCount); -- auto count = (!canDelete && !canForward && !canSendNow) ? 0 : state.count; -+ auto count = state.count; - if (_selectedCount == count - && _canDelete == canDelete - && _canForward == canForward -diff --git i/Telegram/SourceFiles/info/media/info_media_provider.cpp w/Telegram/SourceFiles/info/media/info_media_provider.cpp -index 2fc69733e..2e830b73e 100644 ---- i/Telegram/SourceFiles/info/media/info_media_provider.cpp -+++ w/Telegram/SourceFiles/info/media/info_media_provider.cpp -@@ -88,14 +88,7 @@ Type Provider::type() { - } - - bool Provider::hasSelectRestriction() { -- if (_peer->allowsForwarding()) { -- return false; -- } else if (const auto chat = _peer->asChat()) { -- return !chat->canDeleteMessages(); -- } else if (const auto channel = _peer->asChannel()) { -- return !channel->canDeleteMessages(); -- } -- return true; -+ return false; - } - - rpl::producer<bool> Provider::hasSelectRestrictionChanges() { -diff --git i/Telegram/SourceFiles/main/main_domain.h w/Telegram/SourceFiles/main/main_domain.h -index 2e69222b9..b3e08fd66 100644 ---- i/Telegram/SourceFiles/main/main_domain.h -+++ w/Telegram/SourceFiles/main/main_domain.h -@@ -31,8 +31,8 @@ public: - std::unique_ptr<Account> account; - }; - -- static constexpr auto kMaxAccounts = 3; -- static constexpr auto kPremiumMaxAccounts = 6; -+ static constexpr auto kMaxAccounts = 255; -+ static constexpr auto kPremiumMaxAccounts = 255; - - explicit Domain(const QString &dataName); - ~Domain(); -diff --git i/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp w/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp -index c6a7e9c6e..88c4d66ef 100644 ---- i/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp -+++ w/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp -@@ -1033,13 +1033,7 @@ QSize OverlayWidget::flipSizeByRotation(QSize size) const { - } - - bool OverlayWidget::hasCopyMediaRestriction(bool skipPremiumCheck) const { -- if (const auto story = _stories ? _stories->story() : nullptr) { -- return skipPremiumCheck -- ? !story->canDownloadIfPremium() -- : !story->canDownloadChecked(); -- } -- return (_history && !_history->peer->allowsForwarding()) -- || (_message && _message->forbidsSaving()); -+ return false; - } - - bool OverlayWidget::showCopyMediaRestriction(bool skipPRemiumCheck) { |