Compare commits
1 Commits
f4b3ac54ef
...
demo
| Author | SHA1 | Date | |
|---|---|---|---|
| 2f1331185a |
1114
flake.lock
generated
1114
flake.lock
generated
File diff suppressed because it is too large
Load Diff
49
flake.nix
49
flake.nix
@@ -4,8 +4,6 @@
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
|
||||
nixos-hardware.url = "github:NixOS/nixos-hardware";
|
||||
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
@@ -16,11 +14,6 @@
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
agenix = {
|
||||
url = "github:ryantm/agenix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
nvf = {
|
||||
url = "github:notashelf/nvf";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
@@ -31,47 +24,21 @@
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
inputs.home-manager.follows = "home-manager";
|
||||
};
|
||||
|
||||
stylix = {
|
||||
url = "github:nix-community/stylix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
mango.url = "github:DreamMaoMao/mango?rev=1271832e947d3d4af27b36f687edd2f2e535f051";
|
||||
|
||||
hyprland.url = "github:hyprwm/Hyprland";
|
||||
|
||||
silentSDDM = {
|
||||
url = "github:uiriansan/SilentSDDM";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
hyprdynamicmonitors.url = "github:fiffeek/hyprdynamicmonitors";
|
||||
|
||||
elephant = {
|
||||
url = "github:abenz1267/elephant";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
walker = {
|
||||
url = "github:abenz1267/walker";
|
||||
inputs.elephant.follows = "elephant";
|
||||
};
|
||||
};
|
||||
|
||||
outputs =
|
||||
{ nixpkgs, ... }@inputs:
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
host = "demo";
|
||||
in
|
||||
{
|
||||
nixosConfigurations.vanta = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = {
|
||||
inherit inputs;
|
||||
host = "vanta";
|
||||
wallpaper = "twilight-village.png";
|
||||
};
|
||||
nixosConfigurations.${host} = nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
specialArgs = { inherit inputs host; };
|
||||
modules = [
|
||||
./modules/system
|
||||
./hosts/vanta
|
||||
./hosts/${host}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
1
hosts/demo/placeholder.txt
Normal file
1
hosts/demo/placeholder.txt
Normal file
@@ -0,0 +1 @@
|
||||
Put host config here!
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
inputs.nixos-hardware.nixosModules.framework-12th-gen-intel
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
}
|
||||
@@ -1,40 +0,0 @@
|
||||
# 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" "thunderbolt" "nvme" "usbhid" "usb_storage" "sd_mod" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/1df00fd1-f531-49b9-9dc6-6d17ca39b67a";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/EE0E-CAE4";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0077" "dmask=0077" ];
|
||||
};
|
||||
|
||||
swapDevices =
|
||||
[ { device = "/dev/disk/by-uuid/fbacd982-b161-447c-a34a-7b44bc063a08"; }
|
||||
];
|
||||
|
||||
# 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.wlp166s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
@@ -4,27 +4,11 @@
|
||||
{
|
||||
imports = [
|
||||
./firefox.nix
|
||||
./foot.nix
|
||||
# ./ghostty.nix
|
||||
./git.nix
|
||||
# ./helix.nix
|
||||
./hypr
|
||||
./mango.nix
|
||||
./nvf.nix
|
||||
./packages.nix
|
||||
# ./plasma.nix
|
||||
./screenshot.nix
|
||||
./ssh.nix
|
||||
./stylix.nix
|
||||
./swaync.nix
|
||||
./plasma.nix
|
||||
./vscode.nix
|
||||
./walker.nix
|
||||
./wallpaper.nix
|
||||
./waybar
|
||||
./wlogout.nix
|
||||
./xdg.nix
|
||||
./yazi.nix
|
||||
./zed.nix
|
||||
./zsh.nix
|
||||
];
|
||||
}
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
DisableProfileImport = true;
|
||||
DisableProfileRefresh = true;
|
||||
DisableTelemetry = true;
|
||||
DisplayBookmarksToolbar = "never";
|
||||
DontCheckDefaultBrowser = true;
|
||||
EnableTrackingProtection = {
|
||||
Value = true; # Tracking protection is enabled by default in both the regular browser and private browsing
|
||||
@@ -86,7 +85,6 @@
|
||||
};
|
||||
search = {
|
||||
default = "google";
|
||||
force = true;
|
||||
engines = {
|
||||
nix-packages = {
|
||||
name = "Nix Packages";
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.foot = {
|
||||
enable = true;
|
||||
server.enable = false;
|
||||
settings = {
|
||||
main = {
|
||||
term = "xterm-256color";
|
||||
};
|
||||
mouse = {
|
||||
hide-when-typing = "yes";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.ghostty = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
settings = {
|
||||
term = "xterm-256color";
|
||||
};
|
||||
systemd.enable = true;
|
||||
};
|
||||
}
|
||||
@@ -1,40 +1,18 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
name = "Eclypsed";
|
||||
email = "Ec1ypsed@proton.me";
|
||||
signingKey = "sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIB2h6y1Al2OVotYIpwPZMjiBLAncAI2pAPgES2+gVbJqAAAABHNzaDo= ssh:";
|
||||
in
|
||||
{
|
||||
home.packages = with pkgs; [ git-ignore ];
|
||||
|
||||
xdg.configFile."git/allowed_signers".text = ''
|
||||
${email} namespaces="git" ${signingKey}
|
||||
'';
|
||||
|
||||
programs = {
|
||||
git = {
|
||||
enable = true;
|
||||
settings = {
|
||||
user = { inherit name email; };
|
||||
init = {
|
||||
defaultBranch = "main";
|
||||
};
|
||||
gpg.ssh.allowedSignersFile = "${config.xdg.configHome}/git/allowed_signers";
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userName = "Eclypsed";
|
||||
userEmail = "Ec1ypsed@proton.me";
|
||||
extraConfig = {
|
||||
init = {
|
||||
defaultBranch = "main";
|
||||
};
|
||||
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 ];
|
||||
}
|
||||
|
||||
@@ -1,78 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.helix = {
|
||||
enable = true;
|
||||
extraPackages = with pkgs; [
|
||||
basedpyright
|
||||
ruff
|
||||
# pylyzer
|
||||
isort
|
||||
black
|
||||
nixd
|
||||
nixfmt
|
||||
];
|
||||
languages = {
|
||||
language = [
|
||||
{
|
||||
name = "python";
|
||||
language-servers = [
|
||||
"basedpyright"
|
||||
"ruff"
|
||||
# "pylyzer"
|
||||
];
|
||||
auto-format = true;
|
||||
formatter = {
|
||||
command = "bash"; # We have to use bash to call both isort and black
|
||||
args = [
|
||||
"-c"
|
||||
"isort --profile black - | black --quiet --line-length=79 -" # Line length of 79 in accordance with PEP 8
|
||||
];
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "nix";
|
||||
language-servers = [ "nixd" ];
|
||||
auto-format = true;
|
||||
formatter = {
|
||||
command = "nixfmt";
|
||||
};
|
||||
}
|
||||
];
|
||||
language-server = {
|
||||
basedpyright.config.python.analysis = {
|
||||
typeCheckingMode = "strict";
|
||||
};
|
||||
ruff = {
|
||||
command = "ruff";
|
||||
args = [ "server" ];
|
||||
};
|
||||
# pylyzer = {
|
||||
# command = "pylyzer";
|
||||
# args = [ "--server" ];
|
||||
# };
|
||||
nixd = {
|
||||
command = "nixd";
|
||||
};
|
||||
};
|
||||
};
|
||||
settings = {
|
||||
editor = {
|
||||
line-number = "relative";
|
||||
cursorline = true;
|
||||
color-modes = true;
|
||||
cursor-shape = {
|
||||
insert = "bar";
|
||||
normal = "block";
|
||||
select = "underline";
|
||||
};
|
||||
indent-guides = {
|
||||
render = true;
|
||||
};
|
||||
};
|
||||
theme = "catppuccin_mocha";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
./hypridle.nix
|
||||
./hyprland.nix
|
||||
./hyprlock.nix
|
||||
./keybinds.nix
|
||||
./monitors.nix
|
||||
./pyprland.nix
|
||||
];
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
services.hypridle = {
|
||||
enable = true;
|
||||
settings = {
|
||||
general = {
|
||||
lock_cmd = "pidof hyprlock || hyprlock --grace 10";
|
||||
before_sleep_cmd = "loginctl lock-session";
|
||||
fail_timeout = 1000;
|
||||
};
|
||||
listener = [
|
||||
{
|
||||
timeout = 300;
|
||||
on-timeout = "loginctl lock-session";
|
||||
}
|
||||
{
|
||||
timeout = 450;
|
||||
on-timeout = "hyprctl dispatch dpms off";
|
||||
on-resume = "hyprctl dispatch dpms on";
|
||||
}
|
||||
{
|
||||
timeout = 600;
|
||||
on-timeout = "systemctl suspend || loginctl suspend";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,110 +0,0 @@
|
||||
{
|
||||
# inputs,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
hyprpolkitagent
|
||||
];
|
||||
|
||||
# xdg.configFile."uwsm/env".source =
|
||||
# "${config.home.sessionVariablesPackage}/etc/profile.d/hm-session-vars.sh";
|
||||
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
# systemd.enable = false;
|
||||
package = null;
|
||||
portalPackage = null;
|
||||
|
||||
settings = {
|
||||
source = [
|
||||
"${config.xdg.configHome}/hypr/monitors.conf"
|
||||
];
|
||||
|
||||
animations = {
|
||||
# Stolen from https://github.com/Vobledoble/nixparency-dots/
|
||||
enabled = true;
|
||||
bezier = [
|
||||
"easeOutQuint,0.23,1,0.32,1"
|
||||
"easeInOutCubic,0.65,0.05,0.36,1"
|
||||
"linear,0,0,1,1"
|
||||
"almostLinear,0.5,0.5,0.75,1.0"
|
||||
"quick,0.15,0,0.1,1"
|
||||
];
|
||||
animation = [
|
||||
"global, 1, 10, default"
|
||||
"border, 1, 5.39, easeOutQuint"
|
||||
"windows, 1, 4.79, easeOutQuint"
|
||||
"windowsIn, 1, 4.1, easeOutQuint, popin 87%"
|
||||
"windowsOut, 1, 1.49, linear, popin 87%"
|
||||
"fadeIn, 1, 1.73, almostLinear"
|
||||
"fadeOut, 1, 1.46, almostLinear"
|
||||
"fade, 1, 3.03, quick"
|
||||
"layers, 1, 3.81, easeOutQuint"
|
||||
"layersIn, 1, 4, easeOutQuint, fade"
|
||||
"layersOut, 1, 1.5, linear, fade"
|
||||
"fadeLayersIn, 1, 1.79, almostLinear"
|
||||
"fadeLayersOut, 1, 1.39, almostLinear"
|
||||
"workspaces, 1, 1.94, almostLinear, fade"
|
||||
"workspacesIn, 1, 1.21, almostLinear, fade"
|
||||
"workspacesOut, 1, 1.94, almostLinear, fade"
|
||||
];
|
||||
};
|
||||
|
||||
general = {
|
||||
gaps_in = 5;
|
||||
gaps_out = 10;
|
||||
border_size = 2;
|
||||
"col.active_border" = "rgb(4479A4)";
|
||||
"col.inactive_border" = "rgba(4479A480)";
|
||||
};
|
||||
|
||||
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;
|
||||
popups = true;
|
||||
};
|
||||
|
||||
shadow.enabled = false;
|
||||
};
|
||||
|
||||
misc = {
|
||||
vfr = true;
|
||||
};
|
||||
|
||||
layerrule = [
|
||||
"blur, waybar" # Add blur to waybar
|
||||
"blurpopups, waybar" # Blur waybar popups too!
|
||||
"ignorealpha 0.2, waybar" # Make it so transparent parts are ignored
|
||||
];
|
||||
|
||||
exec-once = [
|
||||
"systemctl --user enable --now hypridle.service"
|
||||
"systemctl --user enable --now hyprpolkitagent.service"
|
||||
"systemctl --user enable app-com.mitchellh.ghostty.service"
|
||||
"wpaperd -d"
|
||||
"swaync"
|
||||
"pypr"
|
||||
];
|
||||
|
||||
env = [
|
||||
"NIXOS_OZONE_WL, 1"
|
||||
"HYPRSHOT_DIR, ${config.xdg.userDirs.extraConfig.XDG_SCREENSHOTS_DIR}"
|
||||
"XDG_CURRENT_DESKTOP, Hyprland"
|
||||
"XDG_SESSION_TYPE, wayland"
|
||||
"XDG_SESSION_DESKTOP, Hyprland"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,110 +0,0 @@
|
||||
{
|
||||
config,
|
||||
wallpaper,
|
||||
...
|
||||
}:
|
||||
let
|
||||
primary-monitor = "eDP-1";
|
||||
|
||||
text-color = "rgba(${config.lib.stylix.colors.base0F}FF)";
|
||||
entry-background-color = "rgba(${config.lib.stylix.colors.base0F}11)";
|
||||
entry-border-color = "rgba(${config.lib.stylix.colors.base0F}55)";
|
||||
font-family = "Rubik Light";
|
||||
in
|
||||
{
|
||||
programs.hyprlock = {
|
||||
enable = true;
|
||||
settings = {
|
||||
general = {
|
||||
hide_cursor = true;
|
||||
};
|
||||
background = [
|
||||
{
|
||||
path = "${config.xdg.userDirs.extraConfig.XDG_WALLPAPERS_DIR}/${wallpaper}";
|
||||
blur_passes = 3;
|
||||
}
|
||||
];
|
||||
input-field = [
|
||||
{
|
||||
monitor = primary-monitor;
|
||||
size = "250, 50";
|
||||
outline_thickness = 2;
|
||||
dots_size = 0.1;
|
||||
dots_spacing = 0.3;
|
||||
outer_color = entry-border-color;
|
||||
inner_color = entry-background-color;
|
||||
font_color = text-color;
|
||||
fade_on_empty = true;
|
||||
|
||||
position = "0, 20";
|
||||
halign = "center";
|
||||
valign = "center";
|
||||
}
|
||||
];
|
||||
label = [
|
||||
{
|
||||
# Caps Lock Warning
|
||||
monitor = primary-monitor;
|
||||
text = "cmd[update:250] check-capslock";
|
||||
color = text-color;
|
||||
font_size = 13;
|
||||
font_family = font-family;
|
||||
position = "0, -25";
|
||||
halign = "center";
|
||||
valign = "center";
|
||||
}
|
||||
{
|
||||
# Clock
|
||||
monitor = primary-monitor;
|
||||
text = "$TIME";
|
||||
color = text-color;
|
||||
font_size = 65;
|
||||
font_family = font-family;
|
||||
|
||||
position = "0, 300";
|
||||
halign = "center";
|
||||
valign = "center";
|
||||
}
|
||||
{
|
||||
# Date
|
||||
monitor = primary-monitor;
|
||||
text = "cmd[update:5000] date +\"%A, %B %d\"";
|
||||
color = text-color;
|
||||
font_size = 17;
|
||||
font_family = font-family;
|
||||
|
||||
position = "0, 240";
|
||||
halign = "center";
|
||||
valign = "center";
|
||||
}
|
||||
{
|
||||
# User
|
||||
monitor = primary-monitor;
|
||||
text = " $USER";
|
||||
color = text-color;
|
||||
outline_thickness = 2;
|
||||
dots_size = 0.2; # Scale of input-field height, 0.2 - 0.8
|
||||
dots_spacing = 0.2; # Scale of dots' absolute size, 0.0 - 1.0
|
||||
dots_center = true;
|
||||
font_size = 20;
|
||||
font_family = font-family;
|
||||
position = "0, 50";
|
||||
halign = "center";
|
||||
valign = "bottom";
|
||||
}
|
||||
{
|
||||
# Status
|
||||
monitor = primary-monitor;
|
||||
text = "cmd[update:5000] hyprlock-status";
|
||||
color = text-color;
|
||||
font_size = 14;
|
||||
font_family = font-family;
|
||||
|
||||
position = "30, -30";
|
||||
halign = "left";
|
||||
valign = "top";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,85 +0,0 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
exec = "hyprctl dispatch submap global";
|
||||
submap = "global";
|
||||
|
||||
# MY STUFF
|
||||
"$mod" = "SUPER";
|
||||
|
||||
bind = [
|
||||
"$mod, Q, killactive"
|
||||
"$mod, W, exec, foot"
|
||||
"$mod, S, exec, walker"
|
||||
"$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"
|
||||
|
||||
# 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"
|
||||
"ALT, XF86AudioMute, exec, pamixer --default-source -t"
|
||||
|
||||
# Notification Center
|
||||
"$mod, n, exec, swaync-client -t -sw"
|
||||
|
||||
# Scratchpads
|
||||
"$mod, TAB, exec, pypr toggle term"
|
||||
]
|
||||
++ (
|
||||
# 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"
|
||||
];
|
||||
|
||||
bindel = [
|
||||
# Volume Controls
|
||||
", XF86AudioRaiseVolume, exec, pamixer -i 5"
|
||||
", XF86AudioLowerVolume, exec, pamixer -d 5"
|
||||
"ALT, XF86AudioRaiseVolume, exec, pamixer --default-source -i 5"
|
||||
"ALT, XF86AudioLowerVolume, exec, pamixer --default-source -d 5"
|
||||
|
||||
# Brightness Controls
|
||||
", XF86MonBrightnessUp, exec, brightnessctl set 5%+"
|
||||
", XF86MonBrightnessDown, exec, brightnessctl set 5%-"
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
inputs.hyprdynamicmonitors.homeManagerModules.default
|
||||
];
|
||||
|
||||
home.packages = [
|
||||
inputs.hyprdynamicmonitors.packages.${pkgs.stdenv.hostPlatform.system}.default
|
||||
];
|
||||
|
||||
home.hyprdynamicmonitors = {
|
||||
enable = true;
|
||||
installExamples = false;
|
||||
};
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
pyprland
|
||||
];
|
||||
|
||||
xdg.configFile."hypr/pyprland.toml".text = ''
|
||||
[pyprland]
|
||||
plugins = ["scratchpads"]
|
||||
|
||||
[scratchpads.term]
|
||||
command = "foot --app-id term_dropdown"
|
||||
class = "term_dropdown"
|
||||
animation = "fromTop"
|
||||
margin = 150
|
||||
max_size = "1920px 1080px"
|
||||
multi = false
|
||||
'';
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
{
|
||||
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
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -61,6 +61,9 @@
|
||||
# Formatting files
|
||||
formatter.conform-nvim = {
|
||||
enable = true;
|
||||
setupOpts = {
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
binds = {
|
||||
@@ -218,17 +221,6 @@
|
||||
treesitter.enable = true;
|
||||
};
|
||||
|
||||
rust = {
|
||||
enable = true;
|
||||
# crates = {
|
||||
# enable = true;
|
||||
# };
|
||||
dap.enable = true;
|
||||
format.enable = true;
|
||||
lsp.enable = true;
|
||||
treesitter.enable = true;
|
||||
};
|
||||
|
||||
tailwind = {
|
||||
enable = true;
|
||||
lsp.enable = true;
|
||||
|
||||
@@ -9,22 +9,19 @@
|
||||
discord
|
||||
sqlitebrowser
|
||||
drawio
|
||||
check-capslock
|
||||
bitwarden-desktop
|
||||
|
||||
# Libre Office
|
||||
libreoffice-qt
|
||||
hunspell
|
||||
hunspellDicts.en_US
|
||||
|
||||
# KDE
|
||||
kdePackages.kate
|
||||
|
||||
# CD Stuff
|
||||
picard
|
||||
heybrochecklog
|
||||
rsgain
|
||||
|
||||
playerctl
|
||||
pamixer
|
||||
pavucontrol
|
||||
brightnessctl
|
||||
obsidian
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
{
|
||||
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"
|
||||
'';
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
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;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,55 +0,0 @@
|
||||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
inputs.stylix.homeModules.stylix
|
||||
];
|
||||
|
||||
stylix = {
|
||||
enable = true;
|
||||
autoEnable = false;
|
||||
polarity = "dark";
|
||||
base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml";
|
||||
fonts = {
|
||||
monospace = {
|
||||
name = "JetBrainsMono Nerd Font"; # "FiraCode Nerd Font";
|
||||
package = pkgs.nerd-fonts.jetbrains-mono; # pkgs.nerd-fonts.fira-code;
|
||||
};
|
||||
};
|
||||
targets = {
|
||||
ghostty.enable = true;
|
||||
gtk.enable = true;
|
||||
firefox = {
|
||||
enable = true;
|
||||
profileNames = [ "eclypse" ];
|
||||
colorTheme.enable = true;
|
||||
firefoxGnomeTheme.enable = true;
|
||||
};
|
||||
foot.enable = true;
|
||||
lazygit.enable = true;
|
||||
starship.enable = true;
|
||||
swaync.enable = true;
|
||||
yazi.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
home.pointerCursor = {
|
||||
enable = true;
|
||||
gtk.enable = true;
|
||||
name = "Catppuccin-Mocha-Dark-Cursors";
|
||||
package = pkgs.catppuccin-cursors.mochaDark;
|
||||
size = 16;
|
||||
};
|
||||
|
||||
gtk = {
|
||||
enable = true;
|
||||
colorScheme = "dark";
|
||||
iconTheme = {
|
||||
name = "Adwaita";
|
||||
package = pkgs.adwaita-icon-theme;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,104 +0,0 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
services.swaync = {
|
||||
enable = true;
|
||||
settings = {
|
||||
positionX = "right";
|
||||
positionY = "top";
|
||||
cssPriority = "user"; # "application"
|
||||
|
||||
control-center-width = 380;
|
||||
control-center-height = 860;
|
||||
control-center-margin-top = 10;
|
||||
control-center-margin-bottom = 10;
|
||||
control-center-margin-right = 10;
|
||||
control-center-margin-left = 10;
|
||||
|
||||
notification-window-width = 400;
|
||||
notification-icon-size = 48;
|
||||
notification-body-image-height = 100;
|
||||
notification-body-image-width = 200;
|
||||
|
||||
timeout = 4;
|
||||
timeout-low = 2;
|
||||
timeout-critical = 6;
|
||||
|
||||
fit-to-screen = false;
|
||||
keyboard-shortcuts = true;
|
||||
image-visibility = "when-available";
|
||||
transition-time = 200;
|
||||
hide-on-clear = false;
|
||||
hide-on-action = false;
|
||||
script-fail-notify = true;
|
||||
scripts = {
|
||||
example-script = {
|
||||
exec = "echo 'Do something...'";
|
||||
urgency = "Normal";
|
||||
};
|
||||
};
|
||||
notification-visibility = {
|
||||
example-name = {
|
||||
state = "muted";
|
||||
urgency = "low";
|
||||
app-name = "Spotify";
|
||||
};
|
||||
};
|
||||
widgets = [
|
||||
"label"
|
||||
"buttons-grid"
|
||||
"mpris"
|
||||
"dnd"
|
||||
"title"
|
||||
"notifications"
|
||||
];
|
||||
widget-config = {
|
||||
title = {
|
||||
text = "Notifications";
|
||||
clear-all-button = true;
|
||||
button-text = " ";
|
||||
};
|
||||
dnd = {
|
||||
text = "Do Not Disturb";
|
||||
};
|
||||
label = {
|
||||
max-lines = 1;
|
||||
text = " ";
|
||||
};
|
||||
mpris = {
|
||||
image-size = 96;
|
||||
image-radius = 12;
|
||||
};
|
||||
volume = {
|
||||
label = "";
|
||||
show-per-app = true;
|
||||
};
|
||||
buttons-grid = {
|
||||
actions = [
|
||||
{
|
||||
label = "";
|
||||
command = "pamixer -t";
|
||||
}
|
||||
{
|
||||
label = "";
|
||||
command = "pamixer --default-source -t";
|
||||
}
|
||||
{
|
||||
label = "";
|
||||
command = "nmtui";
|
||||
}
|
||||
# {
|
||||
# label = "";
|
||||
# command = "blueman-manager";
|
||||
# }
|
||||
# {
|
||||
# label = "";
|
||||
# command = "nwg-look";
|
||||
# }
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -17,7 +17,6 @@
|
||||
aaron-bond.better-comments
|
||||
yzane.markdown-pdf
|
||||
mechatroner.rainbow-csv
|
||||
catppuccin.catppuccin-vsc
|
||||
|
||||
# Remote development
|
||||
ms-vscode-remote.remote-ssh
|
||||
@@ -47,14 +46,6 @@
|
||||
# General
|
||||
"editor.formatOnSave" = true;
|
||||
"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
|
||||
"editor.defaultFormatter" = "esbenp.prettier-vscode";
|
||||
@@ -94,13 +85,6 @@
|
||||
|
||||
# C / C++
|
||||
"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";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,67 +0,0 @@
|
||||
{
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
inputs.walker.homeManagerModules.default
|
||||
];
|
||||
|
||||
programs.walker = {
|
||||
enable = true;
|
||||
runAsService = true;
|
||||
config = {
|
||||
close_when_open = true;
|
||||
click_to_close = true;
|
||||
providers = {
|
||||
default = [ "desktopapplications" ];
|
||||
max_results = 50;
|
||||
prefixes = [
|
||||
{
|
||||
prefix = ";";
|
||||
provider = "providerlist";
|
||||
}
|
||||
{
|
||||
prefix = ">";
|
||||
provider = "runner";
|
||||
}
|
||||
{
|
||||
prefix = "/";
|
||||
provider = "files";
|
||||
}
|
||||
{
|
||||
prefix = ".";
|
||||
provider = "symbols";
|
||||
}
|
||||
{
|
||||
prefix = "!";
|
||||
provider = "todo";
|
||||
}
|
||||
{
|
||||
prefix = "%";
|
||||
provider = "bookmarks";
|
||||
}
|
||||
{
|
||||
prefix = "=";
|
||||
provider = "calc";
|
||||
}
|
||||
{
|
||||
prefix = "@";
|
||||
provider = "websearch";
|
||||
}
|
||||
{
|
||||
prefix = ":";
|
||||
provider = "clipboard";
|
||||
}
|
||||
{
|
||||
prefix = "$";
|
||||
provider = "windows";
|
||||
}
|
||||
];
|
||||
clipboard = {
|
||||
time_format = "%d.%m. - %H:%M"; # format for the clipboard item date
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
{
|
||||
config,
|
||||
wallpaper,
|
||||
...
|
||||
}:
|
||||
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}/${wallpaper}";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,140 +0,0 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
let
|
||||
separator_blank = {
|
||||
format = "";
|
||||
interval = "once";
|
||||
tooltip = false;
|
||||
};
|
||||
in
|
||||
{
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
systemd.enable = true;
|
||||
settings = [
|
||||
{
|
||||
layer = "top";
|
||||
position = "top";
|
||||
margin-left = 10;
|
||||
margin-right = 10;
|
||||
margin-top = 5;
|
||||
fixed-center = true;
|
||||
reload_style_on_change = true;
|
||||
|
||||
"hyprland/workspaces" = import ./modules/hyprland-workspaces.nix { };
|
||||
"custom/menu" = import ./modules/menu.nix { };
|
||||
"hyprland/window" = import ./modules/hyprland-window.nix { };
|
||||
"disk" = import ./modules/disk.nix { };
|
||||
"cpu" = import ./modules/cpu.nix { };
|
||||
"memory" = import ./modules/memory.nix { };
|
||||
"temperature" = import ./modules/temperature.nix { };
|
||||
"idle_inhibitor" = import ./modules/idle-inhibitor.nix { };
|
||||
"tray" = import ./modules/tray.nix { };
|
||||
"network" = import ./modules/network.nix { };
|
||||
"wireplumber" = import ./modules/wireplumber.nix { };
|
||||
"backlight" = import ./modules/backlight.nix { };
|
||||
"mpris" = import ./modules/mpris.nix { };
|
||||
"battery" = import ./modules/battery.nix { full-at = 80; }; # Change this to come from the TLP setting
|
||||
"clock" = import ./modules/clock.nix { };
|
||||
"custom/power" = import ./modules/power.nix { };
|
||||
"custom/separator#blank" = separator_blank;
|
||||
|
||||
modules-left = [
|
||||
"custom/menu"
|
||||
"custom/separator#blank"
|
||||
"clock"
|
||||
];
|
||||
|
||||
modules-center = [
|
||||
"hyprland/workspaces"
|
||||
];
|
||||
|
||||
modules-right = [
|
||||
"tray"
|
||||
"custom/separator#blank"
|
||||
"group/motherboard"
|
||||
"custom/separator#blank"
|
||||
"wireplumber"
|
||||
"custom/separator#blank"
|
||||
"custom/power"
|
||||
];
|
||||
|
||||
"group/motherboard" = {
|
||||
orientation = "inherit";
|
||||
modules = [
|
||||
"cpu"
|
||||
"memory"
|
||||
"temperature"
|
||||
"disk"
|
||||
];
|
||||
};
|
||||
}
|
||||
];
|
||||
# style = ./style.css;
|
||||
style = ''
|
||||
@define-color base00 #192435; /* Darkest background (night sky / deep shadows) */
|
||||
@define-color base01 #243449; /* Slightly lighter background */
|
||||
@define-color base02 #36455D; /* Selection / inactive UI */
|
||||
@define-color base03 #51637E; /* Comments / subtle foreground */
|
||||
|
||||
@define-color base04 #8FA3BA; /* Dark foreground (status bars) */
|
||||
@define-color base05 #C7D2DF; /* Default foreground (text) */
|
||||
@define-color base06 #E3EAF2; /* Light foreground (highlighted text) */
|
||||
@define-color base07 #F4D9C7; /* Bright foreground (lantern light) */
|
||||
|
||||
@define-color base08 #D88C7A; /* Red / Errors (warm wood & lantern glow) */
|
||||
@define-color base09 #E5AD97; /* Orange / Numbers / Constants */
|
||||
@define-color base0A #E9C48A; /* Yellow / Classes / Warnings */
|
||||
@define-color base0B #9FBFA8; /* Green / Strings */
|
||||
@define-color base0C #8FB6C8; /* Cyan / Support / Regex */
|
||||
@define-color base0D #7FA6D9; /* Blue / Functions / Keywords */
|
||||
@define-color base0E #B69BCB; /* Purple / Types / Specials */
|
||||
@define-color base0F #B0896A; /* Brown / Deprecated */
|
||||
|
||||
* {
|
||||
all: unset;
|
||||
font-family: "JetBrainsMono Nerd Font Propo"; /* The Propo(rtional) variant of the ensures icons are properly spaced */
|
||||
font-feature-settings: '"zero", "tnum", "ss01", "ss02", "ss03", "cv01"';
|
||||
font-weight: 700;
|
||||
min-height: 0;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.module {
|
||||
padding: 0 6px;
|
||||
}
|
||||
|
||||
.modules-left,
|
||||
.modules-center,
|
||||
.modules-right {
|
||||
background: @base00;
|
||||
padding: 6px 8px;
|
||||
border-color: @base03;
|
||||
border-width: 1.5px;
|
||||
border-style: solid;
|
||||
border-radius: 0.75rem;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
color: @base04;
|
||||
font-size: 0.9rem;
|
||||
padding: 0 7px;
|
||||
}
|
||||
|
||||
#motherboard,
|
||||
#custom-menu {
|
||||
color: @base04;
|
||||
}
|
||||
|
||||
#wireplumber,
|
||||
#custom-power,
|
||||
#clock {
|
||||
color: @base05;
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
format = "{icon}";
|
||||
tooltip-format = "Backlight {percent}%";
|
||||
format-icons = [
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
];
|
||||
icon-size = 10;
|
||||
on-scroll-down = "brightnessctl set 10%-";
|
||||
on-scroll-up = "brightnessctl set +10%";
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
{
|
||||
full-at ? 100,
|
||||
...
|
||||
}:
|
||||
{
|
||||
inherit full-at;
|
||||
states = {
|
||||
# These values are percentages based on `full-at`
|
||||
good = 95;
|
||||
warning = 30;
|
||||
critical = 15;
|
||||
};
|
||||
format = "{icon} {capacity}%";
|
||||
format-charging = " {capacity}%";
|
||||
format-plugged = " {capacity}%";
|
||||
format-full = "{icon} Full";
|
||||
format-icons = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
format-time = "{H}h {M}min";
|
||||
tooltip = true;
|
||||
tooltip-format = "{timeTo} {power}w";
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
format = "";
|
||||
format-disabled = "";
|
||||
format-connected = " {num_connections}";
|
||||
tooltip-format = " {device_alias}";
|
||||
tooltip-format-connected = "{device_enumerate}";
|
||||
tooltip-format-enumerate-connected = " {device_alias} {device_battery_percentage}%";
|
||||
tooltip = true;
|
||||
# on-click = "blueman-manager";
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
interval = 1; # Poll every second
|
||||
format = "{:%H:%M - %d/%b}";
|
||||
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>";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
format = "{usage}% ";
|
||||
interval = 1;
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
interval = 30;
|
||||
format = "{percentage_used}% ";
|
||||
tooltip = true;
|
||||
tooltip-format = "{specific_free:0.1f}/{specific_total:0.1f}GiB";
|
||||
unit = "GiB";
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
format = "{title}";
|
||||
max-length = 40;
|
||||
separate-outputs = true; # List different titles for each monitor
|
||||
offscreen-css = true; # No idea what this does
|
||||
offscreen-css-text = "(inactive)"; # No idea what this does either
|
||||
rewrite = {
|
||||
"(.*) — Mozilla Firefox" = " Firefox";
|
||||
# Foot terminal doesn't display any title for some reason
|
||||
# Find a fix
|
||||
};
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
active-only = false; # Show all workspaces
|
||||
all-outputs = true; # Show all workspace groups
|
||||
format = "{icon}";
|
||||
show-special = false; # Hide Hyprland's "special" workspaces
|
||||
on-click = "activate";
|
||||
on-scroll-up = "hyprctl dispatch workspace r+1";
|
||||
on-scroll-down = "hyprctl dispatch workspace r-1";
|
||||
persistent-workspaces = {
|
||||
"1" = [ ];
|
||||
"2" = [ ];
|
||||
"3" = [ ];
|
||||
"4" = [ ];
|
||||
"5" = [ ];
|
||||
};
|
||||
format-icons = {
|
||||
active = "";
|
||||
default = "";
|
||||
};
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
format = "{icon}";
|
||||
format-icons = {
|
||||
activated = " ";
|
||||
deactivated = " ";
|
||||
};
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
interval = 10;
|
||||
format = "{used:0.1f}G ";
|
||||
format-alt = "{percentage}% ";
|
||||
format-alt-click = "click";
|
||||
tooltip = true;
|
||||
tooltip-format = "{used:0.1f}/{total:0.1f}GiB";
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
format = "{}";
|
||||
exec = "echo ; echo app launcher";
|
||||
interval = 86400;
|
||||
tooltip = true;
|
||||
on-click = "walker";
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
interval = 10;
|
||||
format = "{player_icon} ";
|
||||
format-paused = "{status_icon} <i>{dynamic}</i>";
|
||||
player-icons = {
|
||||
chromium = "";
|
||||
mpd = "";
|
||||
default = "";
|
||||
firefox = "";
|
||||
kdeconnect = "";
|
||||
mopidy = "";
|
||||
mpv = "";
|
||||
spotify = "";
|
||||
vlc = "";
|
||||
};
|
||||
status-icons = {
|
||||
paused = "";
|
||||
playing = "";
|
||||
stopped = "";
|
||||
};
|
||||
max-length = 30;
|
||||
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
format = "{ifname}";
|
||||
format-wifi = "{icon}";
|
||||
format-ethernet = "";
|
||||
format-disconnected = "";
|
||||
format-linked = " {ifname} (No IP)";
|
||||
tooltip-format = "{ipaddr} {bandwidthUpBytes} {bandwidthDownBytes}";
|
||||
tooltip-format-wifi = "{essid} {icon} {signalStrength}%";
|
||||
tooltip-format-ethernet = "{essid} ";
|
||||
tooltip-format-disconnected = " Disconnected";
|
||||
max-length = 50;
|
||||
format-icons = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
format = "⏻";
|
||||
exec = "echo ; echo power";
|
||||
on-click = "wlogout";
|
||||
interval = 86400; # once every day
|
||||
tooltip = true;
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
interval = 10;
|
||||
tooltip = true;
|
||||
# Thermal Zone 12 refers to the CPU package temp
|
||||
# This might vary between devices. Maybe make it an input?
|
||||
thermal-zone = 12;
|
||||
critical-threshold = 85;
|
||||
format-critical = "{temperatureC}°C {icon}";
|
||||
format = "{temperatureC}°C {icon}";
|
||||
format-icons = [ "" ];
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
icon-size = 15;
|
||||
spacing = 8;
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
format = "{icon} {volume}% {format_source}";
|
||||
format-muted = " {format_source}";
|
||||
format-source = " {volume}%";
|
||||
format-source-muted = "";
|
||||
format-icons = {
|
||||
headphone = "";
|
||||
hands-free = "";
|
||||
headset = "";
|
||||
phone = "";
|
||||
portable = "";
|
||||
car = "";
|
||||
default = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
};
|
||||
scroll-step = 5.0;
|
||||
on-click = "pavucontrol -t 3";
|
||||
on-click-right = "pavucontrol -t 4";
|
||||
tooltip-format = "{node_name} {volume}%\n{source_desc} {source_volume}%";
|
||||
}
|
||||
@@ -1,116 +0,0 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
wallpaper,
|
||||
...
|
||||
}:
|
||||
{
|
||||
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 = "uwsm stop";
|
||||
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";
|
||||
}
|
||||
];
|
||||
# * IMPORTANT
|
||||
# * The for some reason the SVG icons will not be rendered when wlogout is called
|
||||
# * from a hyprland keybind unless librsvg is installed.
|
||||
# * See packages.nix (programs.gdk-pixbuf.modulePackages = [ pkgs.librsvg ];)
|
||||
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}/${wallpaper}");
|
||||
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");
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
{
|
||||
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";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.yazi = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
shellWrapperName = "y";
|
||||
};
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.zed-editor = {
|
||||
enable = true;
|
||||
extensions = [
|
||||
"nix"
|
||||
"catppuccin"
|
||||
];
|
||||
extraPackages = [ pkgs.nixd ];
|
||||
|
||||
userSettings = {
|
||||
theme = "Catppuccin Mocha";
|
||||
features = {
|
||||
edit_prediction_provider = "copilot";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,5 +1,4 @@
|
||||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
@@ -8,143 +7,13 @@
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
fastfetch = {
|
||||
enable = true;
|
||||
};
|
||||
fzf = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
starship = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
settings = {
|
||||
add_newline = true;
|
||||
format = pkgs.lib.concatStrings [
|
||||
"[╭─](fg:base02)"
|
||||
"[ ](bg:base02 fg:base07)"
|
||||
"[](bg:base07 fg:base02)"
|
||||
"[( $username(@$hostname) )](bg:base07 fg:base02)"
|
||||
"[](bg:red fg:base07)"
|
||||
"[ $directory ](bg:red fg:base02)"
|
||||
"[](bg:cyan fg:red)"
|
||||
"[( $git_branch $git_status )](bg:cyan fg:base02)"
|
||||
"[](fg:cyan bg:blue)"
|
||||
"[(( $golang)( $nodejs)( $rust)( $python) )](bg:blue fg:base02)"
|
||||
"[](fg:blue)"
|
||||
"$line_break"
|
||||
"[╰─](fg:base02)"
|
||||
"$character"
|
||||
];
|
||||
username = {
|
||||
show_always = true;
|
||||
style_user = "none";
|
||||
style_root = "none";
|
||||
format = "[$user]($style)";
|
||||
};
|
||||
hostname = {
|
||||
style = "none";
|
||||
format = "[$hostname]($style)";
|
||||
ssh_only = false;
|
||||
};
|
||||
character = {
|
||||
success_symbol = "[❯](bold fg:green)";
|
||||
error_symbol = "[✘](bold fg:red)";
|
||||
vimcmd_symbol = "[❮](bold fg:green)";
|
||||
vimcmd_replace_one_symbol = "[❮](bold fg:lavender)";
|
||||
vimcmd_replace_symbol = "[❮](bold fg:lavender)";
|
||||
vimcmd_visual_symbol = "[❮](bold fg:yellow)";
|
||||
};
|
||||
directory = {
|
||||
style = "none";
|
||||
format = "[$path]($style)";
|
||||
truncation_length = 3;
|
||||
truncation_symbol = "…/";
|
||||
substitutions = {
|
||||
"Documents" = " ";
|
||||
"Downloads" = " ";
|
||||
"Music" = " ";
|
||||
"Pictures" = " ";
|
||||
};
|
||||
};
|
||||
git_branch = {
|
||||
symbol = "";
|
||||
style = "none";
|
||||
format = "[$symbol $branch]($style)";
|
||||
};
|
||||
git_status = {
|
||||
style = "none";
|
||||
format = "[$all_status$ahead_behind]($style)";
|
||||
};
|
||||
golang = {
|
||||
symbol = "";
|
||||
style = "none";
|
||||
format = "[$symbol( $version)]($style)";
|
||||
};
|
||||
nodejs = {
|
||||
symbol = "";
|
||||
style = "none";
|
||||
format = "[$symbol( $version)]($style)";
|
||||
};
|
||||
python = {
|
||||
symbol = "";
|
||||
style = "none";
|
||||
format = "[$symbol( $version)( \\($virtualenv\\))]($style)";
|
||||
};
|
||||
rust = {
|
||||
symbol = "";
|
||||
style = "none";
|
||||
format = "[$symbol( $version)]($style)";
|
||||
};
|
||||
scan_timeout = 100;
|
||||
};
|
||||
};
|
||||
zoxide = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
zsh = {
|
||||
enable = true;
|
||||
enableCompletion = false;
|
||||
antidote = {
|
||||
enable = true;
|
||||
plugins = [
|
||||
"Aloxaf/fzf-tab"
|
||||
];
|
||||
};
|
||||
enableCompletion = true;
|
||||
autosuggestion.enable = true;
|
||||
history = {
|
||||
append = true;
|
||||
findNoDups = true;
|
||||
ignoreSpace = true;
|
||||
ignoreDups = true;
|
||||
saveNoDups = true;
|
||||
share = true;
|
||||
};
|
||||
historySubstringSearch = {
|
||||
enable = true;
|
||||
searchDownKey = "^p";
|
||||
searchUpKey = "^n";
|
||||
};
|
||||
initContent = ''
|
||||
# disable sort when completing `git checkout`
|
||||
zstyle ':completion:*:git-checkout:*' sort false
|
||||
# set descriptions format to enable group support
|
||||
# NOTE: don't use escape sequences (like '%F{red}%d%f') here, fzf-tab will ignore them
|
||||
zstyle ':completion:*:descriptions' format '[%d]'
|
||||
# preview directory's content when completing cd or zoxide
|
||||
zstyle ':fzf-tab:complete:cd:*' fzf-preview 'ls --color $realpath'
|
||||
zstyle ':fzf-tab:complete:__zoxide_z:*' fzf-preview 'ls --color $realpath'
|
||||
# custom fzf flags
|
||||
# NOTE: fzf-tab does not follow FZF_DEFAULT_OPTS by default
|
||||
zstyle ':fzf-tab:*' fzf-flags --color=fg:1,fg+:2 --bind=tab:accept
|
||||
# switch group using `<` and `>`
|
||||
zstyle ':fzf-tab:*' switch-group '<' '>'
|
||||
'';
|
||||
syntaxHighlighting.enable = true;
|
||||
shellAliases = {
|
||||
stu = "ssh stu";
|
||||
ff = "fastfetch";
|
||||
sessionVariables = {
|
||||
SSH_AUTH_SOCK = "/home/eclypse/.bitwarden-ssh-agent.sock";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
############ Variables ############
|
||||
enable_battery=false
|
||||
battery_charging=false
|
||||
|
||||
####### Check availability ########
|
||||
for battery in /sys/class/power_supply/*BAT*; do
|
||||
if [[ -f "$battery/uevent" ]]; then
|
||||
enable_battery=true
|
||||
if [[ $(cat /sys/class/power_supply/*/status | head -1) == "Charging" ]]; then
|
||||
battery_charging=true
|
||||
fi
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
############# Output #############
|
||||
if [[ $enable_battery == true ]]; then
|
||||
if [[ $battery_charging == true ]]; then
|
||||
echo -n "(+) "
|
||||
fi
|
||||
echo -n "$(cat /sys/class/power_supply/*/capacity | head -1)"%
|
||||
if [[ $battery_charging == false ]]; then
|
||||
echo -n " remaining"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo ""
|
||||
@@ -1,7 +0,0 @@
|
||||
MAIN_KB_CAPS=$(hyprctl devices | grep -B 6 "main: yes" | grep "capsLock" | head -1 | awk '{print $2}')
|
||||
|
||||
if [ "$MAIN_KB_CAPS" = "yes" ]; then
|
||||
echo "Caps Lock active"
|
||||
else
|
||||
echo ""
|
||||
fi
|
||||
@@ -4,16 +4,5 @@
|
||||
{
|
||||
nixpkgs.overlays = [
|
||||
(import ./heybrochecklog.nix)
|
||||
|
||||
(self: super: {
|
||||
# battery-status = prev.writeShellApplication {
|
||||
# name = "battery-status";
|
||||
# text = builtins.readFile ./battery-status.sh;
|
||||
# };
|
||||
check-capslock = super.writeShellApplication {
|
||||
name = "check-capslock";
|
||||
text = builtins.readFile ./check-capslock.sh;
|
||||
};
|
||||
})
|
||||
];
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
inputs.agenix.nixosModules.default
|
||||
];
|
||||
|
||||
environment.systemPackages = [
|
||||
inputs.agenix.packages.${pkgs.stdenv.hostPlatform.system}.default # CLI Tool
|
||||
];
|
||||
|
||||
age.secrets = {
|
||||
tailscale-auth.file = ../../secrets/tailscale-auth.age;
|
||||
eclypsecloud-eclypse.file = ../../secrets/eclypsecloud-eclypse.age;
|
||||
eclypse-password.file = ../../secrets/eclypse-password.age;
|
||||
};
|
||||
}
|
||||
@@ -1,10 +1,8 @@
|
||||
{
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
boot = {
|
||||
extraModulePackages = with config.boot.kernelPackages; [ virtualbox ];
|
||||
loader = {
|
||||
systemd-boot = {
|
||||
enable = true;
|
||||
@@ -12,6 +10,5 @@
|
||||
};
|
||||
efi.canTouchEfiVariables = true;
|
||||
};
|
||||
kernelParams = [ "kvm.enable_virt_at_load=0" ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -3,9 +3,7 @@
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
./agenix.nix
|
||||
./boot.nix
|
||||
./desktop.nix
|
||||
./fileSystems.nix
|
||||
./fonts.nix
|
||||
./network.nix
|
||||
@@ -13,8 +11,6 @@
|
||||
./security.nix
|
||||
./services.nix
|
||||
./system.nix
|
||||
./tailscale.nix
|
||||
./user.nix
|
||||
./virtualisation.nix
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1,59 +0,0 @@
|
||||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
sddm-theme = inputs.silentSDDM.packages.${pkgs.stdenv.hostPlatform.system}.default;
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
inputs.mango.nixosModules.mango
|
||||
];
|
||||
|
||||
programs = {
|
||||
hyprland = {
|
||||
enable = true;
|
||||
# withUWSM = 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;
|
||||
# uwsm.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";
|
||||
};
|
||||
};
|
||||
wayland.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
# Enable the KDE Plasma Desktop Environment.
|
||||
# displayManager.sddm.enable = true;
|
||||
# desktopManager.plasma5.enable = true;
|
||||
|
||||
# Enable the System76 Cosmic Desktop Environment
|
||||
# displayManager.cosmic-greeter.enable = true;
|
||||
# desktopManager.cosmic = {
|
||||
# enable = true;
|
||||
# xwayland.enable = true;
|
||||
# };
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
automount_opts = [
|
||||
"x-systemd.automount"
|
||||
"x-systemd.idle-timeout=60"
|
||||
"x-systemd.device-timeout=5s"
|
||||
"x-systemd.mount-timeout=5s"
|
||||
"noauto"
|
||||
"user"
|
||||
"users"
|
||||
];
|
||||
in
|
||||
{
|
||||
fileSystems = {
|
||||
"/mnt/EclypseCloud" = {
|
||||
device = "//100.78.212.35/EclypseCloud";
|
||||
fsType = "cifs";
|
||||
options = [
|
||||
"credentials=${config.age.secrets.eclypsecloud-eclypse.path}"
|
||||
"uid=${toString config.users.users.eclypse.uid}"
|
||||
"rw"
|
||||
]
|
||||
++ automount_opts;
|
||||
};
|
||||
"/mnt/Music" = {
|
||||
device = "//100.78.212.35/music";
|
||||
fsType = "cifs";
|
||||
options = [
|
||||
"credentials=${config.age.secrets.eclypsecloud-eclypse.path}"
|
||||
"uid=${toString config.users.users.eclypse.uid}"
|
||||
"rw"
|
||||
]
|
||||
++ automount_opts;
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
cifs-utils
|
||||
# rclone
|
||||
];
|
||||
}
|
||||
@@ -8,9 +8,6 @@
|
||||
fontconfig.enable = true;
|
||||
packages = with pkgs; [
|
||||
nerd-fonts.fira-code
|
||||
nerd-fonts.jetbrains-mono
|
||||
nerd-fonts.symbols-only
|
||||
rubik
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -17,8 +17,6 @@
|
||||
# enable = true;
|
||||
# enableSSHSupport = true;
|
||||
# };
|
||||
gdk-pixbuf.modulePackages = [ pkgs.librsvg ];
|
||||
nix-ld.enable = true;
|
||||
zsh.enable = true;
|
||||
};
|
||||
|
||||
@@ -39,8 +37,5 @@
|
||||
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
||||
git
|
||||
];
|
||||
variables = {
|
||||
EDITOR = "vim";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -2,15 +2,6 @@
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs = {
|
||||
yubikey-manager.enable = true;
|
||||
yubikey-touch-detector.enable = true;
|
||||
};
|
||||
|
||||
services = {
|
||||
yubikey-agent.enable = true;
|
||||
};
|
||||
|
||||
security = {
|
||||
rtkit.enable = true;
|
||||
};
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
@@ -7,7 +6,7 @@
|
||||
xserver = {
|
||||
# Enable the X11 windowing system.
|
||||
# You can disable this if you're only using the Wayland session.
|
||||
enable = false;
|
||||
enable = true;
|
||||
|
||||
# Configure keymap in X11
|
||||
xkb = {
|
||||
@@ -15,25 +14,16 @@
|
||||
variant = "";
|
||||
};
|
||||
|
||||
# Enable touchpad support (enabled default in most desktopManager).
|
||||
# libinput.enable = true;
|
||||
};
|
||||
|
||||
# Enable touchpad support (enabled default in most desktopManager).
|
||||
libinput.enable = true;
|
||||
# Enable the KDE Plasma Desktop Environment.
|
||||
displayManager.sddm.enable = true;
|
||||
desktopManager.plasma6.enable = true;
|
||||
|
||||
# Enable CUPS to print documents.
|
||||
printing = {
|
||||
enable = true;
|
||||
drivers = with pkgs; [
|
||||
gutenprint
|
||||
cnijfilter2
|
||||
];
|
||||
};
|
||||
|
||||
avahi = {
|
||||
enable = true;
|
||||
nssmdns4 = true;
|
||||
openFirewall = true;
|
||||
};
|
||||
printing.enable = true;
|
||||
|
||||
# Enable sound with pipewire.
|
||||
pulseaudio.enable = false;
|
||||
@@ -50,8 +40,6 @@
|
||||
# media-session.enable = true;
|
||||
};
|
||||
|
||||
upower.enable = true;
|
||||
|
||||
# Enable the OpenSSH daemon. (Look into Fail2Ban in the future)
|
||||
openssh = {
|
||||
enable = true;
|
||||
@@ -61,45 +49,5 @@
|
||||
AllowUsers = [ "eclypse" ];
|
||||
};
|
||||
};
|
||||
|
||||
system76-scheduler.settings.cfsProfiles.enable = true;
|
||||
|
||||
tlp = {
|
||||
enable = true;
|
||||
settings = {
|
||||
CPU_BOOST_ON_AC = 1;
|
||||
CPU_BOOST_ON_BAT = 0;
|
||||
CPU_SCALING_GOVERNOR_ON_AC = "performance";
|
||||
CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
|
||||
PLATFORM_PROFILE_ON_AC = "performance";
|
||||
PLATFORM_PROFILE_ON_BAT = "balanced";
|
||||
START_CHARGE_THRESH_BAT1 = 65; # Only STOP_CHARGE_THRESH available on Framework
|
||||
STOP_CHARGE_THRESH_BAT1 = 80;
|
||||
# Fixes stuttering Hyprland animations on Intel iGPU (https://wiki.hypr.land/Configuring/Performance/)
|
||||
INTEL_GPU_MIN_FREQ_ON_AC = 300;
|
||||
INTEL_GPU_MIN_FREQ_ON_BAT = 300;
|
||||
};
|
||||
};
|
||||
|
||||
# Disable GNOME's power management (conflicts with TLP)
|
||||
power-profiles-daemon.enable = false;
|
||||
|
||||
# Enable thermald (only necessary for Intel CPUs)
|
||||
thermald.enable = true;
|
||||
};
|
||||
|
||||
powerManagement = {
|
||||
enable = true;
|
||||
powertop.enable = true;
|
||||
};
|
||||
|
||||
hardware = {
|
||||
bluetooth = {
|
||||
enable = true;
|
||||
powerOnBoot = true;
|
||||
};
|
||||
sane = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -14,13 +14,11 @@
|
||||
"https://cache.nixos.org"
|
||||
"https://nix-community.cachix.org"
|
||||
"https://devenv.cachix.org"
|
||||
"https://hyprland.cachix.org"
|
||||
];
|
||||
trusted-public-keys = [
|
||||
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
|
||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||
"devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw="
|
||||
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
services.tailscale = {
|
||||
enable = true;
|
||||
useRoutingFeatures = "client";
|
||||
authKeyFile = config.age.secrets.tailscale-auth.path;
|
||||
|
||||
# * Only applied if `authKeyFile` is specified
|
||||
extraUpFlags = [
|
||||
"--ssh"
|
||||
"--accept-routes=true"
|
||||
];
|
||||
extraSetFlags = [
|
||||
"--operator=eclypse"
|
||||
];
|
||||
};
|
||||
|
||||
# Taildrop
|
||||
systemd.user.services.taildrop = {
|
||||
description = "Taildrop File Receiver Service";
|
||||
wantedBy = [ "default.target" ];
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
ExecStart = "${pkgs.tailscale}/bin/tailscale file get --verbose --loop %h/Downloads/";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -2,8 +2,6 @@
|
||||
inputs,
|
||||
pkgs,
|
||||
host,
|
||||
wallpaper,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
@@ -12,7 +10,7 @@
|
||||
home-manager = {
|
||||
useUserPackages = true;
|
||||
useGlobalPkgs = true;
|
||||
extraSpecialArgs = { inherit inputs host wallpaper; };
|
||||
extraSpecialArgs = { inherit inputs host; };
|
||||
|
||||
users.eclypse = {
|
||||
imports = [ ../home ];
|
||||
@@ -23,8 +21,6 @@
|
||||
};
|
||||
programs.home-manager.enable = true;
|
||||
};
|
||||
|
||||
backupFileExtension = "backup";
|
||||
};
|
||||
|
||||
users.mutableUsers = false;
|
||||
@@ -35,10 +31,8 @@
|
||||
extraGroups = [
|
||||
"networkmanager"
|
||||
"wheel"
|
||||
"scanner"
|
||||
"lp"
|
||||
];
|
||||
hashedPasswordFile = config.age.secrets.eclypse-password.path;
|
||||
hashedPassword = "$6$33qMKGMsdYC//e/s$Z2mQCqDOwbP185OVOLsE63hg.orMrBbxR8WHIiZ9dAnNk3jgEsEU218qtgsQsyATvjsyHUPBQjsa/3JmNLoMM0";
|
||||
shell = pkgs.zsh;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
virtualisation = {
|
||||
# virtualbox.host = {
|
||||
# enable = true;
|
||||
# enableExtensionPack = true;
|
||||
# };
|
||||
podman.enable = true;
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
distrobox
|
||||
];
|
||||
|
||||
users.extraGroups.vboxusers.members = [ "eclypse" ];
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
age-encryption.org/v1
|
||||
-> ssh-ed25519 7p4RPw wZdiee1a8rqdaNA8EVLUJIEue1ldgrk3HgVGhmHpnTQ
|
||||
8VLt5rSvqN+HAHS9JL6hYSj7xVrTtZAcrn5C12it+Fw
|
||||
--- 9oiyRlMDS7PrUyP4SmkgcMZz+/BENDBn9XN+3216OXY
|
||||
<EFBFBD>%<25>v*|<7C>M<EFBFBD>3<EFBFBD>g<EFBFBD>g<EFBFBD>%;F"s<15><><0B> <20>7<EFBFBD>Uj<55>_H<5F><48><1F><>D<EFBFBD>^*B<>nK'
|
||||
v<EFBFBD><EFBFBD>~<7E>`<60>
|
||||
@@ -1,5 +0,0 @@
|
||||
age-encryption.org/v1
|
||||
-> ssh-ed25519 7p4RPw dVTohhNu/jjHSNyhw7irzffqzJJFvW0TbkhSmKKrhS8
|
||||
zTc4HaFO3hSYVLM35KwEGUcu2R+JGHIN758FpKKxL5U
|
||||
--- EhTyT6CYdKjAC9yN0kCxx5yW4o27DJteu8YCbVF2Ln4
|
||||
<EFBFBD>ܬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>}<7D>P<EFBFBD><50>l<EFBFBD><6C>'<27><>,QLג5P<13>SMs<4D><0C><₼<><E282BC>z<EFBFBD><7A><EFBFBD><EFBFBD><EFBFBD>yQ<0C>o<EFBFBD> t[a0<0F><>U<EFBFBD><12>z?R<>"&ߨC<DFA8><43><EFBFBD>l<EFBFBD>
|
||||
@@ -1,19 +0,0 @@
|
||||
# This file is NOT imported into the nix configuration, it is just for the agenix CLI
|
||||
let
|
||||
# System public ssh keys (/etc/ssh/)
|
||||
vanta = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAaDVBJdMDFL8r9NQCbaLe+DPHGhGzRv2N7+7m1/U8DP";
|
||||
in
|
||||
{
|
||||
# Tailscale auth key need to be up to date with a valid auth key in the tailscale
|
||||
# dashboard. Single-use keys expire after a single machine connects, and even
|
||||
# reusable keys expire after 90 days.
|
||||
# Update tailscale-auth.age with `agenix -e tailscale-auth.age -i /path/to/private-ssh-key`
|
||||
# Note: Only devices with the below public keys are allowed to edit tailscale-auth.age
|
||||
"tailscale-auth.age".publicKeys = [ vanta ]; # Devices allowed to join the tailnet;
|
||||
|
||||
# Devices that can connect to EclypseCloud with the eclypse user.
|
||||
"eclypsecloud-eclypse.age".publicKeys = [ vanta ];
|
||||
|
||||
# Devices that have the eclypse user
|
||||
"eclypse-password.age".publicKeys = [ vanta ];
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
age-encryption.org/v1
|
||||
-> ssh-ed25519 7p4RPw 7GuZj43+NoyPXf//ZLM99vossbJXOpDQSkBi3w51Wl8
|
||||
FTMjlyml+T87LQffffY2AJL5IhTAJF2QlfFvhvZpvOs
|
||||
--- iONf8B3bUxXtCiv0EAv5QO0ZyhE5A6YfRbcxUr/awFg
|
||||
<EFBFBD><0E><><EFBFBD>Tw<54><77>J`<60>~B
|
||||
<EFBFBD><11>;<3B>lOh<4F><68>{2<>?<3F><>P<EFBFBD><50>F>@m<>o<><6F>c<EFBFBD><1C>~X<>3<EFBFBD>@.g<0E>ھ<EFBFBD>eK<65><18>V7zphS<68><53>د6<D8AF><36>.W<><57>O@F
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 826 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 6.0 MiB |
Reference in New Issue
Block a user