so many new stuff (nix and hyprland)

This commit is contained in:
Cy Pokhrel 2024-11-22 00:58:04 -05:00
parent fc59006538
commit 2a4567daa3
No known key found for this signature in database
GPG key ID: 1200FBE36C2ADE2E
14 changed files with 816 additions and 130 deletions

View file

@ -16,6 +16,7 @@
~/.config/waybar:
~/.config/i3status-rust:
~/.config/rofi:
~/.config/hypr:
~/.zshrc:
~/.p10k.zsh:

188
configuration.nix Normal file
View file

@ -0,0 +1,188 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page, on
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
{ config, lib, pkgs, ... }:
{
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
];
# Use the systemd-boot EFI boot loader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
networking.hostName = "ytnix"; # Define your hostname.
# Pick only one of the below networking options.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
networking.wireless.iwd = {
enable = true;
settings = {
Rank = {
BandModifier2_4GHz = 0.0;
};
};
};
networking.networkmanager.wifi.backend = "iwd";
# Set your time zone.
time.timeZone = "America/Toronto";
# Configure network proxy if necessary
# networking.proxy.default = "http://user:password@proxy:port/";
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
# Select internationalisation properties.
# i18n.defaultLocale = "en_US.UTF-8";
# console = {
# font = "Lat2-Terminus16";
# keyMap = "us";
# useXkbConfig = true; # use xkb.options in tty.
# };
# Enable the X11 windowing system.
#services.xserver.enable = true;
# Configure keymap in X11
# services.xserver.xkb.layout = "us";
# services.xserver.xkb.options = "eurosign:e,caps:escape";
# Enable CUPS to print documents.
# services.printing.enable = true;
# Enable sound.
# hardware.pulseaudio.enable = true;
# OR
services.pipewire = {
enable = true;
pulse.enable = true;
};
# Enable touchpad support (enabled default in most desktopManager).
services.libinput.enable = true;
# Define a user account. Don't forget to set a password with ‘passwd’.
users.users.yt = {
isNormalUser = true;
extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
shell = pkgs.zsh;
packages = with pkgs; [
firefox
ungoogled-chromium
librewolf
bitwarden-desktop
bitwarden-cli
aerc
delta
fzf
zoxide
eza
];
};
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
tmux
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
wget
neovim
git
python3
grim
slurp
wl-clipboard
mako
tree
kitty
rofi-wayland
rofimoji
cliphist
borgbackup
jq
brightnessctl
alsa-utils
nixd
veracrypt
kdePackages.dolphin
bluetuith
libimobiledevice
];
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
# programs.gnupg.agent = {
# enable = true;
# enableSSHSupport = true;
# };
# List services that you want to enable:
# Enable the OpenSSH daemon.
# services.openssh.enable = true;
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;
# Copy the NixOS configuration file and link it from the resulting system
# (/run/current-system/configuration.nix). This is useful in case you
# accidentally delete configuration.nix.
# system.copySystemConfiguration = true;
# This option defines the first version of NixOS you have installed on this particular machine,
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
#
# Most users should NEVER change this value after the initial install, for any reason,
# even if you've upgraded your system to a new NixOS release.
#
# This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
# so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how
# to actually do that.
#
# This value being lower than the current NixOS release does NOT mean your system is
# out of date, out of support, or vulnerable.
#
# Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
# and migrated your data accordingly.
#
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
system.stateVersion = "24.05"; # Did you read the comment?
services.gnome.gnome-keyring.enable = true;
programs.sway = {
enable = true;
wrapperFeatures.gtk = true;
};
services.displayManager.defaultSession = "sway";
services.displayManager.sddm = {
enable = true;
wayland.enable = true;
};
programs.waybar.enable = true;
programs.zsh.enable = true;
security.sudo.wheelNeedsPassword = false;
fonts.packages = with pkgs; [
nerdfonts
];
nixpkgs.config.allowUnfree = true;
hardware.bluetooth = {
enable = true;
powerOnBoot = true;
};
services.blueman.enable = true;
nix.settings.experimental-features = [ "nix-command" "flakes" ];
}

19
flake.nix Normal file
View file

@ -0,0 +1,19 @@
{
description = "A very basic flake";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
};
outputs = { self, nixpkgs }:
let
lib = nixpkgs.lib;
in {
nixosConfigurations = {
ytnix = lib.nixosSystem {
system = "x86_64-linux";
modules = [ ./configuration.nix ];
};
};
};
}

View file

