initial commit

This commit is contained in:
2023-12-21 13:05:49 +05:30
commit e63afa54b8
65 changed files with 3589 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
config

407
flake.lock generated Executable file
View File

@ -0,0 +1,407 @@
{
"nodes": {
"astronvim": {
"flake": false,
"locked": {
"lastModified": 1693570730,
"narHash": "sha256-MJ1K8SL9K784PeI/4tKHzp+cACDrhQ89W9ZlONdXWsA=",
"owner": "AstroNvim",
"repo": "AstroNvim",
"rev": "b1a158eb3d8abda33cc28f3e9ca730530880e71b",
"type": "github"
},
"original": {
"owner": "AstroNvim",
"ref": "v3.36.7",
"repo": "AstroNvim",
"type": "github"
}
},
"emacs": {
"inputs": {
"flake-utils": "flake-utils_2",
"nixpkgs": "nixpkgs_2",
"nixpkgs-stable": "nixpkgs-stable"
},
"locked": {
"lastModified": 1702399955,
"narHash": "sha256-FnB5O1RVFzj3h7Ayf7UxFnOL1gsJuG6gn1LCTd9dKFs=",
"owner": "nix-community",
"repo": "emacs-overlay",
"rev": "47798c4ab07d5f055bb2625010cf6d8e3f384923",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "emacs-overlay",
"type": "github"
}
},
"fenix": {
"inputs": {
"nixpkgs": [
"nixpkgs-f2k",
"nixpkgs-fmt",
"nixpkgs"
],
"rust-analyzer-src": "rust-analyzer-src"
},
"locked": {
"lastModified": 1637475807,
"narHash": "sha256-E3nzOvlzZXwyo8Stp5upKsTCDcqUTYAFj4EC060A31c=",
"owner": "nix-community",
"repo": "fenix",
"rev": "960e7fef45692a4fffc6df6d6b613b0399bbdfd5",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "fenix",
"type": "github"
}
},
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1701680307,
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_2": {
"inputs": {
"systems": "systems_2"
},
"locked": {
"lastModified": 1701680307,
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils_3": {
"locked": {
"lastModified": 1637014545,
"narHash": "sha256-26IZAc5yzlD9FlDT54io1oqG/bBoyka+FJk5guaX4x4=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "bba5dcc8e0b20ab664967ad83d24d64cb64ec4f4",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1702937117,
"narHash": "sha256-4GjkL2D01bDg00UZN/SeGrnBZrDVOFeZTbQx6U702Vc=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "e8aaced73ebaf6bfa8e3c6ab0a19cb184bc4d798",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"nixos-hardware": {
"locked": {
"lastModified": 1702453208,
"narHash": "sha256-0wRi9SposfE2wHqjuKt8WO2izKB/ASDOV91URunIqgo=",
"owner": "nixos",
"repo": "nixos-hardware",
"rev": "7763c6fd1f299cb9361ff2abf755ed9619ef01d6",
"type": "github"
},
"original": {
"owner": "nixos",
"repo": "nixos-hardware",
"type": "github"
}
},
"nixos-wsl": {
"inputs": {
"flake-compat": "flake-compat",
"flake-utils": "flake-utils",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1702867085,
"narHash": "sha256-zcKtsexiTURppa7styWbMvrFiIYfoY5mBtWeIlh7YqU=",
"owner": "nix-community",
"repo": "nixos-wsl",
"rev": "86f3b26038b36603f51e260979a09e9c659415e9",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixos-wsl",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1702830618,
"narHash": "sha256-lvhwIvRwhOLgzbRuYkqHy4M5cQHYs4ktL6/hyuBS6II=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "91a00709aebb3602f172a0bf47ba1ef013e34835",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-f2k": {
"inputs": {
"emacs": "emacs",
"nixpkgs": "nixpkgs_3",
"nixpkgs-fmt": "nixpkgs-fmt",
"parts": "parts"
},
"locked": {
"lastModified": 1702953048,
"narHash": "sha256-hGcKr8roKHT22+DTb1zbtUzs1ankUF2BS2/aiTN+Lq4=",
"owner": "moni-dz",
"repo": "nixpkgs-f2k",
"rev": "ccd1d893cd2f21e02b3f20dee7af3313c005da63",
"type": "github"
},
"original": {
"owner": "moni-dz",
"repo": "nixpkgs-f2k",
"type": "github"
}
},
"nixpkgs-fmt": {
"inputs": {
"fenix": "fenix",
"flake-utils": "flake-utils_3",
"nixpkgs": [
"nixpkgs-f2k",
"nixpkgs"
]
},
"locked": {
"lastModified": 1702885237,
"narHash": "sha256-5oy8ntXhxzES+MifBMUjqnQDemIc5Nzv2hEVx+3gUmo=",
"owner": "nix-community",
"repo": "nixpkgs-fmt",
"rev": "8c58125463b104c07c58845a483fe9d2d12ce5db",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixpkgs-fmt",
"type": "github"
}
},
"nixpkgs-lib": {
"locked": {
"dir": "lib",
"lastModified": 1701253981,
"narHash": "sha256-ztaDIyZ7HrTAfEEUt9AtTDNoCYxUdSd6NrRHaYOIxtk=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "e92039b55bcd58469325ded85d4f58dd5a4eaf58",
"type": "github"
},
"original": {
"dir": "lib",
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1702221085,
"narHash": "sha256-Br3GCSkkvkmw46cT6wCz6ro2H1WgDMWbKE0qctbdtL0=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "c2786e7084cbad90b4f9472d5b5e35ecb57958af",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-23.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1702151865,
"narHash": "sha256-9VAt19t6yQa7pHZLDbil/QctAgVsA66DLnzdRGqDisg=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "666fc80e7b2afb570462423cb0e1cf1a3a34fedd",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1702952957,
"narHash": "sha256-wu5fyAZ8eM/WwTViAQgLVNmtzPSId/XycVr+i83/7D4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "25e3b2c7a9296ea1abd61d5fbba478427c609af7",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "master",
"repo": "nixpkgs",
"type": "github"
}
},
"nur": {
"locked": {
"lastModified": 1702957303,
"narHash": "sha256-MspofgHcwmDRsfBtVoXRBluNz49OejQGvn7VM+aoSfc=",
"owner": "nix-community",
"repo": "nur",
"rev": "06f325fc281e404efda68baa45246ebc8a9e961b",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nur",
"type": "github"
}
},
"parts": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1701473968,
"narHash": "sha256-YcVE5emp1qQ8ieHUnxt1wCZCC3ZfAS+SRRWZ2TMda7E=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "34fed993f1674c8d06d58b37ce1e0fe5eebcb9f5",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"root": {
"inputs": {
"astronvim": "astronvim",
"home-manager": "home-manager",
"nixos-hardware": "nixos-hardware",
"nixos-wsl": "nixos-wsl",
"nixpkgs": "nixpkgs",
"nixpkgs-f2k": "nixpkgs-f2k",
"nur": "nur"
}
},
"rust-analyzer-src": {
"flake": false,
"locked": {
"lastModified": 1637439871,
"narHash": "sha256-2awQ/obzl7zqYgLwbQL0zT58gN8Xq7n+81GcMiS595I=",
"owner": "rust-analyzer",
"repo": "rust-analyzer",
"rev": "4566414789310acb2617543f4b50beab4bb48e06",
"type": "github"
},
"original": {
"owner": "rust-analyzer",
"ref": "nightly",
"repo": "rust-analyzer",
"type": "github"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

96
flake.nix Executable file
View File

@ -0,0 +1,96 @@
{
description = "tux's NixOS Flake";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nixos-wsl = {
url = "github:nix-community/nixos-wsl";
inputs.nixpkgs.follows = "nixpkgs";
};
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
astronvim = {
url = "github:AstroNvim/AstroNvim/v3.36.7";
flake = false;
};
nixos-hardware.url = "github:nixos/nixos-hardware";
nixpkgs-f2k.url = "github:moni-dz/nixpkgs-f2k";
nur.url = "github:nix-community/nur";
};
outputs = { self, nixpkgs, home-manager, ... } @ inputs:
let
inherit (self) outputs;
forAllSystems = nixpkgs.lib.genAttrs [
"x86_64-linux"
];
username = "tux";
in
{
packages = forAllSystems (system: import ./pkgs nixpkgs.legacyPackages.${system});
formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.alejandra);
# Custom packages and modifications, exported as overlays
overlays = import ./overlays { inherit inputs; };
# NixOS configuration entrypoint
# 'nixos-rebuild switch --flake .#your-hostname'
nixosConfigurations = {
canopus = nixpkgs.lib.nixosSystem {
specialArgs = { inherit inputs outputs username; };
modules = [
./hosts/canopus
./modules/nixos/desktop/awesome
./modules/nixos/virtualisation
./modules/nixos/steam.nix
home-manager.nixosModules.home-manager
{
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = { inherit inputs outputs username; };
home-manager.users.${username} = {
imports = [
./modules/home-manager
./home/tux
];
};
}
];
};
wsl = nixpkgs.lib.nixosSystem {
specialArgs = { inherit inputs outputs username; };
modules = [
./hosts/wsl
home-manager.nixosModules.home-manager
{
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = { inherit inputs outputs username; };
home-manager.users.${username} = {
imports = [
./modules/home-manager
./home/tux
];
};
}
];
};
};
# Standalone home-manager configuration entrypoint
# home-manager switch --flake .#your-username@your-hostname'
homeConfigurations = {
"${username}@canopus" = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages.x86_64-linux;
extraSpecialArgs = { inherit inputs outputs username; };
modules = [
./modules/home-manager
];
};
};
};
}

10
home/tux/default.nix Normal file
View File

@ -0,0 +1,10 @@
{ pkgs, ... }: {
home.packages = with pkgs; [
discord
anydesk
nodePackages.pnpm
vlc
darktable
rawtherapee
];
}

180
hosts/canopus/default.nix Executable file
View File

@ -0,0 +1,180 @@
{ inputs, outputs, lib, config, pkgs, username, ... }: {
imports = [
inputs.nixos-hardware.nixosModules.asus-zephyrus-ga503
./hardware-configuration.nix
];
nixpkgs = {
overlays = [
outputs.overlays.additions
outputs.overlays.modifications
outputs.overlays.unstable-packages
outputs.overlays.nur
];
config = {
allowUnfree = true;
joypixels.acceptLicense = true;
};
};
nix = {
settings = {
experimental-features = "nix-command flakes";
auto-optimise-store = true;
};
};
time.timeZone = "Asia/Kolkata";
i18n = {
defaultLocale = "en_IN";
extraLocaleSettings = {
LC_ADDRESS = "en_IN";
LC_IDENTIFICATION = "en_IN";
LC_MEASUREMENT = "en_IN";
LC_MONETARY = "en_IN";
LC_NAME = "en_IN";
LC_NUMERIC = "en_IN";
LC_PAPER = "en_IN";
LC_TELEPHONE = "en_IN";
LC_TIME = "en_IN";
};
};
networking = {
hostName = "canopus";
networkmanager.enable = true;
firewall = {
enable = true;
allowedTCPPorts = [ 80 443 3000 6666 ];
};
};
boot = {
kernelPackages = pkgs.linuxPackages_zen;
supportedFilesystems = [ "ntfs" ];
initrd.systemd.enable = true;
loader = {
systemd-boot = {
enable = true;
# configurationLimit = 5;
};
efi.canTouchEfiVariables = true;
timeout = 1;
};
};
hardware = {
bluetooth.enable = true;
bluetooth.powerOnBoot = true;
opengl.driSupport32Bit = true;
};
security = {
sudo.wheelNeedsPassword = false;
polkit.enable = true;
rtkit.enable = true;
};
systemd = {
enableEmergencyMode = false;
user = {
services.polkit-gnome-authentication-agent-1 = {
description = "polkit-gnome-authentication-agent-1";
wantedBy = [ "graphical-session.target" ];
wants = [ "graphical-session.target" ];
after = [ "graphical-session.target" ];
serviceConfig = {
Type = "simple";
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
Restart = "on-failure";
RestartSec = 1;
TimeoutStopSec = 10;
};
};
};
};
programs = {
ssh.startAgent = true;
zsh.enable = true;
thunar = {
enable = true;
plugins = with pkgs.xfce; [ thunar-archive-plugin thunar-volman ];
};
nix-ld.enable = true;
nm-applet.enable = true;
};
users = {
defaultUserShell = pkgs.zsh;
users.${username} = {
initialPassword = "${username}";
isNormalUser = true;
extraGroups = [ "networkmanager" "wheel" "storage" ];
openssh.authorizedKeys.keys = [
''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL+OzPUe2ECPC929DqpkM39tl/vdNAXfsRnmrGfR+X3D 0xtux@pm.me''
];
};
};
services = {
openssh = {
enable = true;
settings = {
PasswordAuthentication = false;
};
};
pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
logind = {
extraConfig = "HandlePowerKey=suspend";
lidSwitch = "suspend";
lidSwitchExternalPower = "suspend";
};
syncthing = {
enable = true;
user = "tux";
dataDir = "/home/tux/";
};
xserver = {
enable = true;
layout = "in";
xkbVariant = "eng";
libinput.touchpad.naturalScrolling = true;
};
blueman.enable = true;
supergfxd.enable = true;
asusd = {
enable = true;
enableUserService = true;
asusdConfig = "bat_charge_limit: 80";
};
gvfs.enable = true;
tumbler.enable = true;
gnome.gnome-keyring.enable = true;
tailscale.enable = true;
mullvad-vpn = {
enable = true;
package = pkgs.mullvad-vpn;
};
};
fonts.packages = with pkgs; [ (nerdfonts.override { fonts = [ "FiraCode" "JetBrainsMono" ]; }) ];
system.stateVersion = "23.11";
}

View File

@ -0,0 +1,36 @@
# 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 = [ "nvme" "xhci_pci" "usbhid" "usb_storage" "sd_mod" "sdhci_pci" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" = {
device = "/dev/disk/by-uuid/e79e5cdf-4197-4f44-96c7-3ab9ba9878bb";
fsType = "ext4";
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/ADC4-BC71";
fsType = "vfat";
};
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.enp3s0.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp4s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

37
hosts/wsl/default.nix Normal file
View File

@ -0,0 +1,37 @@
{ config, lib, pkgs, inputs, username, ... }:
{
imports = [
inputs.nixos-wsl.nixosModules.wsl
];
nixpkgs.hostPlatform = "x86_64-linux";
wsl.enable = true;
wsl.defaultUser = "${username}";
programs = {
zsh.enable = true;
nix-ld.enable = true;
};
users = {
defaultUserShell = pkgs.zsh;
users.${username} = {
initialPassword = "${username}";
isNormalUser = true;
extraGroups = [ "networkmanager" "wheel" "storage" ];
openssh.authorizedKeys.keys = [
''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL+OzPUe2ECPC929DqpkM39tl/vdNAXfsRnmrGfR+X3D 0xtux@pm.me''
];
};
};
environment.systemPackages = with pkgs;[
ollama
];
fonts.packages = with pkgs; [ (nerdfonts.override { fonts = [ "FiraCode" "JetBrainsMono" ]; }) ];
system.stateVersion = "23.11";
}

View File

@ -0,0 +1,85 @@
{ ... }: {
programs.alacritty = {
enable = true;
settings = {
font = {
normal.family = "JetBrainsMono Nerd Font";
bold.family = "JetBrainsMono Nerd Font";
italic.family = "JetBrainsMono Nerd Font";
bold_italic.family = "JetBrainsMono Nerd Font";
size = 10;
};
window = {
padding = {
x = 15;
y = 15;
};
decorations = "none";
opacity = 1.0;
dynamic_title = true;
history = 10000;
multiplier = 3;
};
selection.save_to_clipboard = false;
live_config_reload = true;
colors = {
primary = {
background = "#0f0f0f";
foreground = "0xa6accd";
};
normal = {
black = "0x1b1e28";
red = "0xd0679d";
green = "0x5de4c7";
yellow = "0xfffac2";
blue = "0x89ddff";
magenta = "0xfcc5e9";
cyan = "0xadd7ff";
white = "0xffffff";
};
bright = {
black = "0xa6accd";
red = "0xd0679d";
green = "0x5de4c7";
yellow = "0xfffac2";
blue = "0xadd7ff";
magenta = "0xfae4fc";
cyan = "0x89ddff";
white = "0xffffff";
};
cursor = {
cursor = "#bb9af7";
text = "CellBackground";
};
search = {
matches = {
foreground = "0x1b1e28";
background = "0xadd7ff";
};
focused_match = {
foreground = "0x1b1e28";
background = "0xadd7ff";
};
footer_bar = {
foreground = "0x1b1e28";
background = "0xadd7ff";
};
};
selection = {
text = "CellForeground";
background = "0x303340";
};
vi_mode_cursor = {
text = "CellBackground";
cursor = "CellForeground";
};
};
};
};
}

View File

@ -0,0 +1,7 @@
{ pkgs, ... }: {
# services.barrier.client.enable = true;
home.packages = with pkgs; [
barrier
];
}

View File

@ -0,0 +1,14 @@
{ pkgs, ... }: {
programs.rbw = {
enable = true;
settings = {
base_url = "https://vault.0xtux.com";
email = "0xtux@pm.me";
};
};
home.packages = with pkgs; [
bitwarden
];
}

View File

@ -0,0 +1,63 @@
{ inputs, outputs, lib, config, pkgs, username, ... }: {
imports = [
./picom
./shell
./git
./alacritty
./wezterm
./starship
./nvim
./barrier
./firefox
./bitwarden
];
nixpkgs = {
overlays = [
outputs.overlays.additions
outputs.overlays.modifications
outputs.overlays.unstable-packages
outputs.overlays.nur
];
config = {
allowUnfree = true;
allowUnfreePredicate = _: true;
joypixels.acceptLicense = true;
};
};
home = {
username = "${username}";
homeDirectory = "/home/${username}";
pointerCursor = {
package = pkgs.bibata-cursors;
name = "Bibata-Modern-Ice";
};
};
qt.enable = true;
qt.platformTheme = "gtk";
qt.style.name = "adwaita-dark";
qt.style.package = pkgs.adwaita-qt;
gtk = {
enable = true;
theme = {
name = "Materia-dark";
package = pkgs.materia-theme;
};
iconTheme = {
package = pkgs.tela-icon-theme;
name = "Tela-black";
};
};
programs.vscode.enable = true;
programs.home-manager.enable = true;
systemd.user.startServices = "sd-switch";
home.stateVersion = "23.11";
}

View File

@ -0,0 +1,69 @@
{ pkgs, inputs, username, ... }: {
programs.firefox = {
enable = true;
package = pkgs.firefox.override {
extraPolicies = {
CaptivePortal = false;
DisableFirefoxStudies = true;
DisablePocket = true;
DisableTelemetry = true;
DisableFirefoxAccounts = false;
NoDefaultBookmarks = true;
OfferToSaveLogins = false;
OfferToSaveLoginsDefault = false;
PasswordManagerEnabled = false;
FirefoxHome = {
Search = true;
Pocket = false;
Snippets = false;
TopSites = false;
Highlights = false;
};
UserMessaging = {
ExtensionRecommendations = false;
SkipOnboarding = true;
};
};
};
profiles = {
${username} = {
id = 0;
name = "tux";
search = {
force = true;
default = "Google";
};
settings = {
"general.smoothScroll" = true;
"extensions.activeThemeID" = "firefox-compact-dark@mozilla.org";
"layout.css.prefers-color-scheme.content-override" = 0;
"browser.compactmode.show" = true;
"browser.tabs.firefox-view" = false;
"browser.bookmarks.addedImportButton" = false;
"extensions.pocket.enabled" = false;
};
extraConfig = ''
user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", true);
user_pref("full-screen-api.ignore-widgets", true);
user_pref("media.ffmpeg.vaapi.enabled", true);
user_pref("media.rdd-vpx.enabled", true);
'';
userChrome = builtins.readFile ./userChrome.css;
userContent = builtins.readFile ./userContent.css;
extensions = with pkgs.nur.repos.rycee.firefox-addons; [
ublock-origin
facebook-container
metamask
darkreader
bitwarden
wappalyzer
private-relay
clearurls
];
};
};
};
}

View File

@ -0,0 +1,834 @@
/*================== Simplify Darkish Gray for Firefox ==================
Author: dpcdpc11.gumroad.com
ENJOY!
*/
/*================ GLOBAL COLORS ================*/
:root {
--accent-color: 38, 38, 38;
/* #262626 */
--secondary-accent-color: 140, 140, 140;
/* #8c8c8c */
--third-accent-color: 190, 190, 190;
/* #bebebe */
--light-color: 255, 255, 255;
/* #ffffff */
--dark-color: 15, 15, 15;
/* #0f0f0f */
--caption-min-color: 82, 82, 82;
/* #525252 */
--caption-max-color: 100, 100, 100;
/* #646464 */
--caption-close-color: 126, 126, 126;
/* #7e7e7e */
}
/*================ DARK MODE ================*/
:root:-moz-lwtheme-brighttext,
.sidebar-panel[lwt-sidebar-brighttext],
body[lwt-sidebar-brighttext] {
--main-bgcolor: var(--dark-color);
--transparent-bgcolor: var(--accent-color);
}
/*================== MAIN HEADER ==================*/
toolbox#navigator-toolbox {
border: 0 !important;
}
/*================== TABS BAR ==================*/
#titlebar #TabsToolbar {
padding: 6px 0px 2px 6px !important;
background: rgba(var(--dark-color), 1) !important;
}
.titlebar-spacer[type="pre-tabs"] {
/* border: 0 !important; */
display: none;
}
#tabbrowser-tabs:not([movingtab])>.tabbrowser-tab[beforeselected-visible]::after,
#tabbrowser-tabs[movingtab]>.tabbrowser-tab[visuallyselected]::before,
.tabbrowser-tab[visuallyselected]::after {
opacity: 0 !important;
}
.tab-line {
height: 0px !important;
}
.tabbrowser-tab {
margin-right: 5px !important;
}
.tabbrowser-tab:not([visuallyselected="true"]),
.tabbrowser-tab:-moz-lwtheme {
color: rgba(var(--secondary-accent-color), 1) !important;
}
tab[selected="true"] .tab-content {
color: rgba(var(--secondary-accent-color), 1) !important;
}
tab[selected="true"] .tab-background {
background: rgba(var(--accent-color), 1) !important;
}
.tabbrowser-tab::after,
.tabbrowser-tab::before {
border-left: 0 !important;
opacity: 0 !important;
}
.tab-close-button {
transition: all 0.3s ease !important;
border-radius: 4px !important;
}
.tab-close-button:hover {
fill-opacity: 0.2 !important;
}
.tabbrowser-tab>.tab-stack>.tab-background {
border-radius: 4px !important;
}
.tabbrowser-tab>.tab-stack>.tab-background:not([selected="true"]) {
transition: all 0.3s ease !important;
}
.tabbrowser-tab:hover>.tab-stack>.tab-background:not([selected="true"]) {
background-color: rgba(var(--transparent-bgcolor), 0.7) !important;
}
/*================== BOOKMARKS TOOLBAR ==================*/
#PersonalToolbar {
background: rgba(var(--dark-color), 1) !important;
color: rgba(var(--secondary-accent-color), 1) !important;
padding-bottom: 6px !important;
padding-top: 1px !important;
}
toolbarbutton.bookmark-item {
transition: all 0.3s ease !important;
padding: 3px 5px !important;
border-radius: 4px !important;
}
toolbarbutton.bookmark-item .toolbarbutton-icon {
fill: rgba(var(--secondary-accent-color), 1) !important;
}
#PlacesToolbar toolbarseparator {
-moz-appearance: none !important;
width: 1px;
margin: 0 8px !important;
background-color: rgba(var(--secondary-accent-color), 0.5) !important;
padding-inline: 0px !important;
}
/*================== CAPTION BUTTONS ==================*/
.titlebar-buttonbox {
position: relative;
margin-right: 0px;
margin-top: -10px !important;
}
.titlebar-button {
transition: all 0.3s ease !important;
padding: 8px 10px !important;
background: rgba(var(--dark-color), 1) !important;
}
.titlebar-button.titlebar-close {
padding-right: 26px !important;
}
.titlebar-button>.toolbarbutton-icon {
transition: all 0.3s ease !important;
list-style-image: none;
border-radius: 10px;
}
.titlebar-button.titlebar-min>.toolbarbutton-icon {
background: rgba(var(--caption-min-color), 1);
!important;
}
.titlebar-button.titlebar-max>.toolbarbutton-icon,
.titlebar-button.titlebar-restore>.toolbarbutton-icon {
background: rgba(var(--caption-max-color), 1);
!important;
}
.titlebar-button.titlebar-close>.toolbarbutton-icon {
background: rgba(var(--caption-close-color), 1);
!important;
}
.titlebar-button:hover>.toolbarbutton-icon {
background: rgba(var(--third-accent-color), 1);
!important;
}
.titlebar-button.titlebar-min:hover>.toolbarbutton-icon,
.titlebar-button.titlebar-max:hover>.toolbarbutton-icon,
.titlebar-button.titlebar-restore:hover>.toolbarbutton-icon,
.titlebar-button.titlebar-close:hover>.toolbarbutton-icon {}
/*================== NEW TAB BUTTON ==================*/
toolbar #tabs-newtab-button:not([disabled="true"]):not([checked]):not([open]):not(:active)>.toolbarbutton-icon,
toolbar #tabs-newtab-button:not([disabled="true"]):-moz-any([open], [checked], :hover:active)>.toolbarbutton-icon,
toolbar #tabs-newtab-button:not([disabled="true"]):-moz-any([open], [checked], :active)>.toolbarbutton-icon {
transition: all 0.3s ease !important;
fill: rgba(var(--secondary-accent-color), 1) !important;
border-radius: 4px !important;
background-color: rgba(var(--transparent-bgcolor), 0.7) !important;
}
toolbar #tabs-newtab-button:not([disabled="true"]):not([checked]):not([open]):not(:active):hover>.toolbarbutton-icon {
background-color: rgba(var(--transparent-bgcolor), 1) !important;
}
/*================== NAV BAR ==================*/
toolbar#nav-bar {
background: rgba(var(--dark-color), 1) !important;
box-shadow: none !important;
padding-bottom: 4px !important;
}
toolbar#nav-bar toolbarbutton .toolbarbutton-icon,
toolbar#nav-bar toolbarbutton #fxa-avatar-image {
transition: all 0.3s ease !important;
fill: rgba(var(--secondary-accent-color), 1) !important;
}
#urlbar>#urlbar-background {
border-radius: 4px !important;
border: 0 !important;
background-color: rgba(var(--accent-color), 1) !important;
}
#urlbar:not([focused="true"])>#urlbar-background,
#urlbar>#urlbar-input-container {
border-radius: 4px !important;
}
#PersonalToolbar .toolbarbutton-1:not([disabled="true"]):not([checked]):not([open]):not(:active):hover,
.tabbrowser-arrowscrollbox:not([scrolledtostart="true"])::part(scrollbutton-up):hover,
.tabbrowser-arrowscrollbox:not([scrolledtoend="true"])::part(scrollbutton-down):hover,
.findbar-button:not(:-moz-any([checked="true"], [disabled="true"])):hover,
toolbarbutton.bookmark-item:not(.subviewbutton):hover:not([disabled="true"]):not([open]),
toolbar .toolbarbutton-1:not([disabled="true"]):not([checked]):not([open]):not(:active):hover>.toolbarbutton-icon,
toolbar .toolbarbutton-1:not([disabled="true"]):not([checked]):not([open]):not(:active):hover>.toolbarbutton-text,
toolbar .toolbarbutton-1:not([disabled="true"]):not([checked]):not([open]):not(:active):hover>.toolbarbutton-badge-stack {
background-color: rgba(var(--transparent-bgcolor), 0.7) !important;
}
#PersonalToolbar .toolbarbutton-1:not([disabled="true"]):-moz-any([open], [checked], :hover:active),
.findbar-button:not([disabled="true"]):-moz-any([checked="true"], :hover:active),
toolbarbutton.bookmark-item:not(.subviewbutton):hover:active:not([disabled="true"]),
toolbarbutton.bookmark-item[open="true"],
toolbar .toolbarbutton-1:not([disabled="true"]):-moz-any([open], [checked], :hover:active)>.toolbarbutton-icon,
toolbar .toolbarbutton-1:not([disabled="true"]):-moz-any([open], [checked], :hover:active)>.toolbarbutton-text,
toolbar .toolbarbutton-1:not([disabled="true"]):-moz-any([open], [checked], :hover:active)>.toolbarbutton-badge-stack {
background-color: rgba(var(--transparent-bgcolor), 0.2) !important;
}
:root:not([uidensity="compact"]) #back-button>.toolbarbutton-icon {
background-color: transparent !important;
}
.urlbar-input-box {
color: rgba(var(--third-accent-color), 1) !important;
}
/*Fixes the funky Reload/Stop button*/
box.toolbarbutton-animatable-box {
margin-top: -2px !important;
}
/*================== SEARCH BAR ==================*/
searchbar#searchbar {
margin-top: 4px !important;
border-radius: 4px !important;
border: 0 !important;
fill: rgba(var(--secondary-accent-color), 1) !important;
background-color: rgba(var(--accent-color), 1) !important;
color: rgba(var(--third-accent-color), 1) !important;
box-shadow: none !important;
}
/*================== SIDEBAR ==================*/
#sidebar-box,
.sidebar-panel[lwt-sidebar-brighttext] {
background-color: rgba(var(--main-bgcolor), 1) !important;
}
#sidebar-header {
border-color: rgba(var(--accent-color), 1) !important;
}
.sidebar-splitter {
border-color: rgba(var(--accent-color), 1) !important;
}
#sidebar-switcher-target:hover,
#sidebar-switcher-target:hover:active,
#sidebar-switcher-target.active,
#viewButton:hover,
#viewButton[open] {
background-color: rgba(var(--accent-color), 1) !important;
}
.sidebar-placesTreechildren {
color: unset !important;
}
#search-box,
.search-box {
-moz-appearance: none !important;
background-color: rgba(var(--accent-color), 1) !important;
border-radius: 4px !important;
color: unset !important;
}
.content-container {
background-color: rgba(var(--main-bgcolor), 1) !important;
color: unset !important;
}
#viewButton {
color: unset !important;
}
/*================== CONTEXT MENU ==================*/
#backForwardMenu,
#contentAreaContextMenu,
#customizationPaletteItemContextMenu,
#customizationPanelItemContextMenu,
#customization-toolbar-menu,
#downloadsContextMenu,
#new-tab-button-popup,
#pageActionContextMenu,
#PlacesChevronPopup,
#placesContext,
.search-one-offs-context-menu,
#SyncedTabsSidebarContext,
#SyncedTabsSidebarTabsFilterContext,
#tabContextMenu,
#tabs-newtab-button-popup,
#textbox-contextmenu,
.textbox-contextmenu,
#toolbar-context-menu,
#toolbox-menu,
#widget-overflow>#customizationPanelItemContextMenu,
#back-button>menupopup,
#backForwardMenu menupopup,
#contentAreaContextMenu menupopup,
#customizationPaletteItemContextMenu menupopup,
#customizationPanelItemContextMenu menupopup,
#customization-toolbar-menu menupopup,
#downloadsContextMenu menupopup,
#forward-button>menupopup,
#main-menubar menupopup,
#new-tab-button-popup menupopup,
#pageActionContextMenu menupopup,
#PlacesChevronPopup menupopup,
#placesContext menupopup,
#PlacesToolbarItems .bookmark-item menupopup,
.search-one-offs-context-menu menupopup,
#SyncedTabsSidebarContext menupopup,
#tabContextMenu menupopup,
#textbox-contextmenu menupopup,
.textbox-contextmenu menupopup,
#toolbar-context-menu menupopup,
#toolbox-menu menupopup,
#viewButton>menupopup,
#widget-overflow>#customizationPanelItemContextMenu menupopup,
#back-button>menupopup menupopup,
#forward-button>menupopup menupopup,
#viewButton>menupopup menupopup {
-moz-appearance: none !important;
background-color: rgba(var(--accent-color), 1) !important;
border: 1px solid rgba(var(--secondary-accent-color), 0.5) !important;
}
#back-button>menupopup :-moz-any(menuitem, menu),
#backForwardMenu :-moz-any(menuitem, menu),
#contentAreaContextMenu :-moz-any(menuitem, menu),
#customizationPaletteItemContextMenu :-moz-any(menuitem, menu),
#customizationPanelItemContextMenu :-moz-any(menuitem, menu),
#customization-toolbar-menu :-moz-any(menuitem, menu),
#downloadsContextMenu :-moz-any(menuitem, menu),
#forward-button>menupopup :-moz-any(menuitem, menu),
#main-menubar menupopup :-moz-any(menuitem, menu),
#new-tab-button-popup :-moz-any(menuitem, menu),
#pageActionContextMenu :-moz-any(menuitem, menu),
#PlacesChevronPopup :-moz-any(menuitem, menu),
#placesContext :-moz-any(menuitem, menu),
#PlacesToolbarItems .bookmark-item menupopup :-moz-any(menuitem, menu),
.search-one-offs-context-menu :-moz-any(menuitem, menu),
#SyncedTabsSidebarContext :-moz-any(menuitem, menu),
#tabContextMenu :-moz-any(menuitem, menu),
#tabs-newtab-button-popup :-moz-any(menuitem, menu),
.textbox-contextmenu :-moz-any(menuitem, menu),
#toolbar-context-menu :-moz-any(menuitem, menu),
#toolbox-menu :-moz-any(menuitem, menu),
.urlbar-input-box .textbox-contextmenu :-moz-any(menuitem, menu),
#viewButton>menupopup :-moz-any(menuitem, menu),
#widget-overflow #customizationPanelItemContextMenu :-moz-any(menuitem, menu) {
-moz-appearance: none !important;
color: rgba(var(--third-accent-color), 0.8) !important;
padding: 0px 0px 2px 0px !important;
min-height: 22px !important;
}
#back-button>menupopup menugroup,
#backForwardMenu menugroup,
#contentAreaContextMenu menugroup,
#customizationPaletteItemContextMenu menugroup,
#customizationPanelItemContextMenu menugroup,
#customization-toolbar-menu menugroup,
#downloadsContextMenu menugroup,
#forward-button>menupopup menugroup,
#main-menubar menupopup menugroup,
#new-tab-button-popup menugroup,
#pageActionContextMenu menugroup,
#PlacesChevronPopup menugroup,
#placesContext menugroup,
#PlacesToolbarItems .bookmark-item menupopup menugroup,
.search-one-offs-context-menu menugroup,
#SyncedTabsSidebarContext menugroup,
#tabContextMenu menugroup,
#tabs-newtab-button-popup menugroup,
.textbox-contextmenu menugroup,
#toolbar-context-menu menugroup,
#toolbox-menu menugroup,
.urlbar-input-box .textbox-contextmenu menugroup,
#viewButton>menupopup menugroup,
#widget-overflow #customizationPanelItemContextMenu menugroup {
padding: 0px !important;
background-color: transparent !important;
}
/* Separator */
#back-button>menupopup menuseparator,
#backForwardMenu menuseparator,
#contentAreaContextMenu menuseparator,
#customizationPaletteItemContextMenu menuseparator,
#customizationPanelItemContextMenu menuseparator,
#customization-toolbar-menu menuseparator,
#downloadsContextMenu menuseparator,
#forward-button>menupopup menuseparator,
#main-menubar menupopup menuseparator,
#new-tab-button-popup menuseparator,
#pageActionContextMenu menuseparator,
#PlacesChevronPopup menuseparator,
#placesContext menuseparator,
#PlacesToolbarItems .bookmark-item menupopup menuseparator,
.search-one-offs-context-menu menuseparator,
#SyncedTabsSidebarContext menuseparator,
#tabContextMenu menuseparator,
#tabs-newtab-button-popup menuseparator,
.textbox-contextmenu menuseparator,
#toolbar-context-menu menuseparator,
#toolbox-menu menuseparator,
.urlbar-input-box .textbox-contextmenu menuseparator,
#viewButton>menupopup menuseparator,
#widget-overflow>#customizationPanelItemContextMenu menuseparator {
-moz-appearance: none !important;
margin: 3px 8px 3px 8px !important;
padding: 0 !important;
border-top: 1px solid rgba(var(--third-accent-color), 0.1) !important;
border-bottom: none !important;
}
/* Disabled */
#back-button>menupopup :-moz-any(menuitem, menu)[disabled="true"],
#backForwardMenu :-moz-any(menuitem, menu)[disabled="true"],
#contentAreaContextMenu :-moz-any(menuitem, menu)[disabled="true"],
#customizationPaletteItemContextMenu :-moz-any(menuitem, menu)[disabled="true"],
#customizationPanelItemContextMenu :-moz-any(menuitem, menu)[disabled="true"],
#customization-toolbar-menu :-moz-any(menuitem, menu)[disabled="true"],
#downloadsContextMenu :-moz-any(menuitem, menu)[disabled="true"],
#forward-button>menupopup :-moz-any(menuitem, menu)[disabled="true"],
#main-menubar menupopup :-moz-any(menuitem, menu)[disabled="true"],
#new-tab-button-popup :-moz-any(menuitem, menu)[disabled="true"],
#pageActionContextMenu :-moz-any(menuitem, menu)[disabled="true"],
#PlacesChevronPopup :-moz-any(menuitem, menu)[disabled="true"],
#placesContext :-moz-any(menuitem, menu)[disabled="true"],
#PlacesToolbarItems .bookmark-item menupopup :-moz-any(menuitem, menu)[disabled="true"],
.search-one-offs-context-menu :-moz-any(menuitem, menu)[disabled="true"],
#SyncedTabsSidebarContext :-moz-any(menuitem, menu)[disabled="true"],
#tabContextMenu :-moz-any(menuitem, menu)[disabled="true"],
#tabs-newtab-button-popup :-moz-any(menuitem, menu)[disabled="true"],
.textbox-contextmenu :-moz-any(menuitem, menu)[disabled="true"],
#toolbar-context-menu :-moz-any(menuitem, menu)[disabled="true"],
#toolbox-menu :-moz-any(menuitem, menu)[disabled="true"],
.urlbar-input-box .textbox-contextmenu :-moz-any(menuitem, menu)[disabled="true"],
#viewButton>menupopup :-moz-any(menuitem, menu)[disabled="true"],
#widget-overflow #customizationPanelItemContextMenu :-moz-any(menuitem, menu)[disabled="true"] {
-moz-appearance: none !important;
background-color: transparent !important;
color: rgba(var(--third-accent-color), 0.3) !important;
}
#back-button>menupopup :-moz-any(menuitem, menu)[disabled="true"]:hover,
#backForwardMenu :-moz-any(menuitem, menu)[disabled="true"]:hover,
#contentAreaContextMenu :-moz-any(menuitem, menu)[disabled="true"]:hover,
#customizationPaletteItemContextMenu :-moz-any(menuitem, menu)[disabled="true"]:hover,
#customizationPanelItemContextMenu :-moz-any(menuitem, menu)[disabled="true"]:hover,
#customization-toolbar-menu :-moz-any(menuitem, menu)[disabled="true"]:hover,
#downloadsContextMenu :-moz-any(menuitem, menu)[disabled="true"]:hover,
#forward-button>menupopup :-moz-any(menuitem, menu)[disabled="true"]:hover,
#main-menubar menupopup :-moz-any(menuitem, menu)[disabled="true"]:hover,
#new-tab-button-popup :-moz-any(menuitem, menu)[disabled="true"]:hover,
#pageActionContextMenu :-moz-any(menuitem, menu)[disabled="true"]:hover,
#PlacesChevronPopup :-moz-any(menuitem, menu)[disabled="true"]:hover,
#placesContext :-moz-any(menuitem, menu)[disabled="true"]:hover,
#PlacesToolbarItems .bookmark-item menupopup :-moz-any(menuitem, menu)[disabled="true"]:hover,
.search-one-offs-context-menu :-moz-any(menuitem, menu)[disabled="true"]:hover,
#SyncedTabsSidebarContext :-moz-any(menuitem, menu)[disabled="true"]:hover,
#tabContextMenu :-moz-any(menuitem, menu)[disabled="true"]:hover,
#tabs-newtab-button-popup :-moz-any(menuitem, menu)[disabled="true"]:hover,
.textbox-contextmenu :-moz-any(menuitem, menu)[disabled="true"]:hover,
#toolbar-context-menu :-moz-any(menuitem, menu)[disabled="true"]:hover,
#toolbox-menu :-moz-any(menuitem, menu)[disabled="true"]:hover,
.urlbar-input-box .textbox-contextmenu :-moz-any(menuitem, menu)[disabled="true"]:hover,
#viewButton>menupopup :-moz-any(menuitem, menu)[disabled="true"]:hover,
#widget-overflow #customizationPanelItemContextMenu :-moz-any(menuitem, menu)[disabled="true"]:hover {
-moz-appearance: none !important;
background-color: transparent !important;
}
/* Hover */
#back-button>menupopup :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]),
#backForwardMenu :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]),
#customizationPaletteItemContextMenu :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]),
#customizationPanelItemContextMenu :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]),
#customization-toolbar-menu :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]),
#downloadsContextMenu :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]),
#forward-button>menupopup :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]),
#main-menubar menupopup :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]),
#new-tab-button-popup :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]),
#contentAreaContextMenu :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]),
#pageActionContextMenu :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]),
#PlacesChevronPopup :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]),
#placesContext :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]),
#PlacesToolbarItems .bookmark-item menupopup :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]),
.search-one-offs-context-menu :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]),
#SyncedTabsSidebarContext :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]),
#tabContextMenu :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]),
#tabs-newtab-button-popup :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]),
.textbox-contextmenu :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]),
#toolbar-context-menu :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]),
#toolbox-menu :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]),
.urlbar-input-box .textbox-contextmenu :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]),
#viewButton>menupopup :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]),
#widget-overflow #customizationPanelItemContextMenu :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]) {
-moz-appearance: none !important;
background-color: rgba(var(--secondary-accent-color), 0.4) !important;
color: rgba(var(--light-color), 1) !important;
}
/* Icons */
#back-button>menupopup .menu-right,
#backForwardMenu .menu-right,
#contentAreaContextMenu .menu-right,
#customizationPaletteItemContextMenu .menu-right,
#customizationPanelItemContextMenu .menu-right,
#customization-toolbar-menu .menu-right,
#downloadsContextMenu .menu-right,
#forward-button>menupopup .menu-right,
#main-menubar menupopup .menu-right,
#new-tab-button-popup .menu-right,
#pageActionContextMenu .menu-right,
#PlacesChevronPopup .menu-right,
#placesContext .menu-right,
#PlacesToolbarItems .bookmark-item menupopup .menu-right,
.search-one-offs-context-menu .menu-right,
#SyncedTabsSidebarContext .menu-right,
#tabContextMenu .menu-right,
#tabs-newtab-button-popup .menu-right,
.textbox-contextmenu .menu-right,
#toolbar-context-menu .menu-right,
#toolbox-menu .menu-right,
.urlbar-input-box .textbox-contextmenu .menu-right,
#viewButton>menupopup .menu-right,
#widget-overflow #customizationPanelItemContextMenu .menu-right {
-moz-appearance: none !important;
margin-right: 6px !important;
padding: 7.5px !important;
color: rgba(var(--third-accent-color), 1) !important;
border: solid rgba(var(--third-accent-color), 1) !important;
border-width: 0px 2px 2px 0px !important;
transform: rotate(-45deg) scale(.55);
}
#back-button>menupopup menu[disabled="true"] .menu-right,
#backForwardMenu menu[disabled="true"] .menu-right,
#contentAreaContextMenu menu[disabled="true"] .menu-right,
#customizationPaletteItemContextMenu menu[disabled="true"] .menu-right,
#customizationPanelItemContextMenu menu[disabled="true"] .menu-right,
#customization-toolbar-menu menu[disabled="true"] .menu-right,
#downloadsContextMenu menu[disabled="true"] .menu-right,
#forward-button>menupopup menu[disabled="true"] .menu-right,
#main-menubar menupopup menu[disabled="true"] .menu-right,
#new-tab-button-popup menu[disabled="true"] .menu-right,
#pageActionContextMenu menu[disabled="true"] .menu-right,
#PlacesChevronPopup menu[disabled="true"] .menu-right,
#placesContext menu[disabled="true"] .menu-right,
#PlacesToolbarItems .bookmark-item menupopup menu[disabled="true"] .menu-right,
.search-one-offs-context-menu menu[disabled="true"] .menu-right,
#SyncedTabsSidebarContext menu[disabled="true"] .menu-right,
#tabContextMenu menu[disabled="true"] .menu-right,
#tabs-newtab-button-popup menu[disabled="true"] .menu-right,
.textbox-contextmenu menu[disabled="true"] .menu-right,
#toolbar-context-menu menu[disabled="true"] .menu-right,
#toolbox-menu menu[disabled="true"] .menu-right,
.urlbar-input-box .textbox-contextmenu menu[disabled="true"] .menu-right,
#viewButton>menupopup menu[disabled="true"] .menu-right,
#widget-overflow #customizationPanelItemContextMenu menu[disabled="true"] .menu-right {
color: rgba(var(--third-accent-color), 0.3) !important;
border-color: rgba(var(--third-accent-color), 0.3) !important;
}
/* Checkbox and Radio Items */
#back-button menuitem[type="checkbox"],
#back-button>menupopup menuitem[type="checkbox"],
#backForwardMenu menuitem[type="checkbox"],
#contentAreaContextMenu menuitem[type="checkbox"],
#customizationPaletteItemContextMenu menuitem[type="checkbox"],
#customizationPanelItemContextMenu menuitem[type="checkbox"],
#customization-toolbar-menu menuitem[type="checkbox"],
#downloadsContextMenu menuitem[type="checkbox"],
#forward-button menuitem[type="checkbox"],
#forward-button>menupopup menuitem[type="checkbox"],
#main-menubar menupopup menuitem[type="checkbox"],
#new-tab-button-popup menuitem[type="checkbox"],
#pageActionContextMenu menuitem[type="checkbox"],
#PlacesChevronPopup menuitem[type="checkbox"],
#placesContext menuitem[type="checkbox"],
#PlacesToolbarItems .bookmark-item menupopup menuitem[type="checkbox"],
.search-one-offs-context-menu menuitem[type="checkbox"],
#SyncedTabsSidebarContext menuitem[type="checkbox"],
#tabContextMenu menuitem[type="checkbox"],
#tabs-newtab-button-popup menuitem[type="checkbox"],
.textbox-contextmenu menuitem[type="checkbox"],
#toolbar-context-menu menuitem[type="checkbox"],
#toolbox-menu menuitem[type="checkbox"],
.urlbar-input-box .textbox-contextmenu menuitem[type="checkbox"],
#viewButton>menupopup menuitem[type="checkbox"],
#widget-overflow>#customizationPanelItemContextMenu menuitem[type="checkbox"] {
-moz-appearance: none !important;
}
#back-button menuitem[checked="true"][type="checkbox"]>.menu-iconic-left,
#back-button>menupopup menuitem[checked="true"][type="checkbox"]>.menu-iconic-left,
#backForwardMenu menuitem[checked="true"][type="checkbox"]>.menu-iconic-left,
#contentAreaContextMenu menuitem[checked="true"][type="checkbox"]>.menu-iconic-left,
#customizationPaletteItemContextMenu menuitem[checked="true"][type="checkbox"]>.menu-iconic-left,
#customizationPanelItemContextMenu menuitem[checked="true"][type="checkbox"]>.menu-iconic-left,
#customization-toolbar-menu menuitem[checked="true"][type="checkbox"]>.menu-iconic-left,
#downloadsContextMenu menuitem[checked="true"][type="checkbox"]>.menu-iconic-left,
#forward-button menuitem[checked="true"][type="checkbox"]>.menu-iconic-left,
#forward-button>menupopup menuitem[checked="true"][type="checkbox"]>.menu-iconic-left,
#main-menubar menupopup menuitem[checked="true"][type="checkbox"]>.menu-iconic-left,
#new-tab-button-popup menuitem[checked="true"][type="checkbox"]>.menu-iconic-left,
#pageActionContextMenu menuitem[checked="true"][type="checkbox"]>.menu-iconic-left,
#PlacesChevronPopup menuitem[checked="true"][type="checkbox"]>.menu-iconic-left,
#placesContext menuitem[checked="true"][type="checkbox"]>.menu-iconic-left,
#PlacesToolbarItems .bookmark-item menupopup menuitem[checked="true"][type="checkbox"]>.menu-iconic-left,
.search-one-offs-context-menu menuitem[checked="true"][type="checkbox"]>.menu-iconic-left,
#SyncedTabsSidebarContext menuitem[checked="true"][type="checkbox"]>.menu-iconic-left,
#tabContextMenu menuitem[checked="true"][type="checkbox"]>.menu-iconic-left,
#tabs-newtab-button-popup menuitem[checked="true"][type="checkbox"]>.menu-iconic-left,
.textbox-contextmenu menuitem[checked="true"][type="checkbox"]>.menu-iconic-left,
#toolbar-context-menu menuitem[checked="true"][type="checkbox"]>.menu-iconic-left,
#toolbox-menu menuitem[checked="true"][type="checkbox"]>.menu-iconic-left,
.urlbar-input-box .textbox-contextmenu menuitem[checked="true"][type="checkbox"]>.menu-iconic-left,
#viewButton>menupopup menuitem[checked="true"][type="checkbox"]>.menu-iconic-left,
#widget-overflow>#customizationPanelItemContextMenu menuitem[checked="true"][type="checkbox"]>.menu-iconic-left {
-moz-appearance: none !important;
padding: 7px 0px 0px 0px !important;
margin-left: 7px !important;
margin-right: -7px !important;
border: solid rgba(var(--third-accent-color), 1) !important;
border-width: 0px 0px 2px 2px !important;
transform: rotate(-45deg) scale(.75);
}
#back-button menuitem[type="radio"],
#back-button>menupopup menuitem[type="radio"],
#backForwardMenu menuitem[type="radio"],
#contentAreaContextMenu menuitem[type="radio"],
#customizationPaletteItemContextMenu menuitem[type="radio"],
#customizationPanelItemContextMenu menuitem[type="radio"],
#customization-toolbar-menu menuitem[type="radio"],
#downloadsContextMenu menuitem[type="radio"],
#forward-button menuitem[type="radio"],
#forward-button>menupopup menuitem[type="radio"],
#main-menubar menupopup menuitem[type="radio"],
#new-tab-button-popup menuitem[type="radio"],
#pageActionContextMenu menuitem[type="radio"],
#PlacesChevronPopup menuitem[type="radio"],
#placesContext menuitem[type="radio"],
#PlacesToolbarItems .bookmark-item menupopup menuitem[type="radio"],
.search-one-offs-context-menu menuitem[type="radio"],
#SyncedTabsSidebarContext menuitem[type="radio"],
#tabContextMenu menuitem[type="radio"],
#tabs-newtab-button-popup menuitem[type="radio"],
.textbox-contextmenu menuitem[type="radio"],
#toolbar-context-menu menuitem[type="radio"],
#toolbox-menu menuitem[type="radio"],
.urlbar-input-box .textbox-contextmenu menuitem[type="radio"],
#viewButton>menupopup menuitem[type="radio"],
#widget-overflow>#customizationPanelItemContextMenu menuitem[type="radio"] {
-moz-appearance: none !important;
}
#back-button menuitem[checked="true"][type="radio"]>.menu-iconic-left,
#back-button>menupopup menuitem[checked="true"][type="radio"]>.menu-iconic-left,
#backForwardMenu menuitem[checked="true"][type="radio"]>.menu-iconic-left,
#contentAreaContextMenu menuitem[checked="true"][type="radio"]>.menu-iconic-left,
#customizationPaletteItemContextMenu menuitem[checked="true"][type="radio"]>.menu-iconic-left,
#customizationPanelItemContextMenu menuitem[checked="true"][type="radio"]>.menu-iconic-left,
#customization-toolbar-menu menuitem[checked="true"][type="radio"]>.menu-iconic-left,
#downloadsContextMenu menuitem[checked="true"][type="radio"]>.menu-iconic-left,
#forward-button menuitem[checked="true"][type="radio"]>.menu-iconic-left,
#forward-button>menupopup menuitem[checked="true"][type="radio"]>.menu-iconic-left,
#main-menubar menupopup menuitem[checked="true"][type="radio"]>.menu-iconic-left,
#new-tab-button-popup menuitem[checked="true"][type="radio"]>.menu-iconic-left,
#pageActionContextMenu menuitem[checked="true"][type="radio"]>.menu-iconic-left,
#PlacesChevronPopup menuitem[checked="true"][type="radio"]>.menu-iconic-left,
#placesContext menuitem[checked="true"][type="radio"]>.menu-iconic-left,
#PlacesToolbarItems .bookmark-item menupopup menuitem[checked="true"][type="radio"]>.menu-iconic-left,
.search-one-offs-context-menu menuitem[checked="true"][type="radio"]>.menu-iconic-left,
#SyncedTabsSidebarContext menuitem[checked="true"][type="radio"]>.menu-iconic-left,
#tabContextMenu menuitem[checked="true"][type="radio"]>.menu-iconic-left,
#tabs-newtab-button-popup menuitem[checked="true"][type="radio"]>.menu-iconic-left,
.textbox-contextmenu menuitem[checked="true"][type="radio"]>.menu-iconic-left,
#toolbar-context-menu menuitem[checked="true"][type="radio"]>.menu-iconic-left,
#toolbox-menu menuitem[checked="true"][type="radio"]>.menu-iconic-left,
.urlbar-input-box .textbox-contextmenu menuitem[checked="true"][type="radio"]>.menu-iconic-left,
#viewButton>menupopup menuitem[checked="true"][type="radio"]>.menu-iconic-left,
#widget-overflow>#customizationPanelItemContextMenu menuitem[checked="true"][type="radio"]>.menu-iconic-left {
-moz-appearance: none !important;
border: solid rgba(var(--third-accent-color), 1) !important;
height: 17px !important;
border-radius: 100% !important;
background: rgba(var(--third-accent-color), 1) !important;
margin-left: 7px !important;
margin-right: -7px !important;
margin-top: 1px !important;
padding: 1px !important;
transform: scale(0.5);
}
#back-button menuitem[type="checkbox"]>.menu-iconic-text,
#back-button>menupopup menuitem[type="checkbox"]>.menu-iconic-text,
#backForwardMenu menuitem[type="checkbox"]>.menu-iconic-text,
#contentAreaContextMenu menuitem[type="checkbox"]>.menu-iconic-text,
#customizationPaletteItemContextMenu menuitem[type="checkbox"]>.menu-iconic-text,
#customizationPanelItemContextMenu menuitem[type="checkbox"]>.menu-iconic-text,
#customization-toolbar-menu menuitem[type="checkbox"]>.menu-iconic-text,
#downloadsContextMenu menuitem[type="checkbox"]>.menu-iconic-text,
#forward-button menuitem[type="checkbox"]>.menu-iconic-text,
#forward-button>menupopup menuitem[type="checkbox"]>.menu-iconic-text,
#main-menubar menupopup menuitem[type="checkbox"]>.menu-iconic-text,
#new-tab-button-popup menuitem[type="checkbox"]>.menu-iconic-text,
#pageActionContextMenu menuitem[type="checkbox"]>.menu-iconic-text,
#PlacesChevronPopup menuitem[type="checkbox"]>.menu-iconic-text,
#placesContext menuitem[type="checkbox"]>.menu-iconic-text,
#PlacesToolbarItems .bookmark-item menupopup menuitem[type="checkbox"]>.menu-iconic-text,
.search-one-offs-context-menu menuitem[type="checkbox"]>.menu-iconic-text,
#SyncedTabsSidebarContext menuitem[type="checkbox"]>.menu-iconic-text,
#tabContextMenu menuitem[type="checkbox"]>.menu-iconic-text,
#tabs-newtab-button-popup menuitem[type="checkbox"]>.menu-iconic-text,
.textbox-contextmenu menuitem[type="checkbox"]>.menu-iconic-text,
#toolbar-context-menu menuitem[type="checkbox"]>.menu-iconic-text,
#toolbox-menu menuitem[type="checkbox"]>.menu-iconic-text,
.urlbar-input-box .textbox-contextmenu menuitem[type="checkbox"]>.menu-iconic-text,
#viewButton>menupopup menuitem[type="checkbox"]>.menu-iconic-text,
#widget-overflow>#customizationPanelItemContextMenu menuitem[type="checkbox"]>.menu-iconic-text {
-moz-appearance: none !important;
}
#back-button menuitem[checked="true"][type="checkbox"]>.menu-iconic-text,
#back-button>menupopup menuitem[checked="true"][type="checkbox"]>.menu-iconic-text,
#backForwardMenu menuitem[checked="true"][type="checkbox"]>.menu-iconic-text,
#contentAreaContextMenu menuitem[checked="true"][type="checkbox"]>.menu-iconic-text,
#customizationPaletteItemContextMenu menuitem[checked="true"][type="checkbox"]>.menu-iconic-text,
#customizationPanelItemContextMenu menuitem[checked="true"][type="checkbox"]>.menu-iconic-text,
#customization-toolbar-menu menuitem[checked="true"][type="checkbox"]>.menu-iconic-text,
#downloadsContextMenu menuitem[checked="true"][type="checkbox"]>.menu-iconic-text,
#forward-button menuitem[checked="true"][type="checkbox"]>.menu-iconic-text,
#forward-button>menupopup menuitem[checked="true"][type="checkbox"]>.menu-iconic-text,
#main-menubar menupopup menuitem[checked="true"][type="checkbox"]>.menu-iconic-text,
#new-tab-button-popup menuitem[checked="true"][type="checkbox"]>.menu-iconic-text,
#pageActionContextMenu menuitem[checked="true"][type="checkbox"]>.menu-iconic-text,
#PlacesChevronPopup menuitem[checked="true"][type="checkbox"]>.menu-iconic-text,
#placesContext menuitem[checked="true"][type="checkbox"]>.menu-iconic-text,
#PlacesToolbarItems .bookmark-item menupopup menuitem[checked="true"][type="checkbox"]>.menu-iconic-text,
.search-one-offs-context-menu menuitem[checked="true"][type="checkbox"]>.menu-iconic-text,
#SyncedTabsSidebarContext menuitem[checked="true"][type="checkbox"]>.menu-iconic-text,
#tabContextMenu menuitem[checked="true"][type="checkbox"]>.menu-iconic-text,
#tabs-newtab-button-popup menuitem[checked="true"][type="checkbox"]>.menu-iconic-text,
.textbox-contextmenu menuitem[checked="true"][type="checkbox"]>.menu-iconic-text,
#toolbar-context-menu menuitem[checked="true"][type="checkbox"]>.menu-iconic-text,
#toolbox-menu menuitem[checked="true"][type="checkbox"]>.menu-iconic-text,
.urlbar-input-box .textbox-contextmenu menuitem[checked="true"][type="checkbox"]>.menu-iconic-text,
#viewButton>menupopup menuitem[checked="true"][type="checkbox"]>.menu-iconic-text,
#widget-overflow>#customizationPanelItemContextMenu menuitem[checked="true"][type="checkbox"]>.menu-iconic-text {
padding-left: 13px !important;
}
#back-button menuitem[type="radio"]>.menu-iconic-text,
#back-button>menupopup menuitem[type="radio"]>.menu-iconic-text,
#backForwardMenu menuitem[type="radio"]>.menu-iconic-text,
#contentAreaContextMenu menuitem[type="radio"]>.menu-iconic-text,
#customizationPaletteItemContextMenu menuitem[type="radio"]>.menu-iconic-text,
#customizationPanelItemContextMenu menuitem[type="radio"]>.menu-iconic-text,
#customization-toolbar-menu menuitem[type="radio"]>.menu-iconic-text,
#downloadsContextMenu menuitem[type="radio"]>.menu-iconic-text,
#forward-button menuitem[type="radio"]>.menu-iconic-text,
#forward-button>menupopup menuitem[type="radio"]>.menu-iconic-text,
#main-menubar menupopup menuitem[type="radio"]>.menu-iconic-text,
#new-tab-button-popup menuitem[type="radio"]>.menu-iconic-text,
#pageActionContextMenu menuitem[type="radio"]>.menu-iconic-text,
#PlacesChevronPopup menuitem[type="radio"]>.menu-iconic-text,
#placesContext menuitem[type="radio"]>.menu-iconic-text,
#PlacesToolbarItems .bookmark-item menupopup menuitem[type="radio"]>.menu-iconic-text,
.search-one-offs-context-menu menuitem[type="radio"]>.menu-iconic-text,
#SyncedTabsSidebarContext menuitem[type="radio"]>.menu-iconic-text,
#tabContextMenu menuitem[type="radio"]>.menu-iconic-text,
#tabs-newtab-button-popup menuitem[type="radio"]>.menu-iconic-text,
.textbox-contextmenu menuitem[type="radio"]>.menu-iconic-text,
#toolbar-context-menu menuitem[type="radio"]>.menu-iconic-text,
#toolbox-menu menuitem[type="radio"]>.menu-iconic-text,
.urlbar-input-box .textbox-contextmenu menuitem[type="radio"]>.menu-iconic-text,
#viewButton>menupopup menuitem[type="radio"]>.menu-iconic-text,
#widget-overflow>#customizationPanelItemContextMenu menuitem[type="radio"]>.menu-iconic-text {
padding-left: 13px !important;
-moz-appearance: none !important;
}

