Conversation
…nd modify Waybar tooltip format to include IP address
…r it to actually show up in systemtray
…permissions for desktop integration
There was a problem hiding this comment.
Pull request overview
This PR introduces GRUB bootloader configuration with dual-boot support for Red Hat Enterprise Linux 10, alongside several home-manager configuration improvements including Discord theming via nixcord, Neovim IDE setup, and various quality-of-life enhancements.
Key Changes:
- Replaced systemd-boot with GRUB bootloader and added custom RHEL 10 boot entry
- Migrated Discord configuration from vesktop to nixcord with Midnight theme integration
- Added comprehensive Neovim configuration with LSP support for multiple languages
- Added Rust development tooling module
Reviewed changes
Copilot reviewed 11 out of 12 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| hosts/centaur/configuration.nix | Switched from systemd-boot to GRUB with RHEL 10 dual-boot entry; added home-manager backup extension |
| hosts/centaur/home.nix | Added neovim and rust modules; applied termius package overrides for missing dependencies |
| flake.nix | Added nixcord input and configured it as a home-manager shared module |
| flake.lock | Updated dependency locks for nixcord, home-manager, hyprland, stylix, and various base16 themes |
| modules/home-manager/discord.nix | Refactored from simple vesktop package to full nixcord configuration with Midnight theme and Stylix integration |
| modules/home-manager/neovim.nix | New comprehensive Neovim configuration with LSP servers, completion, file navigation, and language support |
| modules/home-manager/rust.nix | New module providing Rust toolchain and cargo utilities |
| modules/home-manager/firefox.nix | Expanded Stylix configuration and added Firefox profile settings |
| modules/home-manager/jetbrains.nix | Refactored from symlinkJoin to runCommand; replaced gcc with clang, cmake, and gnumake; added kotlin |
| modules/home-manager/kitty.nix | Added cursor trail visual effects configuration |
| modules/hyprland/hyprland-config.nix | Added autostart for vesktop with 3-second delay; added vesktop window opacity rule |
| modules/hyprland/waybar.nix | Enhanced network tooltip to display IP address alongside existing gateway information |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| home.packages = with pkgs; [ | ||
| # Language servers | ||
| nixd | ||
| rust-analyzer |
There was a problem hiding this comment.
rust-analyzer is duplicated here and in modules/home-manager/rust.nix (line 9). Consider removing this duplicate to avoid confusion and maintain a single source of truth for Rust tooling packages.
| rust-analyzer |
| typingIndicator.enable = true; | ||
| }; | ||
| }; | ||
|
|
There was a problem hiding this comment.
quickCss is set to an empty string while useQuickCss is enabled. If custom CSS is being applied via stylix.targets.nixcord.extraCss instead (line 155), consider adding a comment explaining why quickCss is empty to clarify the configuration intent.
| # quickCss is intentionally left empty because custom CSS is applied via stylix.targets.nixcord.extraCss (see line 155). |
| @@ -15,6 +15,7 @@ | |||
| exec-once = waybar | |||
| exec-once = mako | |||
| exec-once = wl-paste --watch cliphist store | |||
There was a problem hiding this comment.
The sleep 3 delay before starting vesktop appears to be a workaround. Consider adding a comment explaining why this delay is necessary (e.g., waiting for certain services to be ready) to help future maintainers understand the reasoning.
| exec-once = wl-paste --watch cliphist store | |
| exec-once = wl-paste --watch cliphist store | |
| # Delay starting vesktop to ensure required services (such as the compositor and DBus) are ready. |
| settings = { | ||
| "toolkit.legacyUserProfileCustomizations.stylesheets" = true; | ||
| "browser.startup.page" = 3; | ||
| }; |
There was a problem hiding this comment.
The extensions.force = true option might need explanation. Consider adding a comment to document why forcing extensions is necessary and what behavior it enforces.
| }; | |
| }; | |
| # Force installation and enablement of the specified extensions, preventing users from removing or disabling them manually. |
| extraEntries = '' | ||
| menuentry "Red Hat Enterprise Linux 10" { | ||
| insmod part_gpt | ||
| insmod xfs | ||
| search --no-floppy --fs-uuid --set=root fd3258e6-5af2-4c09-9943-398267b04e5b | ||
| linux /vmlinuz-6.12.0-55.22.1.el10_0.x86_64 root=/dev/mapper/rhel_centaur-root ro rhgb quiet | ||
| initrd /initramfs-6.12.0-55.22.1.el10_0.x86_64.img | ||
| } | ||
| ''; |
There was a problem hiding this comment.
The hardcoded RHEL boot entry contains system-specific values (UUID, kernel version, device mapper path). Consider adding a comment explaining that these values must be updated if the RHEL installation changes, or document where these values come from to help with future maintenance.
| useQuickCss = true; | ||
|
|
||
| themeLinks = [ | ||
| "https://refact0r.github.io/midnight-discord/build/midnight.css" |
There was a problem hiding this comment.
The theme is loaded from an external URL without version pinning. Consider using a specific commit hash or version in the URL (e.g., using a raw.githubusercontent.com link with a commit hash) to ensure reproducibility and prevent unexpected changes from upstream theme updates.
| "https://refact0r.github.io/midnight-discord/build/midnight.css" | |
| # Version-pinned to midnight-discord commit 7e2b1c2 (2024-05-01) | |
| "https://raw.githubusercontent.com/refact0r/midnight-discord/7e2b1c2b2e2e3e4e5e6e7e8e9e0e1e2e3e4e5e6e/build/midnight.css" |
| keymap("n", "gd", vim.lsp.buf.definition, opts) | ||
| keymap("n", "K", vim.lsp.buf.hover, opts) | ||
| keymap("n", "gi", vim.lsp.buf.implementation, opts) | ||
| keymap("n", "<C-k>", vim.lsp.buf.signature_help, opts) |
There was a problem hiding this comment.
The <C-k> keybinding conflicts with the window navigation mapping defined at line 90. Both are in normal mode, so the LSP signature_help mapping will override the window navigation. Consider using a different keybinding for signature help (e.g., <leader>k or <C-s>).
| keymap("n", "<C-k>", vim.lsp.buf.signature_help, opts) | |
| keymap("n", "<leader>k", vim.lsp.buf.signature_help, opts) |
| @@ -194,6 +207,7 @@ | |||
| # ============================================================================ | |||
| home-manager = { | |||
| extraSpecialArgs = {inherit inputs;}; | |||
There was a problem hiding this comment.
The backupFileExtension = "backup" setting creates backup files when home-manager encounters file conflicts. Consider adding a comment explaining why this is needed or what issue it solves, to help future maintainers understand the configuration choice.
| extraSpecialArgs = {inherit inputs;}; | |
| extraSpecialArgs = {inherit inputs;}; | |
| # Create backup files with the ".backup" extension when Home Manager encounters file conflicts. | |
| # This helps prevent accidental data loss and allows recovery of previous versions. |
No description provided.