Compare commits

..

No commits in common. "9e72d186614700b0fe495a5c9c09c182f3e0fbc4" and "e858bfefa245cd557591ae9318ec4e0747b608ec" have entirely different histories.

5 changed files with 39 additions and 48 deletions

View file

@ -21,18 +21,16 @@ Using this I have [[./themes][55+ themes]] (I add more sometimes) I can switch b
** Install ** Install
I wrote some reinstall notes for myself [[./install.org][here (install.org)]]. I wrote some reinstall notes for myself [[./install.org][here (install.org)]].
TLDR: You should™ be able to install my dotfiles to a fresh NixOS system with the following experimental script: TLDR: You should™ be able to install my dotfiles to a fresh UEFI NixOS system with the following script:
#+begin_src sh :noeval #+begin_src sh :noeval
nix-shell -p git --command "nix run gitlab:librephoenix/nixos-config --extra-experimental-features nix-command --extra-experimental-features flakes" nix-shell -p git --command "nix run gitlab:librephoenix/nixos-config --extra-experimental-features nix-command --extra-experimental-features flakes"
#+end_src #+end_src
Disclaimer: Ultimately, I can't gaurantee this will work for anyone other than myself, so /use this at your own discretion/. Also my dotfiles are /highly/ opinionated, which you will discover immediately if you try them out. This will clone my dotfiles to =~/.dotfiles=, and switch into both the system and home-manager configurations. Right now it only works on UEFI, and only if your EFI partition is "/boot" (which is what NixOS sets up by default on UEFI). I will try to expand this at some point, but for now, that's all it is!
Potential Errors: I've only tested it working on UEFI with the default EFI mount point of =/boot=. I've added experimental legacy (BIOS) boot support, but it does rely on a quick and dirty script to find the grub device. If you are testing it using some weird boot configuration for whatever reason, try modifying =bootMountPath= (UEFI) or =grubDevice= (legacy BIOS) in =flake.nix= before install, or else it will complain about not being able to install the bootloader.
Note: If you're installing this to a VM, Hyprland won't work unless 3D acceleration is enabled. Note: If you're installing this to a VM, Hyprland won't work unless 3D acceleration is enabled.
Security Disclaimer: If you install or copy my =homelab= or =worklab= profiles, /CHANGE THE PUBLIC SSH KEYS UNLESS YOU WANT ME TO BE ABLE TO SSH INTO YOUR SERVER. YOU CAN CHANGE OR REMOVE THE SSH KEY IN THE RELEVANT CONFIGURATION.NIX/: Disclaimer: If you install or copy my =homelab= or =worklab= profiles, /CHANGE THE PUBLIC SSH KEYS UNLESS YOU WANT ME TO BE ABLE TO SSH INTO YOUR SERVER. YOU CAN CHANGE OR REMOVE THE SSH KEY IN THE RELEVANT CONFIGURATION.NIX/:
- [[./profiles/homelab/configuration.nix][configuration.nix]] for homelab profile - [[./profiles/homelab/configuration.nix][configuration.nix]] for homelab profile
- [[./profiles/worklab/configuration.nix][configuration.nix]] for worklab profile - [[./profiles/worklab/configuration.nix][configuration.nix]] for worklab profile

View file