View File

@ -0,0 +1,95 @@
/*================ GLOBAL COLORS ================*/
:root {
--accent-color: 38, 38, 38;
/* #262626 */
--secondary-accent-color: 140, 140, 140;
/* #8c8c8c */
--third-accent-color: 190, 190, 190;
/* #bebebe */
--light-color: 255, 255, 255;
/* #ffffff */
--dark-color: 15, 15, 15;
/* #0f0f0f */
--caption-min-color: 82, 82, 82;
/* #525252 */
--caption-max-color: 100, 100, 100;
/* #646464 */
--caption-close-color: 126, 126, 126;
/* #7e7e7e */
}
/*================ DARK MODE ================*/
:root:-moz-lwtheme-brighttext,
.sidebar-panel[lwt-sidebar-brighttext],
body[lwt-sidebar-brighttext] {
--main-bgcolor: var(--dark-color);
--transparent-bgcolor: var(--accent-color);
}
/*================== NEW TAB BG COLOR ==================*/
@media (prefers-color-scheme: dark) {
@-moz-document url("about:newtab"), url("about:home"), url("about:blank") {
body.activity-stream {
background-color: rgba(var(--dark-color), 1) !important;
}
}
}
@media (prefers-color-scheme: light) {
@-moz-document url("about:newtab"), url("about:home"), url("about:blank") {
body.activity-stream {
background-color: rgba(var(--light-color), 1) !important;
}
}
}
/*================== SEARCH BAR ==================*/
#root .search-wrapper input {
transition: all 0.3s ease !important;
background: rgba(var(--accent-color), 0.2) var(--newtab-search-icon) 12px center no-repeat !important;
background-size: 20px !important;
border: 2px solid !important;
border-color: rgba(var(--accent-color), 0.3) !important;
box-shadow: none !important;
}
#root .search-wrapper .search-inner-wrapper:hover input,
#root .search-wrapper .search-inner-wrapper:active input,
#root .search-wrapper input:focus {
border-color: rgba(var(--accent-color), 0.6) !important;
}
#root .search-wrapper .search-button,
#root .search-wrapper .search-button {
transition: all 0.3s ease !important;
}
#root .search-wrapper .search-button:focus,
#root .search-wrapper .search-button:hover {
background-color: rgba(var(--accent-color), 1) !important;
}
/*================== SEARCH BAR RESULTS ==================*/
.contentSearchSuggestionTable .contentSearchSuggestionsContainer,
.contentSearchSuggestionTable .contentSearchHeader {
background-color: rgba(var(--accent-color), 1) !important;
}
.contentSearchSuggestionTable .contentSearchSuggestionRow.selected,
.contentSearchSuggestionTable .contentSearchOneOffItem.selected {
background-color: rgba(var(--secondary-accent-color), 0.2) !important;
}
.contentSearchSuggestionTable .contentSearchHeader,
.contentSearchSuggestionTable .contentSearchSettingsButton,
.contentSearchSuggestionTable .contentSearchOneOffsTable {
border-color: rgba(var(--secondary-accent-color), 0.2) !important;
}
.contentSearchSuggestionTable {
box-shadow: none !important;
border: 2px solid rgba(var(--secondary-accent-color), 0.2) !important;
border-radius: 3px !important;
}

