Compare commits

...

30 Commits

Author SHA1 Message Date
99f64a3145 First base waybar rice 2025-11-13 14:13:23 -05:00
6c79eff909 Added screenshot with hyprshot & satty 2025-11-12 14:23:51 -05:00
e35f7923ae Added wlogout 2025-11-11 22:47:51 -05:00
55f2b15896 Added podman+distrobox virtualization (disabled virtualbox) 2025-11-10 18:14:45 -05:00
00a1828a0d Added HyprDynamicMonitors 2025-11-09 14:34:44 -05:00
2f6bed228d Added the Yazi TUI file browser 2025-11-09 14:34:17 -05:00
dee0c41a05 Added Ghostty & Kitty, only using Ghostty 2025-11-08 12:14:23 -05:00
a97d49f8a7 Updated from pkgs.system to pkgs.stdenv.hostPlatform.system 2025-11-08 12:12:44 -05:00
636c8d4d0d Updated hyprland setup with basic wallpaper support 2025-11-07 23:06:50 -05:00
58276cc8e0 Initial multi desktop setup 2025-11-03 15:45:00 -05:00
dd4274f036 Added stylix (again) 2025-11-01 23:09:40 -04:00
626ede8955 Update flake inputs 2025-11-01 23:05:23 -04:00
9fdfd2efa0 Updated VSCode C config 2025-11-01 23:01:55 -04:00
c2380696ef Switched to cosmic desktop 2025-10-28 23:57:04 -04:00
df478c93e4 Updated flake inputs 2025-10-28 23:56:35 -04:00
a4588c49aa Removed stylix 2025-10-28 23:56:03 -04:00
c3eb30b199 Added Alacritty 2025-10-28 23:55:12 -04:00
6d5efdf451 Changed signing key path to absolute 2025-10-28 14:56:52 -04:00
dbab6f8d32 Set up git commit signing with ssh 2025-10-28 09:30:29 -04:00
a21abe2f8f Added fix for vscode remote ssh, using custom ssh config file path 2025-10-27 17:47:52 -04:00
038cc8ce3b Added rust support to nvf 2025-10-26 23:43:49 -04:00
20e3ffdd48 Began xdg config, added Dev home dir 2025-10-26 23:43:24 -04:00
94d28215a6 Begun yubikey integration 2025-10-23 23:52:24 -04:00
7182bc8e8e Added printing & scanner support 2025-10-23 12:25:08 -04:00
aea83699b8 Added catppuccin/nix 2025-10-19 11:33:12 -04:00
6febc0906b Added stylix 2025-10-19 01:55:37 -04:00
7929e07296 Attempted firefox search backup issue 2025-10-19 01:55:06 -04:00
bafe695b96 Added lazygit 2025-10-19 00:25:08 -04:00
4bd523906c Added starship prompt 2025-10-16 15:20:59 -04:00
9154c8f6f8 Updated flake inputs 2025-10-16 12:25:11 -04:00
35 changed files with 2310 additions and 75 deletions

1015
flake.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -31,20 +31,36 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
inputs.home-manager.follows = "home-manager"; inputs.home-manager.follows = "home-manager";
}; };
stylix = {
url = "github:nix-community/stylix";
inputs.nixpkgs.follows = "nixpkgs";
}; };
outputs = { nixpkgs, ... }@inputs: mango.url = "github:DreamMaoMao/mango?rev=1271832e947d3d4af27b36f687edd2f2e535f051";
let
system = "x86_64-linux"; hyprland.url = "github:hyprwm/Hyprland";
host = "vanta";
in silentSDDM = {
url = "github:uiriansan/SilentSDDM";
inputs.nixpkgs.follows = "nixpkgs";
};
hyprdynamicmonitors.url = "github:fiffeek/hyprdynamicmonitors";
};
outputs =
{ nixpkgs, ... }@inputs:
{ {
nixosConfigurations.${host} = nixpkgs.lib.nixosSystem { nixosConfigurations.vanta = nixpkgs.lib.nixosSystem {
inherit system; system = "x86_64-linux";
specialArgs = { inherit inputs host; }; specialArgs = {
inherit inputs;
host = "vanta";
};
modules = [ modules = [
./modules/system ./modules/system
./hosts/${host} ./hosts/vanta
]; ];
}; };
}; };

View File

@@ -0,0 +1,17 @@
{
...
}:
{
programs.alacritty = {
enable = true;
theme = "catppuccin_mocha";
settings = {
font = {
normal = {
family = "FiraCode Nerd Font";
style = "Regular";
};
};
};
};
}

View File

@@ -3,12 +3,25 @@
}: }:
{ {
imports = [ imports = [
# ./alacritty.nix
./firefox.nix ./firefox.nix
./ghostty.nix
./git.nix ./git.nix
# ./kitty.nix
./hypr
./mango.nix
./nvf.nix ./nvf.nix
./packages.nix ./packages.nix
./plasma.nix # ./plasma.nix
./screenshot.nix
./ssh.nix
./stylix.nix
./vscode.nix ./vscode.nix
./wallpaper.nix
./waybar
./wlogout.nix
./xdg.nix
./yazi.nix
./zsh.nix ./zsh.nix
]; ];
} }

