move some stuff around
This commit is contained in:
400
home-manager/flake.lock
generated
Normal file
400
home-manager/flake.lock
generated
Normal file
@@ -0,0 +1,400 @@
|
||||
{
|
||||
"nodes": {
|
||||
"agenix": {
|
||||
"inputs": {
|
||||
"darwin": "darwin",
|
||||
"home-manager": [
|
||||
"home-manager"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1723293904,
|
||||
"narHash": "sha256-b+uqzj+Wa6xgMS9aNbX4I+sXeb5biPDi39VgvSFqFvU=",
|
||||
"owner": "ryantm",
|
||||
"repo": "agenix",
|
||||
"rev": "f6291c5935fdc4e0bef208cfc0dcab7e3f7a1c41",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "ryantm",
|
||||
"repo": "agenix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"binsider": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1727190706,
|
||||
"narHash": "sha256-CUfCWwlZebQyZAQ5bmfmQJhOvc61HgExe1R/U202g2Q=",
|
||||
"owner": "orhun",
|
||||
"repo": "binsider",
|
||||
"rev": "ec8dac79bf7f0d23257a521fc62b2888ebf55b86",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "orhun",
|
||||
"repo": "binsider",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"darwin": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"agenix",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1700795494,
|
||||
"narHash": "sha256-gzGLZSiOhf155FW7262kdHo2YDeugp3VuIFb4/GGng0=",
|
||||
"owner": "lnl7",
|
||||
"repo": "nix-darwin",
|
||||
"rev": "4b9b83d5a92e8c1fbfd8eb27eda375908c11ec4d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "lnl7",
|
||||
"ref": "master",
|
||||
"repo": "nix-darwin",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"firefox-mod-theme": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1727035403,
|
||||
"narHash": "sha256-xkVZOZRGrL5YKEXb0R701F71vGJ+K5BFpugtqPwf4XQ=",
|
||||
"owner": "datguypiko",
|
||||
"repo": "Firefox-Mod-Blur",
|
||||
"rev": "694566afa267fe6d5eb5c97a87e116ba794ea293",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "datguypiko",
|
||||
"repo": "Firefox-Mod-Blur",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1726153070,
|
||||
"narHash": "sha256-HO4zgY0ekfwO5bX0QH/3kJ/h4KvUDFZg8YpkNwIbg1U=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "bcef6817a8b2aa20a5a6dbb19b43e63c5bf8619a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"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": 1727383923,
|
||||
"narHash": "sha256-4/vacp3CwdGoPf8U4e/N8OsGYtO09WTcQK5FqYfJbKs=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "ffe2d07e771580a005e675108212597e5b367d2d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"niri": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts",
|
||||
"niri-stable": "niri-stable",
|
||||
"niri-unstable": "niri-unstable",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"nixpkgs-stable": "nixpkgs-stable",
|
||||
"xwayland-satellite-stable": "xwayland-satellite-stable",
|
||||
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1727332193,
|
||||
"narHash": "sha256-XnjG+n42JjrIj2Ts33Xa+Udg1QDp9N8FHYbvAkYL9qg=",
|
||||
"owner": "sodiboo",
|
||||
"repo": "niri-flake",
|
||||
"rev": "524000b81ba52f9d5a7b2ac78504468014121ebe",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "sodiboo",
|
||||
"repo": "niri-flake",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"niri-stable": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1726304152,
|
||||
"narHash": "sha256-4YDrKMwXGVOBkeaISbxqf24rLuHvO98TnqxWYfgiSeg=",
|
||||
"owner": "YaLTeR",
|
||||
"repo": "niri",
|
||||
"rev": "6a48728ffb1e638839b07f9ab2f06b2adb41dc61",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "YaLTeR",
|
||||
"ref": "v0.1.9",
|
||||
"repo": "niri",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"niri-unstable": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1726412705,
|
||||
"narHash": "sha256-qRqGbvTpGRn3QhvjOyX0Sn/qPT1bLQUSSHz1vlW/7HE=",
|
||||
"owner": "YaLTeR",
|
||||
"repo": "niri",
|
||||
"rev": "6ee5b5afa784c76b1c31c371b59177136e558fa6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "YaLTeR",
|
||||
"repo": "niri",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1727122398,
|
||||
"narHash": "sha256-o8VBeCWHBxGd4kVMceIayf5GApqTavJbTa44Xcg5Rrk=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "30439d93eb8b19861ccbe3e581abf97bdc91b093",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-lib": {
|
||||
"locked": {
|
||||
"lastModified": 1725233747,
|
||||
"narHash": "sha256-Ss8QWLXdr2JCBPcYChJhz4xJm+h/xjl4G0c0XlP6a74=",
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/NixOS/nixpkgs/archive/356624c12086a18f2ea2825fed34523d60ccc4e3.tar.gz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://github.com/NixOS/nixpkgs/archive/356624c12086a18f2ea2825fed34523d60ccc4e3.tar.gz"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1727264057,
|
||||
"narHash": "sha256-KQPI8CTTnB9CrJ7LrmLC4VWbKZfljEPBXOFGZFRpxao=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "759537f06e6999e141588ff1c9be7f3a5c060106",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-24.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"protontricks": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1722530921,
|
||||
"narHash": "sha256-t794WEMJx/JNX3gTMHfgquFWB7yXkleW07+QURm1NPM=",
|
||||
"owner": "Matoking",
|
||||
"repo": "protontricks",
|
||||
"rev": "f7b1fa33b0438dbd72f7222703f8442e40edc510",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Matoking",
|
||||
"ref": "appinfo_v29",
|
||||
"repo": "protontricks",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"agenix": "agenix",
|
||||
"binsider": "binsider",
|
||||
"firefox-mod-theme": "firefox-mod-theme",
|
||||
"home-manager": "home-manager",
|
||||
"niri": "niri",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"protontricks": "protontricks",
|
||||
"rust-overlay": "rust-overlay",
|
||||
"vdf-patch": "vdf-patch",
|
||||
"zen-browser": "zen-browser"
|
||||
}
|
||||
},
|
||||
"rust-overlay": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1727404165,
|
||||
"narHash": "sha256-kZCiYpQJBZ3kL9QymS88mCxpQwqo8KqvZeHk6LATuY8=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "76f0a61e733259e1034dd6523e039d04932ffefc",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"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"
|
||||
}
|
||||
},
|
||||
"vdf-patch": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1719784100,
|
||||
"narHash": "sha256-OPonFrYrEFYtx0T2hvSYXl/idsm0iDPwqlnm1KbTPIo=",
|
||||
"owner": "Matoking",
|
||||
"repo": "vdf",
|
||||
"rev": "981cad270c2558aeb8eccaf42cfcf9fabbbed199",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Matoking",
|
||||
"ref": "support_new_bvdf",
|
||||
"repo": "vdf",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"xwayland-satellite-stable": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1718165778,
|
||||
"narHash": "sha256-dwF9nI54a6Fo9XU5s4qmvMXSgCid3YQVGxch00qEMvI=",
|
||||
"owner": "Supreeeme",
|
||||
"repo": "xwayland-satellite",
|
||||
"rev": "b6d281967cb0b7bf1dfdb8d0f597b517dc4aa5c5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Supreeeme",
|
||||
"ref": "v0.4",
|
||||
"repo": "xwayland-satellite",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"xwayland-satellite-unstable": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1726378112,
|
||||
"narHash": "sha256-OANPb73V/RQDqtpIcbzeJ93KuOHKFQv+1xXC44Ut7tY=",
|
||||
"owner": "Supreeeme",
|
||||
"repo": "xwayland-satellite",
|
||||
"rev": "b962a0f33b503aa39c9cf6919f488b664e5b79b4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Supreeeme",
|
||||
"repo": "xwayland-satellite",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"zen-browser": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1727287465,
|
||||
"narHash": "sha256-XQAf5M593WmxgaXagtkci/H9DA3jSVx1TJk6F3X5VQo=",
|
||||
"owner": "MarceColl",
|
||||
"repo": "zen-browser-flake",
|
||||
"rev": "96f1b5d80bf7360cb77c9b521f388324f18383a0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "MarceColl",
|
||||
"repo": "zen-browser-flake",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
||||
103
home-manager/flake.nix
Normal file
103
home-manager/flake.nix
Normal file
@@ -0,0 +1,103 @@
|
||||
{
|
||||
description = "My nixOS flake for home-manager";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
niri = {
|
||||
url = "github:sodiboo/niri-flake";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
agenix = {
|
||||
url = "github:ryantm/agenix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
inputs.home-manager.follows = "home-manager";
|
||||
};
|
||||
|
||||
rust-overlay = {
|
||||
url = "github:oxalica/rust-overlay";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
binsider = {
|
||||
url = "github:orhun/binsider";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
zen-browser = {
|
||||
url = "github:MarceColl/zen-browser-flake";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
# sources to patch protontricks as it doesn't work with latest steam beta
|
||||
# https://github.com/Matoking/protontricks/issues/304#issuecomment-2280920826
|
||||
protontricks = {
|
||||
url = "github:Matoking/protontricks/appinfo_v29";
|
||||
flake = false;
|
||||
};
|
||||
|
||||
vdf-patch = {
|
||||
url = "github:Matoking/vdf/support_new_bvdf";
|
||||
flake = false;
|
||||
};
|
||||
|
||||
firefox-mod-theme = {
|
||||
url = "github:datguypiko/Firefox-Mod-Blur";
|
||||
flake = false;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
outputs =
|
||||
{
|
||||
self,
|
||||
nixpkgs,
|
||||
home-manager,
|
||||
niri,
|
||||
rust-overlay,
|
||||
agenix,
|
||||
...
|
||||
}@inputs:
|
||||
let
|
||||
username = "primary";
|
||||
homeDirectory = "/home/${username}";
|
||||
hostname = nixpkgs.lib.strings.removeSuffix "\n" (builtins.readFile /etc/hostname);
|
||||
pkgs = import nixpkgs { };
|
||||
in
|
||||
{
|
||||
|
||||
homeConfigurations.${username} = home-manager.lib.homeManagerConfiguration {
|
||||
inherit pkgs;
|
||||
extraSpecialArgs = {
|
||||
inherit inputs username homeDirectory;
|
||||
};
|
||||
modules = [
|
||||
./system-${hostname}.nix
|
||||
niri.homeModules.config
|
||||
agenix.homeManagerModules.age
|
||||
|
||||
# add declarative rust modules
|
||||
(
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
nixpkgs.overlays = [
|
||||
rust-overlay.overlays.default
|
||||
niri.overlays.niri
|
||||
];
|
||||
|
||||
# home-manager stuff
|
||||
home = {
|
||||
inherit username homeDirectory;
|
||||
};
|
||||
}
|
||||
)
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
163
home-manager/gui.nix
Normal file
163
home-manager/gui.nix
Normal file
@@ -0,0 +1,163 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
./no-gui.nix
|
||||
# ./progs/librewolf.nix
|
||||
./progs/gpt4all/gpt4all.nix
|
||||
];
|
||||
|
||||
nixpkgs.config.allowUnfreePredicate =
|
||||
pkg:
|
||||
builtins.elem (lib.getName pkg) [
|
||||
"apple_cursor"
|
||||
"factorio-alpha"
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
#calculator
|
||||
gnome-calculator
|
||||
|
||||
#productivity stuff
|
||||
libreoffice
|
||||
hunspell # spellcheck
|
||||
hunspellDicts.en_US # spellcheck dictionary
|
||||
|
||||
#video and audio downloading
|
||||
parabolic
|
||||
|
||||
#soulseek client
|
||||
nicotine-plus
|
||||
|
||||
#dark web browsing deep web browsing
|
||||
tor-browser
|
||||
|
||||
#audio editing
|
||||
audacity
|
||||
|
||||
#fonts
|
||||
noto-fonts
|
||||
noto-fonts-emoji
|
||||
liberation_ttf
|
||||
nerdfonts
|
||||
jetbrains-mono
|
||||
|
||||
#for ebook reading
|
||||
foliate
|
||||
|
||||
#audio mixer (pavucontrol but for pipewire)
|
||||
pwvucontrol
|
||||
|
||||
#minecraft launcher
|
||||
prismlauncher
|
||||
|
||||
mpv
|
||||
mumble
|
||||
system76-keyboard-configurator
|
||||
mission-center
|
||||
|
||||
#jellyfin
|
||||
finamp # music player
|
||||
delfin # jellyfin client
|
||||
|
||||
signal-desktop
|
||||
|
||||
#accounting
|
||||
gnucash
|
||||
|
||||
imagemagick
|
||||
inkscape
|
||||
nomacs
|
||||
|
||||
nautilus
|
||||
|
||||
lrcget
|
||||
|
||||
#openstreetmap contributing
|
||||
josm
|
||||
|
||||
gparted
|
||||
gnome-disk-utility
|
||||
|
||||
#small nicities
|
||||
wl-clipboard # wl-copy & wl-paste
|
||||
libnotify # notifications library
|
||||
xdg-utils # xdg utils
|
||||
|
||||
puddletag
|
||||
|
||||
inputs.zen-browser.packages."${pkgs.system}".specific
|
||||
|
||||
(factorio.override (import ./secrets/factorio.nix))
|
||||
];
|
||||
|
||||
# make chromium-based stuff use wayland
|
||||
home.file.".config/chromium-flags.conf".text = "--ozone-platform-hint=auto";
|
||||
|
||||
#dark mode
|
||||
dconf.settings = {
|
||||
"org/gnome/desktop/interface" = {
|
||||
color-scheme = "prefer-dark";
|
||||
};
|
||||
};
|
||||
|
||||
home.sessionVariables = {
|
||||
TERMINAL = "alacritty";
|
||||
BROWSER = "zen";
|
||||
};
|
||||
|
||||
#Terminal emulator
|
||||
programs.alacritty = {
|
||||
enable = true;
|
||||
package = pkgs.alacritty;
|
||||
settings = import ./progs/alacritty.nix { inherit pkgs; };
|
||||
};
|
||||
|
||||
#for trezor stuff
|
||||
/*
|
||||
trezor-udev-rules #trezor udev rules
|
||||
trezord
|
||||
trezor-suite
|
||||
monero-gui
|
||||
monero-cli
|
||||
trezorctl
|
||||
*/
|
||||
|
||||
#allow extra fonts to be detected by fontconfig
|
||||
fonts.fontconfig.enable = true;
|
||||
|
||||
#gtk application theming
|
||||
gtk = {
|
||||
enable = true;
|
||||
# make gtk3 applications look like libadwaita applications!
|
||||
theme = {
|
||||
package = pkgs.adw-gtk3;
|
||||
name = "adw-gtk3-dark";
|
||||
};
|
||||
iconTheme = {
|
||||
package = pkgs.adwaita-icon-theme;
|
||||
name = "Adwaita";
|
||||
};
|
||||
};
|
||||
|
||||
#qt application theming
|
||||
qt = {
|
||||
enable = true;
|
||||
style = {
|
||||
name = "breeze-dark";
|
||||
package = pkgs.kdePackages.breeze;
|
||||
};
|
||||
};
|
||||
|
||||
#macOS cursor!
|
||||
home.pointerCursor = {
|
||||
gtk.enable = true;
|
||||
package = pkgs.apple-cursor;
|
||||
name = "macOS";
|
||||
size = 24;
|
||||
};
|
||||
}
|
||||
197
home-manager/no-gui.nix
Normal file
197
home-manager/no-gui.nix
Normal file
@@ -0,0 +1,197 @@
|
||||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
lib,
|
||||
homeDirectory,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.stateVersion = "24.11";
|
||||
|
||||
home.packages = with pkgs; [
|
||||
#hex viewer
|
||||
hexyl
|
||||
|
||||
#rust stuff
|
||||
(rust-bin.selectLatestNightlyWith (
|
||||
toolchain:
|
||||
toolchain.default.override {
|
||||
extensions = [
|
||||
"rust-src"
|
||||
"rust-analyzer"
|
||||
"clippy"
|
||||
"rustfmt"
|
||||
"rust-std"
|
||||
"cargo"
|
||||
];
|
||||
#thumbv7m-none-eabi target for stm32
|
||||
targets = [ "thumbv7m-none-eabi" ];
|
||||
}
|
||||
))
|
||||
|
||||
#find typos in code
|
||||
typos
|
||||
|
||||
#python formatter
|
||||
ruff
|
||||
|
||||
#for website generation
|
||||
hugo
|
||||
|
||||
#java development
|
||||
google-java-format # formatter
|
||||
jdk # java
|
||||
jdt-language-server # lsp server
|
||||
|
||||
#for benchmaking stuff
|
||||
hyperfine
|
||||
|
||||
#replacements for common posix tools
|
||||
eza # ls replacement
|
||||
bat # pretty `cat` clone
|
||||
delta # viewer for `git` and `diff` output
|
||||
dust # pretty `du` version
|
||||
duf # better `df` clone
|
||||
gping # `ping`... but with a graph!!
|
||||
tldr # `man` but more straight-forward and simpler
|
||||
ripgrep # grep, but written in rust, respects .gitignore, and very very fast, command is `rg`
|
||||
|
||||
#adds `sensors` command
|
||||
lm_sensors
|
||||
|
||||
#rssfeed
|
||||
newsboat
|
||||
|
||||
#HTML/CSS/JSON/ESLint language servers
|
||||
vscode-langservers-extracted
|
||||
|
||||
just
|
||||
|
||||
pfetch-rs
|
||||
waypipe
|
||||
htop
|
||||
bottom
|
||||
wget
|
||||
unzip
|
||||
mold
|
||||
gcc
|
||||
compsize
|
||||
killall
|
||||
gnumake
|
||||
|
||||
sshfs
|
||||
|
||||
#nix formatter
|
||||
nixfmt-rfc-style
|
||||
|
||||
#serial viewer
|
||||
minicom
|
||||
|
||||
#"~~matt's~~ my trace route"
|
||||
mtr
|
||||
|
||||
file
|
||||
|
||||
b3sum
|
||||
|
||||
ffmpeg-full
|
||||
|
||||
#microcontroller tooling
|
||||
probe-rs
|
||||
|
||||
(python312.withPackages (
|
||||
ps: with ps; [
|
||||
python-lsp-server # lsp
|
||||
python-lsp-ruff # ruff integration
|
||||
]
|
||||
))
|
||||
|
||||
binwalk
|
||||
|
||||
smartmontools
|
||||
|
||||
nil # nix lsp
|
||||
yaml-language-server # yaml lsp
|
||||
marksman # markdown lsp
|
||||
|
||||
#clang-format and clang-tidy
|
||||
clang-tools
|
||||
|
||||
# inputs.binsider.packages.${pkgs.system}.binsider
|
||||
|
||||
lldb
|
||||
|
||||
fio
|
||||
|
||||
age
|
||||
|
||||
git-crypt
|
||||
];
|
||||
|
||||
home.file.".cargo/config.toml".text = ''
|
||||
[target.${lib.strings.removeSuffix "-linux" pkgs.system}-unknown-linux-gnu]
|
||||
linker = "${pkgs.clang}/bin/clang"
|
||||
rustflags = ["-C", "link-arg=-fuse-ld=${pkgs.mold}/bin/mold"]
|
||||
'';
|
||||
|
||||
#default applications
|
||||
home.sessionVariables = {
|
||||
EDITOR = "hx";
|
||||
};
|
||||
|
||||
#feed reader
|
||||
programs.newsboat = {
|
||||
enable = true;
|
||||
#store rss feeds in a separate file because it's *a lot*
|
||||
urls = import ./progs/rss.nix;
|
||||
};
|
||||
|
||||
#git (self explanatory)
|
||||
programs.git = {
|
||||
enable = true;
|
||||
package = pkgs.git;
|
||||
userName = "Simon Gardling";
|
||||
userEmail = "titaniumtown@proton.me";
|
||||
|
||||
#better way to view diffs
|
||||
delta.enable = true;
|
||||
|
||||
#master -> main
|
||||
extraConfig = {
|
||||
init = {
|
||||
defaultBranch = "main";
|
||||
};
|
||||
push.autoSetupRemote = true;
|
||||
};
|
||||
|
||||
#gpg signing keys
|
||||
signing = {
|
||||
key = "9AB28AC10ECE533D";
|
||||
signByDefault = true;
|
||||
};
|
||||
};
|
||||
|
||||
age.secrets.serverpass = {
|
||||
file = ./secrets/server-password.age;
|
||||
path = "${homeDirectory}/.secrets/serverpass";
|
||||
};
|
||||
|
||||
age.secrets.gnupg = {
|
||||
file = ./secrets/my-gpg.age;
|
||||
path = "${homeDirectory}/.secrets/my-gpg.asc";
|
||||
};
|
||||
|
||||
home.activation.extractGnuPG = ''
|
||||
${pkgs.gnupg}/bin/gpg --import ${config.age.secrets.gnupg.path}
|
||||
'';
|
||||
|
||||
#fish shell!
|
||||
programs.fish = import ./progs/fish.nix { inherit pkgs; };
|
||||
|
||||
#text editor
|
||||
programs.helix = import ./progs/helix.nix { inherit pkgs; };
|
||||
|
||||
# Let Home Manager install and manage itself.
|
||||
programs.home-manager.enable = true;
|
||||
}
|
||||
124
home-manager/progs/alacritty.nix
Normal file
124
home-manager/progs/alacritty.nix
Normal file
@@ -0,0 +1,124 @@
|
||||
{ pkgs }:
|
||||
{
|
||||
#use the fish shell
|
||||
shell.program = "${pkgs.fish}/bin/fish";
|
||||
|
||||
#some programs can't handle alacritty
|
||||
env.TERM = "xterm-256color";
|
||||
|
||||
window = {
|
||||
#using a window manager, no decorations needed
|
||||
decorations = "none";
|
||||
|
||||
#semi-transparent
|
||||
opacity = 0.95;
|
||||
|
||||
#padding between the content of the terminal and the edge
|
||||
padding = {
|
||||
x = 10;
|
||||
y = 10;
|
||||
};
|
||||
|
||||
dimensions = {
|
||||
columns = 80;
|
||||
lines = 40;
|
||||
};
|
||||
};
|
||||
|
||||
scrolling = {
|
||||
history = 1000;
|
||||
multiplier = 3;
|
||||
};
|
||||
|
||||
font =
|
||||
let
|
||||
baseFont = {
|
||||
family = "JetBrains Mono Nerd Font";
|
||||
style = "Regular";
|
||||
};
|
||||
in
|
||||
{
|
||||
size = 12;
|
||||
|
||||
normal = baseFont;
|
||||
|
||||
bold = baseFont // {
|
||||
style = "Bold";
|
||||
};
|
||||
|
||||
italic = baseFont // {
|
||||
style = "Italic";
|
||||
};
|
||||
|
||||
offset.y = 0;
|
||||
glyph_offset.y = 0;
|
||||
};
|
||||
|
||||
#color scheme
|
||||
colors =
|
||||
let
|
||||
normal = {
|
||||
black = "0x1b1e28";
|
||||
red = "0xd0679d";
|
||||
green = "0x5de4c7";
|
||||
yellow = "0xfffac2";
|
||||
blue = "#435c89";
|
||||
magenta = "0xfcc5e9";
|
||||
cyan = "0xadd7ff";
|
||||
white = "0xffffff";
|
||||
};
|
||||
|
||||
bright = {
|
||||
black = "0xa6accd";
|
||||
red = normal.red;
|
||||
green = normal.green;
|
||||
yellow = normal.yellow;
|
||||
blue = normal.cyan;
|
||||
magenta = "0xfae4fc";
|
||||
cyan = "0x89ddff";
|
||||
white = normal.white;
|
||||
};
|
||||
in
|
||||
{
|
||||
inherit normal bright;
|
||||
primary = {
|
||||
background = "0x131621";
|
||||
foreground = bright.black;
|
||||
};
|
||||
|
||||
cursor = {
|
||||
text = "CellBackground";
|
||||
cursor = "CellForeground";
|
||||
};
|
||||
|
||||
search =
|
||||
let
|
||||
foreground = normal.black;
|
||||
background = normal.cyan;
|
||||
in
|
||||
{
|
||||
matches = {
|
||||
inherit foreground background;
|
||||
};
|
||||
|
||||
focused_match = {
|
||||
inherit foreground background;
|
||||
};
|
||||
};
|
||||
|
||||
selection = {
|
||||
text = "CellForeground";
|
||||
background = "0x303340";
|
||||
};
|
||||
|
||||
vi_mode_cursor = {
|
||||
text = "CellBackground";
|
||||
cursor = "CellForeground";
|
||||
};
|
||||
};
|
||||
|
||||
cursor = {
|
||||
style = "Underline";
|
||||
vi_mode_style = "Underline";
|
||||
};
|
||||
}
|
||||
46
home-manager/progs/borg.nix
Normal file
46
home-manager/progs/borg.nix
Normal file
@@ -0,0 +1,46 @@
|
||||
{ homeDirectory, borgPasswordFile }:
|
||||
{
|
||||
|
||||
home = {
|
||||
location = {
|
||||
sourceDirectories =
|
||||
# stuff in my home directory:
|
||||
(
|
||||
map (f: "${homeDirectory}/${f}") [
|
||||
".zen"
|
||||
".local/share/fish"
|
||||
".gnupg"
|
||||
".config/Signal"
|
||||
".wallpaper.png"
|
||||
".ssh"
|
||||
|
||||
"dotfiles"
|
||||
"Documents"
|
||||
"projects"
|
||||
"Pictures"
|
||||
"school"
|
||||
"justfile"
|
||||
]
|
||||
);
|
||||
|
||||
excludeHomeManagerSymlinks = true;
|
||||
repositories = [ "ssh://server-public/tank/bak/laptop" ];
|
||||
|
||||
extraConfig = {
|
||||
compression = "zstd";
|
||||
};
|
||||
};
|
||||
|
||||
retention = {
|
||||
keepHourly = 48;
|
||||
keepDaily = 30;
|
||||
keepWeekly = 26;
|
||||
keepMonthly = 24;
|
||||
keepYearly = 10;
|
||||
};
|
||||
|
||||
storage = {
|
||||
encryptionPasscommand = "cat ${borgPasswordFile}";
|
||||
};
|
||||
};
|
||||
}
|
||||
65
home-manager/progs/fish.nix
Normal file
65
home-manager/progs/fish.nix
Normal file
@@ -0,0 +1,65 @@
|
||||
{ pkgs }:
|
||||
let
|
||||
eza = "${pkgs.eza}/bin/eza --color=always --group-directories-first";
|
||||
cargo = "${pkgs.cargo}/bin/cargo";
|
||||
coreutil = "${pkgs.coreutils}/bin";
|
||||
in
|
||||
{
|
||||
enable = true;
|
||||
|
||||
interactiveShellInit = ''
|
||||
#disable greeting
|
||||
set fish_greeting
|
||||
|
||||
#fixes gnupg password entry
|
||||
export GPG_TTY=(${coreutil}/tty)
|
||||
|
||||
#pfetch on shell start (disable pkgs because of execution time)
|
||||
PF_INFO="ascii title os host kernel uptime memory editor wm" ${pkgs.pfetch-rs}/bin/pfetch
|
||||
'';
|
||||
|
||||
shellAliases = {
|
||||
c = cargo;
|
||||
cr = "${cargo} run";
|
||||
cb = "${cargo} build";
|
||||
|
||||
# I hate the red background
|
||||
run0 = "run0 --background=\"\"";
|
||||
|
||||
# from DistroTube's dot files: Changing "ls" to "eza"
|
||||
ls = "${eza} -al";
|
||||
la = "${eza} -a";
|
||||
ll = "${eza} -l";
|
||||
lt = "${eza} -aT";
|
||||
|
||||
# gets the largest files in a git repo's history
|
||||
"git-size" = ''
|
||||
${pkgs.git}/bin/git rev-list --objects --all |
|
||||
${pkgs.git}/bin/git cat-file --batch-check='%(objecttype) %(objectname) %(objectsize) %(rest)' |
|
||||
${pkgs.gnused}/bin/sed -n 's/^blob //p' |
|
||||
${coreutil}/sort --numeric-sort --key=2 |
|
||||
${coreutil}/cut -c 1-12,41- |
|
||||
${coreutil}/numfmt --field=2 --to=iec-i --suffix=B --padding=7 --round=nearest'';
|
||||
|
||||
#aliases for (I think) macos commands
|
||||
pbcopy = "${pkgs.wl-clipboard}/bin/wl-copy";
|
||||
pbpaste = "${pkgs.wl-clipboard}/bin/wl-paste";
|
||||
};
|
||||
|
||||
shellInit = ''
|
||||
fish_add_path ~/.local/bin
|
||||
fish_add_path ~/.cargo/bin
|
||||
set hydro_color_pwd 62A
|
||||
set hydro_color_error red
|
||||
set hydro_color_duration yellow
|
||||
set hydro_color_prompt green
|
||||
set hydro_color_git blue
|
||||
'';
|
||||
|
||||
plugins = [
|
||||
{
|
||||
name = "hydro";
|
||||
src = pkgs.fishPlugins.hydro.src;
|
||||
}
|
||||
];
|
||||
}
|
||||
19
home-manager/progs/gpt4all-HEAD-disable-settings-err.patch
Normal file
19
home-manager/progs/gpt4all-HEAD-disable-settings-err.patch
Normal file
@@ -0,0 +1,19 @@
|
||||
diff --git a/main.qml b/main.qml
|
||||
index 1e685385..7c747eba 100644
|
||||
--- a/main.qml
|
||||
+++ b/main.qml
|
||||
@@ -72,12 +72,14 @@ Window {
|
||||
return;
|
||||
}
|
||||
|
||||
+ /*
|
||||
// check if we have access to settings and if not show an error
|
||||
if (!hasShownSettingsAccess && !LLM.hasSettingsAccess()) {
|
||||
errorSettingsAccess.open();
|
||||
hasShownSettingsAccess = true;
|
||||
return;
|
||||
}
|
||||
+ */
|
||||
|
||||
// check for first time start of this version
|
||||
if (!hasCheckedFirstStart) {
|
||||
@@ -0,0 +1,19 @@
|
||||
diff --git a/main.qml b/main.qml
|
||||
index 1e685385..7c747eba 100644
|
||||
--- a/main.qml
|
||||
+++ b/main.qml
|
||||
@@ -72,12 +72,14 @@ Window {
|
||||
return;
|
||||
}
|
||||
|
||||
+ /*
|
||||
// check if we have access to settings and if not show an error
|
||||
if (!hasShownSettingsAccess && !LLM.hasSettingsAccess()) {
|
||||
errorSettingsAccess.open();
|
||||
hasShownSettingsAccess = true;
|
||||
return;
|
||||
}
|
||||
+ */
|
||||
|
||||
// check for first time start of this version
|
||||
if (!hasCheckedFirstStart) {
|
||||
@@ -0,0 +1,53 @@
|
||||
commit 425b33877c819dd88f3692aae37452c767371f6b
|
||||
Author: Simon Gardling <titaniumtown@proton.me>
|
||||
Date: Thu Sep 19 10:00:39 2024 -0400
|
||||
|
||||
use locally downloaded embeddings
|
||||
|
||||
diff --git a/gpt4all-chat/CMakeLists.txt b/gpt4all-chat/CMakeLists.txt
|
||||
index 900307ae..802fc31a 100644
|
||||
--- a//CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -120,6 +120,7 @@ elseif (APPLE)
|
||||
endif()
|
||||
|
||||
# Embedding model
|
||||
+#[[
|
||||
set(LOCAL_EMBEDDING_MODEL "nomic-embed-text-v1.5.f16.gguf")
|
||||
set(LOCAL_EMBEDDING_MODEL_MD5 "a5401e7f7e46ed9fcaed5b60a281d547")
|
||||
set(LOCAL_EMBEDDING_MODEL_PATH "${CMAKE_BINARY_DIR}/resources/${LOCAL_EMBEDDING_MODEL}")
|
||||
@@ -134,6 +135,7 @@ message(STATUS "Embedding model downloaded to ${LOCAL_EMBEDDING_MODEL_PATH}")
|
||||
if (APPLE)
|
||||
list(APPEND CHAT_EXE_RESOURCES "${LOCAL_EMBEDDING_MODEL_PATH}")
|
||||
endif()
|
||||
+]]
|
||||
|
||||
set(QAPPLICATION_CLASS QGuiApplication)
|
||||
add_subdirectory(deps/SingleApplication)
|
||||
@@ -348,11 +350,13 @@ if (LLMODEL_CUDA)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
+#[[
|
||||
if (NOT APPLE)
|
||||
install(FILES "${LOCAL_EMBEDDING_MODEL_PATH}"
|
||||
DESTINATION resources
|
||||
COMPONENT ${COMPONENT_NAME_MAIN})
|
||||
endif()
|
||||
+]]
|
||||
|
||||
set(CPACK_GENERATOR "IFW")
|
||||
set(CPACK_VERBATIM_VARIABLES YES)
|
||||
diff --git a/gpt4all-chat/src/embllm.cpp b/gpt4all-chat/src/embllm.cpp
|
||||
index 81b1e9e1..e3266cc7 100644
|
||||
--- a/src/embllm.cpp
|
||||
+++ b/src/embllm.cpp
|
||||
@@ -84,7 +84,7 @@ bool EmbeddingLLMWorker::loadModel()
|
||||
|
||||
QString filePath = embPathFmt.arg(QCoreApplication::applicationDirPath(), LOCAL_EMBEDDING_MODEL);
|
||||
if (!QFileInfo::exists(filePath)) {
|
||||
- qWarning() << "embllm WARNING: Local embedding model not found";
|
||||
+ qWarning() << "embllm WARNING: Local embedding model not found: " << filePath;
|
||||
return false;
|
||||
}
|
||||
|
||||
124
home-manager/progs/gpt4all/gpt4all.nix
Normal file
124
home-manager/progs/gpt4all/gpt4all.nix
Normal file
@@ -0,0 +1,124 @@
|
||||
{ pkgs, lib, ... }:
|
||||
let
|
||||
models = [
|
||||
{
|
||||
name = "Qwen2.5-14B-Instruct-Q4_K_S.gguf";
|
||||
context_length = "32768";
|
||||
gen_length = "8192";
|
||||
source = pkgs.fetchurl {
|
||||
url = "https://huggingface.co/bartowski/Qwen2.5-14B-Instruct-GGUF/resolve/main/Qwen2.5-14B-Instruct-Q4_K_S.gguf?download=true";
|
||||
sha256 = "E1CmWUhMMbTXEjIRczzA3rSrVuR8qOL8BLagw7LiyZk=";
|
||||
};
|
||||
}
|
||||
{
|
||||
name = "Qwen2.5-7B-Instruct-Q6_K_L.gguf";
|
||||
context_length = "32768";
|
||||
gen_length = "8192";
|
||||
source = pkgs.fetchurl {
|
||||
url = "https://huggingface.co/bartowski/Qwen2.5-7B-Instruct-GGUF/resolve/main/Qwen2.5-7B-Instruct-Q6_K_L.gguf?download=true";
|
||||
sha256 = "thEXN06T/UVGfzdB83jlgpG7kuTzZtz1ZUAdupAnErM=";
|
||||
};
|
||||
}
|
||||
];
|
||||
|
||||
# stolen from: https://stackoverflow.com/a/42398526
|
||||
optimizeWithFlags =
|
||||
pkg: flags:
|
||||
pkgs.lib.overrideDerivation pkg (
|
||||
old:
|
||||
let
|
||||
newflags = pkgs.lib.foldl' (acc: x: "${acc} ${x}") "" flags;
|
||||
oldflags = if (pkgs.lib.hasAttr "NIX_CFLAGS_COMPILE" old) then "${old.NIX_CFLAGS_COMPILE}" else "";
|
||||
in
|
||||
{
|
||||
NIX_CFLAGS_COMPILE = "${oldflags} ${newflags}";
|
||||
stdenv = pkgs.clangStdenv;
|
||||
}
|
||||
);
|
||||
|
||||
model_files = builtins.listToAttrs (
|
||||
map (f: {
|
||||
name = ".local/share/nomic.ai/GPT4All/${f.name}";
|
||||
value = {
|
||||
source = f.source;
|
||||
};
|
||||
}) models
|
||||
);
|
||||
|
||||
gpt4all_package = (
|
||||
optimizeWithFlags
|
||||
(pkgs.gpt4all.overrideAttrs (old: {
|
||||
# https://github.com/NixOS/nixpkgs/pull/344001 3.2.1 -> 3.3.0
|
||||
version = "3.3.0";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
fetchSubmodules = true;
|
||||
owner = "nomic-ai";
|
||||
repo = "gpt4all";
|
||||
rev = "HEAD";
|
||||
sha256 = "RDYf+VaI5pl46Cd04ADvvi4ygNfYa4fY9rTv9Ui3qUk=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./gpt4all-HEAD-embeddings-model.patch
|
||||
./gpt4all-HEAD-disable-settings-err.patch
|
||||
];
|
||||
}))
|
||||
# compile flags
|
||||
[
|
||||
"-Ofast"
|
||||
"-march=native"
|
||||
"-mtune=native"
|
||||
"-fno-protect-parens"
|
||||
"-fno-finite-math-only" # https://github.com/ggerganov/llama.cpp/pull/7154#issuecomment-2143844461
|
||||
]
|
||||
);
|
||||
|
||||
in
|
||||
{
|
||||
home.packages = [
|
||||
gpt4all_package
|
||||
];
|
||||
|
||||
home.file = lib.recursiveUpdate {
|
||||
".config/nomic.ai/GPT4All.ini".text =
|
||||
let
|
||||
system_prompt = "You are an expert AI assistant who is thoughtful and works step-by-step from first principles derive an answer to the user's prompt. For each step, provide a title that describes what you're doing in that step, along with the content. Decide if you need another step or if you're ready to provide your answer to the user, make sure to exhaust ALL POSSIBILITIES before providing a response to the user. While your reasoning is not shown to the user, it is under high levels of scrutiny to ensure high-quality reasoning. WHEN YOU DETERMINE THAT YOU ARE READY TO GIVE A FINAL ANSWER TO THE USER GIVEN YOUR REASONING AND STEP-BY-STEP WORK. ONLY TEXT WRITTEN AFTER A SECTION NAMED \"Final Answer\" WILL BE SHOWN TO THE USER. ASSUME THAT NO REASONING STEPS ARE SHOWN TO THE USER. DO NOT THINK THAT THE USER CAN SEE YOUR INTERNAL REASONING STEPS.
|
||||
USE AS MANY REASONING STEPS AS POSSIBLE. AT LEAST 3. BE AWARE OF YOUR LIMITATIONS AS AN LLM AND WHAT YOU CAN AND CANNOT DO. EXPLORE ALTERNATE ANSWERS AND CONSIDER THAT YOUR ANSWER MAY BE WRONG. IDENTIFY POSSIBLE ERRORS IN YOUR REASONING AND WHERE SUCH ERRORS MAY BE. FULLY TEST ALL OTHER POSSIBILITIES. YOU CAN BE WRONG. WHEN YOU SAY YOU ARE RE-EXAMINING, ACTUALLY RE-EXAMINE, AND USE ANOTHER APPROACH TO DO SO. DO NOT JUST SAY YOU ARE RE-EXAMINING. SHOW ALL YOUR WORK. USE AT LEAST 3 METHODS TO DERIVE THE ANSWER. USE BEST PRACTICES. WORK FROM FIRST PRINCIPLES TO CREATE YOUR ANSWER.";
|
||||
in
|
||||
''
|
||||
[General]
|
||||
chatTheme=Dark
|
||||
height=940
|
||||
suggestionMode=Off
|
||||
threadCount=8
|
||||
uniqueId=7096f2d2-448d-4272-a132-d37e77f8a781
|
||||
userDefaultModel=${(builtins.elemAt models 0).name}
|
||||
width=1472
|
||||
x=0
|
||||
y=0
|
||||
|
||||
[download]
|
||||
lastVersionStarted=${gpt4all_package.version}
|
||||
''
|
||||
+ (lib.concatStrings (
|
||||
map (model: ''
|
||||
[model-${model.name}]
|
||||
contextLength=${model.context_length}
|
||||
filename=${model.name}
|
||||
maxLength=${model.gen_length}
|
||||
promptBatchSize=256
|
||||
promptTemplate=<|im_start|>user\n%1<|im_end|>\n<|im_start|>assistant\n
|
||||
systemPrompt="<|im_start|>system\n${
|
||||
# replace newlines with the string "\n" for gpt4all to properly parse
|
||||
builtins.replaceStrings [ "\n" ] [ "\\n" ] system_prompt
|
||||
}<|im_end|>
|
||||
\n"
|
||||
'') models
|
||||
))
|
||||
+ ''
|
||||
[network]
|
||||
isActive=true
|
||||
usageStatsActive=true
|
||||
'';
|
||||
} model_files;
|
||||
}
|
||||
288
home-manager/progs/helix.nix
Normal file
288
home-manager/progs/helix.nix
Normal file
@@ -0,0 +1,288 @@
|
||||
{ pkgs }:
|
||||
{
|
||||
enable = true;
|
||||
package = pkgs.helix;
|
||||
settings = {
|
||||
theme = "my_theme";
|
||||
editor = {
|
||||
cursor-shape = {
|
||||
insert = "bar";
|
||||
normal = "block";
|
||||
select = "underline";
|
||||
};
|
||||
|
||||
file-picker = {
|
||||
hidden = false;
|
||||
};
|
||||
|
||||
#wrapping!!
|
||||
soft-wrap.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
languages = {
|
||||
language = [
|
||||
{
|
||||
name = "rust";
|
||||
auto-format = true;
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
themes = {
|
||||
#modified fleet_dark theme
|
||||
my_theme =
|
||||
let
|
||||
white = "#ffffff";
|
||||
gray-120 = "#d1d1d1";
|
||||
gray-110 = "#c2c2c2";
|
||||
gray-100 = "#a0a0a0";
|
||||
gray-90 = "#898989";
|
||||
gray-80 = "#767676";
|
||||
gray-70 = "#5d5d5d";
|
||||
gray-60 = "#484848";
|
||||
gray-50 = "#383838";
|
||||
gray-40 = "#333333";
|
||||
gray-30 = "#2d2d2d";
|
||||
gray-20 = "#292929";
|
||||
gray-15 = "#1F1F1F";
|
||||
gray-10 = "#181818";
|
||||
black = "#000000";
|
||||
blue-110 = "#6daaf7";
|
||||
blue-100 = "#4d9bf8";
|
||||
blue-90 = "#3691f9";
|
||||
blue-80 = "#1a85f6";
|
||||
blue-70 = "#0273eb";
|
||||
blue-60 = "#0c6ddd";
|
||||
blue-50 = "#195eb5";
|
||||
blue-40 = "#194176";
|
||||
blue-30 = "#163764";
|
||||
blue-20 = "#132c4f";
|
||||
blue-10 = "#0b1b32";
|
||||
red-80 = "#ec7388";
|
||||
red-70 = "#ea4b67";
|
||||
red-60 = "#d93953";
|
||||
red-50 = "#ce364d";
|
||||
red-40 = "#c03248";
|
||||
red-30 = "#a72a3f";
|
||||
red-20 = "#761b2d";
|
||||
red-10 = "#390813";
|
||||
green-50 = "#4ca988";
|
||||
green-40 = "#3ea17f";
|
||||
green-30 = "#028764";
|
||||
green-20 = "#134939";
|
||||
green-10 = "#081f19";
|
||||
yellow-60 = "#f8ab17";
|
||||
yellow-50 = "#e1971b";
|
||||
yellow-40 = "#b5791f";
|
||||
yellow-30 = "#7c511a";
|
||||
yellow-20 = "#5a3a14";
|
||||
yellow-10 = "#281806";
|
||||
purple-20 = "#c07bf3";
|
||||
purple-10 = "#b35def";
|
||||
|
||||
blue = "#87C3FF";
|
||||
blue-light = "#ADD1DE";
|
||||
coral = "#CC7C8A";
|
||||
cyan = "#82D2CE";
|
||||
cyan-dark = "#779E9E";
|
||||
lime = "#A8CC7C";
|
||||
orange = "#E09B70";
|
||||
pink = "#E394DC";
|
||||
violet = "#AF9CFF";
|
||||
yellow = "#EBC88D";
|
||||
in
|
||||
{
|
||||
"attribute" = lime;
|
||||
"type" = blue;
|
||||
"type.return" = blue-light;
|
||||
"type.parameter" = blue-light;
|
||||
"constructor" = yellow;
|
||||
"constant" = violet;
|
||||
"constant.builtin.boolean" = cyan;
|
||||
"constant.character" = yellow;
|
||||
"constant.character.escape" = cyan;
|
||||
"constant.numeric" = yellow;
|
||||
"string" = pink;
|
||||
"string.regexp" = cyan;
|
||||
"string.special" = {
|
||||
fg = yellow;
|
||||
modifiers = [ "underlined" ];
|
||||
}; # .path / .url / .symbol
|
||||
|
||||
"comment" = gray-90; # .line
|
||||
# "comment.block" = {} # .documentation
|
||||
"variable" = gray-120; # .builtin
|
||||
"variable.builtin" = {
|
||||
fg = coral;
|
||||
};
|
||||
# "variable.other" = {} # .member
|
||||
"variable.other.member" = violet;
|
||||
"label" = yellow;
|
||||
"keyword" = cyan; # .operator / .directive / .function
|
||||
"function" = yellow;
|
||||
"function.declaration" = "#EFEFEF";
|
||||
"function.macro" = lime;
|
||||
"function.builtin" = lime;
|
||||
"function.special" = lime;
|
||||
#"function.declaration.method" = { fg = "lightest", modifiers = ["bold"] } #depends on #4892
|
||||
"tag" = blue;
|
||||
"special" = lime;
|
||||
"namespace" = blue;
|
||||
|
||||
# used in theming
|
||||
# "markup" = {} # .normal / .quote / .raw
|
||||
# "markup.normal" = {} # .completion / .hover
|
||||
"markup.bold" = {
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"markup.italic" = {
|
||||
modifiers = [ "italic" ];
|
||||
};
|
||||
"markup.strikethrough" = {
|
||||
modifiers = [ "crossed_out" ];
|
||||
};
|
||||
"markup.heading" = {
|
||||
fg = cyan;
|
||||
modifiers = [ "bold" ];
|
||||
}; # .marker / .1 / .2 / .3 / .4 / .5 / .6
|
||||
"markup.list" = pink; # .unnumbered / .numbered
|
||||
"markup.list.numbered" = cyan;
|
||||
"markup.list.unnumbered" = cyan;
|
||||
# "markup.link" = "green"
|
||||
"markup.link.url" = {
|
||||
fg = pink;
|
||||
modifiers = [
|
||||
"italic"
|
||||
"underlined"
|
||||
];
|
||||
};
|
||||
"markup.link.text" = cyan;
|
||||
"markup.link.label" = purple-20;
|
||||
"markup.quote" = pink;
|
||||
"markup.raw" = pink;
|
||||
"markup.raw.inline" = cyan; # .completion / .hover
|
||||
"markup.raw.block" = "#EB83E2";
|
||||
|
||||
"diff.plus" = green-50;
|
||||
"diff.minus" = red-50;
|
||||
"diff.delta" = blue-80;
|
||||
|
||||
# ui specific
|
||||
# "ui.background" = { bg = gray-10; }; # .separator
|
||||
"ui.background" = { };
|
||||
"ui.statusline" = {
|
||||
fg = gray-120;
|
||||
bg = gray-20;
|
||||
}; # .inactive / .normal / .insert / .select
|
||||
"ui.statusline.normal" = {
|
||||
fg = gray-120;
|
||||
bg = gray-20;
|
||||
};
|
||||
"ui.statusline.inactive" = {
|
||||
fg = gray-90;
|
||||
};
|
||||
"ui.statusline.insert" = {
|
||||
fg = gray-20;
|
||||
bg = blue-90;
|
||||
};
|
||||
"ui.statusline.select" = {
|
||||
fg = gray-20;
|
||||
bg = yellow-60;
|
||||
};
|
||||
|
||||
"ui.cursor" = {
|
||||
modifiers = [ "reversed" ];
|
||||
}; # .insert / .select / .match / .primary
|
||||
"ui.cursor.match" = {
|
||||
bg = blue-30;
|
||||
}; # .insert / .select / .match / .primary
|
||||
"ui.selection" = {
|
||||
bg = gray-50;
|
||||
}; # .primary
|
||||
"ui.selection.primary" = {
|
||||
bg = blue-40;
|
||||
};
|
||||
|
||||
"ui.cursorline" = {
|
||||
bg = gray-15;
|
||||
};
|
||||
"ui.linenr" = gray-70;
|
||||
"ui.linenr.selected" = gray-110;
|
||||
|
||||
"ui.popup" = {
|
||||
fg = gray-120;
|
||||
bg = gray-20;
|
||||
}; # .info
|
||||
"ui.window" = {
|
||||
fg = gray-50;
|
||||
};
|
||||
"ui.help" = {
|
||||
fg = gray-120;
|
||||
bg = gray-20;
|
||||
};
|
||||
"ui.menu" = {
|
||||
fg = gray-120;
|
||||
bg = gray-20;
|
||||
}; # .selected
|
||||
"ui.menu.selected" = {
|
||||
fg = white;
|
||||
bg = blue-40;
|
||||
}; # .selected
|
||||
# Calculated as #ffffff with 30% opacity
|
||||
"ui.menu.scroll" = {
|
||||
fg = "#dfdfdf";
|
||||
};
|
||||
|
||||
"ui.text" = gray-120; # .focus / .info
|
||||
"ui.text.focus" = {
|
||||
fg = white;
|
||||
bg = blue-40;
|
||||
};
|
||||
|
||||
"ui.virtual" = gray-90; # .whitespace
|
||||
"ui.virtual.inlay-hint" = {
|
||||
fg = gray-70;
|
||||
};
|
||||
"ui.virtual.ruler" = {
|
||||
bg = gray-20;
|
||||
};
|
||||
|
||||
"hint" = gray-80;
|
||||
"info" = "#A366C4";
|
||||
"warning" = "#FACb66";
|
||||
"error" = "#FF5269";
|
||||
|
||||
"diagnostic.hint" = {
|
||||
underline = {
|
||||
color = gray-80;
|
||||
style = "line";
|
||||
};
|
||||
};
|
||||
"diagnostic.info" = {
|
||||
underline = {
|
||||
color = "#A366C4";
|
||||
style = "line";
|
||||
};
|
||||
};
|
||||
"diagnostic.warning" = {
|
||||
underline = {
|
||||
color = "#FACB66";
|
||||
style = "line";
|
||||
};
|
||||
};
|
||||
"diagnostic.error" = {
|
||||
underline = {
|
||||
color = "#FF5269";
|
||||
style = "line";
|
||||
};
|
||||
};
|
||||
"diagnostic.unnecessary" = {
|
||||
modifiers = [ "dim" ];
|
||||
};
|
||||
"diagnostic.deprecated" = {
|
||||
modifiers = [ "crossed_out" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
77
home-manager/progs/librewolf.nix
Normal file
77
home-manager/progs/librewolf.nix
Normal file
@@ -0,0 +1,77 @@
|
||||
{ pkgs, inputs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [ librewolf ];
|
||||
|
||||
programs.librewolf = {
|
||||
enable = true;
|
||||
settings = {
|
||||
"webgl.disabled" = false;
|
||||
"privacy.resistFingerprinting" = false;
|
||||
"privacy.clearOnShutdown.history" = false;
|
||||
"privacy.clearOnShutdown.cookies" = false;
|
||||
"network.cookie.lifetimePolicy" = 0;
|
||||
"general.useragent.compatMode.firefox" = true;
|
||||
"identity.fxaccounts.enabled" = true;
|
||||
"services.sync.prefs.sync.privacy.clearOnShutdown.cookies" = false;
|
||||
"services.sync.prefs.sync.privacy.clearOnShutdown_v2.cookiesAndStorage" = false;
|
||||
|
||||
"general.useragent.override" = "Mozilla/5.0 (X11; Linux x86_64; rv:${pkgs.firefox.version}) Gecko/20100101 Firefox/${pkgs.firefox.version}";
|
||||
|
||||
"extensions.activeThemeID" = "firefox-compact-dark@mozilla.org";
|
||||
|
||||
# For themeing
|
||||
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
|
||||
"browser.tabs.drawInTitlebar" = true;
|
||||
"svg.context-properties.content.enabled" = true;
|
||||
|
||||
#fake location, FIT (just about)
|
||||
"geo.provider.network.url" =
|
||||
"data:application/json,"
|
||||
+ builtins.toJSON {
|
||||
location = {
|
||||
lat = 28.0749;
|
||||
lng = -80.6302;
|
||||
};
|
||||
accuracy = 1.0;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
home.file =
|
||||
let
|
||||
chromeTheme = ".librewolf/tckj7njq.default-release/chrome";
|
||||
|
||||
firefoxThemeFile = file: src: {
|
||||
target = "${chromeTheme}/${file}";
|
||||
source = "${inputs.firefox-mod-theme}/${src}/${file}";
|
||||
recursive = true;
|
||||
};
|
||||
|
||||
baseThemeFile = {
|
||||
file = "";
|
||||
src = "";
|
||||
};
|
||||
|
||||
modThemeFiles = [
|
||||
{
|
||||
file = "userChrome.css";
|
||||
}
|
||||
{
|
||||
file = "userContent.css";
|
||||
}
|
||||
{
|
||||
file = "ASSETS";
|
||||
}
|
||||
];
|
||||
in
|
||||
builtins.listToAttrs (
|
||||
map (f: {
|
||||
name = "firefox-theme-${f.file}";
|
||||
value = firefoxThemeFile f.file f.src;
|
||||
}) (map (f: baseThemeFile // f) modThemeFiles)
|
||||
);
|
||||
|
||||
home.sessionVariables = {
|
||||
BROWSER = "librewolf";
|
||||
};
|
||||
}
|
||||
167
home-manager/progs/niri.nix
Normal file
167
home-manager/progs/niri.nix
Normal file
@@ -0,0 +1,167 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
homeDirectory,
|
||||
}:
|
||||
{
|
||||
prefer-no-csd = true;
|
||||
|
||||
spawn-at-startup = [
|
||||
#waybar
|
||||
{ command = [ "${pkgs.waybar}/bin/waybar" ]; }
|
||||
|
||||
#swaybg works on more than just sway (sets a wallpaper)
|
||||
{
|
||||
command = [
|
||||
"${pkgs.swaybg}/bin/swaybg"
|
||||
"-m"
|
||||
"center"
|
||||
"-i"
|
||||
"${homeDirectory}/.wallpaper.png"
|
||||
];
|
||||
}
|
||||
];
|
||||
|
||||
window-rules = [
|
||||
{ draw-border-with-background = false; }
|
||||
{
|
||||
geometry-corner-radius = {
|
||||
top-left = 10.0;
|
||||
top-right = 10.0;
|
||||
bottom-right = 10.0;
|
||||
bottom-left = 10.0;
|
||||
};
|
||||
}
|
||||
{ clip-to-geometry = true; }
|
||||
];
|
||||
|
||||
binds = with config.lib.niri.actions; {
|
||||
#application launcher
|
||||
"Mod+Space".action = spawn [
|
||||
"${pkgs.rofi-wayland}/bin/rofi"
|
||||
"-show"
|
||||
"combi"
|
||||
];
|
||||
|
||||
#open a terminal
|
||||
"Mod+T".action = spawn "${pkgs.alacritty}/bin/alacritty";
|
||||
|
||||
#lock the screen
|
||||
"Mod+X".action = spawn "${pkgs.swaylock}/bin/swaylock";
|
||||
|
||||
#screenshotting
|
||||
"Print".action = screenshot;
|
||||
"Ctrl+Print".action = screenshot-screen;
|
||||
"Alt+Print".action = screenshot-window;
|
||||
|
||||
#Volume control
|
||||
"XF86AudioRaiseVolume".action = spawn [
|
||||
"${pkgs.avizo}/bin/volumectl"
|
||||
"-u"
|
||||
"up"
|
||||
];
|
||||
"XF86AudioLowerVolume".action = spawn [
|
||||
"${pkgs.avizo}/bin/volumectl"
|
||||
"-u"
|
||||
"down"
|
||||
];
|
||||
"XF86AudioMute".action = spawn [
|
||||
"${pkgs.avizo}/bin/volumectl"
|
||||
"toggle-mute"
|
||||
];
|
||||
"XF86AudioMicMute".action = spawn [
|
||||
"${pkgs.avizo}/bin/volumectl"
|
||||
"-m"
|
||||
"toggle-mute"
|
||||
];
|
||||
|
||||
#Display Brightness control
|
||||
"XF86MonBrightnessUp".action = spawn [
|
||||
"${pkgs.avizo}/bin/lightctl"
|
||||
"up"
|
||||
];
|
||||
"XF86MonBrightnessDown".action = spawn [
|
||||
"${pkgs.avizo}/bin/lightctl"
|
||||
"down"
|
||||
];
|
||||
|
||||
#Force close a window
|
||||
"Mod+Q".action = close-window;
|
||||
|
||||
"Mod+Shift+Q".action = quit;
|
||||
|
||||
#bindings for like window management ig
|
||||
|
||||
"Mod+Left".action = focus-column-left;
|
||||
"Mod+Down".action = focus-window-down;
|
||||
"Mod+Up".action = focus-window-up;
|
||||
"Mod+Right".action = focus-column-right;
|
||||
|
||||
"Mod+H".action = focus-column-left;
|
||||
"Mod+J".action = focus-window-down;
|
||||
"Mod+K".action = focus-window-up;
|
||||
"Mod+L".action = focus-column-right;
|
||||
|
||||
"Mod+Ctrl+Left".action = move-column-left;
|
||||
"Mod+Ctrl+Down".action = move-window-down;
|
||||
"Mod+Ctrl+Up".action = move-window-up;
|
||||
"Mod+Ctrl+Right".action = move-column-right;
|
||||
|
||||
"Mod+Ctrl+H".action = move-column-left;
|
||||
"Mod+Ctrl+J".action = move-window-down;
|
||||
"Mod+Ctrl+K".action = move-window-up;
|
||||
"Mod+Ctrl+L".action = move-column-right;
|
||||
|
||||
#fine adjustments to height and width of window
|
||||
"Mod+Minus".action = set-column-width "-10%";
|
||||
"Mod+Equal".action = set-column-width "+10%";
|
||||
"Mod+Shift+Minus".action = set-window-height "-10%";
|
||||
"Mod+Shift+Equal".action = set-window-height "+10%";
|
||||
|
||||
"Mod+Home".action = focus-column-first;
|
||||
"Mod+End".action = focus-column-last;
|
||||
"Mod+Ctrl+Home".action = move-column-to-first;
|
||||
"Mod+Ctrl+End".action = move-column-to-last;
|
||||
|
||||
"Mod+Shift+Left".action = focus-monitor-left;
|
||||
"Mod+Shift+Down".action = focus-monitor-down;
|
||||
"Mod+Shift+Up".action = focus-monitor-up;
|
||||
"Mod+Shift+Right".action = focus-monitor-right;
|
||||
|
||||
"Mod+Shift+H".action = focus-monitor-left;
|
||||
"Mod+Shift+J".action = focus-monitor-down;
|
||||
"Mod+Shift+K".action = focus-monitor-up;
|
||||
"Mod+Shift+L".action = focus-monitor-right;
|
||||
|
||||
"Mod+Shift+Ctrl+Left".action = move-column-to-monitor-left;
|
||||
"Mod+Shift+Ctrl+Down".action = move-column-to-monitor-down;
|
||||
"Mod+Shift+Ctrl+Up".action = move-column-to-monitor-up;
|
||||
"Mod+Shift+Ctrl+Right".action = move-column-to-monitor-right;
|
||||
|
||||
"Mod+Shift+Ctrl+H".action = move-column-to-monitor-left;
|
||||
"Mod+Shift+Ctrl+J".action = move-column-to-monitor-down;
|
||||
"Mod+Shift+Ctrl+K".action = move-column-to-monitor-up;
|
||||
"Mod+Shift+Ctrl+L".action = move-column-to-monitor-right;
|
||||
|
||||
"Mod+Page_Down".action = focus-workspace-down;
|
||||
"Mod+Page_Up".action = focus-workspace-up;
|
||||
"Mod+U".action = focus-workspace-down;
|
||||
"Mod+I".action = focus-workspace-up;
|
||||
|
||||
#move a window up and down workspaces
|
||||
"Mod+Ctrl+Page_Down".action = move-column-to-workspace-down;
|
||||
"Mod+Ctrl+Page_Up".action = move-column-to-workspace-up;
|
||||
|
||||
"Mod+Ctrl+U".action = move-column-to-workspace-down;
|
||||
"Mod+Ctrl+I".action = move-column-to-workspace-up;
|
||||
|
||||
#does little squeeze thing into the left or right position with another window
|
||||
"Mod+BracketLeft".action = consume-or-expel-window-left;
|
||||
"Mod+BracketRight".action = consume-or-expel-window-right;
|
||||
|
||||
"Mod+R".action = switch-preset-column-width;
|
||||
"Mod+F".action = maximize-column;
|
||||
"Mod+Shift+F".action = fullscreen-window;
|
||||
"Mod+C".action = center-column;
|
||||
};
|
||||
}
|
||||
91
home-manager/progs/rss.nix
Normal file
91
home-manager/progs/rss.nix
Normal file
@@ -0,0 +1,91 @@
|
||||
[
|
||||
{
|
||||
title = "Stratechery";
|
||||
url = "https://stratechery.passport.online/feed/rss/2gi1tPZ8Ta36Tsx7rDLM5P";
|
||||
}
|
||||
|
||||
{
|
||||
title = "Factorio Blog";
|
||||
url = "https://www.factorio.com/blog/rss";
|
||||
}
|
||||
|
||||
{
|
||||
title = "Firefox Nightly News";
|
||||
url = "https://blog.nightly.mozilla.org/feed/";
|
||||
}
|
||||
|
||||
{
|
||||
title = "Servo Blog";
|
||||
url = "https://servo.org/blog/feed.xml";
|
||||
}
|
||||
|
||||
{
|
||||
title = "Alyssa Rosenzweig";
|
||||
url = "https://rosenzweig.io/feed.xml";
|
||||
}
|
||||
|
||||
{
|
||||
title = "Marc's Blog";
|
||||
url = "https://brooker.co.za/blog/rss.xml";
|
||||
}
|
||||
|
||||
{
|
||||
title = "Fabien Sanglard";
|
||||
url = "https://fabiensanglard.net/rss.xml";
|
||||
}
|
||||
|
||||
{
|
||||
title = "Xuanwo's Blog";
|
||||
url = "https://xuanwo.io/index.xml";
|
||||
}
|
||||
|
||||
{
|
||||
title = "Carlos Galdino";
|
||||
url = "https://blog.carlosgaldino.com/atom.xml";
|
||||
}
|
||||
|
||||
{
|
||||
title = "soatok";
|
||||
url = "https://soatok.blog/feed/";
|
||||
}
|
||||
|
||||
{
|
||||
title = "Jack Garbus";
|
||||
url = "https://jarbus.net/index.xml";
|
||||
}
|
||||
|
||||
{
|
||||
title = "Terence Eden";
|
||||
url = "https://shkspr.mobi/blog/feed/atom/";
|
||||
}
|
||||
|
||||
{
|
||||
title = "GioCities";
|
||||
url = "https://blog.giovanh.com/feeds/atom.xml";
|
||||
}
|
||||
|
||||
{
|
||||
title = "mcyoung";
|
||||
url = "https://mcyoung.xyz/atom.xml";
|
||||
}
|
||||
|
||||
{
|
||||
title = "Embrace the Red";
|
||||
url = "https://embracethered.com/blog/index.xml";
|
||||
}
|
||||
|
||||
{
|
||||
title = "Chips and Cheese";
|
||||
url = "https://chipsandcheese.com/feed/";
|
||||
}
|
||||
|
||||
{
|
||||
title = "System5";
|
||||
url = "https://blogsystem5.substack.com/feed";
|
||||
}
|
||||
|
||||
{
|
||||
title = "lwn";
|
||||
url = "https://lwn.net/headlines/Features";
|
||||
}
|
||||
]
|
||||
31
home-manager/progs/swaylock.nix
Normal file
31
home-manager/progs/swaylock.nix
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
color = "24273a";
|
||||
bs-hl-color = "f4dbd6";
|
||||
caps-lock-bs-hl-color = "f4dbd6";
|
||||
caps-lock-key-hl-color = "a6da95";
|
||||
inside-color = 0;
|
||||
inside-clear-color = 0;
|
||||
inside-caps-lock-color = 0;
|
||||
inside-ver-color = 0;
|
||||
inside-wrong-color = 0;
|
||||
key-hl-color = "a6da95";
|
||||
layout-bg-color = 0;
|
||||
layout-border-color = 0;
|
||||
layout-text-color = "cad3f5";
|
||||
line-color = 0;
|
||||
line-clear-color = 0;
|
||||
line-caps-lock-color = 0;
|
||||
line-ver-color = 0;
|
||||
line-wrong-color = 0;
|
||||
ring-color = "b7bdf8";
|
||||
ring-clear-color = "f4dbd6";
|
||||
ring-caps-lock-color = "f5a97f";
|
||||
ring-ver-color = "8aadf4";
|
||||
ring-wrong-color = "ee99a0";
|
||||
separator-color = 0;
|
||||
text-color = "cad3f5";
|
||||
text-clear-color = "f4dbd6";
|
||||
text-caps-lock-color = "f5a97f";
|
||||
text-ver-color = "8aadf4";
|
||||
text-wrong-color = "ee99a0";
|
||||
}
|
||||
253
home-manager/progs/waybar.nix
Normal file
253
home-manager/progs/waybar.nix
Normal file
@@ -0,0 +1,253 @@
|
||||
{ pkgs }:
|
||||
{
|
||||
enable = true;
|
||||
settings.mainBar = {
|
||||
layer = "top";
|
||||
position = "top";
|
||||
# mod = "dock";
|
||||
# exclusive = true;
|
||||
# gtk-layer-shell = true;
|
||||
margin-bottom = -1;
|
||||
# passthrough = false;
|
||||
height = 32;
|
||||
modules-left =
|
||||
[
|
||||
];
|
||||
modules-center = [ "clock" ];
|
||||
modules-right = [
|
||||
"cpu"
|
||||
"memory"
|
||||
"tray"
|
||||
"pulseaudio"
|
||||
"network"
|
||||
"battery"
|
||||
];
|
||||
cpu = {
|
||||
interval = 5;
|
||||
format = " {usage}%";
|
||||
max-length = 10;
|
||||
};
|
||||
memory = {
|
||||
interval = 10;
|
||||
format = " {percentage}%";
|
||||
max-length = 10;
|
||||
tooltip = true;
|
||||
tooltip-format = "RAM - {used:0.1f}GiB used";
|
||||
};
|
||||
tray = {
|
||||
icon-size = 18;
|
||||
spacing = 3;
|
||||
};
|
||||
clock = {
|
||||
format = " {:%R\n %d.%m.%Y}";
|
||||
tooltip-format = "<tt><small>{calendar}</small></tt>";
|
||||
calendar = {
|
||||
mode = "year";
|
||||
mode-mon-col = 3;
|
||||
weeks-pos = "right";
|
||||
on-scroll = 1;
|
||||
on-click-right = "mode";
|
||||
format = {
|
||||
months = "<span color='#ffead3'><b>{}</b></span>";
|
||||
days = "<span color='#ecc6d9'><b>{}</b></span>";
|
||||
weeks = "<span color='#99ffdd'><b>W{}</b></span>";
|
||||
weekdays = "<span color='#ffcc66'><b>{}</b></span>";
|
||||
today = "<span color='#ff6699'><b><u>{}</u></b></span>";
|
||||
};
|
||||
};
|
||||
actions = {
|
||||
on-click-right = "mode";
|
||||
on-click-forward = "tz_up";
|
||||
on-click-backward = "tz_down";
|
||||
on-scroll-up = "shift_up";
|
||||
on-scroll-down = "shift_down";
|
||||
};
|
||||
};
|
||||
network = {
|
||||
format-wifi = " {icon}";
|
||||
format-ethernet = " ";
|
||||
format-disconnected = " ";
|
||||
format-icons = [
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
];
|
||||
};
|
||||
battery = {
|
||||
states = {
|
||||
good = 95;
|
||||
warning = 30;
|
||||
critical = 20;
|
||||
};
|
||||
format = " {icon} {capacity}%";
|
||||
format-charging = " {capacity}%";
|
||||
format-plugged = " {capacity}%";
|
||||
format-alt = "{time} {icon}";
|
||||
format-icons = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
};
|
||||
# not actually pulseaudio-specific
|
||||
pulseaudio = {
|
||||
max-volume = 100;
|
||||
scroll-step = 10;
|
||||
format = "{icon}";
|
||||
tooltip-format = "{volume}%";
|
||||
format-muted = "🔇";
|
||||
format-icons = {
|
||||
default = [
|
||||
" "
|
||||
" "
|
||||
" "
|
||||
];
|
||||
};
|
||||
on-click = "${pkgs.pwvucontrol}/bin/pwvucontrol";
|
||||
};
|
||||
};
|
||||
|
||||
style = ''
|
||||
/*base background color*/
|
||||
@define-color bg_main rgba(25, 25, 25, 1.0);
|
||||
@define-color bg_main_tooltip rgba(0, 0, 0, 0.7);
|
||||
|
||||
|
||||
/*base background color of selections */
|
||||
@define-color bg_hover rgba(200, 200, 200, 0.3);
|
||||
/*base background color of active elements */
|
||||
@define-color bg_active rgba(100, 100, 100, 0.5);
|
||||
|
||||
/*base border color*/
|
||||
@define-color border_main rgba(255, 255, 255, 0.2);
|
||||
|
||||
/*text color for entries, views and content in general */
|
||||
@define-color content_main white;
|
||||
/*text color for entries that are unselected */
|
||||
@define-color content_inactive rgba(255, 255, 255, 0.25);
|
||||
|
||||
* {
|
||||
text-shadow: none;
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
font-family: "Segoe UI", "Ubuntu";
|
||||
font-weight: 600;
|
||||
font-size: 12.7px;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background: @bg_main;
|
||||
border-top: 0;
|
||||
color: @content_main;
|
||||
}
|
||||
|
||||
tooltip {
|
||||
background: @bg_main_tooltip;
|
||||
border-radius: 5px;
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
border-color: @border_main;
|
||||
}
|
||||
|
||||
tooltip label {
|
||||
color: @content_main;
|
||||
}
|
||||
|
||||
#taskbar {
|
||||
}
|
||||
|
||||
#taskbar button {
|
||||
min-width: 130px;
|
||||
border-bottom: 3px solid rgba(255, 255, 255, 0.3);
|
||||
margin-left: 2px;
|
||||
margin-right: 2px;
|
||||
padding-left: 8px;
|
||||
padding-right: 8px;
|
||||
color: white;
|
||||
transition: all 0.25s cubic-bezier(0.165, 0.84, 0.44, 1);
|
||||
}
|
||||
|
||||
#taskbar button.active {
|
||||
border-bottom: 3px solid white;
|
||||
background: @bg_active;
|
||||
}
|
||||
|
||||
#taskbar button:hover {
|
||||
border-bottom: 3px solid white;
|
||||
background: @bg_hover;
|
||||
color: @content_main;
|
||||
}
|
||||
|
||||
#cpu, #memory {
|
||||
padding:3px;
|
||||
}
|
||||
|
||||
#window {
|
||||
border-radius: 10px;
|
||||
margin-left: 20px;
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
#tray {
|
||||
margin-left: 5px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
#tray > .passive {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
#tray > .active {
|
||||
border-bottom: 3px solid white;
|
||||
}
|
||||
|
||||
#tray > .needs-attention {
|
||||
border-bottom: 3px solid @warning_color;
|
||||
}
|
||||
|
||||
#tray > widget {
|
||||
transition: all 0.25s cubic-bezier(0.165, 0.84, 0.44, 1);
|
||||
}
|
||||
|
||||
#tray > widget:hover {
|
||||
background: @bg_hover;
|
||||
}
|
||||
|
||||
#pulseaudio {
|
||||
font-family: "JetBrains Mono Nerd Font";
|
||||
padding-left: 3px;
|
||||
padding-right: 3px;
|
||||
transition: all 0.25s cubic-bezier(0.165, 0.84, 0.44, 1);
|
||||
}
|
||||
|
||||
#pulseaudio:hover {
|
||||
background: @bg_hover;
|
||||
}
|
||||
|
||||
#network {
|
||||
padding-left: 3px;
|
||||
padding-right: 3px;
|
||||
}
|
||||
|
||||
#clock {
|
||||
padding-right: 5px;
|
||||
padding-left: 5px;
|
||||
transition: all 0.25s cubic-bezier(0.165, 0.84, 0.44, 1);
|
||||
}
|
||||
|
||||
#clock:hover {
|
||||
background: @bg_hover;
|
||||
}
|
||||
'';
|
||||
}
|
||||
10
home-manager/secrets/borg-laptop-password.age
Normal file
10
home-manager/secrets/borg-laptop-password.age
Normal file
@@ -0,0 +1,10 @@
|
||||
age-encryption.org/v1
|
||||
-> ssh-ed25519 JlUYaQ 0zR1i7aaaTiNatQ64adSfLAes3mxyErq3kZUziRInVc
|
||||
A8sfonsw2iodHRFsmYbmMNAviEUFSy9mkXuq6jefki8
|
||||
-> ssh-ed25519 dHDJgQ CmnVM06YvF+mzPNF1LsHdyL1hk+d/yH3HTBcdRlX/2c
|
||||
79u1EAd+g/Cmb9TzAifO4VHqJZk5T88nP4DWfsJEuIw
|
||||
-> >=ei241-grease co`|!7_c lx{qy
|
||||
A6d8YS1s8NZojKmRVWhmJDzOOFT/AEO/IRZN0LI30QP3jImoTJ4EFDQUm4p+0IWk
|
||||
dam3RKxF7XzF6dNigGDKKeIVXcSX1SiEgHyIo0+hPm2nZbM/p1IJ6fsACbTB6Q
|
||||
--- /Za+90oVP7/fGDLBRr6s56UopJjz8f851js/htBcYWA
|
||||
6e0Y<EFBFBD><EFBFBD>T0|`H<16><><EFBFBD>>`<60>b<>.<2E> X<>G<EFBFBD><47>Xs1<73>n.<1B><>$<1D>o
|
||||
BIN
home-manager/secrets/factorio.nix
Normal file
BIN
home-manager/secrets/factorio.nix
Normal file
Binary file not shown.
BIN
home-manager/secrets/my-gpg.age
Normal file
BIN
home-manager/secrets/my-gpg.age
Normal file
Binary file not shown.
18
home-manager/secrets/secrets.nix
Normal file
18
home-manager/secrets/secrets.nix
Normal file
@@ -0,0 +1,18 @@
|
||||
let
|
||||
laptop = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO4jL6gYOunUlUtPvGdML0cpbKSsPNqQ1jit4E7U1RyH";
|
||||
desktop = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBJjT5QZ3zRDb+V6Em20EYpSEgPW5e/U+06uQGJdraxi";
|
||||
in
|
||||
(builtins.listToAttrs (
|
||||
map
|
||||
(f: {
|
||||
f.publicKeys = [
|
||||
laptop
|
||||
desktop
|
||||
];
|
||||
})
|
||||
[
|
||||
"server-password.age"
|
||||
"borg-laptop-password.age"
|
||||
"my-gpg.age"
|
||||
]
|
||||
))
|
||||
9
home-manager/secrets/server-password.age
Normal file
9
home-manager/secrets/server-password.age
Normal file
@@ -0,0 +1,9 @@
|
||||
age-encryption.org/v1
|
||||
-> ssh-ed25519 JlUYaQ u9duGBEW7wp7aG5cqd1gfB8w+MDAirki9ZVSsotqtRM
|
||||
9gyL9k29ytNJZ6Kp90309bDim1fZNqcLhPTVqs1py5s
|
||||
-> ssh-ed25519 dHDJgQ ytHA01CSY/0dD6F8XC9ilzNaivZS84PsCmr5GFWAE1o
|
||||
4jLi+spahOIExkrUyfpX8cYJFEKvWfErWskYJ2btBkw
|
||||
-> Q-grease
|
||||
n1QvV95VRYZ7CiOl6KOedEKr2L7tjTdj8aahF/DHOifCyWnc
|
||||
--- iV/7+IbpWvsgrZIs2yPwOL0Xa6AlvkIfwbDotCh7iiQ
|
||||
<EFBFBD>'<27>F<EFBFBD><46>h<EFBFBD>2<EFBFBD><32><EFBFBD>m<EFBFBD><6D>Y<EFBFBD><59>iu<69>L/D*<2A><><EFBFBD>:<3A>@<40>;f 9<>v{<7B><1C>2aǫ<61><C7AB><EFBFBD><EFBFBD>&<1A>
|
||||
183
home-manager/system-mreow.nix
Normal file
183
home-manager/system-mreow.nix
Normal file
@@ -0,0 +1,183 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
homeDirectory,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [ ./gui.nix ];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
wdisplays
|
||||
intel-gpu-tools
|
||||
swaylock
|
||||
|
||||
#manage bluetooth devices
|
||||
blueman
|
||||
|
||||
niri-unstable
|
||||
];
|
||||
|
||||
#bluetooth manager
|
||||
services.blueman-applet.enable = true;
|
||||
|
||||
#notification daemon
|
||||
services.dunst = {
|
||||
enable = true;
|
||||
package = pkgs.dunst;
|
||||
};
|
||||
|
||||
#window manager
|
||||
programs.niri = {
|
||||
package = pkgs.niri-unstable;
|
||||
settings = import ./progs/niri.nix { inherit config pkgs homeDirectory; };
|
||||
};
|
||||
|
||||
programs.swaylock = {
|
||||
enable = true;
|
||||
settings = import ./progs/swaylock.nix;
|
||||
};
|
||||
|
||||
#waybar for status bar
|
||||
programs.waybar = import ./progs/waybar.nix { inherit pkgs; };
|
||||
|
||||
#rofi for application launcher
|
||||
programs.rofi = {
|
||||
enable = true;
|
||||
package = pkgs.rofi-wayland;
|
||||
extraConfig = {
|
||||
modi = "window,drun,ssh,combi";
|
||||
combi-modi = "window,drun,ssh";
|
||||
};
|
||||
};
|
||||
|
||||
age.secrets.borg-laptop-password = {
|
||||
file = ./secrets/borg-laptop-password.age;
|
||||
path = "${homeDirectory}/.secrets/borg_bak_pass";
|
||||
};
|
||||
|
||||
#backup utility
|
||||
programs.borgmatic = {
|
||||
enable = true;
|
||||
package = pkgs.borgmatic;
|
||||
backups =
|
||||
let
|
||||
borgPasswordFile = config.age.secrets.borg-laptop-password.path;
|
||||
in
|
||||
import ./progs/borg.nix { inherit homeDirectory borgPasswordFile; };
|
||||
};
|
||||
|
||||
# https://community.frame.work/t/speakers-sound-quality/1078/83
|
||||
# Filter: ON HPQ Fc 100.0 Hz Gain 0.0 dB Q 1.0
|
||||
# Filter: ON PK Fc 150.0 Hz Gain 4.02 dB Q 3.0
|
||||
# Filter: ON PK Fc 600.0 Hz Gain -5.07 dB Q 4.000000000000008
|
||||
# Filter: ON PK Fc 1200.0 Hz Gain -3.49 dB Q 4.17
|
||||
# Filter: ON PK Fc 2000.0 Hz Gain 1.43 dB Q 4.0
|
||||
# Filter: ON PK Fc 5300.0 Hz Gain 3.84 dB Q 2.64
|
||||
# Filter: ON HSC Fc 6000.0 Hz Gain 4.02 dB Q 4.36
|
||||
# Filter: ON PK Fc 7500.0 Hz Gain -2.09 dB Q 3.0
|
||||
# Filter: ON PK Fc 8000.0 Hz Gain 2.01 dB Q 4.36
|
||||
# Filter: ON PK Fc 900.0 Hz Gain -4.12 dB Q 5.909999999999967
|
||||
home.file.".config/easyeffects/output/framework.json".text =
|
||||
let
|
||||
baseBand = {
|
||||
mode = "RLC (BT)";
|
||||
mute = false;
|
||||
solo = false;
|
||||
slope = "1x";
|
||||
type = "Bell";
|
||||
};
|
||||
|
||||
bandList = [
|
||||
{
|
||||
frequency = 100.0;
|
||||
gain = 0.0;
|
||||
q = 1.0;
|
||||
slope = "x4";
|
||||
type = "Hi-pass";
|
||||
}
|
||||
{
|
||||
frequency = 150.0;
|
||||
gain = 4.02;
|
||||
q = 3.0;
|
||||
}
|
||||
{
|
||||
frequency = 600.0;
|
||||
gain = -5.07;
|
||||
q = 4.000000000000008;
|
||||
}
|
||||
{
|
||||
frequency = 1200.0;
|
||||
gain = -3.49;
|
||||
q = 4.17;
|
||||
}
|
||||
{
|
||||
frequency = 2000.0;
|
||||
gain = 1.43;
|
||||
q = 4.0;
|
||||
}
|
||||
{
|
||||
frequency = 5300.0;
|
||||
gain = 3.84;
|
||||
q = 2.64;
|
||||
}
|
||||
{
|
||||
frequency = 6000.0;
|
||||
gain = 4.02;
|
||||
q = 4.36;
|
||||
type = "Hi-shelf";
|
||||
}
|
||||
{
|
||||
frequency = 7500.0;
|
||||
gain = -2.09;
|
||||
q = 3.0;
|
||||
}
|
||||
{
|
||||
frequency = 8000.0;
|
||||
gain = 2.01;
|
||||
q = 4.36;
|
||||
}
|
||||
{
|
||||
frequency = 900.0;
|
||||
gain = -4.12;
|
||||
q = 5.909999999999967;
|
||||
}
|
||||
];
|
||||
|
||||
bands = builtins.listToAttrs (
|
||||
map (f: {
|
||||
name = "band${toString f.snd}";
|
||||
value = baseBand // f.fst;
|
||||
}) (lib.lists.zipLists bandList (lib.range 0 (lib.length (bandList))))
|
||||
);
|
||||
|
||||
in
|
||||
builtins.toJSON {
|
||||
output = {
|
||||
blocklist = [ ];
|
||||
equalizer = {
|
||||
balance = 0.0;
|
||||
bypass = false;
|
||||
input-gain = 0.0;
|
||||
left = bands;
|
||||
right = bands;
|
||||
mode = "IIR";
|
||||
num-bands = 10;
|
||||
output-gain = -1.5;
|
||||
pitch-left = 0.0;
|
||||
pitch-right = 0.0;
|
||||
split-channels = false;
|
||||
};
|
||||
plugins_order = [
|
||||
"equalizer"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
services.easyeffects = {
|
||||
enable = true;
|
||||
package = pkgs.easyeffects;
|
||||
preset = "framework";
|
||||
};
|
||||
}
|
||||
45
home-manager/system-nixos.nix
Normal file
45
home-manager/system-nixos.nix
Normal file
@@ -0,0 +1,45 @@
|
||||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [ ./gui.nix ];
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
nixpkgs.overlays = [
|
||||
# Add a protontricks-beta package so we can use protontricks with latest steam beta
|
||||
# https://github.com/Matoking/protontricks/issues/304#issuecomment-2280920826
|
||||
(
|
||||
final: prev:
|
||||
let
|
||||
ps = prev.python312Packages;
|
||||
in
|
||||
{
|
||||
vdf-patch = ps.vdf.overrideAttrs (oldAttrs: {
|
||||
src = inputs.vdf-patch;
|
||||
});
|
||||
protontricks-beta = prev.protontricks.overrideAttrs (oldAttrs: {
|
||||
src = inputs.protontricks;
|
||||
propagatedBuildInputs = [
|
||||
ps.setuptools # implicit dependency, used to find data/icon_placeholder.png
|
||||
final.vdf-patch
|
||||
ps.pillow
|
||||
];
|
||||
});
|
||||
}
|
||||
)
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
protontricks-beta
|
||||
beatsabermodmanager
|
||||
protonup-qt
|
||||
];
|
||||
|
||||
programs.alacritty.settings = {
|
||||
window.decorations = lib.mkForce "full";
|
||||
window.opacity = lib.mkForce 1.0;
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user