Inital commit for theming

This commit is contained in:
2025-11-20 18:48:39 +01:00
parent 52a9112c48
commit 1544cc30ad
11 changed files with 436 additions and 129 deletions

7
.gitignore vendored
View File

@@ -1,10 +1,3 @@
# Hardware configuration is machine-specific
# Uncomment if you don't want to track it
# hardware-configuration.nix
# Flake lock file - comment out if you want reproducible builds
# flake.lock
# Result symlinks from nix build # Result symlinks from nix build
result result
result-* result-*

View File

@@ -7,20 +7,16 @@
./modules/hyprland.nix ./modules/hyprland.nix
]; ];
# Bootloader - BIOS/Legacy (for Proxmox with legacy BIOS) # Bootloader - BIOS/Legacy (forlegacy BIOS)
boot.loader.grub.enable = true; boot.loader.grub.enable = true;
boot.loader.grub.device = "/dev/sda"; boot.loader.grub.device = "/dev/sda";
# If you're using UEFI instead, comment out above and use:
# boot.loader.systemd-boot.enable = true;
# boot.loader.efi.canTouchEfiVariables = true;
# Networking # Networking
networking.hostName = "myhost"; # Change this to your hostname networking.hostName = "MYHOST";
networking.networkmanager.enable = true; networking.networkmanager.enable = true;
# Time zone # Time zone
time.timeZone = "Europe/Oslo"; # Adjust to your timezone time.timeZone = "Europe/Oslo";
# Locale # Locale
i18n.defaultLocale = "en_US.UTF-8"; i18n.defaultLocale = "en_US.UTF-8";
@@ -42,14 +38,29 @@
# User account # User account
users.users.YOURUSERNAME = { users.users.YOURUSERNAME = {
isNormalUser = true; isNormalUser = true;
description = "Your Name"; description = "Crib";
extraGroups = [ "networkmanager" "wheel" "video" "audio" ]; extraGroups = [ "networkmanager" "wheel" "video" "audio" ];
shell = pkgs.zsh; shell = pkgs.zsh;
}; };
# Auto-login to Hyprland
services.greetd = {
enable = true;
settings = {
default_session = {
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd Hyprland";
user = "YOURUSERNAME";
};
initial_session = {
command = "Hyprland";
user = "YOURUSERNAME";
};
};
};
# Allow unfree packages # Allow unfree packages
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
# System version # System version
system.stateVersion = "24.05"; # Don't change this system.stateVersion = "24.05";
} }

View File