View File

@@ -85,6 +85,7 @@
}; };
search = { search = {
default = "google"; default = "google";
force = true;
engines = { engines = {
nix-packages = { nix-packages = {
name = "Nix Packages"; name = "Nix Packages";

14
modules/home/ghostty.nix Normal file
View File

@@ -0,0 +1,14 @@
{
...
}:
{
programs.ghostty = {
enable = true;
enableZshIntegration = true;
settings = {
theme = "Catppuccin Mocha";
term = "xterm-256color";
};
systemd.enable = true;
};
}

View File

@@ -1,18 +1,40 @@
{ {
pkgs, pkgs,
config,
... ...
}: }:
let
name = "Eclypsed";
email = "Ec1ypsed@proton.me";
signingKey = "sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIB2h6y1Al2OVotYIpwPZMjiBLAncAI2pAPgES2+gVbJqAAAABHNzaDo= ssh:";
in
{ {
programs.git = { home.packages = with pkgs; [ git-ignore ];
xdg.configFile."git/allowed_signers".text = ''
${email} namespaces="git" ${signingKey}
'';
programs = {
git = {
enable = true; enable = true;
userName = "Eclypsed"; settings = {
userEmail = "Ec1ypsed@proton.me"; user = { inherit name email; };
extraConfig = {
init = { init = {
defaultBranch = "main"; defaultBranch = "main";
}; };
gpg.ssh.allowedSignersFile = "${config.xdg.configHome}/git/allowed_signers";
};
signing = {
format = "ssh";
key = "${config.home.homeDirectory}/.ssh/id_ed25519_sk_rk.pub";
signByDefault = true;
};
};
lazygit = {
enable = true;
enableZshIntegration = true;
shellWrapperName = "lg";
}; };
}; };
home.packages = with pkgs; [ git-ignore ];
} }

View File

@@ -0,0 +1,10 @@
{
...
}:
{
imports = [
./hyprland.nix
./keybinds.nix
./monitors.nix
];
}

View File

@@ -0,0 +1,52 @@
{
pkgs,
config,
...
}:
{
home.packages = with pkgs; [
hyprpolkitagent
];
wayland.windowManager.hyprland = {
enable = true;
package = null;
portalPackage = null;
settings = {
source = [
"${config.xdg.configHome}/hypr/monitors.conf"
];
# monitor = [
# "eDP-1, 2256x1504@60, 0x0, 1"
# ];
decoration = {
rounding = 10;
active_opacity = 0.95;
inactive_opacity = 0.85;
fullscreen_opacity = 1.0;
blur = {
enabled = true;
size = 8;
passes = 3;
new_optimizations = true;
};
};
exec-once = [
"systemctl --user enable --now hyprpolkitagent.service"
"wpaperd -d"
"systemctl enable --user app-com.mitchellh.ghostty.service"
];
env = [
"NIXOS_OZONE_WL, 1"
"HYPRSHOT_DIR, ${config.xdg.userDirs.extraConfig.XDG_SCREENSHOTS_DIR}"
];
};
};
}

View File

@@ -0,0 +1,75 @@
{
...
}:
{
wayland.windowManager.hyprland.settings = {
exec = "hyprctl dispatch submap global";
submap = "global";
# MY STUFF
"$mod" = "SUPER";
bind = [
"$mod, Q, killactive"
"$mod, W, exec, ghostty +new-window"
"$mod, S, exec, rofi -show drun -show-icons"
"$mod, Escape, exec, wlogout"
# Window Movement
"$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 CTRL, left, workspace, r-1"
"$mod CTRL, right, workspace, r+1"
"$mod CTRL SHIFT, left, movetoworkspace, r-1"
"$mod CTRL SHIFT, right, movetoworkspace, r+1"
# Brightness keys
", XF86MonBrightnessUp, exec, brightnessctl set 10%+"
", XF86MonBrightnessDown, exec, brightnessctl set 10%-"
# Screenshoting
", PRINT, exec, hyprshot -m output --raw | satty --filename -"
"$mod, PRINT, exec, hyprshot -m window --raw | satty --filename -"
"SHIFT, PRINT, exec, hyprshot -m region --raw | satty --filename -"
# Media Control Keys
", XF86AudioPrev, exec, playerctl previous"
", XF86AudioPlay, exec, playerctl play-pause"
", XF86AudioNext, exec, playerctl next"
", XF86AudioMute, exec, pamixer -t"
", XF86AudioRaiseVolume, exec, pamixer -i 5"
", XF86AudioLowerVolume, exec, pamixer -d 5"
"ALT, XF86AudioMute, exec, pamixer --default-source -t"
"ALT, XF86AudioRaiseVolume, exec, pamixer --default-source -i 5"
"ALT, XF86AudioLowerVolume, exec, pamixer --default-source -d 5"
]
++ (
# workspaces
# binds $mod + [shift +] {1..9} to [move to] workspace {1..9}
builtins.concatLists (
builtins.genList (
i:
let
ws = i + 1;
in
[
"$mod, code:1${toString i}, workspace, ${toString ws}"
"$mod SHIFT, code:1${toString i}, movetoworkspace, ${toString ws}"
]
) 9
)
);
bindm = [
"$mod, mouse:272, movewindow"
"$mod, mouse:273, resizewindow"
"$mod ALT, mouse:272, resizewindow"
];
};
}

View File

@@ -0,0 +1,19 @@
{
inputs,
pkgs,
...
}:
{
imports = [
inputs.hyprdynamicmonitors.homeManagerModules.default
];
home.packages = [
inputs.hyprdynamicmonitors.packages.${pkgs.stdenv.hostPlatform.system}.default
];
home.hyprdynamicmonitors = {
enable = true;
installExamples = false;
};
}

14
modules/home/kitty.nix Normal file
View File

@@ -0,0 +1,14 @@
{
...
}:
{
programs.kitty = {
enable = true;
enableGitIntegration = true;
font = {
name = "FiraCode Nerd Font";
};
shellIntegration.enableZshIntegration = true;
themeFile = "Catppuccin-Mocha";
};
}

37
modules/home/mango.nix Normal file
View File

@@ -0,0 +1,37 @@
{
inputs,
...
}:
{
imports = [
inputs.mango.hmModules.mango
];
wayland.windowManager.mango = {
enable = true;
settings = ''
bind=SUPER,Return,spawn,alacritty
bind=SUPER,s,spawn,rofi -show drun
bind=SUPER,q,killclient
bind=SUPER+SHIFT,r,reload_config
bind=SUPER,t,setlayout,tile
bind=SUPER,v,setlayout,vertical_grid
bind=SUPER,c,setlayout,spiral
bind=SUPER,x,setlayout,scroller
bind=SUPER,n,switch_layout
bind=SUPER,a,togglegaps
bind=SUPER,Up,focusdir,up
bind=SUPER,Down,focusdir,down
bind=SUPER,Left,focusdir,left
bind=SUPER,Right,focusdir,right
bind=SUPER+SHIFT,Up,exchange_client,up
bind=SUPER+SHIFT,Down,exchange_client,down
bind=SUPER+SHIFT,Left,exchange_client,left
bind=SUPER+SHIFT,Right,exchange_client,right
'';
};
}

View File

@@ -61,9 +61,6 @@
# Formatting files # Formatting files
formatter.conform-nvim = { formatter.conform-nvim = {
enable = true; enable = true;
setupOpts = {
};
}; };
binds = { binds = {
@@ -221,6 +218,17 @@
treesitter.enable = true; treesitter.enable = true;
}; };
rust = {
enable = true;
# crates = {
# enable = true;
# };
dap.enable = true;
format.enable = true;
lsp.enable = true;
treesitter.enable = true;
};
tailwind = { tailwind = {
enable = true; enable = true;
lsp.enable = true; lsp.enable = true;

View File

@@ -9,19 +9,20 @@
discord discord
sqlitebrowser sqlitebrowser
drawio drawio
bitwarden-desktop
# Libre Office # Libre Office
libreoffice-qt libreoffice-qt
hunspell hunspell
hunspellDicts.en_US hunspellDicts.en_US
# KDE
kdePackages.kate
# CD Stuff # CD Stuff
picard picard
heybrochecklog heybrochecklog
rsgain rsgain
rofi
playerctl
pamixer
brightnessctl
]; ];
} }

View File

@@ -0,0 +1,17 @@
{
pkgs,
config,
...
}:
{
home.packages = with pkgs; [
hyprshot
satty
];
xdg.configFile."satty/config.toml".text = ''
[general]
fullscreen = false
output-filename = "${config.xdg.userDirs.extraConfig.XDG_SCREENSHOTS_DIR}/%Y-%m-%d_%H:%M:%S.png"
'';
}

30
modules/home/ssh.nix Normal file
View File

@@ -0,0 +1,30 @@
{
...
}:
{
programs.ssh = {
enable = true;
enableDefaultConfig = false;
matchBlocks = {
"*" = {
addKeysToAgent = "yes";
identityFile = [ "~/.ssh/id_ed25519_sk_rk" ];
};
"stu" = {
hostname = "stu.cs.jmu.edu";
user = "tamassno";
localForwards = [
{
bind.port = 5432;
host = {
address = "data.cs.jmu.edu";
port = 5432;
};
}
];
serverAliveCountMax = 5;
serverAliveInterval = 60;
};
};
};
}

57
modules/home/stylix.nix Normal file
View File

@@ -0,0 +1,57 @@
{
inputs,
pkgs,
...
}:
{
imports = [
inputs.stylix.homeModules.stylix
];
stylix = {
enable = true;
autoEnable = false;
polarity = "dark";
base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml";
targets = {
# firefox = {
# enable = true;
# colorTheme.enable = true;
# firefoxGnomeTheme.enable = true;
# profileNames = [ "eclypse" ];
# };
# gtk = {
# enable = true;
# };
qt = {
enable = true;
};
};
};
home.pointerCursor = {
gtk.enable = true;
package = pkgs.bibata-cursors;
name = "Bibata-Modern-Ice";
size = 17;
};
gtk = {
enable = true;
colorScheme = "dark";
theme = {
name = "Tokyonight-Dark";
package = pkgs.tokyonight-gtk-theme.override {
tweakVariants = [ "macos" ];
};
};
};
# home.pointerCursor = {
# enable = true;
# gtk.enable = true;
# name = "Catppuccin-Mocha-Dark-Cursors";
# package = pkgs.catppuccin-cursors.mochaDark;
# size = 16;
# };
}

View File

@@ -17,6 +17,7 @@
aaron-bond.better-comments aaron-bond.better-comments
yzane.markdown-pdf yzane.markdown-pdf
mechatroner.rainbow-csv mechatroner.rainbow-csv
catppuccin.catppuccin-vsc
# Remote development # Remote development
ms-vscode-remote.remote-ssh ms-vscode-remote.remote-ssh
@@ -46,6 +47,14 @@
# General # General
"editor.formatOnSave" = true; "editor.formatOnSave" = true;
"workbench.iconTheme" = "material-icon-theme"; "workbench.iconTheme" = "material-icon-theme";
"workbench.colorTheme" = "Catppuccin Mocha";
"catppuccin.accentColor" = "flamingo";
# Remote SSH
# VSCode attempts to write to ~/.ssh/config for remote ssh connections.
# Because ~/.ssh/config is managed with home-manager, it is not writeable.
# So we specify a custom ssh config path
"remote.SSH.configFile" = "/home/eclypse/.ssh/vscode-config";
# Prettier # Prettier
"editor.defaultFormatter" = "esbenp.prettier-vscode"; "editor.defaultFormatter" = "esbenp.prettier-vscode";
@@ -85,6 +94,13 @@
# C / C++ # C / C++
"C_Cpp.clang_format_style" = "GNU"; # This is really just for cs361, I actually hate the GNU style "C_Cpp.clang_format_style" = "GNU"; # This is really just for cs361, I actually hate the GNU style
"C_Cpp.default.cStandard" = "gnu17";
"[c]" = {
"editor.defaultFormatter" = "ms-vscode.cpptools";
};
"[cpp]" = {
"editor.defaultFormatter" = "ms-vscode.cpptools";
};
}; };
}; };
}; };