@ -5,11 +5,11 @@
"fromYaml": "fromYaml" "fromYaml": "fromYaml"
}, },
"locked": { "locked": {
"lastModified": 1708890466, "lastModified": 1705180696,
"narHash": "sha256-LlrC09LoPi8OPYOGPXegD72v+//VapgAqhbOFS3i8sc=", "narHash": "sha256-6TwTHERD+2SX21zvBwmm58mtmgVXHLPu273i04JdH9Y=",
"owner": "SenchoPens", "owner": "SenchoPens",
"repo": "base16.nix", "repo": "base16.nix",
"rev": "665b3c6748534eb766c777298721cece9453fdae", "rev": "b390e87cd404e65ab4d786666351f1292e89162a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -150,11 +150,11 @@
"blocklist-hosts": { "blocklist-hosts": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1709174876, "lastModified": 1708054347,
"narHash": "sha256-aEjfaOnfPxQ0Dd954SWHOA9JyYDJ2m/25FpMHjO9X+w=", "narHash": "sha256-Z6Kz4bRtswzoZt4xroSWfSZKMM+fWpsVQMI+Cy7EfVE=",
"owner": "StevenBlack", "owner": "StevenBlack",
"repo": "hosts", "repo": "hosts",
"rev": "b77a285f5f11ee53023d53cf2bf10cd58fe62567", "rev": "61080e8dadbc9ee10d4567668cdbf017bb9f172e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -199,11 +199,11 @@
"eaf": { "eaf": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1708834876, "lastModified": 1707263162,
"narHash": "sha256-12gVfkWhoc9y4UKfhp2n+iM8nyCetVgviyShm4mhmDA=", "narHash": "sha256-5/oV93RmytyxRKMHVzpcdb6XusoO1KRFlscPKaNsgIo=",
"owner": "emacs-eaf", "owner": "emacs-eaf",
"repo": "emacs-application-framework", "repo": "emacs-application-framework",
"rev": "ac135be35220786df1e0bcb4f1a1a95d7c0c7183", "rev": "46733de03bcd9f20c54747753aa4fd2669f7b4ce",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -215,11 +215,11 @@
"eaf-browser": { "eaf-browser": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1708834925, "lastModified": 1699540848,
"narHash": "sha256-lfFkz55aG5DhU6p6p/pLCE8UKe9281C8Znwc4HTyY8c=", "narHash": "sha256-VyDwQiYfeEhIEpsl2Tw5hdspNFPC3I9jeSrp80G8IPo=",
"owner": "emacs-eaf", "owner": "emacs-eaf",
"repo": "eaf-browser", "repo": "eaf-browser",
"rev": "26a88c4d0e106b8ac7ae29e62fef42c636fbe8a6", "rev": "1c0076cca287c384f46e5104365f679e94135734",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -466,11 +466,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1709485962, "lastModified": 1708591310,
"narHash": "sha256-rmFB4uE10+LJbcVE4ePgiuHOBlUIjQOeZt4VQVJTU8M=", "narHash": "sha256-8mQGVs8JccWTnORgoLOTh9zvf6Np+x2JzhIc+LDcJ9s=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "d579633ff9915a8f4058d5c439281097e92380a8", "rev": "0e0e9669547e45ea6cca2de4044c1a384fd0fe55",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -504,11 +504,11 @@
"hyprland-plugins": { "hyprland-plugins": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1709512528, "lastModified": 1708270226,
"narHash": "sha256-4haLTurWZgPkzASTIWPqyb7zJhFprBjXPUkdqXAgg4s=", "narHash": "sha256-PCsEiFKBDZ1VKw8rlo8D/J+22gic7ls5zDWcU3AAxGQ=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprland-plugins", "repo": "hyprland-plugins",
"rev": "8d3a0701a26d51c9931b3583f93e7fb3fbcd5110", "rev": "f99822818ec8276cfd6ec99ab60c4708c9884e3d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -582,11 +582,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1709237383, "lastModified": 1708655239,
"narHash": "sha256-cy6ArO4k5qTx+l5o+0mL9f5fa86tYUX3ozE1S+Txlds=", "narHash": "sha256-ZrP/yACUvDB+zbqYJsln4iwotbH6CTZiTkANJ0AgDv4=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "1536926ef5621b09bba54035ae2bb6d806d72ac8", "rev": "cbc4211f0afffe6dfd2478a62615dd5175a13f9a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -597,11 +597,11 @@
}, },
"nixpkgs-stable": { "nixpkgs-stable": {
"locked": { "locked": {
"lastModified": 1709309926, "lastModified": 1708566995,
"narHash": "sha256-VZFBtXGVD9LWTecGi6eXrE0hJ/mVB3zGUlHImUs2Qak=", "narHash": "sha256-e/THimsoxxMAHSbwMKov5f5Yg+utTj6XVGEo24Lhx+0=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "79baff8812a0d68e24a836df0a364c678089e2c7", "rev": "3cb4ae6689d2aa3f363516234572613b31212b78",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -876,11 +876,11 @@
"nixpkgs": "nixpkgs_2" "nixpkgs": "nixpkgs_2"
}, },
"locked": { "locked": {
"lastModified": 1709431943, "lastModified": 1708654230,
"narHash": "sha256-CqTcEJGITB3rfSuAcWC1QZnbVnIipXmIDbZHfxsAy80=", "narHash": "sha256-f8B3nm0DIsWBmaLHvFvjJnqvFsEEoHxTjE9or5w4nIo=",
"owner": "oxalica", "owner": "oxalica",
"repo": "rust-overlay", "repo": "rust-overlay",
"rev": "362184acf4a991f27fc222864e94a2e81b3c3c9f", "rev": "67853eda5dfe64922b9deb0ebc246a846fe177c7",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -922,11 +922,11 @@
"nixpkgs": "nixpkgs_3" "nixpkgs": "nixpkgs_3"
}, },
"locked": { "locked": {
"lastModified": 1708896938, "lastModified": 1708699241,
"narHash": "sha256-oMjkMjeNhDUEpKIofo9+9RdUnmmZ4h0sm+kf6XKdy6k=", "narHash": "sha256-HpRE7W000QQmII9Tt/BBEEL6Io1mzUL6rl82QoRQP3A=",
"owner": "danth", "owner": "danth",
"repo": "stylix", "repo": "stylix",
"rev": "fcff15ac5ffbe81f1c66e352f3167c270d79cdab", "rev": "6c447e8761018fa75dfdc20df6232d67a8cc93f2",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -37,9 +37,9 @@ And if you want a single copy-paste solution:
nix-shell -p git --command "nix run gitlab:librephoenix/nixos-config --extra-experimental-features nix-command --extra-experimental-features flakes" nix-shell -p git --command "nix run gitlab:librephoenix/nixos-config --extra-experimental-features nix-command --extra-experimental-features flakes"
#+end_src #+end_src
At a certain point in the install script it will open =nano= (or whatever your $EDITOR is set to) and ask you to edit the =flake.nix=. You can edit as much or as little of the config variables as you like, and it will continue the install after you exit the editor. This will clone my dotfiles to =~/.dotfiles=, and switch into both the system and home-manager configurations. Right now it only works on UEFI, and only if your EFI partition is "/boot" (which is what NixOS sets up by default on UEFI). I will try to expand this at some point, but for now, that's all it is!
Potential Errors: I've only tested it working on UEFI with the default EFI mount point of =/boot=. I've added experimental legacy (BIOS) boot support, but it does rely on a quick and dirty script to find the grub device. If you are testing it using some weird boot configuration for whatever reason, try modifying =bootMountPath= (UEFI) or =grubDevice= (legacy BIOS) in =flake.nix= before install, or else it will complain about not being able to install the bootloader. At a certain point in the install script it will open =nano= (or whatever your $EDITOR is set to) and ask you to edit the =flake.nix=. You can edit as much or as little of the config variables as you like, and it will continue the install after you exit the editor.
Note: If you're installing this to a VM, Hyprland won't work unless 3D acceleration is enabled. Note: If you're installing this to a VM, Hyprland won't work unless 3D acceleration is enabled.
@ -56,8 +56,6 @@ git clone https://gitlab.com/librephoenix/nixos-config.git ~/.dotfiles
At a certain point in the install script it will open =nano= (or whatever your =$EDITOR= is set to) and ask you to edit the =flake.nix=. You can edit as much or as little of the config variables as you like, and it will continue the install after you exit the editor. At a certain point in the install script it will open =nano= (or whatever your =$EDITOR= is set to) and ask you to edit the =flake.nix=. You can edit as much or as little of the config variables as you like, and it will continue the install after you exit the editor.
Potential Errors: I've only tested it working on UEFI with the default EFI mount point of =/boot=. I've added experimental legacy (BIOS) boot support, but it does rely on a quick and dirty script to find the grub device. If you are testing it using some weird boot configuration for whatever reason, try modifying =bootMountPath= (UEFI) or =grubDevice= (legacy BIOS) in =flake.nix= before install, or else it will complain about not being able to install the bootloader.
Note: If you're installing this to a VM, Hyprland won't work unless 3D acceleration is enabled. Note: If you're installing this to a VM, Hyprland won't work unless 3D acceleration is enabled.
Disclaimer: If you install my =homelab= or =worklab= profiles /CHANGE THE PUBLIC SSH KEYS UNLESS YOU WANT ME TO BE ABLE TO SSH INTO YOUR SERVER. YOU CAN CHANGE OR REMOVE THE SSH KEY IN THE RELEVANT CONFIGURATION.NIX/: Disclaimer: If you install my =homelab= or =worklab= profiles /CHANGE THE PUBLIC SSH KEYS UNLESS YOU WANT ME TO BE ABLE TO SSH INTO YOUR SERVER. YOU CAN CHANGE OR REMOVE THE SSH KEY IN THE RELEVANT CONFIGURATION.NIX/:
@ -70,8 +68,8 @@ At this time, this only works on an existing NixOS install. It also only works i
Future upgrade plans: Future upgrade plans:
- [ ] Be able to install directly from NixOS iso - [ ] Be able to install directly from NixOS iso
- [ ] Be able to install just home-manager config to a non-NixOS Linux distro - [ ] Be able to install just home-manager config to a non-NixOS Linux distro
- [ ] Be able to detect UEFI or BIOS and switch config as needed
- [ ] Be able to detect EFI mount point for systemd-boot? - [ ] Be able to detect EFI mount point for systemd-boot?
- [X] +Be able to detect UEFI or BIOS and switch config as needed+
- [ ] ??? (open up an issue if you think there is anything else I should try to figure out) - [ ] ??? (open up an issue if you think there is anything else I should try to figure out)
** Manual Install Procedure ** Manual Install Procedure
@ -101,8 +99,6 @@ let
There are many more config options there that you may also want to change as well. There are many more config options there that you may also want to change as well.
Potential Errors: I've only tested it working on UEFI with the default EFI mount point of =/boot=. I've added experimental legacy (BIOS) boot support, but it does rely on a quick and dirty script to find the grub device. If you are testing it using some weird boot configuration for whatever reason, try modifying =bootMountPath= (UEFI) or =grubDevice= (legacy BIOS) in =flake.nix= before install, or else it will complain about not being able to install the bootloader.
Note: If you're installing this to a VM, Hyprland won't work unless 3D acceleration is enabled. Note: If you're installing this to a VM, Hyprland won't work unless 3D acceleration is enabled.
Disclaimer: If you install my =homelab= or =worklab= profiles /CHANGE THE PUBLIC SSH KEYS UNLESS YOU WANT ME TO BE ABLE TO SSH INTO YOUR SERVER. YOU CAN CHANGE OR REMOVE THE SSH KEY IN THE RELEVANT CONFIGURATION.NIX/: Disclaimer: If you install my =homelab= or =worklab= profiles /CHANGE THE PUBLIC SSH KEYS UNLESS YOU WANT ME TO BE ABLE TO SSH INTO YOUR SERVER. YOU CAN CHANGE OR REMOVE THE SSH KEY IN THE RELEVANT CONFIGURATION.NIX/:
@ -133,13 +129,10 @@ I have included a script in the [[./themes][themes directory]] named [[./themes/
If you're having this error, navigate to the [[./flake.nix][flake.nix]] and select any theme with a good background wallpaper link. As long as it is able to download the new wallpaper, it should be able to build. If you're having this error, navigate to the [[./flake.nix][flake.nix]] and select any theme with a good background wallpaper link. As long as it is able to download the new wallpaper, it should be able to build.
*** Do I have to put the configuration files in =~/.dotfiles=? *** Do I have to put the configuration files in =~/.dotfiles=?
No. You can put them in literally any directory you want. I just prefer to use =~/.dotfiles= as a convention. If you change the directory, do keep in mind that the above scripts must be modified, replacing =~/.dotfiles= with whatever directory you want to install them to. Also, you may want to modify the =dotfilesDir= variable in =flake.nix=. No. You can put them in literally any directory you want. I just prefer to use =~/.dotfiles= as a convention. If you change the directory, do keep in mind that the above scripts must be modified, replacing =~/.dotfiles= with whatever directory you want to install them to.
*** So I cloned these dotfiles into ~/.dotfiles, and now there are system-level files owned by my user account.. HOW IS THIS SECURE?! *** So I cloned these dotfiles into ~/.dotfiles, and now there are system-level files owned by my user account.. HOW IS THIS SECURE?!
If you're worried about someone modifying your system-level (root configuration) files as your unpriveleged user, see [[./harden.sh][harden.sh]]. If you're worried about someone modifying your system-level (root configuration) files as your unpriveleged user, see [[./harden.sh][harden.sh]].
*** I installed this to a VM and when I log in, it crashes and sends me back to the login manager (SDDM)? *** I installed this to a VM and when I log in, it crashes and sends me back to the login manager (SDDM)?
Enable 3D acceleration for your virtual machine. Hyprland doesn't work without it. Enable 3D acceleration for your virtual machine. Hyprland doesn't work without it.
*** It fails installing with some weird errors about grub or a bootloader?
It will 100% fail if you test it with a non-default boot configuration. It might even give this error otherwise! If this is the case, try modifying =bootMountPath= (UEFI) or =grubDevice= (legacy BIOS) in =flake.nix= before installing again.

View file

@ -1246,7 +1246,7 @@ https://github.com/magit/magit/issues/460 (@cpitclaudel)."
"q" 'helpful-kill-buffers) "q" 'helpful-kill-buffers)
;;;------ helpful configuration ------;;; ;;;------ helpful configuration ------;;;
(add-load-path! "~/.nix-profile/share/emacs/site-lisp/elpa/mu4e-1.12.0") (add-load-path! "~/.nix-profile/share/emacs/site-lisp/elpa/mu4e-1.10.8")
(require 'mu4e) (require 'mu4e)
(require 'mu4e-contrib) (require 'mu4e-contrib)
(require 'mu4e-actions) (require 'mu4e-actions)

View file

@ -1469,7 +1469,7 @@ I don't have this active right now since it's kinda weird with pgtk...
** mu4e Configuration ** mu4e Configuration
#+BEGIN_SRC emacs-lisp :tangle config.el #+BEGIN_SRC emacs-lisp :tangle config.el
;;;------ helpful configuration ------;;; ;;;------ helpful configuration ------;;;
(add-load-path! "~/.nix-profile/share/emacs/site-lisp/elpa/mu4e-1.12.0") (add-load-path! "~/.nix-profile/share/emacs/site-lisp/elpa/mu4e-1.10.8")
(require 'mu4e) (require 'mu4e)
(require 'mu4e-contrib) (require 'mu4e-contrib)
(require 'mu4e-actions) (require 'mu4e-actions)