@@ -1,5 +1,5 @@
{ {
description = "NixOS Configuration with Hyprland"; description = "NixOS Configuration with Hyprland - Themed Setup";
inputs = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
@@ -14,8 +14,7 @@
outputs = { self, nixpkgs, home-manager, hyprland, ... }@inputs: { outputs = { self, nixpkgs, home-manager, hyprland, ... }@inputs: {
nixosConfigurations = { nixosConfigurations = {
# Replace 'myhost' with your hostname MYHOST = nixpkgs.lib.nixosSystem {
myhost = nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
specialArgs = { inherit inputs; }; specialArgs = { inherit inputs; };
modules = [ modules = [

View File

@@ -1,6 +1,5 @@
# This is a template hardware configuration file # This file will be generated automatically during installation
# On a fresh install, this will be replaced by the actual hardware configuration # by nixos-generate-config or copied from /etc/nixos/hardware-configuration.nix
# generated by nixos-generate-config or copied from /etc/nixos/hardware-configuration.nix
{ config, lib, pkgs, modulesPath, ... }: { config, lib, pkgs, modulesPath, ... }:
@@ -9,21 +8,19 @@
(modulesPath + "/installer/scan/not-detected.nix") (modulesPath + "/installer/scan/not-detected.nix")
]; ];
# This is a placeholder - it will be replaced during bootstrap
# Your actual hardware configuration will be generated based on your system
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod" ]; boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
# These will be auto-generated
fileSystems."/" = { fileSystems."/" = {
device = "/dev/disk/by-label/nixos"; device = "/dev/sda3";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = { fileSystems."/boot" = {
device = "/dev/disk/by-label/boot"; device = "/dev/sda2";
fsType = "vfat"; fsType = "vfat";
}; };

View File

@@ -1,14 +1,13 @@
{ config, pkgs, inputs, ... }: { config, pkgs, inputs, ... }:
{ {
# Home Manager needs a bit of information about you and the paths it should manage home.username = "YOURUSERNAME";
home.username = "crib"; home.homeDirectory = "/home/YOURUSERNAME";
home.homeDirectory = "/home/crib";
# Packages to install for this user # Packages to install for this user
home.packages = with pkgs; [ home.packages = with pkgs; [
# Browsers # Browsers
firefox chromium
# Communication # Communication
discord discord
@@ -20,26 +19,35 @@
vscode vscode
# Terminal tools # Terminal tools
neofetch fastfetch
# Additional ricing tools # Additional ricing tools
cava # Audio visualizer cava # Audio visualizer
cmatrix # Matrix effect cmatrix # Matrix effect
pipes # Animated pipes pipes # Animated pipes
# Screenshot tools
slurp
grim
# Color tools
python311Packages.pywal
]; ];
# Import Hyprland home config # Import module configs
imports = [ imports = [
./hyprland.nix ./hyprland.nix
./waybar.nix ./waybar.nix
./rofi.nix
./kitty.nix
]; ];
# Git configuration (updated API) # Git configuration
programs.git = { programs.git = {
enable = true; enable = true;
settings = { settings = {
user = { user = {
name = "Your Name"; name = "YOURUSERNAME";
email = "your.email@example.com"; email = "your.email@example.com";
}; };
}; };
@@ -57,31 +65,42 @@
ls = "eza"; ls = "eza";
cat = "bat"; cat = "bat";
vim = "nvim"; vim = "nvim";
update = "sudo nixos-rebuild switch --flake ~/.config/nixos#myhost"; update = "sudo nixos-rebuild switch --flake ~/.config/nixos#cribnix";
rebuild = "sudo nixos-rebuild switch --flake ~/.config/nixos#cribnix";
}; };
oh-my-zsh = { oh-my-zsh = {
enable = true; enable = true;
theme = "robbyrussell"; theme = "robbyrussell";
plugins = [ "git" "sudo" "docker" "kubectl" ]; plugins = [ "git" "sudo" ];
}; };
}; };
# Kitty terminal configuration (updated API) # Starship prompt (vyrx uses this)
programs.kitty = { programs.starship = {
enable = true; enable = true;
themeFile = "tokyo_night_night";
font.name = "JetBrainsMono Nerd Font";
font.size = 12;
settings = { settings = {
background_opacity = "0.9"; add_newline = false;
confirm_os_window_close = 0; format = "$directory$git_branch$git_status$character";
directory = {
truncation_length = 3;
truncate_to_repo = true;
};
character = {
success_symbol = "[](bold green)";
error_symbol = "[](bold red)";
};
git_branch = {
format = "[$symbol$branch]($style) ";
style = "bold purple";
};
}; };
}; };
# This value determines the Home Manager release # Home Manager
home.stateVersion = "24.05"; home.stateVersion = "24.05";
# Let Home Manager install and manage itself
programs.home-manager.enable = true; programs.home-manager.enable = true;
} }

View File

@@ -6,18 +6,36 @@
xwayland.enable = true; xwayland.enable = true;
settings = { settings = {
# Monitor configuration
monitor = ",preferred,auto,1"; monitor = ",preferred,auto,1";
# Startup applications
exec-once = [ exec-once = [
"waybar" "waybar"
"dunst" "swaync"
"swww init"
"nm-applet --indicator"
"blueman-applet"
]; ];
# Environment variables
env = [
"XCURSOR_SIZE,24"
"QT_QPA_PLATFORMTHEME,qt5ct"
];
# Input configuration
input = { input = {
kb_layout = "us"; kb_layout = "us";
follow_mouse = 1; follow_mouse = 1;
sensitivity = 0;
touchpad = {
natural_scroll = true;
};
}; };
# General settings - Nord inspired
general = { general = {
gaps_in = 5; gaps_in = 5;
gaps_out = 10; gaps_out = 10;
@@ -25,28 +43,143 @@
layout = "dwindle"; layout = "dwindle";
}; };
# Decoration - clean minimal look
decoration = { decoration = {
rounding = 10; rounding = 8;
blur = {
enabled = true;
size = 6;
passes = 2;
};
drop_shadow = true;
shadow_range = 20;
shadow_render_power = 3;
}; };
# Animations - smooth like vyrx
animations = {
enabled = true;
bezier = [
"wind, 0.05, 0.9, 0.1, 1.05"
"winIn, 0.1, 1.1, 0.1, 1.1"
"winOut, 0.3, -0.3, 0, 1"
"liner, 1, 1, 1, 1"
];
animation = [
"windows, 1, 6, wind, slide"
"windowsIn, 1, 6, winIn, slide"
"windowsOut, 1, 5, winOut, slide"
"windowsMove, 1, 5, wind, slide"
"border, 1, 1, liner"
"borderangle, 1, 30, liner, loop"
"fade, 1, 10, default"
"workspaces, 1, 5, wind"
];
};
# Layout
dwindle = {
pseudotile = true;
preserve_split = true;
};
master = {
new_is_master = true;
};
# Gestures
gestures = {
workspace_swipe = true;
};
# Misc
misc = {
force_default_wallpaper = 0;
disable_hyprland_logo = true;
disable_splash_rendering = true;
};
# Window rules
windowrulev2 = [
"suppressevent maximize, class:.*"
"float, class:^(pavucontrol)$"
"float, class:^(blueman-manager)$"
"float, class:^(nm-connection-editor)$"
];
# Keybindings
"$mainMod" = "SUPER"; "$mainMod" = "SUPER";
bind = [ bind = [
# Program launches
"$mainMod, Return, exec, kitty" "$mainMod, Return, exec, kitty"
"$mainMod, Q, killactive," "$mainMod, Q, killactive,"
"$mainMod, M, exit," "$mainMod, M, exit,"
"$mainMod, D, exec, wofi --show drun" "$mainMod, E, exec, thunar"
"$mainMod, V, togglefloating,"
"$mainMod, D, exec, rofi -show drun"
"$mainMod, P, pseudo,"
"$mainMod, J, togglesplit,"
"$mainMod, F, fullscreen," "$mainMod, F, fullscreen,"
# Screenshot
"$mainMod SHIFT, S, exec, grim -g \"$(slurp)\" - | wl-copy"
", Print, exec, grim -g \"$(slurp)\" ~/Pictures/screenshot_$(date +%Y%m%d_%H%M%S).png"
# Move focus
"$mainMod, left, movefocus, l"
"$mainMod, right, movefocus, r"
"$mainMod, up, movefocus, u"
"$mainMod, down, movefocus, d"
# Switch workspaces
"$mainMod, 1, workspace, 1" "$mainMod, 1, workspace, 1"
"$mainMod, 2, workspace, 2" "$mainMod, 2, workspace, 2"
"$mainMod, 3, workspace, 3" "$mainMod, 3, workspace, 3"
"$mainMod, 4, workspace, 4" "$mainMod, 4, workspace, 4"
"$mainMod, 5, workspace, 5"
"$mainMod, 6, workspace, 6"
"$mainMod, 7, workspace, 7"
"$mainMod, 8, workspace, 8"
"$mainMod, 9, workspace, 9"
"$mainMod, 0, workspace, 10"
# Move active window to workspace
"$mainMod SHIFT, 1, movetoworkspace, 1"
"$mainMod SHIFT, 2, movetoworkspace, 2"
"$mainMod SHIFT, 3, movetoworkspace, 3"
"$mainMod SHIFT, 4, movetoworkspace, 4"
"$mainMod SHIFT, 5, movetoworkspace, 5"
"$mainMod SHIFT, 6, movetoworkspace, 6"
"$mainMod SHIFT, 7, movetoworkspace, 7"
"$mainMod SHIFT, 8, movetoworkspace, 8"
"$mainMod SHIFT, 9, movetoworkspace, 9"
"$mainMod SHIFT, 0, movetoworkspace, 10"
# Scroll through workspaces
"$mainMod, mouse_down, workspace, e+1"
"$mainMod, mouse_up, workspace, e-1"
]; ];
# Mouse bindings
bindm = [ bindm = [
"$mainMod, mouse:272, movewindow" "$mainMod, mouse:272, movewindow"
"$mainMod, mouse:273, resizewindow" "$mainMod, mouse:273, resizewindow"
]; ];
# Volume and brightness keys
bindel = [
", XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
", XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
", XF86MonBrightnessUp, exec, brightnessctl s 10%+"
", XF86MonBrightnessDown, exec, brightnessctl s 10%-"
];
}; };
}; };
} }

73
home/kitty.nix Normal file
View File

@@ -0,0 +1,73 @@
{ config, pkgs, ... }:
{
programs.kitty = {
enable = true;
font = {
name = "JetBrainsMono Nerd Font";
size = 12;
};
settings = {
# Nord theme colors
background = "#2e3440";
foreground = "#d8dee9";
# Cursor
cursor = "#d8dee9";
cursor_text_color = "#2e3440";
# Selection
selection_background = "#4c566a";
selection_foreground = "#eceff4";
# Black
color0 = "#3b4252";
color8 = "#4c566a";
# Red
color1 = "#bf616a";
color9 = "#bf616a";
# Green
color2 = "#a3be8c";
color10 = "#a3be8c";
# Yellow
color3 = "#ebcb8b";
color11 = "#ebcb8b";
# Blue
color4 = "#81a1c1";
color12 = "#81a1c1";
# Magenta
color5 = "#b48ead";
color13 = "#b48ead";
# Cyan
color6 = "#88c0d0";
color14 = "#8fbcbb";
# White
color7 = "#e5e9f0";
color15 = "#eceff4";
# Window
background_opacity = "0.95";
window_padding_width = 8;
# Misc
confirm_os_window_close = 0;
enable_audio_bell = false;
# Tab bar
tab_bar_style = "powerline";
tab_powerline_style = "slanted";
active_tab_foreground = "#2e3440";
active_tab_background = "#88c0d0";
inactive_tab_foreground = "#d8dee9";
inactive_tab_background = "#3b4252";
};
};
}

91
home/rofi.nix Normal file
View File

@@ -0,0 +1,91 @@
{ config, pkgs, ... }:
{
programs.rofi = {
enable = true;
package = pkgs.rofi-wayland;
theme = let
inherit (config.lib.formats.rasi) mkLiteral;
in {
"*" = {
bg = mkLiteral "#2e3440";
bg-alt = mkLiteral "#3b4252";
fg = mkLiteral "#eceff4";
fg-alt = mkLiteral "#d8dee9";
accent = mkLiteral "#88c0d0";
urgent = mkLiteral "#bf616a";
background-color = mkLiteral "transparent";
text-color = mkLiteral "@fg";
margin = 0;
padding = 0;
spacing = 0;
};
"window" = {
location = mkLiteral "center";
width = 600;
background-color = mkLiteral "@bg";
border = mkLiteral "2px";
border-color = mkLiteral "@accent";
border-radius = mkLiteral "12px";
};
"inputbar" = {
padding = mkLiteral "12px";
spacing = mkLiteral "12px";
children = mkLiteral "[prompt, entry]";
background-color = mkLiteral "@bg-alt";
};
"prompt, entry, element-text, element-icon" = {
vertical-align = mkLiteral "0.5";
};
"prompt" = {
text-color = mkLiteral "@accent";
};
"listview" = {
lines = 8;
columns = 1;
padding = mkLiteral "8px 0";
background-color = mkLiteral "@bg";
};
"element" = {
padding = mkLiteral "8px 12px";
spacing = mkLiteral "8px";
background-color = mkLiteral "transparent";
};
"element normal.normal" = {
text-color = mkLiteral "@fg";
};
"element selected.normal" = {
background-color = mkLiteral "@bg-alt";
text-color = mkLiteral "@accent";
};
"element-icon" = {
size = mkLiteral "1em";
};
"element-text" = {
text-color = mkLiteral "inherit";
};
};
extraConfig = {
modi = "drun,run";
show-icons = true;
drun-display-format = "{name}";
disable-history = false;
sidebar-mode = false;
};
};
}

View File

@@ -8,7 +8,8 @@
mainBar = { mainBar = {
layer = "top"; layer = "top";
position = "top"; position = "top";
height = 30; height = 34;
spacing = 8;
modules-left = [ "hyprland/workspaces" "hyprland/window" ]; modules-left = [ "hyprland/workspaces" "hyprland/window" ];
modules-center = [ "clock" ]; modules-center = [ "clock" ];
@@ -18,53 +19,37 @@
format = "{icon}"; format = "{icon}";
on-click = "activate"; on-click = "activate";
format-icons = { format-icons = {
"1" = "󰲠"; "1" = "";
"2" = "󰲢"; "2" = "";
"3" = "󰲤"; "3" = "";
"4" = "󰲦"; "4" = "";
"5" = "󰲨"; "5" = "";
"6" = "󰲪"; "6" = "";
"7" = "󰲬"; "7" = "";
"8" = "󰲮"; "8" = "";
"9" = "󰲰"; "9" = "";
"10" = "󰿬"; "10" = "";
active = "";
default = "";
}; };
}; };
"hyprland/window" = { "hyprland/window" = {
format = "{}"; format = "{}";
separate-outputs = true; separate-outputs = true;
max-length = 50;
}; };
clock = { clock = {
format = "󰃰 {:%H:%M}"; format = "{:%H:%M}";
format-alt = "󰃰 {:%A, %B %d, %Y (%R)}"; format-alt = "{:%A, %B %d, %Y}";
tooltip-format = "<tt><small>{calendar}</small></tt>"; tooltip-format = "<tt><small>{calendar}</small></tt>";
calendar = {
mode = "year";
mode-mon-col = 3;
weeks-pos = "right";
on-scroll = 1;
format = {
months = "<span color='#ffead3'><b>{}</b></span>";
days = "<span color='#ecc6d9'><b>{}</b></span>";
weeks = "<span color='#99ffdd'><b>W{}</b></span>";
weekdays = "<span color='#ffcc66'><b>{}</b></span>";
today = "<span color='#ff6699'><b><u>{}</u></b></span>";
};
};
}; };
pulseaudio = { pulseaudio = {
format = "{icon} {volume}%"; format = "{icon} {volume}%";
format-muted = "󰝟 Muted"; format-muted = "󰝟";
format-icons = { format-icons = {
headphone = "";
hands-free = "";
headset = "";
phone = "";
portable = "";
car = "";
default = [ "" "" "" ]; default = [ "" "" "" ];
}; };
on-click = "pavucontrol"; on-click = "pavucontrol";
@@ -72,10 +57,9 @@
network = { network = {
format-wifi = " {essid}"; format-wifi = " {essid}";
format-ethernet = "󰈀 Wired"; format-ethernet = "󰈀";
format-disconnected = "󰤭 Disconnected"; format-disconnected = "󰤭";
tooltip-format = "{ifname} via {gwaddr}"; tooltip-format = "{ifname}: {ipaddr}";
tooltip-format-wifi = "{essid} ({signalStrength}%)";
on-click = "nm-connection-editor"; on-click = "nm-connection-editor";
}; };
@@ -86,7 +70,6 @@
memory = { memory = {
format = " {}%"; format = " {}%";
tooltip-format = "RAM: {used:0.1f}G / {total:0.1f}G";
}; };
battery = { battery = {
@@ -97,11 +80,10 @@
format = "{icon} {capacity}%"; format = "{icon} {capacity}%";
format-charging = "󰂄 {capacity}%"; format-charging = "󰂄 {capacity}%";
format-plugged = " {capacity}%"; format-plugged = " {capacity}%";
format-icons = [ "󰂎" "󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹" ]; format-icons = [ "󰂎" "󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" ];
}; };
tray = { tray = {
icon-size = 18;
spacing = 10; spacing = 10;
}; };
}; };
@@ -109,37 +91,42 @@
style = '' style = ''
* { * {
border: none;
border-radius: 0;
font-family: "JetBrainsMono Nerd Font"; font-family: "JetBrainsMono Nerd Font";
font-size: 13px; font-size: 13px;
min-height: 0; min-height: 0;
border: none;
border-radius: 0;
} }
window#waybar { window#waybar {
background: rgba(30, 30, 46, 0.9); background: rgba(46, 52, 64, 0.95);
color: #cdd6f4; color: #eceff4;
}
#workspaces {
margin: 0 4px;
} }
#workspaces button { #workspaces button {
padding: 0 10px; padding: 0 12px;
color: #cdd6f4; color: #d8dee9;
background: transparent; background: transparent;
border-bottom: 3px solid transparent; border-bottom: 3px solid transparent;
} }
#workspaces button.active { #workspaces button.active {
color: #89b4fa; color: #88c0d0;
border-bottom: 3px solid #89b4fa; border-bottom: 3px solid #88c0d0;
} }
#workspaces button:hover { #workspaces button:hover {
background: rgba(137, 180, 250, 0.2); background: rgba(136, 192, 208, 0.1);
} }
#window { #window {
margin: 0 10px; margin: 0 8px;
color: #cdd6f4; color: #d8dee9;
font-weight: normal;
} }
#clock, #clock,
@@ -147,28 +134,32 @@
#cpu, #cpu,
#memory, #memory,
#network, #network,
#pulseaudio, #pulseaudio {
#tray { padding: 0 12px;
padding: 0 10px; margin: 4px 2px;
margin: 0 2px; background: rgba(59, 66, 82, 0.8);
background: rgba(49, 50, 68, 0.8); border-radius: 8px;
border-radius: 5px; color: #eceff4;
} }
#battery.charging { #battery.charging {
color: #a6e3a1; color: #a3be8c;
} }
#battery.warning:not(.charging) { #battery.warning:not(.charging) {
color: #f9e2af; color: #ebcb8b;
} }
#battery.critical:not(.charging) { #battery.critical:not(.charging) {
color: #f38ba8; color: #bf616a;
} }
#pulseaudio.muted { #pulseaudio.muted {
color: #f38ba8; color: #bf616a;
}
#tray {
padding: 0 8px;
} }
''; '';
}; };