View File

@@ -0,0 +1,25 @@
{
config,
...
}:
let
wallpapers = config.xdg.userDirs.extraConfig.XDG_WALLPAPERS_DIR;
in
{
home.file."${wallpapers}" = {
source = ../../wallpapers;
recursive = true;
};
services.wpaperd = {
enable = true;
settings = {
default = {
mode = "center";
};
any = {
path = "${wallpapers}/lanterns_of_twilight.png";
};
};
};
}

View File

@@ -0,0 +1,343 @@
{
...
}:
let
hyprland-workspaces = {
format = "{icon}";
show-special = false;
active-only = false;
on-click = "activate";
on-scroll-up = "hyprctl dispatch workspace e+1";
on-scroll-down = "hyprctl dispatch workspace e-1";
all-outputs = true;
sort-by-number = true;
persistent-workspaces = {
"1" = [ ];
"2" = [ ];
"3" = [ ];
"4" = [ ];
};
format-icons = {
"1" = " ";
"2" = " ";
"3" = " ";
"4" = " ";
"5" = "";
"6" = " ";
"7" = "";
"8" = " ";
"9" = " ";
"10" = "10";
"focused" = "";
"default" = "";
};
};
menu = {
format = "{}";
exec = "echo ; echo 󱓟 app launcher";
interval = 86400;
tooltip = true;
on-click = "pkill rofi || rofi -show drun -show-icons";
};
hyprland-window = {
format = "󰣆 {title}";
max-length = 40;
separate-outputs = false;
rewrite = {
"^.*( LibreWolf|LibreWolf)$" = "󰈹 LibreWolf";
"(.*) Mozilla Firefox" = " Firefox";
"^.*v( .*|$)" = " Neovim";
"^.*~$" = "󰄛 Kitty";
"(.*) " = " Empty";
"^.*pdf( .*|$)" = "";
"^.*(- Mousepad)$" = " $1";
};
};
arrow-right = {
format = "󰁙";
tooltip = false;
};
cpu = {
format = "󰘚 {usage}󱉸";
};
memory = {
interval = 10;
format = "{used:0.1f}G 󰾆";
format-alt = "{percentage}% 󰾆";
format-alt-click = "click";
tooltip = true;
tooltip-format = "{used:0.1f}GB/{total:0.1f}G";
# on-click-right = "kitty --title btop sh -c 'btop'";
};
temperature = {
interval = 10;
tooltip = true;
hwmon-path = [
"/sys/class/hwmon/hwmon6/temp1_input"
"/sys/class/thermal/thermal_zone0/temp"
];
critical-threshold = 82;
format-critical = "{temperatureC}°C {icon}";
format = "{temperatureC}°C {icon}";
format-icons = [ "󰈸" ];
# on-click-right = "kitty --title nvtop sh -c 'nvtop'";
};
idle-inhibitor = {
format = "{icon}";
format-icons = {
activated = " ";
deactivated = " ";
};
};
tray = {
icon-size = 16;
spacing = 4;
};
pulseaudio = {
format = "{icon} {volume}%";
format-bluetooth = "{icon} 󰂰 {volume}";
format-muted = "󰖁";
format-icons = {
headphone = "";
hands-free = "";
headset = "";
phone = "";
portable = "";
car = "";
default = [
""
""
"󰕾"
""
];
ignored-sinks = [ "Easy Effects Sink" ];
};
scroll-step = 5.0;
# on-click-right = "pavucontrol -t 3";
tooltip-format = "{icon} {desc} | {volume}%";
smooth-scrolling-threshold = 1;
};
battery = {
align = 0;
rotate = 0;
full-at = 100;
design-capacity = false;
states = {
good = 95;
warning = 30;
critical = 15;
};
format = "{icon} {capacity}";
format-charging = " {capacity}%";
format-plugged = "󱘖 {capacity}%";
format-alt-click = "click";
format-full = "{icon} Full";
format-alt = "{icon} {time}";
format-icons = [
"󰂎"
"󰁺"
"󰁻"
"󰁼"
"󰁽"
"󰁾"
"󰁿"
"󰂀"
"󰂁"
"󰂂"
"󰁹"
];
format-time = "{H}h {M}min";
tooltip = true;
tooltip-format = "{timeTo} {power}w";
};
mpris = {
interval = 10;
format = "{player_icon} ";
format-paused = "{status_icon}";
on-click-middle = "playerctl play-pause";
on-click = "playerctl previous";
on-click-right = "playerctl next";
scroll-step = 5.0;
smooth-scrolling-threshold = 1;
player-icons = {
chromium = "";
mpd = "";
default = "";
firefox = "";
kdeconnect = "";
mopidy = "";
mpv = "󰐹";
spotify = "";
vlc = "󰕼";
};
status-icons = {
paused = "󰐎";
playing = "";
stopped = "";
};
max-length = 10;
};
arrow-left = {
format = "󰁒";
tooltip = false;
};
notifications = {
tooltip = false;
format = "{icon} {text}";
format-icons = {
notification = "󱅫";
none = "󰂚";
dnd-notification = "󰂛";
dnd-none = "󰂛";
inhibited-notification = "󰂚";
inhibited-none = "󰂚";
dnd-inhibited-notification = "󰂛";
dnd-inhibited-none = "󰂛";
};
return-type = "json";
# exec-if = "which swaync-client";
# exec = "swaync-client -swb";
# on-click = "swaync-client -t -sw";
# on-click-right = "swaync-client -d -sw";
escape = true;
};
clock = {
interval = 1;
format = "{:%I:%M %p}"; # AM-PM Format
format-alt = " {:%H:%M %Y, %d %B, %A}";
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>";
};
};
};
power = {
format = "";
exec = "echo ; echo 󰟡 power";
on-click = "wlogout";
interval = 86400;
tooltip = true;
};
in
{
programs.waybar = {
enable = true;
systemd.enable = true;
settings = [
{
layer = "top";
position = "top";
height = 34;
width = 1200;
margin-left = 50;
margin-right = 50;
margin-top = 5;
fixed-center = true;
reload_style_on_change = true;
modules-left = [
"custom/menu"
"hyprland/window"
"group/info"
];
modules-center = [
"hyprland/workspaces#4"
];
modules-right = [
"idle_inhibitor"
"group/demo"
"group/hub"
];
"hyprland/workspaces#4" = hyprland-workspaces;
"custom/menu" = menu;
"hyprland/window" = hyprland-window;
"custom/arrow-right" = arrow-right;
"cpu" = cpu;
"memory" = memory;
"temperature" = temperature;
"idle_inhibitor" = idle-inhibitor;
"tray" = tray;
"pulseaudio" = pulseaudio;
"mpris" = mpris;
"battery" = battery;
"custom/arrow-left" = arrow-left;
"custom/notifications" = notifications;
"clock" = clock;
"custom/power" = power;
"group/info" = {
orientation = "inherit";
drawer = {
transition-duration = 300;
transition-left-to-right = false;
};
modules = [
"custom/arrow-right"
"cpu"
"memory"
"temperature"
];
};
"group/demo" = {
orientation = "inherit";
modules = [
"tray"
"pulseaudio"
"mpris"
"battery"
];
};
"group/utils" = {
orientation = "inherit";
drawer = {
transition-duration = 300;
transition-left-to-right = true;
};
modules = [
"custom/arrow-left"
"custom/notifications"
];
};
"group/hub" = {
orientation = "inherit";
modules = [
"group/utils"
"clock"
"custom/power"
];
};
}
];
style = ./style.css;
};
}

