mirror of
https://github.com/XNM1/linux-nixos-hyprland-config-dotfiles.git
synced 2025-09-15 09:45:58 +03:00
updated README.md
This commit is contained in:
94
README.md
94
README.md
@@ -8,12 +8,26 @@
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
## Table of Contents
|
||||||
|
- [About](#-about)
|
||||||
|
- [Showcase](#-showcase)
|
||||||
|
- [Components](#-components)
|
||||||
|
- [Features](#-features)
|
||||||
|
- [Installation](#-installation)
|
||||||
|
- [Keybindings](#️-keybindings)
|
||||||
|
- [Useful info for Rustaceans](#-useful-info-for-rustaceans)
|
||||||
|
- [License](#-license)
|
||||||
|
|
||||||
## 📖 About
|
## 📖 About
|
||||||
|
|
||||||
This repository contains my NixOS Linux configuration with the Hyprland window manager and the Catppuccin Macchiato theme. Please note that this configuration is not minimalistic or lightweight and may require some disk space and knowledge to understand. If you're looking for something simpler, this configuration may not be suitable for you.
|
This repository houses my NixOS Linux configuration, featuring the Hyprland window manager and adorned with the stylish Catppuccin Macchiato theme. I rely on this setup as my daily driver for work and programming, primarily in Rust 🦀. Feel free to utilize it in its entirety or borrow specific components for your own configuration.
|
||||||
|
|
||||||
|
🚨It's essential to note that this configuration is not minimalistic or lightweight and may require some disk space and knowledge to understand. If you're looking for something simpler, this configuration may not be suitable for you.
|
||||||
|
|
||||||
## 🌟 Showcase
|
## 🌟 Showcase
|
||||||
|
|
||||||
|
The showcased images do not reflect the latest version of the system's appearance. The final setup may vary slightly.
|
||||||
|
|
||||||

|

|
||||||

|

|
||||||

|

|
||||||
@@ -76,14 +90,14 @@ And many other useful utilities. The full list can be found in the system config
|
|||||||
4. To change the default username and/or hostname, run the command `rg --hidden 'xnm'` to find and fix all instances of the username, and `rg --hidden 'isitreal-laptop'` for the hostname. Make sure to change the username to match yours to avoid login issues.
|
4. To change the default username and/or hostname, run the command `rg --hidden 'xnm'` to find and fix all instances of the username, and `rg --hidden 'isitreal-laptop'` for the hostname. Make sure to change the username to match yours to avoid login issues.
|
||||||
5. Copy all files (with replacements) from the `home` directory to your `$HOME` directory in Linux.
|
5. Copy all files (with replacements) from the `home` directory to your `$HOME` directory in Linux.
|
||||||
6. Copy all files (with replacements) from the `nixos` directory to `/etc/nixos/`. It's recommended not to copy and replace `hardware-configuration.nix`; only copy it if you have already change it for your hardware.
|
6. Copy all files (with replacements) from the `nixos` directory to `/etc/nixos/`. It's recommended not to copy and replace `hardware-configuration.nix`; only copy it if you have already change it for your hardware.
|
||||||
7. Run the command `sudo nixos-rebuild switch`. After this, you will have a complete system. You can also use flakes after first setup by running `sudo nixos-rebuild switch --flake .#` if needed.
|
7. Run the command `sudo nixos-rebuild switch`. After this, you will have a complete system. You can also use flakes after first setup by running `sudo nixos-rebuild switch --flake /etc/nixos` if needed.
|
||||||
|
|
||||||
## ⌨️ Keybindings
|
## ⌨️ Keybindings
|
||||||
|
|
||||||
### Main
|
### Main
|
||||||
|
|
||||||
| Key Combination | Action |
|
| Key Combination | Action |
|
||||||
|------------------------|-----------------------------|
|
|------------------------|------------------------------|
|
||||||
| ALT + R | Resize windows mode |
|
| ALT + R | Resize windows mode |
|
||||||
| ALT + M | Move windows mode |
|
| ALT + M | Move windows mode |
|
||||||
| SUPER + H, J, K, L | Change window focus |
|
| SUPER + H, J, K, L | Change window focus |
|
||||||
@@ -93,25 +107,31 @@ And many other useful utilities. The full list can be found in the system config
|
|||||||
| SUPER + SHIFT + F | Toggle floating window |
|
| SUPER + SHIFT + F | Toggle floating window |
|
||||||
| SUPER + CTRL + F | Toggle full-screen |
|
| SUPER + CTRL + F | Toggle full-screen |
|
||||||
| SUPER + SHIFT + O | Toggle split |
|
| SUPER + SHIFT + O | Toggle split |
|
||||||
| SUPER + SHIFT + M | Exit from hyprland |
|
| SUPER + SHIFT + P | Toggle pseudo |
|
||||||
| SUPER + T | Launch wezTerm |
|
| SUPER + SHIFT + M | Exit from `hyprland` |
|
||||||
| SUPER + D | Launch rofi -drun |
|
| SUPER + T | Launch `wezterm` |
|
||||||
| SUPER + B | Launch qutebrowser |
|
| SUPER + D | Launch `rofi -drun` |
|
||||||
| SUPER + SHIFT + B | Launch brave |
|
| SUPER + B | Launch `qutebrowser` |
|
||||||
| SUPER + F | Launch thunar |
|
| SUPER + SHIFT + B | Launch `brave` |
|
||||||
| SUPER + ESCAPE | Launch wlogout |
|
| SUPER + F | Launch `thunar` |
|
||||||
| SUPER + SHIFT + L | Swaylock |
|
| SUPER + ESCAPE | Launch `wlogout` |
|
||||||
|
| SUPER + S | Launch `spotify` |
|
||||||
|
| SUPER + Y | Launch `youtube-music` |
|
||||||
|
| SUPER + SHIFT + D | Launch `discord` |
|
||||||
|
| SUPER + SHIFT + T | Launch `telegram` |
|
||||||
|
| SUPER + SHIFT + L | Launch `swaylock` |
|
||||||
| SUPER + SHIFT + S | Take screenshot |
|
| SUPER + SHIFT + S | Take screenshot |
|
||||||
| SUPER + E | Launch swappy to edit last taken screenshot |
|
| SUPER + E | Launch `swappy` to edit last taken screenshot |
|
||||||
| SUPER + R | Record screen area (MP4) |
|
| SUPER + R | Record screen area (MP4) |
|
||||||
| SUPER + SHIFT + R | Record screen area (GIF) |
|
| SUPER + SHIFT + R | Record screen area (GIF) |
|
||||||
| SUPER + C | Color picker |
|
| SUPER + C | Color picker |
|
||||||
| SUPER + V | Launch clipboard menu (rofi -dmenu) |
|
| SUPER + V | Launch clipboard menu (`rofi -dmenu`) |
|
||||||
| SUPER + X | Launch clipboard deletion item menu (rofi -dmenu) |
|
| SUPER + SHIFT + V | Launch clipboard menu (`rofi -dmenu`) (copy to clipboard) |
|
||||||
|
| SUPER + X | Launch clipboard deletion item menu (`rofi -dmenu`) |
|
||||||
| SUPER + SHIFT + X | Clear clipboard |
|
| SUPER + SHIFT + X | Clear clipboard |
|
||||||
| SUPER + U | Launch bookmark menu (rofi -dmenu) |
|
| SUPER + U | Launch bookmark menu (`rofi -dmenu`) |
|
||||||
| SUPER + SHIFT + U | Add text from clipboard to bookmark |
|
| SUPER + SHIFT + U | Add text from clipboard to bookmark |
|
||||||
| SUPER + CTRL + U | Launch bookmark deletion item menu (rofi -dmenu) |
|
| SUPER + CTRL + U | Launch bookmark deletion item menu (`rofi -dmenu`) |
|
||||||
| SUPER + SHIFT + A | Toggle airplane mode |
|
| SUPER + SHIFT + A | Toggle airplane mode |
|
||||||
| SUPER + SHIFT + N | Toggle notifications |
|
| SUPER + SHIFT + N | Toggle notifications |
|
||||||
| SUPER + SHIFT + Y | Toggle bluetooth |
|
| SUPER + SHIFT + Y | Toggle bluetooth |
|
||||||
@@ -122,6 +142,48 @@ And many other useful utilities. The full list can be found in the system config
|
|||||||
|
|
||||||
You can find all other keybindings in `/home/.config/hypr/hyprland.conf` in the bind section. All system fish scripts are located at `/home/.config/fish/functions` directory.
|
You can find all other keybindings in `/home/.config/hypr/hyprland.conf` in the bind section. All system fish scripts are located at `/home/.config/fish/functions` directory.
|
||||||
|
|
||||||
|
## 🦀 Useful info for Rustaceans
|
||||||
|
|
||||||
|
Here are some tips to enhance your Rust experience on this system:
|
||||||
|
|
||||||
|
1. **Installation Customization:**
|
||||||
|
This system utilizes [rust-overlay](https://github.com/oxalica/rust-overlay) for Rust installation using the Nix approach. To customize the installation, including modifications to compilation targets, components, channels, or profiles, follow these steps:
|
||||||
|
|
||||||
|
- Locate the `/nixos/rust-toolchain.toml` file and make the necessary adjustments based on your requirements.
|
||||||
|
|
||||||
|
- If you are working on multiple projects with distinct `rust-toolchain.toml` files or need to switch between stable and nightly Rust versions, consider the following options:
|
||||||
|
|
||||||
|
- Install `rustup` through `configuration.nix` and nixpkgs for a system-wide Rust setup. This allows you to manage Rust versions globally through `rustup`.
|
||||||
|
|
||||||
|
- Alternatively, you can set up a Nix environment using `flake.nix` and [rust-overlay](https://github.com/oxalica/rust-overlay) for each project separately. Utilize `nix develop` to manage project-specific Rust environments.
|
||||||
|
|
||||||
|
2. **Troubleshooting Compilation Issues:**
|
||||||
|
If you encounter problems during Rust compilation, especially those related to OpenSSL or SQLite (refer [here](https://nixos.wiki/wiki/Rust#Building_Rust_crates_that_require_external_system_libraries)), leverage the `rustenv` fish function. This function is an alias for the `nix-shell -p pkg-config openssl sqlite --run fish` command, opening a Nix shell with the necessary dependencies for seamless code compilation. Additionally, if you use Nix shell, compilation will occur in the runtime directory, which might be insufficient for some projects. You can adjust the runtime directory size in `configuration.nix` under `services.logind.extraConfig="RuntimeDirectorySize=4G"`.
|
||||||
|
|
||||||
|
3. **Cross-Compilation:**
|
||||||
|
For cross-compilation, consider using tools like `zigbuild` or `cross`. Personally, I find `zigbuild` preferable, but both are valuable options for your cross-compilation needs.
|
||||||
|
|
||||||
|
4. **Cargo and Rust Tools:**
|
||||||
|
This system comes equipped with a variety of cargo and rust tools to ensure a smooth Rust development experience. Some of these tools include:
|
||||||
|
- `rust-analyzer`
|
||||||
|
- `cargo-deny`
|
||||||
|
- `cargo-audit`
|
||||||
|
- `cargo-update`
|
||||||
|
- `cargo-edit`
|
||||||
|
- `cargo-outdated`
|
||||||
|
- `cargo-license`
|
||||||
|
- `cargo-tarpaulin`
|
||||||
|
- `cargo-cross`
|
||||||
|
- `cargo-zigbuild`
|
||||||
|
- `cargo-nextest`
|
||||||
|
- `cargo-spellcheck`
|
||||||
|
- `cargo-modules`
|
||||||
|
- `cargo-bloat`
|
||||||
|
- `bacon`
|
||||||
|
|
||||||
|
5. **Environment Setup:**
|
||||||
|
You can set up your Rust project environment on this system using `nix develop` or `nix-shell` with `default.nix`, `shell.nix`, or `flake.nix` to create a tailored environment for your Rust project.
|
||||||
|
|
||||||
## 📜 License
|
## 📜 License
|
||||||
|
|
||||||
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
||||||
|
Reference in New Issue
Block a user