980 lines
24 KiB
Nix
980 lines
24 KiB
Nix
# Edit this configuration file to define what should be installed on
|
||
# your system. Help is available in the configuration.nix(5) man page
|
||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||
|
||
{ config, pkgs, ... }:
|
||
let
|
||
CORNER_RADIUS = "10";
|
||
WAYBAR_MODULES_CORNER_RADIUS = "15";
|
||
GAPS_IN = "5";
|
||
GAPS_OUT = "10";
|
||
BORDER_WIDTH = "2";
|
||
BORDER_WIDTH_INT = 2;
|
||
WALLPAPER = "$HOME/media/Pictures/wallpapers/forest.jpg";
|
||
|
||
# Colours
|
||
BG = "282828";
|
||
BG0_H = "1d2021";
|
||
BG0_S = "32302f";
|
||
BG0 = "282828";
|
||
BG1 = "3c3836";
|
||
BG2 = "504945";
|
||
BG3 = "665c54";
|
||
BG4 = "7c6f64";
|
||
DARK_GRAY = "928374";
|
||
|
||
FG = "ebdbb2";
|
||
FG0 = "fbf1c7";
|
||
FG1 = "ebdbb2";
|
||
FG2 = "d5c4a1";
|
||
FG3 = "bdae93";
|
||
FG4 = "a89984";
|
||
GRAY = "a89984";
|
||
|
||
DARK_RED = "cc241d";
|
||
DARK_GREEN = "98971a";
|
||
DARK_YELLOW = "d79921";
|
||
DARK_BLUE = "458588";
|
||
DARK_PURPLE = "b16286";
|
||
DARK_AQUA = "689d6a";
|
||
DARK_ORANGE = "d65d0e";
|
||
RED = "db4934";
|
||
GREEN = "b8bb26";
|
||
YELLOW = "dabd2f";
|
||
BLUE = "83a598";
|
||
PURPLE = "d3869b";
|
||
AQUA = "8ec07c";
|
||
ORANGE = "fe8019";
|
||
|
||
in
|
||
{
|
||
imports =
|
||
[ # Include the results of the hardware scan.
|
||
./hardware-configuration.nix
|
||
<home-manager/nixos>
|
||
];
|
||
|
||
# Bootloader.
|
||
boot.loader.systemd-boot.enable = true;
|
||
boot.loader.efi.canTouchEfiVariables = true;
|
||
|
||
networking.hostName = "nixos"; # Define your hostname.
|
||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||
|
||
# Configure network proxy if necessary
|
||
# networking.proxy.default = "http://user:password@proxy:port/";
|
||
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
||
|
||
# Enable networking
|
||
networking.networkmanager.enable = true;
|
||
|
||
# Set your time zone.
|
||
time.timeZone = "Europe/London";
|
||
|
||
# Select internationalisation properties.
|
||
i18n.defaultLocale = "en_GB.UTF-8";
|
||
|
||
i18n.extraLocaleSettings = {
|
||
LC_ADDRESS = "en_GB.UTF-8";
|
||
LC_IDENTIFICATION = "en_GB.UTF-8";
|
||
LC_MEASUREMENT = "en_GB.UTF-8";
|
||
LC_MONETARY = "en_GB.UTF-8";
|
||
LC_NAME = "en_GB.UTF-8";
|
||
LC_NUMERIC = "en_GB.UTF-8";
|
||
LC_PAPER = "en_GB.UTF-8";
|
||
LC_TELEPHONE = "en_GB.UTF-8";
|
||
LC_TIME = "en_GB.UTF-8";
|
||
};
|
||
services.xserver = {
|
||
enable = true;
|
||
desktopManager = {
|
||
xterm.enable = false;
|
||
xfce.enable = true;
|
||
};
|
||
displayManager.defaultSession = "xfce";
|
||
};
|
||
|
||
# Configure keymap in X11
|
||
services.xserver = {
|
||
xkb.layout = "gb";
|
||
xkb.variant = "";
|
||
};
|
||
|
||
# Configure console keymap
|
||
console.keyMap = "uk";
|
||
|
||
# Enable CUPS to print documents.
|
||
services.printing.enable = true;
|
||
|
||
# Enable sound with pipewire.
|
||
sound.enable = true;
|
||
hardware.pulseaudio.enable = false;
|
||
security.rtkit.enable = true;
|
||
services.pipewire = {
|
||
enable = true;
|
||
alsa.enable = true;
|
||
alsa.support32Bit = true;
|
||
pulse.enable = true;
|
||
# If you want to use JACK applications, uncomment this
|
||
#jack.enable = true;
|
||
|
||
# use the example session manager (no others are packaged yet so this is enabled by default,
|
||
# no need to redefine it in your config for now)
|
||
#media-session.enable = true;
|
||
};
|
||
|
||
# Enable touchpad support (enabled default in most desktopManager).
|
||
# services.xserver.libinput.enable = true;
|
||
|
||
|
||
|
||
services.gpm.enable = true; # Mouse support in tty
|
||
|
||
# Enable dconf
|
||
programs.dconf.enable = true;
|
||
|
||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||
users.users.deadvey = {
|
||
isNormalUser = true;
|
||
description = "Dave Smith";
|
||
extraGroups = [ "networkmanager" "wheel" ];
|
||
};
|
||
home-manager.users.deadvey = { pkgs, ... }: {
|
||
home.packages = with pkgs; [
|
||
thunderbird
|
||
gramps
|
||
librewolf
|
||
ladybird
|
||
ytdownloader
|
||
keepassxc
|
||
nextcloud-client
|
||
gimp
|
||
eaglemode
|
||
gruvbox-plus-icons
|
||
gruvbox-gtk-theme
|
||
#emacsPackages.ement # Element client for emacs
|
||
cinny-desktop
|
||
crosswords
|
||
];
|
||
|
||
wayland.windowManager.hyprland.enable = true;
|
||
|
||
|
||
home.stateVersion = "24.05";
|
||
|
||
|
||
|
||
gtk = {
|
||
gtk2 = {
|
||
extraConfig = "gtk-application-prefer-dark-theme=0";
|
||
};
|
||
gtk3 = {
|
||
extraConfig = {
|
||
gtk-application-prefer-dark-theme=0;
|
||
};
|
||
};
|
||
gtk4 = {
|
||
extraConfig = {
|
||
gtk-application-prefer-dark-theme=0;
|
||
};
|
||
};
|
||
enable = true;
|
||
font.name = "Victor Mono SemiBold 12";
|
||
theme = {
|
||
name = "gruvbox-gtk-theme";
|
||
package = pkgs.gruvbox-gtk-theme;
|
||
};
|
||
iconTheme = {
|
||
name = "gruvbox-plus-icons";
|
||
package = pkgs.gruvbox-plus-icons;
|
||
};
|
||
cursorTheme = {
|
||
name = "Adwaita";
|
||
package = pkgs.gnome.adwaita-icon-theme;
|
||
size = 16;
|
||
};
|
||
};
|
||
|
||
services.nextcloud-client = {
|
||
enable = true;
|
||
startInBackground = true;
|
||
};
|
||
|
||
programs.bash = {
|
||
enable = true;
|
||
shellAliases= {
|
||
emacs="emacs -nw";
|
||
nixrc="exec $HOME/media/Code/git/nixos/edit-config.sh";
|
||
ls="lsd";
|
||
};
|
||
bashrcExtra =
|
||
''fastfetch
|
||
XDG_SCREENSHOTS_DIR="$HOME/media/Pictures/other/Screenshots"
|
||
export XDG_SCREENSHOTS_DIR'';
|
||
};
|
||
programs.kitty = {
|
||
enable = true;
|
||
settings = {
|
||
cursor_shape = "underline";
|
||
cursor_shape_unfocused = "hollow";
|
||
foreground = "#${FG}";
|
||
background = "#${BG}";
|
||
selection_foreground = "#${BG}";
|
||
selection_background = "#${FG}";
|
||
|
||
color0 = "#${BG1}";
|
||
color8 = "#${BG0}";
|
||
|
||
color1 = "#${RED}";
|
||
color9 = "#${DARK_RED}";
|
||
|
||
color2 = "#${GREEN}";
|
||
color10 = "#${DARK_GREEN}";
|
||
|
||
color3 = "#${YELLOW}";
|
||
color11 = "#${DARK_YELLOW}";
|
||
|
||
color4 = "#${BLUE}";
|
||
color12 = "#${DARK_BLUE}";
|
||
|
||
color5 = "#${PURPLE}";
|
||
color13 = "#${DARK_PURPLE}";
|
||
|
||
color6 = "#${BLUE}";
|
||
color14 = "#${DARK_BLUE}";
|
||
|
||
color7 = "#${FG0}";
|
||
color15 = "#${FG1}";
|
||
};
|
||
};
|
||
|
||
programs.git = {
|
||
enable = true;
|
||
userName = "deadvey";
|
||
userEmail = "deadvey@deadvey.com";
|
||
};
|
||
|
||
services.emacs = {
|
||
enable = true;
|
||
defaultEditor = true;
|
||
};
|
||
|
||
programs.fastfetch = {
|
||
enable = true;
|
||
settings = {
|
||
logo = {
|
||
source = "nixos_small";
|
||
};
|
||
};
|
||
};
|
||
|
||
programs.wofi = {
|
||
enable = true;
|
||
settings = {
|
||
location = "center";
|
||
allow_markup = true;
|
||
width = 250;
|
||
height = 500;
|
||
};
|
||
style = ''
|
||
* {
|
||
color: #${FG};
|
||
}
|
||
window {
|
||
border: ${BORDER_WIDTH}px solid #${FG};
|
||
background-color: #${BG};
|
||
border-radius: ${CORNER_RADIUS};
|
||
}
|
||
|
||
#input {
|
||
padding: 4px;
|
||
margin: 4px;
|
||
padding-left: 20px;
|
||
border: none;
|
||
color: #${FG};
|
||
background-color: #${BG};
|
||
outline: none;
|
||
border-radius: ${CORNER_RADIUS};
|
||
}
|
||
|
||
#inner-box {
|
||
margin: 4px;
|
||
border: 10px solid #${BG};
|
||
background-color: #${BG};
|
||
border-radius: ${CORNER_RADIUS};
|
||
}
|
||
|
||
#outer-box {
|
||
margin: 2px;
|
||
border: none;
|
||
background-color: #${BG};
|
||
border-radius: ${CORNER_RADIUS};
|
||
}
|
||
|
||
#scroll {
|
||
margin: 0px;
|
||
border: none;
|
||
border-radius: ${CORNER_RADIUS};
|
||
}
|
||
|
||
#text:selected {
|
||
color: #${BG};
|
||
margin: 0px 0px;
|
||
border: none;
|
||
border-radius: ${CORNER_RADIUS};
|
||
}
|
||
|
||
#entry {
|
||
margin: 0px 0px;
|
||
border: none;
|
||
border-radius: ${CORNER_RADIUS};
|
||
}
|
||
|
||
#entry:selected {
|
||
margin: 0px 0px;
|
||
border: none;
|
||
background-color: #${GREEN};
|
||
border-radius: ${CORNER_RADIUS};
|
||
}
|
||
'';
|
||
};
|
||
|
||
services.dunst = {
|
||
enable = true;
|
||
iconTheme = {
|
||
name = "gruvbox-plus-icons";
|
||
package = pkgs.gruvbox-plus-icons;
|
||
};
|
||
settings = {
|
||
global = {
|
||
width = 300;
|
||
height = 300;
|
||
offset = "0x5";
|
||
origin = "top-center";
|
||
transparency = 0;
|
||
font = "Victor Mono SemiBold 12";
|
||
};
|
||
urgency_low = {
|
||
background = "#${GREEN}";
|
||
foreground = "#${BG}";
|
||
frame_color = "#${DARK_GREEN}";
|
||
timout = 3;
|
||
};
|
||
urgency_normal = {
|
||
background = "#${BLUE}";
|
||
foreground = "#${BG}";
|
||
frame_color = "#${DARK_BLUE}";
|
||
timout = 10;
|
||
};
|
||
urgency_critical = {
|
||
background = "#${DARK_RED}";
|
||
foreground = "#${FG}";
|
||
frame_color = "#${RED}";
|
||
timout = 60;
|
||
};
|
||
};
|
||
};
|
||
|
||
services.hyprpaper = {
|
||
enable = true;
|
||
settings = {
|
||
#ipc = "on";
|
||
#splash = false;
|
||
#splash_offset = 2.0;
|
||
|
||
preload =
|
||
[ "${WALLPAPER}" ];
|
||
|
||
wallpaper = [
|
||
"HDMI-A-1,${WALLPAPER}"
|
||
];
|
||
};
|
||
};
|
||
|
||
programs.hyprlock = {
|
||
enable = true;
|
||
extraConfig = ''
|
||
general {
|
||
grace = 10
|
||
}
|
||
|
||
background {
|
||
path = ${WALLPAPER}
|
||
blur_size = 5
|
||
blur_passes = 1 # 0 disables blurring
|
||
noise = 0.0117
|
||
contrast = 1.3000 # Vibrant!!!
|
||
brightness = 0.8000
|
||
vibrancy = 0.2100
|
||
vibrancy_darkness = 0.0
|
||
}
|
||
|
||
input-field {
|
||
size = 250, 50
|
||
outline_thickness = 3
|
||
dots_size = 0.33 # Scale of input-field height, 0.2 - 0.8
|
||
dots_spacing = 0.15 # Scale of dots' absolute size, 0.0 - 1.0
|
||
dots_center = true
|
||
outer_color = "#${BG}"
|
||
inner_color = "#${FG}"
|
||
font_color = "#${BG}"
|
||
#fade_on_empty = true
|
||
placeholder_text = <i>Password...</i> # Text rendered in the input box when it's empty.
|
||
hide_input = false
|
||
|
||
position = 0, 200
|
||
halign = center
|
||
valign = bottom
|
||
}
|
||
# Date
|
||
label {
|
||
text = cmd[update:18000000] echo "<b> "$(date +'%A, %-d %B %Y')" </b>"
|
||
color = "#${FG}"
|
||
font_size = 34
|
||
font_family = JetBrains Mono Nerd Font 10
|
||
position = 0, -150
|
||
halign = center
|
||
valign = top
|
||
}
|
||
|
||
# Week
|
||
label {
|
||
text = cmd[update:18000000] echo "<b> "$(date +'Week %U')" </b>"
|
||
color = "#${FG}"
|
||
font_size = 24
|
||
font_family = JetBrains Mono Nerd Font 10
|
||
position = 0, -250
|
||
halign = center
|
||
valign = top
|
||
}
|
||
|
||
# Time
|
||
label {
|
||
text = cmd[update:1000] echo "<b><big> $(date +"%I:%M:%S %p") </big></b>" # AM/PM
|
||
#text = cmd[update:1000] echo "<b><big> $(date +"%H:%M:%S") </big></b>" # 24H
|
||
color = "#${FG}"
|
||
font_size = 94
|
||
font_family = JetBrains Mono Nerd Font 10
|
||
position = 0, 0
|
||
halign = center
|
||
valign = center
|
||
}
|
||
|
||
# User
|
||
label {
|
||
text = $USER
|
||
color = $color12
|
||
font_size = 18
|
||
font_family = Inter Display Medium
|
||
position = 0, 100
|
||
halign = center
|
||
valign = bottom
|
||
}
|
||
|
||
# uptime
|
||
label {
|
||
text = cmd[update:60000] echo "<b> "$(uptime -p || $Scripts/UptimeNixOS.sh)" </b>"
|
||
color = "#${FG}"
|
||
font_size = 24
|
||
font_family = JetBrains Mono Nerd Font 10
|
||
position = 0, 0
|
||
halign = right
|
||
valign = bottom
|
||
}
|
||
|
||
# weather edit specific location. Note, this cause a 2-4 seconds delay in locking
|
||
label {
|
||
text = cmd[update:3600000] [ -f ~/.cache/.weather_cache ] && cat ~/.cache/.weather_cache
|
||
color = "#${FG}"
|
||
font_size = 24
|
||
font_family = JetBrains Mono Nerd Font 10
|
||
position = 50, 0
|
||
halign = left
|
||
valign = bottom
|
||
}
|
||
|
||
# Put a picture of choice here. Default is the current wallpaper
|
||
image {
|
||
path = $HOME/media/Pictures/other/steampunk.jpg
|
||
size = 230
|
||
rounding = -1
|
||
border_size = 2
|
||
border_color = "#${FG}"
|
||
rotate = 0
|
||
reload_time = -1
|
||
position = 0, 300
|
||
halign = center
|
||
valign = bottom
|
||
}
|
||
|
||
'';
|
||
};
|
||
|
||
wayland.windowManager.hyprland.settings = {
|
||
|
||
"$mod" = "SUPER";
|
||
bind =
|
||
[
|
||
"$mod, F, exec, librewolf"
|
||
"$mod, Q, exec, kitty"
|
||
"$mod, Space, exec, fuzzel --background-color=${BG}ff --border-color=${DARK_BLUE}ff --border-width=${BORDER_WIDTH} --match-color=${RED}ff --selection-color=${FG}ff --selection-text-color=${BG}ff --text-color=${FG}ff --width 75 --lines 25 --icon-theme=Gruvbox-Plus-Dark --border-radius=${CORNER_RADIUS}"
|
||
"$mod, E, exec, wofi-emoji"
|
||
"$mod, W, killactive"
|
||
"$mod, M, fullscreen, 1"
|
||
"$mod SHIFT, M, fullscreen"
|
||
"$mod SHIFT, Q, exit"
|
||
"$mod, left, movefocus, l"
|
||
"$mod, right, movefocus, r"
|
||
"$mod, up, movefocus, u"
|
||
"$mod, down, movefocus, d"
|
||
"$mod SHIFT, left, movewindow, l"
|
||
"$mod SHIFT, right, movewindow, r"
|
||
"$mod SHIFT, up, movewindow, u"
|
||
"$mod SHIFT, down, movewindow, d"
|
||
"$mod, P, exec, grimshot savecopy area"
|
||
"$mod CONTROL, left, resizeactive, -20 0"
|
||
"$mod CONTROL, right, resizeactive, 20 0"
|
||
"$mod CONTROL, up, resizeactive, 0 -20"
|
||
"$mod CONTROL, down, resizeactive, 0 20"
|
||
"$mod, L, exec, hyprlock"
|
||
|
||
]
|
||
++ (
|
||
# workspaces
|
||
# binds $mod + [shift +] {1..10} to [move to] workspace {1..10}
|
||
builtins.concatLists (builtins.genList (
|
||
x: let
|
||
ws = let
|
||
c = (x + 1) / 10;
|
||
in
|
||
builtins.toString (x + 1 - (c * 10));
|
||
in [
|
||
"$mod, ${ws}, workspace, ${toString (x + 1)}"
|
||
"$mod SHIFT, ${ws}, movetoworkspace, ${toString (x + 1)}"
|
||
]
|
||
)
|
||
10)
|
||
);
|
||
|
||
# Input
|
||
input.kb_layout=''gb'';
|
||
|
||
# General
|
||
general.gaps_in=''${GAPS_IN}'';
|
||
general.gaps_out=''${GAPS_OUT}'';
|
||
general.border_size=''${BORDER_WIDTH}'';
|
||
general."col.active_border"=''rgba(${FG}ff)'';
|
||
general."col.inactive_border"=''rgba(${DARK_BLUE}ff)'';
|
||
|
||
# Decoration
|
||
decoration.rounding=''${CORNER_RADIUS}'';
|
||
|
||
};
|
||
wayland.windowManager.hyprland.extraConfig = ''
|
||
exec-once=hyprpaper
|
||
exec-once=waybar
|
||
'';
|
||
|
||
programs.waybar = {
|
||
enable = true;
|
||
settings = {
|
||
rightBorder = {
|
||
layer = "top";
|
||
position = "right";
|
||
mode="overlay";
|
||
height = 0;
|
||
width = BORDER_WIDTH_INT;
|
||
margin-top = 0;
|
||
margin-bottom = 0;
|
||
};
|
||
leftBorder = {
|
||
layer = "top";
|
||
position = "left";
|
||
mode="overlay";
|
||
height = 0;
|
||
width = BORDER_WIDTH_INT;
|
||
margin-top = 0;
|
||
margin-bottom = 0;
|
||
};
|
||
topBorder = {
|
||
name = "topBorder";
|
||
layer = "top";
|
||
mode="overlay";
|
||
position = "top";
|
||
height = BORDER_WIDTH_INT;
|
||
margin-top = 0;
|
||
margin-bottom = 0;
|
||
};
|
||
bottomBorder = {
|
||
name = "bottomBorder";
|
||
layer = "top";
|
||
mode="overlay";
|
||
position = "bottom";
|
||
height = BORDER_WIDTH_INT;
|
||
margin-top = 0;
|
||
margin-bottom = 0;
|
||
};
|
||
whiteCornersTop = {
|
||
name = "whiteCornersTop";
|
||
mode = "overlay";
|
||
layer = "bottom";
|
||
position = "top";
|
||
margin-top = 0;
|
||
margin-bottom = 0;
|
||
modules-left = [];
|
||
modules-center = ["custom/empty"];
|
||
modules-right = [];
|
||
"custom/empty" = {
|
||
format = " ";
|
||
interval = 1;
|
||
};
|
||
};
|
||
whiteCornersBottom = {
|
||
name = "whiteCornersBottom";
|
||
mode = "overlay";
|
||
layer = "bottom";
|
||
position = "bottom";
|
||
margin-top = 0;
|
||
margin-bottom = 0;
|
||
modules-left = [];
|
||
modules-center = ["custom/empty"];
|
||
modules-right = [];
|
||
"custom/empty" = {
|
||
format = " ";
|
||
interval = 1;
|
||
};
|
||
};
|
||
topBar = {
|
||
name = "topBar";
|
||
layer = "bottom";
|
||
position = "top";
|
||
mode = "overlay";
|
||
height = 35;
|
||
width = 1920;
|
||
margin-top = 0;
|
||
margin-bottom = 0;
|
||
modules-left = [];
|
||
modules-center = ["clock"];
|
||
modules-right = [];
|
||
|
||
"clock" = {
|
||
format = "{:%d/%m/%Y %I:%M:%S} ";
|
||
interval = 1;
|
||
format-alt = "{:%A, %B %d, %Y %I:%M:%S} ";
|
||
tooltip-format = "<tt><small>{calendar}</small></tt>";
|
||
calendar = {
|
||
mode = "year";
|
||
mode-mon-col = 3;
|
||
weeks-pos = "right";
|
||
on-scroll = 1;
|
||
format = {
|
||
months = "<span color='#${FG}'><b>{}</b></span>";
|
||
days = "<span color='#${PURPLE}'><b>{}</b></span>";
|
||
weeks = "<span color='#${BLUE}'><b>W{}</b></span>";
|
||
weekdays = "<span color='#${ORANGE}'><b>{}</b></span>";
|
||
today = "<span color='#${GREEN}'><b><u>{}</u></b></span>";
|
||
};
|
||
};
|
||
};
|
||
network = {
|
||
format-ethernet = "{ipaddr} ";
|
||
tooltip-format = "{ifname} via {gwaddr} ";
|
||
format-linked = "{ifname} (No IP) ";
|
||
format-disconnected = "Disconnected ⚠";
|
||
format-alt = "{ifname}: {ipaddr}/{cidr}";
|
||
};
|
||
tray = {
|
||
spacing = 12;
|
||
};
|
||
memory = {
|
||
interval = 5;
|
||
format = " {}%";
|
||
};
|
||
cpu = {
|
||
interval = 5;
|
||
format = " {usage:2}%";
|
||
tooltip = false;
|
||
};
|
||
pulseaudio = {
|
||
format = "{icon} {volume}% {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";
|
||
};
|
||
};
|
||
};
|
||
style = ''
|
||
* {
|
||
font-size: 12px;
|
||
font-family: Font Awesome, Ubuntu Nerd Font, sans-serif;
|
||
font-weight: bold;
|
||
min-height: 0;
|
||
}
|
||
window#waybar.topBar {
|
||
background-color: transparent;
|
||
border-radius: 0px;
|
||
color: #f8f8f2;
|
||
}
|
||
#clock.whiteCornersTop
|
||
#clock.whiteCornersBottom {
|
||
background-color: transparent;
|
||
color: transparent;
|
||
}
|
||
window#waybar.whiteCornersTop {
|
||
border-bottom: 1px solid RGBA(0,0,0,0);
|
||
background-color: transparent;
|
||
box-shadow: 0px 0px 0px 60px black, 0px 0px 0px 2px #ebdbb2;
|
||
border-radius: 20px 20px 0px 0px; /* Ensure consistent curvature */
|
||
margin: 20px;
|
||
}
|
||
window#waybar.whiteCornersBottom {
|
||
border-top: 1px solid rgba(0,0,0,0);
|
||
background-color: transparent;
|
||
box-shadow: 0px 0px 0px 60px black, 0px 0px 0px 2px #ebdbb2;
|
||
border-radius: 0px 0px 20px 20px; /* Ensure consistent curvature */
|
||
margin: 20px;
|
||
}
|
||
window#waybar.right,
|
||
window#waybar.bottomBorder,
|
||
window#waybar.left,
|
||
window#waybar.topBorder {
|
||
background-color: #${FG};
|
||
border-bottom: ${BORDER_WIDTH}px;
|
||
}
|
||
#workspaces {
|
||
background: #${FG};
|
||
margin: 5px 3px 5px 5px;
|
||
padding: 0px 1px;
|
||
border-radius: ${WAYBAR_MODULES_CORNER_RADIUS}px;
|
||
border: 0px;
|
||
font-style: normal;
|
||
color: #${BG};
|
||
}
|
||
#custom-music.Playing {
|
||
background: #${DARK_BLUE};
|
||
background-size: 400% 400%;
|
||
animation: gradient_f 9s cubic-bezier(.72, .39, .21, 1) infinite;
|
||
text-shadow: 0px 0px 5px rgba(0, 0, 0, 0.377);
|
||
font-weight: bold;
|
||
color: #fff;
|
||
}
|
||
|
||
#custom-music.Paused,
|
||
#custom-music.Stopped {
|
||
background: #161925;
|
||
}
|
||
|
||
#workspaces button {
|
||
padding: 0px 0px;
|
||
margin: 4px 3px;
|
||
border-radius: ${WAYBAR_MODULES_CORNER_RADIUS}px;
|
||
border: 0px;
|
||
color: #${BG};
|
||
background-color: #${BLUE};
|
||
opacity: 0.5;
|
||
transition: all 0.3s ease-in-out;
|
||
}
|
||
|
||
#workspaces button.active {
|
||
color: #${DARK_BLUE};
|
||
background: #${DARK_BLUE};
|
||
border-radius: ${WAYBAR_MODULES_CORNER_RADIUS}px;
|
||
min-width: 40px;
|
||
transition: all 0.3s ease-in-out;
|
||
opacity: 1.0;
|
||
}
|
||
|
||
#workspaces button:hover {
|
||
color: #${BG};
|
||
background: #${BG};
|
||
border-radius: ${WAYBAR_MODULES_CORNER_RADIUS}px;
|
||
opacity: 1.0;
|
||
}
|
||
|
||
|
||
tooltip {
|
||
background: #${BG};
|
||
border: 1px solid #7aa2f7;
|
||
border-radius: 15px;
|
||
}
|
||
|
||
tooltip label {
|
||
color: #c0caf5;
|
||
}
|
||
|
||
#window {
|
||
color: #${BG};
|
||
background: #c0caf5;
|
||
border-radius: ${WAYBAR_MODULES_CORNER_RADIUS}px;
|
||
margin: 5px;
|
||
padding: 2px 10px;
|
||
}
|
||
|
||
#memory {
|
||
color: #${BG};
|
||
background: #${ORANGE};
|
||
border-radius: ${WAYBAR_MODULES_CORNER_RADIUS}px;
|
||
margin: 5px;
|
||
padding: 2px 10px;
|
||
}
|
||
|
||
#clock {
|
||
color: #${BG};
|
||
background: #${PURPLE};
|
||
border-radius: ${WAYBAR_MODULES_CORNER_RADIUS}px;
|
||
margin: 5px;
|
||
padding: 2px 10px;
|
||
}
|
||
|
||
#cpu {
|
||
color: #${BG};
|
||
background: #${BLUE};
|
||
border-radius: ${WAYBAR_MODULES_CORNER_RADIUS}px;
|
||
margin: 5px;
|
||
padding: 2px 10px;
|
||
}
|
||
|
||
#network {
|
||
color: #${BG};
|
||
background: #${DARK_YELLOW};
|
||
border-radius: ${WAYBAR_MODULES_CORNER_RADIUS}px;
|
||
margin: 5px;
|
||
padding: 2px 10px;
|
||
}
|
||
|
||
#tray {
|
||
color: #${BG};
|
||
background: #${BG1};
|
||
border-radius: ${WAYBAR_MODULES_CORNER_RADIUS}px;
|
||
margin: 5px;
|
||
padding: 2px 10px;
|
||
}
|
||
|
||
#pulseaudio {
|
||
color: #${BG};
|
||
background: #${FG3};
|
||
border-radius: ${WAYBAR_MODULES_CORNER_RADIUS}px;
|
||
margin: 5px;
|
||
padding: 2px 10px;
|
||
}
|
||
|
||
tooltip {
|
||
color: #${FG};
|
||
background-color: #${BG};
|
||
text-shadow: none;
|
||
}
|
||
|
||
tooltip * {
|
||
color: #${FG};
|
||
text-shadow: none;
|
||
}
|
||
'';
|
||
};
|
||
};
|
||
|
||
|
||
# List packages installed in system profile. To search, run:
|
||
# $ nix search wget
|
||
environment.systemPackages = with pkgs; [
|
||
hyprlock
|
||
vim
|
||
cmus
|
||
wget
|
||
emacs
|
||
fastfetch
|
||
gparted
|
||
git
|
||
dunst
|
||
python3
|
||
gcc
|
||
htop
|
||
hyprland
|
||
hyprpicker
|
||
xorg.xinit
|
||
wine
|
||
waybar
|
||
yazi
|
||
kitty
|
||
lxappearance
|
||
fuzzel
|
||
wtype
|
||
wofi
|
||
sway-contrib.grimshot
|
||
cron
|
||
xfce.thunar
|
||
wofi-emoji
|
||
dmenu
|
||
w3m
|
||
gpm # Mouse support in tty
|
||
grim
|
||
slurp
|
||
wl-clipboard
|
||
gtk3
|
||
dbus
|
||
hyprpaper
|
||
dconf
|
||
feh
|
||
lsd
|
||
mpv
|
||
killall
|
||
zip
|
||
spotdl
|
||
];
|
||
|
||
fonts.packages = with pkgs; [
|
||
noto-fonts
|
||
noto-fonts-cjk
|
||
noto-fonts-emoji
|
||
liberation_ttf
|
||
fira-code
|
||
fira-code-symbols
|
||
mplus-outline-fonts.githubRelease
|
||
dina-font
|
||
proggyfonts
|
||
font-awesome_4
|
||
font-awesome
|
||
victor-mono
|
||
];
|
||
|
||
|
||
# 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;
|
||
|
||
# This value determines the NixOS release from which the default
|
||
# settings for stateful data, like file locations and database versions
|
||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||
# this value at the release version of the first install of this system.
|
||
# Before changing this value read the documentation for this option
|
||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||
system.stateVersion = "24.05"; # Did you read the comment?
|
||
|
||
}
|