View File

@ -0,0 +1,16 @@
{ ... }: {
programs.git = {
enable = true;
userName = "0xTux";
userEmail = "0xtux@pm.me";
signing = {
key = "~/.ssh/id_ed25519.pub";
signByDefault = true;
};
extraConfig = {
init.defaultBranch = "main";
commit.gpgSign = true;
gpg.format = "ssh";
};
};
}

View File

@ -0,0 +1,197 @@
local M = {}
M.opt = {
guifont = "FiraCode Nerd Font:h8",
neovide_scale_factor = 0.6,
}
M.colorscheme = "carbonfox"
M.icons = {
VimIcon = "",
ScrollText = "",
GitBranch = "",
GitAdd = "",
GitChange = "",
GitDelete = "",
}
M.heirline = {
separators = {
left = { "", "" },
right = { "", "" },
tab = { "", "" },
},
colors = function(hl)
local get_hlgroup = require("astronvim.utils").get_hlgroup
local comment_fg = get_hlgroup("Comment").fg
hl.git_branch_fg = comment_fg
hl.git_added = comment_fg
hl.git_changed = comment_fg
hl.git_removed = comment_fg
hl.blank_bg = get_hlgroup("Folded").fg
hl.file_info_bg = get_hlgroup("Visual").bg
hl.nav_icon_bg = get_hlgroup("String").fg
hl.nav_fg = hl.nav_icon_bg
hl.folder_icon_bg = get_hlgroup("Error").fg
return hl
end,
attributes = {
mode = { bold = true },
},
icon_highlights = {
file_icon = {
statusline = false,
},
},
}
M.plugins = {
{
"goolord/alpha-nvim",
opts = function(_, opts)
opts.section.header.val = {
"██████████████████████████████████████████████████",
"█░░░░░░░░░░░░░░█░░░░░░██░░░░░░█░░░░░░░░██░░░░░░░░█",
"█░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀░░██░░▄▀░░█░░▄▀▄▀░░██░░▄▀▄▀░░█",
"█░░░░░░▄▀░░░░░░█░░▄▀░░██░░▄▀░░█░░░░▄▀░░██░░▄▀░░░░█",
"█████░░▄▀░░█████░░▄▀░░██░░▄▀░░███░░░░▄▀▄▀▄▀░░░░███",
"█████░░▄▀░░█████░░▄▀░░██░░▄▀░░█████░░▄▀▄▀▄▀░░█████",
"█████░░▄▀░░█████░░▄▀░░██░░▄▀░░███░░░░▄▀▄▀▄▀░░░░███",
"█████░░▄▀░░█████░░▄▀░░░░░░▄▀░░█░░░░▄▀░░██░░▄▀░░░░█",
"█████░░▄▀░░█████░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀▄▀░░██░░▄▀▄▀░░█",
"█████░░░░░░█████░░░░░░░░░░░░░░█░░░░░░░░██░░░░░░░░█",
"██████████████████████████████████████████████████",
}
end,
},
{ "wakatime/vim-wakatime" },
{ "eandrju/cellular-automaton.nvim", event = "VeryLazy" },
"AstroNvim/astrocommunity",
{ import = "astrocommunity.utility.noice-nvim" },
{ import = "astrocommunity.pack.json" },
{ import = "astrocommunity.pack.tailwindcss" },
{ import = "astrocommunity.pack.bash" },
{ import = "astrocommunity.pack.lua" },
{ import = "astrocommunity.pack.python" },
{ import = "astrocommunity.pack.go" },
{ import = "astrocommunity.pack.nix" },
{ import = "astrocommunity.pack.typescript" },
{ import = "astrocommunity.pack.prisma" },
{ import = "astrocommunity.colorscheme.nightfox-nvim" },
{
"nightfox.nvim",
opts = {
options = {
-- transparent = function()
-- if vim.g.neovide then
-- return false
-- end
-- return true
-- end,
},
},
},
{
"David-Kunz/gen.nvim",
config = function()
require("gen").setup({
model = "zephyr",
display_mode = "float",
show_prompt = true,
show_model = true,
no_auto_close = false,
init = function()
pcall(io.popen, "ollama serve > /dev/null 2>&1 &")
end,
debug = false,
})
end,
},
{
"rebelot/heirline.nvim",
opts = function(_, opts)
local status = require("astronvim.utils.status")
opts.statusline = {
hl = { fg = "fg", bg = "bg" },
status.component.mode({
mode_text = { icon = { kind = "VimIcon", padding = { right = 1, left = 1 } } },
surround = {
separator = "left",
color = function()
return { main = status.hl.mode_bg(), right = "blank_bg" }
end,
},
}),
status.component.builder({
{ provider = "" },
surround = { separator = "left", color = { main = "blank_bg", right = "file_info_bg" } },
}),
status.component.file_info({
file_icon = { padding = { left = 0 } },
filename = { fallback = "Empty" },
padding = { right = 1 },
surround = { separator = "left", condition = false },
}),
status.component.git_branch({ surround = { separator = "none" } }),
status.component.git_diff({ padding = { left = 1 }, surround = { separator = "none" } }),
status.component.fill(),
status.component.lsp({ lsp_client_names = false, surround = { separator = "none", color = "bg" } }),
status.component.fill(),
status.component.diagnostics({ surround = { separator = "right" } }),
status.component.lsp({ lsp_progress = false, surround = { separator = "right" } }),
{
status.component.builder({
{ provider = require("astronvim.utils").get_icon("FolderClosed") },
padding = { right = 1 },
hl = { fg = "bg" },
surround = { separator = "right", color = "folder_icon_bg" },
}),
status.component.file_info({
filename = {
fname = function(nr)
return vim.fn.getcwd(nr)
end,
padding = { left = 1 },
},
file_icon = false,
file_modified = false,
file_read_only = false,
surround = { separator = "none", color = "file_info_bg", condition = false },
}),
},
{
status.component.builder({
{ provider = require("astronvim.utils").get_icon("ScrollText") },
padding = { right = 1 },
hl = { fg = "bg" },
surround = { separator = "right", color = { main = "nav_icon_bg", left = "file_info_bg" } },
}),
status.component.nav({
percentage = { padding = { right = 1 } },
ruler = false,
scrollbar = false,
surround = { separator = "none", color = "file_info_bg" },
}),
},
}
return opts
end,
},
}
M.lsp = {
config = {
lua_ls = function()
return {
settings = {
Lua = {
diagnostics = {
globals = {
"vim",
"require",
},
},
},
},
}
end,
},
}
return M