@ -0,0 +1,54 @@
# Do not modify this file! It was generated by ‘nixos-generate-config’
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/17870658-6118-46af-837f-70c9175e09c3";
fsType = "btrfs";
options = [ "subvol=root" ];
};
boot.initrd.luks.devices."cryptroot".device = "/dev/disk/by-uuid/c6098a16-c8a6-4a97-8648-6f46ca919d13";
fileSystems."/home" =
{ device = "/dev/disk/by-uuid/17870658-6118-46af-837f-70c9175e09c3";
fsType = "btrfs";
options = [ "subvol=home" ];
};
fileSystems."/nix" =
{ device = "/dev/disk/by-uuid/17870658-6118-46af-837f-70c9175e09c3";
fsType = "btrfs";
options = [ "subvol=nix" ];
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/29B7-F46D";
fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
};
swapDevices = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp1s0.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp2s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

209
hypr/hyprland.conf Normal file
View file

@ -0,0 +1,209 @@
monitor=,preferred,auto,1
$terminal = kitty
$fileManager = dolphin
$menu = rofi -show drun
exec-once = nm-applet &
exec-once = waybar &
exec-once = mako &
env = XCURSOR_SIZE,24
env = HYPRCURSOR_SIZE,24
general {
gaps_in = 5
gaps_out = 5
border_size = 2
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
col.inactive_border = rgba(595959aa)
resize_on_border = false
allow_tearing = false
layout = master
}
decoration {
rounding = 5
active_opacity = 1.0
inactive_opacity = 1.0
shadow {
enabled = true
range = 4
render_power = 3
color = rgba(1a1a1aee)
}
blur {
enabled = true
size = 3
passes = 1
vibrancy = 0.1696
}
}
animations {
enabled = yes, please :)
bezier = easeOutQuint,0.23,1,0.32,1
bezier = easeInOutCubic,0.65,0.05,0.36,1
bezier = linear,0,0,1,1
bezier = almostLinear,0.5,0.5,0.75,1.0
bezier = quick,0.15,0,0.1,1
animation = global, 1, 10, default
animation = border, 1, 5.39, easeOutQuint
animation = windows, 1, 4.79, easeOutQuint
animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
animation = windowsOut, 1, 1.49, linear, popin 87%
animation = fadeIn, 1, 1.73, almostLinear
animation = fadeOut, 1, 1.46, almostLinear
animation = fade, 1, 3.03, quick
animation = layers, 1, 3.81, easeOutQuint
animation = layersIn, 1, 4, easeOutQuint, fade
animation = layersOut, 1, 1.5, linear, fade
animation = fadeLayersIn, 1, 1.79, almostLinear
animation = fadeLayersOut, 1, 1.39, almostLinear
animation = workspaces, 1, 1.94, almostLinear, fade
animation = workspacesIn, 1, 1.21, almostLinear, fade
animation = workspacesOut, 1, 1.94, almostLinear, fade
}
# Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/
# "Smart gaps" / "No gaps when only"
# uncomment all if you wish to use that.
# workspace = w[tv1], gapsout:0, gapsin:0
# workspace = f[1], gapsout:0, gapsin:0
# windowrulev2 = bordersize 0, floating:0, onworkspace:w[tv1]
# windowrulev2 = rounding 0, floating:0, onworkspace:w[tv1]
# windowrulev2 = bordersize 0, floating:0, onworkspace:f[1]
# windowrulev2 = rounding 0, floating:0, onworkspace:f[1]
dwindle {
pseudotile = true
preserve_split = true
}
master {
new_status = slave
mfact = 0.5
}
misc {
force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :(
}
input {
kb_layout = us
kb_variant =
kb_model =
kb_options = ctrl:nocaps
kb_rules =
numlock_by_default = true
follow_mouse = 1
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
touchpad {
natural_scroll = true
}
}
gestures {
workspace_swipe = false
}
###################
### KEYBINDINGS ###
###################
$mainMod = SUPER
$shiftMod = SUPER_SHIFT
$altMod = SUPER_ALT
$ctrlMod = SUPER_CTRL
bind = $mainMod, return, exec, $terminal
bind = $ctrlMod, Q, killactive,
bind = $shiftMod, E, exit,
bind = $mainMod, space, togglefloating,
bind = $mainMod, D, exec, $menu
bind = $mainMod, E, layoutmsg, swapwithmaster master
# apps
bind = $altMod, F, exec, $fileManager
bind = $altMod, B, exec, librewolf
bind = $mainMod, P, exec, bitwarden
# Move focus with mainMod + arrow keys
bind = $mainMod, H, movefocus, l
bind = $mainMod, L, movefocus, r
bind = $mainMod, K, movefocus, u
bind = $mainMod, J, movefocus, d
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10
# Example special workspace (scratchpad)
bind = $mainMod, S, togglespecialworkspace, magic
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
# Laptop multimedia keys for volume and LCD brightness
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 1%+
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 1%-
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 1%+
bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 1%-
##############################
### WINDOWS AND WORKSPACES ###
##############################
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
# Example windowrule v1
# windowrule = float, ^(kitty)$
# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
# Ignore maximize requests from apps. You'll probably like this.
windowrulev2 = suppressevent maximize, class:.*
# Fix some dragging issues with XWayland
windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
workspace = 2, on-created-empty:librewolf

View file

@ -1,5 +1,5 @@
font_family Spleen 16x32
font_size 14
font_family RobotoMono Nerd Font
font_size 13
enable_audio_bell no
kitty_mod ctrl+shift

117
nix/configuration.nix Normal file
View file

@ -0,0 +1,117 @@
{ config, lib, pkgs, ... }:
{
imports =
[
./hardware-configuration.nix
];
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
networking.hostName = "ytnix";
networking.networkmanager.enable = true;
# disable 2.4 GHz cause i have a shitty wireless card
# that interferes with bluetooth otherwise
networking.wireless.iwd = {
enable = true;
settings = {
Rank = {
BandModifier2_4GHz = 0.0;
};
};
};
networking.networkmanager.wifi.backend = "iwd";
time.timeZone = "America/Toronto";
services.pipewire = {
enable = true;
pulse.enable = true;
};
services.libinput.enable = true;
users.users.yt = {
isNormalUser = true;
extraGroups = [ "wheel" ];
shell = pkgs.zsh;
packages = with pkgs; [
firefox
ungoogled-chromium
librewolf
bitwarden-desktop
bitwarden-cli
aerc
delta
fzf
zoxide
eza
fastfetch
];
};
environment.systemPackages = with pkgs; [
tmux
vim
wget
neovim
git
python3
grim
slurp
wl-clipboard
mako
tree
kitty
rofi-wayland
rofimoji
cliphist
borgbackup
jq
brightnessctl
alsa-utils
nixd
veracrypt
kdePackages.dolphin
bluetuith
libimobiledevice
networkmanagerapplet
];
system.stateVersion = "24.05";
services.gnome.gnome-keyring.enable = true;
programs.gnupg.agent.enable = true;
# programs.sway = {
# enable = true;
# wrapperFeatures.gtk = true;
# };
services.displayManager.defaultSession = "hyprland";
services.displayManager.sddm = {
enable = true;
wayland.enable = true;
};
programs.waybar.enable = true;
programs.zsh.enable = true;
security.sudo.wheelNeedsPassword = false;
fonts.packages = with pkgs; [
nerdfonts
];
nixpkgs.config.allowUnfree = true;
hardware.bluetooth = {
enable = true;
powerOnBoot = true;
};
services.blueman.enable = true;
nix.settings.experimental-features = [ "nix-command" "flakes" ];
programs.hyprland = {
enable = true;
# withUWSM = true;
};
}

27
nix/flake.lock generated Normal file
View file

@ -0,0 +1,27 @@
{
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1732014248,
"narHash": "sha256-y/MEyuJ5oBWrWAic/14LaIr/u5E0wRVzyYsouYY3W6w=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "23e89b7da85c3640bbc2173fe04f4bd114342367",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}

19
nix/flake.nix Normal file
View file

@ -0,0 +1,19 @@
{
description = "A very basic flake";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
};
outputs = { self, nixpkgs }:
let
lib = nixpkgs.lib;
in {
nixosConfigurations = {
ytnix = lib.nixosSystem {
system = "x86_64-linux";
modules = [ ./configuration.nix ];
};
};
};
}

View file

@ -0,0 +1,54 @@
# Do not modify this file! It was generated by ‘nixos-generate-config’
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/17870658-6118-46af-837f-70c9175e09c3";
fsType = "btrfs";
options = [ "subvol=root" ];
};
boot.initrd.luks.devices."cryptroot".device = "/dev/disk/by-uuid/c6098a16-c8a6-4a97-8648-6f46ca919d13";
fileSystems."/home" =
{ device = "/dev/disk/by-uuid/17870658-6118-46af-837f-70c9175e09c3";
fsType = "btrfs";
options = [ "subvol=home" ];
};
fileSystems."/nix" =
{ device = "/dev/disk/by-uuid/17870658-6118-46af-837f-70c9175e09c3";
fsType = "btrfs";
options = [ "subvol=nix" ];
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/29B7-F46D";
fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
};
swapDevices = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp1s0.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp2s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View file

