Initial commit for phosphorous branch

This commit is contained in:
2025-07-29 12:17:29 -04:00
parent caeb108974
commit 82d34571c8
23 changed files with 720 additions and 501 deletions

1
.gitignore vendored
View File

@@ -1,3 +1,2 @@
result result
target target
hardware.nix

50
flake.lock generated
View File

@@ -105,11 +105,11 @@
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs"
}, },
"locked": { "locked": {
"lastModified": 1752113600, "lastModified": 1752718651,
"narHash": "sha256-7LYDxKxZgBQ8LZUuolAQ8UkIB+jb4A2UmiR+kzY9CLI=", "narHash": "sha256-PkaR0qmyP9q/MDN3uYa+RLeBA0PjvEQiM0rTDDBXkL8=",
"owner": "nix-community", "owner": "nix-community",
"repo": "disko", "repo": "disko",
"rev": "79264292b7e3482e5702932949de9cbb69fedf6d", "rev": "d5ad4485e6f2edcc06751df65c5e16572877db88",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -269,11 +269,11 @@
"zon2nix": "zon2nix" "zon2nix": "zon2nix"
}, },
"locked": { "locked": {
"lastModified": 1752468632, "lastModified": 1752781573,
"narHash": "sha256-3Hmq3XMTPg12zWmNsDgxTCsXDthBi+Umfv/XeNsa9Es=", "narHash": "sha256-lciLQos2xk62PrLi/RbD12V8Da5xAysPnhP4KvI3Jho=",
"owner": "ghostty-org", "owner": "ghostty-org",
"repo": "ghostty", "repo": "ghostty",
"rev": "37c2c3a4ba696e90f0be2b7c2c0cd6f613dbf70a", "rev": "155ddc3f8f0e99731d30f15653c62ac7e2476c46",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -328,11 +328,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1752467539, "lastModified": 1752798675,
"narHash": "sha256-4kaR+xmng9YPASckfvIgl5flF/1nAZOplM+Wp9I5SMI=", "narHash": "sha256-oMJhxLVGVC7v0ReNQ/vFVKMQOPUixg/74MnZZ1Wkv4s=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "1e54837569e0b80797c47be4720fab19e0db1616", "rev": "dcfd70f80fe6d872c2dc58fe3be384a681e56fea",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -433,11 +433,11 @@
"xdph": "xdph" "xdph": "xdph"
}, },
"locked": { "locked": {
"lastModified": 1752500930, "lastModified": 1752782660,
"narHash": "sha256-bQlflVQSUwSWm//WJX9mPGXsouRKyS6fGfOmkMvYR5s=", "narHash": "sha256-lv5ohWVV8P/T8QBzSBmGVo45oxc4a7snwHF05KRwaK8=",
"ref": "refs/heads/main", "ref": "refs/heads/main",
"rev": "06fcdbd9c77c90fc9c3115b646f602a84c53a40e", "rev": "a05c797e4a7b32f933569aec6cfba180bc693528",
"revCount": 6273, "revCount": 6286,
"submodules": true, "submodules": true,
"type": "git", "type": "git",
"url": "https://github.com/hyprwm/Hyprland" "url": "https://github.com/hyprwm/Hyprland"
@@ -736,11 +736,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1751949589, "lastModified": 1752596105,
"narHash": "sha256-mgFxAPLWw0Kq+C8P3dRrZrOYEQXOtKuYVlo9xvPntt8=", "narHash": "sha256-lFNVsu/mHLq3q11MuGkMhUUoSXEdQjCHvpReaGP1S2k=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "9b008d60392981ad674e04016d25619281550a9d", "rev": "dab3a6e781554f965bde3def0aa2fda4eb8f1708",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -813,11 +813,11 @@
}, },
"nixpkgs_6": { "nixpkgs_6": {
"locked": { "locked": {
"lastModified": 1751984180, "lastModified": 1752480373,
"narHash": "sha256-LwWRsENAZJKUdD3SpLluwDmdXY9F45ZEgCb0X+xgOL0=", "narHash": "sha256-JHQbm+OcGp32wAsXTE/FLYGNpb+4GLi5oTvCxwSoBOA=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "9807714d6944a957c2e036f84b0ff8caf9930bc0", "rev": "62e0f05ede1da0d54515d4ea8ce9c733f12d9f08",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -853,11 +853,11 @@
"systems": "systems_5" "systems": "systems_5"
}, },
"locked": { "locked": {
"lastModified": 1752496197, "lastModified": 1752762787,
"narHash": "sha256-yADANK6gJL+BJrL0f450RGCZlUixCuYSoEqdjmBE5nY=", "narHash": "sha256-WZLSOR2Pei7C4nH/ntKUqOZOAa5rgvc2fVZl4RoEXmw=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixvim", "repo": "nixvim",
"rev": "03fa28a65f23210934cb3a3c0454eb8870af748b", "rev": "bc0555c8694d43fb63ae2c7afec08b6987431a04",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -992,11 +992,11 @@
"tinted-zed": "tinted-zed" "tinted-zed": "tinted-zed"
}, },
"locked": { "locked": {
"lastModified": 1752449117, "lastModified": 1752750082,
"narHash": "sha256-Cn24ySH/LN/Q/SsDhpOX4cTMYZa1JMOLNeNsoYqcZpY=", "narHash": "sha256-NoVAqy+Wj4tgkvrYB8zWncl8Z6Hb80aX3t/TYGdsfaM=",
"owner": "danth", "owner": "danth",
"repo": "stylix", "repo": "stylix",
"rev": "d683e35fa5ec8bbfd45d52e4b53c7b91f7b38d06", "rev": "03699ed214f6e8195bc7199d6ae3aeccf9732b08",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -60,6 +60,25 @@
nixvim.homeManagerModules.nixvim nixvim.homeManagerModules.nixvim
]; ];
}; };
phosphorousHome = let host = "phosphorous"; in home-manager.lib.homeManagerConfiguration {
pkgs = import nixpkgs {
inherit system;
config = nixpkgsConfig;
overlays = [
(import ./overlay/overlay.nix { inherit host; root = self; })
];
};
extraSpecialArgs = {
inherit host self username inputs;
};
modules = [
./hosts/work/home.nix
./modules/home
stylix.homeManagerModules.stylix
nixvim.homeManagerModules.nixvim
];
};
mercuryHome = let host = "mercury"; in home-manager.lib.homeManagerConfiguration { mercuryHome = let host = "mercury"; in home-manager.lib.homeManagerConfiguration {
pkgs = import nixpkgs { pkgs = import nixpkgs {
@@ -126,6 +145,29 @@
]; ];
}; };
phosphorous = nixpkgs.lib.nixosSystem { # Desktop
specialArgs = {
inherit self inputs username;
host = "oganesson";
overlays = [
(import ./overlay/overlay.nix { root = self; })
];
};
inherit system;
pkgs = import nixpkgs {
inherit system;
config = nixpkgsConfig;
overlays = [
(import ./overlay/overlay.nix { root = self; })
];
};
modules = [
./hosts/work/config.nix
./modules/sys
stylix.nixosModules.stylix
];
};
mercury = nixpkgs.lib.nixosSystem { # Laptop mercury = nixpkgs.lib.nixosSystem { # Laptop
specialArgs = { specialArgs = {
inherit self inputs username; inherit self inputs username;

54
hosts/work/config.nix Executable file
View File

@@ -0,0 +1,54 @@
{ slash, pkgs, username, ... }:
{
imports = [
./hardware.nix
];
# My module options
movOpts = {
sysEnv = {
issue.enable = true;
sddmConfig.enable = false;
stylixConfig.enable = true;
nixSettings.enable = true;
#consoleSettings.enable = true;
};
hardwareCfg = {
networkModule.enable = true;
kernelModule.enable = true;
bootLoader.enable = true;
};
softwareCfg = {
gamingPkgs.enable = true;
steamConfig.enable = true;
sysPkgs.enable = true;
sysProgs.enable = true;
sysServices.enable = true;
virtConfig.enable = true;
};
};
environment = {
variables = { PATH = "${pkgs.clang-tools}/bin:$PATH"; };
shells = [ pkgs.myPkgs.slash pkgs.zsh pkgs.bash ];
};
users = {
groups.persist = { };
users = {
root.initialPassword = "1234";
${username} = {
isNormalUser = true;
initialPassword = "1234";
shell = pkgs.zsh;
extraGroups = [ "input" "wheel" "persist" "libvirtd" ];
};
};
};
security.sudo.extraConfig = ''
${username} ALL=(ALL) NOPASSWD: /etc/profiles/per-user/${username}/bin/rebuild
'';
nix.settings.allowed-users = [ "${username}" ];
time.timeZone = "America/New_York";
}

126
hosts/work/containers.nix Normal file
View File

@@ -0,0 +1,126 @@
{ slash, pkgs, username, ... }:
let
kickstartServer =
let
libsrcds = pkgs.stdenv.mkDerivation {
name = "libsrcds";
src = pkgs.fetchFromGitHub {
owner = "km-clay";
repo = "sourceds-libraries";
rev = "08d12c91af664ffd103482ae1a24714222bef2df";
hash = "sha256-EFXBhqZEkBNpYjNuG7oTZLgfjqM5G+nLb7e/qeN1Tvw=";
};
installPhase = ''
mkdir -p $out/lib
cp ./* $out/lib
'';
};
startTf2Server = pkgs.writeShellScript "start-srv.sh" ''
set -euo pipefail
export HOME=/home/tf2
export LD_LIBRARY_PATH=/usr/lib:/usr/lib32
mkdir -p "$HOME/tf2server"
mkdir -p "$HOME/tf2server"
steamcmd +force_install_dir "$HOME/tf2server" \
+login anonymous \
+app_update 232250 validate \
+quit
cd "$HOME/tf2server"
ln -sf "$HOME/.steam/steam/linux64" "$HOME/.steam/sdk64"
ln -sf "$HOME/.steam/steam/linux32" "$HOME/.steam/sdk32"
exec ./srcds_run -game tf -console -port 25565 +map cp_dustbowl \
+ip 10.233.1.2 -norestart \
+sv_setsteamaccount 8862FD4B30F401036B8AAC6A7FE6B123
'';
in
pkgs.buildFHSEnv {
name = "srcds-env";
targetPkgs = pkgs: with pkgs; [
steamcmd
glibc
zlib
curl
libuuid
openssl
libnl
libsrcds
# Optional: link compat
stdenv.cc.cc.lib
];
multiPkgs = pkgs: with pkgs.pkgsi686Linux; [
glibc
zlib
ncurses5
libuuid
alsa-lib
libxcrypt-legacy
gcc
];
multiArch = true;
runScript = "${startTf2Server}";
};
in
{
networking = {
nat = {
enable = true;
internalInterfaces = ["ve-+"];
externalInterface = "enp8s0";
};
};
containers.tf2server = {
autoStart = true;
privateNetwork = true;
hostAddress = "10.233.1.1";
localAddress = "10.233.1.2";
config = {
imports = [ ];
nixpkgs.config.allowUnfree = true;
services.openssh.enable = true;
users.users.root.password = "root"; # For quick login, remove in prod
environment.systemPackages = with pkgs; [
steamcmd
steam-run
coreutils
wget
unzip
bash
nix
coreutils
vim
];
users.users.tf2server = {
isNormalUser = true;
initialPassword = "1234";
shell = pkgs.bash;
extraGroups = [ "wheel" ];
};
systemd.services.tf2server = {
wantedBy = [ "multi-user.target" ];
serviceConfig = {
ExecStart = "${kickstartServer}/bin/srcds-env";
};
};
nix.settings.experimental-features = [ "nix-command" "flakes" ];
# Optional: open ports on the container
networking.firewall.allowedTCPPorts = [ 25565 ];
networking.firewall.allowedUDPPorts = [ 25565 27005 27015 27020 ];
system.stateVersion = "25.11"; # or your NixOS version
};
};
}

37
hosts/work/hardware.nix Normal file
View File

@@ -0,0 +1,37 @@
# 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 + "/profiles/qemu-guest.nix")
];
boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "virtio_pci" "virtio_scsi" "sr_mod" "virtio_blk" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/db4cf956-df00-4c26-851d-419136434eae";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/336C-A94E";
fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
};
swapDevices = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp1s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
}

57
hosts/work/home.nix Executable file
View File

@@ -0,0 +1,57 @@
{ username, ... }: {
home.username = "${username}";
home.homeDirectory =
"/home/${username}";
home.stateVersion = "25.05";
programs.home-manager.enable = true;
movOpts = {
# modules/home/files
homeFiles.enable = true;
# modules/home/environment
envConfig = {
hyprlandConfig = {
enable = true;
monitorNames = [ "DP-3" "DP-1" ];
workspaceLayout = "dualmonitor";
};
userPkgs.enable = true;
stylixHomeConfig.enable = true;
waybarConfig.enable = true;
gtkConfig.enable = true;
spicetifyConfig.enable = false;
starshipConfig.enable = true;
swayncConfig.enable = true;
zshConfig = {
shellAliases.enable = true;
envVariables.enable = true;
shellOptions.enable = true;
extraConfig.enable = true;
};
};
# modules/home/programs
programConfigs = {
autojumpConfig.enable = true;
btopConfig.enable = true;
cavaConfig.enable = false;
ezaConfig.enable = true;
fuzzelConfig.enable = true;
fzfConfig.enable = true;
gitConfig.enable = true;
kittyConfig.enable = true;
yaziConfig.enable = true;
passConfig.enable = true;
batConfig.enable = true;
};
};
dconf.settings = {
"org/virt-manager/virt-manager/connections" = {
autoconnect = [ "qemu:///system" ];
uris = [ "qemu:///system" ];
};
};
}

View File

@@ -2,17 +2,27 @@
let let
desktop = host == "oganesson"; desktop = host == "oganesson";
screenshot_bind = if desktop then screenshot_bind = if desktop then
[ "super, print, exec, grimblast copy area" [
"super shift, print, exec, grimblast --freeze copy area" "super, print, exec, grimblast copy area"
] "super shift, print, exec, grimblast --freeze copy area"
]
else else
[ [
# My laptop does not have a printscreen button # My laptop does not have a printscreen button
"super, insert, exec, grimblast copy area" "super, insert, exec, grimblast copy area"
]; ];
scheme = config.lib.stylix.colors; scheme = config.lib.stylix.colors;
mons = config.movOpts.envConfig.hyprlandConfig.monitorNames; mons = config.movOpts.envConfig.hyprlandConfig.monitorNames;
smartGapsWorkspaces = [
"w[tv1], gapsout:0, gapsin:0"
"f[1], gapsout:0, gapsin:0"
];
smartGapsWindowrules = [
"bordersize 0, floating:0, onworkspace:w[tv1]"
"rounding 0, floating:0, onworkspace:w[tv1]"
"bordersize 0, floating:0, onworkspace:f[1]"
"rounding 0, floating:0, onworkspace:f[1]"
];
in { in {
options = { options = {
@@ -55,6 +65,9 @@ in {
monitor = if (host == "oganesson") then [ monitor = if (host == "oganesson") then [
"DP-1, 1920x1080@144, 1920x0, 1" "DP-1, 1920x1080@144, 1920x0, 1"
"HDMI-A-1, 1920x1080, 0x0, 1" "HDMI-A-1, 1920x1080, 0x0, 1"
] else if (host == "phosphorous") then [
"DP-1, highrr, 0x0, 1"
"DP-3, highrr, -1080x-420, 1, transform, 3"
] else ] else
[ "eDP-1, 1600x900, 0x0, 1" ]; [ "eDP-1, 1600x900, 0x0, 1" ];
@@ -69,7 +82,7 @@ in {
"dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP &" "dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP &"
]; ];
workspace = if (config.movOpts.envConfig.hyprlandConfig.workspaceLayout == "dualmonitor") then [ workspace = (if (config.movOpts.envConfig.hyprlandConfig.workspaceLayout == "dualmonitor") then [
"1,persistent=true,monitor:${builtins.elemAt mons 0}" "1,persistent=true,monitor:${builtins.elemAt mons 0}"
"2,persistent=true,monitor:${builtins.elemAt mons 0}" "2,persistent=true,monitor:${builtins.elemAt mons 0}"
"3,persistent=true,monitor:${builtins.elemAt mons 0}" "3,persistent=true,monitor:${builtins.elemAt mons 0}"
@@ -88,7 +101,7 @@ in {
"4,persistent=true,monitor:${builtins.elemAt mons 1}" "4,persistent=true,monitor:${builtins.elemAt mons 1}"
"5,persistent=true,monitor:${builtins.elemAt mons 0}" "5,persistent=true,monitor:${builtins.elemAt mons 0}"
"6,persistent=true,monitor:${builtins.elemAt mons 0}" "6,persistent=true,monitor:${builtins.elemAt mons 0}"
] else [ ]; ] else [ ]) ++ smartGapsWorkspaces;
env = [ env = [
"XDG_CONFIG_HOME,$HOME/.config" "XDG_CONFIG_HOME,$HOME/.config"
@@ -96,6 +109,37 @@ in {
"XDG_CACHE_HOME,$HOME/.cache" "XDG_CACHE_HOME,$HOME/.cache"
]; ];
layerrule = [ "blur,waybar" "ignorezero,waybar" "blur,launcher" ]; layerrule = [ "blur,waybar" "ignorezero,waybar" "blur,launcher" ];
windowrulev2 = [
"float, class:^(thunar)$,title:^(.*File Operation Progress.*)$"
"float, class:^(firefox)$,title:^(Library)$"
"float, class:^(thunar)$,title:^(File Operation Progress)$"
"float, class:^(thunar)$,title:^(Confirm to replace files)$"
"float, title:^(bwarn)$"
"float, title:^(bwarn)$"
"noinitialfocus, class:^(steam)$"
"float, class:^(firefox)$,title:^( - Google Mozilla Firefox)$"
"float, class:^(firefox)$,title:^(Firefox Sharing Indicator)$"
"float, class:^(firefox)$,title:^(Firefox )$"
"float, class:(firefox), title:^(*.Sign in.*)$"
];
windowrule = [
"float, class:^(qt5ct)$"
"float, class:^(zoom)$"
"float, class:^(Steam)$"
"idleinhibit focus, class:mpv"
"float, title:^(Picture-in-Picture)$"
"float, class:^(nm-connection-editor)$"
"float, class:^(waypaper)$"
"float, title:^(Sign In)(.*)$"
"float, title:^(Firefox )$"
"nofocus, title:^(Firefox )$"
"float, class:^(firefox)$,title^(Sign in - Google Accounts Mozilla Firefox)$"
"= nofullscreenrequest, title:^(Firefox )$"
"size 0 0, title:^(Firefox )$"
"move 100%-470 15,title:^(Firefox Sharing Indicator)$"
"move 100%-470 15,title:^(Firefox )$"
] ++ smartGapsWindowrules;
input = { input = {
kb_layout = "us"; kb_layout = "us";
@@ -104,16 +148,21 @@ in {
force_no_accel = 1; force_no_accel = 1;
sensitivity = 0; sensitivity = 0;
}; };
general = { general = {
"$mainMod" = "super"; gaps_in = 5;
layout = "dwindle"; gaps_out = 9;
gaps_in = 4; border_size = 3;
gaps_out = 8; col.active_border = "rgba(404042ff)";
border_size = 3; col.inactive_border = "rgba(83858a00)";
#"col.inactive_border" = "0xff${scheme.base01}"; layout = "dwindle";
"col.active_border" = lib.mkForce "0xff${scheme.base04}"; resize_on_border = true;
no_border_on_floating = false; no_border_on_floating = false;
};
snap = {
enabled = true;
window_gap = 5;
};
};
misc = { misc = {
disable_autoreload = true; disable_autoreload = true;
disable_hyprland_logo = true; disable_hyprland_logo = true;
@@ -125,10 +174,7 @@ in {
}; };
dwindle = { dwindle = {
force_split = 0; force_split = 2;
special_scale_factor = 1.0;
split_width_multiplier = 1.0;
use_active_for_splits = true;
pseudotile = "yes"; pseudotile = "yes";
preserve_split = "yes"; preserve_split = "yes";
}; };
@@ -139,96 +185,83 @@ in {
}; };
decoration = { decoration = {
rounding = 10; rounding = 4;
blur = {
enabled = true;
# size = 1;
# passes = 1;
size = 2;
passes = 1;
brightness = 1;
contrast = 1.4;
ignore_opacity = true;
popups = true;
noise = 0;
new_optimizations = true;
xray = true;
};
shadow = {
enabled = true;
ignore_window = true;
range = 80;
render_power = 50;
color = "rbga(00000065)";
};
}; };
cursor = {
hide_on_key_press = true;
};
experimental = {
xx_color_management_v4 = true;
};
animations = { animations = {
enabled = true; enabled = true;
bezier = [ bezier = [
"fluent_decel, 0, 0.2, 0.4, 1" "myBezier, 0.16, 1, 0.3, 1"
"easeOutCirc, 0, 0.55, 0.45, 1"
"easeOutCubic, 0.33, 1, 0.68, 1"
"easeinoutsine, 0.37, 0, 0.63, 1"
]; ];
animation = [ animation = [
# Windows "windows, 1, 7, myBezier, popin 80%"
"windowsIn, 1, 3, easeOutCubic, popin 30%" # window open "fade, 1, 7, myBezier"
"windowsOut, 1, 3, fluent_decel, popin 70%" # window close. "workspaces, 1, 6, myBezier, slidefade 80%"
"windowsMove, 1, 2, easeinoutsine, slide" # everything in between, moving, dragging, resizing.
# Fade
"fadeIn, 1, 3, easeOutCubic" # fade in (open) -> layers and windows
"fadeOut, 1, 2, easeOutCubic" # fade out (close) -> layers and windows
"fadeSwitch, 0, 1, easeOutCirc" # fade on changing activewindow and its opacity
"fadeShadow, 1, 10, easeOutCirc" # fade on changing activewindow for shadows
"fadeDim, 1, 4, fluent_decel" # the easing of the dimming of inactive windows
"border, 1, 2.7, easeOutCirc" # for animating the border's color switch speed
"borderangle, 1, 30, fluent_decel, once" # for animating the border's gradient angle - styles: once (default), loop
"workspaces, 1, 4, easeOutCubic, fade" # styles: slide, slidevert, fade, slidefade, slidefadevert
]; ];
bind = [
"super, up, exec, pactl set-sink-volume @default_sink@ +10%"
"super, down, exec, pactl set-sink-volume @default_sink@ -10%"
"super, t, exec, swaync-client -t -sw"
"super, a, exec, firefox"
"super, q, exec, kitty"
"super shift, q, exec, [float;size 40% 30%;move onscreen cursor -50% -50%] kitty"
"super, c, killactive,"
"super shift, c,exec, hyprctl kill"
"super, e, exec, [float;size 40% 50%;move onscreen cursor -50% -50%] nemo"
"super, p, exec, [float;size 40% 25%;move onscreen cursor] [ ! -f /tmp/keyringfile ] && kitty toolbelt"
"super shift, m, exit,"
"super, m, exec, fuzzel"
"super, r, exec, neovide"
"super, b, togglesplit, # dwindle"
"super, f, togglefloating"
"super, g, fullscreen"
"super, h, movefocus, l"
"super, l, movefocus, r"
"super, k, movefocus, u"
"super, j, movefocus, d"
"super shift, h, movewindow, l"
"super shift, l, movewindow, r"
"super shift, k, movewindow, u"
"super shift, j, movewindow, d"
"super, d, exec, switchmon"
"super, 1, exec, hyprctl 'dispatch workspace 1'"
"super, 2, exec, hyprctl 'dispatch workspace 2'"
"super, 3, exec, hyprctl 'dispatch workspace 3'"
"super, 4, exec, hyprctl 'dispatch workspace 4'"
"super, 5, exec, hyprctl 'dispatch workspace 5'"
"super, 6, exec, hyprctl 'dispatch workspace 6'"
"super shift, 1, movetoworkspace, 1"
"super shift, 2, movetoworkspace, 2"
"super shift, 3, movetoworkspace, 3"
"super shift, 4, movetoworkspace, 4"
"super shift, 5, movetoworkspace, 5"
"super shift, 6, movetoworkspace, 6"
"super, s, togglespecialworkspace, magic"
"super shift, s, movetoworkspace, special:magic"
] ++ screenshot_bind;
bindm =
[ "super, mouse:272, movewindow" "super, mouse:273, resizewindow" ];
}; };
bind = [
"super, up, exec, pactl set-sink-volume @default_sink@ +10%"
"super, down, exec, pactl set-sink-volume @default_sink@ -10%"
"super, t, exec, swaync-client -t -sw"
"super, a, exec, firefox"
"super, q, exec, kitty"
"super shift, q, exec, [float;size 40% 30%;move onscreen cursor -50% -50%] kitty"
"super, c, killactive,"
"super shift, c,exec, hyprctl kill"
"super, e, exec, [float;size 40% 50%;move onscreen cursor -50% -50%] nemo"
"super, p, exec, [float;size 40% 25%;move onscreen cursor] [ ! -f /tmp/keyringfile ] && kitty toolbelt"
"super shift, m, exit,"
"super, m, exec, fuzzel"
"super, r, exec, neovide"
"super, b, togglesplit, # dwindle"
"super, f, togglefloating"
"super, g, fullscreen"
"super, h, movefocus, l"
"super, l, movefocus, r"
"super, k, movefocus, u"
"super, j, movefocus, d"
"super shift, h, movewindow, l"
"super shift, l, movewindow, r"
"super shift, k, movewindow, u"
"super shift, j, movewindow, d"
"super, d, exec, switchmon"
"super, 1, exec, hyprctl 'dispatch workspace 1'"
"super, 2, exec, hyprctl 'dispatch workspace 2'"
"super, 3, exec, hyprctl 'dispatch workspace 3'"
"super, 4, exec, hyprctl 'dispatch workspace 4'"
"super, 5, exec, hyprctl 'dispatch workspace 5'"
"super, 6, exec, hyprctl 'dispatch workspace 6'"
"super shift, 1, movetoworkspace, 1"
"super shift, 2, movetoworkspace, 2"
"super shift, 3, movetoworkspace, 3"
"super shift, 4, movetoworkspace, 4"
"super shift, 5, movetoworkspace, 5"
"super shift, 6, movetoworkspace, 6"
"super, s, togglespecialworkspace, magic"
"super shift, s, movetoworkspace, special:magic"
] ++ screenshot_bind;
bindm =
[ "super, mouse:272, movewindow" "super, mouse:273, resizewindow" ];
}; };
}; };
}; };

View File

@@ -1,7 +1,7 @@
{ lib, self, config, host, pkgs, ... }: { lib, self, config, host, pkgs, ... }:
let let
scheme = "chalk"; scheme = "ayu-dark";
wallpaper = "${self}/assets/wallpapers/dark-waves.jpg"; wallpaper = "${self}/assets/wallpapers/dark-waves.jpg";
server = (host == "xenon"); server = (host == "xenon");
in { in {

View File

@@ -34,7 +34,6 @@ in {
nemo nemo
feh feh
gtk3 gtk3
gimp
imagemagick imagemagick
vlc vlc
lolcat lolcat

View File

@@ -6,12 +6,26 @@ let
workspaces = { workspaces = {
format = "{icon}"; format = "{icon}";
format-icons = { format-icons = {
"1" = ""; "1" = "1";
"2" = ""; "2" = "2";
"3" = ""; "3" = "3";
"4" = ""; "4" = "4";
"5" = ""; "5" = "5";
"6" = ""; "6" = "6";
"7" = "7";
"8" = "8";
"9" = "9";
"10" = "10";
"11" = "11";
"12" = "12";
"13" = "13";
"14" = "14";
"15" = "15";
"16" = "16";
"17" = "17";
"18" = "18";
"19" = "19";
"20" = "20";
}; };
persistent-workspaces = persistent-workspaces =
if (layout == "singlemonitor") then { if (layout == "singlemonitor") then {
@@ -36,7 +50,7 @@ let
dark = scheme.base03; dark = scheme.base03;
}; };
fg = { fg = {
lightester = scheme.base07; lightest = scheme.base07;
lightest = scheme.base06; lightest = scheme.base06;
lighter = scheme.base05; lighter = scheme.base05;
light = scheme.base04; light = scheme.base04;
@@ -55,6 +69,17 @@ let
circle-gauge = [ "󰝦" "󰪞" "󰪟" "󰪠" "󰪡" "󰪢" "󰪣" "󰪤" "󰪥" ]; circle-gauge = [ "󰝦" "󰪞" "󰪟" "󰪠" "󰪡" "󰪢" "󰪣" "󰪤" "󰪥" ];
cava-gauge = [ "" "" "" "" "" "" "" "" ]; cava-gauge = [ "" "" "" "" "" "" "" "" ];
battery-gauge = [ "󰁺" "󰁻" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹" ]; battery-gauge = [ "󰁺" "󰁻" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹" ];
bar-gauge = [
""
""
""
""
""
""
""
""
""
];
in { in {
options = { options = {
movOpts.envConfig.waybarConfig.enable = movOpts.envConfig.waybarConfig.enable =
@@ -68,7 +93,7 @@ in {
}); });
settings = { settings = {
mainBar = { mainBar = {
layer = "bottom"; layer = "top";
output = if layout == "singlemonitor" then builtins.elemAt monitors 0 output = if layout == "singlemonitor" then builtins.elemAt monitors 0
else builtins.elemAt monitors 1; else builtins.elemAt monitors 1;
position = "top"; position = "top";
@@ -77,374 +102,174 @@ in {
margin-top = 5; margin-top = 5;
margin-right = if desktop then 8 else 5; margin-right = if desktop then 8 else 5;
mode = "dock"; mode = "dock";
exclusive = true;
passthrough = false;
"gtk-layer-shell" = true; "gtk-layer-shell" = true;
modules-left = [ "hyprland/workspaces" "cava" ]; modules-left = [ "clock" "hyprland/workspaces" "tray" ];
modules-center = [ "hyprland/window" ]; modules-center = [];
modules-right = [ "group/hardware" "clock" "group/powerbtns" ]; modules-right = [ "cpu" "memory" "pulseaudio" "network" ];
"hyprland/workspaces" = workspaces; "hyprland/workspaces" = workspaces;
cava = {
framerate = 30;
autosens = 1;
sensitivity = 1;
bars = 14;
lower_cutoff_freq = 50;
higher_cutoff_freq = 10000;
method = "pulse";
source = "auto";
hide_on_silence = false;
stereo = true;
reverse = true;
bar_delimiter = 0;
monstercat = false;
waves = false;
noise_reduction = 0.77;
input_delay = 1;
format-icons = cava-gauge;
};
"group/hardware" = {
orientation = "inherit";
modules = [ "custom/disk-icon" "memory" "cpu" ];
};
"custom/disk-icon" = {
exec = ''
df / | awk '
function format(size) {
if (size >= 1024) return sprintf("%.1fTB", size / 1024);
else return sprintf("%.1fGB", size)
}
$6 == "/" {
usage = $3 / 1024 / 1024;
total = $2 / 1024 / 1024;
percent = $5;
sub(/%/, "", percent);
printf "{\"class\": \"disk-icon\", \"tooltip\": \"/: %s / %s\", \"percentage\": %s}\n", format(usage), format(total), percent
}
' | jq --unbuffered --compact-output
'';
interval = 60;
return-type = "json";
rotate = 270;
format = "{icon}";
format-icons = circle-gauge;
};
memory = {
interval = 1;
rotate = 270;
format = "{icon}";
format-icons = circle-gauge;
max-length = 10;
tooltip-format = "RAM: {used:0.1f} GB / {total:0.1f} GB";
};
cpu = {
interval = 1;
rotate = 270;
format = "{icon}";
format-icons = circle-gauge;
tooltip-format = "CPU: {usage:0.1f}%";
};
"custom/power" = {
on-click = "shutdown now";
tooltip = false;
format = " ";
};
"custom/logout" = {
on-click = "hyprctl dispatch exit";
tooltip = false;
format = "󰗽 ";
};
"custom/reboot" = {
on-click = "reboot";
tooltip = false;
format = " ";
};
"group/powerbtns" = {
orientation = "horizontal";
drawer = {
transition-duration = 500;
children-class = "power-drawer";
transition-left-to-right = false;
};
modules = [ "custom/power" "custom/logout" "custom/reboot" ];
};
clock = { clock = {
format = "{:%I:%M %p}"; format = "[ CLK: {:%H.%M <span size='8pt'> %a %b %d</span>} ]";
tooltip = false; tooltip-format = "<tt>{calendar}";
}; calendar = {
}; mode = "month";
sideBar = { weeks-pos = "";
layer = "bottom"; on-scroll = 1;
output = builtins.elemAt monitors 0; format = {
position = "right"; months = "<span size = '16pt'><b>CAL: {}\n</b></span>";
margin-top = 8; days = "<span size = '16pt'><b>{}</b></span>";
margin-right = 5; weeks = "<span size = '16pt'><b>{}</b></span>";
margin-bottom = 8; weekdays = "<span size = '16pt'><b>{}</b></span>";
name = "sideBar"; today = "<span color='#E6E1CF'><b>{}</b></span>";
mode = "dock"; };
"gtk-layer-shell" = true; };
actions = {
modules-left = if desktop then on-scroll-up = "shift_down";
[ "hyprland/workspaces" ] on-scroll-down = "shift_up";
else [ };
"group/brightness"
"battery"
];
modules-center = [ ];
modules-right = [ "network" "group/audio" ];
"hyprland/workspaces" = workspaces;
"pulseaudio/slider" = { orientation = "vertical"; };
"group/audio" = {
orientation = "vertical";
modules = [ "pulseaudio/slider" "pulseaudio" ];
}; };
pulseaudio = { pulseaudio = {
format = "{icon}"; format = "VOL: [ <span color='#272D38'>{icon}</span> ] <span size='8pt'>{volume}%</span>";
format-muted = " "; tooltip = true;
format-icons = { default = [ " " " " ]; }; tooltip-format = "DEVICE: {desc}";
on-click = "pactl set-sink-mute @DEFAULT_SINK@ toggle"; format-muted = "VOL: <span color='#F07178'>[ XXXXXXXX ] <span size='8pt'>{volume}%</span></span>";
on-click-right = on-click = "if [ $(pamixer --get-mute) == true ]; then pamixer --unmute; else pamixer --mute; fi";
"hyprctl dispatch exec '[float;size 40% 55%] pavucontrol'"; on-scroll-up = "pamixer -i 2";
}; on-scroll-down = "pamixer -d 2";
scroll-step = 2;
reverse-scrolling = true;
format-icons = bar-gauge;
};
network = { network = {
interval = 30; format-wifi = "[ <span color='#B8CC52'>ONLINE</span> ]";
format-wifi = "󰖩 "; format-ethernet = "[ <span color='#B8CC52'>ONLINE</span> ]";
tooltip-format-wifi = "{essid} ({signalStrength}%)"; tooltip-format-wifi = "ESSID\t: {essid}\nSTRNGTH\t: {signaldBm}\n\nADDRESS\t: {ipaddr}\nGATE\t: {gwaddr}\nMASK\t: {netmask} | {cidr}";
format-ethernet = " "; tooltip-format-ethernet = "IFNAME: {ifname}\nADDRESS: {ipaddr}";
tooltip-format-ethernet = "{ifname}"; format-disconnected = "[ <span color='#F07178'>XXXXXX</span> ]";
format-disconnected = "󰖪 "; on-click = "nm-connection-editor";
tooltip-format-disconnected = "Disconnected"; };
on-click =
"hyprctl dispatch exec '[float;size 40% 55%] kitty nmtui'";
};
battery = { memory = {
bat = "BAT1"; interval = 20;
interval = 1; format = "MEM: [ <span color='#272D38'>{icon}</span> ] <span size='8pt'>{percentage}%</span>";
tooltip-format = '' tooltip-format = "MEM_TOT\t: {total}GiB\nSWP_TOT\t: {swapTotal}GiB\n\nMEM_USD\t: {used:0.1f}GiB\nSWP_USD\t: {swapUsed:0.1f}GiB";
{capacity}% format-icons = [
Til empty: {time}''; ""
tooltip-format-charging = '' ""
{capacity}% ""
Til full: {time}''; ""
format = "{icon}"; ""
format-icons = battery-gauge; ""
format-charging = "󰂄"; ""
}; "<span color='#F07178'>!!!!!!!!</span>"
"<span color='#F07178'>CRITICAL</span>"
];
};
"group/brightness" = { cpu = {
orientation = "vertical";
modules = [ "backlight" "backlight/slider" ]; interval = 1;
}; format = "CPU: [ <span color='#272D38'>{icon}</span> ] <span size='8pt'>{usage}%</span>";
backlight = { tooltip = true;
format = "󰃠"; format-icons = [
tooltip = "{percentage}%"; ""
}; ""
"backlight/slider" = { ""
min = 10; ""
max = 100; ""
orientation = "vertical"; ""
rotate = 180; ""
}; "<span color='#272D38'>!!!!!!!!</span>"
"<span color='#272D38'>CRITICAL</span>"
];
};
}; };
}; };
style = '' style = ''
* { * {
border: none; font-size: 14px;
border-radius: 0; border: none;
font-size: 16px; font-familty: EnvyCodeR Nerd Font Mono;
font-family: "JetBrains Mono Nerd Font"; font-weight: Bold;
} min-height: 0;
border-radius 0px;
padding: 2px;
}
window#waybar { window#waybar {
border-radius: 10px; color: #${fg.lightest};
border: 3px solid #${fg.light}; background: #${bg.darkester};
background: rgba(23,29,35,0.50); }
margin: 20px;
}
window#waybar.empty #window {
background: none;
border: none;
}
#workspaces { tooltip {
margin: 3px; background: #${bg.darkester};
background: #${bg.darker}; }
border: 3px solid #${bg.dark};
border-radius: 8px;
}
#workspaces button:hover { #workspaces button {
border-radius: 8px; color: #${fg.lightest};
background: #${fg.lightest}; background: #${bg.darkester};
color: #${bg.darkest}; }
}
#workspaces button.active { #workspaces button.active {
background: #${fg.lightester}; color: #${bg.darker};
border-radius: 8px; background: #${bg.darkester};
color: #${bg.darkest}; }
}
#cava { #workspaces button.focused {
background: #${bg.darker}; color: #${bg.dark};
border-radius: 8px; background: #${bg.darkester};
border: 3px solid #${bg.dark}; }
margin: 3px 3px 3px 6px;
padding: 0px 15px 0px 15px;
color: #${colors.color6};
}
#window { #workspaces button.urgent {
margin: 3px; color: #${fg.lightest};
background: #${bg.darker}; background: #${bg.darkester};
border-radius: 8px; }
border: 3px solid #${bg.dark};
padding: 0 15px 0 15px;
font-weight: bold;
}
#hardware { #workspaces button:hover {
margin: 3px; color: #${fg.lightest};
padding: 0 10px 0 10px; background: #${bg.darkester};
background: #${bg.darker}; }
border-radius: 8px;
border: 3px solid #${bg.dark};
}
#custom-disk-icon, #cpu, #memory { #window,
margin-bottom: 4px; #clock,
font-size: 20px; #pulseaudio,
font-weight: bold; #network,
} #workspaces,
#tray,
#cpu {
padding: 0px 10px;
margin: 0px;
}
#custom-disk-icon { #tray {
color: #${colors.color4}; margin-right: 10px;
} }
#memory { #workspaces {
color: #${colors.color1}; color: #${fg.lightest};
} }
#cpu { #window {
color: #${colors.color3}; color: #${fg.lightest};
} }
#clock { #clock {
font-weight: bold; color: #${fg.lightest};
background: #${bg.darker}; }
border-radius: 8px;
border: 3px solid #${bg.dark};
margin: 3px;
padding: 0 10px 0 10px;
font-size: 18px;
}
#powerbtns { #network {
background: #${bg.darker}; color: #${fg.lightest};
border-radius: 8px; }
border: 3px solid #${bg.dark};
margin: 3px;
padding: 0 5px 0 10px;
}
#custom-power { #pulseaudio {
color: #${colors.color2}; color: #${fg.lightest};
font-size: 18px; }
}
#custom-logout {
color: #${colors.color4};
font-size: 18px;
}
#custom-reboot {
color: #${colors.color0};
font-size: 18px;
}
#audio {
background: #${bg.darker};
border-radius: 8px;
border: 3px solid #${bg.dark};
margin: 3px;
padding: 5px 0 10px 0;
}
#pulseaudio {
color: #${colors.color1};
font-size: 18px;
}
#backlight-slider slider,
#pulseaudio-slider slider {
background: #${colors.color4};
background-color: transparent;
box-shadow: none;
}
#backlight-slider trough,
#pulseaudio-slider trough {
min-width: 9px;
min-height: 90px;
border-radius: 8px;
background: #121212;
}
#backlight-slider highlight,
#pulseaudio-slider highlight {
border-radius: 8px;
background-color: #${colors.color4};
}
#network {
color: #${colors.color1};
font-size: 20px;
background: #${bg.darker};
border-radius: 8px;
border: 3px solid #${bg.dark};
margin: 3px;
padding: 5px 0 5px 6px;
}
#brightness {
background: #${bg.darker};
border-radius: 8px;
border: 3px solid #${bg.dark};
margin: 3px;
padding: 10px 0px 5px 0;
}
#backlight {
color: #${colors.color4};
font-size: 18px;
padding: 0 4px 0 0;
}
#battery {
color: #${colors.color4};
font-size: 20px;
background: #${bg.darker};
border: 3px solid #${bg.dark};
border-radius: 8px;
margin: 3px;
padding: 5px 0 5px 0px;
}
''; '';
}; };
}; };

View File

@@ -6,11 +6,6 @@
config = lib.mkIf config.movOpts.programConfigs.gitConfig.enable { config = lib.mkIf config.movOpts.programConfigs.gitConfig.enable {
programs.git = { programs.git = {
enable = true; enable = true;
signing = {
signer = "${pkgs.gnupg}/bin/gpg";
key = "2453DF4EF63B92D5D8FE8C9DC741C9DFD8156540";
signByDefault = true;
};
userEmail = "kylerclay@proton.me"; userEmail = "kylerclay@proton.me";
userName = "${username}"; userName = "${username}";
extraConfig = { extraConfig = {

View File

@@ -1,3 +1,9 @@
{ env, config, pkgs, host, self, ... }: { { env, config, pkgs, host, self, ... }: {
programs.nixvim.extraPackages = [
pkgs.cargo
pkgs.rustc
pkgs.rustup
pkgs.rust-analyzer
];
imports = [ ./plugins ./options.nix ./keymaps.nix ./autocmd.nix ]; imports = [ ./plugins ./options.nix ./keymaps.nix ./autocmd.nix ];
} }

View File

@@ -3,7 +3,7 @@
keymaps = [ keymaps = [
{ {
action = "<cmd>Telescope find_files<CR>"; # select entire document action = "<cmd>Telescope find_files<CR>"; # select entire document
key = "!fs"; key = "<F3>";
mode = "n"; mode = "n";
} }
{ {
@@ -46,11 +46,6 @@
key = "<F2>"; key = "<F2>";
mode = [ "n" "t" ]; mode = [ "n" "t" ];
} }
{
action = "<cmd>NvimTreeToggle<CR>";
key = "<F3>";
mode = "n";
}
{ {
action = "<cmd>COQnow<CR>"; action = "<cmd>COQnow<CR>";
key = "!cq"; key = "!cq";

View File

@@ -26,15 +26,17 @@ in {
#}; #};
}; };
enable = true; enable = true;
diagnostic.settings.signs = false; diagnostic.settings = {
virtual_text = true;
signs = false;
};
extraConfigLua = '' extraConfigLua = ''
if vim.g.started_by_firenvim == true then if vim.g.started_by_firenvim == true then
vim.o.laststatus = 0 vim.o.laststatus = 0
end end
if vim.g.neovide then if vim.g.neovide then
vim.g.neovide_refresh_rate = 144 vim.g.neovide_refresh_rate = 144
vim.g.neovide_cursor_vfx_mode = "sonicboom" vim.g.neovide_cursor_animate_in_insert_mode = true
vim.g.neovide_cursor_animate_in_insert_mode = false
end end
vim.g.vimwiki_list = {{path = '~/vimwiki/', syntax = 'markdown', ext = '.md'}} vim.g.vimwiki_list = {{path = '~/vimwiki/', syntax = 'markdown', ext = '.md'}}

View File

@@ -2,8 +2,19 @@
programs.nixvim = { programs.nixvim = {
plugins.cmp = { plugins.cmp = {
autoEnableSources = true; autoEnableSources = true;
settings.sources = settings = {
[ { name = "nvim_lsp"; } { name = "path"; } { name = "buffer"; } ]; sources = [
{
name = "nvim_lsp";
}
{
name = "path";
}
{
name = "buffer";
}
];
};
}; };
plugins.cmp-nvim-lsp.enable = true; plugins.cmp-nvim-lsp.enable = true;
plugins.cmp-nvim-lsp-document-symbol.enable = true; plugins.cmp-nvim-lsp-document-symbol.enable = true;

View File

@@ -0,0 +1,10 @@
{
programs.nixvim.plugins.copilot-lua = {
enable = true;
settings = {
suggestion = {
auto_trigger = false;
};
};
};
}

View File

@@ -16,6 +16,7 @@
./airline.nix ./airline.nix
./nvim-lightbulb.nix ./nvim-lightbulb.nix
./neocord.nix ./neocord.nix
./copilot.nix
./plugins.nix ./plugins.nix
./nvim-tree.nix ./nvim-tree.nix
./telescope.nix ./telescope.nix

View File

@@ -13,28 +13,51 @@
['<C-j>'] = cmp.mapping.scroll_docs(-4), ['<C-j>'] = cmp.mapping.scroll_docs(-4),
['<C-k>'] = cmp.mapping.scroll_docs(4), ['<C-k>'] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping.complete(), ['<C-Space>'] = cmp.mapping.complete(),
['<C-e>'] = cmp.mapping.abort(), ['<C-Enter>'] = function()
local copilot = require("copilot.suggestion")
cmp.abort()
copilot.next()
end,
['<CR>'] = function(fallback) ['<CR>'] = function(fallback)
if cmp.visible() then if cmp.visible() then
cmp.confirm() cmp.confirm()
else else
fallback() fallback()
end end
end, -- Added a comma here end,
['<Tab>'] = function(fallback) ['<Tab>'] = function(fallback)
local copilot = require("copilot.suggestion")
if cmp.visible() then if cmp.visible() then
cmp.select_next_item() cmp.select_next_item()
elseif copilot.is_visible() then
cmp.abort()
copilot.accept()
else else
fallback() fallback()
end end
end, -- Added a comma here end,
['<S-Tab>'] = function(fallback) ['<A-Tab>'] = function(fallback)
local copilot = require("copilot.suggestion")
if cmp.visible() then if cmp.visible() then
cmp.select_prev_item() cmp.select_prev_item()
elseif copilot.is_visible() then
cmp.abort()
copilot.accept_word()
else else
fallback() fallback()
end end
end -- No comma needed for the last item end,
['<S-Tab>'] = function(fallback)
local copilot = require("copilot.suggestion")
if cmp.visible() then
cmp.select_prev_item()
elseif copilot.is_visible() then
cmp.abort()
copilot.accept_line()
else
fallback()
end
end
}) })
''; '';
}; };

View File

@@ -11,6 +11,7 @@
"192.168.1.200" = [ "xenon" ]; "192.168.1.200" = [ "xenon" ];
"192.168.1.201" = [ "oganesson" ]; "192.168.1.201" = [ "oganesson" ];
"192.168.1.202" = [ "mercury" ]; "192.168.1.202" = [ "mercury" ];
"192.168.1.134" = [ "hosting.localhost" ];
}; };
firewall = { firewall = {
enable = true; enable = true;

View File

@@ -9,6 +9,9 @@ let
"-DDOWNLOAD_TITLE_SEQUENCES=ON" "-DDOWNLOAD_TITLE_SEQUENCES=ON"
]; ];
}); });
cust-prismlauncher = pkgs.prismlauncher.override (oldAttrs: {
jdks = [ pkgs.temurin-bin-21 ];
});
in { in {
options = { options = {
movOpts.softwareCfg.gamingPkgs.enable = movOpts.softwareCfg.gamingPkgs.enable =
@@ -19,8 +22,7 @@ in {
#snes9x-gtk #snes9x-gtk
#cust-openrct2 #cust-openrct2
mgba mgba
dwarf-fortress-packages.dwarf-fortress-full cust-prismlauncher
prismlauncher
]; ];
}; };
} }

View File

@@ -20,6 +20,7 @@
hyprpaper hyprpaper
hyprpicker hyprpicker
inetutils inetutils
rcon-cli
kitty kitty
lolcat lolcat
lsof lsof

View File

@@ -1,7 +1,7 @@
{ pkgs, self, lib, config, ... }: { pkgs, self, lib, config, ... }:
let let
scheme = "chalk"; scheme = "ayu-dark";
wallpaper = "${self}/assets/wallpapers/dark-waves.jpg"; wallpaper = "${self}/assets/wallpapers/dark-waves.jpg";
in { in {
options = { options = {