Inital commit for theming
This commit is contained in:
7
.gitignore
vendored
7
.gitignore
vendored
@@ -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-*
|
||||||
|
|||||||
@@ -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";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 = [
|
||||||
|
|||||||
@@ -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";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
73
home/kitty.nix
Normal 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
91
home/rofi.nix
Normal 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;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
113
home/waybar.nix
113
home/waybar.nix
@@ -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;
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -20,9 +20,10 @@
|
|||||||
|
|
||||||
# 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
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user