View File

@ -0,0 +1,18 @@
return {
n = {
["<C-=>"] = {
function()
vim.g.neovide_scale_factor = vim.g.neovide_scale_factor + 0.1
end,
desc = "Zoom In (Neovide)",
},
["<C-->"] = {
function()
vim.g.neovide_scale_factor = vim.g.neovide_scale_factor - 0.1
end,
desc = "Zoom Out (Neovide)",
},
["<leader>ai"] = { ":Gen<CR>", desc = "Run Ollama" },
["<leader>fml"] = { ":CellularAutomaton make_it_rain<CR>", desc = "FML" },
},
}

View File

@ -0,0 +1,8 @@
return {
g = {
-- neovide_background_color = "#0f0f0f",
},
opt = {
guifont = "FiraCode Nerd Font:h12",
},
}

View File

@ -0,0 +1,68 @@
{ inputs, pkgs, ... }: {
xdg.configFile = {
"nvim".source = inputs.astronvim;
"astronvim".source = ./astronvim;
};
programs = {
neovim = {
enable = true;
defaultEditor = true;
viAlias = false;
vimAlias = true;
withPython3 = true;
withNodeJs = true;
};
};
home = {
packages = with pkgs; [
gcc
neovide
#-- python
nodePackages.pyright # python language server
python311Packages.black # python formatter
#-- nix
nil
rnix-lsp
statix # Lints and suggestions for the nix programming language
deadnix # Find and remove unused code in .nix source files
alejandra # Nix Code Formatter
#-- golang
go
gomodifytags
iferr # generate error handling code for go
impl # generate function implementation for go
gotools # contains tools like: godoc, goimports, etc.
gopls # go language server
delve # go debugger
#-- lua
stylua
lua-language-server
luarocks
#-- bash
nodePackages.bash-language-server
shellcheck
shfmt
#-- javascript/typescript --#
nodePackages.typescript
nodePackages.typescript-language-server
#-- Misc
hadolint # Dockerfile linter
tree-sitter # common language parser/highlighter
nodePackages.prettier # common code formatter
#-- Optional Requirements:
gdu # disk usage analyzer, required by AstroNvim
ripgrep # fast search tool, required by AstroNvim's '<leader>fw'(<leader> is space key)
];
};
}