View File

@@ -10,7 +10,7 @@
xwayland.enable = true; xwayland.enable = true;
}; };
# Hyprland-related packages # Hyprland-related packages (using Rofi instead of Wofi)
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
# Core Hyprland tools # Core Hyprland tools
hyprpaper # Wallpaper utility hyprpaper # Wallpaper utility
@@ -18,11 +18,12 @@
hypridle # Idle daemon hypridle # Idle daemon
hyprlock # Screen locker hyprlock # Screen locker
# Wayland essentials # Wayland essentials
waybar # Status bar waybar # Status bar
wofi # Application launcher rofi-wayland # Application launcher (vyrx uses Rofi)
dunst # Notification daemon dunst # Notification daemon
swww # Wallpaper daemon (alternative to hyprpaper) swww # Wallpaper daemon
swaync # Notification center (vyrx uses this)
# Screenshot and recording # Screenshot and recording
grim # Screenshot tool grim # Screenshot tool
@@ -47,18 +48,12 @@
# Brightness control # Brightness control
brightnessctl brightnessctl
# Additional tools for ricing # Additional tools for theming
jq # JSON processor (for scripts)
socat # Socket tools
wlogout # Logout menu
nwg-look # GTK theme config
libsForQt5.qt5ct # Qt5 config libsForQt5.qt5ct # Qt5 config
kdePackages.qt6ct # Qt6 config kdePackages.qt6ct # Qt6 config
nwg-look # GTK theme config
]; ];
# XDG Desktop Portal is configured by Hyprland module
# No need to configure it again here
# Security - for screen locking # Security - for screen locking
security.pam.services.hyprlock = {}; security.pam.services.hyprlock = {};
@@ -70,6 +65,6 @@
font-awesome font-awesome
nerd-fonts.jetbrains-mono nerd-fonts.jetbrains-mono
nerd-fonts.fira-code nerd-fonts.fira-code
nerd-fonts.droid-sans-mono nerd-fonts.iosevka
]; ];
} }

View File

@@ -23,7 +23,7 @@
ranger ranger
lf lf
# Terminal # Terminals
kitty kitty
alacritty alacritty
@@ -44,9 +44,14 @@
eza eza
tldr tldr
tree tree
jq
# Theme tools
imagemagick
pywal
]; ];
# Enable sound with PipeWire (removed deprecated sound.enable) # Enable sound with PipeWire
services.pulseaudio.enable = false; services.pulseaudio.enable = false;
security.rtkit.enable = true; security.rtkit.enable = true;
services.pipewire = { services.pipewire = {
@@ -60,7 +65,7 @@
# Enable CUPS for printing # Enable CUPS for printing
services.printing.enable = true; services.printing.enable = true;
# Enable graphics (updated from hardware.opengl) # Enable graphics
hardware.graphics = { hardware.graphics = {
enable = true; enable = true;
enable32Bit = true; enable32Bit = true;
@@ -76,7 +81,7 @@
# Enable ZSH # Enable ZSH
programs.zsh.enable = true; programs.zsh.enable = true;
# Enable dconf (required for some applications) # Enable dconf
programs.dconf.enable = true; programs.dconf.enable = true;
# XDG portals for Wayland # XDG portals for Wayland