From b66b4cbab56d712ba24f83a3b18e0e295f967a7f Mon Sep 17 00:00:00 2001 From: MatthiasBenaets Date: Sun, 27 Nov 2022 19:47:13 +0100 Subject: [PATCH] home-manager 22.11 syntax update, spell checking, updated documentation --- README.org | 137 ++++++------- contrib.org | 5 +- darwin.org | 61 +++--- darwin/configuration.nix | 6 +- darwin/home.nix | 2 +- flake.lock | 48 ++--- hosts/configuration.nix | 6 +- hosts/desktop/default.nix | 3 - hosts/desktop/hardware-configuration.nix | 12 +- hosts/desktop/home.nix | 1 - hosts/home.nix | 28 ++- hosts/laptop/default.nix | 27 +-- hosts/laptop/hardware-configuration.nix | 5 +- hosts/laptop/home.nix | 4 +- hosts/vm/default.nix | 6 +- hosts/vm/hardware-configuration.nix | 11 + modules/desktop/bspwm/default.nix | 17 +- modules/desktop/bspwm/home.nix | 16 +- modules/desktop/gnome/default.nix | 8 +- modules/desktop/hyprland/default.nix | 6 +- modules/desktop/hyprland/home.nix | 4 +- modules/desktop/river/default.nix | 17 +- modules/desktop/river/home.nix | 13 +- modules/desktop/sway/default.nix | 15 +- modules/desktop/sway/home.nix | 17 +- modules/desktop/virtualisation/docker.nix | 25 --- modules/desktop/virtualisation/qemu.nix | 2 +- modules/desktop/virtualisation/x11vnc.nix | 4 +- modules/editors/default.nix | 2 +- modules/editors/emacs/default.nix | 34 +--- modules/editors/emacs/native.nix | 10 +- modules/editors/nvim/default.nix | 8 +- modules/hardware/dslr.nix | 1 - modules/programs/alacritty.nix | 2 +- modules/programs/games.nix | 6 +- modules/programs/old/rofi.nix | 95 --------- modules/services/default.nix | 2 +- modules/shell/zsh.nix | 4 +- nix.org | 232 ++++++++++++++++++++++ nix/default.nix | 20 +- nix/pacman.nix | 10 +- nixos.org | 93 ++++++--- rsc/Nix.svg | Bin 0 -> 31216 bytes rsc/config/bspwm/bspwmrc | 4 +- rsc/config/hypr/hyprland.conf | 2 +- rsc/config/polybar/config.ini | 4 +- rsc/config/rofi/theme.rasi | 4 +- rsc/config/waybar/config | 14 +- rsc/config/waybar/style.css | 12 +- shell.org | 11 +- shells/app.nix | 4 + 51 files changed, 607 insertions(+), 473 deletions(-) delete mode 100644 modules/programs/old/rofi.nix create mode 100644 nix.org create mode 100644 rsc/Nix.svg diff --git a/README.org b/README.org index 59eda52b..930bc57c 100644 --- a/README.org +++ b/README.org @@ -21,21 +21,22 @@ - [[#faq][FAQ]] * System Components -| | *NixOS - Wayland* | *NixOS - Xorg* | *Darwin* | -|-----------------+--------------------+-------------------+-------------------| -| *Shell* | Zsh | Zsh | Zsh | -| *DM* | TTY1 Login | LightDM | / | -| *WM* | Hyprland | Bspwm | Yabai | -| *Compositor* | Hyprland | Picom (jonaburg) | / | -| *Bar* | Waybar | Polybar | / | -| *Hotkeys* | Hyprland | Sxhkd | Skhd | -| *Launcher* | Rofi | Rofi | / | -| *GTK Theme* | Dracula | Dracula | / | -| *Notifications* | Dunst | Dunst | / | -| *Terminal* | Alacritty | Alacritty | Alacritty | -| *Editor* | Nvim + Doom Emacs | Nvim + Doom Emacs | Nvim + Doom Emacs | -| *Used by host* | Desktop & Laptop | Desktop & VM | Macbook | -There are some other desktop environments/window manager. Just link to correct default.nix in ~~/hosts//default.nix~ +| | *NixOS - Wayland* | *NixOS - Xorg* | *Darwin* | +|-----------------+-------------------+-------------------+-------------------| +| *Shell* | Zsh | Zsh | Zsh | +| *DM* | TTY1 Login | LightDM | / | +| *WM* | Hyprland | Bspwm | Yabai | +| *Compositor* | Hyprland | Picom (jonaburg) | / | +| *Bar* | Waybar | Polybar | / | +| *Hotkeys* | Hyprland | Sxhkd | Skhd | +| *Launcher* | Rofi | Rofi | / | +| *GTK Theme* | Dracula | Dracula | / | +| *Notifications* | Dunst | Dunst | / | +| *Terminal* | Alacritty | Alacritty | Alacritty | +| *Editor* | Nvim + Doom Emacs | Nvim + Doom Emacs | Nvim + Doom Emacs | +| *Used by host* | Desktop | Laptop & VM | Macbook | +There are some other desktop environments/window manager. Just link to correct default/home.nix in ~./hosts//default.nix~. +There is also a general Nix config with hostname ~pacman~ that can be used on pretty much any disto. * NixOS Installation Guide This flake currently has *3* hosts @@ -64,14 +65,14 @@ This will depend on the host chosen. - No Swap: Ignore line 3 & 7 #+begin_src -# parted /dev/sda -- mklabel gpt -# parted /dev/sda -- mkpart primary 512MiB -8GiB -# parted /dev/sda -- mkpart primary linux-swap -8GiB 100% -# parted /dev/sda -- mkpart ESP fat32 1MiB 512MiB -# parted /dev/sda -- set 3 esp -# mkfs.ext4 -L nixos /dev/sda1 -# mkswap -L /dev/sda2 -# mkfs.fat -F 32 -n boot /dev/sda3 + # parted /dev/sda -- mklabel gpt + # parted /dev/sda -- mkpart primary 512MiB -8GiB + # parted /dev/sda -- mkpart primary linux-swap -8GiB 100% + # parted /dev/sda -- mkpart ESP fat32 1MiB 512MiB + # parted /dev/sda -- set 3 esp + # mkfs.ext4 -L nixos /dev/sda1 + # mkswap -L /dev/sda2 + # mkfs.fat -F 32 -n boot /dev/sda3 #+end_src *** Legacy @@ -85,28 +86,28 @@ This will depend on the host chosen. - No swap: Ignore line 3 and 5 #+begin_src -# parted /dev/sda -- mklabel msdos -# parted /dev/sda -- mkpart primary 1MiB -8GiB -# parted /dev/sda -- mkpart primary linux-swap -8GiB 100% -# mkfs.ext4 -L nixos /dev/sda1 -# mkswap -L /dev/sda2 + # parted /dev/sda -- mklabel msdos + # parted /dev/sda -- mkpart primary 1MiB -8GiB + # parted /dev/sda -- mkpart primary linux-swap -8GiB 100% + # mkfs.ext4 -L nixos /dev/sda1 + # mkswap -L /dev/sda2 #+end_src ** Installation *** UEFI *In these commands* -- Partition with label ... to ... +- Mount partition with label ... on ... - "nixos" -> ~/mnt~ - "boot" -> ~/mnt/boot~ #+begin_src -# mount /dev/disk/by-label/nixos /mnt -# mkdir -p /mnt/boot -# mount /dev/disk/by-label/boot /mnt/boot + # mount /dev/disk/by-label/nixos /mnt + # mkdir -p /mnt/boot + # mount /dev/disk/by-label/boot /mnt/boot #+end_src *** Legacy #+begin_src -# mount /dev/disk/by-label/nixos /mnt + # mount /dev/disk/by-label/nixos /mnt #+end_src *** Mounting Extras @@ -117,8 +118,8 @@ This will depend on the host chosen. - If storage has no label: - ~mount /dev/disk/by-uuid/ssd2 /mnt/ssd~ #+begin_src -# mkdir -p /mnt/ssd -# mount /dev/disk/by-label/ssd2 /mnt/ssd + # mkdir -p /mnt/ssd + # mount /dev/disk/by-label/ssd2 /mnt/ssd #+end_src *** Generate @@ -129,27 +130,27 @@ This will depend on the host chosen. - If you are me, you don't need to do this. Hardware-configuration.nix already in flake. - Clone repository #+begin_src -# swapon /dev/sda2 -# nixos-generate-config --root /mnt -# nix-env -iA nixos.git -# git clone https://github.com/matthiasbenaets/nixos-config /mnt/etc/nixos/ + # swapon /dev/sda2 + # nixos-generate-config --root /mnt + # nix-env -iA nixos.git + # git clone https://github.com/matthiasbenaets/nixos-config /mnt/etc/nixos/ -Optional if you are not me -# cp /mnt/etc/nixos/hardware-configuration.nix /mnt/etc/nixos/nixos-config/hosts//. + Optional if you are not me + # cp /mnt/etc/nixos/hardware-configuration.nix /mnt/etc/nixos/nixos-config/hosts//. #+end_src *** Possible Extra Steps 1. Switch specific host hardware-configuration.nix with generated ~/mnt/etc/nixos/hardware-configuration.nix~ 2. Change existing network card name with the one in your system - - Look in generated hardware-configuration.nixos + - Look in generated hardware-configuration.nix - Or enter ~$ ip a~ 3. Change username in flake.nix 4. Set a ~users.users.${user}.initialPassword = ...~ - Not really recommended. It's maybe better to follow last steps -5. If you are planning on using default2.nix doom emacs, don't forget to rebuild after the initial installation when you link to this nix file. - - Don't forget to change the flake location in flake.nix +5. If you are planning on using the native.nix doom emacs, don't forget to rebuild after the initial installation when you link to this nix file. - This is because userActivationScript is used for the setup and some locations are partially hardcoded - It will automatically install if ~~/.emacs.d~ does not exist + - If this dir already exist, move or delete it. *** Install *In these commands* @@ -160,8 +161,8 @@ Optional if you are not me - laptop - vm #+begin_src -# cd /mnt/etc/nixos/ -# nixos-install --flake .# + # cd /mnt/etc/nixos/ + # nixos-install --flake .# #+end_src ** Finalization @@ -176,16 +177,16 @@ Optional if you are not me - login as user 4. Optional: - ~$ sudo mv ~ - - ~$ sudo chown -R :users ~ - - ~$ sudo rm /etc/nixos/configuration.nix~ + - ~$ sudo chown -R :users ~ + - ~$ sudo rm /etc/nixos/configuration.nix~ - This is done because in the past it would auto update this config if you would have auto update in your configuration. - or just clone flake again do apply same changes. 5. Dual boot: - OSProber probably did not find your Windows partion after the first install - There is a high likelyhood it will find it after: - - ~$ cd ~ - - ~$ sudo nixos-rebuild switch --flake .#~ + - ~$ sudo nixos-rebuild switch --flake #~ 6. Rebuilds: - - ~$ sudo nixos-rebuild switch --flake .#~ + - ~$ sudo nixos-rebuild switch --flake #~ + - For example ~$ sudo nixos-rebuild switch --flake ~/.setup#matthias~ * Nix Installation Guide This flake currently has *1* host @@ -193,7 +194,7 @@ This flake currently has *1* host The Linux distribution must have the nix package manager installed. ~$ sh <(curl -L https://nixos.org/nix/install) --daemon~ -To be able to have a easy reproducible setup when using the nix package manager on a non-NixOS system, home-manager is a wonderful tool to achieve this. +To be able to have an easy reproducible setup when using the nix package manager on a non-NixOS system, home-manager is a wonderful tool to achieve this. So this is how it is set up in this flake. ** Installation @@ -202,19 +203,19 @@ So this is how it is set up in this flake. - Get git - Clone repository - First build of the flake - - This is done so we can use the nix flake commands + - This is done so we can use the home-manager command is part of PATH. #+begin_src -$ nix-env -iA nixpkgs.git -$ git clone https://github.com/matthiasbenaets/nixos-config ~/.setup -$ cd ~/.setup -$ nix build --extra-experimental-features 'nix-command flakes' .#homeConfigurations..activationPackage -$ ./result/activate + $ nix-env -iA nixpkgs.git + $ git clone https://github.com/matthiasbenaets/nixos-config ~/.setup + $ cd ~/.setup + $ nix build --extra-experimental-features 'nix-command flakes' .#homeConfigurations..activationPackage + $ ./result/activate #+end_src *** Rebuild Since home-manager is now a valid command we can rebuild the system using this command. In this example it is build from inside the flake directory: -- ~$ home-manager switch --flake .#~ +- ~$ home-manager switch --flake #~ This will rebuild the configuration and automatically activate it. ** Finalization @@ -231,7 +232,7 @@ This flake currently has *1* host 1. macbook The Apple computer must have the nix package manager installed. -~$ sh <(curl -L https://nixos.org/nix/install)~ +In terminal run command: ~$ sh <(curl -L https://nixos.org/nix/install)~ ** Setup *In these commands* @@ -239,8 +240,8 @@ The Apple computer must have the nix package manager installed. - Allow experimental features to use flakes #+begin_src -$ mkdir ~/.config/nix -$ echo "experimental-features = nix-command flakes" >> ~/.config/nix/nix.conf + $ mkdir ~/.config/nix + $ echo "experimental-features = nix-command flakes" >> ~/.config/nix/nix.conf #+end_src ** Installation @@ -252,17 +253,17 @@ $ echo "experimental-features = nix-command flakes" >> ~/.config/nix/nix.conf - This is done because the darwin command is not yet available #+begin_src -$ nix-env -iA nixpkgs.git -$ git clone https://github.com/matthiasbenaets/nixos-config ~/.setup -$ cd ~/.setup -$ nix build .#darwinConfigurations..system -$ ./result/sw/bin/darwin-rebuild switch --flake .# + $ nix-env -iA nixpkgs.git + $ git clone https://github.com/matthiasbenaets/nixos-config ~/.setup + $ cd ~/.setup + $ nix build .#darwinConfigurations..system + $ ./result/sw/bin/darwin-rebuild switch --flake .# #+end_src ~/result~ is located depending on where you build the system. *** Rebuild -Since darwin is now added to the PATH, you can build it from anywhere in the system. In this example it is rebuild from inside the flake directory: +Since darwin is now added to the PATH, you can build it from anywhere in the system. In this example it is rebuilt from inside the flake directory: - ~$ darwin-rebuild switch --flake .#~ This will rebuild the configuration and automatically activate it. diff --git a/contrib.org b/contrib.org index aa15f022..2e759d81 100644 --- a/contrib.org +++ b/contrib.org @@ -30,7 +30,7 @@ - etc.. *** module -- In these modules you will create the options to setup the package in a system +- In these modules you will create the options to set up the package in a system - ~$ touch nixpkgs/nixos//.nix~ - Add module to ~nixpkgs/nixos/modules/module-list.nix~ @@ -53,7 +53,7 @@ * Pull request ** Commit - See paragraph packaging-maintainer. If you are not a maintainer yet, add yourself to the list and commit. -- Before committing read https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md . Make needed changes. +- Before committing, read https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md. Make needed changes. - New package - ~$ git commit -m ": init at "~ @@ -73,3 +73,4 @@ - ~$ git push -f origin /.nixpkgs~ #+begin_src nix { pkgs, ... }: { @@ -71,8 +72,9 @@ After installation a ~darwin-configuation.nix~ file will be created in ~~/.nixpk - ~$ darwin-rebuild switch~ *** Running apps -- Apps will be installed in ~/nix/store~ but if a .app file is available, it can also be found in ~~/Applications~ -- From here you can ~$ ln -s ~/Applications/Nix Apps/.app /Applications~ +- In the past nix-darwin *.app files where places in ~/Users//Applications~ +- Now nix-darwin should create a "Nix App" dir inside ~/Applications~, so symlinking is no longer required. +- They should all become available in the Launchpad. - If your app is not available: #+begin_src @@ -150,13 +152,16 @@ nix = { *** Setup **** Initial *As a user* -- Add the channel: *need to be run with root privileges if you want to us the NixOS Module* +- Add the channel: - ~$ nix-channel --add https://github.com/nix-community/home-manager/archive/master.tar.gz home-manager~ - ~$ nix-channel --add https://github.com/nix-community/home-manager/archive/release-21.11.tar.gz home-manager~ - ~$ nix-channel --update~ - Just to be sure, relog. **** Standalone +- If installation give NIX-PATH errors + - ~$ sudo nix-collect-garbage -d~ + - ~$ export NIX_PATH=$HOME/.nix-defexpr/channels:/nix/var/nix/profiles/per-user/root/channels${NIX_PATH:+:$NIX_PATH}~ - Installation: - ~$ nix-shell ‘’ -A install~ - Configuration file: @@ -199,7 +204,6 @@ nix = { *** Applying - ~$ home-manager switch~ -** Extras * Flakes ** Introduction - Flakes are an "upcoming feature" of the Nix package manager. @@ -243,7 +247,7 @@ $ echo "experimental-features = nix-command flakes" >> ~/.config/nix/nix.conf description = "A basic flake"; inputs = { - nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; #nixpkgs-21.11-darwin + nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; #nixpkgs-22.05-darwin darwin.url = "github:lnl7/nix-darwin/master"; darwin.inputs.nixpkgs.follows = "nixpkgs"; }; @@ -315,7 +319,7 @@ $ ./result/sw/bin/darwin-rebuild switch --flake .# **** Build *a ".(#)" will just build host found in location* -*specify host with ".#" appended* +*specify host with "#" appended* - ~$ darwin-rebuild build --flake .#~ or build and automatically switch - ~$ darwin-rebuild switch --flake .#~ @@ -336,26 +340,31 @@ or build and automatically switch let #variables system = "x86_64-darwin"; + pkgs = nixpkgs.legacyPackages.system.${system}; in { #other outputs - hmConfig = { + homeManagerConfigurations = { = home-manager.lib.homeManagerConfiguration { - inherit system - username = “”; - homeDirectory = “/User/”; - #stateVersion = "22.05"; # If there is any complaining about differing stateVersions, specifically state here. - configuration = { - imports = [ - - ]; - }; + inherit pkgs; + extraSpecialArgs = { inherit ; }; + modules = [ + + { + home = { + username = “”; + homeDirectory = “/Users/”; + packages = [ pkgs.home-manager ]; + stateVersion = "22.05"; + }; + } + ]; }; }; }; } #+end_src -***** Inside nixosConfigurations +***** Inside darwinConfigurations #+begin_src nix { inputs = { @@ -392,12 +401,14 @@ or build and automatically switch **** Build ***** Seperate *This will build a directory with everything home-manager needs. An activation script is also located inside this dir* -- ~$ nix build .#hmConfig..activationPackage~ +- ~$ nix build .#homeManagerConfigurations..activationPackage~ - ~$ ./result/activate~ +Since home-manager is not installed, from now you can rebuild with: +- ~$ home-manager switch --flake #~ ***** Inside nixosConfiguraitons *Can be build with default rebuild command* -- ~$ sudo nixos-rebuild switch --flake .#~ +- ~$ sudo darwin-rebuild switch --flake .#~ ** Updating *This will update the flake.lock file* diff --git a/darwin/configuration.nix b/darwin/configuration.nix index 4fdac27e..e928b921 100644 --- a/darwin/configuration.nix +++ b/darwin/configuration.nix @@ -1,5 +1,5 @@ # -# Specific system configuration settings for macbook +# Specific system configuration settings for MacBook # # flake.nix # └─ ./darwin @@ -84,9 +84,7 @@ yabai -m rule --add app='Activity Monitor' manage=off layer=above yabai -m rule --add app='Finder' manage=off layer=above yabai -m rule --add app='^System Information$' manage=off layer=above - #yabai -m rule --add= - #yabai -m rule --add= - ''; # Specific rules for if it is managed and on which layer + ''; # Specific rules for what is managed and layered. }; skhd = { # Hotkey daemon enable = true; diff --git a/darwin/home.nix b/darwin/home.nix index c0f89400..0a421b26 100644 --- a/darwin/home.nix +++ b/darwin/home.nix @@ -32,7 +32,7 @@ }; zsh = { # Post installation script is run in configuration.nix to make it default shell enable = true; - enableAutosuggestions = true; # Auto suggest options and highlights syntact, searches in history for options + enableAutosuggestions = true; # Auto suggest options and highlights syntax. It searches in history for options enableSyntaxHighlighting = true; history.size = 10000; diff --git a/flake.lock b/flake.lock index 9eea06d3..27827f2a 100644 --- a/flake.lock +++ b/flake.lock @@ -54,11 +54,11 @@ "ws-butler": "ws-butler" }, "locked": { - "lastModified": 1668736610, - "narHash": "sha256-qqQ/YspdN7c8o24CZQfvtuCC8I0AzCAwTpDRCdWdgJo=", + "lastModified": 1669340080, + "narHash": "sha256-/YLYpng6mZ2/NgaCiL3BCQK1cegbUNrQx1Cc1i+nQ8E=", "owner": "nix-community", "repo": "nix-doom-emacs", - "rev": "6a37d61c1d8c8586b1140f53b83c164dd2fd7d2d", + "rev": "3c02175dd06714c15ddd2f73708de9b4dacc6aa9", "type": "github" }, "original": { @@ -103,11 +103,11 @@ "emacs-overlay": { "flake": false, "locked": { - "lastModified": 1668861223, - "narHash": "sha256-Y7Jc7n79h7vl7WGDohiSTpc4xdUx/B2n19+zMNjj0js=", + "lastModified": 1669463559, + "narHash": "sha256-aemo1lyq+vi3R0+gaCJvja9LIm/OZ3nsPKvPLrjMuVw=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "909b090c1181644ef3def6a37a18e9e3d08d1b07", + "rev": "3d5e5cfa91ed10d39e0504387242750996e8b027", "type": "github" }, "original": { @@ -283,11 +283,11 @@ "utils": "utils" }, "locked": { - "lastModified": 1668788863, - "narHash": "sha256-FsdUG+YkRX7JZKZm6T44J2h+0pXB1sWA9AobyiozFK0=", + "lastModified": 1669328018, + "narHash": "sha256-aJRMobnNDEXKwoSZFS4hGjGU1WDNxkQ82BVKAEohOfY=", "owner": "nix-community", "repo": "home-manager", - "rev": "948d1f8a5cef55a281d4f5d17f3b79df6c82fce1", + "rev": "62cb5bcf93896e4dd6b4507dac7ba2e2e3abc9d7", "type": "github" }, "original": { @@ -304,11 +304,11 @@ "wlroots": "wlroots" }, "locked": { - "lastModified": 1668863695, - "narHash": "sha256-PFNI4C5W5GjTwwnewSbTTSg7NTrBYcwBFR8RgxJb0t4=", + "lastModified": 1669477268, + "narHash": "sha256-GEcVzxk2fI+tobk208PRNMoSGXK4/lcLNZIIOxzs3Go=", "owner": "vaxerski", "repo": "Hyprland", - "rev": "0ffaa8d6673c02e9360865c8cde69a606c036af7", + "rev": "52c03569007f3df1a3fc740450db9b4b81d06ca7", "type": "github" }, "original": { @@ -356,11 +356,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1668765800, - "narHash": "sha256-rC40+/W6Hio7b/RsY8SvQPKNx4WqNcTgfYv8cUMAvJk=", + "lastModified": 1669320964, + "narHash": "sha256-EBFw+ge12Pcr3qCk8If3/eMBAoQLR7ytndXZoRevUtM=", "owner": "nixos", "repo": "nixpkgs", - "rev": "52b2ac8ae18bbad4374ff0dd5aeee0fdf1aea739", + "rev": "27ccd29078f974ddbdd7edc8e38c8c8ae003c877", "type": "github" }, "original": { @@ -388,11 +388,11 @@ }, "nur": { "locked": { - "lastModified": 1668865656, - "narHash": "sha256-lgffTZjfsu3T9AcALeZsEYrUgHHUrp+QEtW8HBA6w/I=", + "lastModified": 1669471448, + "narHash": "sha256-jG75clzKUQI+foiRxAWK8+2f58NS8Tf7fvQncOIfUuI=", "owner": "nix-community", "repo": "NUR", - "rev": "7eae2ea4d29c0a906e52b5f73d77020e93fa8162", + "rev": "81badd317a42472752389870baa37827b495a6d9", "type": "github" }, "original": { @@ -420,11 +420,11 @@ "org": { "flake": false, "locked": { - "lastModified": 1668143941, - "narHash": "sha256-f7nwVd1usk2Zhn9szqdhtU7/czXRl9w2NTQtGpIlugc=", + "lastModified": 1668865287, + "narHash": "sha256-q7TfqUuEdZsD+JkF8Cr0Lnn0po6qo2zXMZDieocLpeQ=", "owner": "emacs-straight", "repo": "org-mode", - "rev": "f83e45526b5ec4627d601673be3680e2dece1b33", + "rev": "0737112852afe835a5a5833a2dd0a6852c04e0f0", "type": "github" }, "original": { @@ -576,11 +576,11 @@ "flake": false, "locked": { "host": "gitlab.freedesktop.org", - "lastModified": 1668292512, - "narHash": "sha256-lCMnIguyZgAGq7W2IwIVPoQS8fAfZ/XFwz/1TQ53eI8=", + "lastModified": 1668785720, + "narHash": "sha256-CX+PYJP2PxZWL380WzyMNsrfRgIb/78brdwvDg/zj28=", "owner": "wlroots", "repo": "wlroots", - "rev": "627a5c511278e67c3c308cdc6a639cbb490f48c3", + "rev": "4ff46e6cf9463e594605928feeb7c55cf323b5e7", "type": "gitlab" }, "original": { diff --git a/hosts/configuration.nix b/hosts/configuration.nix index ad43425e..bf56e81a 100644 --- a/hosts/configuration.nix +++ b/hosts/configuration.nix @@ -7,7 +7,7 @@ # └─ ./modules # ├─ ./editors # │ └─ ./emacs -# │ └─ default.nix +# │ └─ native.nix # └─ ./shell # └─ ./default.nix # @@ -37,7 +37,7 @@ console = { font = "Lat2-Terminus16"; - keyMap = "us"; # or us/azerty/etc + keyMap = "us"; # or us/azerty/etc }; security.rtkit.enable = true; @@ -68,7 +68,7 @@ EDITOR = "nvim"; VISUAL = "nvim"; }; - systemPackages = with pkgs; [ # Default packages install system-wide + systemPackages = with pkgs; [ # Default packages installed system-wide #vim #git killall diff --git a/hosts/desktop/default.nix b/hosts/desktop/default.nix index 131c9acb..4b6fb289 100644 --- a/hosts/desktop/default.nix +++ b/hosts/desktop/default.nix @@ -14,8 +14,6 @@ # │ └─ default.nix # ├─ ./programs # │ └─ games.nix -# ├─ ./services -# │ └─ default.nix # └─ ./hardware # └─ default.nix # @@ -26,7 +24,6 @@ imports = # For now, if applying to other system, swap files [(import ./hardware-configuration.nix)] ++ # Current system hardware config @ /etc/nixos/hardware-configuration.nix [(import ../../modules/programs/games.nix)] ++ # Gaming - #[(import ../../modules/desktop/bspwm/default.nix)] ++ # Window Manager [(import ../../modules/desktop/hyprland/default.nix)] ++ # Window Manager (import ../../modules/desktop/virtualisation) ++ # Virtual Machines & VNC (import ../../modules/hardware); # Hardware devices diff --git a/hosts/desktop/hardware-configuration.nix b/hosts/desktop/hardware-configuration.nix index 9a87155c..c0670ebc 100644 --- a/hosts/desktop/hardware-configuration.nix +++ b/hosts/desktop/hardware-configuration.nix @@ -1,6 +1,16 @@ +# +# Hardware settings for my H310M S2H Desktop +# +# flake.nix +# └─ ./hosts +# └─ ./laptop +# └─ hardware-configuration.nix * +# # 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, ... }: { @@ -101,7 +111,7 @@ #wlp2s0.useDHCP = true; # Wireless card }; defaultGateway = "192.168.0.1"; - nameservers = [ "192.168.0.4" "1.1.1.1" ]; # Pi-Hole DNS + nameservers = [ "192.168.0.4" "1.1.1.1" ]; # Pi-Hole DNS with Cloudflare fallback #nameservers = [ "1.1.1.1" "1.0.0.1" ]; # Cloudflare (when Pi-Hole is down) }; } diff --git a/hosts/desktop/home.nix b/hosts/desktop/home.nix index c78b424f..1d15c157 100644 --- a/hosts/desktop/home.nix +++ b/hosts/desktop/home.nix @@ -16,7 +16,6 @@ { imports = [ - #../../modules/desktop/bspwm/home.nix # Window Manager ../../modules/desktop/hyprland/home.nix # Window Manager ]; diff --git a/hosts/home.nix b/hosts/home.nix index 8c28297d..88f59058 100644 --- a/hosts/home.nix +++ b/hosts/home.nix @@ -9,9 +9,7 @@ # │ └─ default.nix # ├─ ./programs # │ └─ default.nix -# ├─ ./services -# │ └─ default.nix -# └─ ./shell +# └─ ./services # └─ default.nix # @@ -37,7 +35,7 @@ # Video/Audio feh # Image Viewer mpv # Media Player - pavucontrol # Audio control + pavucontrol # Audio Control plex-media-player # Media Player vlc # Media Player stremio # Media Streamer @@ -49,20 +47,20 @@ remmina # XRDP & VNC Client # File Management - okular # PDF viewer + okular # PDF Viewer gnome.file-roller # Archive Manager pcmanfm # File Manager - rsync # Syncer $ rsync -r dir1/ dir2/ - unzip # Zip files - unrar # Rar files + rsync # Syncer - $ ssync -r dir1/ dir2/ + unzip # Zip Files + unrar # Rar Files # General configuration #git # Repositories #killall # Stop Applications #nano # Text Editor - #pciutils # Computer utility info + #pciutils # Computer Utility Info #pipewire # Sound - #usbutils # USB utility info + #usbutils # USB Utility Info #wacomtablet # Wacom Tablet #wget # Downloader #zsh # Shell @@ -71,7 +69,7 @@ #alacritty # Terminal Emulator #dunst # Notifications #doom emacs # Text Editor - #libnotify # Dep for Dunst + #libnotify # Dependency for Dunst #neovim # Text Editor #rofi # Menu #rofi-power-menu # Power Menu @@ -80,9 +78,9 @@ # # Xorg configuration #xclip # Console Clipboard - #xorg.xev # Input viewer + #xorg.xev # Input Viewer #xorg.xkill # Kill Applications - #xorg.xrandr # Screen settings + #xorg.xrandr # Screen Settings #xterm # Terminal # # Xorg home-manager @@ -97,7 +95,7 @@ #slurp # Region Selector #swappy # Screenshot Editor #swayidle # Idle Management Daemon - #wev # Input viewer + #wev # Input Viewer #wl-clipboard # Console Clipboard # # Wayland home-manager @@ -133,7 +131,7 @@ ]; file.".config/wall".source = ../modules/themes/wall; file.".config/wall.mp4".source = ../modules/themes/wall.mp4; - pointerCursor = { # This will set cursor systemwide so applications can not choose their own + pointerCursor = { # This will set cursor system-wide so applications can not choose their own #name = "Dracula-cursors"; name = "Catppuccin-Mocha-Dark-Cursors"; #package = pkgs.dracula-theme; diff --git a/hosts/laptop/default.nix b/hosts/laptop/default.nix index af350a96..07e2774d 100644 --- a/hosts/laptop/default.nix +++ b/hosts/laptop/default.nix @@ -8,8 +8,10 @@ # │ └─ hardware-configuration.nix # └─ ./modules # ├─ ./desktop -# │ └─ ./hyprland -# │ └─ hyprland.nix +# │ ├─ ./bspwm +# │ │ └─ default.nix +# │ └─ ./virtualisation +# │ └─ docker.nix # ├─ ./modules # │ └─ ./programs # │ └─ waybar.nix @@ -46,7 +48,7 @@ }; }; - hardware.sane = { # Used for scanning with Xsane + hardware.sane = { # Used for scanning with Xsane enable = true; extraBackends = [ pkgs.sane-airscan ]; }; @@ -64,7 +66,7 @@ services = { tlp.enable = true; # TLP and auto-cpufreq for power management - #logind.lidSwitch = "ignore"; # Laptop does not go to sleep when lid is closed + #logind.lidSwitch = "ignore"; # Laptop does not go to sleep when lid is closed auto-cpufreq.enable = true; blueman.enable = true; printing = { # Printing and drivers for TS5300 @@ -91,23 +93,6 @@ }; openFirewall = true; }; - #xserver = { - # libinput = { # Trackpad support & gestures - # touchpad = { - # tapping = true; - # scrollMethod = "twofinger"; - # naturalScrolling = true; # The correct way of scrolling - # accelProfile = "adaptive"; # Speed settings - # #accelSpeed = "-0.5"; - # disableWhileTyping = true; - # }; - # }; - # resolutions = [ - # { x = 1600; y = 920; } - # { x = 1280; y = 720; } - # { x = 1920; y = 1080; } - # ]; - #}; }; #temporary bluetooth fix diff --git a/hosts/laptop/hardware-configuration.nix b/hosts/laptop/hardware-configuration.nix index c8666d80..486889f8 100644 --- a/hosts/laptop/hardware-configuration.nix +++ b/hosts/laptop/hardware-configuration.nix @@ -10,6 +10,8 @@ # 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, ... }: { @@ -63,4 +65,5 @@ }; }; - hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; } + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/hosts/laptop/home.nix b/hosts/laptop/home.nix index 2a36080e..0e421931 100644 --- a/hosts/laptop/home.nix +++ b/hosts/laptop/home.nix @@ -7,8 +7,8 @@ # │ └─ home.nix * # └─ ./modules # └─ ./desktop -# └─ ./hyprland -# └─ hyprland.nix +# └─ ./bspwm +# └─ home.nix # { pkgs, ... }: diff --git a/hosts/vm/default.nix b/hosts/vm/default.nix index 55722bf0..d27d9abd 100644 --- a/hosts/vm/default.nix +++ b/hosts/vm/default.nix @@ -23,13 +23,13 @@ boot = { # Boot options kernelPackages = pkgs.linuxPackages_latest; - loader = { # For legacy boot: + loader = { # For legacy boot grub = { enable = true; version = 2; - device = "/dev/sda"; # Name of harddrive (can also be vda) + device = "/dev/sda"; # Name of hard drive (can also be vda) }; - timeout = 1; # Grub auto select time + timeout = 1; # Grub auto select timeout }; }; diff --git a/hosts/vm/hardware-configuration.nix b/hosts/vm/hardware-configuration.nix index e18a9005..5a51b5e6 100644 --- a/hosts/vm/hardware-configuration.nix +++ b/hosts/vm/hardware-configuration.nix @@ -1,6 +1,17 @@ +# +# Hardware settings for a general VM. +# Works on QEMU Virt-Manager and Virtualbox +# +# flake.nix +# └─ ./hosts +# └─ ./vm +# └─ hardware-configuration.nix * +# # 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, ... }: { diff --git a/modules/desktop/bspwm/default.nix b/modules/desktop/bspwm/default.nix index 21a6c3df..9b04f4bc 100644 --- a/modules/desktop/bspwm/default.nix +++ b/modules/desktop/bspwm/default.nix @@ -24,14 +24,21 @@ xkbOptions = "eurosign:e"; libinput = { enable = true; - touchpad.naturalScrolling = true; + touchpad = { + tapping = true; + scrollMethod = "twofinger"; + naturalScrolling = true; # The correct way of scrolling + accelProfile = "adaptive"; # Speed settings + #accelSpeed = "-0.5"; + disableWhileTyping = true; + }; }; modules = [ pkgs.xf86_input_wacom ]; # Both needed for wacom tablet usage wacom.enable = true; displayManager = { # Display Manager lightdm = { - enable = true; # Wallpaper and gtk theme + enable = true; # Wallpaper and GTK theme background = pkgs.nixos-artwork.wallpapers.nineish-dark-gray.gnomeFilePath; greeters = { gtk = { @@ -56,7 +63,7 @@ }; #Drivers for AMD GPU - #videoDrivers = [ # Video Settings + #videoDrivers = [ # Video Settings #"amdgpu" #]; @@ -82,7 +89,7 @@ # ${pkgs.xorg.xrandr}/bin/xrandr --output HDMI-A-1 --primary --mode 1920x1080 --rotate normal --output DisplayPort-1 --mode 1920x1080 --rotate normal --left-of HDMI-A-1 --output HDMI-A-0 --mode 1280x1024 --rotate normal --right-of HDMI-A-1 #fi - #''; # Settings for correct display configuration; This can also be done with setupCommands when X server start for smoother transition (if setup is static) + #''; # Settings for correct display configuration; This can also be done with setupCommands when X server start for smoother transition (if setup is static) # Another option to research in future is arandr serverFlagsSection = '' Option "BlankTime" "0" @@ -111,7 +118,7 @@ #sxhkd ]; - xdg.portal = { # Required for flatpak with windowmanagers + xdg.portal = { # Required for flatpak with window managers enable = true; extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; }; diff --git a/modules/desktop/bspwm/home.nix b/modules/desktop/bspwm/home.nix index 7bac5e0d..28ea3062 100644 --- a/modules/desktop/bspwm/home.nix +++ b/modules/desktop/bspwm/home.nix @@ -5,11 +5,15 @@ # ├─ ./hosts # │ └─ ./ # │ └─ home.nix -# └─ ./modules -# └─ ./desktop -# └─ ./bspwm -# └─ home.nix * -# +# ├─ ./modules +# │ └─ ./desktop +# │ └─ ./bspwm +# │ └─ home.nix * +# └─ ./services +# ├─ ./flameshot.nix +# ├─ ./picom.nix +# ├─ ./polybar.nix +# └─ ./sxhkd.nix { config, lib, pkgs, ... }: @@ -26,7 +30,7 @@ windowManager = { bspwm = { enable = true; -# monitors = { # Multiple monitors +# monitors = { # Multiple monitors # HDMI-A-1 = [ "1" "2" "3" "4" "5" ]; # HDMI-A-0 = [ "6" "7" "8" "9" "0" ]; # }; diff --git a/modules/desktop/gnome/default.nix b/modules/desktop/gnome/default.nix index 1cc027cb..62a15933 100644 --- a/modules/desktop/gnome/default.nix +++ b/modules/desktop/gnome/default.nix @@ -1,3 +1,7 @@ +# +# Gnome configuration +# + { config, lib, pkgs, ... }: { @@ -34,12 +38,12 @@ hardware.pulseaudio.enable = false; environment = { - systemPackages = with pkgs; [ # Packages installed + systemPackages = with pkgs; [ # Packages installed gnome.adwaita-icon-theme gnomeExtensions.appindicator gnomeExtensions.pop-shell ]; - gnome.excludePackages = (with pkgs; [ + gnome.excludePackages = (with pkgs; [ # Gnome ignored packages gnome-tour ]) ++ (with pkgs.gnome; [ gedit diff --git a/modules/desktop/hyprland/default.nix b/modules/desktop/hyprland/default.nix index 92ef229b..6e0de0b8 100644 --- a/modules/desktop/hyprland/default.nix +++ b/modules/desktop/hyprland/default.nix @@ -1,9 +1,9 @@ # -# Sway configuration +# Hyprland configuration # # flake.nix # ├─ ./hosts -# │ └─ ./laptop +# │ └─ ./ # │ └─ default.nix # └─ ./modules # └─ ./desktop @@ -23,7 +23,7 @@ if [ -z $DISPLAY ] && [ "$(tty)" = "/dev/tty1" ]; then exec Hyprland fi - ''; # Will automatically open sway when logged into tty1 + ''; # Will automatically open Hyprland when logged into tty1 variables = { XDG_CURRENT_DESKTOP="Hyprland"; XDG_SESSION_TYPE="wayland"; diff --git a/modules/desktop/hyprland/home.nix b/modules/desktop/hyprland/home.nix index 487122a6..510cec92 100644 --- a/modules/desktop/hyprland/home.nix +++ b/modules/desktop/hyprland/home.nix @@ -1,9 +1,9 @@ # -# Hyprland NixOS & Home manager configuration +# Hyprland Home-manager configuration # # flake.nix # ├─ ./hosts -# │ └─ ./laptop +# │ └─ ./ # │ └─ home.nix # └─ ./modules # └─ ./desktop diff --git a/modules/desktop/river/default.nix b/modules/desktop/river/default.nix index 6ce7b5c3..09549d1c 100644 --- a/modules/desktop/river/default.nix +++ b/modules/desktop/river/default.nix @@ -1,14 +1,5 @@ # -# Bspwm configuration -# -# flake.nix -# ├─ ./hosts -# │ └─ ./ -# │ └─ default.nix -# └─ ./modules -# └─ ./desktop -# └─ ./river -# └─ default.nix * +# River configuration # { config, lib, pkgs, ... }: @@ -24,7 +15,7 @@ if [ -z $DISPLAY ] && [ "$(tty)" = "/dev/tty1" ]; then exec river fi - ''; # Will automatically open sway when logged into tty1 + ''; # Will automatically open River when logged into tty1 variables = { #LIBCL_ALWAYS_SOFTWARE = "1"; # For applications in VM like alacritty to work #WLR_NO_HARDWARE_CURSORS = "1"; # For cursor in VM @@ -38,9 +29,9 @@ programs.dconf.enable = true; - xdg.portal = { # Required for flatpak with windowmanagers + xdg.portal = { # Required for flatpak with window managers enable = true; - wlr.enable = true; # Xdg for wayland + wlr.enable = true; # XDG for Wayland extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; #gtkUsePortal = true; }; diff --git a/modules/desktop/river/home.nix b/modules/desktop/river/home.nix index 154bb058..f2aeff0c 100644 --- a/modules/desktop/river/home.nix +++ b/modules/desktop/river/home.nix @@ -1,14 +1,5 @@ # -# Hyprland NixOS & Home manager configuration -# -# flake.nix -# ├─ ./hosts -# │ └─ ./laptop -# │ └─ home.nix -# └─ ./modules -# └─ ./desktop -# └─ ./river -# └─ home.nix * +# River Home-manager configuration # { config, lib, pkgs, ... }: @@ -25,7 +16,7 @@ riverctl spawn ${pkgs.wlr-randr}/bin/wlr-randr --output DP-1 --mode 1920x1080@60 --pos 0,0 --output HDMI-A-3 --mode 1920x1080@60 --pos 1920,0 riverctl spawn ${pkgs.waybar}/bin/waybar - riverctl map normal Super+Shift E exit # Exit river + riverctl map normal Super+Shift E exit # Exit River riverctl map normal Super Q close # Close window riverctl map normal Super Return spawn alacritty # Terminal Emulator diff --git a/modules/desktop/sway/default.nix b/modules/desktop/sway/default.nix index 5689aefd..84296190 100644 --- a/modules/desktop/sway/default.nix +++ b/modules/desktop/sway/default.nix @@ -1,15 +1,6 @@ # # Sway configuration # -# flake.nix -# ├─ ./hosts -# │ └─ ./laptop -# │ └─ default.nix -# └─ ./modules -# └─ ./desktop -# └─ ./sway -# └─ default.nix * -# { config, lib, pkgs, ... }: @@ -35,7 +26,7 @@ enable = true; extraPackages = with pkgs; [ autotiling # Tiling Script - ##swayidle # Idle Management Daemon + ##swayidle # Idle Management Daemon wev # Input viewer wl-clipboard # Commandline Clipboard #alternative clipman/wayclip #kanshi # Autorandr #not needed with single laptopscreen. need to find something like arandr @@ -44,9 +35,9 @@ ]; }; }; - networking.firewall.allowedTCPPorts = [ 5900 ]; # Used for vnc + networking.firewall.allowedTCPPorts = [ 5900 ]; # Used for vnc - xdg.portal = { # Required for flatpak with windowmanagers + xdg.portal = { # Required for flatpak with window managers enable = true; extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; }; diff --git a/modules/desktop/sway/home.nix b/modules/desktop/sway/home.nix index 3f6474ce..248c5889 100644 --- a/modules/desktop/sway/home.nix +++ b/modules/desktop/sway/home.nix @@ -1,15 +1,6 @@ # # Sway Home manager configuration # -# flake.nix -# ├─ ./hosts -# │ └─ ./laptop -# │ └─ home.nix -# └─ ./modules -# └─ ./desktop -# └─ ./sway -# └─ home.nix * -# { config, nixosConfig, lib, pkgs, ... }: @@ -30,7 +21,7 @@ in ##{command = '' ## ${pkgs.swayidle}/bin/swayidle -w \ ## before-sleep '${pkgs.swaylock-fancy}/bin/swaylock-fancy' - ##''; always = true;} # Lock on lid close (currently disabled because using laptop as temporary server) + ##''; always = true;} # Lock on lid close (currently disabled because using laptop as temporary server) #{command = '' # ${pkgs.swayidle}/bin/swayidle \ # timeout 120 '${pkgs.swaylock-fancy}/bin/swaylock-fancy' \ @@ -42,7 +33,7 @@ in bars = []; # No bar because using Waybar - fonts = { # Font usedfor window tiles, navbar, ... + fonts = { # Font used for window tiles, navbar, ... names = [ "Source Code Pro" ]; size = 10.0; }; @@ -117,9 +108,9 @@ in "${modifier}+Shift+Up" = "move up"; "${modifier}+Shift+Down" = "move down"; - #"Alt+Left" = "workspace prev"; # Navigate to previous or next workspace if it exists + #"Alt+Left" = "workspace prev"; # Navigate to previous or next workspace if it exists #"Alt+Right" = "workspace next"; - "Alt+Left" = "workspace prev_on_output"; # Navigate to previous or next workspace on output if it exists + "Alt+Left" = "workspace prev_on_output"; # Navigate to previous or next workspace on output if it exists "Alt+Right" = "workspace next_on_output"; "Alt+1" = "workspace number 1"; # Open workspace x diff --git a/modules/desktop/virtualisation/docker.nix b/modules/desktop/virtualisation/docker.nix index c92a0dd3..f59c141a 100644 --- a/modules/desktop/virtualisation/docker.nix +++ b/modules/desktop/virtualisation/docker.nix @@ -21,28 +21,3 @@ docker-compose ]; } - -# USAGE: -# list images (that can be run as container): docker images -# list containers (that are active): docker container ls -# run images as container: docker run -# run with port binding (ports can be accessed over internet): docker run -p : -# -# 1: Portainer -# Create volume: docker volume create portainer_data -# Create and start: docker run -d -p 8000:8000 -p 9443:9443 --name portainer \ -# --restart=always \ -# -v /var/run/docker.sock:/var/run/docker.sock \ -# -v portainer_data:/data \ -# portainer/portainer-ce:latest -# -# 2: RTMP Server for OBS Studio -# Create: docker run -d -p 1935:1935 --name nginx-rtmp --restart=always tiangolo/nginx-rtmp -# -# 3: Homer -# Create: docker run -d \ -# -p 8080:8080 \ -# -v :/www/assets \ -# --restart=always \ -# b4bz/homer:latest -# diff --git a/modules/desktop/virtualisation/qemu.nix b/modules/desktop/virtualisation/qemu.nix index 13b03c14..9961fe30 100644 --- a/modules/desktop/virtualisation/qemu.nix +++ b/modules/desktop/virtualisation/qemu.nix @@ -32,7 +32,7 @@ virt-viewer qemu OVMF - gvfs # Used for shared folders between linux and windows + gvfs # Used for shared folders between Linux and Windows ]; }; diff --git a/modules/desktop/virtualisation/x11vnc.nix b/modules/desktop/virtualisation/x11vnc.nix index 6d9f2861..84beb0fa 100644 --- a/modules/desktop/virtualisation/x11vnc.nix +++ b/modules/desktop/virtualisation/x11vnc.nix @@ -36,7 +36,7 @@ # xkb: Use xkeyboard # forever: Keep listening for connection after disconnect # loop100: Loop to restart service but wait 100ms - # auth: X authority file location so vnc also works from displaymanager (lightdm) + # auth: X authority file location so vnc also works from display manager (lightdm) # display: Which display to show. Even with multiple monitors it's 0 - # clip: Only show specific monitor using xinerama or pixel coordinated you can find using $ xrandr -q. Can be removed to show all. + # clip: Only show specific monitor using xinerama or pixel coordinates you can find using $ xrandr -q. Can be removed to show all. } diff --git a/modules/editors/default.nix b/modules/editors/default.nix index 5fdb58fa..b5ba81c8 100644 --- a/modules/editors/default.nix +++ b/modules/editors/default.nix @@ -15,4 +15,4 @@ #./emacs ] -# Comment out emacs if you are using native doom emacs. (imported from host configuration.nix) +# Comment out emacs if you are not using native doom emacs. (imported from host configuration.nix) diff --git a/modules/editors/emacs/default.nix b/modules/editors/emacs/default.nix index 1a5fe71e..ab8fcc50 100644 --- a/modules/editors/emacs/default.nix +++ b/modules/editors/emacs/default.nix @@ -1,6 +1,5 @@ # # Doom Emacs: home-manager alternative in "home.nix". Personally not a fan of github:nix-community/nix-doom-emacs due to performance issues -# recommended to comment out this part on first install because script will cause issues. It your want to use doom emacs, use the correct location or change in script # # flake.nix # ├─ ./hosts @@ -31,36 +30,5 @@ ripgrep coreutils fd - ]; # Dependencies + ]; # Dependencies } - -# HOME MANAGER ALTERNATIVE - -#{ pkgs, ... }: - -#{ -# home.file.".doom.d" = { # Get Doom Emacs -# source = ./doom.d; # Sets up symlink name ".doom.d" for file "doom.d" -# recursive = true; # Allow symlinking a directory -# onChange = builtins.readFile ./doom.sh; # If an edit is detected, it will run this script. Pretty much the same as what is now in default.nix but actually stating the terminal and adding the disown flag to it won't time out -# }; - -# programs = { -# emacs.enable = true; # Get Emacs -# }; -#} - -# REFERENCES ./doom.d DIRECTORY - -# doom.sh: -# -# #!/bin/sh -# DOOM="$HOME/.emacs.d" -# -# if [ ! -d "$DOOM" ]; then -# git clone https://github.com/hlissner/doom-emacs.git $DOOM -# alacritty -e $DOOM/bin/doom -y install & disown -# else -# alacritty -e $DOOM/bin/doom sync -# fi -# diff --git a/modules/editors/emacs/native.nix b/modules/editors/emacs/native.nix index 7c472436..d82abc6f 100644 --- a/modules/editors/emacs/native.nix +++ b/modules/editors/emacs/native.nix @@ -1,6 +1,6 @@ # -# Doom Emacs: home-manager alternative in "home.nix". Personally not a fan of github:nix-community/nix-doom-emacs due to performance issues -# recommended to comment out this part on first install because script will cause issues. It your want to use doom emacs, use the correct location or change in script +# Doom Emacs: home-manager alternative below. Personally not a fan of github:nix-community/nix-doom-emacs due to performance issues +# Recommended to comment out this import first install because script will cause issues. It your want to use doom emacs, use the correct location or change in script # # flake.nix # ├─ ./hosts @@ -17,7 +17,7 @@ { services.emacs.enable = true; - system.userActivationScripts = { # Installation script every time nixos-rebuild is run. So not during initial install. + system.userActivationScripts = { # Installation script every time nixos-rebuild is run. So not during initial install. doomEmacs = { text = '' source ${config.system.build.setEnvironment} @@ -32,7 +32,7 @@ else $DOOM/bin/doom sync fi - ''; + ''; # It will always sync when rebuild is done. So changes will always be applied. }; }; @@ -41,7 +41,7 @@ ripgrep coreutils fd - ]; # Dependencies + ]; # Dependencies } # HOME MANAGER ALTERNATIVE diff --git a/modules/editors/nvim/default.nix b/modules/editors/nvim/default.nix index c7d71cb3..cba84ea2 100644 --- a/modules/editors/nvim/default.nix +++ b/modules/editors/nvim/default.nix @@ -19,18 +19,18 @@ # Quality of life vim-lastplace # Opens document where you left it - auto-pairs # Print double quotes/brackets/etc. + auto-pairs # Print double quotes/brackets/etc vim-gitgutter # See uncommitted changes of file :GitGutterEnable # File Tree - nerdtree # File Manager - set in extraConfig to F6 - + nerdtree # File Manager - set in extraConfig to F6 + # Customization wombat256-vim # Color scheme for lightline srcery-vim # Color scheme for text lightline-vim # Info bar at bottom - indent-blankline-nvim # Indentation lines + indent-blankline-nvim # Indentation lines ]; extraConfig = '' diff --git a/modules/hardware/dslr.nix b/modules/hardware/dslr.nix index c5e76894..8b0b2758 100644 --- a/modules/hardware/dslr.nix +++ b/modules/hardware/dslr.nix @@ -24,5 +24,4 @@ alias dslr='gphoto2 --stdout --capture-movie | ffmpeg -i - -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video0' ''; # Alias for command to start video streaming the camera output }; - #programs.zsh.shellAliases.dslr = "gphoto2 --stdout --capture-movie | ffmpeg -i - -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video0"; } diff --git a/modules/programs/alacritty.nix b/modules/programs/alacritty.nix index bf0a9eed..28cb2ca2 100644 --- a/modules/programs/alacritty.nix +++ b/modules/programs/alacritty.nix @@ -14,7 +14,7 @@ font = rec { # Font - Laptop has size manually changed at home.nix normal.family = "Source Code Pro"; bold = { style = "Bold"; }; -# size = 8; + #size = 8; }; offset = { # Positioning x = -1; diff --git a/modules/programs/games.nix b/modules/programs/games.nix index 62e5dfd6..9c5fa60c 100644 --- a/modules/programs/games.nix +++ b/modules/programs/games.nix @@ -7,10 +7,10 @@ { config, pkgs, nur, lib, ... }: { - #hardware.new-lg4ff.enable = true; # Force Feedback Packaged myself :) + #hardware.new-lg4ff.enable = true; # Force Feedback Packaged myself :) environment.systemPackages = [ - #config.nur.repos.c0deaddict.oversteer # Steering Wheel Configuration + #config.nur.repos.c0deaddict.oversteer # Steering Wheel Configuration pkgs.lutris # Game Launcher pkgs.heroic pkgs.prismlauncher @@ -19,7 +19,7 @@ programs = { # Needed to succesfully start Steam steam = { enable = true; - #remotePlay.openFirewall = true; # Ports for Stream Remote Play + #remotePlay.openFirewall = true; # Ports for Stream Remote Play }; gamemode.enable = true; # Better gaming performance # Steam: Right-click game - Properties - Launch options: gamemoderun %command% diff --git a/modules/programs/old/rofi.nix b/modules/programs/old/rofi.nix deleted file mode 100644 index 3baf329b..00000000 --- a/modules/programs/old/rofi.nix +++ /dev/null @@ -1,95 +0,0 @@ -# -# System Menu -# - -{ config, lib, pkgs, ... }: - -let - inherit (config.lib.formats.rasi) mkLiteral; # Theme.rasi alternative. Add Theme here - colors = import ../themes/colors.nix; -in -{ - programs = { - rofi = { - enable = true; - terminal = "${pkgs.alacritty}/bin/alacritty"; # Alacritty is default terminal emulator - location = "center"; - theme = with colors.scheme.doom; { - "*" = { - spacing = 0; - background-color = mkLiteral "transparent"; - text-color = mkLiteral "#${text}"; - }; - - "window" = { - transparency = "real"; - fullscreen = true; - background-color = mkLiteral "#${bg}"; - }; - - "mainbox" = { - padding = mkLiteral "30% 30%"; - }; - - "inputbar" = { - margin = mkLiteral "0px 0px 20px 0px"; - children = mkLiteral "[prompt, textbox-prompt-colon, entry, case-indicator]"; - }; - - "prompt" = { - text-color = mkLiteral "#${blue}"; - }; - - "textbox-prompt-colon" = { - expand = false; - str = ":"; - text-color = mkLiteral "#${text-alt}"; - }; - - "entry" = { - margin = mkLiteral "0px 10px"; - }; - - "listview" = { - spacing = mkLiteral "5px"; - dynamic = true; - scrollbar = false; - }; - - "element" = { - padding = mkLiteral "5px"; - text-color = mkLiteral "#${text-alt}"; - highlight = mkLiteral "bold #${green}"; - border-radius = mkLiteral "3px"; - }; - - "element selected" = { - background-color = mkLiteral "#${emphasis}"; - text-color = mkLiteral "#${text}"; - }; - - "element urgent, element selected urgent" = { - text-color = mkLiteral "#${red}"; - }; - - "element active, element selected active" = { - text-color = mkLiteral "#${magenta}"; - }; - - "message" = { - padding = mkLiteral "5px"; - border-radius = mkLiteral "3px"; - background-color = mkLiteral "#${emphasis}"; - border = mkLiteral "1px"; - border-color = mkLiteral "#${cyan}"; - }; - - "button selected" = { - padding = mkLiteral "5px"; - border-radius = mkLiteral "3px"; - background-color = mkLiteral "#${emphasis}"; - }; - }; - }; - }; -} diff --git a/modules/services/default.nix b/modules/services/default.nix index d89b058c..6dbdfc52 100644 --- a/modules/services/default.nix +++ b/modules/services/default.nix @@ -21,4 +21,4 @@ ] # flameshot, picom, polybar and sxhkd are pulled from desktop module -# redshift temporarely disables +# redshift and media temporarely disables diff --git a/modules/shell/zsh.nix b/modules/shell/zsh.nix index e3147f9a..67b32a86 100644 --- a/modules/shell/zsh.nix +++ b/modules/shell/zsh.nix @@ -8,12 +8,12 @@ programs = { zsh = { enable = true; - autosuggestions.enable = true; # Auto suggest options and highlights syntact, searches in history for options + autosuggestions.enable = true; # Auto suggest options and highlights syntax, searches in history for options syntaxHighlighting.enable = true; enableCompletion = true; histSize = 100000; - ohMyZsh = { # Extra plugins for zsh + ohMyZsh = { # Extra plugins for zsh enable = true; plugins = [ "git" ]; }; diff --git a/nix.org b/nix.org new file mode 100644 index 00000000..00ba85bb --- /dev/null +++ b/nix.org @@ -0,0 +1,232 @@ +#+title: Nix Fresh Install guide +#+description: A basic introductional guide on building a Nix config on your personal Linux machine +#+author: Matthias Benaets + +#+attr_html: :width 280 +#+attr_org: :width 280 +[[file:rsc/Nix.svg]] + +* Nix +** Introduction +1. Just like NixOS, it supports declarative reproductible system configurations using home-manager. +2. Install packages at user level without having to change system state. +3. SELinux is currently unsupported. You need to disable it. +4. Primary used on systemd but can be used on other init systems. You will have to enable the nix daemon manually. + +** Getting Started +*** Nix and home-manager Website +*Nix* +- [[https://nixos.org/download.html][Nix Website]] +- [[https://nixos.org/manual/nix/stable][Manual]] +*Home-Manager* +- [[https://github.com/nix-community/home-manager][Github]] +- [[https://nix-community.github.io/home-manager/][Manual]] +- [[https://nix-community.github.io/home-manager/options.html][Appendix A]] +- [[https://nix-community.github.io/home-manager/nixos-options.html][Appendix B]] + + +*** Installing Nix +This command will install the Nix Package Manager on your system. More information can be found [[https://nixos.org/manual/nix/stable/installation/installing-binary.html][here]]. +When prompted, allow the installer to use root priviliges and to set up Nix as a Multi User. +- ~$ sh <(curl -L https://nixos.org/nix/install)~ + +**** Installing Packages +If you just want to use the Nix Package Manager, great, you are done. You can install new packages using the command below. Available packages can be found [[https://search.nixos.org/packages][here]]: +- ~$ nix-env -iA nixpkgs.~ +- ~$ nix-shell -p ~ +A couple more useful commands: +- ~$ nix-env --uninstall ~ +- ~$ nix-env -q~ +- ~$ nix-env --upgrade~ +If you would also like to configure these packages using their options, it's recommended that you keep reading. + +*** Garbage Collection +- Remove undeclared packages, dependencies and symlinks: + - ~$ sudo nix-collect-garbage -d~ + +** Installation +- Home-manager can be installed by using the commands below: + +*** Setup +**** Initial +*As a user* +- Add the channel: + - ~$ nix-channel --add https://github.com/nix-community/home-manager/archive/master.tar.gz home-manager~ + - ~$ nix-channel --add https://github.com/nix-community/home-manager/archive/release-21.11.tar.gz home-manager~ +- ~$ nix-channel --update~ +- Just to be sure, relog. + +**** Installation +- If installation give NIX-PATH errors + - ~$ sudo nix-collect-garbage -d~ + - ~$ export NIX_PATH=$HOME/.nix-defexpr/channels:/nix/var/nix/profiles/per-user/root/channels${NIX_PATH:+:$NIX_PATH}~ +- Installation: + - ~$ nix-shell '' -A install~ +- Configuration file: + - ~$ cd ~/.config/nixpkgs/home.nix~ + +** Configuration +*** Links +- [[https://nix-community.github.io/home-manager/options.html][Home-Manager Options]] +- ~$ man home-configuration.nix~ + +*** Declare user packages +#+begin_src nix + home.packages = with pkgs; [ + firefox + ]; + + services.dunst = { + enable = true; + }; +#+end_src + +*** Applying +- ~$ home-manager switch~ + +* Flakes +** Introduction +- Flakes are an "upcoming feature" of the Nix package manager. +- Specify code dependencies declaratively (will be stored in flake.lock) + - For example: home-manager +- Rebuilding and updating whole system made easy +- Very useful tool to build your own config + - Multiple configs in one + - People with github dotfiles will feel right at home + +** Getting Started +*** Flakes Wiki +- [[https://nixos.wiki/wiki/Flakes][Wiki]] + +*** Preparing the System + *Allowing experimental features such as flake to be installed* + +#+begin_src + $ mkdir -p ~/.config/nix + $ echo "experimental-features = nix-command flakes" >> ~/.config/nix/nix.conf +#+end_src + +** Installation +**** Generate +*This command will generate a flake.nix and flake.lock file* +- ~cd~ into a location to store in your system +- ~$ nix flake init~ + +#+begin_src nix + { + description = "A very basic flake"; + + outputs = { self, nixpkgs}: { + packages.x86_64-linux.hello = nixpkgs.legacyPackages.x86_64-linux.hello; + }; + } +#+end_src + +**** Inputs and Outputs +***** Inputs +*attribute set of all the dependencies used in the flake* +#+begin_src nix + inputs = { + nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + home-manager = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + nixgl = { + url = "gihub:guibou/nixGL"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + }; +#+end_src + +***** Outputs +*function of an argument that uses the inputs for reference* +- Configure what you imported +- Can be pretty much anything: Packages / configurations / modules / etc... + +** Configuration + +#+begin_src nix + inputs = { + nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; + home-manager = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + }; + outputs = { self, nixpkgs, home-manager, ...}: { + let + system = "x86_64-linux"; + pkgs = nixpkgs.legacyPackages.${system}; + in + homeConfigurations = { + "" = home-manager.lib.homeManagerConfiguration { + inherit pkgs; + extraSpecialArgs = { inherit inputs; }; + modules = [ + ./ + { + home = { + username = ""; + homeDirectory = "/home/${user}"; + packages = [ pkgs.home-manager ]; + stateVersion = "22.05"; + }; + } + ]; + }; + #"" = home-manager.lib.homeManagerConfiguration { + # pkgs = nixpkgs.legacyPackages."x86_64-linux"; + # extraSpecialArgs = { inherit inputs; }; + # modules = [ + # ./ + # { + # home = { + # ... + }; + }; +#+end_src + +**** First build +*This is only for those who don't have nix-darwin installed and have an existing flake they want to install on a fresh system* +*If this is not your situation, move on to rebuild* +- For the first initial installation it recommended that your use ~$ nix build~ +- The location of ~/result~ depends on what location you are building from. It's maybe recommended that your build inside the flake. + +#+begin_src + $ cd + $ nix build .#homeConfigurations..activationPackage + $ ./result/activate +#+end_src + +**** Rebuild +- After the first installation, you don't need to target ~/activate~ inside ~/result~ +- ~$ home-manager~ is now installed and can be used from anywhere. Example: + - ~/HOME// $ home-manager switch --flake #~ + +* Uninstall +** Nix Package Manager + +- [[https://nixos.org/manual/nix/stable/installation/installing-binary.html?highlight=uninstall#uninstalling][Full guide]] +- Commands are based on a systemd distribution, but I guess can be modified for your distro of choice. + +#+begin_src + $ sudo systemctl stop nix-daemon.socket + $ sudo systemctl stop nix-daemon.service + $ sudo systemctl disable nix-daemon.socket + $ sudo systemctl disable nix-daemon.service + $ sudo systemctl daemon-reload +#+end_src + +- reboot + +* Resources +1. [[https://nixos.org/][NixOS Website]] +2. [[https://nixos.org/learn.html/][NixOS Learn]] +3. [[https://nixos.org/manual/nix/stable/introduction.html][Nix Manual]] +4. [[https://nixos.wiki/wiki/Main_Page][NixOS Wiki]] +5. [[https://nixos.org/guides/nix-pills/][Nix Pills]] +6. [[https://github.com/nix-community/home-manager/][Home-Manager Github]] +7. [[https://nix-community.github.io/home-manager/][Home-Manager Manual]] +8. [[https://nix-community.github.io/home-manager/options.html][Home-Manager Appendix_A]] +9. [[https://nix-community.github.io/home-manager/nixos-options.html][Home-Manager Appendix B]] diff --git a/nix/default.nix b/nix/default.nix index ea6152f9..f1afad1e 100644 --- a/nix/default.nix +++ b/nix/default.nix @@ -8,12 +8,24 @@ { lib, inputs, nixpkgs, home-manager, nixgl, user, ... }: +let + system = "x86_64-linux"; + pkgs = nixpkgs.legacyPackages.${system}; +in { pacman = home-manager.lib.homeManagerConfiguration { # Currently only host that can be built - system = "x86_64-linux"; - username = "${user}"; - homeDirectory = "/home/${user}"; - configuration = import ./pacman.nix; + inherit pkgs; extraSpecialArgs = { inherit inputs nixgl user; }; + modules = [ + ./pacman.nix + { + home = { + username = "${user}"; + homeDirectory = "/home/${user}"; + packages = [ pkgs.home-manager ]; + stateVersion = "22.05"; + }; + } + ]; }; } diff --git a/nix/pacman.nix b/nix/pacman.nix index eed454a2..784df58b 100644 --- a/nix/pacman.nix +++ b/nix/pacman.nix @@ -12,14 +12,14 @@ { home = { packages = [ - (import nixgl { inherit pkgs; }).nixGLIntel # OpenGL for GUI apps. Add to aliases is recommended + (import nixgl { inherit pkgs; }).nixGLIntel # OpenGL for GUI apps. Add to aliases is recommended. #.nixVulkanIntel pkgs.hello pkgs.emacs ]; - activation = { # Run script during rebuild/switch - linkDesktopApplications = { # Script that will add all packages to the system menu + activation = { # Run script during rebuild/switch. + linkDesktopApplications = { # Script that will add all packages to the system menu. Mainly tested on Gnome. after = [ "writeBoundary" "createXdgUserDirectories" ]; before = [ ]; data = '' @@ -27,8 +27,8 @@ mkdir -p ${config.xdg.dataHome}/"applications/home-manager" cp -Lr ${config.home.homeDirectory}/.nix-profile/share/applications/* ${config.xdg.dataHome}/"applications/home-manager/" ''; - }; - }; + }; # An alternative it adding ~$HOME/.nix-profile/share~ to XDG_DATA_DIRS, but I've noticed it sometimes does not work. + }; # XDG_DATA_DIRS=$HOME/.nix-profile/share:$XDG_DATA_DIRS #file.".bash_aliases".text = '' # alias alacritty="nixGLIntel ${pkgs.alacritty}/bin/alacritty" diff --git a/nixos.org b/nixos.org index 9a9e893f..4cfe5233 100644 --- a/nixos.org +++ b/nixos.org @@ -2,7 +2,8 @@ #+description: A basic introductional guide on building a NixOS config on your personal machine #+author: Matthias Benaets -#+attr_org: :width 500 +#+attr_html: :width 800 +#+attr_org: :width 800 [[file:rsc/NixOS.svg]] * NixOS @@ -28,7 +29,7 @@ - On boot: Esc / Del / F1-12 **** Virt-Manager -- Download KDE ISO +- Download GUI ISO - Optional minimal ISO - No password needed - Root @@ -125,7 +126,7 @@ devices = ["nodev"]; # Install grub efiSupport = true; useOSProber = true; # Or use extraEntries like seen with Legacy - }; # OSProber will probably not find windows partition on first install + }; # OSProber will probably not find windows partition on first install. Just do a rebuild than. }; #+end_src @@ -157,7 +158,7 @@ **** Networking - Uncomment: ~networking.hostName="nixos";~ -- Network card details #could.be.moved.to.hardware-configuration.nix +- Network card details. Note: some of these options might have moved to ~hardware-configuration.nix~ - Deprecated but keep: ~networking.useDHCP = false;~ - Just internet via ethernet: ~networking.interfaces..useDHCP = true;~ @@ -169,7 +170,7 @@ interfaces ={ enp0s3 = { #useDHCP = true; - ipv4.addresses = [ { # Ofcourse not compatible with networkmanager + ipv4.addresses = [ { # Of course not compatible with networkmanager address = "192.168.0.50"; prefixLength = 24; } ]; @@ -229,8 +230,9 @@ ***** Audio & Bluetooth - [[https://nixos.wiki/wiki/PulseAudio][PulseAudio Wiki]] - [[https://nixos.wiki/wiki/Bluetooth][Bluetooth Wifi (+ configuring it with PulseAudio)]] +- [[https://nixos.wiki/wiki/PipeWire][PipeWire Wiki]] -****** Example +****** PulseAudio Example #+begin_src nix { pkgs, ... }: @@ -260,6 +262,31 @@ } #+end_src +****** Pipewire Example +#+begin_src nix + services = { + pipewire = { + enable = true; + alsa = { + enable = true; + support32Bit = true; + }; + pulse.enable = true; + jack.enable = true; + }; + }; + hardware = { + bluetooth = { + enable = true; + settings = { + General = { + Enable = "Source,Sink,Media,Socket"; + }; + }; + }; + }; +#+end_src + ***** Touchpad - [[https://search.nixos.org/options?channel=21.11&show=services.xserver.libinput.tapping&from=0&size=50&sort=relevance&type=packages&query=libinput][Libinput Options]] #+begin_src nix @@ -268,7 +295,7 @@ #tapping = true; #naturalScrolling = true; #... - } + }; #+end_src **** Users @@ -278,7 +305,7 @@ extraGroups = [ "wheel" "video" "audio" "networkmanager" "lp" "scanner"] #initialPassword = "password"; #shell = pkgs.zsh; - } + }; #+end_src **** Packages @@ -297,6 +324,7 @@ - Nothing to do with the version of the system. - Just tells the version of state/config - Can be updated to a stable version if you are really sure. + - Do consult the release notes first. *** Hardware-configuration.nix **** Generate @@ -353,7 +381,7 @@ - ~$ man configuration.nix~ *** Declaring Packages -*Installed Systemwide with configuration.nix* +*Installed system-wide with configuration.nix* #+begin_src nix environment = { systemPackages = with pkgs; [ @@ -449,7 +477,7 @@ D. Installed through nix-env: **** Command-line - Remove undeclared packages, dependencies and symlinks: - ~$ nix-collect-garbage~ -- Remove above of older generations: +- Remove older generations: - ~$ nix-collect-garbage --delete-old~ - List generations: - ~$ nix-env --list-generations~ @@ -459,7 +487,7 @@ D. Installed through nix-env: - Optimize store: - ~$ nix-store --gc~ - All in one: - - ~$ nix-collect-garbage -d~ + - ~# nix-collect-garbage -d~ **** Configuration.nix #+begin_src nix @@ -515,9 +543,9 @@ D. Installed through nix-env: #+end_src **** Standalone -- Installation: - - ~$ nix-shell ‘’ -A install~ -- Configuration file: +Installation: + - ~$ nix-shell '' -A install~ +Configuration file: - ~$ cd ~/.config/nixpkgs/home.nix~ ** Configuration @@ -551,7 +579,8 @@ D. Installed through nix-env: }; #+end_src -**** Stored files (also with no link to NixOS) +**** Stored files +*Which also don't have any links with NixOS* #+begin_src nix home.file.".doom.d" = { source = ./doom.d; @@ -614,7 +643,7 @@ D. Installed through nix-env: **** Generate *This command will generate a flake.nix and flake.lock file* -- pick a location to store in your system +- ~cd~ into a location to store in your system - ~$ nix flake init~ **** Inputs and Outputs @@ -666,7 +695,7 @@ D. Installed through nix-env: **** Build *a ".(#)" will just build host found in location* -*specify host with ".#" appended* +*specify host with "#" appended* - *optional* ~$ cp /etc/nixos/* ~ - ~$ nixos-rebuild build --flake .#~ or build and automatically switch @@ -687,19 +716,25 @@ or build and automatically switch outputs = { self, nixpkgs, home-manager, ... }: let #variables + system = "x86_64-linux"; + pkgs = nixpkgs.legacyPackages.system.${system}; in { #other outputs - hmConfig = { + homeManagerConfigurations = { = home-manager.lib.homeManagerConfiguration { - inherit system pkgs; - username = “”; - homeDirectory = “/home/”; - #stateVersion = "22.05"; # If there is any complaining about differing stateVersions, specifically state here. - configuration = { - imports = [ - /home//.config/home/home.nix - ]; - }; + inherit pkgs; + extraSpecialArgs = { inherit ; }; + modules = [ + + { + home = { + username = “”; + homeDirectory = “/home/”; + packages = [ pkgs.home-manager ]; + stateVersion = "22.05"; + }; + } + ]; }; }; }; @@ -742,7 +777,7 @@ or build and automatically switch **** Build ***** Seperate *This will build a directory with everything home-manager needs. An activation script is also located inside this dir* -- ~$ nix build .#hmConfig..activationPackage~ +- ~$ nix build .#homeManagerConfigurations..activationPackage~ - ~$ ./result/activate~ Afterwards you will be able to build home-manager from the flake using @@ -767,7 +802,7 @@ Afterwards you will be able to build home-manager from the flake using # reboot /* login */ $ sudo rm -r /etc/nixos/configuration.nix - /* move build to desired location */ + /* move config to desired location */ #+end_src * Resources diff --git a/rsc/Nix.svg b/rsc/Nix.svg new file mode 100644 index 0000000000000000000000000000000000000000..ef3f9e5a2ae5940f8fcd4ecb37858c59ed5f8406 GIT binary patch literal 31216 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", - "on-click": "rofi -show p -modi p:rofi-power-menu -theme $HOME/.config/rofi/config.rasi", - "on-click-right": "rofi -show drun" + "on-click": "/nix/store/ji6385q5iy4357wchvyshhyrazj7yj4h-rofi-1.7.5/bin/rofi -show p -modi p:/nix/store/ahdq42jlka94bqg7w9i8b0j8iyssd96i-rofi-power-menu-3.0.2/bin/rofi-power-menu -theme $HOME/.config/rofi/config.rasi", + "on-click-right": "/nix/store/ji6385q5iy4357wchvyshhyrazj7yj4h-rofi-1.7.5/bin/rofi -show drun", + "tooltip": false }, "custom/pad": { "format": " ", @@ -90,7 +91,7 @@ "headphone": "" }, "format-muted": " {format_source}", - "format-source": "", + "format-source": "", "format-source-muted": "", "on-click": "pamixer -t", "on-click-middle": "pavucontrol", @@ -132,8 +133,9 @@ }, "custom/menu": { "format": "", - "on-click": "rofi -show p -modi p:rofi-power-menu -theme $HOME/.config/rofi/config.rasi", - "on-click-right": "rofi -show drun" + "on-click": "/nix/store/ji6385q5iy4357wchvyshhyrazj7yj4h-rofi-1.7.5/bin/rofi -show p -modi p:/nix/store/ahdq42jlka94bqg7w9i8b0j8iyssd96i-rofi-power-menu-3.0.2/bin/rofi-power-menu -theme $HOME/.config/rofi/config.rasi", + "on-click-right": "/nix/store/ji6385q5iy4357wchvyshhyrazj7yj4h-rofi-1.7.5/bin/rofi -show drun", + "tooltip": false }, "custom/pad": { "format": " ", @@ -174,7 +176,7 @@ "headphone": "" }, "format-muted": " {format_source}", - "format-source": "", + "format-source": "", "format-source-muted": "", "on-click": "pamixer -t", "on-click-middle": "pavucontrol", diff --git a/rsc/config/waybar/style.css b/rsc/config/waybar/style.css index 9a1673d8..6e5fab10 100644 --- a/rsc/config/waybar/style.css +++ b/rsc/config/waybar/style.css @@ -3,6 +3,10 @@ font-family: FiraCode Nerd Font Mono; /*font-weight: bold;*/ font-size: 12px; + text-shadow: 0px 0px 5px #000000; +} +button:hover { + background-color: rgba(80,100,100,0.4); } window#waybar { background-color: rgba(0,0,0,0.5); @@ -31,16 +35,22 @@ window#waybar.hidden { color: #999999; background-clip: padding-box; } +#custom-menu { + color: #a7c7e7; + padding: 0px 5px 0px 5px; +} #workspaces button { padding: 0px 5px; min-width: 5px; + color: rgba(255,255,255,0.8); } #workspaces button:hover { background-color: rgba(0,0,0,0.2); } /*#workspaces button.focused {*/ #workspaces button.active { - color: #ccffff; + color: rgba(255,255,255,0.8); + background-color: rgba(80,100,100,0.4); } #workspaces button.visible { color: #ccffff; diff --git a/shell.org b/shell.org index 344c0489..a8a6100d 100644 --- a/shell.org +++ b/shell.org @@ -4,11 +4,11 @@ * Terminal ** Shell -- Create a shell where package is available +- Create a shell where a package is available. - ~$ nix-shell -p ~ -- Install package and run command. Only temporarly enter shell. +- Install a package and run command. Only temporarly enter shell. - ~$ nix-shell -p --run ~ or --command -- Install packages in the current active $SHELL (current terminal) +- Install package in the current active $SHELL (current terminal) - ~$ nix shell nixpkgs#~ - Since nixpkgs is used, you can also specify the branch. - ~$ nix shell nixpkgs/#~ @@ -66,6 +66,8 @@ mkShell { - ~$ NIXPKGS_ALLOW_INSECURE=1 nix run nixpkgs#etcher --impure~ ** Appimages +- This is mainly an issue for NixOS users. +- Recommended solution: You can use the shell below or use a package called "appimage-run". You can then ~$ appimage-run ~. #+begin_src nix let version = "number"; @@ -80,8 +82,7 @@ pkgs.appimageTools.wrapType2 { # src = /home/matthias/app.AppImage } #+end_src - -- But a better option might be to just ~$ nix build -f shell.nix~ +- If you want to run the shell it is recommended to use ~$ nix build -f shell.nix~. ** Shell Hook - Initialisation: Commands to run after everything is sourced. diff --git a/shells/app.nix b/shells/app.nix index c6d6615b..dec29375 100644 --- a/shells/app.nix +++ b/shells/app.nix @@ -18,3 +18,7 @@ pkgs.appimageTools.wrapType2 { # Rather than using nix-shell, it better to run $ nix build -f app.nix # and move the result symlink to your desired location or in a location within path. # +# An even better solution is to install a package called "appimage-run". +# You will then be able to $ appimage-run and start it without issues. +# Personally I recommend this solution. +#