View File

@@ -0,0 +1,184 @@
@define-color foreground #BFE3EA;
@define-color background alpha(#000007,0.05);
@define-color cursor #B98FAE;
@define-color color0 #000009;
@define-color color1 #60697E;
@define-color color2 #BA4F80;
@define-color color3 #4F7F96;
@define-color color4 #BE869D;
@define-color color5 #47A6BD;
@define-color color6 #49AEC4;
@define-color color7 #9BCED9;
@define-color color8 #6D9098;
@define-color color9 #60697E;
@define-color color10 #BA4F80;
@define-color color11 #4F7F96;
@define-color color12 #BE869D;
@define-color color13 #47A6BD;
@define-color color14 #49AEC4;
@define-color color15 #9BCED9;
/* ---- 💫 https://github.com/JaKooLit 💫 ---- */
/*DARK_PURPLE*/
@define-color main-color @color15;
* {
all: unset; /*this is really important to isolate waybar from gtk*/
font: bold 14px "FiraCode Nerd Font";
font-feature-settings: '"zero", "ss01", "ss02", "ss03", "ss04", "ss05", "cv31"';
border: none;
border-radius: 0;
box-shadow: none;
text-shadow: none;
}
window#waybar {
/*background: alpha(@background, 0.1);*/
background: rgba (0, 0, 0, 0.6);
border-radius: 5px;
/*border: 0px solid alpha(@background,0.8);*/
}
#window {
padding: 0px 8px;
margin: 5px 4px 5px 4px;
background: alpha(@color12, 0.3);
border-radius: 5px;
color: lighter(@main-color);
}
tooltip {
background: alpha(@background, 0.8);
border: 2px solid alpha(lighter(@main-color), 0.8);
border-radius: 10px;
}
tooltip label {
color: @freground;
}
#custom-arrow-right {
color: @main-color;
margin: 0px 4px;
}
#cpu,
#memory,
#temperature,
#disk,
#custom-updates {
padding: 0px 6px;
margin: 6px 4px;
background: alpha(darker(@main-color), 0.4);
color: @main-color;
border-radius: 10px;
}
#workspaces {
margin: 4px 4px;
background: alpha(lighter(@color4), 0.09);
border-radius: 5px;
}
#workspaces button {
padding: 0px 4px;
margin: 0px 0px;
color: alpha(@foreground, 0.3);
}
#workspaces button.active {
transition: color 0.5s;
color: lighter(@main-color);
}
#workspaces button.urgent,
#workspaces button:hover {
color: @color12;
background-color: transparent;
}
#demo,
#control-center {
padding: 0px 6px;
margin: 4px 2px 4px 2px;
color: lighter(@color3);
background: alpha(lighter(@main-color), 0.08);
border-radius: 5px;
}
#bluetooth,
#network,
#pulseaudio {
padding: 0px 0 0 4px;
}
#pulseaudio-slider slider {
min-height: 0px;
min-width: 0px;
background-color: transparent;
border: none;
box-shadow: none;
}
#pulseaudio-slider {
margin: 6px;
}
#pulseaudio-slider highlight {
border-radius: 8px;
background-color: lighter(@main-color);
}
#language {
padding: 0px 3px 2px 0px;
}
#custom-arrow-left {
color: lighter(@main-color);
margin: 0px 4px;
}
#custom-notifications,
#custom-weather,
#custom-theme-switcher {
padding: 0px 8px;
margin: 8px 4px;
color: @main-color;
background: alpha(darker(@main-color), 0.8);
border-radius: 10px;
}
#tray {
padding: 0px 8px;
margin: 4px 2px 4px 2px;
background: alpha(@color12, 0.3);
border-radius: 5px;
color: lighter(@main-color);
}
#custom-menu,
#custom-power {
padding: 0px 10px 0px 6px;
margin: 6px 6px 6px 4px;
background: alpha(@color12, 0.3);
border-radius: 5px;
color: lighter(@main-color);
}
#clock {
padding: 0px 8px;
margin: 5px 2px 5px 4px;
background: alpha(@color12, 0.3);
border-radius: 5px;
color: lighter(@main-color);
}
#power,
#bluetooth,
#mpd,
#pulseaudio,
#battery,
#mpris {
padding: 4px 4px;
color: lighter(@main-color);
}

