Initial NixOS config
This commit is contained in:
79
modules/hyprland.nix
Normal file
79
modules/hyprland.nix
Normal file
@@ -0,0 +1,79 @@
|
||||
{ config, pkgs, inputs, ... }:
|
||||
|
||||
{
|
||||
# Import Hyprland module
|
||||
imports = [ inputs.hyprland.nixosModules.default ];
|
||||
|
||||
# Enable Hyprland
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
xwayland.enable = true;
|
||||
};
|
||||
|
||||
# Hyprland-related packages
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Core Hyprland tools
|
||||
hyprpaper # Wallpaper utility
|
||||
hyprpicker # Color picker
|
||||
hypridle # Idle daemon
|
||||
hyprlock # Screen locker
|
||||
|
||||
# Wayland essentials
|
||||
waybar # Status bar
|
||||
wofi # Application launcher
|
||||
dunst # Notification daemon
|
||||
swww # Wallpaper daemon (alternative to hyprpaper)
|
||||
|
||||
# Screenshot and recording
|
||||
grim # Screenshot tool
|
||||
slurp # Region selector
|
||||
wl-clipboard # Clipboard utilities
|
||||
|
||||
# File manager
|
||||
thunar
|
||||
|
||||
# Image viewer
|
||||
imv
|
||||
|
||||
# PDF viewer
|
||||
zathura
|
||||
|
||||
# Audio control
|
||||
pavucontrol
|
||||
|
||||
# Network management
|
||||
networkmanagerapplet
|
||||
|
||||
# Brightness control
|
||||
brightnessctl
|
||||
|
||||
# Additional tools for ricing
|
||||
jq # JSON processor (for scripts)
|
||||
socat # Socket tools
|
||||
wlogout # Logout menu
|
||||
nwg-look # GTK theme config
|
||||
qt5ct # Qt5 config
|
||||
qt6ct # Qt6 config
|
||||
];
|
||||
|
||||
# Enable XDG Desktop Portal for Hyprland
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
extraPortals = with pkgs; [
|
||||
xdg-desktop-portal-hyprland
|
||||
xdg-desktop-portal-gtk
|
||||
];
|
||||
};
|
||||
|
||||
# Security - for screen locking
|
||||
security.pam.services.hyprlock = {};
|
||||
|
||||
# Fonts for better UI
|
||||
fonts.packages = with pkgs; [
|
||||
noto-fonts
|
||||
noto-fonts-cjk
|
||||
noto-fonts-emoji
|
||||
font-awesome
|
||||
(nerdfonts.override { fonts = [ "JetBrainsMono" "FiraCode" "DroidSansMono" ]; })
|
||||
];
|
||||
}
|
||||
89
modules/system.nix
Normal file
89
modules/system.nix
Normal file
@@ -0,0 +1,89 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
# Essential system packages
|
||||
environment.systemPackages = with pkgs; [
|
||||
# System utilities
|
||||
wget
|
||||
curl
|
||||
git
|
||||
vim
|
||||
neovim
|
||||
htop
|
||||
btop
|
||||
killall
|
||||
unzip
|
||||
zip
|
||||
p7zip
|
||||
|
||||
# Network tools
|
||||
networkmanagerapplet
|
||||
|
||||
# File managers
|
||||
ranger
|
||||
lf
|
||||
|
||||
# Terminal
|
||||
kitty
|
||||
alacritty
|
||||
|
||||
# Shell
|
||||
zsh
|
||||
oh-my-zsh
|
||||
|
||||
# Development
|
||||
gcc
|
||||
gnumake
|
||||
cmake
|
||||
|
||||
# Misc utilities
|
||||
ripgrep
|
||||
fd
|
||||
fzf
|
||||
bat
|
||||
eza
|
||||
tldr
|
||||
tree
|
||||
];
|
||||
|
||||
# Enable sound
|
||||
sound.enable = true;
|
||||
hardware.pulseaudio.enable = false;
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
jack.enable = true;
|
||||
};
|
||||
|
||||
# Enable CUPS for printing
|
||||
services.printing.enable = true;
|
||||
|
||||
# Enable OpenGL
|
||||
hardware.opengl = {
|
||||
enable = true;
|
||||
driSupport = true;
|
||||
driSupport32Bit = true;
|
||||
};
|
||||
|
||||
# Enable Bluetooth
|
||||
hardware.bluetooth.enable = true;
|
||||
services.blueman.enable = true;
|
||||
|
||||
# Enable SSH
|
||||
services.openssh.enable = true;
|
||||
|
||||
# Enable ZSH
|
||||
programs.zsh.enable = true;
|
||||
|
||||
# Enable dconf (required for some applications)
|
||||
programs.dconf.enable = true;
|
||||
|
||||
# XDG portals for Wayland
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user