@ -155,4 +155,4 @@ configuration {
}
}
@theme "/usr/share/rofi/themes/gruvbox-dark.rasi"
@theme "/nix/store/nkjjc70cidfc3wbpas7kqr7agasma59c-rofi-1.7.5+wayland3/share/rofi/themes/gruvbox-dark.rasi"

View file

@ -18,7 +18,7 @@ set $bg #000000
set $fg #ffffff
set $fgi #888888
set $wallpaper $HOME/wallpapers/nasamute.png
set $wallpaper $HOME/wallpapers/animegirl.jpg
set $lock swaylock -f -i $wallpaper
output * bg $wallpaper fill
@ -28,7 +28,7 @@ smart_borders on
focus_follows_mouse yes
bindsym $mod+Return exec $term
bindsym $mod+q kill
bindsym $mod+Ctrl+q kill
bindsym $mod+d exec $menu
bindsym $mod+Shift+c reload
bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit'
@ -42,7 +42,7 @@ bindsym $mod+$alt+f exec dolphin
bindsym $mod+$alt+p exec pomatez
bindsym $mod+$alt+e exec evolution
bindsym $mod+$alt+c exec korganizer
bindsym $mod+p exec bitwarden-desktop
bindsym $mod+p exec bitwarden
bindsym $mod+$left focus left
bindsym $mod+$down focus down