111
modules/home/wlogout.nix Normal file
View File

@@ -0,0 +1,111 @@
{
config,
pkgs,
...
}:
{
programs.wlogout = {
enable = true;
layout = [
{
label = "lock";
action = "loginctl lock-session";
text = "Lock";
keybind = "l";
}
{
label = "hibernate";
action = "systemctl hibernate";
text = "Hibernate";
keybind = "h";
}
{
label = "logout";
action = "loginctl terminate-user $USER";
text = "Logout";
keybind = "e";
}
{
label = "shutdown";
action = "systemctl poweroff";
text = "Shutdown";
keybind = "s";
}
{
label = "suspend";
action = "systemctl suspend";
text = "Suspend";
keybind = "u";
}
{
label = "reboot";
action = "systemctl reboot";
text = "Reboot";
keybind = "r";
}
];
style = with config.lib.stylix.colors.withHashtag; ''
* {
font-family: "Rubik Light";
background-image: none;
box-shadow: none;
}
window {
background: url("${config.xdg.userDirs.extraConfig.XDG_WALLPAPERS_DIR}/lanterns_of_twilight.png");
background-size: cover;
}
button {
margin: 10px;
border-radius: 20px;
border-color: ${base0F};
text-decoration-color: ${base0F};
color: ${base0F};
background-color: alpha(${base01}, 0.5);
border-style: solid;
border-width: 2px;
background-repeat: no-repeat;
background-position: center;
background-size: 25%;
}
button:focus, button:active, button:hover {
background-color: alpha(${base0F}, 0.3);
outline-style: none;
}
button:hover {
background-size: 27%;
}
button span {
font-size: 1.2em;
}
#lock {
background-image: url("${pkgs.wlogout}/share/wlogout/assets/lock.svg");
}
#logout {
background-image: url("${pkgs.wlogout}/share/wlogout/assets/logout.svg");
}
#suspend {
background-image: url("${pkgs.wlogout}/share/wlogout/assets/suspend.svg");
}
#hibernate {
background-image: url("${pkgs.wlogout}/share/wlogout/assets/hibernate.svg");
}
#shutdown {
background-image: url("${pkgs.wlogout}/share/wlogout/assets/shutdown.svg");
}
#reboot {
background-image: url("${pkgs.wlogout}/share/wlogout/assets/reboot.svg");
}
'';
};
}