View File

@ -0,0 +1,22 @@
require 'options'
require 'keymaps'
local lazypath = vim.fn.stdpath 'data' .. '/lazy/lazy.nvim'
if not vim.loop.fs_stat(lazypath) then
vim.fn.system {
'git',
'clone',
'--filter=blob:none',
'https://github.com/folke/lazy.nvim.git',
'--branch=stable', -- latest stable release
lazypath,
}
end
vim.opt.rtp:prepend(lazypath)
require('lazy').setup {
import = 'plugins',
dev = {
path = '~/dev',
fallback = true,
},
}

View File

@ -0,0 +1,38 @@
{
"Comment.nvim": { "branch": "master", "commit": "0236521ea582747b58869cb72f70ccfa967d2e89" },
"alpha-nvim": { "branch": "main", "commit": "234822140b265ec4ba3203e3e0be0e0bb826dff5" },
"barbecue.nvim": { "branch": "main", "commit": "d38a2a023dfb1073dd0e8fee0c9be08855d3688f" },
"bufferline.nvim": { "branch": "main", "commit": "243893ba9d5d1049dd451a25cab32ec7f8f67bcf" },
"dressing.nvim": { "branch": "master", "commit": "fe3071330a0720ce3695ac915820c8134b22d1b0" },
"edgy.nvim": { "branch": "main", "commit": "8355be45610afdf79a0bab32b91ee297997455b4" },
"editorconfig-vim": { "branch": "master", "commit": "0d54ea863089fb13be423b4aed6cca35f3a5d778" },
"flash.nvim": { "branch": "main", "commit": "48817af25f51c0590653bbc290866e4890fe1cbe" },
"gen.nvim": { "branch": "main", "commit": "049ec32f337fac6573221cde4f1dd88fa0b31390" },
"gitsigns.nvim": { "branch": "main", "commit": "5fc573f2d2a49aec74dd6dc977e8b137429d1897" },
"indent-blankline.nvim": { "branch": "master", "commit": "29be0919b91fb59eca9e90690d76014233392bef" },
"lazy.nvim": { "branch": "main", "commit": "96584866b9c5e998cbae300594d0ccfd0c464627" },
"lazygit.nvim": { "branch": "main", "commit": "de35012036d43bca03628d40d083f7c02a4cda3f" },
"lualine.nvim": { "branch": "master", "commit": "2248ef254d0a1488a72041cfb45ca9caada6d994" },
"markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" },
"modes.nvim": { "branch": "main", "commit": "5357fda0f4a21d73611496087a0d3b6d7b4f9384" },
"neo-tree.nvim": { "branch": "main", "commit": "230ff118613fa07138ba579b89d13ec2201530b9" },
"neorg": { "branch": "main", "commit": "3f531c362d07d52c4956520e3798e9cfb5aeabdf" },
"nightfox.nvim": { "branch": "main", "commit": "eb82712f86319272f4b7b9dbb4ec6df650e6987f" },
"noice.nvim": { "branch": "main", "commit": "92433164e2f7118d4122c7674c3834d9511722ba" },
"nui.nvim": { "branch": "main", "commit": "c0c8e347ceac53030f5c1ece1c5a5b6a17a25b32" },
"nvim-navic": { "branch": "master", "commit": "0ffa7ffe6588f3417e680439872f5049e38a24db" },
"nvim-notify": { "branch": "master", "commit": "e4a2022f4fec2d5ebc79afa612f96d8b11c627b3" },
"nvim-surround": { "branch": "main", "commit": "0855a89e00a5822c3a482a82e5223fcf2e9ede13" },
"nvim-treesitter": { "branch": "master", "commit": "649d137371e9214d30b20565e0574824fa3a3670" },
"nvim-web-devicons": { "branch": "master", "commit": "cdbcca210cf3655aa9b31ebf2422763ecd85ee5c" },
"nvterm": { "branch": "main", "commit": "3e43be1d0ca60cc5e2dfc2d289b06577e7e57e98" },
"plenary.nvim": { "branch": "master", "commit": "c47e1a21d235a422034012935febd2d078d77ac6" },
"poimandres.nvim": { "branch": "main", "commit": "77635055e686ae3c8a519198006ff0b43b6b2eae" },
"telescope-media-files.nvim": { "branch": "master", "commit": "0826c7a730bc4d36068f7c85cf4c5b3fd9fb570a" },
"telescope.nvim": { "branch": "master", "commit": "7011eaae0ac1afe036e30c95cf80200b8dc3f21a" },
"todo-comments.nvim": { "branch": "main", "commit": "4a6737a8d70fe1ac55c64dfa47fcb189ca431872" },
"treesj": { "branch": "main", "commit": "1d6e89f4790aa04eaae38fa9460a3ee191961c96" },
"ultimate-autopair.nvim": { "branch": "v0.6", "commit": "6fd0d6aa976a97dd6f1bed4d46be1b437613a52f" },
"vim-wakatime": { "branch": "master", "commit": "87c6861ea81700ec4a6a27c81413cf07cb2c883c" },
"which-key.nvim": { "branch": "main", "commit": "4433e5ec9a507e5097571ed55c02ea9658fb268a" }
}

