commit 946cf19c5bfb79c5f48e7c782f8d9863137e075c Author: jopejoe1 Date: Mon Feb 20 16:38:19 2023 +0100 Initial Configuration diff --git a/common.nix b/common.nix new file mode 100644 index 0000000..79a894c --- /dev/null +++ b/common.nix @@ -0,0 +1,170 @@ +{ config, pkgs, lib, ... }: + +{ + # Configure networking + networking = { + networkmanager.enable = true; + firewall.enable = true; + }; + + qt = { + enable = true; + platformTheme = lib.mkForce "kde"; + }; + + virtualisation.waydroid.enable = true; + + nix.settings = { + substituters = [ + "https://cache.nixos.org/" + "https://nix-community.cachix.org" + "https://prismlauncher.cachix.org" + ]; + trusted-public-keys = [ + "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" + "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" + "prismlauncher.cachix.org-1:GhJfjdP1RFKtFSH3gXTIQCvZwsb2cioisOf91y/bK0w=" + ]; + trusted-users = [ "root" ]; + sandbox = true; + require-sigs = true; + max-jobs = "auto"; + auto-optimise-store = true; + allowed-users = [ "*" ]; + experimental-features = [ "nix-command" "flakes" ]; + }; + + # Enable services + services = { + # Configure X11 + xserver = { + enable = true; + displayManager = { + sddm = { + enable = true; + enableHidpi = true; + }; + lightdm.extraConfig = "user-authority-in-system-dir = true"; + }; + desktopManager = { + plasma5 = { + enable = true; + supportDDC = true; + useQtScaling = true; + }; + }; + }; + + # Enable CUPS to print documents. + printing = { + enable = true; + webInterface = true; + drivers = [ pkgs.hplipWithPlugin ]; + }; + + # Enable Network Printing and Scanning + avahi = { + enable = true; + nssmdns = true; + openFirewall = true; + }; + + # Enable pipewire + pipewire = { + enable = true; + media-session.enable = false; + wireplumber.enable = true; + audio.enable = true; + pulse.enable = true; + jack.enable = true; + alsa = { + enable = true; + support32Bit = true; + }; + }; + clamav = { + daemon.enable = true; + updater.enable = true; + }; + }; + + # Hardware configure + hardware = { + # Enable Scanning + sane = { + enable = true; + extraBackends = [ pkgs.sane-airscan pkgs.hplipWithPlugin ]; + }; + + # Disable pulseaudio + pulseaudio.enable = false; + }; + + # Enable ALSA + sound.enable = false; + + # Configure Users + users.users.jopejoe1 = { + isNormalUser = true; + description = "jopejoe1 🚫"; + initialPassword = "password"; + extraGroups = [ "wheel" "networkmanger" "scanner" "lp"]; + packages = with pkgs; [ + kate + tela-icon-theme + carla + xdg-ninja + prismlauncher + nixpkgs-review + nurl + nix-init + ]; + }; + + programs = { + dconf.enable = true; + }; + + security.rtkit.enable = true; + + # Localization + i18n = { + defaultLocale = "en_NZ.UTF-8"; + extraLocaleSettings = { + LC_ADDRESS = "de_DE.UTF-8"; + LC_IDENTIFICATION = "de_DE.UTF-8"; + LC_MEASUREMENT = "de_DE.UTF-8"; + LC_MONETARY = "de_DE.UTF-8"; + LC_NAME = "de_DE.UTF-8"; + LC_NUMERIC = "de_DE.UTF-8"; + LC_PAPER = "de_DE.UTF-8"; + LC_TELEPHONE = "de_DE.UTF-8"; + LC_TIME = "de_DE.UTF-8"; + LC_CTYPE = "de_DE.UTF-8"; + LC_COLLATE = "de_DE.UTF-8"; + LC_MESSAGES = "en_NZ.UTF-8"; + }; + }; + + fonts.fontDir.enable = true; + + console = { + enable = true; + font = "Lat2-Terminus16"; + }; + + xdg = { + sounds.enable = true; + mime.enable = true; + menus.enable = true; + icons.enable = true; + autostart.enable = true; + portal = { + enable = true; + extraPortals = with pkgs; [ xdg-desktop-portal xdg-desktop-portal-gtk ]; + }; + }; + + # Do not change unless made sure evrything works with new version + system.stateVersion = "23.05"; +} diff --git a/configuration.nix b/configuration.nix new file mode 100644 index 0000000..a8a74c0 --- /dev/null +++ b/configuration.nix @@ -0,0 +1,74 @@ +# Edit this configuration file to define what should be installed on +# your system. Help is available in the configuration.nix(5) man page +# and in the NixOS manual (accessible by running ‘nixos-help’). + +{ config, pkgs, ... }: + +{ + imports = + [ # Include the results of the hardware scan. + ./hardware-configuration.nix + ]; + + + # Set your time zone. + + + # Configure network proxy if necessary + # networking.proxy.default = "http://user:password@proxy:port/"; + # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; + + # Select internationalisation properties. + # i18n.defaultLocale = "en_US.UTF-8"; + # console = { + # font = "Lat2-Terminus16"; + # keyMap = "us"; + # useXkbConfig = true; # use xkbOptions in tty. + # }; + + + # Enable sound. + security.rtkit.enable = true; + + + + # 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 + # ]; + + # Some programs need SUID wrappers, can be configured further or are + # started in user sessions. + # programs.mtr.enable = true; + # programs.gnupg.agent = { + # enable = true; + # enableSSHSupport = true; + # }; + + # List services that you want to enable: + + # Enable the OpenSSH daemon. + # services.openssh.enable = true; + + # Open ports in the firewall. + # networking.firewall.allowedTCPPorts = [ ... ]; + # networking.firewall.allowedUDPPorts = [ ... ]; + # Or disable the firewall altogether. + + # Copy the NixOS configuration file and link it from the resulting system + # (/run/current-system/configuration.nix). This is useful in case you + # accidentally delete configuration.nix. + # system.copySystemConfiguration = true; + + # This value determines the NixOS release from which the default + # settings for stateful data, like file locations and database versions + # on your system were taken. It’s perfectly fine and recommended to leave + # this value at the release version of the first install of this system. + # Before changing this value read the documentation for this option + # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). + system.stateVersion = "23.05"; # Did you read the comment? + +} + diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..a0cff2f --- /dev/null +++ b/flake.lock @@ -0,0 +1,208 @@ +{ + "nodes": { + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-utils": { + "locked": { + "lastModified": 1676283394, + "narHash": "sha256-XX2f9c3iySLCw54rJ/CZs+ZK6IQy7GXNY4nSOyu2QG4=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "3db36a8b464d0c4532ba1c7dda728f4576d6d073", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ], + "utils": [ + "flake-utils" + ] + }, + "locked": { + "lastModified": 1676892629, + "narHash": "sha256-rlvsqoSBO5dCwfnn7xvImYREidIPJaiFS3b54TZF4pU=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "72ce74d3eae78a6b31538ea7ebe0c1fcf4a10f7a", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "libnbtplusplus": { + "flake": false, + "locked": { + "lastModified": 1650031308, + "narHash": "sha256-TvVOjkUobYJD9itQYueELJX3wmecvEdCbJ0FinW2mL4=", + "owner": "PrismLauncher", + "repo": "libnbtplusplus", + "rev": "2203af7eeb48c45398139b583615134efd8d407f", + "type": "github" + }, + "original": { + "owner": "PrismLauncher", + "repo": "libnbtplusplus", + "type": "github" + } + }, + "nix-darwin": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1673295039, + "narHash": "sha256-AsdYgE8/GPwcelGgrntlijMg4t3hLFJFCRF3tL5WVjA=", + "owner": "LnL7", + "repo": "nix-darwin", + "rev": "87b9d090ad39b25b2400029c64825fc2a8868943", + "type": "github" + }, + "original": { + "owner": "LnL7", + "repo": "nix-darwin", + "type": "github" + } + }, + "nix-vscode-extensions": { + "inputs": { + "flake-compat": [ + "flake-compat" + ], + "flake-utils": [ + "flake-utils" + ], + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1676856141, + "narHash": "sha256-Wa4fp+L4jcMHlT+9ogSmKF+lkS6jPMinoLBfyWz3CoE=", + "owner": "nix-community", + "repo": "nix-vscode-extensions", + "rev": "284cb3f8ca45c9b126656961625fcd8c6ae2985d", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix-vscode-extensions", + "type": "github" + } + }, + "nixos-hardware": { + "locked": { + "lastModified": 1676886000, + "narHash": "sha256-t7nxEvJb4ISR7u54YADZiZi9EaKHJKbXQjyyf00Q8TA=", + "owner": "NixOS", + "repo": "nixos-hardware", + "rev": "26c9dbdc92abc370510be78889942f38a272d705", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixos-hardware", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1676721149, + "narHash": "sha256-mN2EpTGxxVNnFZLoLWRwh6f7UWhXy4qE+wO2CZyrXps=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "5f4e07deb7c44f27d498f8df9c5f34750acf52d2", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nur": { + "locked": { + "lastModified": 1676893626, + "narHash": "sha256-idYtqSQ/Q8uVNd0ugiVHahovEROdsylUL+C7zT3Co4U=", + "owner": "nix-community", + "repo": "NUR", + "rev": "33080b3b073e2f820aaa1fce017dc7b9afc44cd8", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "NUR", + "type": "github" + } + }, + "prismlauncher": { + "inputs": { + "flake-compat": [ + "flake-compat" + ], + "libnbtplusplus": [ + "libnbtplusplus" + ], + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1676653015, + "narHash": "sha256-Ga1qCUZJy9WhffMpMiWNX1M7X+E1XLd0fashw6JVKmU=", + "owner": "PrismLauncher", + "repo": "PrismLauncher", + "rev": "b977ac6df5a6b953f3a04d774bddfee38e30bb04", + "type": "github" + }, + "original": { + "owner": "PrismLauncher", + "repo": "PrismLauncher", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-compat": "flake-compat", + "flake-utils": "flake-utils", + "home-manager": "home-manager", + "libnbtplusplus": "libnbtplusplus", + "nix-darwin": "nix-darwin", + "nix-vscode-extensions": "nix-vscode-extensions", + "nixos-hardware": "nixos-hardware", + "nixpkgs": "nixpkgs", + "nur": "nur", + "prismlauncher": "prismlauncher" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..313884d --- /dev/null +++ b/flake.nix @@ -0,0 +1,58 @@ +{ + inputs = { + nixpkgs.url = github:NixOS/nixpkgs/nixos-unstable; + nixos-hardware.url = github:NixOS/nixos-hardware; + nur.url = github:nix-community/NUR; + flake-compat = { url = github:edolstra/flake-compat; flake = false; }; + libnbtplusplus = { url = github:PrismLauncher/libnbtplusplus; flake = false; }; + flake-utils.url = github:numtide/flake-utils; + prismlauncher = { + url = github:PrismLauncher/PrismLauncher; + inputs.nixpkgs.follows = "nixpkgs"; + inputs.flake-compat.follows = "flake-compat"; + inputs.libnbtplusplus.follows = "libnbtplusplus"; + }; + home-manager = { + url = github:nix-community/home-manager; + inputs.nixpkgs.follows = "nixpkgs"; + inputs.utils.follows = "flake-utils"; + }; + nix-darwin = { + url = github:LnL7/nix-darwin; + inputs.nixpkgs.follows = "nixpkgs"; + }; + nix-vscode-extensions = { + url = github:nix-community/nix-vscode-extensions; + inputs.flake-compat.follows = "flake-compat"; + inputs.flake-utils.follows = "flake-utils"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + }; + outputs = { self, nixpkgs, nixos-hardware, prismlauncher, home-manager, nur, ... }: { + nixosConfigurations.yokai = nixpkgs.lib.nixosSystem { + system = "aarch64-linux"; + modules = [ + ./yokai.nix + ./common.nix + nixos-hardware.nixosModules.pine64-pinebook-pro + home-manager.nixosModules.home-manager + nur.nixosModules.nur + { + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + users.jopejoe1 = import ./home.nix; + users.root = import ./home/root.nix; + }; + nixpkgs = { + config.allowUnfree = true; + overlays = [ + #prismlauncher.overlay + nur.overlay + ]; + }; + } + ]; + }; + }; +} diff --git a/hardware-configuration.nix b/hardware-configuration.nix new file mode 100644 index 0000000..f68fd41 --- /dev/null +++ b/hardware-configuration.nix @@ -0,0 +1,37 @@ +# 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") + ]; + + boot.initrd.availableKernelModules = [ "usbhid" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/bcee4b4b-1d51-46fd-ad12-ae333cd4f096"; + fsType = "ext4"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/A455-C896"; + fsType = "vfat"; + }; + + 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 + # still possible to use this option, but it's recommended to use it in conjunction + # with explicit per-interface declarations with `networking.interfaces..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.wlan0.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux"; + powerManagement.cpuFreqGovernor = lib.mkDefault "ondemand"; +} diff --git a/home.nix b/home.nix new file mode 100644 index 0000000..fcb0fbb --- /dev/null +++ b/home.nix @@ -0,0 +1,240 @@ +{ config, pkgs, ... }: + +{ + home = { + # Basic information for home-manager + username = "jopejoe1"; + homeDirectory = "/home/${config.home.username}"; + + # Enviroment variables + sessionVariables = { + XCOMPOSECACHE = "${config.xdg.cacheHome}/X11/xcompos"; + XAUTHORITY = "$XDG_RUNTIME_DIR/Xauthority"; + }; + + # Do not change this version unless 100% sure updatet evrything to the new version + stateVersion = "23.05"; + }; + + accounts.email.accounts = { + main = { + address = "johannes@joens.email"; + flavor = "gmail.com"; + primary = true; + realName = "Johannes Joens"; + thunderbird.enable = true; + }; + }; + + # XDG base dirs + xdg = { + enable = true; + mime.enable = true; + cacheHome = "${config.home.homeDirectory}/.cache"; + configHome = "${config.home.homeDirectory}/.config"; + dataHome = "${config.home.homeDirectory}/.local/share"; + stateHome = "${config.home.homeDirectory}/.local/state"; + userDirs = { + enable = true; + createDirectories = false; + desktop = "${config.home.homeDirectory}/Desktop"; + documents = "${config.home.homeDirectory}/Documents"; + download = "${config.home.homeDirectory}/Downloads"; + music = "${config.home.homeDirectory}/Music"; + pictures = "${config.home.homeDirectory}/Pictures"; + publicShare = "${config.home.homeDirectory}/Public"; + templates = "${config.home.homeDirectory}/Templates"; + videos = "${config.home.homeDirectory}/Videos"; + }; + }; + + gtk = { + enable = true; + gtk2 = { + configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc"; + }; + gtk3 = { + extraConfig = { + gtk-application-prefer-dark-theme = true; + gtk-button-images = true; + gtk-decoration-layout = "icon:minimize,maximize,close"; + gtk-enable-animations = true; + gtk-menu-images = true; + gtk-modules = "colorreload-gtk-module"; + gtk-primary-button-warps-slider = false; + gtk-toolbar-style = 3; + }; + }; + gtk4 = { + extraConfig = { + gtk-application-prefer-dark-theme = true; + gtk-decoration-layout = "icon:minimize,maximize,close"; + gtk-enable-animations = true; + gtk-primary-button-warps-slider = false; + }; + }; + cursorTheme = { + package = pkgs.libsForQt5.breeze-icons; + name = "breeze_cursors"; + size = 24; + }; + font = { + package = pkgs.noto-fonts; + name = "Noto Sans"; + size = 10; + }; + theme = { + package = pkgs.libsForQt5.breeze-gtk; + name = "breeze-dark"; + }; + iconTheme = { + package = pkgs.tela-icon-theme; + name = "Tela-purple"; + }; + }; + + # Let Home Manager install and manage itself. + programs = { + home-manager.enable = true; + git = { + enable = true; + package = pkgs.gitAndTools.gitFull; + userEmail = "johannes@joens.email"; + userName = "jopejoe1"; + }; + bash = { + enable = true; + historyFile = "${config.xdg.stateHome}/bash/history"; + shellAliases = { + gc = "sudo nix store gc"; + rb = "sudo nix flake update /etc/nixos/ && sudo nixos-rebuild switch"; + }; + }; + zsh.shellAliases = config.programs.bash.shellAliases; + fish.shellAbbrs = config.programs.bash.shellAliases; + thunderbird = { + enable = false; + profiles = { + default = { + isDefault = true; + }; + }; + }; + firefox = { + enable = true; + package = pkgs.wrapFirefox pkgs.firefox-unwrapped { + extraPolicies = { + AppAutoUpdate = false; + BackgroundAppUpdate = false; + DisableAppUpdate = true; + CaptivePortal = false; + DisableFirefoxStudies = true; + DisablePocket = true; + DisableTelemetry = true; + DisableFirefoxAccounts = true; + DisableFormHistory = true; + DefaultDownloadDirectory = "${config.xdg.userDirs.download}"; + DontCheckDefaultBrowser = true; + ExtensionUpdate = false; + NoDefaultBookmarks = true; + PasswordManagerEnabled = false; + OfferToSaveLogins = false; + OfferToSaveLoginsDefault = false; + EnableTrackingProtection = { + Value = true; + Cryptomining = true; + Fingerprinting = true; + }; + FirefoxHome = { + Search = true; + Pocket = false; + SponsoredPocket = false; + Snippets = false; + TopSites = true; + SponsoredTopSites = false; + Highlights = false; + }; + UserMessaging = { + ExtensionRecommendations = false; + SkipOnboarding = true; + }; + }; + }; + profiles = { + default = { + extensions = with pkgs.nur.repos.rycee.firefox-addons; [ + ublock-origin + privacy-badger + bitwarden + clearurls + decentraleyes + duckduckgo-privacy-essentials + ghostery + libredirect + privacy-badger + languagetool + fastforward + return-youtube-dislikes + sponsorblock + augmented-steam + steam-database + refined-github + plasma-integration + bypass-paywalls-clean + lovely-forks + search-by-image + skip-redirect + terms-of-service-didnt-read + unpaywall + wappalyzer + wayback-machine + modrinthify + ]; + id = 0; + isDefault = true; + name = "default"; + search = { + default = "DuckDuckGo"; + force = true; + engines = { + "Nix Packages" = { + 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" ]; + }; + "NixOS Wiki" = { + urls = [{ template = "https://nixos.wiki/index.php?search={searchTerms}"; }]; + icon = "${config.programs.firefox.profiles.default.search.engines."Nix Packages".icon}"; + definedAliases = [ "@nw" ]; + }; + "Bing".metaData.hidden = true; + "Google".metaData.hidden = true; + "eBay".metaData.hidden = true; + "Amazon.de".metaData.hidden = true; + "Wikipedia (en)".metaData.alias = "@wiki"; + }; + }; + settings = { + "privacy.resistFingerprinting" = true; + "privacy.trackingprotection.fingerprinting.enabled" = true; + "privacy.trackingprotection.cryptomining.enabled" = true; + "dom.event.clipboardevents.enabled" = false; + "dom.battery.enabled" = false; + "browser.safebrowsing.phishing.enabled" = false; + "browser.safebrowsing.malware.enabled" = false; + "browser.zoom.siteSpecific" = true; + "config.trim_on_minimize" = true; + "pdfjs.annotationEditorMode" = 0; + "pdfjs.annotationmode" = 2; + }; + }; + }; + }; + }; +} diff --git a/home/root.nix b/home/root.nix new file mode 100644 index 0000000..99bea93 --- /dev/null +++ b/home/root.nix @@ -0,0 +1,59 @@ +{ config, pkgs, ... }: + +{ + home = { + # Basic information for home-manager + username = "root"; + homeDirectory = "/${config.home.username}"; + + # Enviroment variables + sessionVariables = { + XCOMPOSECACHE = "${config.xdg.cacheHome}/X11/xcompos"; + XAUTHORITY = "$XDG_RUNTIME_DIR/Xauthority"; + }; + + # Do not change this version unless 100% sure updatet evrything to the new version + stateVersion = "23.05"; + }; + + xdg = { + enable = true; + mime.enable = true; + cacheHome = "${config.home.homeDirectory}/.cache"; + configHome = "${config.home.homeDirectory}/.config"; + dataHome = "${config.home.homeDirectory}/.local/share"; + stateHome = "${config.home.homeDirectory}/.local/state"; + userDirs = { + enable = true; + createDirectories = false; + desktop = "${config.home.homeDirectory}/Desktop"; + documents = "${config.home.homeDirectory}/Documents"; + download = "${config.home.homeDirectory}/Downloads"; + music = "${config.home.homeDirectory}/Music"; + pictures = "${config.home.homeDirectory}/Pictures"; + publicShare = "${config.home.homeDirectory}/Public"; + templates = "${config.home.homeDirectory}/Templates"; + videos = "${config.home.homeDirectory}/Videos"; + }; + }; + + programs = { + home-manager.enable = true; + git = { + enable = true; + package = pkgs.gitAndTools.gitFull; + userEmail = "johannes@joens.email"; + userName = "jopejoe1"; + }; + bash = { + enable = true; + historyFile = "${config.xdg.stateHome}/bash/history"; + shellAliases = { + gc = "sudo nix store gc"; + rb = "sudo nix flake update /etc/nixos/ && sudo nixos-rebuild switch"; + }; + }; + zsh.shellAliases = config.programs.bash.shellAliases; + fish.shellAbbrs = config.programs.bash.shellAliases; + }; +} diff --git a/yokai.nix b/yokai.nix new file mode 100644 index 0000000..bb5f0ac --- /dev/null +++ b/yokai.nix @@ -0,0 +1,66 @@ +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot = { + # Boot loader configutation + loader = { + # Use the extlinux boot loader. (NixOS wants to enable GRUB by default) + grub.enable = false; + # Enables the generation of /boot/extlinux/extlinux.conf + generic-extlinux-compatible.enable = true; + }; + + initrd = { + availableKernelModules = [ "usbhid" ]; + kernelModules = [ ]; + }; + + kernelModules = [ ]; + extraModulePackages = [ ]; + }; + + fileSystems = { + "/" = { + device = "/dev/disk/by-label/NIXROOT"; + fsType = "ext4"; + }; + "/boot" = { + device = "/dev/disk/by-label/NIXBOOT"; + fsType = "vfat"; + }; + }; + + swapDevices = [ ]; + nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux"; + powerManagement.cpuFreqGovernor = lib.mkDefault "ondemand"; + + networking = { + hostName = "yokai"; + useDHCP = lib.mkDefault true; + interfaces.wlan0.useDHCP = lib.mkDefault true; + }; + + services = { + xserver = { + # Configure keymap in X11 + layout = "us"; + # services.xserver.xkbOptions = { + # "eurosign:e"; + # "caps:escape" # map caps to escape. + # }; + + # Enable touchpad support + libinput.enable = true; + }; + }; + + console = { + keyMap = "us"; + }; + + time.timeZone = "Europe/Berlin"; +}