18
modules/home/xdg.nix Normal file
View File

@@ -0,0 +1,18 @@
{
config,
...
}:
{
xdg = {
enable = true;
userDirs = {
enable = true;
createDirectories = true;
extraConfig = {
XDG_DEV_DIR = "${config.home.homeDirectory}/Dev";
XDG_WALLPAPERS_DIR = "${config.xdg.userDirs.pictures}/Wallpapers";
XDG_SCREENSHOTS_DIR = "${config.xdg.userDirs.pictures}/Screenshots";
};
};
};
}

10
modules/home/yazi.nix Normal file
View File

@@ -0,0 +1,10 @@
{
...
}:
{
programs.yazi = {
enable = true;
enableZshIntegration = true;
shellWrapperName = "y";
};
}

View File

@@ -1,4 +1,5 @@
{ {
pkgs,
... ...
}: }:
{ {
@@ -7,13 +8,79 @@
enable = true; enable = true;
enableZshIntegration = true; enableZshIntegration = true;
}; };
starship = {
enable = true;
enableZshIntegration = true;
settings = {
add_newline = true;
format = pkgs.lib.concatStrings [
"[](#f38ba8)"
"[ 󱄅 ](fg:#1e1e2e bg:#f38ba8)"
"[](fg:#f38ba8 bg:#fab387)"
"$directory"
"[](fg:#fab387 bg:#f9e2af)"
"$git_branch"
"$git_status"
"[](fg:#f9e2af bg:#a6e3a1)"
"$nodejs"
"$rust"
"$golang"
"$php"
"[](fg:#a6e3a1)"
"$line_break"
"$character"
];
directory = {
style = "fg:#1e1e2e bg:#fab387";
format = "[ $path ]($style)";
truncation_length = 3;
truncation_symbol = "/";
substitutions = {
"Documents" = "󰈙 ";
"Downloads" = " ";
"Music" = " ";
"Pictures" = " ";
};
};
git_branch = {
symbol = "";
style = "bg:#f9e2af";
format = "[[ $symbol $branch ](fg:#1e1e2e bg:#f9e2af)]($style)";
};
git_status = {
style = "bg:#f9e2af";
format = "[[($all_status$ahead_behind )](fg:#1e1e2e bg:#f9e2af)]($style)";
};
nodejs = {
symbol = "";
style = "bg:#a6e3a1";
format = "[[ $symbol ($version) ](fg:#1e1e2e bg:#a6e3a1)]($style)";
};
rust = {
symbol = "";
style = "bg:#a6e3a1";
format = ''[[ $symbol ($version) ](fg:#1e1e2e bg:#a6e3a1)]($style)'';
};
golang = {
symbol = "";
style = "bg:#a6e3a1";
format = "[[ $symbol ($version) ](fg:#1e1e2e bg#a6e3a1)]($style)";
};
php = {
symbol = "";
style = "bg:#a6e3a1";
format = "[[ $symbol ($version) ](fg:#1e1e2e bg:#a6e3a1)]($style)";
};
scan_timeout = 100;
};
};
zsh = { zsh = {
enable = true; enable = true;
enableCompletion = true; enableCompletion = true;
autosuggestion.enable = true; autosuggestion.enable = true;
syntaxHighlighting.enable = true; syntaxHighlighting.enable = true;
sessionVariables = { shellAliases = {
SSH_AUTH_SOCK = "/home/eclypse/.bitwarden-ssh-agent.sock"; stu = "ssh stu";
}; };
}; };
}; };

