diff --git a/flake.lock b/flake.lock index d459076..d1b8ed9 100644 --- a/flake.lock +++ b/flake.lock @@ -101,15 +101,15 @@ "base16-vim": { "flake": false, "locked": { - "lastModified": 1663659192, - "narHash": "sha256-uJvaYYDMXvoo0fhBZUhN8WBXeJ87SRgof6GEK2efFT0=", - "owner": "chriskempson", + "lastModified": 1716150083, + "narHash": "sha256-ZMhnNmw34ogE5rJZrjRv5MtG3WaqKd60ds2VXvT6hEc=", + "owner": "tinted-theming", "repo": "base16-vim", - "rev": "3be3cd82cd31acfcab9a41bad853d9c68d30478d", + "rev": "6e955d704d046b0dc3e5c2d68a2a6eeffd2b5d3d", "type": "github" }, "original": { - "owner": "chriskempson", + "owner": "tinted-theming", "repo": "base16-vim", "type": "github" } @@ -117,11 +117,11 @@ "blocklist-hosts": { "flake": false, "locked": { - "lastModified": 1717861551, - "narHash": "sha256-8wolGw60hKNa++YO57FXL8/g5U84VgINoQAZ3ppe0ME=", + "lastModified": 1719001847, + "narHash": "sha256-dt/UEjcTSxkmsC+zZvGS2+Y6c2CFjo6Hn3WAhokFAkk=", "owner": "StevenBlack", "repo": "hosts", - "rev": "846f528dfc591a647a36462ec1f8bf3453fa0c35", + "rev": "05a9ae6098bb2f09eb1d35cb440a086a9a85d39c", "type": "github" }, "original": { @@ -373,24 +373,6 @@ "type": "github" } }, - "flake-utils_2": { - "inputs": { - "systems": "systems_3" - }, - "locked": { - "lastModified": 1705309234, - "narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, "format-all": { "flake": false, "locked": { @@ -449,11 +431,11 @@ ] }, "locked": { - "lastModified": 1714981474, - "narHash": "sha256-b3/U21CJjCjJKmA9WqUbZGZgCvospO3ArOUTgJugkOY=", + "lastModified": 1715930644, + "narHash": "sha256-W9pyM3/vePxrffHtzlJI6lDS3seANQ+Nqp+i58O46LI=", "owner": "nix-community", "repo": "home-manager", - "rev": "6ebe7be2e67be7b9b54d61ce5704f6fb466c536f", + "rev": "e3ad5108f54177e6520535768ddbf1e6af54b59d", "type": "github" }, "original": { @@ -490,11 +472,11 @@ ] }, "locked": { - "lastModified": 1718141734, - "narHash": "sha256-cA+6l8ZCZ7MXGijVuY/1f55+wF/RT4PlTR9+g4bx86w=", + "lastModified": 1719037157, + "narHash": "sha256-aOKd8+mhBsLQChCu1mn/W5ww79ta5cXVE59aJFrifM8=", "owner": "nix-community", "repo": "home-manager", - "rev": "892f76bd0aa09a0f7f73eb41834b8a904b6d0fad", + "rev": "cd886711998fe5d9ff7979fdd4b4cbd17b1f1511", "type": "github" }, "original": { @@ -785,11 +767,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1718160348, - "narHash": "sha256-9YrUjdztqi4Gz8n3mBuqvCkMo4ojrA6nASwyIKWMpus=", + "lastModified": 1719075281, + "narHash": "sha256-CyyxvOwFf12I91PBWz43iGT1kjsf5oi6ax7CrvaMyAo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "57d6973abba7ea108bac64ae7629e7431e0199b6", + "rev": "a71e967ef3694799d0c418c98332f7ff4cc5f6af", "type": "github" }, "original": { @@ -800,11 +782,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1718060059, - "narHash": "sha256-9XKFni8VMXo81RTq9XygCyaO3I/7UKpwIlM/yn0MdcM=", + "lastModified": 1718811006, + "narHash": "sha256-0Y8IrGhRmBmT7HHXlxxepg2t8j1X90++qRN3lukGaIk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "a3c8d64ba846725f040582b2d3b875466d2115bd", + "rev": "03d771e513ce90147b65fe922d87d3a0356fc125", "type": "github" }, "original": { @@ -815,11 +797,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1706487304, - "narHash": "sha256-LE8lVX28MV2jWJsidW13D2qrHU/RUUONendL2Q/WlJg=", + "lastModified": 1718428119, + "narHash": "sha256-WdWDpNaq6u1IPtxtYHHWpl5BmabtpmLnMAx0RdJ/vo8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "90f456026d284c22b3e3497be980b2e47d0b28ac", + "rev": "e6cea36f83499eb4e9cd184c8a8e823296b50ad5", "type": "github" }, "original": { @@ -975,11 +957,11 @@ "org-sliced-images": { "flake": false, "locked": { - "lastModified": 1711408181, - "narHash": "sha256-ck3mGXtJJ0N8asGE4cRtWeJx5/iC+bTXw2cvZgePJqM=", + "lastModified": 1718918908, + "narHash": "sha256-Pcz+e26qVsZMNEBbzjdrOUUib9ozLG1gY6Ry/l8e+qM=", "owner": "jcfk", "repo": "org-sliced-images", - "rev": "bd1141d6df6edfd9749c0bbf3a72836148c0e39d", + "rev": "43d4f4147ed4cd670aab8a2d9fdfe3c0edd289c9", "type": "github" }, "original": { @@ -1148,15 +1130,14 @@ }, "rust-overlay": { "inputs": { - "flake-utils": "flake-utils_2", "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1718158726, - "narHash": "sha256-nOt0XxRZ9ZwztX4OOKdS4YkPd3TVfz/PoaD8TiT7/vw=", + "lastModified": 1719109180, + "narHash": "sha256-96dwGCV2yQxDozDATqbsM3YU0ft3Isw3cwVDO/eNCv8=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "d4d933340cd3b35d3dc256d76abc3d510e21dfdc", + "rev": "5fc5f3a0d7eabf7db86851e6423f9d7fbceaf89d", "type": "github" }, "original": { @@ -1196,11 +1177,11 @@ "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1718122552, - "narHash": "sha256-A+dBkSwp8ssHKV/WyXb9uqIYrHBqHvtSedU24Lq9lqw=", + "lastModified": 1719152448, + "narHash": "sha256-Acbi1Crd+UEbpPW8IR0ZGRKV+JCnMXDS2cglFQJvRPM=", "owner": "danth", "repo": "stylix", - "rev": "e59d2c1725b237c362e4a62f5722f5b268d566c7", + "rev": "0fc4e9f1449a9dce4be7a1ecedd97949da591181", "type": "github" }, "original": { @@ -1239,21 +1220,6 @@ "type": "github" } }, - "systems_3": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, "ts-fold": { "flake": false, "locked": { diff --git a/flake.nix b/flake.nix index 3af225a..73817bc 100644 --- a/flake.nix +++ b/flake.nix @@ -152,6 +152,20 @@ }; }; }; + nixOnDroidConfigurations = { + inherit pkgs; + default = inputs.nix-on-droid.lib.nixOnDroidConfiguration { + modules = [ ./profiles/nix-on-droid/configuration.nix ]; + }; + extraSpecialArgs = { + # pass config variables from above + inherit pkgs-stable; + inherit pkgs-emacs; + inherit systemSettings; + inherit userSettings; + inherit inputs; + }; + }; packages = forAllSystems (system: let pkgs = nixpkgsFor.${system}; @@ -188,6 +202,12 @@ home-manager-stable.url = "github:nix-community/home-manager/release-23.11"; home-manager-stable.inputs.nixpkgs.follows = "nixpkgs-stable"; + nix-on-droid = { + url = "github:nix-community/nix-on-droid/master"; + inputs.nixpkgs.follows = "nixpkgs"; + inputs.home-manager.follows = "home-manager-unstable"; + }; + hyprland = { type = "git"; url = "https://github.com/hyprwm/Hyprland"; diff --git a/harden.sh b/harden.sh index 5e8f5e5..e1d65d5 100755 --- a/harden.sh +++ b/harden.sh @@ -25,6 +25,7 @@ chown -R 0:0 system; chown -R 0:0 patches; chown 0:0 flake.lock; chown 0:0 flake.nix +chown 0:0 profiles chown 0:0 profiles/*/configuration.nix; chown 0:0 harden.sh; chown 0:0 soften.sh; diff --git a/profiles/README.org b/profiles/README.org index 487f229..5213f3b 100644 --- a/profiles/README.org +++ b/profiles/README.org @@ -4,8 +4,12 @@ This directory contains various system profiles which can easily be set in [[../ Current profiles I have available are: - [[./personal][Personal]] - What I would run on a personal laptop/desktop* -- [[./work][Work]] - What I would run on a work laptop/desktop (if they let me bring my own OS :P) -- [[./homelab][Homelab]] - What I would run on a server or homelab -- [[./wsl][WSL]] - What I would run underneath Windows Subystem for Linux +- [[./work][Work]] - What I would run on my work laptop/desktop* +- [[./homelab][Homelab]] - What I would run on a server or homelab* +- [[./worklab][Worklab]] - My homelab config with my work SSH keys preinstalled* +- [[./wsl][WSL]] - Windows Subsystem for Emacs (uses [[https://github.com/nix-community/NixOS-WSL][NixOS-WSL]]) +- [[./nix-on-droid][Nix on Droid]] - So that I can run Emacs on my phone (uses [[https://github.com/nix-community/nix-on-droid][nix-on-droid]]) *My [[./personal][personal]] and [[./work][work]] profiles are actually functionally identical (the [[./work][work]] profile is actually imported into the [[./personal][personal]] profile)! The only difference between them is that my [[./personal][personal]] profile has a few extra things like gaming and social apps. + +*My [[./homelab][homelab]] and [[./worklab][worklab]] profiles are similarly functionally identical (they both utilize the this [[./homelab/base.nix][base.nix]] file)! The only difference is that they have different preinstalled ssh keys. diff --git a/profiles/nix-on-droid/README.org b/profiles/nix-on-droid/README.org new file mode 100644 index 0000000..eed6617 --- /dev/null +++ b/profiles/nix-on-droid/README.org @@ -0,0 +1,3 @@ +#+title: I need Emacs on the go! + +This is my =Nix on Droid= profile, which is a minimal installation I use on Android. This (obviously) requires [[https://github.com/nix-community/nix-on-droid][nix-on-droid]] to be installed. I essentially just use this for Emacs and some CLI apps. diff --git a/profiles/nix-on-droid/configuration.nix b/profiles/nix-on-droid/configuration.nix new file mode 100644 index 0000000..9ca3597 --- /dev/null +++ b/profiles/nix-on-droid/configuration.nix @@ -0,0 +1,60 @@ +{ config, lib, pkgs, pkgs-stable, pkgs-emacs, systemSettings, userSettings, inputs, ... }: + +{ + # Simply install just the packages + environment.packages = with pkgs; [ + # User-facing stuff that you really really want to have + vim # or some other editor, e.g. nano or neovim + + # Some common stuff that people expect to have + procps + killall + diffutils + findutils + utillinux + tzdata + hostname + man + gnugrep + gnupg + gnused + gnutar + bzip2 + gzip + xz + zip + unzip + git + ]; + + # Backup etc files instead of failing to activate generation if a file already exists in /etc + environment.etcBackupExtension = ".bak"; + + # Read the changelog before changing this value + system.stateVersion = "23.11"; + + # Set up nix for flakes + nix.extraOptions = '' + experimental-features = nix-command flakes + ''; + + # Set your time zone + #time.timeZone = "Europe/Berlin"; + + # Configure home-manager + home-manager = { + backupFileExtension = "hm-bak"; + useGlobalPkgs = true; + + config = ./home.nix; + + extraSpecialArgs = { + # pass config variables from above + inherit pkgs-stable; + inherit pkgs-emacs; + inherit systemSettings; + inherit userSettings; + inherit inputs; + }; + }; +} diff --git a/profiles/nix-on-droid/home.nix b/profiles/nix-on-droid/home.nix new file mode 100644 index 0000000..65aea7a --- /dev/null +++ b/profiles/nix-on-droid/home.nix @@ -0,0 +1,51 @@ +{ config, pkgs, userSettings, ... }: + +{ + programs.home-manager.enable = true; + + imports = [ + ../../user/shell/sh.nix # My zsh and bash config + ../../user/shell/cli-collection.nix # Useful CLI apps + ../../user/app/doom-emacs/doom.nix # My doom emacs config + ../../user/app/ranger/ranger.nix # My ranger file manager config + ../../user/app/git/git.nix # My git config + ../../user/style/stylix.nix # Styling and themes for my apps + ]; + + home.stateVersion = "22.11"; # Please read the comment before changing. + + home.packages = with pkgs; [ + # Core + zsh + git + ]; + + xdg.enable = true; + xdg.userDirs = { + enable = true; + createDirectories = true; + music = "${config.home.homeDirectory}/Media/Music"; + videos = "${config.home.homeDirectory}/Media/Videos"; + pictures = "${config.home.homeDirectory}/Media/Pictures"; + templates = "${config.home.homeDirectory}/Templates"; + download = "${config.home.homeDirectory}/Downloads"; + documents = "${config.home.homeDirectory}/Documents"; + desktop = null; + publicShare = null; + extraConfig = { + XDG_DOTFILES_DIR = "${config.home.homeDirectory}/.dotfiles"; + XDG_ARCHIVE_DIR = "${config.home.homeDirectory}/Archive"; + XDG_ORG_DIR = "${config.home.homeDirectory}/Org"; + XDG_BOOK_DIR = "${config.home.homeDirectory}/Media/Books"; + }; + }; + xdg.mime.enable = true; + xdg.mimeApps.enable = true; + + home.sessionVariables = { + EDITOR = userSettings.editor; + }; + + news.display = "silent"; + +} diff --git a/profiles/work/home.nix b/profiles/work/home.nix index a23480c..fa6fae4 100644 --- a/profiles/work/home.nix +++ b/profiles/work/home.nix @@ -176,6 +176,7 @@ libffi zlib nodePackages.ungit ventoy + nextcloud-client ]) ++ ([ pkgs-kdenlive.kdenlive ]); home.file.".local/share/pixmaps/nixos-snowflake-stylix.svg".source = diff --git a/profiles/wsl/home.nix b/profiles/wsl/home.nix index 6d2a704..164b89f 100644 --- a/profiles/wsl/home.nix +++ b/profiles/wsl/home.nix @@ -15,7 +15,6 @@ ../../user/app/ranger/ranger.nix # My ranger file manager config ../../user/app/git/git.nix # My git config ../../user/style/stylix.nix # Styling and themes for my apps - ../../user/lang/cc/cc.nix # C and C++ tools ]; home.stateVersion = "22.11"; # Please read the comment before changing. diff --git a/system/bin/phoenix.nix b/system/bin/phoenix.nix index 60987d4..15e8ccc 100644 --- a/system/bin/phoenix.nix +++ b/system/bin/phoenix.nix @@ -1,4 +1,5 @@ { pkgs, userSettings, ... }: +# TODO make this work on nix-on-droid! let myScript = '' if [ "$1" = "sync" ]; then if [ "$#" = 1 ]; then diff --git a/system/security/firejail.nix b/system/security/firejail.nix index 6cf8caa..03533d3 100644 --- a/system/security/firejail.nix +++ b/system/security/firejail.nix @@ -4,10 +4,10 @@ environment.systemPackages = with pkgs; [ firejail ]; programs.firejail.enable = true; programs.firejail.wrappedBinaries = { - prismlauncher = { - executable = "${pkgs.prismlauncher}/bin/prismlauncher"; - profile = ./firejail-profiles/prismlauncher.profile; - }; + #prismlauncher = { + # executable = "${pkgs.prismlauncher}/bin/prismlauncher"; + # profile = ./firejail-profiles/prismlauncher.profile; + #}; steam = { executable = "${pkgs.steam}/bin/steam"; profile = "${pkgs.firejail}/etc/firejail/steam.profile"; diff --git a/user/app/doom-emacs/config.el b/user/app/doom-emacs/config.el index b602e66..1c1727b 100644 --- a/user/app/doom-emacs/config.el +++ b/user/app/doom-emacs/config.el @@ -247,15 +247,16 @@ ;; Top-level headings should be bigger! (custom-set-faces! - '(org-level-1 :inherit outline-1 :height 1.3) - '(org-level-2 :inherit outline-2 :height 1.25) - '(org-level-3 :inherit outline-3 :height 1.2) - '(org-level-4 :inherit outline-4 :height 1.1) - '(org-level-5 :inherit outline-5 :height 1.1) - '(org-level-6 :inherit outline-6 :height 1.05) - '(org-level-7 :inherit outline-7 :height 1.05) + `(outline-1 :height 1.3 :foreground ,(nth 1 (nth 14 doom-themes--colors))) + `(outline-2 :height 1.25 :foreground ,(nth 1 (nth 15 doom-themes--colors))) + `(outline-3 :height 1.2 :foreground ,(nth 1 (nth 19 doom-themes--colors))) + `(outline-4 :height 1.1 :foreground ,(nth 1 (nth 23 doom-themes--colors))) + `(outline-5 :height 1.1 :foreground ,(nth 1 (nth 24 doom-themes--colors))) + `(outline-6 :height 1.1 :foreground ,(nth 1 (nth 16 doom-themes--colors))) + `(outline-7 :height 1.05 :foreground ,(nth 1 (nth 18 doom-themes--colors))) + `(outline-8 :height 1.05 :foreground ,(nth 1 (nth 11 doom-themes--colors))) '(variable-pitch :family "Intel One Mono") - ) +) (after! org (org-eldoc-load)) diff --git a/user/app/doom-emacs/doom.org b/user/app/doom-emacs/doom.org index b43abfc..68c5a42 100644 --- a/user/app/doom-emacs/doom.org +++ b/user/app/doom-emacs/doom.org @@ -317,15 +317,16 @@ Doom Emacs is traditionally installed by cloning the repository ([[https://githu ;; Top-level headings should be bigger! (custom-set-faces! - '(org-level-1 :inherit outline-1 :height 1.3) - '(org-level-2 :inherit outline-2 :height 1.25) - '(org-level-3 :inherit outline-3 :height 1.2) - '(org-level-4 :inherit outline-4 :height 1.1) - '(org-level-5 :inherit outline-5 :height 1.1) - '(org-level-6 :inherit outline-6 :height 1.05) - '(org-level-7 :inherit outline-7 :height 1.05) + `(outline-1 :height 1.3 :foreground ,(nth 1 (nth 14 doom-themes--colors))) + `(outline-2 :height 1.25 :foreground ,(nth 1 (nth 15 doom-themes--colors))) + `(outline-3 :height 1.2 :foreground ,(nth 1 (nth 19 doom-themes--colors))) + `(outline-4 :height 1.1 :foreground ,(nth 1 (nth 23 doom-themes--colors))) + `(outline-5 :height 1.1 :foreground ,(nth 1 (nth 24 doom-themes--colors))) + `(outline-6 :height 1.1 :foreground ,(nth 1 (nth 16 doom-themes--colors))) + `(outline-7 :height 1.05 :foreground ,(nth 1 (nth 18 doom-themes--colors))) + `(outline-8 :height 1.05 :foreground ,(nth 1 (nth 11 doom-themes--colors))) '(variable-pitch :family "Intel One Mono") - ) +) (after! org (org-eldoc-load))