Initial commit for phosphorous branch
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,3 +1,2 @@
|
||||
result
|
||||
target
|
||||
hardware.nix
|
||||
|
||||
50
flake.lock
generated
50
flake.lock
generated
@@ -105,11 +105,11 @@
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1752113600,
|
||||
"narHash": "sha256-7LYDxKxZgBQ8LZUuolAQ8UkIB+jb4A2UmiR+kzY9CLI=",
|
||||
"lastModified": 1752718651,
|
||||
"narHash": "sha256-PkaR0qmyP9q/MDN3uYa+RLeBA0PjvEQiM0rTDDBXkL8=",
|
||||
"owner": "nix-community",
|
||||
"repo": "disko",
|
||||
"rev": "79264292b7e3482e5702932949de9cbb69fedf6d",
|
||||
"rev": "d5ad4485e6f2edcc06751df65c5e16572877db88",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -269,11 +269,11 @@
|
||||
"zon2nix": "zon2nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1752468632,
|
||||
"narHash": "sha256-3Hmq3XMTPg12zWmNsDgxTCsXDthBi+Umfv/XeNsa9Es=",
|
||||
"lastModified": 1752781573,
|
||||
"narHash": "sha256-lciLQos2xk62PrLi/RbD12V8Da5xAysPnhP4KvI3Jho=",
|
||||
"owner": "ghostty-org",
|
||||
"repo": "ghostty",
|
||||
"rev": "37c2c3a4ba696e90f0be2b7c2c0cd6f613dbf70a",
|
||||
"rev": "155ddc3f8f0e99731d30f15653c62ac7e2476c46",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -328,11 +328,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1752467539,
|
||||
"narHash": "sha256-4kaR+xmng9YPASckfvIgl5flF/1nAZOplM+Wp9I5SMI=",
|
||||
"lastModified": 1752798675,
|
||||
"narHash": "sha256-oMJhxLVGVC7v0ReNQ/vFVKMQOPUixg/74MnZZ1Wkv4s=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "1e54837569e0b80797c47be4720fab19e0db1616",
|
||||
"rev": "dcfd70f80fe6d872c2dc58fe3be384a681e56fea",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -433,11 +433,11 @@
|
||||
"xdph": "xdph"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1752500930,
|
||||
"narHash": "sha256-bQlflVQSUwSWm//WJX9mPGXsouRKyS6fGfOmkMvYR5s=",
|
||||
"lastModified": 1752782660,
|
||||
"narHash": "sha256-lv5ohWVV8P/T8QBzSBmGVo45oxc4a7snwHF05KRwaK8=",
|
||||
"ref": "refs/heads/main",
|
||||
"rev": "06fcdbd9c77c90fc9c3115b646f602a84c53a40e",
|
||||
"revCount": 6273,
|
||||
"rev": "a05c797e4a7b32f933569aec6cfba180bc693528",
|
||||
"revCount": 6286,
|
||||
"submodules": true,
|
||||
"type": "git",
|
||||
"url": "https://github.com/hyprwm/Hyprland"
|
||||
@@ -736,11 +736,11 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1751949589,
|
||||
"narHash": "sha256-mgFxAPLWw0Kq+C8P3dRrZrOYEQXOtKuYVlo9xvPntt8=",
|
||||
"lastModified": 1752596105,
|
||||
"narHash": "sha256-lFNVsu/mHLq3q11MuGkMhUUoSXEdQjCHvpReaGP1S2k=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "9b008d60392981ad674e04016d25619281550a9d",
|
||||
"rev": "dab3a6e781554f965bde3def0aa2fda4eb8f1708",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -813,11 +813,11 @@
|
||||
},
|
||||
"nixpkgs_6": {
|
||||
"locked": {
|
||||
"lastModified": 1751984180,
|
||||
"narHash": "sha256-LwWRsENAZJKUdD3SpLluwDmdXY9F45ZEgCb0X+xgOL0=",
|
||||
"lastModified": 1752480373,
|
||||
"narHash": "sha256-JHQbm+OcGp32wAsXTE/FLYGNpb+4GLi5oTvCxwSoBOA=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "9807714d6944a957c2e036f84b0ff8caf9930bc0",
|
||||
"rev": "62e0f05ede1da0d54515d4ea8ce9c733f12d9f08",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -853,11 +853,11 @@
|
||||
"systems": "systems_5"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1752496197,
|
||||
"narHash": "sha256-yADANK6gJL+BJrL0f450RGCZlUixCuYSoEqdjmBE5nY=",
|
||||
"lastModified": 1752762787,
|
||||
"narHash": "sha256-WZLSOR2Pei7C4nH/ntKUqOZOAa5rgvc2fVZl4RoEXmw=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixvim",
|
||||
"rev": "03fa28a65f23210934cb3a3c0454eb8870af748b",
|
||||
"rev": "bc0555c8694d43fb63ae2c7afec08b6987431a04",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -992,11 +992,11 @@
|
||||
"tinted-zed": "tinted-zed"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1752449117,
|
||||
"narHash": "sha256-Cn24ySH/LN/Q/SsDhpOX4cTMYZa1JMOLNeNsoYqcZpY=",
|
||||
"lastModified": 1752750082,
|
||||
"narHash": "sha256-NoVAqy+Wj4tgkvrYB8zWncl8Z6Hb80aX3t/TYGdsfaM=",
|
||||
"owner": "danth",
|
||||
"repo": "stylix",
|
||||
"rev": "d683e35fa5ec8bbfd45d52e4b53c7b91f7b38d06",
|
||||
"rev": "03699ed214f6e8195bc7199d6ae3aeccf9732b08",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
||||
42
flake.nix
42
flake.nix
@@ -60,6 +60,25 @@
|
||||
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 {
|
||||
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
|
||||
specialArgs = {
|
||||
inherit self inputs username;
|
||||
|
||||
54
hosts/work/config.nix
Executable file
54
hosts/work/config.nix
Executable 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
126
hosts/work/containers.nix
Normal 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
37
hosts/work/hardware.nix
Normal 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
57
hosts/work/home.nix
Executable 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" ];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -2,9 +2,10 @@
|
||||
let
|
||||
desktop = host == "oganesson";
|
||||
screenshot_bind = if desktop then
|
||||
[ "super, print, exec, grimblast copy area"
|
||||
[
|
||||
"super, print, exec, grimblast copy area"
|
||||
"super shift, print, exec, grimblast --freeze copy area"
|
||||
]
|
||||
]
|
||||
else
|
||||
[
|
||||
# My laptop does not have a printscreen button
|
||||
@@ -12,7 +13,16 @@ let
|
||||
];
|
||||
scheme = config.lib.stylix.colors;
|
||||
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 {
|
||||
|
||||
options = {
|
||||
@@ -55,6 +65,9 @@ in {
|
||||
monitor = if (host == "oganesson") then [
|
||||
"DP-1, 1920x1080@144, 1920x0, 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
|
||||
[ "eDP-1, 1600x900, 0x0, 1" ];
|
||||
|
||||
@@ -69,7 +82,7 @@ in {
|
||||
"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}"
|
||||
"2,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}"
|
||||
"5,persistent=true,monitor:${builtins.elemAt mons 0}"
|
||||
"6,persistent=true,monitor:${builtins.elemAt mons 0}"
|
||||
] else [ ];
|
||||
] else [ ]) ++ smartGapsWorkspaces;
|
||||
|
||||
env = [
|
||||
"XDG_CONFIG_HOME,$HOME/.config"
|
||||
@@ -96,6 +109,37 @@ in {
|
||||
"XDG_CACHE_HOME,$HOME/.cache"
|
||||
];
|
||||
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 = {
|
||||
kb_layout = "us";
|
||||
@@ -105,14 +149,19 @@ in {
|
||||
sensitivity = 0;
|
||||
};
|
||||
general = {
|
||||
"$mainMod" = "super";
|
||||
layout = "dwindle";
|
||||
gaps_in = 4;
|
||||
gaps_out = 8;
|
||||
gaps_in = 5;
|
||||
gaps_out = 9;
|
||||
border_size = 3;
|
||||
#"col.inactive_border" = "0xff${scheme.base01}";
|
||||
"col.active_border" = lib.mkForce "0xff${scheme.base04}";
|
||||
col.active_border = "rgba(404042ff)";
|
||||
col.inactive_border = "rgba(83858a00)";
|
||||
layout = "dwindle";
|
||||
resize_on_border = true;
|
||||
no_border_on_floating = false;
|
||||
|
||||
snap = {
|
||||
enabled = true;
|
||||
window_gap = 5;
|
||||
};
|
||||
};
|
||||
misc = {
|
||||
disable_autoreload = true;
|
||||
@@ -125,10 +174,7 @@ in {
|
||||
};
|
||||
|
||||
dwindle = {
|
||||
force_split = 0;
|
||||
special_scale_factor = 1.0;
|
||||
split_width_multiplier = 1.0;
|
||||
use_active_for_splits = true;
|
||||
force_split = 2;
|
||||
pseudotile = "yes";
|
||||
preserve_split = "yes";
|
||||
};
|
||||
@@ -139,52 +185,40 @@ in {
|
||||
};
|
||||
|
||||
decoration = {
|
||||
rounding = 10;
|
||||
rounding = 4;
|
||||
|
||||
blur = {
|
||||
shadow = {
|
||||
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;
|
||||
ignore_window = true;
|
||||
range = 80;
|
||||
render_power = 50;
|
||||
color = "rbga(00000065)";
|
||||
};
|
||||
};
|
||||
|
||||
cursor = {
|
||||
hide_on_key_press = true;
|
||||
};
|
||||
|
||||
experimental = {
|
||||
xx_color_management_v4 = true;
|
||||
};
|
||||
|
||||
animations = {
|
||||
enabled = true;
|
||||
|
||||
bezier = [
|
||||
"fluent_decel, 0, 0.2, 0.4, 1"
|
||||
"easeOutCirc, 0, 0.55, 0.45, 1"
|
||||
"easeOutCubic, 0.33, 1, 0.68, 1"
|
||||
"easeinoutsine, 0.37, 0, 0.63, 1"
|
||||
"myBezier, 0.16, 1, 0.3, 1"
|
||||
];
|
||||
|
||||
animation = [
|
||||
# Windows
|
||||
"windowsIn, 1, 3, easeOutCubic, popin 30%" # window open
|
||||
"windowsOut, 1, 3, fluent_decel, popin 70%" # window close.
|
||||
"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
|
||||
"windows, 1, 7, myBezier, popin 80%"
|
||||
"fade, 1, 7, myBezier"
|
||||
"workspaces, 1, 6, myBezier, slidefade 80%"
|
||||
];
|
||||
|
||||
};
|
||||
|
||||
bind = [
|
||||
"super, up, exec, pactl set-sink-volume @default_sink@ +10%"
|
||||
"super, down, exec, pactl set-sink-volume @default_sink@ -10%"
|
||||
@@ -231,5 +265,4 @@ in {
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ lib, self, config, host, pkgs, ... }:
|
||||
|
||||
let
|
||||
scheme = "chalk";
|
||||
scheme = "ayu-dark";
|
||||
wallpaper = "${self}/assets/wallpapers/dark-waves.jpg";
|
||||
server = (host == "xenon");
|
||||
in {
|
||||
|
||||
@@ -34,7 +34,6 @@ in {
|
||||
nemo
|
||||
feh
|
||||
gtk3
|
||||
gimp
|
||||
imagemagick
|
||||
vlc
|
||||
lolcat
|
||||
|
||||
@@ -6,12 +6,26 @@ let
|
||||
workspaces = {
|
||||
format = "{icon}";
|
||||
format-icons = {
|
||||
"1" = "一";
|
||||
"2" = "二";
|
||||
"3" = "三";
|
||||
"4" = "四";
|
||||
"5" = "五";
|
||||
"6" = "六";
|
||||
"1" = "1";
|
||||
"2" = "2";
|
||||
"3" = "3";
|
||||
"4" = "4";
|
||||
"5" = "5";
|
||||
"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 =
|
||||
if (layout == "singlemonitor") then {
|
||||
@@ -36,7 +50,7 @@ let
|
||||
dark = scheme.base03;
|
||||
};
|
||||
fg = {
|
||||
lightester = scheme.base07;
|
||||
lightest = scheme.base07;
|
||||
lightest = scheme.base06;
|
||||
lighter = scheme.base05;
|
||||
light = scheme.base04;
|
||||
@@ -55,6 +69,17 @@ let
|
||||
circle-gauge = [ "" "" "" "" "" "" "" "" "" ];
|
||||
cava-gauge = [ "▁" "▂" "▃" "▄" "▅" "▆" "▇" "█" ];
|
||||
battery-gauge = [ "" "" "" "" "" "" "" "" "" ];
|
||||
bar-gauge = [
|
||||
"░░░░░░░░"
|
||||
"█░░░░░░░"
|
||||
"██░░░░░░"
|
||||
"███░░░░░"
|
||||
"████░░░░"
|
||||
"█████░░░"
|
||||
"██████░░"
|
||||
"███████░"
|
||||
"████████"
|
||||
];
|
||||
in {
|
||||
options = {
|
||||
movOpts.envConfig.waybarConfig.enable =
|
||||
@@ -68,7 +93,7 @@ in {
|
||||
});
|
||||
settings = {
|
||||
mainBar = {
|
||||
layer = "bottom";
|
||||
layer = "top";
|
||||
output = if layout == "singlemonitor" then builtins.elemAt monitors 0
|
||||
else builtins.elemAt monitors 1;
|
||||
position = "top";
|
||||
@@ -77,373 +102,173 @@ in {
|
||||
margin-top = 5;
|
||||
margin-right = if desktop then 8 else 5;
|
||||
mode = "dock";
|
||||
exclusive = true;
|
||||
passthrough = false;
|
||||
"gtk-layer-shell" = true;
|
||||
|
||||
modules-left = [ "hyprland/workspaces" "cava" ];
|
||||
modules-center = [ "hyprland/window" ];
|
||||
modules-right = [ "group/hardware" "clock" "group/powerbtns" ];
|
||||
modules-left = [ "clock" "hyprland/workspaces" "tray" ];
|
||||
modules-center = [];
|
||||
modules-right = [ "cpu" "memory" "pulseaudio" "network" ];
|
||||
|
||||
"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 = {
|
||||
format = "{:%I:%M %p}";
|
||||
tooltip = false;
|
||||
format = "[ CLK: {:%H.%M <span size='8pt'> %a %b %d</span>} ]";
|
||||
tooltip-format = "<tt>{calendar}";
|
||||
calendar = {
|
||||
mode = "month";
|
||||
weeks-pos = "";
|
||||
on-scroll = 1;
|
||||
format = {
|
||||
months = "<span size = '16pt'><b>CAL: {}\n</b></span>";
|
||||
days = "<span size = '16pt'><b>{}</b></span>";
|
||||
weeks = "<span size = '16pt'><b>{}</b></span>";
|
||||
weekdays = "<span size = '16pt'><b>{}</b></span>";
|
||||
today = "<span color='#E6E1CF'><b>{}</b></span>";
|
||||
};
|
||||
};
|
||||
sideBar = {
|
||||
layer = "bottom";
|
||||
output = builtins.elemAt monitors 0;
|
||||
position = "right";
|
||||
margin-top = 8;
|
||||
margin-right = 5;
|
||||
margin-bottom = 8;
|
||||
name = "sideBar";
|
||||
mode = "dock";
|
||||
"gtk-layer-shell" = true;
|
||||
|
||||
modules-left = if desktop then
|
||||
[ "hyprland/workspaces" ]
|
||||
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" ];
|
||||
actions = {
|
||||
on-scroll-up = "shift_down";
|
||||
on-scroll-down = "shift_up";
|
||||
};
|
||||
};
|
||||
|
||||
pulseaudio = {
|
||||
format = "{icon}";
|
||||
format-muted = " ";
|
||||
format-icons = { default = [ " " " " ]; };
|
||||
on-click = "pactl set-sink-mute @DEFAULT_SINK@ toggle";
|
||||
on-click-right =
|
||||
"hyprctl dispatch exec '[float;size 40% 55%] pavucontrol'";
|
||||
format = "VOL: [ <span color='#272D38'>{icon}</span> ] <span size='8pt'>{volume}%</span>";
|
||||
tooltip = true;
|
||||
tooltip-format = "DEVICE: {desc}";
|
||||
format-muted = "VOL: <span color='#F07178'>[ XXXXXXXX ] <span size='8pt'>{volume}%</span></span>";
|
||||
on-click = "if [ $(pamixer --get-mute) == true ]; then pamixer --unmute; else pamixer --mute; fi";
|
||||
on-scroll-up = "pamixer -i 2";
|
||||
on-scroll-down = "pamixer -d 2";
|
||||
scroll-step = 2;
|
||||
reverse-scrolling = true;
|
||||
format-icons = bar-gauge;
|
||||
};
|
||||
|
||||
network = {
|
||||
interval = 30;
|
||||
format-wifi = " ";
|
||||
tooltip-format-wifi = "{essid} ({signalStrength}%)";
|
||||
format-ethernet = " ";
|
||||
tooltip-format-ethernet = "{ifname}";
|
||||
format-disconnected = " ";
|
||||
tooltip-format-disconnected = "Disconnected";
|
||||
on-click =
|
||||
"hyprctl dispatch exec '[float;size 40% 55%] kitty nmtui'";
|
||||
format-wifi = "[ <span color='#B8CC52'>ONLINE</span> ]";
|
||||
format-ethernet = "[ <span color='#B8CC52'>ONLINE</span> ]";
|
||||
tooltip-format-wifi = "ESSID\t: {essid}\nSTRNGTH\t: {signaldBm}\n\nADDRESS\t: {ipaddr}\nGATE\t: {gwaddr}\nMASK\t: {netmask} | {cidr}";
|
||||
tooltip-format-ethernet = "IFNAME: {ifname}\nADDRESS: {ipaddr}";
|
||||
format-disconnected = "[ <span color='#F07178'>XXXXXX</span> ]";
|
||||
on-click = "nm-connection-editor";
|
||||
};
|
||||
|
||||
battery = {
|
||||
bat = "BAT1";
|
||||
memory = {
|
||||
interval = 20;
|
||||
format = "MEM: [ <span color='#272D38'>{icon}</span> ] <span size='8pt'>{percentage}%</span>";
|
||||
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";
|
||||
format-icons = [
|
||||
"░░░░░░░░"
|
||||
"█░░░░░░░"
|
||||
"██░░░░░░"
|
||||
"███░░░░░"
|
||||
"████░░░░"
|
||||
"█████░░░"
|
||||
"██████░░"
|
||||
"<span color='#F07178'>!!!!!!!!</span>"
|
||||
"<span color='#F07178'>CRITICAL</span>"
|
||||
];
|
||||
};
|
||||
|
||||
cpu = {
|
||||
|
||||
interval = 1;
|
||||
tooltip-format = ''
|
||||
{capacity}%
|
||||
Til empty: {time}'';
|
||||
tooltip-format-charging = ''
|
||||
{capacity}%
|
||||
Til full: {time}'';
|
||||
format = "{icon}";
|
||||
format-icons = battery-gauge;
|
||||
format-charging = "";
|
||||
};
|
||||
|
||||
"group/brightness" = {
|
||||
orientation = "vertical";
|
||||
modules = [ "backlight" "backlight/slider" ];
|
||||
};
|
||||
backlight = {
|
||||
format = "";
|
||||
tooltip = "{percentage}%";
|
||||
};
|
||||
"backlight/slider" = {
|
||||
min = 10;
|
||||
max = 100;
|
||||
orientation = "vertical";
|
||||
rotate = 180;
|
||||
format = "CPU: [ <span color='#272D38'>{icon}</span> ] <span size='8pt'>{usage}%</span>";
|
||||
tooltip = true;
|
||||
format-icons = [
|
||||
"░░░░░░░░"
|
||||
"█░░░░░░░"
|
||||
"██░░░░░░"
|
||||
"███░░░░░"
|
||||
"████░░░░"
|
||||
"█████░░░"
|
||||
"██████░░"
|
||||
"<span color='#272D38'>!!!!!!!!</span>"
|
||||
"<span color='#272D38'>CRITICAL</span>"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
style = ''
|
||||
* {
|
||||
font-size: 14px;
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
font-size: 16px;
|
||||
font-family: "JetBrains Mono Nerd Font";
|
||||
font-familty: EnvyCodeR Nerd Font Mono;
|
||||
font-weight: Bold;
|
||||
min-height: 0;
|
||||
border-radius 0px;
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
border-radius: 10px;
|
||||
border: 3px solid #${fg.light};
|
||||
background: rgba(23,29,35,0.50);
|
||||
margin: 20px;
|
||||
}
|
||||
window#waybar.empty #window {
|
||||
background: none;
|
||||
border: none;
|
||||
color: #${fg.lightest};
|
||||
background: #${bg.darkester};
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
margin: 3px;
|
||||
background: #${bg.darker};
|
||||
border: 3px solid #${bg.dark};
|
||||
border-radius: 8px;
|
||||
tooltip {
|
||||
background: #${bg.darkester};
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
border-radius: 8px;
|
||||
background: #${fg.lightest};
|
||||
color: #${bg.darkest};
|
||||
#workspaces button {
|
||||
color: #${fg.lightest};
|
||||
background: #${bg.darkester};
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
background: #${fg.lightester};
|
||||
border-radius: 8px;
|
||||
color: #${bg.darkest};
|
||||
color: #${bg.darker};
|
||||
background: #${bg.darkester};
|
||||
}
|
||||
|
||||
#cava {
|
||||
background: #${bg.darker};
|
||||
border-radius: 8px;
|
||||
border: 3px solid #${bg.dark};
|
||||
margin: 3px 3px 3px 6px;
|
||||
padding: 0px 15px 0px 15px;
|
||||
color: #${colors.color6};
|
||||
#workspaces button.focused {
|
||||
color: #${bg.dark};
|
||||
background: #${bg.darkester};
|
||||
}
|
||||
|
||||
#workspaces button.urgent {
|
||||
color: #${fg.lightest};
|
||||
background: #${bg.darkester};
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
color: #${fg.lightest};
|
||||
background: #${bg.darkester};
|
||||
}
|
||||
|
||||
#window,
|
||||
#clock,
|
||||
#pulseaudio,
|
||||
#network,
|
||||
#workspaces,
|
||||
#tray,
|
||||
#cpu {
|
||||
padding: 0px 10px;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
#tray {
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
color: #${fg.lightest};
|
||||
}
|
||||
|
||||
#window {
|
||||
margin: 3px;
|
||||
background: #${bg.darker};
|
||||
border-radius: 8px;
|
||||
border: 3px solid #${bg.dark};
|
||||
padding: 0 15px 0 15px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#hardware {
|
||||
margin: 3px;
|
||||
padding: 0 10px 0 10px;
|
||||
background: #${bg.darker};
|
||||
border-radius: 8px;
|
||||
border: 3px solid #${bg.dark};
|
||||
}
|
||||
|
||||
#custom-disk-icon, #cpu, #memory {
|
||||
margin-bottom: 4px;
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#custom-disk-icon {
|
||||
color: #${colors.color4};
|
||||
}
|
||||
|
||||
#memory {
|
||||
color: #${colors.color1};
|
||||
}
|
||||
|
||||
#cpu {
|
||||
color: #${colors.color3};
|
||||
color: #${fg.lightest};
|
||||
}
|
||||
|
||||
#clock {
|
||||
font-weight: bold;
|
||||
background: #${bg.darker};
|
||||
border-radius: 8px;
|
||||
border: 3px solid #${bg.dark};
|
||||
margin: 3px;
|
||||
padding: 0 10px 0 10px;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
#powerbtns {
|
||||
background: #${bg.darker};
|
||||
border-radius: 8px;
|
||||
border: 3px solid #${bg.dark};
|
||||
margin: 3px;
|
||||
padding: 0 5px 0 10px;
|
||||
}
|
||||
|
||||
#custom-power {
|
||||
color: #${colors.color2};
|
||||
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};
|
||||
color: #${fg.lightest};
|
||||
}
|
||||
|
||||
#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;
|
||||
color: #${fg.lightest};
|
||||
}
|
||||
|
||||
#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;
|
||||
#pulseaudio {
|
||||
color: #${fg.lightest};
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
@@ -6,11 +6,6 @@
|
||||
config = lib.mkIf config.movOpts.programConfigs.gitConfig.enable {
|
||||
programs.git = {
|
||||
enable = true;
|
||||
signing = {
|
||||
signer = "${pkgs.gnupg}/bin/gpg";
|
||||
key = "2453DF4EF63B92D5D8FE8C9DC741C9DFD8156540";
|
||||
signByDefault = true;
|
||||
};
|
||||
userEmail = "kylerclay@proton.me";
|
||||
userName = "${username}";
|
||||
extraConfig = {
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
{ 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 ];
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
keymaps = [
|
||||
{
|
||||
action = "<cmd>Telescope find_files<CR>"; # select entire document
|
||||
key = "!fs";
|
||||
key = "<F3>";
|
||||
mode = "n";
|
||||
}
|
||||
{
|
||||
@@ -46,11 +46,6 @@
|
||||
key = "<F2>";
|
||||
mode = [ "n" "t" ];
|
||||
}
|
||||
{
|
||||
action = "<cmd>NvimTreeToggle<CR>";
|
||||
key = "<F3>";
|
||||
mode = "n";
|
||||
}
|
||||
{
|
||||
action = "<cmd>COQnow<CR>";
|
||||
key = "!cq";
|
||||
|
||||
@@ -26,15 +26,17 @@ in {
|
||||
#};
|
||||
};
|
||||
enable = true;
|
||||
diagnostic.settings.signs = false;
|
||||
diagnostic.settings = {
|
||||
virtual_text = true;
|
||||
signs = false;
|
||||
};
|
||||
extraConfigLua = ''
|
||||
if vim.g.started_by_firenvim == true then
|
||||
vim.o.laststatus = 0
|
||||
end
|
||||
if vim.g.neovide then
|
||||
vim.g.neovide_refresh_rate = 144
|
||||
vim.g.neovide_cursor_vfx_mode = "sonicboom"
|
||||
vim.g.neovide_cursor_animate_in_insert_mode = false
|
||||
vim.g.neovide_cursor_animate_in_insert_mode = true
|
||||
end
|
||||
|
||||
vim.g.vimwiki_list = {{path = '~/vimwiki/', syntax = 'markdown', ext = '.md'}}
|
||||
|
||||
@@ -2,8 +2,19 @@
|
||||
programs.nixvim = {
|
||||
plugins.cmp = {
|
||||
autoEnableSources = true;
|
||||
settings.sources =
|
||||
[ { name = "nvim_lsp"; } { name = "path"; } { name = "buffer"; } ];
|
||||
settings = {
|
||||
sources = [
|
||||
{
|
||||
name = "nvim_lsp";
|
||||
}
|
||||
{
|
||||
name = "path";
|
||||
}
|
||||
{
|
||||
name = "buffer";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
plugins.cmp-nvim-lsp.enable = true;
|
||||
plugins.cmp-nvim-lsp-document-symbol.enable = true;
|
||||
|
||||
10
modules/home/programs/nixvim/plugins/copilot.nix
Normal file
10
modules/home/programs/nixvim/plugins/copilot.nix
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
programs.nixvim.plugins.copilot-lua = {
|
||||
enable = true;
|
||||
settings = {
|
||||
suggestion = {
|
||||
auto_trigger = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -16,6 +16,7 @@
|
||||
./airline.nix
|
||||
./nvim-lightbulb.nix
|
||||
./neocord.nix
|
||||
./copilot.nix
|
||||
./plugins.nix
|
||||
./nvim-tree.nix
|
||||
./telescope.nix
|
||||
|
||||
@@ -13,28 +13,51 @@
|
||||
['<C-j>'] = cmp.mapping.scroll_docs(-4),
|
||||
['<C-k>'] = cmp.mapping.scroll_docs(4),
|
||||
['<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)
|
||||
if cmp.visible() then
|
||||
cmp.confirm()
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, -- Added a comma here
|
||||
end,
|
||||
['<Tab>'] = function(fallback)
|
||||
local copilot = require("copilot.suggestion")
|
||||
if cmp.visible() then
|
||||
cmp.select_next_item()
|
||||
elseif copilot.is_visible() then
|
||||
cmp.abort()
|
||||
copilot.accept()
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, -- Added a comma here
|
||||
['<S-Tab>'] = function(fallback)
|
||||
end,
|
||||
['<A-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_word()
|
||||
else
|
||||
fallback()
|
||||
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
|
||||
})
|
||||
'';
|
||||
};
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
"192.168.1.200" = [ "xenon" ];
|
||||
"192.168.1.201" = [ "oganesson" ];
|
||||
"192.168.1.202" = [ "mercury" ];
|
||||
"192.168.1.134" = [ "hosting.localhost" ];
|
||||
};
|
||||
firewall = {
|
||||
enable = true;
|
||||
|
||||
@@ -9,6 +9,9 @@ let
|
||||
"-DDOWNLOAD_TITLE_SEQUENCES=ON"
|
||||
];
|
||||
});
|
||||
cust-prismlauncher = pkgs.prismlauncher.override (oldAttrs: {
|
||||
jdks = [ pkgs.temurin-bin-21 ];
|
||||
});
|
||||
in {
|
||||
options = {
|
||||
movOpts.softwareCfg.gamingPkgs.enable =
|
||||
@@ -19,8 +22,7 @@ in {
|
||||
#snes9x-gtk
|
||||
#cust-openrct2
|
||||
mgba
|
||||
dwarf-fortress-packages.dwarf-fortress-full
|
||||
prismlauncher
|
||||
cust-prismlauncher
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
hyprpaper
|
||||
hyprpicker
|
||||
inetutils
|
||||
rcon-cli
|
||||
kitty
|
||||
lolcat
|
||||
lsof
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ pkgs, self, lib, config, ... }:
|
||||
|
||||
let
|
||||
scheme = "chalk";
|
||||
scheme = "ayu-dark";
|
||||
wallpaper = "${self}/assets/wallpapers/dark-waves.jpg";
|
||||
in {
|
||||
options = {
|
||||
|
||||
Reference in New Issue
Block a user