diff --git a/common/default.nix b/common/default.nix index 89e1b16..f1cab42 100644 --- a/common/default.nix +++ b/common/default.nix @@ -1,7 +1,9 @@ -{ config, lib, inputs, pkgs, ... }: { - nixpkgs.config.permittedInsecurePackages = [ - "electron-25.9.0" - "electron-24.8.6" - ]; + config, + lib, + inputs, + pkgs, + ... +}: { + nixpkgs.config.permittedInsecurePackages = ["electron-25.9.0" "electron-24.8.6"]; } diff --git a/flake.nix b/flake.nix index 2d59880..ba4752d 100644 --- a/flake.nix +++ b/flake.nix @@ -18,19 +18,31 @@ inputs.nixpkgs.follows = "nixpkgs"; }; - outputs = inputs @ {self, nixpkgs, nixpkgs-master, firefox-addons, home-manager, nixos-hardware, nixvim, ...}: let + outputs = inputs @ { + self, + nixpkgs, + nixpkgs-master, + firefox-addons, + home-manager, + nixos-hardware, + nixvim, + ... + }: let lib = nixpkgs.lib; util = (import ./overlays/util.nix {} {}).util; system = "x86_64-linux"; - pkgs = import nixpkgs { inherit system; overlays = - util.nixFilesIn ./overlays; }; - in { - nixosConfigurations = pkgs.util.mapHostAttrs (host: host) (host: lib.nixosSystem { + pkgs = import nixpkgs { inherit system; - modules = [ - ./hosts/${host} - ]; - specialArgs = { inherit inputs; }; - }); + overlays = util.nixFilesIn ./overlays; + }; + in { + nixosConfigurations = pkgs.util.mapHostAttrs (host: host) (host: + lib.nixosSystem { + inherit system; + modules = [./hosts/${host}]; + specialArgs = {inherit inputs;}; + }); + formatter.x86_64-linux = + inputs.nixpkgs.legacyPackages.x86_64-linux.alejandra; }; } diff --git a/home/default.nix b/home/default.nix index 5753f42..e0b4ee9 100644 --- a/home/default.nix +++ b/home/default.nix @@ -1,251 +1,240 @@ -{ config, pkgs, lib, inputs, ... }: { + config, + pkgs, + lib, + inputs, + ... +}: { + imports = [ + ./modules/nixvim.nix + ./modules/firefox.nix + #./modules/ssh.nix + ]; + home.username = "xqtc"; + home.homeDirectory = "/home/xqtc"; - imports = [ - ./modules/nixvim.nix - ./modules/firefox.nix - #./modules/ssh.nix - ]; - home.username = "xqtc"; - home.homeDirectory = "/home/xqtc"; - - programs.git = { - enable = true; - userName = "xqtc161"; - userEmail = "xqtc@tutanota.com"; - }; - programs.wezterm = { - enable = true; - extraConfig = builtins.readFile ./config-files/wezterm.lua; - }; + programs.git = { + enable = true; + userName = "xqtc161"; + userEmail = "xqtc@tutanota.com"; + }; + programs.wezterm = { + enable = true; + extraConfig = builtins.readFile ./config-files/wezterm.lua; + }; - programs.joshuto = { + programs.joshuto = {enable = true;}; + + programs = { + zsh.enable = true; + atuin = { enable = true; + enableNushellIntegration = true; }; - - programs = { - zsh.enable = true; - atuin = { - enable = true; - enableNushellIntegration = true; - }; - eza.enable = true; - nushell = { - enable = true; - shellAliases = { - ls = "eza -l --icons --group-directories-first"; - }; - extraConfig = "uwufetch --image"; - configFile = { text = '' - $env.config = { - show_banner: false - } - ''; - }; - }; - carapace.enable = true; - carapace.enableNushellIntegration = true; - starship = - let - flavour = "mocha"; - in - { - enable = true; - enableNushellIntegration = true; - enableBashIntegration = true; - enableZshIntegration = true; - settings = { - # Other config here - character = { - success_symbol = "[λ::](bold green)"; - error_symbol = "[λ::](bold red)"; - }; - username = { - style_user = "bold pink"; - format = "[$user]($style)"; - show_always = true; - disabled = false; - }; - hostname = { - ssh_only = false; - format = "[ 🏳️‍⚧️ ](bold pink)[$hostname](bold flamingo)"; - disabled = false; - }; - right_format = "$all"; - format = ''$username$hostname in $directory -$character''; - palette = "catppuccin_${flavour}"; - } // builtins.fromTOML (builtins.readFile - (pkgs.fetchFromGitHub - { - owner = "catppuccin"; - repo = "starship"; - rev = "5629d2356f62a9f2f8efad3ff37476c19969bd4f"; # Replace with the latest commit hash - sha256 = "sha256-nsRuxQFKbQkyEI4TXgvAjcroVdG+heKX5Pauq/4Ota0="; - } + /palettes/${flavour}.toml)); - }; - }; - dconf.enable = true; - dconf.settings = { - "org/gnome/desktop/interface" = { - color-scheme = "prefer-dark"; - cursor-theme = "Adwaita"; + eza.enable = true; + nushell = { + enable = true; + shellAliases = {ls = "eza -l --icons --group-directories-first";}; + extraConfig = "uwufetch --image"; + configFile = { + text = '' + $env.config = { + show_banner: false + } + ''; }; }; - - gtk = { + carapace.enable = true; + carapace.enableNushellIntegration = true; + starship = let + flavour = "mocha"; + in { enable = true; - theme = { - name = "Catppuccin-Mocha-Compact-Pink-Dark"; - package = pkgs.catppuccin-gtk.override { - accents = [ "pink" ]; - size = "compact"; - tweaks = [ "rimless" ]; - variant = "mocha"; + enableNushellIntegration = true; + enableBashIntegration = true; + enableZshIntegration = true; + settings = + { + # Other config here + character = { + success_symbol = "[λ::](bold green)"; + error_symbol = "[λ::](bold red)"; + }; + username = { + style_user = "bold pink"; + format = "[$user]($style)"; + show_always = true; + disabled = false; + }; + hostname = { + ssh_only = false; + format = "[ 🏳️‍⚧️ ](bold pink)[$hostname](bold flamingo)"; + disabled = false; + }; + right_format = "$all"; + format = '' + $username$hostname in $directory + $character''; + palette = "catppuccin_${flavour}"; + } + // builtins.fromTOML (builtins.readFile (pkgs.fetchFromGitHub { + owner = "catppuccin"; + repo = "starship"; + rev = "5629d2356f62a9f2f8efad3ff37476c19969bd4f"; # Replace with the latest commit hash + sha256 = "sha256-nsRuxQFKbQkyEI4TXgvAjcroVdG+heKX5Pauq/4Ota0="; + } + + /palettes/${flavour}.toml)); + }; + }; + dconf.enable = true; + dconf.settings = { + "org/gnome/desktop/interface" = { + color-scheme = "prefer-dark"; + cursor-theme = "Adwaita"; + }; + }; + + gtk = { + enable = true; + theme = { + name = "Catppuccin-Mocha-Compact-Pink-Dark"; + package = pkgs.catppuccin-gtk.override { + accents = ["pink"]; + size = "compact"; + tweaks = ["rimless"]; + variant = "mocha"; + }; + }; + }; + + home.sessionVariables.DEFAULT_BROWSER = "${pkgs.firefox}/bin/firefox"; + + home.file."~/.local/share/fonts/AppleColorEmoji.ttf".source = + ./config-files/AppleColorEmoji.ttf; + + wayland.windowManager.hyprland = { + enable = true; + package = pkgs.hyprland; + + #xwayland.enable = true; + + #enableNvidiaPatches = true; + extraConfig = builtins.readFile ./config-files/hyprland.conf; + }; + + programs.waybar = { + enable = true; + settings = { + mainBar = { + layer = "top"; + position = "top"; + height = 30; + modules-left = ["hyprland/workspaces"]; + #modules-center = [ "hyprland/window" ]; + modules-right = ["tray" "network" "battery" "battery#bat2" "clock"]; + "tray" = {"icon-size" = 21;}; + "network" = { + "format-wifi" = "NET: {essid} ({signalStrength}%) "; + "format-ethernet" = "{ifname} "; + "format-disconnected" = ""; + "max-length" = 50; + }; + "battery" = { + "bat" = "BAT0"; + "interval" = 10; + "states" = { + "warning" = 30; + "critical" = 15; + }; + "format" = " BAT IN: {capacity}%"; + #"format-icons" = ''["", "", "", "", ""]''; + "max-length" = 25; + }; + "battery#bat2" = { + "bat" = "BAT1"; + "interval" = 10; + "states" = { + "warning" = 30; + "critical" = 15; + }; + "format" = " BAT EX: {capacity}%"; + #"format-icons" = ''["", "", "", "", ""]''; + "max-length" = 25; }; }; }; + style = builtins.readFile ./config-files/waybar-mocha.css; + }; - home.sessionVariables.DEFAULT_BROWSER = "${pkgs.firefox}/bin/firefox"; + services.mako = { + enable = true; + font = "Hack Nerd Font 15"; + backgroundColor = "#1e1e2e"; + textColor = "#cdd6f4"; + }; - home.file."~/.local/share/fonts/AppleColorEmoji.ttf".source = ./config-files/AppleColorEmoji.ttf; + services.easyeffects = {enable = true;}; + home.packages = with pkgs; [ + neofetch + uwufetch + btop + iftop + ranger - #programs.firefox = { - # enable = true; - # package = pkgs.firefox.override { - # cfg = { - # enableGnomeExtensions = true; - # }; - # }; - #}; - wayland.windowManager.hyprland = { - enable = true; - package = pkgs.hyprland; + obsidian - #xwayland.enable = true; + moodle-dl - #enableNvidiaPatches = true; - extraConfig = builtins.readFile ./config-files/hyprland.conf; - }; + brightnessctl + pavucontrol - programs.waybar = { - enable = true; - settings = { - mainBar = { - layer = "top"; - position = "top"; - height = 30; - modules-left = [ "hyprland/workspaces" ]; - #modules-center = [ "hyprland/window" ]; - modules-right = [ "tray" "network" "battery" "battery#bat2" "clock" ]; - "tray" = { - "icon-size" = 21; - }; - "network" = { - "format-wifi"= "NET: {essid} ({signalStrength}%) "; - "format-ethernet" = "{ifname} "; - "format-disconnected" = ""; - "max-length" = 50; - }; - "battery" = { - "bat" = "BAT0"; - "interval" = 10; - "states" = { - "warning" = 30; - "critical" = 15; - }; - "format" = " BAT IN: {capacity}%"; - #"format-icons" = ''["", "", "", "", ""]''; - "max-length" = 25; - }; - "battery#bat2" = { - "bat" = "BAT1"; - "interval" = 10; - "states" = { - "warning" = 30; - "critical" = 15; - }; - "format" = " BAT EX: {capacity}%"; - #"format-icons" = ''["", "", "", "", ""]''; - "max-length" = 25; - }; - }; - }; - style = builtins.readFile ./config-files/waybar-mocha.css; - }; + bitwarden + bitwarden-cli - services.mako = { - enable = true; - font = "Hack Nerd Font 15"; - backgroundColor = "#1e1e2e"; - textColor = "#cdd6f4"; - }; + sway-contrib.grimshot - services.easyeffects = { - enable = true; - }; + libnotify - home.packages = with pkgs; [ - neofetch - uwufetch - btop - iftop - ranger + strace + ltrace - obsidian + nodejs - moodle-dl + nerdfonts + vivaldi + vivaldi-ffmpeg-codecs - brightnessctl - pavucontrol - - bitwarden - bitwarden-cli + signal-desktop + vesktop + discord + telegram-desktop + webex + element-desktop - sway-contrib.grimshot - - libnotify - - strace - ltrace - - nodejs - - nerdfonts - vivaldi - vivaldi-ffmpeg-codecs - - signal-desktop - vesktop - discord - telegram-desktop - webex - element-desktop - - qbittorrent - nicotine-plus + qbittorrent + nicotine-plus - via - qmk - qmk-udev-rules - - neovide + via + qmk + qmk-udev-rules - yubioath-flutter - - steam - protonup-qt - - spotify - sayonara - mpv - feishin - - nixos-icons - swww - ]; + neovide + + yubioath-flutter + + steam + protonup-qt + + spotify + sayonara + mpv + feishin + + nixos-icons + swww + ]; home.stateVersion = "23.11"; - + programs.home-manager.enable = true; } diff --git a/home/modules/firefox.nix b/home/modules/firefox.nix index 597fb58..269e68a 100644 --- a/home/modules/firefox.nix +++ b/home/modules/firefox.nix @@ -1,16 +1,17 @@ -{ inputs, outputs, config, pkgs, ... }: -with inputs; { - + inputs, + outputs, + config, + pkgs, + ... +}: +with inputs; { home.sessionVariables.DEFAULT_BROWSER = "${pkgs.firefox}/bin/firefox"; programs.firefox = { enable = true; - package = pkgs.firefox.override { - cfg = { - enableGnomeExtensions = true; - }; - }; + package = + pkgs.firefox.override {cfg = {enableGnomeExtensions = true;};}; profiles.xqtc = { isDefault = true; extensions = with inputs.firefox-addons.packages.${pkgs.system}; [ @@ -18,52 +19,77 @@ with inputs; bitwarden sidebery darkreader - stylus - vimium-c + stylus + vimium-c noscript ]; search = { default = "SearX"; force = true; engines = { - "SearX" = { - urls = [{ - template = "https://searx.org/search"; - params = [ - { name = "q"; value = "{searchTerms}"; } - ]; - }]; - }; + "SearX" = { + urls = [ + { + template = "https://searx.org/search"; + params = [ + { + name = "q"; + value = "{searchTerms}"; + } + ]; + } + ]; + }; "Nix Packages" = { - urls = [{ - template = "https://search.nixos.org/packages"; - params = [ - { name = "type"; value = "packages"; } - { name = "query"; value = "{searchTerms}"; } - ]; - }]; + urls = [ + { + template = "https://search.nixos.org/packages"; + params = [ + { + name = "type"; + value = "packages"; + } + { + name = "query"; + value = "{searchTerms}"; + } + ]; + } + ]; icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; - definedAliases = [ "@np" ]; + definedAliases = ["@np"]; }; "Nix Options" = { - urls = [{ - template = "https://search.nixos.org/options"; - params = [ - { name = "type"; value = "options"; } - { name = "query"; value = "{searchTerms}"; } - ]; - }]; + urls = [ + { + template = "https://search.nixos.org/options"; + params = [ + { + name = "type"; + value = "options"; + } + { + name = "query"; + value = "{searchTerms}"; + } + ]; + } + ]; icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; - definedAliases = [ "@no" ]; + definedAliases = ["@no"]; }; "NixOS Wiki" = { - urls = [{ template = "https://nixos.wiki/index.php?search={searchTerms}"; }]; + urls = [ + { + template = "https://nixos.wiki/index.php?search={searchTerms}"; + } + ]; iconUpdateURL = "https://nixos.wiki/favicon.png"; updateInterval = 24 * 60 * 60 * 1000; # every day - definedAliases = [ "@nw" ]; + definedAliases = ["@nw"]; }; "Bing".metaData.hidden = true; @@ -82,22 +108,25 @@ with inputs; "browser.theme.toolbar-theme" = "0"; "browser.newtabpage.activity-stream.showSponsored" = false; "browser.newtabpage.activity-stream.showSponsoredTopSites" = false; - "services.sync.prefs.sync.browser.newtabpage.activity-stream.showSponsored" = false; - "services.sync.prefs.sync.browser.newtabpage.activity-stream.showSponsoredTopSites" = false; + "services.sync.prefs.sync.browser.newtabpage.activity-stream.showSponsored" = + false; + "services.sync.prefs.sync.browser.newtabpage.activity-stream.showSponsoredTopSites" = + false; "browser.toolbars.bookmarks.visibility" = "never"; "general.useragent.locale" = "de-DE"; "distribution.searchplugins.defaultLocale" = "de-DE"; "signon.rememberSignons" = false; - "toolkit.legacyUserProfileCustomizations.stylesheets" = true; # Needed to allow userChrome.css + "toolkit.legacyUserProfileCustomizations.stylesheets" = + true; # Needed to allow userChrome.css }; userChrome = '' - @import "firefox-gnome-theme/userChrome.css"; - #TabsToolbar { - display: none; !important - } - #sidebar-header { - display: none; - } + @import "firefox-gnome-theme/userChrome.css"; + #TabsToolbar { + display: none; !important + } + #sidebar-header { + display: none; + } ''; }; }; diff --git a/home/modules/nixvim.nix b/home/modules/nixvim.nix index 453b47b..9dc15e6 100644 --- a/home/modules/nixvim.nix +++ b/home/modules/nixvim.nix @@ -1,176 +1,177 @@ -{ pkgs, lib, config, inputs, outputs, ... }: { - programs.nixvim = { - enable = true; - globals.mapleader = " "; - extraConfigLua = builtins.readFile ../config-files/nvim/init.lua; - extraPlugins = with pkgs.vimPlugins; [ - headlines-nvim - ]; - - clipboard.providers.wl-copy.enable = true; + pkgs, + lib, + config, + inputs, + outputs, + ... +}: { + programs.nixvim = { + enable = true; + globals.mapleader = " "; + extraConfigLua = builtins.readFile ../config-files/nvim/init.lua; + extraPlugins = with pkgs.vimPlugins; [headlines-nvim]; - options = { - number = true; # Show line numbers - relativenumber = true; # Show relative line numbers + clipboard.providers.wl-copy.enable = true; - shiftwidth = 2; # Tab width should be 2 - }; + options = { + number = true; # Show line numbers + relativenumber = true; # Show relative line numbers - colorschemes.catppuccin.enable = true; - plugins = { - obsidian = { - enable = true; - dir = "~/Documents/Obsidian Vault/"; - }; - lualine.enable = true; - lsp-format = { - enable = true; - }; - lsp = { - enable = true; - servers = { - bashls.enable = true; - lua-ls.enable = true; - nushell.enable = true; - clangd.enable = true; - svelte.enable = true; - tsserver.enable = true; - eslint.enable = true; - rust-analyzer = { - enable = true; - installCargo = false; - installRustc = false; - }; - nil_ls.enable = true; - }; - }; - gitsigns.enable = true; - fugitive.enable = true; - treesitter = { - enable = true; - folding = true; - indent = true; - nixvimInjections = true; - }; - treesitter-refactor = { - enable = true; - smartRename.enable = true; - highlightCurrentScope.enable = true; - navigation.enable = true; - }; - cursorline.enable = true; - nvim-cmp = { - enable = true; - autoEnableSources = true; - sources = [ - {name = "nvim_lsp";} - {name = "path";} - {name = "buffer";} - {name = "luasnip";} - ]; - - snippet.expand = "luasnip"; - - mapping = { - "" = "cmp.mapping.confirm({ select = true })"; - "" = { - action = '' - function(fallback) - local luasnip = require 'luasnip' - if cmp.visible() then - cmp.select_next_item() - elseif luasnip.expandable() then - luasnip.expand() - elseif luasnip.expand_or_jumpable() then - luasnip.expand_or_jump() - else - fallback() - end - end - ''; - modes = [ "i" "s" ]; - }; - }; - }; - telescope.enable = true; - telescope.extensions = { - file_browser.enable = true; - }; - which-key.enable = true; - cmp-nvim-lsp.enable = true; - cmp-nvim-lua.enable = true; - noice.enable = true; - notify.enable = true; - luasnip.enable = true; - neo-tree.enable = true; - presence-nvim.enable = true; - crates-nvim.enable = true; - fidget.enable = true; - alpha = { - enable = true; - theme = "startify"; - }; - bufferline.enable = true; - }; - keymaps = [ - { - mode = "n"; - key = "ff"; - options.silent = true; - action = "Telescope file_browser"; - } - { - mode = "n"; - key = "bb"; - options.silent = true; - action = "Telescope buffers"; - } - { - mode = "n"; - key = "Gp"; - action = "Git pull"; - } - { - mode = "n"; - key = "GP"; - action = "Git push"; - } - { - mode = "n"; - key = "Gc"; - action = "Git commit"; - } - { - mode = "n"; - key = "Ga"; - action = "Git add ."; - } - { - mode = "n"; - key = "Gd"; - action = "Git diff"; - } - { - mode = "n"; - key = "nt"; - action = "Neotree toggle left"; - } - { - mode = "n"; - key = "P"; - action = "\"+p"; - } - { - mode = [ "n" "v" ]; - key = "y"; - action = "[[\"+y]]"; - } - { - mode = [ "n" ]; - key = "Y"; - action = "[[\"+Y]]"; - } - ]; + shiftwidth = 2; # Tab width should be 2 }; + + colorschemes.catppuccin.enable = true; + plugins = { + obsidian = { + enable = true; + dir = "~/Documents/Obsidian Vault/"; + }; + indent-blankline.enable = true; + lualine.enable = true; + lsp-format = {enable = true;}; + lsp = { + enable = true; + servers = { + bashls.enable = true; + lua-ls.enable = true; + nushell.enable = true; + clangd.enable = true; + svelte.enable = true; + tsserver.enable = true; + eslint.enable = true; + rust-analyzer = { + enable = true; + installCargo = false; + installRustc = false; + }; + nil_ls.enable = true; + }; + }; + gitsigns.enable = true; + fugitive.enable = true; + treesitter = { + enable = true; + folding = true; + indent = true; + nixvimInjections = true; + }; + treesitter-refactor = { + enable = true; + smartRename.enable = true; + highlightCurrentScope.enable = true; + navigation.enable = true; + }; + cursorline.enable = true; + nvim-cmp = { + enable = true; + autoEnableSources = true; + sources = [ + {name = "nvim_lsp";} + {name = "path";} + {name = "buffer";} + {name = "luasnip";} + ]; + + snippet.expand = "luasnip"; + + mapping = { + "" = "cmp.mapping.confirm({ select = true })"; + "" = { + action = '' + function(fallback) + local luasnip = require 'luasnip' + if cmp.visible() then + cmp.select_next_item() + elseif luasnip.expandable() then + luasnip.expand() + elseif luasnip.expand_or_jumpable() then + luasnip.expand_or_jump() + else + fallback() + end + end + ''; + modes = ["i" "s"]; + }; + }; + }; + telescope.enable = true; + telescope.extensions = {file_browser.enable = true;}; + which-key.enable = true; + cmp-nvim-lsp.enable = true; + cmp-nvim-lua.enable = true; + noice.enable = true; + notify.enable = true; + luasnip.enable = true; + neo-tree.enable = true; + presence-nvim.enable = true; + crates-nvim.enable = true; + fidget.enable = true; + alpha = { + enable = true; + theme = "startify"; + }; + bufferline.enable = true; + }; + keymaps = [ + { + mode = "n"; + key = "ff"; + options.silent = true; + action = "Telescope file_browser"; + } + { + mode = "n"; + key = "bb"; + options.silent = true; + action = "Telescope buffers"; + } + { + mode = "n"; + key = "Gp"; + action = "Git pull"; + } + { + mode = "n"; + key = "GP"; + action = "Git push"; + } + { + mode = "n"; + key = "Gc"; + action = "Git commit"; + } + { + mode = "n"; + key = "Ga"; + action = "Git add ."; + } + { + mode = "n"; + key = "Gd"; + action = "Git diff"; + } + { + mode = "n"; + key = "nt"; + action = "Neotree toggle left"; + } + { + mode = "n"; + key = "P"; + action = ''"+p''; + } + { + mode = ["n" "v"]; + key = "y"; + action = ''[["+y]]''; + } + { + mode = ["n"]; + key = "Y"; + action = ''[["+Y]]''; + } + ]; + }; } diff --git a/home/modules/shell.nix b/home/modules/shell.nix new file mode 100644 index 0000000..2ff1d69 --- /dev/null +++ b/home/modules/shell.nix @@ -0,0 +1,68 @@ +{ + config, + pkgs, + inputs, + ... +}: { + programs = { + zsh.enable = true; + atuin = { + enable = true; + enableNushellIntegration = true; + }; + eza.enable = true; + nushell = { + enable = true; + shellAliases = {ls = "eza -l --icons --group-directories-first";}; + extraConfig = "uwufetch --image"; + configFile = { + text = '' + $env.config = { + show_banner: false + } + ''; + }; + }; + carapace.enable = true; + carapace.enableNushellIntegration = true; + starship = let + flavour = "mocha"; + in { + enable = true; + enableNushellIntegration = true; + enableBashIntegration = true; + enableZshIntegration = true; + settings = + { + # Other config here + character = { + success_symbol = "[λ::](bold green)"; + error_symbol = "[λ::](bold red)"; + }; + username = { + style_user = "bold pink"; + format = "[$user]($style)"; + show_always = true; + disabled = false; + }; + hostname = { + ssh_only = false; + format = "[ 🏳️‍⚧️ ](bold pink)[$hostname](bold flamingo)"; + disabled = false; + }; + right_format = "$all"; + format = '' + $username$hostname in $directory + $character''; + palette = "catppuccin_${flavour}"; + } + // builtins.fromTOML (builtins.readFile (pkgs.fetchFromGitHub { + owner = "catppuccin"; + repo = "starship"; + rev = "5629d2356f62a9f2f8efad3ff37476c19969bd4f"; # Replace with the latest commit hash + sha256 = "sha256-nsRuxQFKbQkyEI4TXgvAjcroVdG+heKX5Pauq/4Ota0="; + } + + /palettes/${flavour}.toml)); + }; + }; +} diff --git a/home/modules/ssh.nix b/home/modules/ssh.nix index 42e80cf..fa22692 100644 --- a/home/modules/ssh.nix +++ b/home/modules/ssh.nix @@ -1,7 +1,11 @@ -{ inputs, lib, config, pkgs, ...}: - { - age.identityPaths = [ "${config.home.homeDirectory}/.ssh/agenix" ]; # Use this key to decrypt + inputs, + lib, + config, + pkgs, + ... +}: { + age.identityPaths = ["${config.home.homeDirectory}/.ssh/agenix"]; # Use this key to decrypt home.packages = [ inputs.agenix.packages.x86_64-linux.default # Install CLI tool to encrypt ]; diff --git a/home/secrets/secrets.nix b/home/secrets/secrets.nix index 8d07145..030c814 100644 --- a/home/secrets/secrets.nix +++ b/home/secrets/secrets.nix @@ -1,7 +1,6 @@ let - xqtc = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFecbWOhXR4z1wrrI5onn4SFGtu/lfsOblreuRWcbLug"; -in -{ - "xqtc_id_ed25519.age".publicKeys = [ xqtc ]; - "xqtc_id_ed25519_pub.age".publicKeys = [ xqtc ]; + xqtc = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFecbWOhXR4z1wrrI5onn4SFGtu/lfsOblreuRWcbLug"; +in { + "xqtc_id_ed25519.age".publicKeys = [xqtc]; + "xqtc_id_ed25519_pub.age".publicKeys = [xqtc]; } diff --git a/hosts/antivirus.nix b/hosts/antivirus.nix index e15b17b..95f786d 100644 --- a/hosts/antivirus.nix +++ b/hosts/antivirus.nix @@ -1,10 +1,12 @@ -{config, lib, pkgs, ...}: { + config, + lib, + pkgs, + ... +}: { services.clamav = { updater.enable = true; - updater.settings = { - LogVerbose = true; - }; + updater.settings = {LogVerbose = true;}; updater.interval = "hourly"; daemon.enable = true; }; diff --git a/hosts/asmodeus/default.nix b/hosts/asmodeus/default.nix index 57f418f..1e8f081 100644 --- a/hosts/asmodeus/default.nix +++ b/hosts/asmodeus/default.nix @@ -15,19 +15,22 @@ ⠀⠀⠀⠀⠀⠀⠈⠛⠿⣿⣿⣿⣿⣿⣶⣶⣿⣿⣿⣿⣿⠿⠋⠁⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠛⠛⠛⠛⠛⠛⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ */ - -{ config, inputs, lib, pkgs, ... }: - { - imports = - [ # Include the results of the hardware scan. - ./hardware-configuration.nix - ../../common - #../antivirus.nix - ../../modules/home-manager.nix - ../gc.nix - ]; - + config, + inputs, + lib, + pkgs, + ... +}: { + imports = [ + # Include the results of the hardware scan. + ./hardware-configuration.nix + ../../common + #../antivirus.nix + ../../modules/home-manager.nix + ../gc.nix + ]; + nixpkgs.config.allowUnfree = true; hardware.opengl = { @@ -58,7 +61,8 @@ networking.hostName = "asmodeus"; # Define your hostname. # Pick only one of the below networking options. # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. - networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. + networking.networkmanager.enable = + true; # Easiest to use and most distros use this by default. # Set your time zone. time.timeZone = "Europe/Berlin"; @@ -83,7 +87,7 @@ services.xserver.displayManager.defaultSession = "plasmawayland"; services.xserver.videoDrivers = ["nvidia"]; - virtualisation.docker.enable = true; + virtualisation.docker.enable = true; # Configure keymap in X11 services.xserver.xkb.layout = "us"; @@ -113,11 +117,8 @@ # Define a user account. Don't forget to set a password with ‘passwd’. users.users.xqtc = { isNormalUser = true; - extraGroups = [ "wheel" "sudo" "docker" ]; # Enable ‘sudo’ for the user. - packages = with pkgs; [ - wezterm - nushell - ]; + extraGroups = ["wheel" "sudo" "docker"]; # Enable ‘sudo’ for the user. + packages = with pkgs; [wezterm nushell]; shell = pkgs.nushell; }; @@ -127,25 +128,24 @@ vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. wget #git - + firefox - + neovim - + gcc13 cargo rustc - + wl-clipboard xclip jellyfin jellyfin-web jellyfin-ffmpeg - ]; - + #programs.nix-ld.enable = true; # Some programs need SUID wrappers, can be configured further or are @@ -160,7 +160,7 @@ services.jellyfin.enable = true; services.jellyfin.user = "xqtc"; - + #services.calibre-web = { # enable = true; # user = "xqtc"; @@ -177,12 +177,12 @@ #}; services = { - syncthing = { - enable = true; - user = "xqtc"; - dataDir = "/home/xqtc/Documents"; # Default folder for new synced folders - configDir = "/home/xqtc/Documents/.config/syncthing"; # Folder for Syncthing's settings and keys - }; + syncthing = { + enable = true; + user = "xqtc"; + dataDir = "/home/xqtc/Documents"; # Default folder for new synced folders + configDir = "/home/xqtc/Documents/.config/syncthing"; # Folder for Syncthing's settings and keys + }; }; # Enable the OpenSSH daemon. services.openssh.enable = true; @@ -203,7 +203,7 @@ services.tailscale.enable = true; # Open ports in the firewall. - networking.firewall.allowedTCPPorts = [ 2234 8096 8080 8082 ]; + networking.firewall.allowedTCPPorts = [2234 8096 8080 8082]; # networking.firewall.allowedUDPPorts = [ ... ]; # Or disable the firewall altogether. # networking.firewall.enable = false; @@ -230,8 +230,6 @@ # # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion . system.stateVersion = "23.11"; # Did you read the comment? - - nix.settings.experimental-features = [ "nix-command" "flakes" ]; + nix.settings.experimental-features = ["nix-command" "flakes"]; } - diff --git a/hosts/asmodeus/hardware-configuration.nix b/hosts/asmodeus/hardware-configuration.nix index afc8373..0383223 100644 --- a/hosts/asmodeus/hardware-configuration.nix +++ b/hosts/asmodeus/hardware-configuration.nix @@ -1,37 +1,39 @@ # Do not modify this file! It was generated by ‘nixos-generate-config’ # and may be overwritten by future invocations. Please make changes # to /etc/nixos/configuration.nix instead. -{ config, lib, pkgs, modulesPath, ... }: - { - imports = - [ (modulesPath + "/installer/scan/not-detected.nix") - ]; + config, + lib, + pkgs, + modulesPath, + ... +}: { + imports = [(modulesPath + "/installer/scan/not-detected.nix")]; - boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" "sr_mod" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-amd" ]; - boot.extraModulePackages = [ ]; + boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" "sr_mod"]; + boot.initrd.kernelModules = []; + boot.kernelModules = ["kvm-amd"]; + boot.extraModulePackages = []; - fileSystems."/" = - { device = "/dev/disk/by-uuid/5e34fc38-c199-4b85-b756-1c65ed7471fc"; - fsType = "ext4"; - }; + fileSystems."/" = { + device = "/dev/disk/by-uuid/5e34fc38-c199-4b85-b756-1c65ed7471fc"; + fsType = "ext4"; + }; - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/C3D3-9E29"; - fsType = "vfat"; - }; + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/C3D3-9E29"; + fsType = "vfat"; + }; - fileSystems."/mnt/HDD1" = - { device = "/dev/disk/by-uuid/bc68de4c-ad5c-4016-ac11-65de448949fe"; - fsType = "ext4"; - }; - fileSystems."/mnt/HDD2" = - { device = "/dev/disk/by-uuid/c37bc41d-8d92-4b7e-ac45-3420804d086c"; - fsType = "ext4"; - }; - swapDevices = [ ]; + fileSystems."/mnt/HDD1" = { + device = "/dev/disk/by-uuid/bc68de4c-ad5c-4016-ac11-65de448949fe"; + fsType = "ext4"; + }; + fileSystems."/mnt/HDD2" = { + device = "/dev/disk/by-uuid/c37bc41d-8d92-4b7e-ac45-3420804d086c"; + fsType = "ext4"; + }; + swapDevices = []; # Enables DHCP on each ethernet and wireless interface. In case of scripted networking # (the default) this is the recommended approach. When using systemd-networkd it's @@ -42,5 +44,6 @@ # networking.interfaces.wlo1.useDHCP = lib.mkDefault true; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + hardware.cpu.amd.updateMicrocode = + lib.mkDefault config.hardware.enableRedistributableFirmware; } diff --git a/hosts/gc.nix b/hosts/gc.nix index b59f33c..4ddb1b5 100644 --- a/hosts/gc.nix +++ b/hosts/gc.nix @@ -1,5 +1,4 @@ -{ config, ... }: -{ +{config, ...}: { nix.gc = { automatic = true; dates = "daily"; diff --git a/hosts/lambda/default.nix b/hosts/lambda/default.nix index 2f89243..7f10027 100644 --- a/hosts/lambda/default.nix +++ b/hosts/lambda/default.nix @@ -13,15 +13,17 @@ ⠀⠀⠀⠀⠀⠀⠈⠛⠿⣿⣿⣿⣿⣿⣶⣶⣿⣿⣿⣿⣿⠿⠋⠁⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠛⠛⠛⠛⠛⠛⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ */ - -{ config, lib, pkgs, ... }: - { - imports = - [ # Include the results of the hardware scan. - ./hardware-configuration.nix - ]; - + config, + lib, + pkgs, + ... +}: { + imports = [ + # Include the results of the hardware scan. + ./hardware-configuration.nix + ]; + nixpkgs.config.allowUnfree = true; security.pam.services.swaylock = {}; @@ -48,11 +50,7 @@ hardware.bluetooth = { enable = true; powerOnBoot = true; - settings = { - General = { - Enable = "Source,Sink,Media,Socket"; - }; - }; + settings = {General = {Enable = "Source,Sink,Media,Socket";};}; }; # Use the systemd-boot EFI boot loader. @@ -64,7 +62,8 @@ networking.hostName = "lambda"; # Define your hostname. # Pick only one of the below networking options. # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. - networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. + networking.networkmanager.enable = + true; # Easiest to use and most distros use this by default. # Set your time zone. time.timeZone = "Europe/Berlin"; @@ -88,7 +87,7 @@ #services.xserver.desktopManager.gnome.enable = true; #services.xserver.displayManager.defaultSession = "plasmawayland"; #services.xserver.videoDrivers = ["nvidia"]; - + services.blueman.enable = true; # Configure keymap in X11 @@ -111,32 +110,29 @@ # Define a user account. Don't forget to set a password with ‘passwd’. users.users.xqtc = { isNormalUser = true; - extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user. - packages = with pkgs; [ - wezterm - nushell - ]; + extraGroups = ["wheel"]; # Enable ‘sudo’ for the user. + packages = with pkgs; [wezterm nushell]; shell = pkgs.nushell; }; # List packages installed in system profile. To search, run: # $ nix search wget environment.systemPackages = with pkgs; [ - vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. - wget - #git - firefox - neovim - gcc13 - cargo - cargo-generate - sway - swaylock - swaylock-effects - tofi - waybar - wl-clipboard - wdisplays + vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. + wget + #git + firefox + neovim + gcc13 + cargo + cargo-generate + sway + swaylock + swaylock-effects + tofi + waybar + wl-clipboard + wdisplays ]; # Some programs need SUID wrappers, can be configured further or are @@ -146,7 +142,7 @@ enable = true; enableSSHSupport = true; }; - services.udev.packages = [ pkgs.yubikey-personalization ]; + services.udev.packages = [pkgs.yubikey-personalization]; services.pcscd.enable = true; # List services that you want to enable: @@ -169,7 +165,7 @@ services.tailscale.enable = true; # Open ports in the firewall. - networking.firewall.allowedTCPPorts = [ 8080 5173 ]; + networking.firewall.allowedTCPPorts = [8080 5173]; # networking.firewall.allowedUDPPorts = [ ... ]; # Or disable the firewall altogether. # networking.firewall.enable = false; @@ -196,8 +192,6 @@ # # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion . system.stateVersion = "23.11"; # Did you read the comment? - - nix.settings.experimental-features = [ "nix-command" "flakes" ]; + nix.settings.experimental-features = ["nix-command" "flakes"]; } - diff --git a/hosts/lambda/hardware-configuration.nix b/hosts/lambda/hardware-configuration.nix index 099674e..53831cf 100644 --- a/hosts/lambda/hardware-configuration.nix +++ b/hosts/lambda/hardware-configuration.nix @@ -1,31 +1,31 @@ # Do not modify this file! It was generated by ‘nixos-generate-config’ # and may be overwritten by future invocations. Please make changes # to /etc/nixos/configuration.nix instead. -{ config, lib, pkgs, modulesPath, ... }: - { - imports = - [ (modulesPath + "/installer/scan/not-detected.nix") - ]; + config, + lib, + pkgs, + modulesPath, + ... +}: { + imports = [(modulesPath + "/installer/scan/not-detected.nix")]; - boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ ]; - boot.extraModulePackages = [ ]; + boot.initrd.availableKernelModules = ["xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc"]; + boot.initrd.kernelModules = []; + boot.kernelModules = []; + boot.extraModulePackages = []; - fileSystems."/" = - { device = "/dev/disk/by-uuid/0b6d9cc6-88a7-45b4-b79e-81496f480e7c"; - fsType = "ext4"; - }; + fileSystems."/" = { + device = "/dev/disk/by-uuid/0b6d9cc6-88a7-45b4-b79e-81496f480e7c"; + fsType = "ext4"; + }; - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/6F98-B5D8"; - fsType = "vfat"; - }; + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/6F98-B5D8"; + fsType = "vfat"; + }; - swapDevices = - [ { device = "/dev/disk/by-uuid/6cf4542a-9611-4a15-83df-12e3ec91b673"; } - ]; + swapDevices = [{device = "/dev/disk/by-uuid/6cf4542a-9611-4a15-83df-12e3ec91b673";}]; # Enables DHCP on each ethernet and wireless interface. In case of scripted networking # (the default) this is the recommended approach. When using systemd-networkd it's @@ -35,5 +35,6 @@ # networking.interfaces.wlp0s20f3.useDHCP = lib.mkDefault true; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + hardware.cpu.intel.updateMicrocode = + lib.mkDefault config.hardware.enableRedistributableFirmware; } diff --git a/hosts/lilith/default.nix b/hosts/lilith/default.nix index 28bd875..3820000 100644 --- a/hosts/lilith/default.nix +++ b/hosts/lilith/default.nix @@ -1,16 +1,20 @@ -{ config, lib, inputs, pkgs, ... }: - { - imports = - [ # Include the results of the hardware scan. - ./hardware-configuration.nix - ../../common - #../antivirus.nix - ../../modules/home-manager.nix - inputs.nixos-hardware.nixosModules.lenovo-thinkpad-t480 - ../gc.nix - ]; - + config, + lib, + inputs, + pkgs, + ... +}: { + imports = [ + # Include the results of the hardware scan. + ./hardware-configuration.nix + ../../common + #../antivirus.nix + ../../modules/home-manager.nix + inputs.nixos-hardware.nixosModules.lenovo-thinkpad-t480 + ../gc.nix + ]; + nixpkgs.config.allowUnfree = true; security.pam.services.swaylock = {}; @@ -24,11 +28,7 @@ hardware.bluetooth = { enable = true; powerOnBoot = true; - settings = { - General = { - Enable = "Source,Sink,Media,Socket"; - }; - }; + settings = {General = {Enable = "Source,Sink,Media,Socket";};}; }; # Use the systemd-boot EFI boot loader. @@ -56,7 +56,8 @@ networking.hostName = "lilith"; # Define your hostname. # Pick only one of the below networking options. # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. - networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. + networking.networkmanager.enable = + true; # Easiest to use and most distros use this by default. # Set your time zone. time.timeZone = "Europe/Berlin"; @@ -80,7 +81,7 @@ #services.xserver.desktopManager.gnome.enable = true; #services.xserver.displayManager.defaultSession = "plasmawayland"; #services.xserver.videoDrivers = ["nvidia"]; - + services.blueman.enable = true; # Configure keymap in X11 @@ -123,37 +124,34 @@ # Define a user account. Don't forget to set a password with ‘passwd’. users.users.xqtc = { isNormalUser = true; - extraGroups = [ "wheel" "libvirtd" ]; # Enable ‘sudo’ for the user. - packages = with pkgs; [ - nushell - clamtk - ]; + extraGroups = ["wheel" "libvirtd"]; # Enable ‘sudo’ for the user. + packages = with pkgs; [nushell clamtk]; shell = pkgs.nushell; }; # List packages installed in system profile. To search, run: # $ nix search wget environment.systemPackages = with pkgs; [ - vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. - wget - #git - neovim - gcc13 - cargo - cargo-generate - sway - gnome3.adwaita-icon-theme - glib - #swaylock - swaylock-effects - tofi - waybar - wl-clipboard - wdisplays - #qemu_full - gnomeExtensions.blur-my-shell - surrealdb - zathura + vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. + wget + #git + neovim + gcc13 + cargo + cargo-generate + sway + gnome3.adwaita-icon-theme + glib + #swaylock + swaylock-effects + tofi + waybar + wl-clipboard + wdisplays + #qemu_full + gnomeExtensions.blur-my-shell + surrealdb + zathura ]; # Some programs need SUID wrappers, can be configured further or are @@ -163,7 +161,7 @@ enable = true; enableSSHSupport = true; }; - services.udev.packages = [ pkgs.yubikey-personalization ]; + services.udev.packages = [pkgs.yubikey-personalization]; services.pcscd.enable = true; programs.dconf.enable = true; @@ -190,20 +188,19 @@ #]; services.resolved = { enable = true; - # #dnssec = "true"; - # domains = [ "~." ]; - # fallbackDns = ["1.1.1.1#one.one.one.one"]; - # #extraConfig = '' - # # MulticastDNS=yes - # #''; + # #dnssec = "true"; + # domains = [ "~." ]; + # fallbackDns = ["1.1.1.1#one.one.one.one"]; + # #extraConfig = '' + # # MulticastDNS=yes + # #''; }; #networking.wireguard.enable = true; - services.tailscale.enable = true; # Open ports in the firewall. - networking.firewall.allowedTCPPorts = [ 22 2234 8080 5173 ]; + networking.firewall.allowedTCPPorts = [22 2234 8080 5173]; # networking.firewall.allowedUDPPorts = [ ... ]; # Or disable the firewall altogether. # networking.firewall.enable = false; @@ -230,8 +227,6 @@ # # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion . system.stateVersion = "23.11"; # Did you read the comment? - - nix.settings.experimental-features = [ "nix-command" "flakes" ]; + nix.settings.experimental-features = ["nix-command" "flakes"]; } - diff --git a/hosts/lilith/hardware-configuration.nix b/hosts/lilith/hardware-configuration.nix index f054ec0..594de48 100644 --- a/hosts/lilith/hardware-configuration.nix +++ b/hosts/lilith/hardware-configuration.nix @@ -1,29 +1,31 @@ # Do not modify this file! It was generated by ‘nixos-generate-config’ # and may be overwritten by future invocations. Please make changes # to /etc/nixos/configuration.nix instead. -{ config, lib, pkgs, modulesPath, ... }: - { - imports = - [ (modulesPath + "/installer/scan/not-detected.nix") - ]; + config, + lib, + pkgs, + modulesPath, + ... +}: { + imports = [(modulesPath + "/installer/scan/not-detected.nix")]; - boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" ]; - boot.initrd.kernelModules = [ "dm-snapshot" ]; - boot.kernelModules = [ ]; - boot.extraModulePackages = [ ]; + boot.initrd.availableKernelModules = ["xhci_pci" "nvme" "usb_storage" "sd_mod"]; + boot.initrd.kernelModules = ["dm-snapshot"]; + boot.kernelModules = []; + boot.extraModulePackages = []; - fileSystems."/" = - { device = "/dev/disk/by-uuid/a73b1d2a-cdeb-40e7-9200-b6243aad03e0"; - fsType = "ext4"; - }; + fileSystems."/" = { + device = "/dev/disk/by-uuid/a73b1d2a-cdeb-40e7-9200-b6243aad03e0"; + fsType = "ext4"; + }; - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/AA05-0A9A"; - fsType = "vfat"; - }; + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/AA05-0A9A"; + fsType = "vfat"; + }; - swapDevices = [ ]; + swapDevices = []; # Enables DHCP on each ethernet and wireless interface. In case of scripted networking # (the default) this is the recommended approach. When using systemd-networkd it's @@ -35,5 +37,6 @@ # networking.interfaces.wwp0s20f0u6.useDHCP = lib.mkDefault true; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + hardware.cpu.intel.updateMicrocode = + lib.mkDefault config.hardware.enableRedistributableFirmware; } diff --git a/hosts/seraphim/default.nix b/hosts/seraphim/default.nix index 9aa4770..f29976b 100644 --- a/hosts/seraphim/default.nix +++ b/hosts/seraphim/default.nix @@ -1,16 +1,20 @@ -{ config, inputs, lib, pkgs, ... }: - { - imports = - [ # Include the results of the hardware scan. - ./hardware-configuration.nix - ../../modules/home-manager.nix - ../../common - inputs.nixos-hardware.nixosModules.common-cpu-intel - ../gc.nix - ]; + config, + inputs, + lib, + pkgs, + ... +}: { + imports = [ + # Include the results of the hardware scan. + ./hardware-configuration.nix + ../../modules/home-manager.nix + ../../common + inputs.nixos-hardware.nixosModules.common-cpu-intel + ../gc.nix + ]; nixpkgs.config.allowUnfree = true; - nix.settings.experimental-features = [ "nix-command" "flakes" ]; + nix.settings.experimental-features = ["nix-command" "flakes"]; # Use the systemd-boot EFI boot loader. boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; @@ -20,7 +24,8 @@ # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. #networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. nixpkgs.config.packageOverrides = pkgs: { - intel-vaapi-driver = pkgs.intel-vaapi-driver.override { enableHybridCodec = true; }; + intel-vaapi-driver = + pkgs.intel-vaapi-driver.override {enableHybridCodec = true;}; }; hardware.opengl = { enable = true; @@ -31,7 +36,9 @@ libvdpau-va-gl ]; }; - environment.sessionVariables = { LIBVA_DRIVER_NAME = "iHD"; }; # Force intel-media-driver + environment.sessionVariables = { + LIBVA_DRIVER_NAME = "iHD"; + }; # Force intel-media-driver # Set your time zone. time.timeZone = "Europe/Berlin"; @@ -51,9 +58,6 @@ # Enable the X11 windowing system. #services.xserver.enable = true; - - - # Configure keymap in X11 services.xserver.xkb.layout = "us"; # services.xserver.xkb.options = "eurosign:e,caps:escape"; @@ -71,10 +75,8 @@ # Define a user account. Don't forget to set a password with ‘passwd’. users.users.xqtc = { isNormalUser = true; - extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user. - packages = with pkgs; [ - tree - ]; + extraGroups = ["wheel"]; # Enable ‘sudo’ for the user. + packages = with pkgs; [tree]; shell = pkgs.nushell; }; @@ -96,7 +98,7 @@ networking.resolvconf.enable = false; services.resolved.enable = true; - + services.transmission = { enable = true; user = "xqtc"; @@ -108,9 +110,8 @@ rpc-bind-address = "0.0.0.0"; rpc-whitelist-enabled = "false"; rpc-authentication-required = "true"; - rpc-username = "xqtc"; + rpc-username = "xqtc"; rpc-password = "Klavier2016"; - }; }; @@ -149,7 +150,7 @@ services.openssh.enable = true; # Open ports in the firewall. - networking.firewall.allowedTCPPorts = [ 22 8096 9091 5001 ]; + networking.firewall.allowedTCPPorts = [22 8096 9091 5001]; # networking.firewall.allowedUDPPorts = [ ... ]; # Or disable the firewall altogether. # networking.firewall.enable = false; @@ -176,6 +177,4 @@ # # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion . system.stateVersion = "23.11"; # Did you read the comment? - } - diff --git a/hosts/seraphim/hardware-configuration.nix b/hosts/seraphim/hardware-configuration.nix index e904fac..c524c9e 100644 --- a/hosts/seraphim/hardware-configuration.nix +++ b/hosts/seraphim/hardware-configuration.nix @@ -1,29 +1,40 @@ # Do not modify this file! It was generated by ‘nixos-generate-config’ # and may be overwritten by future invocations. Please make changes # to /etc/nixos/configuration.nix instead. -{ config, lib, pkgs, modulesPath, ... }: - { - imports = - [ (modulesPath + "/installer/scan/not-detected.nix") - ]; + config, + lib, + pkgs, + modulesPath, + ... +}: { + imports = [(modulesPath + "/installer/scan/not-detected.nix")]; - boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "firewire_ohci" "usbhid" "usb_storage" "sd_mod" "sdhci_pci" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-intel" "wl" ]; - boot.extraModulePackages = [ config.boot.kernelPackages.broadcom_sta ]; + boot.initrd.availableKernelModules = [ + "xhci_pci" + "ehci_pci" + "ahci" + "firewire_ohci" + "usbhid" + "usb_storage" + "sd_mod" + "sdhci_pci" + ]; + boot.initrd.kernelModules = []; + boot.kernelModules = ["kvm-intel" "wl"]; + boot.extraModulePackages = [config.boot.kernelPackages.broadcom_sta]; - fileSystems."/" = - { device = "/dev/disk/by-uuid/7317806c-aa54-460c-b094-18104496d245"; - fsType = "ext4"; - }; + fileSystems."/" = { + device = "/dev/disk/by-uuid/7317806c-aa54-460c-b094-18104496d245"; + fsType = "ext4"; + }; - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/0AE9-6A7E"; - fsType = "vfat"; - }; + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/0AE9-6A7E"; + fsType = "vfat"; + }; - swapDevices = [ ]; + swapDevices = []; # Enables DHCP on each ethernet and wireless interface. In case of scripted networking # (the default) this is the recommended approach. When using systemd-networkd it's @@ -33,5 +44,6 @@ # networking.interfaces.enp1s0f0.useDHCP = lib.mkDefault true; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + hardware.cpu.intel.updateMicrocode = + lib.mkDefault config.hardware.enableRedistributableFirmware; } diff --git a/modules/home-manager.nix b/modules/home-manager.nix index 3465bb3..4fc169e 100644 --- a/modules/home-manager.nix +++ b/modules/home-manager.nix @@ -1,14 +1,20 @@ -{lib, inputs, ...}: { - imports = [ inputs.home-manager.nixosModules.home-manager ]; +{ + lib, + inputs, + ... +}: { + imports = [inputs.home-manager.nixosModules.home-manager]; config = { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; - + home-manager.extraSpecialArgs = {inherit inputs;}; - home-manager.users.xqtc = {...}: {imports = [ - ../home - inputs.nixvim.homeManagerModules.nixvim - #inputs.agenix.homeManagerModules.default - ]; }; + home-manager.users.xqtc = {...}: { + imports = [ + ../home + inputs.nixvim.homeManagerModules.nixvim + #inputs.agenix.homeManagerModules.default + ]; + }; }; } diff --git a/overlays/util.nix b/overlays/util.nix index 7b1b8ce..e8d9b01 100644 --- a/overlays/util.nix +++ b/overlays/util.nix @@ -1,13 +1,19 @@ self: super: { - util = rec { - dirEntries = path: builtins.attrNames (builtins.readDir path); - mapHosts = f: builtins.map f (dirEntries ../hosts); - mapHostAttrs = key_f: val_f: builtins.listToAttrs (mapHosts (host: {name = key_f host; value = val_f host;})); - mapObjKeys = obj: f: builtins.map f (builtins.attrNames obj); - mapKeys = obj: f: builtins.map f obj; - nixFilesIn = path: builtins.map - (e: import (path + /${e})) - (builtins.filter (x: (builtins.match ".*\\.nix$" x) != null) (dirEntries path)); - without = exclusions: list: builtins.filter (x: !builtins.elem x exclusions) list; - }; + util = rec { + dirEntries = path: builtins.attrNames (builtins.readDir path); + mapHosts = f: builtins.map f (dirEntries ../hosts); + mapHostAttrs = key_f: val_f: + builtins.listToAttrs (mapHosts (host: { + name = key_f host; + value = val_f host; + })); + mapObjKeys = obj: f: builtins.map f (builtins.attrNames obj); + mapKeys = obj: f: builtins.map f obj; + nixFilesIn = path: + builtins.map (e: import (path + /${e})) + (builtins.filter (x: (builtins.match ".*\\.nix$" x) != null) + (dirEntries path)); + without = exclusions: list: + builtins.filter (x: !builtins.elem x exclusions) list; + }; }