diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..6e6af63 --- /dev/null +++ b/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2024 gpskwlkr + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md index 6abc6bf..dee5acf 100644 --- a/README.md +++ b/README.md @@ -1 +1,89 @@ -# nixos-hyprland-flake +# NixOS + Hyprland (Secureboot enabled) + +![Hyprland screenshot](./images/2024-03-24-213455_hyprshot.png) + +> WARNING! This configuration uses [lanzaboote](https://github.com/nix-community/lanzaboote) for Secure boot support. If you want to use the flake and don't need secure boot, make appropriate changes in [boot.nix](./system/boot.nix). +> WARNING! Make sure to change [hardware-configuration.nix](./hardware-configuration.nix) according to your PC or generate a new one via `nixos-generate-config --root /mnt` while installing. +> WARNING! Make sure to change home paths for config files in [user](./user/config). +> WARNING! There might be some non-critical bugs in configuration as I'm still working on it. + +## Table Of Contents + +- [About](#-about) +- [Components](#-components) +- [Keybindings](#-keybindings) +- [NixOS specific zsh aliases](#-nixos-specific-zsh-aliases) +- [License](#-license) + +## About + +This repository is housing my daily drive NixOS configuration using ❄️f flakes, running Hyprland. Feel free to utilize it in its entirety or borrow specific components for your own configuration. + +> Configuration is not lightweight and may require some disk space. + +Notably, it utilizes: + +- **flake** (Experimental feature of the Nix package manager) +- **nixpkgs**: unstable (only used for hyprshot & [Vesktop]()) + +## Components + +| Component | Version/Name | +| ---------------- | ---------------------------------------------------- | +| Distro | NixOS | +| Shell | Zsh | +| Display Server | Wayland | +| WM (Compositor) | Hyprland | +| Bar | Waybar | +| Notification | Mako | +| Launcher | Wofi | +| Editor | Neovim | +| Terminal | Kitty | +| Fetch Utility | Neofetch | +| Theme | Catppuccin Macchiato | +| Icons | Colloid-teal-dark, Numix-Circle | +| Font | Nerd-fonts NixOS package (installing all nerd-fonts) | +| File Browser | Thunar | +| Internet Browser | Firefox | +| Screenshot | Hyprshot | +| Clipboard | Wl-clipboard | +| Idle | Swayidle | +| Lock | Swaylock | +| Logout menu | Wlogout | +| Wallpaper | Hyprpaper | +| Display Manager | SDDM | +| Containerization | Docker | +| Virtualisation | qemu + virt-manager + libvirtd | + +## Keybindings + +| Key Combination | Action | +| ------------------------- | --------------------------------------------------------------------- | +| SUPER + H, J, K, L | Change window focus | +| SUPER + CTRL + H, J, K, L | Resize window | +| SUPER + 1..0 | Change workspace | +| SUPER + SHIFT + 1..0 | Move window to workspace | +| SUPER + Q | Kill active window | +| SUPER + S | Toggle split | +| SUPER + M | Exit from `hyprland` | +| SUPER + Return | Launch `kitty` | +| SUPER + D | Launch `wofi` | +| SUPER + E | Launch `thunar` | +| SUPER + M | Launch `wlogout` | +| SUPER + SHIFT + L | Launch `swaylock` | +| Print | Take screenshot (currently configured to area capture into clipboard) | + +All other keybindings can be found at [bind.conf](./user/config/hypr/bind.conf) + +## NixOS specific zsh aliases + +**fullClean** - Fully clean old generations data +**rebuild** - alias to `nixos-rebuild switch` +**fullRebuild** - same as previous but also includes `home-manager switch` +**homeRebuild** - only rebuild home-manager + +> Make sure to make appropriate changes to [sh.nix](./user/sh.nix) flake paths. + +## License + +This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. diff --git a/configuration.nix b/configuration.nix index b29eef5..22753ee 100644 --- a/configuration.nix +++ b/configuration.nix @@ -1,7 +1,6 @@ { config, lib, pkgs, ... }: { - system.stateVersion = "23.11"; } diff --git a/flake.nix b/flake.nix index 327671c..7aee899 100644 --- a/flake.nix +++ b/flake.nix @@ -1,5 +1,4 @@ { - description = "gpskwlkr NixOS"; inputs = { diff --git a/images/2024-03-24-213455_hyprshot.png b/images/2024-03-24-213455_hyprshot.png new file mode 100644 index 0000000..12d69be Binary files /dev/null and b/images/2024-03-24-213455_hyprshot.png differ diff --git a/system/nixsettings.nix b/system/nixsettings.nix index 0c4b391..160caf2 100644 --- a/system/nixsettings.nix +++ b/system/nixsettings.nix @@ -25,7 +25,7 @@ allowUnfreePredicate = pkg: builtins.elem (builtins.parseDrvName pkg.name).name ["steam"]; permittedInsecurePackages = [ - "electron-25.9.0" + "electron-25.9.0" # obsidian ]; }; }; diff --git a/user/config/hypr/bind.conf b/user/config/hypr/bind.conf index efca48a..93f3268 100644 --- a/user/config/hypr/bind.conf +++ b/user/config/hypr/bind.conf @@ -3,7 +3,7 @@ $mainMod = SUPER bind = $mainMod, Return, exec, kitty bind = $mainMod, Q, killactive, bind = $mainMod, M, exec, wlogout --protocol layer-shell -bind = $mainMod, E, exec, dolphin +bind = $mainMod, E, exec, thunar bind = $mainMod, V, togglefloating, bind = $mainMod, D, exec, wofi --show drun bind = $mainMod, P, pseudo, # dwindle