View File

@@ -9,7 +9,7 @@
]; ];
environment.systemPackages = [ environment.systemPackages = [
inputs.agenix.packages.${pkgs.system}.default # CLI Tool inputs.agenix.packages.${pkgs.stdenv.hostPlatform.system}.default # CLI Tool
]; ];
age.secrets = { age.secrets = {

View File

@@ -5,6 +5,7 @@
imports = [ imports = [
./agenix.nix ./agenix.nix
./boot.nix ./boot.nix
./desktop.nix
./fileSystems.nix ./fileSystems.nix
./fonts.nix ./fonts.nix
./network.nix ./network.nix

View File

@@ -0,0 +1,55 @@
{
inputs,
pkgs,
...
}:
let
sddm-theme = inputs.silentSDDM.packages.${pkgs.stdenv.hostPlatform.system}.default;
in
{
imports = [
inputs.mango.nixosModules.mango
];
programs = {
hyprland = {
enable = true;
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
portalPackage =
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
};
mango.enable = true;
};
environment.systemPackages = [
sddm-theme
sddm-theme.test
];
services.displayManager = {
defaultSession = "mango";
sddm = {
enable = true;
package = pkgs.kdePackages.sddm;
theme = sddm-theme.pname;
extraPackages = sddm-theme.propagatedBuildInputs;
settings = {
General = {
GreeterEnvironment = "QML2_IMPORT_PATH=${sddm-theme}/share/sddm/themes/${sddm-theme.pname}/components/,QT_IM_MODULE=qtvirtualkeyboard";
InputMethod = "qtvirtualkeyboard";
};
};
};
};
# Enable the KDE Plasma Desktop Environment.
# displayManager.sddm.enable = true;
# desktopManager.plasma5.enable = true;
# Enable the System75 Cosmic Desktop Environment
# displayManager.cosmic-greeter.enable = true;
# desktopManager.cosmic = {
# enable = true;
# xwayland.enable = true;
# };
}

View File

@@ -37,5 +37,8 @@
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
git git
]; ];
variables = {
EDITOR = "vim";
};
}; };
} }