View file

@ -1,55 +1,85 @@
{
"modules-left": ["sway/workspaces", "sway/window", "sway/mode"],
"modules-right": ["tray", "pulseaudio", "backlight", "network", "battery", "clock"],
"clock": {
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
"format": "{:%b %d(%H:%M) 󰃰}"
"layer": "top", // Waybar on highest layer so tooltips go over windows
"output": "eDP-1", // Set output to primary monitor
"height": 40, // Set height to avoid jumping due to active workspace indicator
"margin-left": 4,
"margin-right": 4,
"margin-top": 4,
"modules-left": ["hyprland/workspaces", "clock#time", "clock#date", "battery"], // Sets modules for the left of the bar
"modules-center": ["hyprland/window"], // Set modules for the center of the bar
"modules-right": ["tray", "temperature", "cpu", "memory", "wireplumber"], // Set modules for the right of the bar
"clock#time": {
"format": "<span color=\"#7aa2f7\"> </span>{:%H:%M:%S}",
"interval": 1,
},
"backlight": {
"format": "{percent}% {icon}",
"format-icons": ["", "", "", "", "", "", "", "", ""]
"clock#date": {
"format": "<span color=\"#7aa2f7\"> </span>{:%d/%m/%Y}",
"tooltip-format": "<tt>{calendar}</tt>",
"interval": 360,
"calendar": {
"mode": "month",
"mode-mon-col": 4,
"weeks-pos": "right",
"on-scroll": 1,
"on-click-right": "mode",
"format": {
"months": "<span color='#c0caf5'><b>{}</b></span>",
"days": "<span color='#c0caf5'><b>{}</b></span>",
"weeks": "<span color='#7dcfff'><b>W{}</b></span>",
"weekdays": "<span color='#ff9e64'><b>{}</b></span>",
"today": "<span color='#f7768e'><b><u>{}</u></b></span>",
},
},
},
"battery": {
"interval": 60,
"states": {
"warning": 30,
"critical": 15
"warning": 40,
"critical": 20,
},
"format": "{capacity}% {icon}",
"format-charging": "{capacity}% 󰢝",
"format-plugged": "{capacity}% ",
"format-alt": "{time} {icon}",
"format-icons": ["", "", "", "", ""]
"format": "{icon} {capacity}%",
"format-icons": [
"<span color=\"#f7768e\"> </span>",
"<span color=\"#f7768e\"> </span>",
"<span color=\"#7aa2f7\"> </span>",
"<span color=\"#7aa2f7\"> </span>",
"<span color=\"#7aa2f7\"> </span>",
],
"format-charging": "<span color=\"#e0af68\">󱐌</span> {capacity}%",
},
"pulseaudio": {
"format": "{volume}% {icon} {format_source}",
"format-bluetooth": "{volume}% {icon} {format_source}",
"format-bluetooth-muted": "󰝟 {icon} {format_source}",
"format-muted": "󰝟 {format_source}",
"format-source": "{volume}% ",
"format-source-muted": "",
"format-icons": {
"headphone": "",
"hands-free": "󱠰",
"headset": "󰋎",
"phone": "",
"portable": "",
"car": "",
"default": ["", "", ""]
},
"on-click": "pavucontrol"
"cpu": {
"format": "<span color=\"#7aa2f7\"> </span>{usage}%",
"interval": 4,
},
"network": {
"format": "{ifname}",
"format-wifi": "Connected ",
"format-ethernet": "{ipaddr}/{cidr} 󰈀",
"format-disconnected": "Disconnected 󱛅", //An empty format will hide the module.
"tooltip-format": "{ifname} via {gwaddr} 󰛳",
"tooltip-format-wifi": "{essid} ({signalStrength}%) ",
"tooltip-format-ethernet": "{ifname} ",
"tooltip-format-disconnected": "Disconnected",
"max-length": 50
"memory": {
"format": "<span color=\"#7aa2f7\"> </span>{used}GiB",
"interval": 4,
},
"temperature": {
"hwmon-path": "/sys/class/hwmon/hwmon6/temp1_input",
"critical-threshold": 80,
"format": "<span color=\"#7aa2f7\"> </span>{temperatureC}°C",
"format-critical": "<span color=\"#f7768e\"> </span>{temperatureC}°C",
"interval": 4,
},
"wireplumber": {
"scroll-step": 1, // %, can be a float
"format": "<span color=\"#7aa2f7\">{icon} </span>{volume}%",
"format-muted": "<span color=\"#f7768e\">󰝟 </span>Muted",
"format-icons": ["", "", ""],
"on-click": "pavucontrol",
"interval": 4,
},
"hyprland/window": {
"max-length": 64,
},
"tray": {
"spacing": 10
"icon-size": 22,
"spacing": 6,
},
"hyprland/workspaces": {
"disable-scroll": true,
"on-click": "activate",
}
}

View file

@ -1,102 +1,70 @@
* {
border: none;
border-radius: 0;
font-family: RobotoMono Nerd Font;
font-size: 14px;
font-weight: 500;
.module,
#clock.date,
#clock.time,
#workspaces button {
background: transparent;
padding: 0 10px;
font-family: SpaceMono Nerd Font;
font-weight: 900;
font-size: 13pt;
color: #c0caf5;
}
/* main waybar */
window#waybar {
background-color: #282828;
color: #ebdbb2;
transition-property: background-color;
transition-duration: 0.5s;
border-bottom: solid 0px #3c3836;
background: rgba(26, 27, 38, 0.75);
border: 2px solid #414868;
}
window#waybar.hidden {
opacity: 0.2;
/* when hovering over modules */
tooltip {
background: #1e1e2e;
border-radius: 0;
}
#workspaces {
padding-right: 0;
}
#workspaces button {
padding: 0 5px;
color: #ebdbb2;
border-radius: 5px;
padding: 2px;
}
#clock {
padding-right: 100px;
}
/* Sets active workspace to have a solid line on the bottom */
#workspaces button.active {
border-bottom: 2px solid #7aa2f7;
border-radius: 0;
margin-top: 2px;
transition: none;
}
/* More workspace stuff for highlighting on hover */
#workspaces button.focused {
background-color: #ebdbb2;
color: #282828;
border-bottom: none;
color: #a6adc8;
}
#workspaces button.urgent {
background-color: #cc241d;
color: #f7768e;
}
widget > * {
margin-top: 6px;
margin-bottom: 6px;
#workspaces button:hover {
background: #11111b;
color: #cdd6f4;
}
.modules-left > widget > * {
margin-left: 12px;
margin-right: 12px;
/* Hide window module when not focused on window or empty workspace */
window#waybar.empty #window {
padding: 0;
margin: 0;
opacity: 0;
}
.modules-left > widget:first-child > * {
margin-left: 6px;
}
.modules-left > widget:last-child > * {
margin-right: 18px;
}
.modules-right > widget > * {
padding: 0 12px;
margin-left: 0;
margin-right: 0;
color: #282828;
background-color: #ebdbb2;
}
.modules-right > widget:first-child > * {
border-radius: 5px 0 0 5px;
}
.modules-right > widget:last-child > * {
border-radius: 0 5px 5px 0;
margin-right: 6px;
}
#mode {
background: transparent;
color: #fb4934;
}
@keyframes blink {
to {
color: #ebdbb2;
}
}
#battery.critical:not(.charging) {
animation-name: blink;
animation-duration: 1s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
label:focus {
background-color: #282828;
}
tooltip {
border-radius: 5px;
background: #504945;
}
tooltip label {
color: #ebdbb2;
/* Set up rounding to make these modules look like separate pills */
#tray {
margin-right: 4px;
}