From f760dd68f9c8590bd9fa80132e9d4f3eaf9f1b21 Mon Sep 17 00:00:00 2001 From: Preston Pan Date: Fri, 8 Mar 2024 20:01:23 -0800 Subject: add documentation to readme --- README.org | 115 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- flake.lock | 52 ++++++++++++++++++++++++++++ flake.nix | 3 +- home.nix | 2 +- 4 files changed, 169 insertions(+), 3 deletions(-) diff --git a/README.org b/README.org index a3eb947..d51b609 100644 --- a/README.org +++ b/README.org @@ -25,4 +25,117 @@ an entry named ~Mail~, as well as a ~~/org/website/~ directory made by cloning m git clone https://github.com/ret2pop/ret2pop-website ~/org/website/ # get music and put it in ~/music #+end_src -this process can be highly automated via [[https://github.com/nix-community/nixos-anywhere][NixOS Anywhere]]. +this process can be highly automated via [[https://github.com/nix-community/nixos-anywhere][NixOS Anywhere]]. Once you have my system with your own gpg and ssh keys, +you can read the following section. + +* Usage +Make sure that before you use the configuration, all the me-specific configuration is ripped out +and replaced with yours. For instance, any mention of my name in ~configuration.nix~, ~home.nix~, +the emacs config, or ~flake.nix~ should be replaced with mentions of your name, and stuff like server +configurations for email or IRC should be replaced with your own configurations. The system by default +is called ~continuity~. If you don't like this hostname, you can replace it in ~configuration.nix~ and +~flake.nix~ with something else. +** Hyprland +*** Wallpaper +To change the wallpaper, change the ~swww add~ line to another wallpaper in my +[[https://github.com/ret2pop/wallpapers][wallpapers repository]]. +*** Keybindings +**** Programs +#+begin_example +Win + Return => kitty (Terminal) +Win + e => emacs +Win + w => firefox +Win + v => discord +Win + d => wofi (Run Launcher) +PrintScr => grim (screenshot; look for file in $HOME) +#+end_example +**** Commands +#+begin_example +Win + q => kill window +Win + Shift + h => move window to left +Win + Shift + l => move window to right +Win + Shift + k => move window up +Win + Shift + j => move window down +Win + h => move window focus to left +Win + l => move window focus to right +Win + k => move window focus up +Win + j => move window focus down +#+end_example +** Initialization +To get into a graphical hyprland environment, use type ~h~ into the tty after logging in. This will +take you stright to the graphical session. +** Passwords +Passwords will be managed by sops-nix in the future, but for now they are managed +with the ~pass~ password manager. To initialize the password store, see +[[https://www.passwordstore.org/][the documentation]]. Be sure to add an entry called ~Mail~: +#+begin_src shell +pass add Mail +#+end_src +and enter your imaps and smtps password. +** Git +In ~home.nix~, change the signing key to your own gpg key. When you git commit, emacs will be your pinentry +device, meaning you will enter the encryption password from emacs. +** Email +Email is done from within emacs with mu4e with ~SPC o m~. To initialize mail, run: +#+begin_src shell + mbsync prestonpan # see mbsyncrc section of home.nix, change prestonpan to something else there + # then run this command with that changed name. + mu init --maildir=~/email/mbsyncmail/ + mu index +#+end_src +Note that a prerequisite is initializing ~pass~ and adding a ~Mail~ entry. Be sure to change the imaps +and smtps address in the mbsync and msmtp configurations as well as the usernames. +** Firefox +On launch, make sure you enable all the plugins by going into the three bar tab on the right corner and +enabling all the automatically installed extensions. Then, optionally, visit the +[[https://github.com/catppuccin/firefox][catppuccin firefox theme]] website and use the Firefox Color install method. +** Discord +Optionally, go to user settings > Vencord > Themes > Online Themes. Then, install [[https://github.com/catppuccin/discord][this theme]] by pasting the one-liner in: +#+begin_src css + @import url("https://catppuccin.github.io/discord/dist/catppuccin-mocha-pink.theme.css"); +#+end_src +** Waybar +If the bar is not displaying, get your monitor name with ~hyprctl monitors~. Then, in the ~home.nix~ configuration +replace ~LVDS-1~ with whatever your monitor name is that you want the bar to be displayed in. The battery percentage +may not be displayed. If it isn't, then change ~BAT0~ with whatever you see when you run ~ls /sys/class/power_supply~, +assuming you have a laptop with a battery. After that, it should work normally. +** Music +Replace all mention of ~/home/preston/~ in the mpd configuration of ~home.nix~ with whatever your home directory is. +Place your music files in ~$HOME/music~ and run ~mpc update~, then ~mpc add /~. This should add all your music in +~$HOME/music~ to the playlist to be read by the emacs program ~emms~. +** Emacs +This will be quite the large section as there will be much to explain. Just clone my entire website: +#+begin_src shell + mkdir ~/org/ + git clone https://github.com/ret2pop/ret2pop-website ~/org/website +#+end_src +/Then/ start emacs. On first initialization, make sure to run: +#+begin_src emacs-lisp + M-x pdf-tools-install + M-x all-the-icons-install-fonts + M-x nerd-icons-install-fonts +#+end_src +then restart. This will make emacs look not ugly. Then, if you cloned my website, everything should work, although +you should remove my journal entries and all my files in ~mindmap~ and replace them with your own. +*** Keybindings +*** IRC +In the config, replace the IRC configuration (server and name) with your own. +*** ellama +Run ~ollama pull zephyr~ to get the zephyr ollama model. +*** Mu4e +After following the email advice from above, change my mail address and name to your own. +*** Agenda +Make a file ~$HOME/org/agenda.org~. From there, just google org-agenda. +*** Ox-publish +Steal the css stylesheet I use from the root of my website directory, and copy the layout of it. +Honestly, I will finish explaining how I manage my website later because it's a little bit pain +to explain in a concise manner. +*** Elfeed +Change my RSS feeds out in ~$HOME/org/website/config/elfeed.org~ with ones you want to read. +*** Stem Mode +[[https://github.com/ret2pop/stem][Stem]] is a programming language that I wrote, and in order for code blocks and syntax highlighting +to work, you need to install [[https://github.com/ret2pop/stem-mode][stem-mode]]. Or, you can get rid of stem-mode in the emacs configuration. + +** Postamble +Once you've done all those things, you can call the system yours! You've successfully ripped out any part +of the configuration that names me or any of the gpg or ssh keys that I own. diff --git a/flake.lock b/flake.lock index 04c5876..a308e91 100644 --- a/flake.lock +++ b/flake.lock @@ -57,6 +57,38 @@ "type": "github" } }, + "nixpkgs-stable": { + "locked": { + "lastModified": 1709428628, + "narHash": "sha256-//ZCCnpVai/ShtO2vPjh3AWgo8riXCaret6V9s7Hew4=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "66d65cb00b82ffa04ee03347595aa20e41fe3555", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "release-23.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1709356872, + "narHash": "sha256-mvxCirJbtkP0cZ6ABdwcgTk0u3bgLoIoEFIoYBvD6+4=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "458b097d81f90275b3fdf03796f0563844926708", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "nur": { "locked": { "lastModified": 1709927144, @@ -78,9 +110,29 @@ "home-manager": "home-manager", "nixpkgs": "nixpkgs", "nur": "nur", + "sops-nix": "sops-nix", "wallpapers": "wallpapers" } }, + "sops-nix": { + "inputs": { + "nixpkgs": "nixpkgs_2", + "nixpkgs-stable": "nixpkgs-stable" + }, + "locked": { + "lastModified": 1709711091, + "narHash": "sha256-L0rSIU9IguTG4YqSj4B/02SyTEz55ACq5t8gXpzteYc=", + "owner": "Mic92", + "repo": "sops-nix", + "rev": "25dd60fdd08fcacee2567a26ba6b91fe098941dc", + "type": "github" + }, + "original": { + "owner": "Mic92", + "repo": "sops-nix", + "type": "github" + } + }, "wallpapers": { "locked": { "lastModified": 1709929271, diff --git a/flake.nix b/flake.nix index ce76894..e8739d4 100644 --- a/flake.nix +++ b/flake.nix @@ -13,9 +13,10 @@ inputs.nixpkgs.follows = "nixpkgs"; }; wallpapers.url = "github:ret2pop/wallpapers"; + sops-nix.url = "github:Mic92/sops-nix"; }; - outputs = { self, nixpkgs, home-manager, nur, disko, wallpapers, ... }@attrs: { + outputs = { self, nixpkgs, home-manager, nur, disko, wallpapers, sops-nix, ... }@attrs: { nixosConfigurations = { continuity = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; diff --git a/home.nix b/home.nix index 4223cf8..cad0839 100644 --- a/home.nix +++ b/home.nix @@ -354,6 +354,7 @@ tree-style-tab firefox-color vimium + metamask ]; settings = { content.notify.interval = 100000; @@ -943,7 +944,6 @@ "$mod, E, exec, emacs" "$mod, V, exec, Discord" "$mod, D, exec, wofi --show run" - ", Print, exec, grimblast copy area" "$mod, Q, killactive" "$mod SHIFT, H, movewindow, l" "$mod SHIFT, L, movewindow, r" -- cgit