init
This commit is contained in:
commit
73b95242ee
8 changed files with 1197 additions and 0 deletions
186
configuration.nix
Normal file
186
configuration.nix
Normal file
|
@ -0,0 +1,186 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
# Kernel
|
||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
boot.kernelParams = [ "kvm.enable_virt_at_load=0" ];
|
||||
boot.kernelModules = [ "iptable_nat" ];
|
||||
|
||||
# System
|
||||
networking.hostName = "lachrymal-abg"; # Define your hostname.
|
||||
time.timeZone = "America/Toronto";
|
||||
|
||||
i18n.defaultLocale = "ja_JP.UTF-8";
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
xdg.portal.enable = true;
|
||||
|
||||
services.displayManager.sddm = {
|
||||
enable = true;
|
||||
wayland.enable = true;
|
||||
settings.General.DisplayServer = "wayland";
|
||||
};
|
||||
# services.xserver.desktopManager.lxqt.enable = true;
|
||||
# environment.lxqt.excludePackages = with pkgs; [ lxqt.qterminal ];
|
||||
services.desktopManager.plasma6.enable = true;
|
||||
environment.plasma6.excludePackages = with pkgs.kdePackages; [
|
||||
elisa
|
||||
kate
|
||||
khelpcenter
|
||||
gwenview
|
||||
kate
|
||||
konsole
|
||||
];
|
||||
|
||||
# Fonts
|
||||
fonts = {
|
||||
packages = with pkgs; [
|
||||
noto-fonts
|
||||
noto-fonts-cjk-sans
|
||||
noto-fonts-cjk-serif
|
||||
noto-fonts-emoji
|
||||
liberation_ttf
|
||||
victor-mono
|
||||
lmodern
|
||||
lmmath
|
||||
wqy_zenhei
|
||||
];
|
||||
fontDir.enable = true;
|
||||
fontconfig = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
# Enable CUPS to print documents.
|
||||
services.printing.enable = true;
|
||||
|
||||
# Enable sound.
|
||||
services.pulseaudio.enable = false;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
audio.enable = true;
|
||||
pulse.enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
};
|
||||
|
||||
# Steam
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
extraCompatPackages = with pkgs; [
|
||||
proton-ge-bin
|
||||
];
|
||||
};
|
||||
|
||||
users.users.lach = {
|
||||
isNormalUser = true;
|
||||
extraGroups = [ "wheel" "docker" ]; # Enable ‘sudo’ for the user.
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
vesktop
|
||||
|
||||
wget
|
||||
pciutils
|
||||
gpustat
|
||||
mg
|
||||
micro-full
|
||||
ventoy-full
|
||||
git-credential-oauth
|
||||
|
||||
hugo
|
||||
gnumake
|
||||
bun
|
||||
python314
|
||||
nodejs
|
||||
ruff
|
||||
uv
|
||||
gcc
|
||||
pkg-config
|
||||
rustc
|
||||
cargo
|
||||
rust-analyzer
|
||||
|
||||
kdePackages.oxygen
|
||||
];
|
||||
|
||||
nixpkgs.overlays = [
|
||||
(import ./im-overlays.nix)
|
||||
];
|
||||
|
||||
programs.git = {
|
||||
enable = true;
|
||||
package = pkgs.gitFull;
|
||||
config.credential.helper = [ "libsecret" "oauth" ];
|
||||
};
|
||||
|
||||
programs.gnupg.agent = {
|
||||
enable = true;
|
||||
enableSSHSupport = true;
|
||||
# pinentryPackage = lib.mkForce pkgs.pinentry-qt;
|
||||
};
|
||||
|
||||
services.openssh.enable = true;
|
||||
|
||||
# Samba
|
||||
services.samba = {
|
||||
package = pkgs.samba4Full;
|
||||
enable = true;
|
||||
openFirewall = true;
|
||||
settings = {
|
||||
global = {
|
||||
"security" = "user";
|
||||
"guest account" = "nobody";
|
||||
"map to guest" = "bad user";
|
||||
"server smb encrypt" = "required";
|
||||
"server min protocol" = "SMB3_00";
|
||||
};
|
||||
DL = {
|
||||
path = "/run/media/lach/A0762DC8762DA050/Downloads";
|
||||
browseable = "yes";
|
||||
"read only" = "no";
|
||||
"guest ok" = "no";
|
||||
"create mask" = "0644";
|
||||
"directory mask" = "0755";
|
||||
"force user" = "lach";
|
||||
};
|
||||
Anime = {
|
||||
path = "/run/media/lach/A0762DC8762DA050/Archive/Anime";
|
||||
browseable = "yes";
|
||||
"read only" = "no";
|
||||
"guest ok" = "no";
|
||||
"create mask" = "0644";
|
||||
"directory mask" = "0755";
|
||||
"force user" = "lach";
|
||||
};
|
||||
};
|
||||
};
|
||||
services.avahi = {
|
||||
publish.enable = true;
|
||||
publish.userServices = true;
|
||||
enable = true;
|
||||
openFirewall = true;
|
||||
};
|
||||
networking.firewall.enable = true;
|
||||
networking.firewall.allowPing = true;
|
||||
|
||||
networking.firewall.allowedTCPPorts = [ 8888 ];
|
||||
|
||||
# virtualisation.docker = {
|
||||
# enable = true;
|
||||
# storageDriver = "btrfs";
|
||||
# };
|
||||
|
||||
system.stateVersion = "24.05";
|
||||
}
|
155
flake.lock
generated
Normal file
155
flake.lock
generated
Normal file
|
@ -0,0 +1,155 @@
|
|||
{
|
||||
"nodes": {
|
||||
"flake-compat": {
|
||||
"locked": {
|
||||
"lastModified": 1696426674,
|
||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||
"revCount": 57,
|
||||
"type": "tarball",
|
||||
"url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1710146030,
|
||||
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1744223888,
|
||||
"narHash": "sha256-reYpe0J1J+wH34JFs7KKp0G5nP7+XSQ5z0ZLFJcfJr8=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "79461936709b12e17adb9c91dd02d1c66d577f09",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1744098102,
|
||||
"narHash": "sha256-tzCdyIJj9AjysC3OuKA+tMD/kDEDAF9mICPDU7ix0JA=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "c8cd81426f45942bb2906d5ed2fe21d2f19d95b7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"home-manager": "home-manager",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"spicetify-nix": "spicetify-nix",
|
||||
"winapps": "winapps"
|
||||
}
|
||||
},
|
||||
"spicetify-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1744079955,
|
||||
"narHash": "sha256-qIdHmNcq3qNCQA1cQTEfCZq7tqtgjhJqKKMFfZPTZPc=",
|
||||
"owner": "Gerg-L",
|
||||
"repo": "spicetify-nix",
|
||||
"rev": "c0876c796c44a0a3ead0d36b5c100dbf47ea1dbd",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Gerg-L",
|
||||
"repo": "spicetify-nix",
|
||||
"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"
|
||||
}
|
||||
},
|
||||
"winapps": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat",
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1743849404,
|
||||
"narHash": "sha256-Yr6L33A9l6DW4IGBXKpPCUcA69XATxrYanwOBupSdPs=",
|
||||
"owner": "winapps-org",
|
||||
"repo": "winapps",
|
||||
"rev": "f6d56fdf50f3b801d03f8dca2cca2246485cb793",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "winapps-org",
|
||||
"repo": "winapps",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
60
flake.nix
Normal file
60
flake.nix
Normal file
|
@ -0,0 +1,60 @@
|
|||
{
|
||||
description = "lachrymal@NixOS";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
spicetify-nix = {
|
||||
url = "github:Gerg-L/spicetify-nix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
winapps = {
|
||||
url = "github:winapps-org/winapps";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = inputs@{
|
||||
nixpkgs,
|
||||
home-manager,
|
||||
spicetify-nix,
|
||||
winapps,
|
||||
...
|
||||
}:
|
||||
{
|
||||
nixosConfigurations.lachrymal-abg = nixpkgs.lib.nixosSystem rec {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = { inherit inputs system; };
|
||||
modules = [
|
||||
./configuration.nix
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager = {
|
||||
useUserPackages = true;
|
||||
users.lach = import ./home/lach.nix;
|
||||
extraSpecialArgs = {
|
||||
inherit inputs;
|
||||
inherit spicetify-nix;
|
||||
};
|
||||
};
|
||||
}
|
||||
(
|
||||
{ pkgs, system, ... }:
|
||||
{
|
||||
nix.settings = {
|
||||
substituters = [ "https://winapps.cachix.org" ];
|
||||
trusted-public-keys = [ "winapps.cachix.org-1:HI82jWrXZsQRar/PChgIx1unmuEsiQMQq+zt05CD36g=" ];
|
||||
};
|
||||
environment.systemPackages = [
|
||||
winapps.packages."${system}".winapps
|
||||
winapps.packages."${system}".winapps-launcher
|
||||
];
|
||||
}
|
||||
)
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
55
hardware-configuration.nix
Normal file
55
hardware-configuration.nix
Normal file
|
@ -0,0 +1,55 @@
|
|||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/973e5c4e-7090-478d-af3c-ca0c68b6d7fb";
|
||||
fsType = "btrfs";
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/0542-9B6E";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0077" "dmask=0077" ];
|
||||
};
|
||||
|
||||
fileSystems."/home" =
|
||||
{ device = "/dev/disk/by-uuid/f22da6db-b016-436e-916f-b4d1a8aa3583";
|
||||
fsType = "btrfs";
|
||||
};
|
||||
|
||||
swapDevices =
|
||||
[ { device = "/dev/disk/by-uuid/3f11e789-560c-41ee-836e-0a435fcf73f1"; }
|
||||
];
|
||||
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
|
||||
hardware.graphics.enable = true;
|
||||
|
||||
services.xserver.videoDrivers = [ "nvidia" ];
|
||||
hardware.nvidia = {
|
||||
modesetting.enable = true;
|
||||
powerManagement.enable = true;
|
||||
powerManagement.finegrained = false;
|
||||
open = false;
|
||||
nvidiaSettings = true;
|
||||
package = config.boot.kernelPackages.nvidiaPackages.beta;
|
||||
};
|
||||
|
||||
hardware.opentabletdriver.enable = true;
|
||||
services.ratbagd.enable = true;
|
||||
}
|
570
home/code.nix
Normal file
570
home/code.nix
Normal file
|
@ -0,0 +1,570 @@
|
|||
{
|
||||
"[typst]" = {
|
||||
"editor.wordSeparators" = "`~!@#$%^&*()=+[{]}\\|;:'\",.<>/?";
|
||||
};
|
||||
"[typst-code]" = {
|
||||
"editor.wordSeparators" = "`~!@#$%^&*()=+[{]}\\|;:'\",.<>/?";
|
||||
};
|
||||
"chat.commandCenter.enabled" = false;
|
||||
"svelte.enable-ts-plugin" = true;
|
||||
# "tinymist.exportPdf" = "onType";
|
||||
"telemetry.enableTelemetry" = false;
|
||||
"telemetry.telemetryLevel"= "off";
|
||||
"editor.fontFamily"= "'Victor Mono', Consolas, 'Courier New', monospace";
|
||||
"editor.fontSize"= 14;
|
||||
"editor.fontLigatures"= true;
|
||||
"window.titleBarStyle" = "custom";
|
||||
"workbench.colorCustomizations"= {
|
||||
"tab.activeBackground"= "#444444";
|
||||
"tab.activeBorder"= "#ffffff";
|
||||
"tab.activeBorderTop"="#ffffff";
|
||||
"tab.border"= "#ffffff";
|
||||
"titleBar.border"= "#ffffff";
|
||||
"titleBar.activeBackground"= "#000000";
|
||||
"activityBar.border"= "#ffffff";
|
||||
"activityBar.background"= "#000000";
|
||||
"editor.background"= "#000000";
|
||||
"statusBar.border"= "#ffffff";
|
||||
"statusBar.background"= "#333333";
|
||||
"statusBarItem.remoteBackground"= "#000000";
|
||||
"statusBar.noFolderBackground"= "#000000";
|
||||
"sideBar.background"= "#000000";
|
||||
"sideBar.border"= "#ffffff";
|
||||
"menu.background"= "#000000";
|
||||
"menu.border"= "#ffffff";
|
||||
"editorGroupHeader.border"= "#ffffff";
|
||||
"editorGroupHeader.tabsBackground"= "#000000";
|
||||
"editorGroupHeader.tabsBorder"= "#ffffff";
|
||||
"tab.inactiveBackground"= "#000000";
|
||||
"notifications.background"= "#000000";
|
||||
"notifications.border"= "#ffffff";
|
||||
"notificationCenter.border"= "#ffffff";
|
||||
"notificationToast.border"= "#ffffff";
|
||||
};
|
||||
"terminal.integrated.fontSize"= 14;
|
||||
"security.workspace.trust.untrustedFiles"= "open";
|
||||
"editor.tokenColorCustomizations"= {
|
||||
"textMateRules"= [
|
||||
{
|
||||
"name"= "Comment";
|
||||
"scope"= [
|
||||
"comment"
|
||||
"punctuation.definition.comment"
|
||||
];
|
||||
"settings"= {
|
||||
"foreground"= "#A7ADBA";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "String";
|
||||
"scope"= "string";
|
||||
"settings"= {
|
||||
"foreground"= "#99c794";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "Punctuation";
|
||||
"scope"= "punctuation.definition";
|
||||
"settings"= {
|
||||
"foreground"= "#5fb3b3";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "Number";
|
||||
"scope"= "constant.numeric";
|
||||
"settings"= {
|
||||
"foreground"= "#f9ae58";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "Built-in constant";
|
||||
"scope"= "constant.language";
|
||||
"settings"= {
|
||||
"fontStyle"= "italic";
|
||||
"foreground"= "#ec5f67";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "User-defined constant";
|
||||
"scope"= [
|
||||
"constant.character"
|
||||
"constant.other"
|
||||
];
|
||||
"settings"= {
|
||||
"foreground"= "#c594c5";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "Member Variable";
|
||||
"scope"= "variable.member";
|
||||
"settings"= {
|
||||
"foreground"= "#ec5f67";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "Keyword";
|
||||
"scope"= [
|
||||
"keyword - keyword.operator"
|
||||
"keyword.operator.word"
|
||||
"keyword.control"
|
||||
];
|
||||
"settings"= {
|
||||
"foreground"= "#c594c5";
|
||||
# "fontStyle"= "italic"
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "Embedded Line Template Line JS";
|
||||
"scope"= "string.template.js meta.template.expression.js meta.embedded.line.js";
|
||||
"settings"= {
|
||||
"foreground"= "#d8dee9";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "Operators";
|
||||
"scope"= "keyword.operator";
|
||||
"settings"= {
|
||||
"foreground"= "#f97b58";
|
||||
};
|
||||
}
|
||||
{
|
||||
"scope"= [
|
||||
"keyword.operator.new"
|
||||
"keyword.operator.expression"
|
||||
"keyword.operator.cast"
|
||||
"keyword.operator.sizeof"
|
||||
"keyword.operator.logical.python"
|
||||
];
|
||||
"settings"= {
|
||||
"fontStyle"= "italic";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "Punctuation";
|
||||
"scope"= [
|
||||
"punctuation.separator"
|
||||
"punctuation.terminator"
|
||||
];
|
||||
"settings"= {
|
||||
"foreground"= "#A7ADBA";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "Punctuation";
|
||||
"scope"= "punctuation.section";
|
||||
"settings"= {
|
||||
"foreground"= "#ffffff";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "String interpolation";
|
||||
"scope"= [
|
||||
"punctuation.definition.template-expression.begin"
|
||||
"punctuation.definition.template-expression.end"
|
||||
"punctuation.section.embedded"
|
||||
];
|
||||
"settings"= {
|
||||
# "fontStyle"= "italic"
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "Accessor";
|
||||
"scope"= "punctuation.accessor";
|
||||
"settings"= {
|
||||
"foreground"= "#A7ADBA";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "Annotation Punctuation";
|
||||
"scope"= "punctuation.definition.annotation";
|
||||
"settings"= {
|
||||
"foreground"= "#5fb3b3";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "JavaScript Dollar";
|
||||
"scope"= [
|
||||
"variable.other.dollar.only.js"
|
||||
"variable.other.object.dollar.only.js"
|
||||
"variable.type.dollar.only.js"
|
||||
"support.class.dollar.only.js"
|
||||
];
|
||||
"settings"= {
|
||||
"foreground"= "#5fb3b3";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "this.self";
|
||||
"scope"= "variable.language";
|
||||
"settings"= {
|
||||
"fontStyle"= "italic";
|
||||
"foreground"= "#ff5874";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "Storage";
|
||||
"scope"= "storage";
|
||||
"settings"= {
|
||||
"foreground"= "#ec5f67";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "Storage type";
|
||||
"scope"= "storage.type";
|
||||
"settings"= {
|
||||
"foreground"= "#c594c5";
|
||||
# "fontStyle"= "italic";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "Storage type";
|
||||
"scope"= "storage.type.function.arrow";
|
||||
"settings"= {
|
||||
"fontStyle"= "";
|
||||
};
|
||||
}
|
||||
{
|
||||
"scope"= "storage.modifier";
|
||||
"settings"= {
|
||||
"fontStyle"= "italic";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "Entity name";
|
||||
"scope"= "entity.name.function";
|
||||
"settings"= {
|
||||
"foreground"= "#5fb3b3";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "Object Property JS";
|
||||
"scope"= "meta.object-literal.key.js";
|
||||
"settings"= {
|
||||
"foreground"= "#6699cc";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "Entity name";
|
||||
"scope"= "entity.name - (entity.name.section | entity.name.tag | entity.name.label)";
|
||||
"settings"= {
|
||||
"foreground"= "#f9ae58";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "Inherited class";
|
||||
"scope"= "entity.other.inherited-class";
|
||||
"settings"= {
|
||||
"fontStyle"= "italic underline";
|
||||
"foreground"= "#5fb3b3";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "Function argument";
|
||||
"scope"= "variable.parameter";
|
||||
"settings"= {
|
||||
"fontStyle"= "";
|
||||
"foreground"= "#f9ae58";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "Language variable";
|
||||
"scope"= "variable.language";
|
||||
"settings"= {
|
||||
"foreground"= "#ec5f67";
|
||||
"fontStyle"= "italic";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "Tag name";
|
||||
"scope"= "entity.name.tag";
|
||||
"settings"= {
|
||||
"fontStyle"= "";
|
||||
"foreground"= "#ec5f67";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "Tag attribute";
|
||||
"scope"= "entity.other.attribute-name";
|
||||
"settings"= {
|
||||
"foreground"= "#c594c5";
|
||||
"fontStyle"= "italic";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "Tag attribute";
|
||||
"scope"= "entity.other.attribute-name.id.css";
|
||||
"settings"= {
|
||||
"fontStyle"= "";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "Tag attribute";
|
||||
"scope"= "entity.other.attribute-name.class.css";
|
||||
"settings"= {
|
||||
"fontStyle"= "";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "Function call";
|
||||
"scope"= [
|
||||
"variable.function"
|
||||
"variable.annotation"
|
||||
];
|
||||
"settings"= {
|
||||
"fontStyle"= "";
|
||||
"foreground"= "#6699cc";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "Library function";
|
||||
"scope"= [
|
||||
"support.function"
|
||||
"support.macro"
|
||||
];
|
||||
"settings"= {
|
||||
"foreground"= "#6699cc";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "Library constant";
|
||||
"scope"= "support.constant";
|
||||
"settings"= {
|
||||
"foreground"= "#c594c5";
|
||||
"fontStyle"= "italic";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "Library class/type";
|
||||
"scope"= [
|
||||
"support.class"
|
||||
];
|
||||
"settings"= {
|
||||
"foreground"= "#6699cc";
|
||||
# "fontStyle"= "italic"
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "Invalid";
|
||||
"scope"= "invalid";
|
||||
"settings"= {
|
||||
"foreground"= "#f8f8f8";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "Invalid deprecated";
|
||||
"scope"= "invalid.deprecated";
|
||||
"settings"= {
|
||||
"foreground"= "#f8f8f8";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "YAML Key";
|
||||
"scope"= "entity.name.tag.yaml";
|
||||
"settings"= {
|
||||
"foreground"= "#5fb3b3";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "YAML String";
|
||||
"scope"= "source.yaml string.unquoted";
|
||||
"settings"= {
|
||||
"foreground"= "#D8DEE9";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "markup headings";
|
||||
"scope"= "markup.heading";
|
||||
"settings"= {
|
||||
"fontStyle"= "bold";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "markup headings";
|
||||
"scope"= "markup.heading punctuation.definition.heading";
|
||||
"settings"= {
|
||||
"foreground"= "#f97b58";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "markup h1";
|
||||
"scope"= "markup.heading.1 punctuation.definition.heading";
|
||||
"settings"= {
|
||||
"foreground"= "#ec5f67";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "markup links";
|
||||
"scope"= [
|
||||
"string.other.link"
|
||||
"markup.underline.link"
|
||||
];
|
||||
"settings"= {
|
||||
"foreground"= "#6699cc";
|
||||
};
|
||||
}
|
||||
{
|
||||
"scope"= "markup.underline";
|
||||
"settings"= {
|
||||
"fontStyle"= "underline";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "markup bold";
|
||||
"scope"= "markup.bold";
|
||||
"settings"= {
|
||||
"fontStyle"= "bold";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "markup italic";
|
||||
"scope"= "markup.italic";
|
||||
"settings"= {
|
||||
"fontStyle"= "italic";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "markup bold/italic";
|
||||
"scope"= "markup.italic markup.bold | markup.bold markup.italic";
|
||||
"settings"= {
|
||||
"fontStyle"= "bold italic";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "markup hr";
|
||||
"scope"= "punctuation.definition.thematic-break";
|
||||
"settings"= {
|
||||
"foreground"= "#f9ae58";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "markup numbered list bullet";
|
||||
"scope"= "markup.list.numbered.bullet";
|
||||
"settings"= {
|
||||
"foreground"= "#99c794";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "markup blockquote";
|
||||
"scope"= [
|
||||
"markup.quote punctuation.definition.blockquote"
|
||||
"markup.list punctuation.definition.list_item"
|
||||
];
|
||||
"settings"= {
|
||||
"foreground"= "#f9ae58";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "markup punctuation";
|
||||
"scope"= "(text punctuation.definition.italic | text punctuation.definition.bold)";
|
||||
"settings"= {
|
||||
"foreground"= "#c594c5";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "@Decorator";
|
||||
"scope"= [
|
||||
"meta.decorator punctuation.decorator"
|
||||
];
|
||||
"settings"= {
|
||||
"fontStyle"= "italic";
|
||||
};
|
||||
}
|
||||
{
|
||||
"scope"= [
|
||||
"punctuation.definition.comment"
|
||||
"comment"
|
||||
];
|
||||
"settings"= {
|
||||
"foreground"= "#8f97a8";
|
||||
"fontStyle"= "italic";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "diff.header";
|
||||
"scope"= [
|
||||
"meta.diff"
|
||||
"meta.diff.header"
|
||||
];
|
||||
"settings"= {
|
||||
"foreground"= "#c594c5";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "diff.deleted";
|
||||
"scope"= "markup.deleted";
|
||||
"settings"= {
|
||||
"foreground"= "#ec5f67";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "diff.inserted";
|
||||
"scope"= "markup.inserted";
|
||||
"settings"= {
|
||||
"foreground"= "#99c794";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "diff.changed";
|
||||
"scope"= "markup.changed";
|
||||
"settings"= {
|
||||
"foreground"= "#f9ae58";
|
||||
};
|
||||
}
|
||||
{
|
||||
"name"= "CSS Properties";
|
||||
"scope"= "support.type.property-name";
|
||||
"settings"= {
|
||||
"foreground"= "#D8DEE9";
|
||||
};
|
||||
}
|
||||
{
|
||||
"scope"= "constant.numeric.line-number.match";
|
||||
"settings"= {
|
||||
"foreground"= "#ec5f67";
|
||||
};
|
||||
}
|
||||
{
|
||||
"scope"= "message.error";
|
||||
"settings"= {
|
||||
"foreground"= "#ec5f67";
|
||||
};
|
||||
}
|
||||
{
|
||||
"scope"= "token.info-token";
|
||||
"settings"= {
|
||||
"foreground"= "#6796e6";
|
||||
};
|
||||
}
|
||||
{
|
||||
"scope"= "token.warn-token";
|
||||
"settings"= {
|
||||
"foreground"= "#cd9731";
|
||||
};
|
||||
}
|
||||
{
|
||||
"scope"= "token.error-token";
|
||||
"settings"= {
|
||||
"foreground"= "#f44747";
|
||||
};
|
||||
}
|
||||
{
|
||||
"scope"= "token.debug-token";
|
||||
"settings"= {
|
||||
"foreground"= "#b267e6";
|
||||
};
|
||||
}
|
||||
{
|
||||
"scope"= "emphasis";
|
||||
"settings"= {
|
||||
"fontStyle"= "italic";
|
||||
};
|
||||
}
|
||||
{
|
||||
"scope"= "strong";
|
||||
"settings"= {
|
||||
"fontStyle"= "bold";
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
132
home/lach.nix
Normal file
132
home/lach.nix
Normal file
|
@ -0,0 +1,132 @@
|
|||
{ config, pkgs, lib, spicetify-nix, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./spicetify
|
||||
];
|
||||
|
||||
home.username = "lach";
|
||||
home.homeDirectory = "/home/lach";
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
nixpkgs.overlays = [
|
||||
(import ../im-overlays.nix)
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
xmousepasteblock
|
||||
imagemagick
|
||||
fastfetch
|
||||
ffmpeg-full
|
||||
fsearch
|
||||
gimp
|
||||
inkscape-with-extensions
|
||||
# jdk
|
||||
krita
|
||||
mpv
|
||||
nomacs
|
||||
vlc
|
||||
obs-studio
|
||||
onedrive
|
||||
onedrivegui
|
||||
p7zip
|
||||
pandoc
|
||||
piper
|
||||
# prismlauncher
|
||||
qq
|
||||
smplayer
|
||||
typst
|
||||
ungoogled-chromium
|
||||
yt-dlp
|
||||
# davinci-resolve
|
||||
reaper
|
||||
|
||||
texlive.combined.scheme-medium
|
||||
|
||||
osu-lazer-bin
|
||||
|
||||
# hydrapaper
|
||||
# gnome-tweaks
|
||||
# mission-center
|
||||
# resources
|
||||
qbittorrent
|
||||
];
|
||||
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
programs.emacs = {
|
||||
enable = true;
|
||||
package = pkgs.emacs30-pgtk;
|
||||
};
|
||||
|
||||
programs.zed-editor = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
programs.vscode = {
|
||||
enable = true;
|
||||
package = pkgs.vscode.fhs;
|
||||
enableUpdateCheck = false;
|
||||
mutableExtensionsDir = false;
|
||||
extensions = with pkgs.vscode-extensions; [
|
||||
bbenoist.nix
|
||||
myriad-dreamin.tinymist
|
||||
ms-vscode.cpptools
|
||||
ms-vscode.cpptools-extension-pack
|
||||
ms-python.python
|
||||
ms-vscode-remote.remote-ssh
|
||||
ms-vscode-remote.remote-ssh-edit
|
||||
james-yu.latex-workshop
|
||||
# ms-vscode.cmake-tools
|
||||
github.vscode-github-actions
|
||||
charliermarsh.ruff
|
||||
ziglang.vscode-zig
|
||||
svelte.svelte-vscode
|
||||
ms-python.debugpy
|
||||
# vue.volar
|
||||
bradlc.vscode-tailwindcss
|
||||
rust-lang.rust-analyzer
|
||||
] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
|
||||
{
|
||||
name = "vs-code-extension";
|
||||
publisher = "inlang";
|
||||
version = "1.48.3";
|
||||
sha256 = "sha256-4/Jday2YcP5yVq5OE4xZXY5Go8/oyTPhJphS423pEUA=";
|
||||
}
|
||||
];
|
||||
userSettings = import ./code.nix;
|
||||
};
|
||||
|
||||
programs.ghostty = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
settings = {
|
||||
font-family = "Victor Mono";
|
||||
background-opacity = .9;
|
||||
background-blur = true;
|
||||
theme = "Adwaita Dark";
|
||||
};
|
||||
};
|
||||
|
||||
i18n.inputMethod = {
|
||||
enabled = "fcitx5";
|
||||
fcitx5.addons = with pkgs; [
|
||||
kdePackages.fcitx5-configtool
|
||||
fcitx5-mozc
|
||||
fcitx5-gtk
|
||||
kdePackages.fcitx5-qt
|
||||
fcitx5-lua
|
||||
fcitx5-rime
|
||||
];
|
||||
};
|
||||
|
||||
home.stateVersion = "25.05";
|
||||
|
||||
programs.home-manager.enable = true;
|
||||
}
|
29
home/spicetify/default.nix
Normal file
29
home/spicetify/default.nix
Normal file
|
@ -0,0 +1,29 @@
|
|||
{ pkgs, config, lib, spicetify-nix, ... }:
|
||||
let
|
||||
spicePkgs = spicetify-nix.legacyPackages.${pkgs.system};
|
||||
in
|
||||
{
|
||||
imports = [ spicetify-nix.homeManagerModules.default ];
|
||||
programs.spicetify = {
|
||||
enable = true;
|
||||
|
||||
enabledExtensions = with spicePkgs.extensions; [
|
||||
playlistIcons
|
||||
history
|
||||
betterGenres
|
||||
adblock
|
||||
savePlaylists
|
||||
volumePercentage
|
||||
copyToClipboard
|
||||
songStats
|
||||
hidePodcasts
|
||||
fullAppDisplay
|
||||
groupSession
|
||||
fullAlbumDate
|
||||
];
|
||||
enabledCustomApps = with spicePkgs.apps; [
|
||||
historyInSidebar
|
||||
];
|
||||
};
|
||||
}
|
||||
|
10
im-overlays.nix
Normal file
10
im-overlays.nix
Normal file
|
@ -0,0 +1,10 @@
|
|||
final: prev: {
|
||||
vesktop = prev.vesktop.overrideAttrs (oldAttrs: {
|
||||
postFixup = builtins.replaceStrings [ "app.asar" ] [ "app.asar --set GTK_IM_MODULE fcitx" ] oldAttrs.postFixup; # this sucks
|
||||
});
|
||||
qq = prev.qq.overrideAttrs (oldAttrs: {
|
||||
postInstall = (oldAttrs.postInstall or "") + ''
|
||||
wrapProgram $out/bin/qq --set GTK_IM_MODULE fcitx
|
||||
'';
|
||||
});
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue