From 5cd0ded29214cba3d1da157fac080279df8e26cb Mon Sep 17 00:00:00 2001 From: Aleksandr Date: Sun, 8 Jun 2025 23:40:41 +0000 Subject: [PATCH] rust pobeda --- dotfiles/doom/config.el | 79 ++ dotfiles/doom/custom.el | 12 + dotfiles/doom/init.el | 193 ++++ dotfiles/doom/packages.el | 51 + dotfiles/niri/default.nix | 39 + flake.lock | 868 ++++++++++-------- flake.nix | 69 +- hosts/default.nix | 26 + hosts/eva/default.nix | 6 + hosts/lil-maid/default.nix | 17 + hosts/lil-maid/dev.nix | 9 + {lil-maid => hosts/lil-maid}/fs.nix | 13 +- hosts/lil-maid/home/cat.jpg | Bin 0 -> 7572 bytes hosts/lil-maid/home/default.nix | 14 + hosts/lil-maid/home/nero.nix | 83 ++ {lil-maid => hosts/lil-maid}/hw.nix | 27 +- hosts/lil-maid/niri.nix | 20 + hosts/lil-maid/sw.nix | 11 + lil-maid/default.nix | 57 -- lil-maid/modules/boot.nix | 4 - lil-maid/modules/default.nix | 17 - lil-maid/modules/devenv.nix | 37 - lil-maid/modules/firewall.nix | 5 - lil-maid/modules/fonts.nix | 6 - lil-maid/modules/net.nix | 15 - lil-maid/modules/social.nix | 16 - lil-maid/modules/stash.nix | 52 -- lil-maid/modules/steam.nix | 20 - m/default.nix | 16 - m/firefox.nix | 13 - m/home/default.nix | 18 - m/home/helix/default.nix | 28 - m/home/helix/langs/default.nix | 15 - m/home/helix/langs/nix.nix | 15 - m/home/helix/nigger.toml | 2 - m/home/helix/themes/sonokai/default.nix | 179 ---- .../themes/sonokai/palettes/andromeda.nix | 25 - m/home/nero/default.nix | 81 -- m/hypr.nix | 38 - m/kde.nix | 18 - m/masters/default.nix | 7 - m/masters/nero.nix | 37 - m/rust.nix | 27 - m/sddm.nix | 17 - m/signal.nix | 3 - m/sops.nix | 27 - m/sys.nix | 59 -- m/unfree.nix | 14 - m/vpn/hft.nix | 38 - m/vpn/shadowsocks.nix | 23 - modules/default.nix | 15 + modules/haskell.nix | 9 + modules/net.nix | 5 + modules/rust.nix | 18 + modules/sops.nix | 5 + modules/sound.nix | 15 + {m => modules}/vpn/default.nix | 2 + modules/vpn/hft.nix | 19 + modules/vpn/shadowsocks.nix | 20 + 59 files changed, 1185 insertions(+), 1389 deletions(-) create mode 100644 dotfiles/doom/config.el create mode 100644 dotfiles/doom/custom.el create mode 100644 dotfiles/doom/init.el create mode 100644 dotfiles/doom/packages.el create mode 100644 dotfiles/niri/default.nix create mode 100644 hosts/default.nix create mode 100644 hosts/eva/default.nix create mode 100644 hosts/lil-maid/default.nix create mode 100644 hosts/lil-maid/dev.nix rename {lil-maid => hosts/lil-maid}/fs.nix (56%) create mode 100644 hosts/lil-maid/home/cat.jpg create mode 100644 hosts/lil-maid/home/default.nix create mode 100644 hosts/lil-maid/home/nero.nix rename {lil-maid => hosts/lil-maid}/hw.nix (63%) create mode 100644 hosts/lil-maid/niri.nix create mode 100644 hosts/lil-maid/sw.nix delete mode 100644 lil-maid/default.nix delete mode 100644 lil-maid/modules/boot.nix delete mode 100644 lil-maid/modules/default.nix delete mode 100644 lil-maid/modules/devenv.nix delete mode 100644 lil-maid/modules/firewall.nix delete mode 100644 lil-maid/modules/fonts.nix delete mode 100644 lil-maid/modules/net.nix delete mode 100644 lil-maid/modules/social.nix delete mode 100644 lil-maid/modules/stash.nix delete mode 100644 lil-maid/modules/steam.nix delete mode 100644 m/default.nix delete mode 100644 m/firefox.nix delete mode 100644 m/home/default.nix delete mode 100644 m/home/helix/default.nix delete mode 100644 m/home/helix/langs/default.nix delete mode 100644 m/home/helix/langs/nix.nix delete mode 100644 m/home/helix/nigger.toml delete mode 100644 m/home/helix/themes/sonokai/default.nix delete mode 100644 m/home/helix/themes/sonokai/palettes/andromeda.nix delete mode 100644 m/home/nero/default.nix delete mode 100644 m/hypr.nix delete mode 100644 m/kde.nix delete mode 100644 m/masters/default.nix delete mode 100644 m/masters/nero.nix delete mode 100644 m/rust.nix delete mode 100644 m/sddm.nix delete mode 100644 m/signal.nix delete mode 100644 m/sops.nix delete mode 100644 m/sys.nix delete mode 100644 m/unfree.nix delete mode 100644 m/vpn/hft.nix delete mode 100644 m/vpn/shadowsocks.nix create mode 100644 modules/default.nix create mode 100644 modules/haskell.nix create mode 100644 modules/net.nix create mode 100644 modules/rust.nix create mode 100644 modules/sops.nix create mode 100644 modules/sound.nix rename {m => modules}/vpn/default.nix (67%) create mode 100644 modules/vpn/hft.nix create mode 100644 modules/vpn/shadowsocks.nix diff --git a/dotfiles/doom/config.el b/dotfiles/doom/config.el new file mode 100644 index 0000000..8038e9f --- /dev/null +++ b/dotfiles/doom/config.el @@ -0,0 +1,79 @@ +;;; $DOOMDIR/config.el -*- lexical-binding: t; -*- + +;; Place your private configuration here! Remember, you do not need to run 'doom +;; sync' after modifying this file! + + +;; Some functionality uses this to identify you, e.g. GPG configuration, email +;; clients, file templates and snippets. It is optional. +;; (setq user-full-name "John Doe" +;; user-mail-address "john@doe.com") + +;; Doom exposes five (optional) variables for controlling fonts in Doom: +;; +;; - `doom-font' -- the primary font to use +;; - `doom-variable-pitch-font' -- a non-monospace font (where applicable) +;; - `doom-big-font' -- used for `doom-big-font-mode'; use this for +;; presentations or streaming. +;; - `doom-symbol-font' -- for symbols +;; - `doom-serif-font' -- for the `fixed-pitch-serif' face +;; +;; See 'C-h v doom-font' for documentation and more examples of what they +;; accept. For example: +;; +;;(setq doom-font (font-spec :family "Fira Code" :size 12 :weight 'semi-light) +;; doom-variable-pitch-font (font-spec :family "Fira Sans" :size 13)) +;; +;; If you or Emacs can't find your font, use 'M-x describe-font' to look them +;; up, `M-x eval-region' to execute elisp code, and 'M-x doom/reload-font' to +;; refresh your font settings. If Emacs still can't find your font, it likely +;; wasn't installed correctly. Font issues are rarely Doom issues! +(setq doom-theme 'doom-palenight) +(setq doom-font (font-spec :family "JetBrains Mono Nerd Font" :size 15) + doom-variable-pitch-font (font-spec :family "JetBrains Mono Nerd Font" :size 28)) + +;; There are two ways to load a theme. Both assume the theme is installed and +;; available. You can either set `doom-theme' or manually load a theme with the +;; `load-theme' function. This is the default: +(setq doom-theme 'doom-one) + +;; This determines the style of line numbers in effect. If set to `nil', line +;; numbers are disabled. For relative line numbers, set this to `relative'. +(setq display-line-numbers-type t) + +;; If you use `org' and don't want your org files in the default location below, +;; change `org-directory'. It must be set before org loads! +(setq org-directory "~/org/") +(setq confirm-kill-emacs nil) + +;; Whenever you reconfigure a package, make sure to wrap your config in an +;; `after!' block, otherwise Doom's defaults may override your settings. E.g. +;; +;; (after! PACKAGE +;; (setq x y)) +;; +;; The exceptions to this rule: +;; +;; - Setting file/directory variables (like `org-directory') +;; - Setting variables which explicitly tell you to set them before their +;; package is loaded (see 'C-h v VARIABLE' to look up their documentation). +;; - Setting doom variables (which start with 'doom-' or '+'). +;; +;; Here are some additional functions/macros that will help you configure Doom. +;; +;; - `load!' for loading external *.el files relative to this one +;; - `use-package!' for configuring packages +;; - `after!' for running code after a package has loaded +;; - `add-load-path!' for adding directories to the `load-path', relative to +;; this file. Emacs searches the `load-path' when you load packages with +;; `require' or `use-package'. +;; - `map!' for binding new keys +;; +;; To get information about any of these functions/macros, move the cursor over +;; the highlighted symbol at press 'K' (non-evil users must press 'C-c c k'). +;; This will open documentation for it, including demos of how they are used. +;; Alternatively, use `C-h o' to look up a symbol (functions, variables, faces, +;; etc). +;; +;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how +;; they are implemented. diff --git a/dotfiles/doom/custom.el b/dotfiles/doom/custom.el new file mode 100644 index 0000000..e8a0fcb --- /dev/null +++ b/dotfiles/doom/custom.el @@ -0,0 +1,12 @@ +(custom-set-variables + ;; custom-set-variables was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + '(auth-source-save-behavior nil)) +(custom-set-faces + ;; custom-set-faces was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + ) diff --git a/dotfiles/doom/init.el b/dotfiles/doom/init.el new file mode 100644 index 0000000..82193cf --- /dev/null +++ b/dotfiles/doom/init.el @@ -0,0 +1,193 @@ +;;; init.el -*- lexical-binding: t; -*- + +;; This file controls what Doom modules are enabled and what order they load +;; in. Remember to run 'doom sync' after modifying it! + +;; NOTE Press 'SPC h d h' (or 'C-h d h' for non-vim users) to access Doom's +;; documentation. There you'll find a link to Doom's Module Index where all +;; of our modules are listed, including what flags they support. + +;; NOTE Move your cursor over a module's name (or its flags) and press 'K' (or +;; 'C-c c k' for non-vim users) to view its documentation. This works on +;; flags as well (those symbols that start with a plus). +;; +;; Alternatively, press 'gd' (or 'C-c c d') on a module to browse its +;; directory (for easy access to its source code). + +(doom! :input + ;;bidi ; (tfel ot) thgir etirw uoy gnipleh + ;;chinese + ;;japanese + ;;layout ; auie,ctsrnm is the superior home row + + :completion + ;;company ; the ultimate code completion backend + (corfu +orderless) ; complete with cap(f), cape and a flying feather! + ;;helm ; the *other* search engine for love and life + ;;ido ; the other *other* search engine... + ;;ivy ; a search engine for love and life + vertico ; the search engine of the future + + :ui + ;;deft ; notational velocity for Emacs + doom ; what makes DOOM look the way it does + doom-dashboard ; a nifty splash screen for Emacs + ;;doom-quit ; DOOM quit-message prompts when you quit Emacs + ;;(emoji +unicode) ; 🙂 + hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW + ;;indent-guides ; highlighted indent columns + ligatures ; ligatures and symbols to make your code pretty again + ;;minimap ; show a map of the code on the side + modeline ; snazzy, Atom-inspired modeline, plus API + ;;nav-flash ; blink cursor line after big motions + ;;neotree ; a project drawer, like NERDTree for vim + ophints ; highlight the region an operation acts on + (popup +defaults) ; tame sudden yet inevitable temporary windows + ;;tabs ; a tab bar for Emacs + treemacs ; a project drawer, like neotree but cooler + unicode ; extended unicode support for various languages + (vc-gutter +pretty) ; vcs diff in the fringe + vi-tilde-fringe ; fringe tildes to mark beyond EOB + ;;window-select ; visually switch windows + workspaces ; tab emulation, persistence & separate workspaces + ;;zen ; distraction-free coding or writing + + :editor + (evil +everywhere); come to the dark side, we have cookies + file-templates ; auto-snippets for empty files + fold ; (nigh) universal code folding + ;;(format +onsave) ; automated prettiness + ;;god ; run Emacs commands without modifier keys + ;;lispy ; vim for lisp, for people who don't like vim + ;;multiple-cursors ; editing in many places at once + ;;objed ; text object editing for the innocent + ;;parinfer ; turn lisp into python, sort of + ;;rotate-text ; cycle region at point between text candidates + snippets ; my elves. They type so I don't have to + ;;word-wrap ; soft wrapping with language-aware indent + + :emacs + dired ; making dired pretty [functional] + electric ; smarter, keyword-based electric-indent + ;;eww ; the internet is gross + ;;ibuffer ; interactive buffer management + undo ; persistent, smarter undo for your inevitable mistakes + vc ; version-control and Emacs, sitting in a tree + + :term + eshell ; the elisp shell that works everywhere + ;;shell ; simple shell REPL for Emacs + ;;term ; basic terminal emulator for Emacs + vterm ; the best terminal emulation in Emacs + + :checkers + syntax ; tasing you for every semicolon you forget + (spell +flyspell) ; tasing you for misspelling mispelling + grammar ; tasing grammar mistake every you make + + :tools + ;;ansible + ;;biblio ; Writes a PhD for you (citation needed) + ;;collab ; buffers with friends + ;;debugger ; FIXME stepping through code, to help you add bugs + direnv + ;;docker + editorconfig ; let someone else argue about tabs vs spaces + ;;ein ; tame Jupyter notebooks with emacs + (eval +overlay) ; run code, run (also, repls) + lookup ; navigate your code and its documentation + lsp ; M-x vscode + magit ; a git porcelain for Emacs + ;;make ; run make tasks from Emacs + ;;pass ; password manager for nerds + ;;pdf ; pdf enhancements + ;;prodigy ; FIXME managing external services & code builders + ;;terraform ; infrastructure as code + ;;tmux ; an API for interacting with tmux + tree-sitter ; syntax and parsing, sitting in a tree... + ;;upload ; map local to remote projects via ssh/ftp + + :os + (:if (featurep :system 'macos) macos) ; improve compatibility with macOS + ;;tty ; improve the terminal Emacs experience + + :lang + agda ; types of types of types of types... + ;;beancount ; mind the GAAP + ;;(cc +lsp) ; C > C++ == 1 + clojure ; java with a lisp + common-lisp ; if you've seen one lisp, you've seen them all + ;;coq ; proofs-as-programs + ;;crystal ; ruby at the speed of c + ;;csharp ; unity, .NET, and mono shenanigans + ;;data ; config/data formats + (dart +flutter) ; paint ui and not much else + ;;dhall + ;;elixir ; erlang done right + ;;elm ; care for a cup of TEA? + emacs-lisp ; drown in parentheses + ;;erlang ; an elegant language for a more civilized age + ;;ess ; emacs speaks statistics + ;;factor + ;;faust ; dsp, but you get to keep your soul + ;;fortran ; in FORTRAN, GOD is REAL (unless declared INTEGER) + ;;fsharp ; ML stands for Microsoft's Language + ;;fstar ; (dependent) types and (monadic) effects and Z3 + ;;gdscript ; the language you waited for + ;;(go +lsp) ; the hipster dialect + ;;(graphql +lsp) ; Give queries a REST + (haskell +lsp) ; a language that's lazier than I am + ;;hy ; readability of scheme w/ speed of python + idris ; a language you can depend on + json ; At least it ain't XML + ;;(java +lsp) ; the poster child for carpal tunnel syndrome + ;;javascript ; all(hope(abandon(ye(who(enter(here)))))) + ;;julia ; a better, faster MATLAB + ;;kotlin ; a better, slicker Java(Script) + ;;latex ; writing papers in Emacs has never been so fun + ;;lean ; for folks with too much to prove + ;;ledger ; be audit you can be + ;;lua ; one-based indices? one-based indices + (markdown +grip) ; writing docs for people to ignore + ;;nim ; python + lisp at the speed of c + nix ; I hereby declare "nix geht mehr!" + ocaml ; an objective camel + org ; organize your plain life in plain text + ;;php ; perl's insecure younger brother + ;;plantuml ; diagrams for confusing people more + ;;graphviz ; diagrams for confusing yourself even more + purescript ; javascript, but functional + python ; beautiful is better than ugly + ;;qt ; the 'cutest' gui framework ever + ;;racket ; a DSL for DSLs + ;;raku ; the artist formerly known as perl6 + ;;rest ; Emacs as a REST client + ;;rst ; ReST in peace + ;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"} + (rust +lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap() + ;;scala ; java, but good + (scheme +guile) ; a fully conniving family of lisps + sh ; she sells {ba,z,fi}sh shells on the C xor + ;;sml + ;;solidity ; do you need a blockchain? No. + ;;swift ; who asked for emoji variables? + ;;terra ; Earth and Moon in alignment for performance. + ;;web ; the tubes + yaml ; JSON, but readable + zig ; C, but simpler + + :email + ;;(mu4e +org +gmail) + ;;notmuch + ;;(wanderlust +gmail) + + :app + ;;calendar + ;;emms + ;;everywhere ; *leave* Emacs!? You must be joking + ;;irc ; how neckbeards socialize + ;;(rss +org) ; emacs as an RSS reader + + :config + ;;literate + (default +bindings +smartparens)) diff --git a/dotfiles/doom/packages.el b/dotfiles/doom/packages.el new file mode 100644 index 0000000..5fc46e4 --- /dev/null +++ b/dotfiles/doom/packages.el @@ -0,0 +1,51 @@ +;; -*- no-byte-compile: t; -*- +;;; $DOOMDIR/packages.el + +;; To install a package with Doom you must declare them here and run 'doom sync' +;; on the command line, then restart Emacs for the changes to take effect -- or +;; use 'M-x doom/reload'. + + +;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror: +;; (package! some-package) + +;; To install a package directly from a remote git repo, you must specify a +;; `:recipe'. You'll find documentation on what `:recipe' accepts here: +;; https://github.com/radian-software/straight.el#the-recipe-format +;; (package! another-package +;; :recipe (:host github :repo "username/repo")) + +;; If the package you are trying to install does not contain a PACKAGENAME.el +;; file, or is located in a subdirectory of the repo, you'll need to specify +;; `:files' in the `:recipe': +;; (package! this-package +;; :recipe (:host github :repo "username/repo" +;; :files ("some-file.el" "src/lisp/*.el"))) + +;; If you'd like to disable a package included with Doom, you can do so here +;; with the `:disable' property: +;; (package! builtin-package :disable t) + +;; You can override the recipe of a built in package without having to specify +;; all the properties for `:recipe'. These will inherit the rest of its recipe +;; from Doom or MELPA/ELPA/Emacsmirror: +;; (package! builtin-package :recipe (:nonrecursive t)) +;; (package! builtin-package-2 :recipe (:repo "myfork/package")) + +;; Specify a `:branch' to install a package from a particular branch or tag. +;; This is required for some packages whose default branch isn't 'master' (which +;; our package manager can't deal with; see radian-software/straight.el#279) +;; (package! builtin-package :recipe (:branch "develop")) + +;; Use `:pin' to specify a particular commit to install. +;; (package! builtin-package :pin "1a2b3c4d5e") + + +;; Doom's packages are pinned to a specific commit and updated from release to +;; release. The `unpin!' macro allows you to unpin single packages... +;; (unpin! pinned-package) +;; ...or multiple packages +;; (unpin! pinned-package another-pinned-package) +;; ...Or *all* packages (NOT RECOMMENDED; will likely break things) +;; (unpin! t) + diff --git a/dotfiles/niri/default.nix b/dotfiles/niri/default.nix new file mode 100644 index 0000000..fd6853a --- /dev/null +++ b/dotfiles/niri/default.nix @@ -0,0 +1,39 @@ +{ config, lib, pkgs, ... }: +{ + environment = { + "NIXOS_OZONE_WL" = "1"; + }; + workspaces."01-dev" = {}; + workspaces."02-social" = {}; + workspaces."03-web" = {}; + workspaces."04-games" = {}; + + outputs."eDP-1" = { + scale = 1.9; + }; + input = { + keyboard.xkb = { + layout = "us,ru"; + options = "grp:caps_toggle"; + }; + }; + binds = with config.lib.niri.actions; { + "Mod+A".action = spawn "fuzzel"; + "Mod+Q".action = spawn "wezterm"; + "Mod+1".action = focus-workspace 1; + "Mod+2".action = focus-workspace 2; + "Mod+3".action = focus-workspace 3; + "Mod+4".action = focus-workspace 4; + "Mod+5".action = focus-workspace 5; + "Mod+Left".action = focus-column-left; + "Mod+Right".action = focus-column-right; + "Mod+Shift+Left".action = set-column-width "-5%"; + "Mod+Shift+Right".action = set-column-width "+5%"; + "Mod+Shift+H".action = move-column-left; + "Mod+Shift+L".action = move-column-right; + "Mod+F".action = fullscreen-window; + "Mod+Shift+E".action = quit { skip-confirmation = true; }; + "Mod+C".action = close-window; + "Mod+Shift+R".action = screenshot { write-to-disk = false; }; + }; +} diff --git a/flake.lock b/flake.lock index d27287c..d931b31 100644 --- a/flake.lock +++ b/flake.lock @@ -1,35 +1,108 @@ { "nodes": { - "aquamarine": { + "base16": { "inputs": { - "hyprutils": [ - "hyprland", - "hyprutils" - ], - "hyprwayland-scanner": [ - "hyprland", - "hyprwayland-scanner" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] + "fromYaml": "fromYaml" }, "locked": { - "lastModified": 1731774881, - "narHash": "sha256-1Dxryiw8u2ejntxrrv3sMtIE8WHKxmlN4KeH+uMGbmc=", - "owner": "hyprwm", - "repo": "aquamarine", - "rev": "b31a6a4da8199ae3489057db7d36069a70749a56", + "lastModified": 1746562888, + "narHash": "sha256-YgNJQyB5dQiwavdDFBMNKk1wyS77AtdgDk/VtU6wEaI=", + "owner": "SenchoPens", + "repo": "base16.nix", + "rev": "806a1777a5db2a1ef9d5d6f493ef2381047f2b89", "type": "github" }, "original": { - "owner": "hyprwm", - "repo": "aquamarine", + "owner": "SenchoPens", + "repo": "base16.nix", + "type": "github" + } + }, + "base16-fish": { + "flake": false, + "locked": { + "lastModified": 1622559957, + "narHash": "sha256-PebymhVYbL8trDVVXxCvZgc0S5VxI7I1Hv4RMSquTpA=", + "owner": "tomyun", + "repo": "base16-fish", + "rev": "2f6dd973a9075dabccd26f1cded09508180bf5fe", + "type": "github" + }, + "original": { + "owner": "tomyun", + "repo": "base16-fish", + "type": "github" + } + }, + "base16-helix": { + "flake": false, + "locked": { + "lastModified": 1748408240, + "narHash": "sha256-9M2b1rMyMzJK0eusea0x3lyh3mu5nMeEDSc4RZkGm+g=", + "owner": "tinted-theming", + "repo": "base16-helix", + "rev": "6c711ab1a9db6f51e2f6887cc3345530b33e152e", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-helix", + "type": "github" + } + }, + "base16-vim": { + "flake": false, + "locked": { + "lastModified": 1732806396, + "narHash": "sha256-e0bpPySdJf0F68Ndanwm+KWHgQiZ0s7liLhvJSWDNsA=", + "owner": "tinted-theming", + "repo": "base16-vim", + "rev": "577fe8125d74ff456cf942c733a85d769afe58b7", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-vim", + "rev": "577fe8125d74ff456cf942c733a85d769afe58b7", + "type": "github" + } + }, + "doomemacs": { + "flake": false, + "locked": { + "lastModified": 1748878455, + "narHash": "sha256-CYf3CDfPZ32qwyatieklNmDstNOSQJylw8V6Qgbvzwc=", + "owner": "doomemacs", + "repo": "doomemacs", + "rev": "313e8fb48be6381aac7b42c6c742d6d363cc7d35", + "type": "github" + }, + "original": { + "owner": "doomemacs", + "repo": "doomemacs", + "type": "github" + } + }, + "emacs-overlay": { + "inputs": { + "nixpkgs": [ + "nix-doom-emacs-unstraightened" + ], + "nixpkgs-stable": [ + "nix-doom-emacs-unstraightened" + ] + }, + "locked": { + "lastModified": 1749350261, + "narHash": "sha256-0klpZdOcXEDgTD1y4ipXLOrGfiBGEeKbjrKh0h1KmXc=", + "owner": "nix-community", + "repo": "emacs-overlay", + "rev": "d084c3caceadedc53585bc24897fd2360bd85405", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "emacs-overlay", "type": "github" } }, @@ -39,11 +112,11 @@ "rust-analyzer-src": "rust-analyzer-src" }, "locked": { - "lastModified": 1731738660, - "narHash": "sha256-tIXhc9lX1b030v812yVJanSR37OnpTb/OY5rU3TbShA=", + "lastModified": 1749364715, + "narHash": "sha256-Yf3v730dtGhrGNtdlwnyBEr9kCXSEh1pS8TFfpCahJY=", "owner": "nix-community", "repo": "fenix", - "rev": "e10ba121773f754a30d31b6163919a3e404a434f", + "rev": "ebaf9f5fd6f15685091c2181a5b685120e2606f5", "type": "github" }, "original": { @@ -52,14 +125,29 @@ "type": "github" } }, + "firefox-gnome-theme": { + "flake": false, + "locked": { + "lastModified": 1748383148, + "narHash": "sha256-pGvD/RGuuPf/4oogsfeRaeMm6ipUIznI2QSILKjKzeA=", + "owner": "rafaelmardojai", + "repo": "firefox-gnome-theme", + "rev": "4eb2714fbed2b80e234312611a947d6cb7d70caf", + "type": "github" + }, + "original": { + "owner": "rafaelmardojai", + "repo": "firefox-gnome-theme", + "type": "github" + } + }, "flake-compat": { - "flake": false, "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "lastModified": 1747046372, + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", "owner": "edolstra", "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", "type": "github" }, "original": { @@ -68,64 +156,92 @@ "type": "github" } }, - "flake-utils": { + "flake-parts": { "inputs": { - "systems": "systems_2" + "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "lastModified": 1748821116, + "narHash": "sha256-F82+gS044J1APL0n4hH50GYdPRv/5JWm34oCJYmVKdE=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "49f0870db23e8c1ca0b5259734a02cd9e1e371a1", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "hercules-ci", + "repo": "flake-parts", "type": "github" } }, - "flake-utils_2": { + "flake-parts_2": { "inputs": { - "systems": "systems_3" + "nixpkgs-lib": [ + "stylix", + "nixpkgs" + ] }, "locked": { - "lastModified": 1726560853, - "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", + "lastModified": 1743550720, + "narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "c621e8422220273271f52058f618c94e405bb0f5", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", + "owner": "hercules-ci", + "repo": "flake-parts", "type": "github" } }, - "freetype2": { + "fromYaml": { "flake": false, "locked": { - "lastModified": 1687587065, - "narHash": "sha256-+Fh+/k+NWL5Ow9sDLtp8Cv/8rLNA1oByQQCIQS/bysY=", - "owner": "wez", - "repo": "freetype2", - "rev": "e4586d960f339cf75e2e0b34aee30a0ed8353c0d", + "lastModified": 1731966426, + "narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=", + "owner": "SenchoPens", + "repo": "fromYaml", + "rev": "106af9e2f715e2d828df706c386a685698f3223b", "type": "github" }, "original": { - "owner": "wez", - "repo": "freetype2", - "rev": "e4586d960f339cf75e2e0b34aee30a0ed8353c0d", + "owner": "SenchoPens", + "repo": "fromYaml", + "type": "github" + } + }, + "git-hooks": { + "inputs": { + "flake-compat": [ + "stylix", + "flake-compat" + ], + "gitignore": "gitignore", + "nixpkgs": [ + "stylix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1747372754, + "narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", "type": "github" } }, "gitignore": { "inputs": { "nixpkgs": [ - "hyprland", - "pre-commit-hooks", + "stylix", + "git-hooks", "nixpkgs" ] }, @@ -143,20 +259,20 @@ "type": "github" } }, - "harfbuzz": { + "gnome-shell": { "flake": false, "locked": { - "lastModified": 1711722720, - "narHash": "sha256-GdxcAPx5QyniSHPAN1ih28AD9JLUPR0ItqW9JEsl3pU=", - "owner": "harfbuzz", - "repo": "harfbuzz", - "rev": "63973005bc07aba599b47fdd4cf788647b601ccd", + "lastModified": 1744584021, + "narHash": "sha256-0RJ4mJzf+klKF4Fuoc8VN8dpQQtZnKksFmR2jhWE1Ew=", + "owner": "GNOME", + "repo": "gnome-shell", + "rev": "52c517c8f6c199a1d6f5118fae500ef69ea845ae", "type": "github" }, "original": { - "owner": "harfbuzz", - "ref": "8.4.0", - "repo": "harfbuzz", + "owner": "GNOME", + "ref": "48.1", + "repo": "gnome-shell", "type": "github" } }, @@ -167,11 +283,11 @@ ] }, "locked": { - "lastModified": 1731832479, - "narHash": "sha256-icDDuYwJ0avTMZTxe1qyU/Baht5JOqw4pb5mWpR+hT0=", + "lastModified": 1749243446, + "narHash": "sha256-P1gumhZN5N9q+39ndePHYrtwOwY1cGx+VoXGl+vTm7A=", "owner": "nix-community", "repo": "home-manager", - "rev": "5056a1cf0ce7c2a08ab50713b6c4af77975f6111", + "rev": "2d7d65f65b61fdfce23278e59ca266ddd0ef0a36", "type": "github" }, "original": { @@ -180,215 +296,136 @@ "type": "github" } }, - "hyprcursor": { + "home-manager_2": { "inputs": { - "hyprlang": [ - "hyprland", - "hyprlang" - ], "nixpkgs": [ - "hyprland", + "stylix", "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" ] }, "locked": { - "lastModified": 1728669738, - "narHash": "sha256-EDNAU9AYcx8OupUzbTbWE1d3HYdeG0wO6Msg3iL1muk=", - "owner": "hyprwm", - "repo": "hyprcursor", - "rev": "0264e698149fcb857a66a53018157b41f8d97bb0", + "lastModified": 1748737919, + "narHash": "sha256-5kvBbLYdp+n7Ftanjcs6Nv+UO6sBhelp6MIGJ9nWmjQ=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "5675a9686851d9626560052a032c4e14e533c1fa", "type": "github" }, "original": { - "owner": "hyprwm", - "repo": "hyprcursor", + "owner": "nix-community", + "repo": "home-manager", "type": "github" } }, - "hyprland": { - "inputs": { - "aquamarine": "aquamarine", - "hyprcursor": "hyprcursor", - "hyprland-protocols": "hyprland-protocols", - "hyprlang": "hyprlang", - "hyprutils": "hyprutils", - "hyprwayland-scanner": "hyprwayland-scanner", - "nixpkgs": [ - "nixpkgs" - ], - "pre-commit-hooks": "pre-commit-hooks", - "systems": "systems", - "xdph": "xdph" - }, - "locked": { - "lastModified": 1731799110, - "narHash": "sha256-wwFbcWfVYGwemw/GeSdXrSXmNjjdTUw0N8DU8McyZU8=", - "ref": "refs/heads/main", - "rev": "af83c825138386d269d69b3ef755b844a2eacb22", - "revCount": 5462, - "submodules": true, - "type": "git", - "url": "https://github.com/hyprwm/Hyprland" - }, - "original": { - "submodules": true, - "type": "git", - "url": "https://github.com/hyprwm/Hyprland" - } - }, - "hyprland-protocols": { + "home-manager_3": { "inputs": { "nixpkgs": [ - "hyprland", + "zen-browser", "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" ] }, "locked": { - "lastModified": 1728345020, - "narHash": "sha256-xGbkc7U/Roe0/Cv3iKlzijIaFBNguasI31ynL2IlEoM=", - "owner": "hyprwm", - "repo": "hyprland-protocols", - "rev": "a7c183800e74f337753de186522b9017a07a8cee", + "lastModified": 1743604125, + "narHash": "sha256-ZD61DNbsBt1mQbinAaaEqKaJk2RFo9R/j+eYWeGMx7A=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "180fd43eea296e62ae68e079fcf56aba268b9a1a", "type": "github" }, "original": { - "owner": "hyprwm", - "repo": "hyprland-protocols", + "owner": "nix-community", + "repo": "home-manager", "type": "github" } }, - "hyprlang": { + "niri-flake": { "inputs": { - "hyprutils": [ - "hyprland", - "hyprutils" - ], + "niri-stable": "niri-stable", + "niri-unstable": "niri-unstable", "nixpkgs": [ - "hyprland", "nixpkgs" ], - "systems": [ - "hyprland", - "systems" - ] + "nixpkgs-stable": "nixpkgs-stable", + "xwayland-satellite-stable": "xwayland-satellite-stable", + "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1728168612, - "narHash": "sha256-AnB1KfiXINmuiW7BALYrKqcjCnsLZPifhb/7BsfPbns=", - "owner": "hyprwm", - "repo": "hyprlang", - "rev": "f054f2e44d6a0b74607a6bc0f52dba337a3db38e", + "lastModified": 1749396815, + "narHash": "sha256-vwr2vLETE4CSi4c6SFoQyP+uBUnvwPPQmn+1D1207ts=", + "owner": "sodiboo", + "repo": "niri-flake", + "rev": "e6db401ff0aa3b03507b4819f9a44deab3cfcf2f", "type": "github" }, "original": { - "owner": "hyprwm", - "repo": "hyprlang", + "owner": "sodiboo", + "repo": "niri-flake", "type": "github" } }, - "hyprutils": { - "inputs": { - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1731702627, - "narHash": "sha256-+JeO9gevnXannQxMfR5xzZtF4sYmSlWkX/BPmPx0mWk=", - "owner": "hyprwm", - "repo": "hyprutils", - "rev": "e911361a687753bbbdfe3b6a9eab755ecaf1d9e1", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprutils", - "type": "github" - } - }, - "hyprwayland-scanner": { - "inputs": { - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1726874836, - "narHash": "sha256-VKR0sf0PSNCB0wPHVKSAn41mCNVCnegWmgkrneKDhHM=", - "owner": "hyprwm", - "repo": "hyprwayland-scanner", - "rev": "500c81a9e1a76760371049a8d99e008ea77aa59e", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprwayland-scanner", - "type": "github" - } - }, - "libpng": { + "niri-stable": { "flake": false, "locked": { - "lastModified": 1549245649, - "narHash": "sha256-1+cRp0Ungme/OGfc9kGJbklYIWAFxk8Il1M+NV4KSgw=", - "owner": "glennrp", - "repo": "libpng", - "rev": "8439534daa1d3a5705ba92e653eda9251246dd61", + "lastModified": 1740117926, + "narHash": "sha256-mTTHA0RAaQcdYe+9A3Jx77cmmyLFHmRoZdd8RpWa+m8=", + "owner": "YaLTeR", + "repo": "niri", + "rev": "b94a5db8790339cf9134873d8b490be69e02ac71", "type": "github" }, "original": { - "owner": "glennrp", - "repo": "libpng", - "rev": "8439534daa1d3a5705ba92e653eda9251246dd61", + "owner": "YaLTeR", + "ref": "v25.02", + "repo": "niri", "type": "github" } }, - "naersk": { - "inputs": { - "nixpkgs": [ - "vnj", - "nixpkgs" - ] - }, + "niri-unstable": { + "flake": false, "locked": { - "lastModified": 1721727458, - "narHash": "sha256-r/xppY958gmZ4oTfLiHN0ZGuQ+RSTijDblVgVLFi1mw=", - "owner": "nix-community", - "repo": "naersk", - "rev": "3fb418eaf352498f6b6c30592e3beb63df42ef11", + "lastModified": 1749327170, + "narHash": "sha256-mBrxeWd7L8oAIh6G2PgKuZAzqyZMyjBpHEAcSSTbhJg=", + "owner": "YaLTeR", + "repo": "niri", + "rev": "f918eabe6a144e78c62c3fc0cfa7fe32e4623e5a", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "naersk", + "owner": "YaLTeR", + "repo": "niri", + "type": "github" + } + }, + "nix-doom-emacs-unstraightened": { + "inputs": { + "doomemacs": "doomemacs", + "emacs-overlay": "emacs-overlay", + "nixpkgs": [ + "nixpkgs" + ], + "systems": "systems" + }, + "locked": { + "lastModified": 1749371976, + "narHash": "sha256-YSnSDT5iYOnFTjPNO6eof2ebvQoxNBf1kfroV2vkp5s=", + "owner": "marienz", + "repo": "nix-doom-emacs-unstraightened", + "rev": "5f8d3eb387a72dc87616643b8a92b9490aa42f5d", + "type": "github" + }, + "original": { + "owner": "marienz", + "repo": "nix-doom-emacs-unstraightened", "type": "github" } }, "nixpkgs": { "locked": { - "lastModified": 1731319897, - "narHash": "sha256-PbABj4tnbWFMfBp6OcUK5iGy1QY+/Z96ZcLpooIbuEI=", + "lastModified": 1749143949, + "narHash": "sha256-QuUtALJpVrPnPeozlUG/y+oIMSLdptHxb3GK6cpSVhA=", "owner": "nixos", "repo": "nixpkgs", - "rev": "dc460ec76cbff0e66e269457d7b728432263166c", + "rev": "d3d2d80a2191a73d1e86456a751b83aa13085d7d", "type": "github" }, "original": { @@ -398,81 +435,100 @@ "type": "github" } }, + "nixpkgs-lib": { + "locked": { + "lastModified": 1748740939, + "narHash": "sha256-rQaysilft1aVMwF14xIdGS3sj1yHlI6oKQNBRTF40cc=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "656a64127e9d791a334452c6b6606d17539476e2", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" + } + }, "nixpkgs-stable": { "locked": { - "lastModified": 1730741070, - "narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=", + "lastModified": 1749237914, + "narHash": "sha256-N5waoqWt8aMr/MykZjSErOokYH6rOsMMXu3UOVH5kiw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d063c1dd113c91ab27959ba540c0d9753409edf3", + "rev": "70c74b02eac46f4e4aa071e45a6189ce0f6d9265", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-24.05", + "ref": "nixos-25.05", "repo": "nixpkgs", "type": "github" } }, "nixpkgs_2": { "locked": { - "lastModified": 1731845251, - "narHash": "sha256-hsVSCCrPkQ0cZkgX9P4vKYQRkrjSlkSg5cZa7Fe5FgA=", + "lastModified": 1749143949, + "narHash": "sha256-QuUtALJpVrPnPeozlUG/y+oIMSLdptHxb3GK6cpSVhA=", "owner": "nixos", "repo": "nixpkgs", - "rev": "37debf5e7dd392e78a41385f45e385c84ab37d21", + "rev": "d3d2d80a2191a73d1e86456a751b83aa13085d7d", "type": "github" }, "original": { "owner": "nixos", - "ref": "release-24.11", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } }, - "pre-commit-hooks": { + "nur": { "inputs": { - "flake-compat": "flake-compat", - "gitignore": "gitignore", + "flake-parts": [ + "stylix", + "flake-parts" + ], "nixpkgs": [ - "hyprland", + "stylix", "nixpkgs" ], - "nixpkgs-stable": "nixpkgs-stable" + "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1731363552, - "narHash": "sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf+InnSMT4jlMU=", - "owner": "cachix", - "repo": "git-hooks.nix", - "rev": "cd1af27aa85026ac759d5d3fccf650abe7e1bbf0", + "lastModified": 1748730660, + "narHash": "sha256-5LKmRYKdPuhm8j5GFe3AfrJL8dd8o57BQ34AGjJl1R0=", + "owner": "nix-community", + "repo": "NUR", + "rev": "2c0bc52fe14681e9ef60e3553888c4f086e46ecb", "type": "github" }, "original": { - "owner": "cachix", - "repo": "git-hooks.nix", + "owner": "nix-community", + "repo": "NUR", "type": "github" } }, "root": { "inputs": { "fenix": "fenix", + "flake-parts": "flake-parts", "home-manager": "home-manager", - "hyprland": "hyprland", + "niri-flake": "niri-flake", + "nix-doom-emacs-unstraightened": "nix-doom-emacs-unstraightened", "nixpkgs": "nixpkgs_2", "sops-nix": "sops-nix", - "vnj": "vnj", - "wezterm": "wezterm" + "stylix": "stylix", + "zen-browser": "zen-browser" } }, "rust-analyzer-src": { "flake": false, "locked": { - "lastModified": 1731693936, - "narHash": "sha256-uHUUS1WPyW6ohp5Bt3dAZczUlQ22vOn7YZF8vaPKIEw=", + "lastModified": 1749194353, + "narHash": "sha256-i6nNh8It11J9afo8QAR1Vwk4qKz/byIc5yq0rU3SW7M=", "owner": "rust-lang", "repo": "rust-analyzer", - "rev": "1b90e979aeee8d1db7fe14603a00834052505497", + "rev": "6acff6c1f8306a0a1d29be8fd1ffa63cff1ad598", "type": "github" }, "original": { @@ -482,48 +538,6 @@ "type": "github" } }, - "rust-overlay": { - "inputs": { - "nixpkgs": [ - "vnj", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1731820690, - "narHash": "sha256-/hHFMTD+FGURXZ4JtfXoIgpy87zL505pVi6AL76Wc+U=", - "owner": "oxalica", - "repo": "rust-overlay", - "rev": "bbab2ab9e1932133b1996baa1dc00fefe924ca81", - "type": "github" - }, - "original": { - "owner": "oxalica", - "repo": "rust-overlay", - "type": "github" - } - }, - "rust-overlay_2": { - "inputs": { - "nixpkgs": [ - "wezterm", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1729477859, - "narHash": "sha256-r0VyeJxy4O4CgTB/PNtfQft9fPfN1VuGvnZiCxDArvg=", - "owner": "oxalica", - "repo": "rust-overlay", - "rev": "ada8266712449c4c0e6ee6fcbc442b3c217c79e1", - "type": "github" - }, - "original": { - "owner": "oxalica", - "repo": "rust-overlay", - "type": "github" - } - }, "sops-nix": { "inputs": { "nixpkgs": [ @@ -531,11 +545,11 @@ ] }, "locked": { - "lastModified": 1731850885, - "narHash": "sha256-V5eA7YtZwUnjtDK8hHoiXB17hBKZ+L6kpgR0UxKehtQ=", + "lastModified": 1747603214, + "narHash": "sha256-lAblXm0VwifYCJ/ILPXJwlz0qNY07DDYdLD+9H+Wc8o=", "owner": "Mic92", "repo": "sops-nix", - "rev": "793c07f331a831e4321038e3e8ac2e503167af8b", + "rev": "8d215e1c981be3aa37e47aeabd4e61bb069548fd", "type": "github" }, "original": { @@ -544,18 +558,55 @@ "type": "github" } }, + "stylix": { + "inputs": { + "base16": "base16", + "base16-fish": "base16-fish", + "base16-helix": "base16-helix", + "base16-vim": "base16-vim", + "firefox-gnome-theme": "firefox-gnome-theme", + "flake-compat": "flake-compat", + "flake-parts": "flake-parts_2", + "git-hooks": "git-hooks", + "gnome-shell": "gnome-shell", + "home-manager": "home-manager_2", + "nixpkgs": [ + "nixpkgs" + ], + "nur": "nur", + "systems": "systems_2", + "tinted-foot": "tinted-foot", + "tinted-kitty": "tinted-kitty", + "tinted-schemes": "tinted-schemes", + "tinted-tmux": "tinted-tmux", + "tinted-zed": "tinted-zed" + }, + "locked": { + "lastModified": 1749398498, + "narHash": "sha256-Usx6sGnT/D8ZnWiZg+J1OY3dp4ZssMQiN1XeXcsL/cs=", + "owner": "danth", + "repo": "stylix", + "rev": "5869510e48e64d916dc6905dc664a02b0f85f1bd", + "type": "github" + }, + "original": { + "owner": "danth", + "repo": "stylix", + "type": "github" + } + }, "systems": { "locked": { - "lastModified": 1689347949, - "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "owner": "nix-systems", - "repo": "default-linux", - "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "type": "github" }, "original": { "owner": "nix-systems", - "repo": "default-linux", + "repo": "default", "type": "github" } }, @@ -574,127 +625,160 @@ "type": "github" } }, - "systems_3": { + "tinted-foot": { + "flake": false, "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "lastModified": 1726913040, + "narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=", + "owner": "tinted-theming", + "repo": "tinted-foot", + "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4", "type": "github" }, "original": { - "owner": "nix-systems", - "repo": "default", + "owner": "tinted-theming", + "repo": "tinted-foot", + "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4", "type": "github" } }, - "vnj": { - "inputs": { - "flake-utils": "flake-utils", - "naersk": "naersk", - "nixpkgs": [ - "nixpkgs" - ], - "rust-overlay": "rust-overlay" - }, + "tinted-kitty": { + "flake": false, "locked": { - "lastModified": 1731858195, - "narHash": "sha256-edyX7iTnoDU+fjLlNxFZL/iKW8tu6sPjm22beH0NbUM=", - "ref": "refs/heads/master", - "rev": "f67dcd8f2a86c44ce01ee6fe0ee394b52e7ebb98", - "revCount": 1, - "type": "git", - "url": "https://git.viende.su/VienDesu/vnj.git" - }, - "original": { - "type": "git", - "url": "https://git.viende.su/VienDesu/vnj.git" - } - }, - "wezterm": { - "inputs": { - "flake-utils": "flake-utils_2", - "freetype2": "freetype2", - "harfbuzz": "harfbuzz", - "libpng": "libpng", - "nixpkgs": [ - "nixpkgs" - ], - "rust-overlay": "rust-overlay_2", - "zlib": "zlib" - }, - "locked": { - "dir": "nix", - "lastModified": 1731625276, - "narHash": "sha256-NbgX4nfGJYFflQauJZMTJrpgTD5oY3hgs+KNE3JJgSc=", - "owner": "wez", - "repo": "wezterm", - "rev": "979df7826965348345a3305ed889a4b9aef838e1", + "lastModified": 1735730497, + "narHash": "sha256-4KtB+FiUzIeK/4aHCKce3V9HwRvYaxX+F1edUrfgzb8=", + "owner": "tinted-theming", + "repo": "tinted-kitty", + "rev": "de6f888497f2c6b2279361bfc790f164bfd0f3fa", "type": "github" }, "original": { - "dir": "nix", - "owner": "wez", - "repo": "wezterm", + "owner": "tinted-theming", + "repo": "tinted-kitty", "type": "github" } }, - "xdph": { + "tinted-schemes": { + "flake": false, + "locked": { + "lastModified": 1748180480, + "narHash": "sha256-7n0XiZiEHl2zRhDwZd/g+p38xwEoWtT0/aESwTMXWG4=", + "owner": "tinted-theming", + "repo": "schemes", + "rev": "87d652edd26f5c0c99deda5ae13dfb8ece2ffe31", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "schemes", + "type": "github" + } + }, + "tinted-tmux": { + "flake": false, + "locked": { + "lastModified": 1748740859, + "narHash": "sha256-OEM12bg7F4N5WjZOcV7FHJbqRI6jtCqL6u8FtPrlZz4=", + "owner": "tinted-theming", + "repo": "tinted-tmux", + "rev": "57d5f9683ff9a3b590643beeaf0364da819aedda", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-tmux", + "type": "github" + } + }, + "tinted-zed": { + "flake": false, + "locked": { + "lastModified": 1725758778, + "narHash": "sha256-8P1b6mJWyYcu36WRlSVbuj575QWIFZALZMTg5ID/sM4=", + "owner": "tinted-theming", + "repo": "base16-zed", + "rev": "122c9e5c0e6f27211361a04fae92df97940eccf9", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-zed", + "type": "github" + } + }, + "treefmt-nix": { "inputs": { - "hyprland-protocols": [ - "hyprland", - "hyprland-protocols" - ], - "hyprlang": [ - "hyprland", - "hyprlang" - ], - "hyprutils": [ - "hyprland", - "hyprutils" - ], - "hyprwayland-scanner": [ - "hyprland", - "hyprwayland-scanner" - ], "nixpkgs": [ - "hyprland", + "stylix", + "nur", "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" ] }, "locked": { - "lastModified": 1731703417, - "narHash": "sha256-rheDc/7C+yI+QspYr9J2z9kQ5P9F4ATapI7qyFAe1XA=", - "owner": "hyprwm", - "repo": "xdg-desktop-portal-hyprland", - "rev": "8070f36deec723de71e7557441acb17e478204d3", + "lastModified": 1733222881, + "narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "49717b5af6f80172275d47a418c9719a31a78b53", "type": "github" }, "original": { - "owner": "hyprwm", - "repo": "xdg-desktop-portal-hyprland", + "owner": "numtide", + "repo": "treefmt-nix", "type": "github" } }, - "zlib": { + "xwayland-satellite-stable": { "flake": false, "locked": { - "lastModified": 1484501380, - "narHash": "sha256-j5b6aki1ztrzfCqu8y729sPar8GpyQWIrajdzpJC+ww=", - "owner": "madler", - "repo": "zlib", - "rev": "cacf7f1d4e3d44d871b605da3b647f07d718623f", + "lastModified": 1739246919, + "narHash": "sha256-/hBM43/Gd0/tW+egrhlWgOIISeJxEs2uAOIYVpfDKeU=", + "owner": "Supreeeme", + "repo": "xwayland-satellite", + "rev": "44590a416d4a3e8220e19e29e0b6efe64a80315d", "type": "github" }, "original": { - "owner": "madler", - "ref": "v1.2.11", - "repo": "zlib", + "owner": "Supreeeme", + "ref": "v0.5.1", + "repo": "xwayland-satellite", + "type": "github" + } + }, + "xwayland-satellite-unstable": { + "flake": false, + "locked": { + "lastModified": 1749315541, + "narHash": "sha256-bEik1BfVOFnWvtOrcOHluos/edJ8f+G2y1QySbt/0Ak=", + "owner": "Supreeeme", + "repo": "xwayland-satellite", + "rev": "da2ecb5be816de35e2efe23a408a1c49fe8b11ba", + "type": "github" + }, + "original": { + "owner": "Supreeeme", + "repo": "xwayland-satellite", + "type": "github" + } + }, + "zen-browser": { + "inputs": { + "home-manager": "home-manager_3", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1749401856, + "narHash": "sha256-z7MJ2+kkfhYhunjhojMiayHBlwy50eAcUskVWcRd45U=", + "owner": "0xc000022070", + "repo": "zen-browser-flake", + "rev": "b0ce6a736d2102ab8ad2ff1b8344fb0d9b031e0b", + "type": "github" + }, + "original": { + "owner": "0xc000022070", + "repo": "zen-browser-flake", "type": "github" } } diff --git a/flake.nix b/flake.nix index eb88b7a..03cf4cb 100644 --- a/flake.nix +++ b/flake.nix @@ -1,54 +1,49 @@ { - description = "Nero"; + description = "A very basic flake"; inputs = { - nixpkgs.url = "github:nixos/nixpkgs?ref=release-24.11"; - vnj = { - url = "git+https://git.viende.su/VienDesu/vnj.git"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - - sops-nix = { - url = "github:Mic92/sops-nix"; - inputs.nixpkgs.follows = "nixpkgs"; - }; + nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; + fenix.url = "github:nix-community/fenix"; + flake-parts.url = "github:hercules-ci/flake-parts"; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; - fenix.url = "github:nix-community/fenix"; - - hyprland = { - url = "git+https://github.com/hyprwm/Hyprland?submodules=1"; + niri-flake = { + url = "github:sodiboo/niri-flake"; inputs.nixpkgs.follows = "nixpkgs"; }; - - wezterm = { - url = "github:wez/wezterm?dir=nix"; + zen-browser = { + url = "github:0xc000022070/zen-browser-flake"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + sops-nix = { + url = "github:Mic92/sops-nix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + nix-doom-emacs-unstraightened = { + url = "github:marienz/nix-doom-emacs-unstraightened"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + stylix = { + url = "github:danth/stylix"; inputs.nixpkgs.follows = "nixpkgs"; }; }; - outputs = { - nixpkgs, - sops-nix, - home-manager, - ... - }@inputs: { - nixosConfigurations.lil-maid = nixpkgs.lib.nixosSystem { - system = "x86_64-linux"; - - modules = [ - sops-nix.nixosModules.sops - home-manager.nixosModules.home-manager - - ./m - ./lil-maid + outputs = inputs@{ flake-parts, ... }: + flake-parts.lib.mkFlake { inherit inputs; } (_: { + imports = [ + ./hosts + ]; + systems = [ + "x86_64-linux" ]; - specialArgs = { - inherit inputs; + perSystem = { config, pkgs, ... }: { + devShells.default = pkgs.mkShell { + packages = with pkgs; [ sops ]; + }; }; - }; - }; + }); } diff --git a/hosts/default.nix b/hosts/default.nix new file mode 100644 index 0000000..e68ccbb --- /dev/null +++ b/hosts/default.nix @@ -0,0 +1,26 @@ +{ lib, inputs, ... }: +let + mkSystem = { config, system ? "x86_64-linux" }: (inputs.nixpkgs.lib.nixosSystem { + inherit system; + + modules = [ + ../modules + config + { + } + ]; + specialArgs = { + inherit inputs; + dotfiles = ../dotfiles; + }; + }); +in +{ + options = {}; + config = { + flake.nixosConfigurations = { + eva = mkSystem { config = ./eva; }; + lil-maid = mkSystem { config = ./lil-maid; }; + }; + }; +} diff --git a/hosts/eva/default.nix b/hosts/eva/default.nix new file mode 100644 index 0000000..4ce8925 --- /dev/null +++ b/hosts/eva/default.nix @@ -0,0 +1,6 @@ +{ nixpkgs, inputs, ... }: +{ + imports = []; + + system.stateVersion = "25.11"; +} diff --git a/hosts/lil-maid/default.nix b/hosts/lil-maid/default.nix new file mode 100644 index 0000000..fe66999 --- /dev/null +++ b/hosts/lil-maid/default.nix @@ -0,0 +1,17 @@ +{ nixpkgs, lib, ... }: +{ + imports = [ + ./hw.nix + ./dev.nix + ./sw.nix + ./fs.nix + ./niri.nix + ./home + ]; + + nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ + "slack" + ]; + + system.stateVersion = "25.11"; +} diff --git a/hosts/lil-maid/dev.nix b/hosts/lil-maid/dev.nix new file mode 100644 index 0000000..915e4b2 --- /dev/null +++ b/hosts/lil-maid/dev.nix @@ -0,0 +1,9 @@ +{ config, lib, pkgs, ... }: + +{ + fonts.packages = with pkgs; [ + nerd-fonts.fira-code + nerd-fonts.jetbrains-mono + ]; + fonts.fontDir.enable = true; +} diff --git a/lil-maid/fs.nix b/hosts/lil-maid/fs.nix similarity index 56% rename from lil-maid/fs.nix rename to hosts/lil-maid/fs.nix index 8192311..f746529 100644 --- a/lil-maid/fs.nix +++ b/hosts/lil-maid/fs.nix @@ -1,4 +1,8 @@ { + boot.loader = { + systemd-boot.enable = true; + efi.canTouchEfiVariables = true; + }; fileSystems = { "/" = { device = "/dev/disk/by-label/nixos"; @@ -9,14 +13,5 @@ fsType = "vfat"; options = [ "fmask=0077" "dmask=0077" ]; }; - "/secrets" = - { device = "/dev/disk/by-label/secrets"; - fsType = "btrfs"; - options = [ "nofail" ]; - }; }; - - swapDevices = - [ { device = "/dev/disk/by-label/swap"; } - ]; } diff --git a/hosts/lil-maid/home/cat.jpg b/hosts/lil-maid/home/cat.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0059fbc87a8f23fad5b41d0a8b44ccb01a6a3c2f GIT binary patch literal 7572 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 LTx0K~AJ_j2;Bfbr literal 0 HcmV?d00001 diff --git a/hosts/lil-maid/home/default.nix b/hosts/lil-maid/home/default.nix new file mode 100644 index 0000000..2018000 --- /dev/null +++ b/hosts/lil-maid/home/default.nix @@ -0,0 +1,14 @@ +{ inputs, dotfiles, ... }: +{ + imports = [ + ./nero.nix + ]; + + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + extraSpecialArgs = { inherit inputs dotfiles; }; + }; + + users.mutableUsers = false; +} diff --git a/hosts/lil-maid/home/nero.nix b/hosts/lil-maid/home/nero.nix new file mode 100644 index 0000000..4bc4735 --- /dev/null +++ b/hosts/lil-maid/home/nero.nix @@ -0,0 +1,83 @@ +{ config, lib, pkgs, ... }: +{ + sops.secrets."users/nero/passwordHash" = { + neededForUsers = true; + sopsFile = ../../../secrets/users.yaml; + }; + + users.users.nero = { + isNormalUser = true; + uid = 1000; + hashedPasswordFile = config.sops.secrets."users/nero/passwordHash".path; + + extraGroups = [ "networkmanager" "wheel" "adbuser" ]; + }; + + home-manager.users.nero = args@{ config, lib, inputs, pkgs, dotfiles, ... }: { + home.stateVersion = "25.11"; + imports = [ + inputs.zen-browser.homeModules.beta + inputs.niri-flake.homeModules.niri + inputs.nix-doom-emacs-unstraightened.homeModule + ]; + + stylix = { + enable = true; + autoEnable = true; + base16Scheme = "${pkgs.base16-schemes}/share/themes/ayu-mirage.yaml"; + polarity = "dark"; + fonts = { + monospace = { + package = pkgs.nerd-fonts.jetbrains-mono; + name = "JetBrains Mono"; + }; + }; + }; + + services.mako = { + enable = true; + }; + + programs.zen-browser = { + enable = true; + policies = { + DisableAppUpdate = true; + DisableTelemetry = true; + }; + }; + programs.bash = { + enable = true; + bashrcExtra = '' + eval "$(direnv hook bash)" + ''; + }; + programs.direnv = { + enable = true; + enableBashIntegration = true; + nix-direnv.enable = true; + }; + programs.doom-emacs = { + enable = true; + emacs = pkgs.emacs-pgtk; + doomDir = dotfiles + "/doom"; + }; + programs.waybar.settings.mainBar.layer = "top"; + programs.wezterm = { + enable = true; + enableBashIntegration = true; + extraConfig = '' + return { + enable_wayland = true + } + ''; + }; + programs.git = { + enable = true; + lfs.enable = true; + userName = "Aleksandr"; + userEmail = "nerodono0@gmail.com"; + }; + + programs.niri.settings = import (dotfiles + "/niri") args; + }; +} diff --git a/lil-maid/hw.nix b/hosts/lil-maid/hw.nix similarity index 63% rename from lil-maid/hw.nix rename to hosts/lil-maid/hw.nix index bca3ae0..570b007 100644 --- a/lil-maid/hw.nix +++ b/hosts/lil-maid/hw.nix @@ -1,27 +1,17 @@ { pkgs, config, lib, modulesPath, ... }: { - environment.systemPackages = with pkgs; [ - # Brightness control for display. - brightnessctl - ]; - imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; - systemd.tmpfiles.settings = { - "10-secrets" = { - "/secrets".v = { - user = "nero"; - mode = "0760"; - }; - }; - }; - services.blueman.enable = true; boot.kernelPackages = pkgs.linuxPackages_latest; - boot.kernelModules = [ "btusb" "kvm-amd" ]; + boot.kernelModules = [ + # Without this, bluetooth doesn't work. + "btusb" + "kvm-amd" + ]; boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "thunderbolt" "usb_storage" "sd_mod" ]; boot.initrd.kernelModules = [ "amdgpu" ]; @@ -32,13 +22,6 @@ hardware.graphics = { enable = true; enable32Bit = true; - - extraPackages = with pkgs; [ - amdvlk - ]; - extraPackages32 = with pkgs; [ - driversi686Linux.amdvlk - ]; }; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; diff --git a/hosts/lil-maid/niri.nix b/hosts/lil-maid/niri.nix new file mode 100644 index 0000000..eead076 --- /dev/null +++ b/hosts/lil-maid/niri.nix @@ -0,0 +1,20 @@ +{ config, lib, pkgs, inputs, ... }: +{ + imports = [ + inputs.stylix.nixosModules.stylix + ]; + programs.waybar = { + enable = true; + systemd.target = "graphical-session.target"; + }; + + programs.niri.enable = true; + services.displayManager.sddm = { + enable = true; + wayland.enable = true; + enableHidpi = true; + }; + environment.systemPackages = with pkgs; [ + fuzzel + ]; +} diff --git a/hosts/lil-maid/sw.nix b/hosts/lil-maid/sw.nix new file mode 100644 index 0000000..5219fd0 --- /dev/null +++ b/hosts/lil-maid/sw.nix @@ -0,0 +1,11 @@ +{ config, lib, pkgs, ... }: + +{ + environment.systemPackages = with pkgs; [ + # Nuh uh society. + ayugram-desktop + vesktop + slack + signal-desktop + ]; +} diff --git a/lil-maid/default.nix b/lil-maid/default.nix deleted file mode 100644 index 1c69ff6..0000000 --- a/lil-maid/default.nix +++ /dev/null @@ -1,57 +0,0 @@ -{ - maid = { - sys = { - enable = true; - hostname = "lil-maid"; - - bluetooth.enable = true; - }; - masters.nero.enable = true; - - sops = { - enable = true; - - viendesu.enable = true; - work.enable = true; - }; - - sddm.enable = true; - hm.enable = true; - hypr.enable = true; -# kde.enable = true; - - rust.enable = true; - - firefox.enable = true; - - proxies = { - yor.enable = true; - }; - vpn = { - hft.enable = true; - }; - - unfree = [ - "obsidian" - "slack" - "discord" - "terraform" - "yandex-cloud" - - "steam" - "steam-original" - "steam-unwrapped" - "steam-run" - "xow_dongle-firmware" - ]; - }; - - imports = [ - ./modules - - ./hw.nix - ./fs.nix - ]; - - system.stateVersion = "24.05"; -} diff --git a/lil-maid/modules/boot.nix b/lil-maid/modules/boot.nix deleted file mode 100644 index d39e4ca..0000000 --- a/lil-maid/modules/boot.nix +++ /dev/null @@ -1,4 +0,0 @@ -{ - boot.loader.systemd-boot.enable = true; - boot.loader.efi.canTouchEfiVariables = true; -} diff --git a/lil-maid/modules/default.nix b/lil-maid/modules/default.nix deleted file mode 100644 index ff728a8..0000000 --- a/lil-maid/modules/default.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ - services.xserver.windowManager.qtile = { - enable = true; - }; - imports = [ - ./net.nix - ./firewall.nix - ./boot.nix - ./steam.nix - ./fonts.nix - ./social.nix - ./stash.nix - ./net.nix - - ./devenv.nix - ]; -} diff --git a/lil-maid/modules/devenv.nix b/lil-maid/modules/devenv.nix deleted file mode 100644 index 903e7ba..0000000 --- a/lil-maid/modules/devenv.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ config, lib, pkgs, ... }: -{ - # TODO: dotfiles for DOOM emacs. - - environment.systemPackages = with pkgs; [ - # BTW I use it for real. - emacs29-pgtk - - # Spellcheck - ispell - languagetool - proselint - - # VCS - git - jujutsu - - # Markdown - pandoc - python312Packages.grip - - # NixOS Devops - - # Binary cache - attic-client - - # Deployment - colmena - nixos-anywhere - - # Other useful tools. - fd - hyperfine - ripgrep - p7zip - ]; -} diff --git a/lil-maid/modules/firewall.nix b/lil-maid/modules/firewall.nix deleted file mode 100644 index 1929c6b..0000000 --- a/lil-maid/modules/firewall.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ - networking.firewall = { - enable = false; - }; -} diff --git a/lil-maid/modules/fonts.nix b/lil-maid/modules/fonts.nix deleted file mode 100644 index f3cd07f..0000000 --- a/lil-maid/modules/fonts.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ pkgs, ... }: -{ - fonts.packages = with pkgs; [ - nerdfonts - ]; -} diff --git a/lil-maid/modules/net.nix b/lil-maid/modules/net.nix deleted file mode 100644 index a474a9d..0000000 --- a/lil-maid/modules/net.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ - networking.networkmanager.enable = true; - networking.nameservers = [ - "1.1.1.1" - "8.8.8.8" - ]; - - # services.mullvad-vpn.enable = true; - # services.resolved = { - # enable = true; - # dnssec = "true"; - # domains = [ "~." ]; - # dnsovertls = "true"; - # }; -} diff --git a/lil-maid/modules/social.nix b/lil-maid/modules/social.nix deleted file mode 100644 index 11486aa..0000000 --- a/lil-maid/modules/social.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ pkgs, ... }: -{ - environment.systemPackages = with pkgs; [ - # Slack - slack - - # Telegram - telegram-desktop - - # # Discord - # (discord.override { - # withOpenASAR = true; - # withVencord = true; - # }) - ]; -} diff --git a/lil-maid/modules/stash.nix b/lil-maid/modules/stash.nix deleted file mode 100644 index f936cb4..0000000 --- a/lil-maid/modules/stash.nix +++ /dev/null @@ -1,52 +0,0 @@ -# Temporary location for modules and other code. Stacked here until -# there's no similarties which useful to take out. -{ pkgs, inputs, ... }: -{ - imports = [ inputs.vnj.nixosModules.x86_64-linux.default ]; - programs.adb.enable = true; - - services.vnj = - let - mkCfg = port: { - app = { - secret = "1337"; - log_level = "debug"; - journal = "/home/nero/vnj"; - }; - - http.listen = "0.0.0.0:${builtins.toString port}"; - }; - in - { - enable = true; - user = "nero"; - instances = { - ru = mkCfg 1337; - }; - }; - - virtualisation.docker.enable = true; - - environment.systemPackages = with pkgs; [ - obsidian - sioyek - cmake - gcc - clang - gnumake - signal-desktop - pavucontrol - vlc - wine - winetricks - yandex-cloud - qbittorrent - element-desktop - xfce.thunar - ]; - - fonts.packages = with pkgs; [ - fira-code - fira-code-symbols - ]; -} diff --git a/lil-maid/modules/steam.nix b/lil-maid/modules/steam.nix deleted file mode 100644 index d278421..0000000 --- a/lil-maid/modules/steam.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ pkgs, ... }: -{ - environment.systemPackages = with pkgs; [ - protontricks - ]; - - programs = { - gamescope = { - enable = true; - capSysNice = true; - }; - - steam = { - enable = true; - gamescopeSession.enable = true; - }; - }; - - hardware.xone.enable = true; -} diff --git a/m/default.nix b/m/default.nix deleted file mode 100644 index 93c7182..0000000 --- a/m/default.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ - imports = [ - ./sddm.nix - ./sops.nix - ./hypr.nix - ./kde.nix - ./sys.nix - ./unfree.nix - ./firefox.nix - ./home - ./vpn - ./rust.nix - - ./masters - ]; -} diff --git a/m/firefox.nix b/m/firefox.nix deleted file mode 100644 index fd093ae..0000000 --- a/m/firefox.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ config, lib, ... }: -let - firefox = config.maid.firefox; -in -{ - options.maid.firefox = { - enable = lib.mkEnableOption "firefox"; - }; - - config.programs.firefox = lib.mkIf firefox.enable { - enable = true; - }; -} diff --git a/m/home/default.nix b/m/home/default.nix deleted file mode 100644 index e98c173..0000000 --- a/m/home/default.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ inputs, config, lib, ... }: -let - hm = config.maid.hm; - masters = config.maid.masters; -in -{ - options.maid.hm = { - enable = lib.mkEnableOption "home-manager"; - }; - - config.home-manager = lib.mkIf hm.enable { - useGlobalPkgs = true; - useUserPackages = true; - - extraSpecialArgs = { inherit inputs; }; - users.nero = lib.mkIf masters.nero.enable (import ./nero); - }; -} diff --git a/m/home/helix/default.nix b/m/home/helix/default.nix deleted file mode 100644 index 200e7c1..0000000 --- a/m/home/helix/default.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ pkgs, ... }: -let - sonokai = import themes/sonokai; - langs = (import ./langs) pkgs; -in -{ - programs.helix = { - enable = true; - - settings = { - theme = "sonokai-andromeda"; - editor.cursor-shape = { - normal = "block"; - insert = "bar"; - select = "underline"; - }; - }; - - languages = { - language-server.rust-analyzer.config = { - rust.analyzerTargetDir = true; - }; - }; - themes = { - sonokai-andromeda = sonokai "andromeda"; - }; - }; -} diff --git a/m/home/helix/langs/default.nix b/m/home/helix/langs/default.nix deleted file mode 100644 index c309441..0000000 --- a/m/home/helix/langs/default.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ pkgs, ... }: -rec { - use = name: (import ./${"${name}.nix"}) pkgs; - combine = lhs: rhs: { - lsp = (lhs.lsp or {}) // (rhs.lsp or {}); - entries = (lhs.entries or []) ++ (rhs.entries or []); - }; - - intoHelixFormat = cfg: { - language-server = cfg.lsp; - language = cfg.entries; - }; - useMany = langs: builtins.foldl' combine {} (map use langs); -} - diff --git a/m/home/helix/langs/nix.nix b/m/home/helix/langs/nix.nix deleted file mode 100644 index 93a51a3..0000000 --- a/m/home/helix/langs/nix.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ pkgs, ... }: -{ - lsp.nixd = { - command = "${pkgs.nixd}/bin/nixd"; - }; - entries = [{ - name = "Nix"; - scope = "source.nix"; - injection-regex = "nix"; - file-types = ["nix"]; - comment-tokens = "#"; - indent = { tab-width = 2; unit = " "; }; - language-servers = [ "nixd" ]; - }]; -} diff --git a/m/home/helix/nigger.toml b/m/home/helix/nigger.toml deleted file mode 100644 index 55fd562..0000000 --- a/m/home/helix/nigger.toml +++ /dev/null @@ -1,2 +0,0 @@ -[a] -b = 10 diff --git a/m/home/helix/themes/sonokai/default.nix b/m/home/helix/themes/sonokai/default.nix deleted file mode 100644 index 898563c..0000000 --- a/m/home/helix/themes/sonokai/default.nix +++ /dev/null @@ -1,179 +0,0 @@ -palette: -{ - "attribute" = "purple"; - "comment" = "grey"; - "constant" = "purple"; - "constant.character.escape" = "orange"; - "constant.numeric" = "purple"; - "constructor" = "blue"; - "diagnostic" = { "underlined" = { "style" = "line"; }; }; - "diagnostic.error" = { - "underline" = { - "color" = "red"; - "style" = "curl"; - }; - }; - "diagnostic.hint" = { - "underline" = { - "color" = "blue"; - "style" = "dotted"; - }; - }; - "diagnostic.info" = { - "underline" = { - "color" = "green"; - "style" = "dotted"; - }; - }; - "diagnostic.warning" = { - "underline" = { - "color" = "yellow"; - "style" = "curl"; - }; - }; - "diff.delta" = "orange"; - "diff.minus" = "red"; - "diff.plus" = "green"; - "error" = "red"; - "function" = "green"; - "function.builtin" = "blue"; - "function.macro" = "purple"; - "hint" = "blue"; - "info" = "green"; - "keyword" = "red"; - "keyword.directive" = "purple"; - "label" = "orange"; - "markup.bold" = { "modifiers" = [ "bold" ]; }; - "markup.heading.1" = { - "fg" = "red"; - "modifiers" = [ "bold" ]; - }; - "markup.heading.2" = { - "fg" = "orange"; - "modifiers" = [ "bold" ]; - }; - "markup.heading.3" = { - "fg" = "yellow"; - "modifiers" = [ "bold" ]; - }; - "markup.heading.4" = { - "fg" = "green"; - "modifiers" = [ "bold" ]; - }; - "markup.heading.5" = { - "fg" = "blue"; - "modifiers" = [ "bold" ]; - }; - "markup.heading.6" = { - "fg" = "fg"; - "modifiers" = [ "bold" ]; - }; - "markup.heading.marker" = "grey"; - "markup.italic" = { "modifiers" = [ "italic" ]; }; - "markup.link.text" = "purple"; - "markup.link.url" = { - "fg" = "blue"; - "modifiers" = [ "underlined" ]; - }; - "markup.list" = "red"; - "markup.quote" = "grey"; - "markup.raw" = "green"; - "module" = "blue"; - "namespace" = "blue"; - "operator" = "orange"; - "punctuation" = "grey"; - "punctuation.bracket" = "fg"; - "punctuation.delimiter" = "grey"; - "special" = "orange"; - "string" = "yellow"; - "string.regexp" = "orange"; - "tag" = "yellow"; - "type" = "blue"; - "ui.background" = { "bg" = "bg0"; }; - "ui.background.separator" = "grey"; - "ui.bufferline" = { - "bg" = "bg1"; - "fg" = "grey"; - }; - "ui.bufferline.active" = { - "bg" = "bg4"; - "fg" = "fg"; - "modifiers" = [ "bold" ]; - }; - "ui.cursor" = { - "bg" = "fg"; - "fg" = "bg0"; - }; - "ui.cursor.insert" = { - "bg" = "grey"; - "fg" = "black"; - }; - "ui.cursor.match" = { - "bg" = "diff_yellow"; - "fg" = "orange"; - }; - "ui.cursor.select" = { - "bg" = "blue"; - "fg" = "bg0"; - }; - "ui.cursorline.primary" = { "bg" = "bg1"; }; - "ui.cursorline.secondary" = { "bg" = "bg1"; }; - "ui.help" = { - "bg" = "bg2"; - "fg" = "fg"; - }; - "ui.linenr" = "grey"; - "ui.linenr.selected" = "fg"; - "ui.menu" = { - "bg" = "bg3"; - "fg" = "fg"; - }; - "ui.menu.selected" = { - "bg" = "green"; - "fg" = "bg0"; - }; - "ui.popup" = { - "bg" = "bg2"; - "fg" = "grey"; - }; - "ui.selection" = { "bg" = "bg4"; }; - "ui.statusline" = { - "bg" = "bg3"; - "fg" = "fg"; - }; - "ui.statusline.inactive" = { - "bg" = "bg1"; - "fg" = "grey"; - }; - "ui.statusline.insert" = { - "bg" = "yellow"; - "fg" = "bg0"; - "modifiers" = [ "bold" ]; - }; - "ui.statusline.normal" = { - "bg" = "fg"; - "fg" = "bg0"; - "modifiers" = [ "bold" ]; - }; - "ui.statusline.select" = { - "bg" = "blue"; - "fg" = "bg0"; - "modifiers" = [ "bold" ]; - }; - "ui.text" = "fg"; - "ui.text.focus" = "green"; - "ui.virtual.indent-guide" = { "fg" = "bg4"; }; - "ui.virtual.ruler" = { "bg" = "bg2"; }; - "ui.virtual.whitespace" = { "fg" = "bg4"; }; - "ui.window" = { - "bg" = "bg0"; - "fg" = "grey"; - }; - "variable" = "fg"; - "variable.builtin" = "orange"; - "variable.other.member" = "fg"; - "variable.parameter" = "fg"; - "warning" = "yellow"; - - palette = import (./. + "/palettes/${palette}.nix"); -} diff --git a/m/home/helix/themes/sonokai/palettes/andromeda.nix b/m/home/helix/themes/sonokai/palettes/andromeda.nix deleted file mode 100644 index bc0453e..0000000 --- a/m/home/helix/themes/sonokai/palettes/andromeda.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ - black = "#181a1c"; - bg0 = "#2b2d3a"; - bg1 = "#333648"; - bg2 = "#363a4e"; - bg3 = "#393e53"; - bg4 = "#3f445b"; - bg_red = "#ff6188"; - diff_red = "#55393d"; - bg_green = "#a9dc76"; - diff_green = "#394634"; - bg_blue = "#77d5f0"; - diff_blue = "#354157"; - diff_yellow = "#4e432f"; - fg = "#e1e3e4"; - red = "#fb617e"; - orange = "#f89860"; - yellow = "#edc763"; - green = "#9ed06c"; - cyan = "#ef9062"; # added for compatibility with `edge` scheme - blue = "#6dcae8"; - purple = "#bb97ee"; - grey = "#7e8294"; - grey_dim = "#5a5e7a"; -} diff --git a/m/home/nero/default.nix b/m/home/nero/default.nix deleted file mode 100644 index 2499430..0000000 --- a/m/home/nero/default.nix +++ /dev/null @@ -1,81 +0,0 @@ -{ config, inputs, pkgs, ... }: -{ - programs.direnv = { - enable = true; - enableBashIntegration = true; - nix-direnv.enable = true; - }; - programs.bash = { - enable = true; - bashrcExtra = '' - eval "$(direnv hook bash)" - ''; - }; - - programs.wezterm = { - package = inputs.wezterm.packages.${pkgs.system}.default; - enable = true; - enableBashIntegration = true; - - extraConfig = '' - return { - enable_wayland = true - } - ''; - }; - - home.username = "nero"; - home.homeDirectory = "/home/nero"; - - home.stateVersion = "25.05"; - home.file = { - ".terraformrc".text = '' - provider_installation { - network_mirror { - url = "https://terraform-mirror.yandexcloud.net/" - include = ["registry.terraform.io/*/*"] - } - direct { - exclude = ["registry.terraform.io/*/*"] - } - } - ''; - ".cargo/config.toml" = { - text = '' - [net] - git-fetch-with-cli = true - - [target.x86_64-unknown-linux-gnu] - linker = "${pkgs.clang}/bin/clang" - rustflags = ["-C", "link-arg=--ld-path=${pkgs.mold}/bin/mold"] - ''; - }; - }; - dconf.settings = { - "org/gnome/desktop/interface" = { - color-scheme = "prefer-dark"; - gtk-theme = "Adwaita-dark"; - }; - }; - - gtk = { - enable = true; - theme = { - name = "Adwaita-dark"; - package = pkgs.gnome-themes-extra; - }; - }; - xdg.portal = { - enable = true; - extraPortals = with pkgs; [ xdg-desktop-portal-gtk ]; - configPackages = with pkgs; [ xdg-desktop-portal-gtk ]; - }; - qt = { - enable = true; - platformTheme.name = "Adwaita-dark"; - style = { - name = "Adwaita-dark"; - package = pkgs.adwaita-qt; - }; - }; -} diff --git a/m/hypr.nix b/m/hypr.nix deleted file mode 100644 index 3ecac9a..0000000 --- a/m/hypr.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ lib, config, inputs, pkgs, ... }: -let - hypr = config.maid.hypr; -in -{ - options.maid.hypr = { - enable = lib.mkEnableOption "hyprland"; - }; - - config = lib.mkIf hypr.enable { - programs.hyprland = { - enable = true; - package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland; - portalPackage = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland; - }; - - programs.hyprlock = { - enable = true; - }; - - environment.systemPackages = with pkgs; [ - dunst - waybar - wofi - hyprshot - ]; - environment.sessionVariables.NIXOS_OZONE_WL = "1"; - - fonts.packages = with pkgs; [ - font-awesome_5 - ]; - qt = { - enable = true; - platformTheme = "gnome"; - style = "adwaita-dark"; - }; - }; -} diff --git a/m/kde.nix b/m/kde.nix deleted file mode 100644 index d58beab..0000000 --- a/m/kde.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ config, lib, pkgs, ... }: -let - kde = config.maid.kde; -in -{ - options.maid.kde = { - enable = lib.mkEnableOption "KDE6"; - }; - - config = lib.mkIf kde.enable { - services.desktopManager.plasma6.enable = true; - environment.plasma6.excludePackages = with pkgs.kdePackages; [ - plasma-browser-integration - konsole - oxygen - ]; - }; -} diff --git a/m/masters/default.nix b/m/masters/default.nix deleted file mode 100644 index d725dd7..0000000 --- a/m/masters/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ - imports = [ - ./nero.nix - ]; - - users.mutableUsers = false; -} diff --git a/m/masters/nero.nix b/m/masters/nero.nix deleted file mode 100644 index d0bdcde..0000000 --- a/m/masters/nero.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ lib, pkgs, config, ... }: -let - types = lib.types; - masters = config.maid.masters; - hm = config.maid.hm; - - mkUser = name: { - enable = lib.mkEnableOption name; - override = lib.mkOption { - type = types.attrs; - default = {}; - }; - }; -in -{ - options.maid.masters = { - nero = mkUser "nero"; - }; - - config = lib.mkIf masters.nero.enable { - sops.secrets."users/nero/passwordHash" = { - neededForUsers = true; - sopsFile = ../../secrets/users.yaml; - }; - - users.users.nero = { - isNormalUser = true; - uid = 1000; - hashedPasswordFile = config.sops.secrets."users/nero/passwordHash".path; - extraGroups = [ "networkmanager" "docker" "wheel" "adbuser" ]; - - openssh.authorizedKeys.keys = [ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBaWnT7mpLERhm3zIWglNy094a7F7d7cpEImLZYwwWoS nero@lil-maid" - ]; - } // masters.nero.override; - }; -} diff --git a/m/rust.nix b/m/rust.nix deleted file mode 100644 index b16f3d7..0000000 --- a/m/rust.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ pkgs, config, inputs, lib, ... }: -let - rust = config.maid.rust; -in -{ - options.maid.rust = { - enable = lib.mkEnableOption "rust toolchain"; - }; - - config = lib.mkIf rust.enable { - nixpkgs.overlays = [ inputs.fenix.overlays.default ]; - - environment.systemPackages = with pkgs; [ - (fenix.complete.withComponents [ - "rustc" - "cargo" - "rustfmt" - "rust-src" - "rust-analyzer" - "clippy" - "miri" - ]) - sccache - cargo-edit - ]; - }; -} diff --git a/m/sddm.nix b/m/sddm.nix deleted file mode 100644 index 673ebac..0000000 --- a/m/sddm.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ config, lib, ... }: -let - sddm = config.maid.sddm; -in -{ - options.maid.sddm = { - enable = lib.mkEnableOption "sddm"; - }; - - config.services.displayManager.sddm = lib.mkIf sddm.enable { - enable = true; - enableHidpi = true; - wayland = { - enable = true; - }; - }; -} diff --git a/m/signal.nix b/m/signal.nix deleted file mode 100644 index 1797133..0000000 --- a/m/signal.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ - -} diff --git a/m/sops.nix b/m/sops.nix deleted file mode 100644 index 31f4997..0000000 --- a/m/sops.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ lib, config, ... }: -let - sops = config.maid.sops; -in -{ - options.maid.sops = { - enable = lib.mkEnableOption "sops"; - - work.enable = lib.mkEnableOption "work secrets"; - viendesu.enable = lib.mkEnableOption "VienDesu!"; - }; - - config.sops = lib.mkIf sops.enable { - age.keyFile = "/var/lib/sops-nix/key.txt"; - - secrets = lib.mkMerge [ - (lib.mkIf sops.viendesu.enable { - "viendesu/shadowsocks/gneg".sopsFile = ../secrets/viendesu.yaml; - "viendesu/shadowsocks/yor".sopsFile = ../secrets/viendesu.yaml; - }) - (lib.mkIf sops.work.enable { - "work/ovpn".sopsFile = ../secrets/work.yaml; - "work/password".sopsFile = ../secrets/work.yaml; - }) - ]; - }; -} diff --git a/m/sys.nix b/m/sys.nix deleted file mode 100644 index ae856bc..0000000 --- a/m/sys.nix +++ /dev/null @@ -1,59 +0,0 @@ -{ pkgs, lib, config, inputs, ... }: -let - types = lib.types; - sys = config.maid.sys; -in -{ - options.maid.sys = { - enable = lib.mkEnableOption "whole maid system"; - tz = lib.mkOption { - type = types.str; - default = "Europe/Moscow"; - }; - hostname = lib.mkOption { - type = types.str; - }; - - bluetooth = { - enable = lib.mkEnableOption "bluetooth"; - powerOnBoot = lib.mkOption { - type = types.bool; - default = true; - description = "whether to power on bluetooth on system startup"; - }; - }; - }; - - config = lib.mkIf sys.enable { - time.timeZone = sys.tz; - networking.hostName = sys.hostname; - - services.gvfs.enable = true; - - nix.settings = { - substituters = [ - "https://hyprland.cachix.org" - "https://wezterm.cachix.org" - ]; - trusted-public-keys = [ - "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" - "wezterm.cachix.org-1:kAbhjYUC9qvblTE+s7S+kl5XM1zVa4skO+E/1IDWdH0=" - ]; - - experimental-features = [ "nix-command" "flakes" ]; - }; - - environment.systemPackages = with pkgs; [ - ifuse - libimobiledevice - usbutils - glib - ]; - services.usbmuxd.enable = true; - - hardware.bluetooth = lib.mkIf sys.bluetooth.enable { - enable = true; - powerOnBoot = sys.bluetooth.powerOnBoot; - }; - }; -} diff --git a/m/unfree.nix b/m/unfree.nix deleted file mode 100644 index 3f88750..0000000 --- a/m/unfree.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ config, lib, ... }: -let - unfree = config.maid.unfree; - types = lib.types; -in -{ - options.maid.unfree = lib.mkOption { - type = types.listOf types.str; - description = "unfree software list"; - default = []; - }; - - config.nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) config.maid.unfree; -} diff --git a/m/vpn/hft.nix b/m/vpn/hft.nix deleted file mode 100644 index fc5ff75..0000000 --- a/m/vpn/hft.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ pkgs, lib, config, ... }: -let - types = lib.types; - hft = config.maid.vpn.hft; - proxies = config.maid.proxies; -in -{ - options.maid.vpn.hft = { - enable = lib.mkEnableOption "OpenVPN HFT"; - autoStart = lib.mkOption { - type = types.bool; - default = false; - description = "Whether to start VPN on system start"; - }; - }; - - config = lib.mkIf hft.enable { - assertions = [ - { assertion = proxies.yor.enable; - message = "HFT OpenVPN requires shadowsocks server to bypass DPI"; - } - ]; - - services.openvpn.servers.hft = { - autoStart = hft.autoStart; - updateResolvConf = true; - - config = '' - config ${config.sops.secrets."work/ovpn".path} - askpass ${config.sops.secrets."work/password".path} - ''; - }; - - systemd.services.openvpn-hft.requires = [ - "yor-proxy.service" - ]; - }; -} diff --git a/m/vpn/shadowsocks.nix b/m/vpn/shadowsocks.nix deleted file mode 100644 index a09f321..0000000 --- a/m/vpn/shadowsocks.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ config, lib, pkgs, ... }: -let - cfg = config.maid.proxies; -in -{ - options.maid.proxies = { - yor = { - enable = lib.mkEnableOption "Yor shadowsocks proxy"; - }; - }; - - config = lib.mkIf cfg.yor.enable { - systemd.services.yor-proxy = { - after = [ "network.target" ]; - description = "`Yor` proxy server"; - - serviceConfig = { - Type = "simple"; - ExecStart = ''${pkgs.shadowsocks-rust}/bin/sslocal --config ${config.sops.secrets."viendesu/shadowsocks/yor".path}''; - }; - }; - }; -} diff --git a/modules/default.nix b/modules/default.nix new file mode 100644 index 0000000..b795489 --- /dev/null +++ b/modules/default.nix @@ -0,0 +1,15 @@ +{ inputs, ... }: +{ + imports = [ + inputs.sops-nix.nixosModules.sops + inputs.home-manager.nixosModules.home-manager + + ./vpn + ./net.nix + ./sops.nix + ./sound.nix + ./rust.nix + ./haskell.nix + ]; + nix.settings.experimental-features = [ "nix-command" "flakes" ]; +} diff --git a/modules/haskell.nix b/modules/haskell.nix new file mode 100644 index 0000000..f0654c4 --- /dev/null +++ b/modules/haskell.nix @@ -0,0 +1,9 @@ +{ config, lib, pkgs, ... }: + +{ + #environment.systemPackages = with pkgs; [ + # haskell.compiler.ghc983 + # haskellPackages.cabal-install + # haskellPackages.haskell-language-server + #]; +} diff --git a/modules/net.nix b/modules/net.nix new file mode 100644 index 0000000..58854d5 --- /dev/null +++ b/modules/net.nix @@ -0,0 +1,5 @@ +{ config, lib, pkgs, ... }: + +{ + networking.networkmanager.enable = true; +} diff --git a/modules/rust.nix b/modules/rust.nix new file mode 100644 index 0000000..16c7f30 --- /dev/null +++ b/modules/rust.nix @@ -0,0 +1,18 @@ +{ config, lib, pkgs, inputs, ... }: + +{ + nixpkgs.overlays = [ inputs.fenix.overlays.default ]; + environment.systemPackages = with pkgs; [ + (fenix.complete.withComponents [ + "rustc" + "cargo" + "rustfmt" + "rust-src" + "rust-analyzer" + "clippy" + "miri" + ]) + sccache + cargo-edit + ]; +} diff --git a/modules/sops.nix b/modules/sops.nix new file mode 100644 index 0000000..7f1b574 --- /dev/null +++ b/modules/sops.nix @@ -0,0 +1,5 @@ +{ config, lib, pkgs, ... }: + +{ + sops.age.keyFile = "/var/lib/sops-nix/key.txt"; +} diff --git a/modules/sound.nix b/modules/sound.nix new file mode 100644 index 0000000..2123f2b --- /dev/null +++ b/modules/sound.nix @@ -0,0 +1,15 @@ +{ config, lib, pkgs, ... }: + +{ + environment.systemPackages = with pkgs; [ + pavucontrol + ]; + security.rtkit.enable = true; + services.pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + jack.enable = true; + }; +} diff --git a/m/vpn/default.nix b/modules/vpn/default.nix similarity index 67% rename from m/vpn/default.nix rename to modules/vpn/default.nix index cd4c240..495377b 100644 --- a/m/vpn/default.nix +++ b/modules/vpn/default.nix @@ -1,3 +1,5 @@ +{ config, lib, pkgs, ... }: + { imports = [ ./hft.nix diff --git a/modules/vpn/hft.nix b/modules/vpn/hft.nix new file mode 100644 index 0000000..bfd73f0 --- /dev/null +++ b/modules/vpn/hft.nix @@ -0,0 +1,19 @@ +{ config, lib, pkgs, ... }: +let + secrets = config.sops.secrets; +in +{ + sops.secrets."work/ovpn".sopsFile = ../../secrets/work.yaml; + sops.secrets."work/password".sopsFile = ../../secrets/work.yaml; + + services.openvpn.servers.hft = { + autoStart = false; + updateResolvConf = true; + + config = '' + config ${secrets."work/ovpn".path} + askpass ${secrets."work/password".path} + ''; + }; + systemd.services.openvpn-hft.requires = ["yor-proxy.service"]; +} diff --git a/modules/vpn/shadowsocks.nix b/modules/vpn/shadowsocks.nix new file mode 100644 index 0000000..4509017 --- /dev/null +++ b/modules/vpn/shadowsocks.nix @@ -0,0 +1,20 @@ +{ config, lib, pkgs, ... }: +let + secrets = config.sops.secrets; + yorCfg = secrets."viendesu/shadowsocks/yor".path; +in +{ + sops.secrets = { + "viendesu/shadowsocks/gneg".sopsFile = ../../secrets/viendesu.yaml; + "viendesu/shadowsocks/yor".sopsFile = ../../secrets/viendesu.yaml; + }; + + systemd.services.yor-proxy = { + after = [ "network.target" ]; + description = "`Yor` shadowsocks"; + serviceConfig = { + Type = "simple"; + ExecStart = ''${pkgs.shadowsocks-rust}/bin/sslocal --config ${yorCfg}''; + }; + }; +}