View File

@ -0,0 +1,455 @@
[1700985363] warming up the model with an empty run
[1700985363] Available slots:
[1700985363] -> Slot 0 - max context: 2048
[1700985363]
llama server listening at http://127.0.0.1:61351
[1700985363] all slots are idle and system prompt is empty, clear the KV cache
[1700985366] slot 0 is processing [task id: 0]
[1700985366] slot 0 : kv cache rm - [0, end)
[1700985368] sampled token: 7638: 'Why'
[1700985368] sampled token: 949: ' don'
[1700985368] sampled token: 28742: '''
[1700985368] sampled token: 28707: 't'
[1700985368] sampled token: 15067: ' scientists'
[1700985368] sampled token: 4893: ' trust'
[1700985368] sampled token: 24221: ' atoms'
[1700985369] sampled token: 28804: '?'
[1700985369] sampled token: 13: '
'
[1700985369] sampled token: 17098: 'Because'
[1700985369] sampled token: 590: ' they'
[1700985369] sampled token: 1038: ' make'
[1700985369] sampled token: 582: ' up'
[1700985369] sampled token: 2905: ' everything'
[1700985369] sampled token: 28808: '!'
[1700985370] sampled token: 2: ''
[1700985370]
[1700985370] print_timings: prompt eval time = 1314.44 ms / 26 tokens ( 50.56 ms per token, 19.78 tokens per second)
[1700985370] print_timings: eval time = 1844.71 ms / 15 runs ( 122.98 ms per token, 8.13 tokens per second)
[1700985370] print_timings: total time = 3159.15 ms
[1700985370] slot 0 released (42 tokens in cache)
[1700985370] slot 0 released (42 tokens in cache)
[1700985383] slot 0 is processing [task id: 2]
[1700985383] slot 0 : kv cache rm - [0, end)
[1700985386] sampled token: 7638: 'Why'
[1700985386] sampled token: 863: ' did'
[1700985387] sampled token: 272: ' the'
[1700985387] sampled token: 752: ' sc'
[1700985387] sampled token: 492: 'are'
[1700985387] sampled token: 28717: 'c'
[1700985387] sampled token: 671: 'row'
[1700985387] sampled token: 3108: ' win'
[1700985387] sampled token: 396: ' an'
[1700985388] sampled token: 7619: ' award'
[1700985388] sampled token: 28804: '?'
[1700985388] sampled token: 13: '
'
[1700985388] sampled token: 13: '
'
[1700985388] sampled token: 17098: 'Because'
[1700985388] sampled token: 400: ' he'
[1700985388] sampled token: 403: ' was'
[1700985389] sampled token: 17329: ' outstanding'
[1700985389] sampled token: 297: ' in'
[1700985389] sampled token: 516: ' his'
[1700985389] sampled token: 1834: ' field'
[1700985389] sampled token: 28808: '!'
[1700985389] sampled token: 325: ' ('
[1700985390] sampled token: 28753: 'P'
[1700985390] sampled token: 370: 'un'
[1700985390] sampled token: 8926: ' intended'
[1700985390] sampled token: 28731: ')'
[1700985390] sampled token: 28705: ' '
[1700985390] sampled token: 243: '<27>'
[1700985390] sampled token: 162: '<27>'
[1700985391] sampled token: 143: '<27>'
[1700985391] sampled token: 193: '<27>'
[1700985391] sampled token: 2: ''
[1700985391]
[1700985391] print_timings: prompt eval time = 2971.95 ms / 33 tokens ( 90.06 ms per token, 11.10 tokens per second)
[1700985391] print_timings: eval time = 4589.20 ms / 31 runs ( 148.04 ms per token, 6.75 tokens per second)
[1700985391] print_timings: total time = 7561.15 ms
[1700985391] slot 0 released (62 tokens in cache)
[1700985391] slot 0 released (62 tokens in cache)
[1700985439] slot 0 is processing [task id: 4]
[1700985439] slot 0 : kv cache rm - [0, end)
[1700985443] sampled token: 15423: 'Here'
[1700985443] sampled token: 28742: '''
[1700985443] sampled token: 28713: 's'
[1700985443] sampled token: 396: ' an'
[1700985443] sampled token: 21733: ' enhanced'
[1700985443] sampled token: 2751: ' version'
[1700985444] sampled token: 302: ' of'
[1700985444] sampled token: 272: ' the'
[1700985444] sampled token: 2696: ' code'
[1700985444] sampled token: 369: ' that'
[1700985444] sampled token: 23468: ' formats'
[1700985444] sampled token: 272: ' the'
[1700985444] sampled token: 3825: ' output'
[1700985445] sampled token: 297: ' in'
[1700985445] sampled token: 393: ' L'
[1700985445] sampled token: 3772: 'ua'
[1700985445] sampled token: 25227: ' syntax'
[1700985445] sampled token: 28747: ':'
[1700985445] sampled token: 13: '
'
[1700985445] sampled token: 13: '
'
[1700985446] sampled token: 13940: '``'
[1700985446] sampled token: 28832: '`'
[1700985446] sampled token: 20487: 'lua'
[1700985446] sampled token: 13: '
'
[1700985446] sampled token: 376: '--'
[1700985446] sampled token: 16693: ' Example'
[1700985446] sampled token: 11753: ' usage'
[1700985447] sampled token: 28747: ':'
[1700985447] sampled token: 17449: ' ./'
[1700985447] sampled token: 3220: 'run'
[1700985447] sampled token: 28723: '.'
[1700985447] sampled token: 811: 'sh'
[1700985447] sampled token: 28705: ' '
[1700985447] sampled token: 28740: '1'
[1700985448] sampled token: 28734: '0'
[1700985448] sampled token: 28705: ' '
[1700985448] sampled token: 28750: '2'
[1700985448] sampled token: 28734: '0'
[1700985448] sampled token: 13: '
'
[1700985448] sampled token: 376: '--'
[1700985448] sampled token: 851: ' This'
[1700985449] sampled token: 6767: ' script'
[1700985449] sampled token: 4347: ' takes'
[1700985449] sampled token: 989: ' two'
[1700985449] sampled token: 6614: ' arguments'
[1700985449] sampled token: 14030: ' representing'
[1700985449] sampled token: 5551: ' numbers'
[1700985449] sampled token: 28725: ','
[1700985449] sampled token: 304: ' and'
[1700985450] sampled token: 4900: ' calcul'
[1700985450] sampled token: 1002: 'ates'
[1700985450] sampled token: 652: ' their'
[1700985450] sampled token: 2648: ' sum'
[1700985450] sampled token: 304: ' and'
[1700985450] sampled token: 5133: ' difference'
[1700985450] sampled token: 13: '
'
[1700985451] sampled token: 13: '
'
[1700985451] sampled token: 3959: 'local'
[1700985451] sampled token: 1629: ' arg'
[1700985451] sampled token: 28740: '1'
[1700985451] sampled token: 327: ' ='
[1700985451] sampled token: 6339: ' ton'
[1700985451] sampled token: 1031: 'umber'
[1700985452] sampled token: 28732: '('
[1700985452] sampled token: 926: 'arg'
[1700985452] sampled token: 28792: '['
[1700985452] sampled token: 28740: '1'
[1700985452] sampled token: 2803: '])'
[1700985452] sampled token: 1939: ' --'
[1700985452] sampled token: 19468: ' Parse'
[1700985452] sampled token: 907: ' first'
[1700985453] sampled token: 5270: ' argument'
[1700985453] sampled token: 390: ' as'
[1700985453] sampled token: 264: ' a'
[1700985453] sampled token: 1474: ' number'
[1700985453] sampled token: 13: '
'
[1700985453] sampled token: 3959: 'local'
[1700985453] sampled token: 1629: ' arg'
[1700985454] sampled token: 28750: '2'
[1700985454] sampled token: 327: ' ='
[1700985454] sampled token: 6339: ' ton'
[1700985454] sampled token: 1031: 'umber'
[1700985454] sampled token: 28732: '('
[1700985454] sampled token: 926: 'arg'
[1700985454] sampled token: 28792: '['
[1700985455] sampled token: 28750: '2'
[1700985455] sampled token: 2803: '])'
[1700985455] sampled token: 1939: ' --'
[1700985455] sampled token: 19468: ' Parse'
[1700985455] sampled token: 1676: ' second'
[1700985455] sampled token: 5270: ' argument'
[1700985455] sampled token: 390: ' as'
[1700985456] sampled token: 264: ' a'
[1700985456] sampled token: 1474: ' number'
[1700985456] sampled token: 13: '
'
[1700985456] sampled token: 13: '
'
[1700985456] sampled token: 335: 'if'
[1700985456] sampled token: 1629: ' arg'
[1700985456] sampled token: 28740: '1'
[1700985457] sampled token: 859: ' =='
[1700985457] sampled token: 2346: ' nil'
[1700985457] sampled token: 442: ' or'
[1700985457] sampled token: 1629: ' arg'
[1700985457] sampled token: 28750: '2'
[1700985457] sampled token: 859: ' =='
[1700985457] sampled token: 2346: ' nil'
[1700985457] sampled token: 868: ' then'
[1700985458] sampled token: 13: '
'
[1700985458] sampled token: 28705: ' '
[1700985458] sampled token: 2682: ' print'
[1700985458] sampled token: 618: '("'
[1700985458] sampled token: 16200: 'Usage'
[1700985458] sampled token: 28747: ':'
[1700985458] sampled token: 345: ' "'
[1700985459] sampled token: 8072: ' ..'
[1700985459] sampled token: 10852: ' Arg'
[1700985459] sampled token: 28728: 'v'
[1700985459] sampled token: 28792: '['
[1700985459] sampled token: 28734: '0'
[1700985459] sampled token: 28793: ']'
[1700985459] sampled token: 8072: ' ..'
[1700985460] sampled token: 345: ' "'
[1700985460] sampled token: 733: ' ['
[1700985460] sampled token: 4810: 'number'
[1700985460] sampled token: 28793: ']'
[1700985460] sampled token: 733: ' ['
[1700985460] sampled token: 4810: 'number'
[1700985460] sampled token: 28793: ']'
[1700985461] sampled token: 1243: '")'
[1700985461] sampled token: 13: '
'
[1700985461] sampled token: 28705: ' '
[1700985461] sampled token: 3497: ' os'
[1700985461] sampled token: 28723: '.'
[1700985461] sampled token: 9427: 'exit'
[1700985461] sampled token: 470: '()'
[1700985461] sampled token: 13: '
'
[1700985462] sampled token: 416: 'end'
[1700985462] sampled token: 13: '
'
[1700985462] sampled token: 13: '
'
[1700985462] sampled token: 376: '--'
[1700985462] sampled token: 2984: ' Cal'
[1700985462] sampled token: 16914: 'culate'
[1700985462] sampled token: 2648: ' sum'
[1700985463] sampled token: 304: ' and'
[1700985463] sampled token: 5133: ' difference'
[1700985463] sampled token: 302: ' of'
[1700985463] sampled token: 272: ' the'
[1700985463] sampled token: 6614: ' arguments'
[1700985463] sampled token: 13: '
'
[1700985463] sampled token: 3959: 'local'
[1700985464] sampled token: 2648: ' sum'
[1700985464] sampled token: 327: ' ='
[1700985464] sampled token: 1629: ' arg'
[1700985464] sampled token: 28740: '1'
[1700985464] sampled token: 648: ' +'
[1700985464] sampled token: 1629: ' arg'
[1700985464] sampled token: 28750: '2'
[1700985464] sampled token: 13: '
'
[1700985465] sampled token: 3959: 'local'
[1700985465] sampled token: 2800: ' diff'
[1700985465] sampled token: 327: ' ='
[1700985465] sampled token: 1629: ' arg'
[1700985465] sampled token: 28740: '1'
[1700985465] slot 0 released (214 tokens in cache)
[1700985523] slot 0 is processing [task id: 6]
[1700985523] slot 0 : kv cache rm - [0, end)
[1700985542] sampled token: 1551: 'To'
[1700985542] sampled token: 3825: ' output'
[1700985543] sampled token: 272: ' the'
[1700985543] sampled token: 1204: ' result'
[1700985543] sampled token: 297: ' in'
[1700985543] sampled token: 272: ' the'
[1700985543] sampled token: 6140: ' specified'
[1700985543] sampled token: 5032: ' format'
[1700985543] sampled token: 28725: ','
[1700985543] sampled token: 368: ' you'
[1700985544] sampled token: 541: ' can'
[1700985544] sampled token: 9239: ' modify'
[1700985544] sampled token: 272: ' the'
[1700985544] sampled token: 2696: ' code'
[1700985544] sampled token: 390: ' as'
[1700985544] sampled token: 6104: ' follows'
[1700985544] sampled token: 28747: ':'
[1700985545] sampled token: 13: '
'
[1700985545] sampled token: 13: '
'
[1700985545] sampled token: 13940: '``'
[1700985545] sampled token: 28832: '`'
[1700985545] sampled token: 20487: 'lua'
[1700985545] sampled token: 13: '
'
[1700985545] sampled token: 376: '--'
[1700985546] sampled token: 28808: '!'
[1700985546] sampled token: 28748: '/'
[1700985546] sampled token: 16785: 'usr'
[1700985546] sampled token: 28748: '/'
[1700985546] sampled token: 5721: 'bin'
[1700985546] sampled token: 28748: '/'
[1700985546] sampled token: 4227: 'env'
[1700985547] sampled token: 305: ' l'
[1700985547] sampled token: 3772: 'ua'
[1700985547] sampled token: 13: '
'
[1700985547] sampled token: 376: '--'
[1700985547] sampled token: 7043: ' Start'
[1700985547] sampled token: 302: ' of'
[1700985547] sampled token: 2188: ' user'
[1700985548] sampled token: 7427: ' configuration'
[1700985548] sampled token: 13: '
'
[1700985548] sampled token: 13: '
'
[1700985548] sampled token: 376: '--'
[1700985548] sampled token: 11924: ' Load'
[1700985548] sampled token: 2877: ' options'
[1700985548] sampled token: 304: ' and'
[1700985548] sampled token: 945: ' ke'
[1700985549] sampled token: 1082: 'ym'
[1700985549] sampled token: 1882: 'aps'
[1700985549] sampled token: 13: '
'
[1700985549] sampled token: 6351: 'require'
[1700985549] sampled token: 464: ' ''
[1700985549] sampled token: 3538: 'options'
[1700985549] sampled token: 28742: '''
[1700985550] sampled token: 13: '
'
[1700985550] sampled token: 6351: 'require'
[1700985550] sampled token: 464: ' ''
[1700985550] sampled token: 405: 'ke'
[1700985550] sampled token: 1082: 'ym'
[1700985550] sampled token: 1882: 'aps'
[1700985550] sampled token: 28742: '''
[1700985551] sampled token: 13: '
'
[1700985551] sampled token: 13: '
'
[1700985551] sampled token: 376: '--'
[1700985551] sampled token: 3286: ' Set'
[1700985551] sampled token: 582: ' up'
[1700985551] sampled token: 17898: ' lazy'
[1700985551] sampled token: 28723: '.'
[1700985552] sampled token: 16885: 'nv'
[1700985552] sampled token: 321: 'im'
[1700985552] sampled token: 13: '
'
[1700985552] sampled token: 3959: 'local'
[1700985552] sampled token: 543: ' la'
[1700985552] sampled token: 28764: 'z'
[1700985552] sampled token: 1416: 'yp'
[1700985553] sampled token: 498: 'ath'
[1700985553] sampled token: 327: ' ='
[1700985553] sampled token: 363: ' v'
[1700985553] sampled token: 321: 'im'
[1700985553] sampled token: 28723: '.'
[1700985553] sampled token: 5642: 'fn'
[1700985553] sampled token: 28723: '.'
[1700985554] sampled token: 3719: 'std'
[1700985554] sampled token: 1740: 'path'
[1700985554] sampled token: 464: ' ''
[1700985554] sampled token: 1056: 'data'
[1700985554] sampled token: 28742: '''
[1700985554] sampled token: 8072: ' ..'
[1700985554] sampled token: 7377: ' '/'
[1700985555] sampled token: 28714: 'l'
[1700985555] sampled token: 13478: 'azy'
[1700985555] sampled token: 28748: '/'
[1700985555] sampled token: 28714: 'l'
[1700985555] sampled token: 13478: 'azy'
[1700985555] sampled token: 28723: '.'
[1700985555] sampled token: 16885: 'nv'
[1700985556] sampled token: 321: 'im'
[1700985556] sampled token: 28742: '''
[1700985556] sampled token: 13: '
'
[1700985556] sampled token: 335: 'if'
[1700985556] sampled token: 459: ' not'
[1700985556] sampled token: 363: ' v'
[1700985556] sampled token: 321: 'im'
[1700985557] sampled token: 28723: '.'
[1700985557] sampled token: 9374: 'loop'
[1700985557] sampled token: 28723: '.'
[1700985557] sampled token: 2547: 'fs'
[1700985557] sampled token: 28730: '_'
[1700985557] sampled token: 5975: 'stat'
[1700985557] sampled token: 28732: '('
[1700985557] sampled token: 28714: 'l'
[1700985558] sampled token: 941: 'az'
[1700985558] sampled token: 1416: 'yp'
[1700985558] sampled token: 498: 'ath'
[1700985558] sampled token: 28731: ')'
[1700985558] sampled token: 868: ' then'
[1700985558] sampled token: 13: '
'
[1700985558] sampled token: 259: ' '
[1700985559] sampled token: 363: ' v'
[1700985559] sampled token: 321: 'im'
[1700985559] sampled token: 28723: '.'
[1700985559] sampled token: 5642: 'fn'
[1700985559] sampled token: 28723: '.'
[1700985559] sampled token: 6574: 'system'
[1700985559] sampled token: 371: ' {'
[1700985560] sampled token: 13: '
'
[1700985560] sampled token: 355: ' '
[1700985560] sampled token: 464: ' ''
[1700985560] sampled token: 12854: 'git'
[1700985560] sampled token: 647: '','
[1700985560] sampled token: 13: '
'
[1700985560] sampled token: 355: ' '
[1700985561] sampled token: 464: ' ''
[1700985561] sampled token: 10519: 'clone'
[1700985561] sampled token: 647: '','
[1700985561] sampled token: 13: '
'
[1700985561] sampled token: 355: ' '
[1700985561] sampled token: 464: ' ''
[1700985561] sampled token: 376: '--'
[1700985562] sampled token: 4650: 'filter'
[1700985562] sampled token: 28746: '='
[1700985562] sampled token: 17678: 'blob'
[1700985562] sampled token: 28747: ':'
[1700985562] sampled token: 8607: 'none'
[1700985562] sampled token: 647: '','
[1700985562] sampled token: 13: '
'
[1700985562] sampled token: 355: ' '
[1700985563] sampled token: 464: ' ''
[1700985563] sampled token: 3887: 'https'
[1700985563] sampled token: 1508: '://'
[1700985563] sampled token: 6222: 'github'
[1700985563] sampled token: 28723: '.'
[1700985563] sampled token: 675: 'com'
[1700985563] sampled token: 28748: '/'
[1700985564] sampled token: 5880: 'fol'
[1700985564] sampled token: 405: 'ke'
[1700985564] sampled token: 28748: '/'
[1700985564] sampled token: 28714: 'l'
[1700985564] sampled token: 13478: 'azy'
[1700985564] sampled token: 28723: '.'
[1700985564] sampled token: 16885: 'nv'
[1700985565] sampled token: 321: 'im'
[1700985565] sampled token: 28723: '.'
[1700985565] sampled token: 12854: 'git'
[1700985565] sampled token: 647: '','
[1700985565] sampled token: 13: '
'
[1700985565] sampled token: 355: ' '
[1700985565] sampled token: 464: ' ''
[1700985566] sampled token: 376: '--'
[1700985566] sampled token: 19175: 'branch'
[1700985566] sampled token: 28746: '='
[1700985566] sampled token: 17588: 'stable'
[1700985566] sampled token: 647: '','
[1700985566] sampled token: 1939: ' --'
[1700985566] sampled token: 7345: ' latest'
[1700985567] sampled token: 11311: ' stable'
[1700985567] sampled token: 5614: ' release'
[1700985567] sampled token: 13: '
'
[1700985567] slot 0 released (416 tokens in cache)