View File

@@ -2,6 +2,15 @@
... ...
}: }:
{ {
programs = {
yubikey-manager.enable = true;
yubikey-touch-detector.enable = true;
};
services = {
yubikey-agent.enable = true;
};
security = { security = {
rtkit.enable = true; rtkit.enable = true;
}; };

View File

@@ -1,4 +1,5 @@
{ {
pkgs,
... ...
}: }:
{ {
@@ -14,16 +15,25 @@
variant = ""; variant = "";
}; };
# Enable touchpad support (enabled default in most desktopManager).
# libinput.enable = true;
}; };
# Enable the KDE Plasma Desktop Environment. # Enable touchpad support (enabled default in most desktopManager).
displayManager.sddm.enable = true; libinput.enable = true;
desktopManager.plasma6.enable = true;
# Enable CUPS to print documents. # Enable CUPS to print documents.
printing.enable = true; printing = {
enable = true;
drivers = with pkgs; [
gutenprint
cnijfilter2
];
};
avahi = {
enable = true;
nssmdns4 = true;
openFirewall = true;
};
# Enable sound with pipewire. # Enable sound with pipewire.
pulseaudio.enable = false; pulseaudio.enable = false;
@@ -40,6 +50,8 @@
# media-session.enable = true; # media-session.enable = true;
}; };
upower.enable = true;
# Enable the OpenSSH daemon. (Look into Fail2Ban in the future) # Enable the OpenSSH daemon. (Look into Fail2Ban in the future)
openssh = { openssh = {
enable = true; enable = true;
@@ -50,4 +62,14 @@
}; };
}; };
}; };
hardware = {
bluetooth = {
enable = true;
powerOnBoot = true;
};
sane = {
enable = true;
};
};
} }

View File

@@ -14,11 +14,13 @@
"https://cache.nixos.org" "https://cache.nixos.org"
"https://nix-community.cachix.org" "https://nix-community.cachix.org"
"https://devenv.cachix.org" "https://devenv.cachix.org"
"https://hyprland.cachix.org"
]; ];
trusted-public-keys = [ trusted-public-keys = [
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw=" "devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw="
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
]; ];
}; };
}; };

View File

@@ -23,7 +23,7 @@
programs.home-manager.enable = true; programs.home-manager.enable = true;
}; };
backupFileExtension = "backup18"; backupFileExtension = "backup";
}; };
users.mutableUsers = false; users.mutableUsers = false;
@@ -34,6 +34,8 @@
extraGroups = [ extraGroups = [
"networkmanager" "networkmanager"
"wheel" "wheel"
"scanner"
"lp"
]; ];
hashedPasswordFile = config.age.secrets.eclypse-password.path; hashedPasswordFile = config.age.secrets.eclypse-password.path;
shell = pkgs.zsh; shell = pkgs.zsh;

View File

@@ -1,8 +1,19 @@
{ {
pkgs,
... ...
}: }:
{ {
virtualisation.virtualbox.host.enable = true; virtualisation = {
virtualisation.virtualbox.host.enableExtensionPack = true; # virtualbox.host = {
# enable = true;
# enableExtensionPack = true;
# };
podman.enable = true;
};
environment.systemPackages = with pkgs; [
distrobox
];
users.extraGroups.vboxusers.members = [ "eclypse" ]; users.extraGroups.vboxusers.members = [ "eclypse" ];
} }