View File

@ -0,0 +1,32 @@
local keymap = vim.keymap
local opts = { noremap = true, silent = true }
local function defaultOpts(desc)
if desc == nil then
return { noremap = true, silent = true }
else
return { noremap = true, silent = true, desc = desc }
end
end
-- Buffer Navigation
keymap.set("n", "<leader>bn", "bnext", defaultOpts("Next Buffer"))
keymap.set("n", "<leader>bp", "bprevious", defaultOpts("Prev Buffer"))
keymap.set("n", "<leader>bb", "e #", defaultOpts("Switch Buffer"))
-- Directory Navigation
keymap.set("n", "<leader>of", ":Neotree toggle<CR>", defaultOpts("Neotree"))
-- Pane and Window Navigation
keymap.set("n", "<C-h>", "<C-w>h", defaultOpts("Navigate Left"))
keymap.set("n", "<C-j>", "<C-w>j", defaultOpts("Navigate Down"))
keymap.set("n", "<C-k>", "<C-w>k", defaultOpts("Navigate Up"))
keymap.set("n", "<C-l>", "<C-w>l", defaultOpts("Navigate Right"))
-- Window Management
keymap.set("n", "<leader>sv", ":vsplit<CR>", defaultOpts("Split Vertically"))
keymap.set("n", "<leader>sh", ":split<CR>", defaultOpts("Split Horizontally"))
-- Comments
vim.api.nvim_set_keymap("n", "<C-/>", "gcc", { noremap = false })
vim.api.nvim_set_keymap("v", "<C-/>", "gcc", { noremap = false })

View File

@ -0,0 +1,39 @@
-- Global
vim.g.mapleader = ' '
vim.g.maplocalleader = ' '
vim.g.loaded_netrw = 1
vim.g.loaded_netrwPlugin = 1
-- Settings
vim.opt.nu = true
vim.opt.tabstop = 4
vim.opt.softtabstop = 4
vim.opt.shiftwidth = 4
vim.opt.expandtab = true
vim.opt.smartindent = true
vim.opt.wrap = false
vim.opt.swapfile = false
vim.opt.backup = false
vim.opt.undodir = os.getenv 'HOME' .. '/.vim/undodir'
vim.opt.undofile = true
vim.opt.hlsearch = false
vim.opt.incsearch = true
vim.opt.smartcase = true
vim.opt.termguicolors = true
vim.opt.scrolloff = 8
vim.opt.signcolumn = 'yes'
vim.opt.isfname:append '@-@'
vim.opt.updatetime = 50
vim.opt.clipboard = 'unnamedplus'
vim.opt.spelllang = 'en_us'
vim.opt.spell = true
vim.opt.laststatus = 3
vim.opt.mouse:append("a")
vim.opt.number = true
vim.opt.relativenumber = true
-- Neovide
if vim.g.neovide then
vim.o.guifont = 'JetBrains Mono Nerd Font:h14'
vim.g.neovide_cursor_vfx_mode = 'railgun'
end

View File

@ -0,0 +1,40 @@
-- return {
-- 'goolord/alpha-nvim',
-- dependencies = { 'nvim-tree/nvim-web-devicons' },
-- config = function()
-- require 'alpha'.setup(require 'alpha.themes.startify'.config)
-- end
-- }
return {
'goolord/alpha-nvim',
event = 'VimEnter',
config = function()
local dashboard = require 'alpha.themes.dashboard'
dashboard.section.header.val = {
"██████████████████████████████████████████████████",
"█░░░░░░░░░░░░░░█░░░░░░██░░░░░░█░░░░░░░░██░░░░░░░░█",
"█░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀░░██░░▄▀░░█░░▄▀▄▀░░██░░▄▀▄▀░░█",
"█░░░░░░▄▀░░░░░░█░░▄▀░░██░░▄▀░░█░░░░▄▀░░██░░▄▀░░░░█",
"█████░░▄▀░░█████░░▄▀░░██░░▄▀░░███░░░░▄▀▄▀▄▀░░░░███",
"█████░░▄▀░░█████░░▄▀░░██░░▄▀░░█████░░▄▀▄▀▄▀░░█████",
"█████░░▄▀░░█████░░▄▀░░██░░▄▀░░███░░░░▄▀▄▀▄▀░░░░███",
"█████░░▄▀░░█████░░▄▀░░░░░░▄▀░░█░░░░▄▀░░██░░▄▀░░░░█",
"█████░░▄▀░░█████░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀▄▀░░██░░▄▀▄▀░░█",
"█████░░░░░░█████░░░░░░░░░░░░░░█░░░░░░░░██░░░░░░░░█",
"██████████████████████████████████████████████████",
}
dashboard.section.header.opts = {
position = 'center',
hl = 'Comment',
}
require('alpha').setup(require('alpha.themes.dashboard').config)
dashboard.section.buttons.val = {
dashboard.button('SPC f f', ' Find File', '<CMD>Telescope find_files<CR>'),
dashboard.button('SPC f r', ' Recent Files', '<CMD>Telescope oldfiles<CR>'),
dashboard.button('SPC f t', ' Find in Files', '<CMD>Telescope live_grep<CR>'),
}
end,
dependencies = { 'nvim-tree/nvim-web-devicons' },
}

View File

@ -0,0 +1,4 @@
return {
'altermo/ultimate-autopair.nvim',
config = true,
}

View File

@ -0,0 +1,11 @@
return {
'utilyre/barbecue.nvim',
dependencies = {
'SmiteshP/nvim-navic',
'nvim-tree/nvim-web-devicons', -- optional dependency
},
config = function()
require('barbecue').setup {}
require('barbecue.ui').toggle(true)
end,
}

View File

@ -0,0 +1,5 @@
return {
'lukas-reineke/indent-blankline.nvim',
main = 'ibl',
config = true,
}

View File

@ -0,0 +1,17 @@
return {
'akinsho/bufferline.nvim',
version = 'v3.*',
dependencies = 'nvim-tree/nvim-web-devicons',
config = {
options = {
offsets = {
{
filetype = 'neo-tree',
text = 'NeoTree',
text_align = 'left',
separator = true,
},
},
},
},
}

View File

@ -0,0 +1,25 @@
return {
{
"EdenEast/nightfox.nvim",
lazy = false,
priority = 1000,
config = function()
require('nightfox').setup {
options = {
transparent = true,
}
}
vim.cmd.colorscheme "carbonfox"
end,
},
{
'olivercederborg/poimandres.nvim',
lazy = false,
priority = 1000,
config = function()
require('poimandres').setup {
disable_background = true,
}
end,
}
}

View File

@ -0,0 +1,50 @@
return {
'numToStr/Comment.nvim',
config = function()
local comment = require 'Comment'
comment.setup {
---Add a space b/w comment and the line
padding = true,
---Whether the cursor should stay at its position
sticky = true,
---Lines to be ignored while (un)comment
ignore = nil,
---LHS of toggle mappings in NORMAL mode
toggler = {
---Line-comment toggle keymap
line = 'gcc',
---Block-comment toggle keymap
block = 'gbc',
},
---LHS of operator-pending mappings in NORMAL and VISUAL mode
opleader = {
---Line-comment keymap
line = 'gc',
---Block-comment keymap
block = 'gb',
},
---LHS of extra mappings
extra = {
---Add comment on the line above
above = 'gcO',
---Add comment on the line below
below = 'gco',
---Add comment at the end of line
eol = 'gcA',
},
---Enable keybindings
---NOTE: If given `false` then the plugin won't create any mappings
mappings = {
---Operator-pending mapping; `gcc` `gbc` `gc[count]{motion}` `gb[count]{motion}`
basic = true,
---Extra mapping; `gco`, `gcO`, `gcA`
extra = true,
},
---Function to call before (un)comment
pre_hook = nil,
---Function to call after (un)comment
post_hook = nil,
}
end,
}

View File

@ -0,0 +1,4 @@
return {
'stevearc/dressing.nvim',
event = 'VeryLazy',
}

View File

@ -0,0 +1,5 @@
return {
'folke/edgy.nvim',
event = 'VeryLazy',
opts = {},
}

View File

@ -0,0 +1,3 @@
return {
'editorconfig/editorconfig-vim',
}

View File

@ -0,0 +1,38 @@
return {
'folke/flash.nvim',
event = 'VeryLazy',
---@type Flash.Config
opts = {},
-- stylua: ignore
keys = {
{ "s", mode = { "n", "o", "x" }, function() require("flash").jump() end, desc = "Flash" },
{
"S",
mode = { "n", "o", "x" },
function() require("flash").treesitter() end,
desc =
"Flash Treesitter"
},
{
"r",
mode = "o",
function() require("flash").remote() end,
desc =
"Remote Flash"
},
{
"R",
mode = { "o", "x" },
function() require("flash").treesitter_search() end,
desc =
"Treesitter Search"
},
{
"<c-s>",
mode = { "c" },
function() require("flash").toggle() end,
desc =
"Toggle Flash Search"
},
},
}

View File

@ -0,0 +1,16 @@
return {
'David-Kunz/gen.nvim',
config = function()
vim.keymap.set('v', '<leader>ai', ':Gen<CR>')
vim.keymap.set('n', '<leader>ai', ':Gen<CR>')
require('gen').setup({
model = "zephyr",
display_mode = "float",
show_prompt = true,
show_model = true,
no_auto_close = false,
init = function(options) pcall(io.popen, "ollama serve > /dev/null 2>&1 &") end,
debug = false
})
end,
}

View File

@ -0,0 +1,6 @@
return {
'lewis6991/gitsigns.nvim',
config = {
current_line_blame = true,
},
}

View File

@ -0,0 +1,6 @@
return {
'kdheepak/lazygit.nvim',
keys = {
{ '<leader>gg', '<cmd>LazyGit<cr>', desc = 'Git' },
},
}

View File

@ -0,0 +1,14 @@
return {
"nvim-lualine/lualine.nvim",
lazy = false,
config = function()
local theme = require("lualine.themes.carbonfox")
require("lualine").setup({
options = {
theme = theme,
globalstatus = true,
},
})
end
}

View File

@ -0,0 +1,8 @@
return {
'iamcco/markdown-preview.nvim',
cmd = { 'MarkdownPreviewToggle', 'MarkdownPreview', 'MarkdownPreviewStop' },
ft = { 'markdown' },
build = function()
vim.fn['mkdp#util#install']()
end,
}

View File

@ -0,0 +1,31 @@
return {
'mvllow/modes.nvim',
-- config = function()
-- local colors = require('catppuccin.palettes').get_palette()
-- require('modes').setup {
-- colors = {
-- copy = colors.peach,
-- delete = colors.red,
-- insert = colors.blue,
-- visual = colors.lavender,
-- },
-- -- Set opacity for cursorline and number background
-- line_opacity = 0.15,
-- -- Enable cursor highlights
-- set_cursor = true,
-- -- Enable cursorline initially, and disable cursorline for inactive windows
-- -- or ignored filetypes
-- set_cursorline = true,
-- -- Enable line number highlights to match cursorline
-- set_number = true,
-- -- Disable modes highlights in specified filetypes
-- -- Please PR commonly ignored filetypes
-- ignore_filetypes = { 'NvimTree', 'TelescopePrompt' },
-- }
-- end,
}

View File

@ -0,0 +1,21 @@
return {
"nvim-neorg/neorg",
build = ":Neorg sync-parsers",
dependencies = { "nvim-lua/plenary.nvim" },
config = function()
require("neorg").setup {
load = {
["core.defaults"] = {},
["core.concealer"] = {},
["core.dirman"] = {
config = {
workspaces = {
snippets = string.format("%s/Projects/notes/snippets", os.getenv("HOME"))
},
default_workspace = "snippets",
},
}
},
}
end,
}

View File

@ -0,0 +1,35 @@
return {
'nvim-neo-tree/neo-tree.nvim',
lazy = false,
cmd = 'Neotree',
branch = 'v3.x',
dependencies = {
'nvim-lua/plenary.nvim',
'nvim-tree/nvim-web-devicons',
'MunifTanjim/nui.nvim',
},
config = {
filesystem = {
follow_current_file = { enabled = true },
hijack_netrw_behavior = 'open_default',
filtered_items = { visible = true },
use_libuv_file_watcher = true,
},
git_status = {
symbols = {
-- Change type
added = '', -- or "✚", but this is redundant info if you use git_status_colors on the name
modified = '', -- or "", but this is redundant info if you use git_status_colors on the name
deleted = '', -- this can only be used in the git_status source
renamed = '󰁕', -- this can only be used in the git_status source
-- Status type
untracked = '',
ignored = '',
unstaged = '󰄱',
staged = '',
conflict = '',
},
},
},
}

View File

@ -0,0 +1,27 @@
return {
'folke/noice.nvim',
lazy = false,
dependencies = {
'MunifTanjim/nui.nvim',
'rcarriga/nvim-notify',
},
config = {
lsp = {
override = {
['vim.lsp.util.convert_input_to_markdown_lines'] = true,
['vim.lsp.util.stylize_markdown'] = true,
['cmp.entry.get_documentation'] = true,
},
},
presets = {
-- bottom_search = true, -- use a classic bottom cmdline for search
-- command_palette = true, -- position the cmdline and popupmenu together
long_message_to_split = true, -- long messages will be sent to a split
inc_rename = false, -- enables an input dialog for inc-rename.nvim
lsp_doc_border = false, -- add a border to hover docs and signature help
},
-- cmdline = {
-- view = 'cmdline',
-- },
},
}

View File

@ -0,0 +1,11 @@
return {
'NvChad/nvterm',
keys = {
{ '<leader>ot', '<cmd>lua require("nvterm.terminal").toggle "horizontal"<cr>', desc = 'Toggle Terminal' },
},
config = function()
require('nvterm').setup {}
vim.cmd [[ tnoremap <Esc> <C-\><C-n> ]]
end,
}

View File

@ -0,0 +1,4 @@
return {
'kylechui/nvim-surround',
config = true,
}

View File

@ -0,0 +1,20 @@
return {
{
'nvim-telescope/telescope.nvim',
tag = '0.1.3',
lazy = true,
keys = {
{ '<leader>ff', '<cmd>Telescope find_files<CR>', desc = 'Find Files' },
{ '<leader>ft', '<cmd>Telescope live_grep<CR>', desc = 'Search Text in Files' },
{ '<leader>fb', '<cmd>Telescope buffers<CR>', desc = 'List Buffers' },
{ '<M-x>', '<cmd>Telescope commands<CR>', desc = 'Run Command' },
},
dependencies = { 'nvim-lua/plenary.nvim' },
},
{
'nvim-telescope/telescope-media-files.nvim',
config = function()
require('telescope').load_extension 'media_files'
end,
},
}

View File

@ -0,0 +1,5 @@
return {
'folke/todo-comments.nvim',
dependencies = { 'nvim-lua/plenary.nvim' },
config = true,
}

View File

@ -0,0 +1,17 @@
return {
'nvim-treesitter/nvim-treesitter',
build = ':TSUpdate',
config = function()
require('nvim-treesitter.configs').setup {
ensure_installed = { 'lua', 'nix' },
sync_install = false,
auto_install = true,
highlight = {
enable = true,
additional_vim_regex_highlighting = false,
},
}
end,
}

View File

@ -0,0 +1,8 @@
return {
'Wansmer/treesj',
keys = { '<space>m' },
dependencies = { 'nvim-treesitter/nvim-treesitter' },
config = function()
require('treesj').setup {}
end,
}

View File

@ -0,0 +1 @@
return { 'wakatime/vim-wakatime' }

View File

@ -0,0 +1,8 @@
return {
'folke/which-key.nvim',
config = function()
vim.o.timeout = true
vim.o.timeoutlen = 300
require('which-key').setup {}
end,
}

View File

@ -0,0 +1,42 @@
{ config, pkgs, ... }: {
services.picom = {
enable = false;
extraArgs = [ "--animations" ];
fade = true;
fadeDelta = 5;
fadeSteps = [ 0.05 0.05 ];
fadeExclude = [
"window_type *= 'menu'"
];
settings = {
backend = "glx";
use-damage = false;
corner-radius = 12;
animation-stiffness = 300;
animation-window-mass = 1.3;
animation-dampening = 35;
animation-clamping = true;
animation-for-open-window = "zoom";
animation-for-menu-window = "slide-down";
animation-for-transient-window = "slide-down";
animation-for-prev-tag = "zoom";
enable-fading-prev-tag = true;
animation-for-next-tag = "zoom";
enable-fading-next-tag = true;
shadow = true;
shadow-radius = 20;
shadow-offset-x = -20;
shadow-offset-y = -18;
no-fading-openclose = false;
vsync = false;
};
};
}

View File

@ -0,0 +1,65 @@
{ pkgs, ... }: {
programs = {
bat.enable = true;
zsh = {
enable = true;
shellAliases = {
ls = "lsd";
};
syntaxHighlighting.enable = true;
enableAutosuggestions = true;
initExtra = ''
eval "$(starship init zsh)"
nitch
export WINIT_X11_SCALE_FACTOR=1
'';
};
lazygit.enable = true;
zoxide.enable = true;
ripgrep.enable = true;
btop = {
enable = true;
settings = {
theme_background = false;
update_ms = 1000;
};
};
go.enable = true;
};
home.packages = with pkgs; [
lsd
nitch
ranger
wget
portal
fast-cli
gdu
nvtop
zip
unzip
speedtestpp
pciutils
gnumake
copyq
zellij
cht-sh
python311
nodejs
rustc
cargo
bun
ollama
stremio
nixpkgs-fmt
flyctl
turso-cli
libreoffice-qt
spotify
hunspell
hunspellDicts.en_US
galaxy-buds-client
];
}

View File

@ -0,0 +1,22 @@
{ ... }: {
programs.starship = {
enable = true;
settings = {
format = ''[󰊠 ](bold green)$directory(bold blue)$git_branch$git_status[](bold yellow)[](bold purple)[](bold blue) '';
scan_timeout = 60;
add_newline = false;
line_break.disabled = true;
directory.style = "bold blue";
cmd_duration.format = "[$duration]($style) ";
git_branch.format = "[$symbol$branch]($style) ";
nodejs.format = "[$symbol($version )]($style)";
rust.format = "[$symbol($version )]($style)";
golang = {
format = "[$symbol($version )]($style)";
symbol = " ";
};
};
};
}

View File

@ -0,0 +1,31 @@
{ ... }: {
programs.wezterm = {
enable = true;
extraConfig = ''
local wezterm = require 'wezterm'
local config = {}
config.window_close_confirmation = 'NeverPrompt'
config.color_scheme = 'Poimandres'
config.colors = {
background = "#0f0f0f"
}
config.enable_tab_bar = false
config.font = wezterm.font_with_fallback {
'FiraCode Nerd Font',
}
config.font_size = 18.0
config.window_background_opacity = 1
config.window_padding = {
left = '20px',
right = '20px',
top = '20px',
bottom = '20px',
}
config.audible_bell = "Disabled"
return config
'';
};
}

View File

@ -0,0 +1,72 @@
{ inputs, outputs, lib, pkgs, username, ... }: {
services = {
xserver = {
enable = true;
displayManager = {
sddm.enable = true;
autoLogin = {
enable = true;
user = "${username}";
};
};
windowManager.awesome = {
enable = true;
luaModules = lib.attrValues {
inherit
(pkgs.lua53Packages)
lgi
ldbus
luadbi-mysql
luaposix
;
};
};
};
acpid.enable = true;
mpd.enable = true;
picom.enable = true;
upower.enable = true;
blueman.enable = true;
};
programs.dconf.enable = true;
environment.systemPackages = with pkgs;[
lua53Packages.lua
wezterm
rofi
acpi
linuxKernel.packages.linux_zen.acpi_call
lxappearance
jq
inotify-tools
polkit_gnome
xdotool
xclip
xorg.xbacklight
gpick
ffmpeg
alsa-utils
pavucontrol
brightnessctl
libnotify
feh
maim
mpv
mpd
mpc-cli
mpdris2
python311
python311Packages.mutagen
ncmpcpp
xdg-utils
playerctl
pulsemixer
procps
sct
slop
speedcrunch
];
}

7
modules/nixos/steam.nix Normal file
View File

@ -0,0 +1,7 @@
{ ... }: {
programs.steam = {
enable = true;
};
hardware.opengl.driSupport32Bit = true;
}

View File

@ -0,0 +1,7 @@
{
imports = [
./docker.nix
./waydroid.nix
./qemu.nix
];
}

View File

@ -0,0 +1,7 @@
{ username, ... }: {
virtualisation = {
docker.enable = true;
};
users.users.${username}.extraGroups = [ "docker" ];
}

View File

@ -0,0 +1,11 @@
{ pkgs, username, ... }: {
virtualisation = {
libvirtd.enable = true;
};
users.users.${username}.extraGroups = [ "libvirtd" ];
environment.systemPackages = with pkgs; [
virt-manager
];
}

View File

@ -0,0 +1,5 @@
{ ... }: {
virtualisation = {
waydroid.enable = true;
};
}

28
overlays/default.nix Executable file
View File

@ -0,0 +1,28 @@
{ inputs, ... }: {
additions = final: _prev: import ../pkgs { pkgs = final; };
modifications = final: prev: {
#vscode = prev.vscode.overrideAttrs (oldAttrs: rec {
# src = (builtins.fetchTarball {
# url = "https://code.visualstudio.com/sha/download?build=stable&os=linux-x64";
# sha256 = "09hy3nw1bblrl0blzpwv492gy0hwwbaq4csx00mcymskginz1wyx";
# });
# version = "latest";
# buildInputs = oldAttrs.buildInputs;
#});
awesome = inputs.nixpkgs-f2k.packages.${prev.system}.awesome-git.override { lua = prev.lua53Packages.lua; };
picom = inputs.nixpkgs-f2k.packages.${prev.system}.picom-pijulius;
};
# When applied, the unstable nixpkgs set (declared in the flake inputs) will
# be accessible through 'pkgs.unstable'
unstable-packages = final: _prev: {
unstable = import inputs.nixpkgs-unstable {
system = final.system;
config.allowUnfree = true;
};
};
nur = inputs.nur.overlay;
}

3
pkgs/default.nix Executable file
View File

@ -0,0 +1,3 @@
{ pkgs, ... }: {
speedtestpp = pkgs.callPackage ./speedtestpp { };
}

22
pkgs/speedtestpp/default.nix Executable file
View File

@ -0,0 +1,22 @@
{ stdenv, lib, fetchFromGitHub, cmake, curl, openssl, libxml2 }:
stdenv.mkDerivation {
pname = "speedtestpp";
version = "2021-08-29";
src = fetchFromGitHub {
owner = "taganaka";
repo = "speedtest";
rev = "0f63cfbf7ce8d64ea803bf143b957eae76323405";
sha256 = "sha256-rGY0kK2OCZl+229/JERf2ghBSdvAedhVuL4SrVzYFmU=";
};
nativeBuildInputs = [ cmake curl openssl libxml2 ];
postInstall = ''
ln -s $out/bin/SpeedTest $out/bin/speedtestpp
'';
meta = with lib; {
description = "Unofficial speedtest.net cli using raw TCP for better accuracy";
homepage = "https://github.com/taganaka/SpeedTest";
license = licenses.mit;
platforms = platforms.linux;
};
}