Compare commits
367 commits
wip/kvantu
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
4e7e0d2aaf |
|||
|
6e0d0c8556 |
|||
|
0d8c7075e2 |
|||
|
8f649d66e8 |
|||
|
1919c98392 |
|||
|
418ef5a797 |
|||
|
a3fd2ee27e |
|||
|
600d3ddb51 |
|||
|
4fb7bbe084 |
|||
|
49937eaf99 |
|||
|
0531956b4c |
|||
|
ef30d7507c |
|||
|
166cb87306 |
|||
|
7e6a77501c |
|||
|
330087d4ff |
|||
|
fab570dd29 |
|||
|
c31864133e |
|||
|
ee25c3faf1 |
|||
|
d5bd220838 |
|||
|
dbc99ec132 |
|||
|
4baab41f2c |
|||
|
50e1adbbf5 |
|||
|
d427471309 |
|||
|
5a0d1fa6c8 |
|||
|
d7074bec8f |
|||
|
f813e3853b |
|||
|
0fc6174d47 |
|||
|
42005cb380 |
|||
|
92d44f4419 |
|||
|
4c7d54629a |
|||
|
3c83c0a928 |
|||
|
476538c4cb |
|||
|
e9e0cc6624 |
|||
|
2b4acb3dd9 |
|||
|
63b568c914 |
|||
|
46cb66802f |
|||
|
30419caa35 |
|||
|
185963a9c5 |
|||
|
27c26f4ef7 |
|||
|
95f11b1bc7 |
|||
|
28bffa0b68 |
|||
|
903cc34632 |
|||
|
b61c42aeba |
|||
|
984cff894e |
|||
|
1e5b22274a |
|||
|
7f8a4c443f |
|||
|
60cc37b97a |
|||
|
bfe8141a86 |
|||
|
3bad9cb4a7 |
|||
|
bfb60a0ff6 |
|||
|
ee71554e6f |
|||
|
f258beb032 |
|||
|
51f28a74d6 |
|||
|
bd35a64a27 |
|||
|
684a6eea14 |
|||
|
628166f8f0 |
|||
|
53c2df23d0 |
|||
|
3e61bdcd8b |
|||
|
dc69c8e6f6 |
|||
|
cb394d1634 |
|||
|
22ff823804 |
|||
|
813840b6cc |
|||
|
94bdffcf2b |
|||
|
bdd356790c |
|||
|
9b15e8df5b |
|||
|
df7026b59e |
|||
|
e554c3b752 |
|||
|
299b90d1f2 |
|||
|
50b664d46b |
|||
|
8d8943977f |
|||
|
9b2d9cfedb |
|||
|
ca3d16bed7 |
|||
|
7487cd0a7a |
|||
|
7b31387d3c |
|||
|
6a8af8942b |
|||
|
14eb4fd425 |
|||
|
c5426c573a |
|||
|
b7a580ca5c |
|||
|
c6ca2cccae |
|||
|
15d6d34ef7 |
|||
|
b91bf4779c |
|||
|
1ecf9fa51a |
|||
|
63b96ffd43 |
|||
|
05b2f188f5 |
|||
|
f8bec21820 |
|||
|
af13cb972a |
|||
|
00778aadbb |
|||
|
d92a7428c7 |
|||
|
5a4e06d465 |
|||
|
435a46ac0e |
|||
|
18f33e6b8f |
|||
|
bc73ba1721 |
|||
|
4f00eac45d |
|||
|
ab17e1f300 |
|||
|
57101322bd |
|||
|
236a4833f9 |
|||
|
9705e9f47c |
|||
|
a381fd79a9 |
|||
|
d114f30429 |
|||
|
0b2734b053 |
|||
|
15d45f9c49 |
|||
|
7a6fbff426 |
|||
|
840e3e1398 |
|||
|
5b0df97764 |
|||
|
2c18755ee7 |
|||
|
c32c8fcc50 |
|||
|
5ec404194a |
|||
|
a2b7ab0444 |
|||
|
a5fd0bf597 |
|||
|
94c1f574cb |
|||
|
b7c561136b |
|||
|
452b03f6f9 |
|||
|
7784a952a9 |
|||
|
64256689f2 |
|||
|
53f864d037 |
|||
|
c2f01cf31d |
|||
|
7e322b21f8 |
|||
|
fcd82c39b5 |
|||
|
637cdfe16e |
|||
|
a26f9784b3 |
|||
|
7bc2a3370b |
|||
|
73f27bda56 |
|||
|
0acdd9936a |
|||
|
ccc140beea |
|||
|
53df4ce2c3 |
|||
|
e26702b83d |
|||
|
c384d4a44c |
|||
|
b59dc3c933 |
|||
|
6e903422bb |
|||
|
53d35f6349 |
|||
|
94991e6ad7 |
|||
|
03cfc3ab73 |
|||
|
b8c4831a4c |
|||
|
141f7e28e6 |
|||
|
4eb7321460 |
|||
|
69a1bf179f |
|||
|
dda84d948c |
|||
|
81cca7b7bd |
|||
|
567de5ca7d |
|||
|
0374b37e55 |
|||
|
2a7d450284 |
|||
|
e617b539e4 |
|||
|
d1b4a4c179 |
|||
|
f271f86d15 |
|||
|
0368b5ff69 |
|||
|
16cdb91f7d |
|||
|
a66c88c379 |
|||
|
fb18ff7455 |
|||
|
b46e8dbb37 |
|||
|
ec8c0bea85 |
|||
|
565d248c71 |
|||
|
2952135ab1 |
|||
|
2f5f16ec1c |
|||
|
62032eab6d |
|||
|
6d30e0a9f5 |
|||
|
ac2399c9aa |
|||
|
963fe175cd |
|||
|
72a9b9e892 |
|||
|
e228035134 |
|||
|
c241155b93 |
|||
|
ca7d6de714 |
|||
|
02a3d5ae44 |
|||
|
7c4e07af40 |
|||
|
4d1e348f38 |
|||
|
687c61c4b6 |
|||
|
b381e1785d |
|||
|
61799a275e |
|||
|
9c4d353ef5 |
|||
|
59c15a65ad |
|||
|
9ab5a2ce66 |
|||
|
255745d4a3 |
|||
|
11a8f3e009 |
|||
|
fdda29ecb9 |
|||
|
26899f676f |
|||
|
d9a219fa10 |
|||
|
7129246178 |
|||
|
620a906c3e |
|||
|
b3b2cddabe |
|||
|
5b736e0248 |
|||
|
719ec8949c |
|||
|
730f7fbceb |
|||
|
766115ee4b |
|||
|
9ef9476f80 |
|||
|
0913501ba3 |
|||
|
0c1cab042c |
|||
|
ebc0421b21 |
|||
|
390f164d4a |
|||
|
225c73dd43 |
|||
|
02aba5b7c1 |
|||
|
5f7200bf6b |
|||
|
8c6a7296f5 |
|||
|
0d7f0ef4dc |
|||
|
077989a154 |
|||
|
cc5d8acf32 |
|||
|
b4de545e03 |
|||
|
0fe2dff27c |
|||
|
a40d9a0b86 |
|||
|
6e2f381a6b |
|||
|
b3aa736113 |
|||
|
9d91f0dba4 |
|||
|
6da37f70b3 |
|||
|
f6f8af69c6 |
|||
|
f6dbc88abb |
|||
|
a6ddd527d4 |
|||
|
fcd9e04432 |
|||
|
6aa4fe8d09 |
|||
|
7b3da66748 |
|||
|
d3665d35c1 |
|||
|
bb8af61737 |
|||
|
36f85a49dd |
|||
|
63d7ffc2fc |
|||
|
28043aded9 |
|||
|
9915af6522 |
|||
|
a2beaca5f9 |
|||
|
2207d0ca62 |
|||
|
1666d20a66 |
|||
|
1faa92d85b |
|||
|
db11319668 |
|||
|
06c8c267e6 |
|||
|
433d976629 |
|||
|
92614f1c05 |
|||
|
24b57f18df |
|||
|
e08062939f |
|||
|
d7210506a9 |
|||
|
f1810eb104 |
|||
|
a3d91c2d46 |
|||
|
e2912337ab |
|||
|
65be83623e |
|||
|
e18d4b2770 |
|||
|
10dc026185 |
|||
|
2201b838bf |
|||
|
db416ee93a |
|||
|
78b9c84e62 |
|||
|
8eb28c23ee |
|||
|
88285e396f |
|||
|
3431f28102 |
|||
|
9980c7fa8e |
|||
|
644c291b69 |
|||
|
dc8d6c3db3 |
|||
|
86f63580fc |
|||
|
71a0139aaf |
|||
|
94930a13b8 |
|||
|
32ccf53258 |
|||
|
6ff58e0ae6 |
|||
|
1f4a269d40 |
|||
|
2932d8a443 |
|||
|
61eb9ef02c |
|||
|
7772bb6b67 |
|||
|
7d3236a75f |
|||
|
fe82f49c7d |
|||
|
6641cfac30 |
|||
|
f513a28414 |
|||
|
39bcaddfeb |
|||
|
362df45987 |
|||
|
679b37b1ea |
|||
|
229e201897 |
|||
|
a305327dc5 |
|||
|
9ee186f340 |
|||
|
fcac084248 |
|||
|
a728e3b0eb |
|||
|
d94bd6d7d0 |
|||
|
f3648ea211 |
|||
|
53973bbfb1 |
|||
|
8a7dd224f9 |
|||
|
7d9fc767db |
|||
|
7e17ef312d |
|||
|
a82e6b789f |
|||
|
f35d65f94d |
|||
|
bd6c1d60ae |
|||
|
c9f757e4bd |
|||
|
20225b4295 |
|||
|
f00a845f2c |
|||
|
373f1b85cc |
|||
|
559df9da6b |
|||
|
0cd61c0a9d |
|||
|
fb429f8293 |
|||
|
2bfae6b6c1 |
|||
|
3751597ca2 |
|||
|
c62024f426 |
|||
|
18b1d057c0 |
|||
|
e1f8d9d466 |
|||
|
68049b7893 |
|||
|
ec0108af66 |
|||
|
d437c762fd |
|||
|
27d3704a6a |
|||
|
f75527e426 |
|||
|
a00ffd43b9 |
|||
|
37bbb9695d |
|||
|
01b07aa0ff |
|||
|
365a03bad6 |
|||
|
7e657cddc1 |
|||
|
9a381083f1 |
|||
|
cb9e4508e6 |
|||
|
be8e5e6407 |
|||
|
1ff39e94b6 |
|||
|
38e4f2320b |
|||
|
61e020288c |
|||
|
b977829277 |
|||
|
c2ab4f76cc |
|||
|
278f87f4c7 |
|||
|
e0ce786646 |
|||
|
6693299535 |
|||
|
4f15e4623c |
|||
|
f2610a0432 |
|||
|
7ca285280e |
|||
|
7361a02755 |
|||
|
82a65fab84 |
|||
|
ef0ac2dab4 |
|||
|
8eeb0669e5 |
|||
|
94cf39da75 |
|||
|
69b7fb4cec |
|||
|
d87b0b45cd |
|||
|
26977f99d8 |
|||
|
db238bda7a |
|||
|
88c4990578 |
|||
|
f7f4061085 |
|||
|
42651d51c0 |
|||
|
227a48500e |
|||
|
4b1245fea3 |
|||
|
b3b0c86d3e |
|||
|
24961c4333 |
|||
|
7d86fc8027 |
|||
|
fdbfd8d6a6 |
|||
|
1b5af61002 |
|||
|
a7a25b1d7b |
|||
|
7dba6d3bf4 |
|||
|
c52381a6d0 |
|||
|
2a541c3504 |
|||
|
2c4481ac72 |
|||
|
f1a03a7f5f |
|||
|
4e1e0edfb5 |
|||
|
ec7197316a |
|||
|
c11f713e34 |
|||
|
5b648d9784 |
|||
|
32ab27ac62 |
|||
|
8c1b135dbc |
|||
|
1abf84fca2 |
|||
|
c5c9789c6a |
|||
|
56a3a55239 |
|||
|
a0181c5e0b |
|||
|
3a3884cc9e |
|||
|
9395e3ea49 |
|||
|
5573293a41 |
|||
|
d232c420b4 |
|||
|
cac2d82f46 |
|||
|
60ce56a055 |
|||
|
16dc6466a9 |
|||
|
e075cbd912 |
|||
|
6fff736006 |
|||
|
6970ae6974 |
|||
|
4e5ba99872 |
|||
|
1a7e251874 |
|||
|
279c1ef2ce |
|||
|
bee9d7c135 |
|||
|
92b9b80af5 |
|||
|
a6cb436754 |
|||
|
54954912a1 |
|||
|
31a49353d2 |
|||
|
b3934cfd7d |
|||
|
34eb7fd06a |
|||
|
439a1ad75c |
|||
|
83dfbf9260 |
|||
|
1da91f0176 |
|||
|
315e7eb23e |
|||
|
c25871e480 |
|||
|
27a75b03c7 |
|||
|
aee51814ae |
63 changed files with 7324 additions and 368 deletions
5
.gitignore
vendored
5
.gitignore
vendored
|
|
@ -1,2 +1,3 @@
|
|||
firmware
|
||||
hardware-configuration.nix
|
||||
system/hosts/peach/firmware/*
|
||||
result
|
||||
*.qcow2
|
||||
|
|
|
|||
19
.sops.yaml
Normal file
19
.sops.yaml
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
# This example uses YAML anchors which allows reuse of multiple keys
|
||||
# without having to repeat yourself.
|
||||
# Also see https://github.com/Mic92/dotfiles/blob/d6114726d859df36ccaa32891c4963ae5717ef7f/nixos/.sops.yaml
|
||||
# for a more complex example.
|
||||
keys:
|
||||
- &admin_sckova 7622FD7E6AB9F1E9D2CEFE2700F325187C68651A
|
||||
- &user_sckova age1k9zp37p9sejvpvwu688t7jkl8utkugrsch7a9ahufpq7uhj609gqsd3wka
|
||||
- &host_peach age1dx9rwrkhqj8sfr8vdfsgrqjwqefzmgtugsp6ykklpudfw4hcnuyqx9x20e
|
||||
- &host_alien age1ygykyl3xyfhkt0x46frqnef4f39w0cnu6d98nf0efl43f706uqtsnsx5nd
|
||||
|
||||
creation_rules:
|
||||
- path_regex: secrets/[^/]+\.(yaml|json|env|ini)$
|
||||
key_groups:
|
||||
- pgp:
|
||||
- *admin_sckova
|
||||
age:
|
||||
- *user_sckova
|
||||
- *host_peach
|
||||
- *host_alien
|
||||
|
|
@ -1,208 +0,0 @@
|
|||
# Edit this configuration file to define what should be installed on
|
||||
# your system. Help is available in the configuration.nix(5) man page
|
||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ # Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
#./apple-silicon-support
|
||||
];
|
||||
|
||||
# Bootloader.
|
||||
# boot.loader.systemd-boot = {
|
||||
# enable = true;
|
||||
# # configurationLimit = null;
|
||||
# };
|
||||
# boot.loader.efi.canTouchEfiVariables = false;
|
||||
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
|
||||
home-manager.users.sckova = {
|
||||
imports = [
|
||||
./home.nix
|
||||
];
|
||||
};
|
||||
|
||||
boot = {
|
||||
loader = {
|
||||
timeout = 3;
|
||||
systemd-boot = {
|
||||
enable = true;
|
||||
configurationLimit = null;
|
||||
# consoleMode = "max";
|
||||
};
|
||||
efi = {
|
||||
canTouchEfiVariables = false;
|
||||
};
|
||||
};
|
||||
# Silent Boot
|
||||
# https://wiki.archlinux.org/title/Silent_boot
|
||||
kernelParams = [
|
||||
"quiet"
|
||||
"splash"
|
||||
"vga=current"
|
||||
"rd.systemd.show_status=false"
|
||||
"rd.udev.log_level=3"
|
||||
"udev.log_priority=3"
|
||||
"boot.shell_on_fail"
|
||||
"apple_dcp.show_notch=1"
|
||||
];
|
||||
consoleLogLevel = 0;
|
||||
# https://github.com/NixOS/nixpkgs/pull/108294
|
||||
initrd.verbose = false;
|
||||
};
|
||||
|
||||
swapDevices = [{
|
||||
device = "/swapfile";
|
||||
size = 32000; # 32GB
|
||||
}];
|
||||
|
||||
# networking.hostName = "peach"; # Define your hostname.
|
||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||
|
||||
# Configure network proxy if necessary
|
||||
# networking.proxy.default = "http://user:password@proxy:port/";
|
||||
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
||||
|
||||
# Enable networking
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "America/New_York";
|
||||
|
||||
# Select internationalisation properties.
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
|
||||
i18n.extraLocaleSettings = {
|
||||
LC_ADDRESS = "en_US.UTF-8";
|
||||
LC_IDENTIFICATION = "en_US.UTF-8";
|
||||
LC_MEASUREMENT = "en_US.UTF-8";
|
||||
LC_MONETARY = "en_US.UTF-8";
|
||||
LC_NAME = "en_US.UTF-8";
|
||||
LC_NUMERIC = "en_US.UTF-8";
|
||||
LC_PAPER = "en_US.UTF-8";
|
||||
LC_TELEPHONE = "en_US.UTF-8";
|
||||
LC_TIME = "en_US.UTF-8";
|
||||
};
|
||||
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
|
||||
# Enable OpenGL
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
services = {
|
||||
desktopManager.plasma6.enable = true;
|
||||
displayManager.sddm = {
|
||||
enable = true;
|
||||
wayland.enable = true;
|
||||
enableHidpi = true;
|
||||
};
|
||||
libinput.enable = true;
|
||||
tailscale = {
|
||||
enable = true;
|
||||
useRoutingFeatures = "client";
|
||||
};
|
||||
};
|
||||
|
||||
# Enable CUPS to print documents.
|
||||
services.printing.enable = true;
|
||||
|
||||
# Enable sound with pipewire.
|
||||
services.pulseaudio.enable = false;
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
};
|
||||
|
||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||
users.users.sckova = {
|
||||
isNormalUser = true;
|
||||
description = "Sean Kovacs";
|
||||
extraGroups = [ "networkmanager" "wheel" ];
|
||||
packages = with pkgs; [];
|
||||
hashedPassword = "$6$bvwRUFaJNMpH8rm3$FGDWFN6tBScJ/2DynAjnlZE8JRfyADN78d6c4GawxpAjyNLNE/AjQzMA09tLRqpKX7WnN5PIUZLAm2bT9/RbG0";
|
||||
};
|
||||
security.sudo.wheelNeedsPassword = false;
|
||||
|
||||
programs.bash = {
|
||||
interactiveShellInit = ''
|
||||
if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]
|
||||
then
|
||||
shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION=""
|
||||
exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
|
||||
fi
|
||||
'';
|
||||
};
|
||||
|
||||
# Install firefox.
|
||||
programs.firefox.enable = true;
|
||||
|
||||
# Allow unfree packages
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
# List packages installed in system profile. To search, run:
|
||||
# $ nix search wget
|
||||
environment = {
|
||||
systemPackages = with pkgs; [
|
||||
rclone
|
||||
git
|
||||
];
|
||||
};
|
||||
|
||||
fileSystems."/mnt/nas" = {
|
||||
device = "synology:/home";
|
||||
fsType = "rclone";
|
||||
options = [
|
||||
"nodev"
|
||||
"nofail"
|
||||
"allow_other"
|
||||
"args2env"
|
||||
"config=/etc/nixos/configs/rclone.conf"
|
||||
];
|
||||
};
|
||||
|
||||
|
||||
# programs.nix-ld.enable = true;
|
||||
# programs.nix-ld.libraries = with pkgs; [
|
||||
# # Add any missing dynamic libraries for unpackaged programs
|
||||
# # here, NOT in environment.systemPackages
|
||||
# ];
|
||||
|
||||
# Some programs need SUID wrappers, can be configured further or are
|
||||
# started in user sessions.
|
||||
# programs.mtr.enable = true;
|
||||
programs.gnupg.agent = {
|
||||
enable = true;
|
||||
enableSSHSupport = true;
|
||||
};
|
||||
|
||||
# List services that you want to enable:
|
||||
|
||||
# Enable the OpenSSH daemon.
|
||||
services.openssh.enable = true;
|
||||
|
||||
# Open ports in the firewall.
|
||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
||||
# Or disable the firewall altogether.
|
||||
networking.firewall.enable = false;
|
||||
|
||||
# This value determines the NixOS release from which the default
|
||||
# settings for stateful data, like file locations and database versions
|
||||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||
# this value at the release version of the first install of this system.
|
||||
# Before changing this value read the documentation for this option
|
||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||
system.stateVersion = "25.05"; # Did you read the comment?
|
||||
|
||||
}
|
||||
|
||||
634
flake.lock
generated
634
flake.lock
generated
|
|
@ -3,16 +3,14 @@
|
|||
"apple-silicon": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1761514810,
|
||||
"narHash": "sha256-rOEir3x37RRWO+lFia8C9HAThARg+pubRF2hrWQeeEE=",
|
||||
"lastModified": 1774264319,
|
||||
"narHash": "sha256-aAsO35YtqIdvBhCIKZ0a+OcC8wB0H1+mAoPKBY0jxeQ=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixos-apple-silicon",
|
||||
"rev": "e01011ebc0aa7a0ae6444a8429e91196addd45f4",
|
||||
"rev": "9fe29a63b23005acfcd1324a9e78b6241226cdb1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -21,33 +19,63 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"catppuccin": {
|
||||
"base16": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
"fromYaml": "fromYaml"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1762198582,
|
||||
"narHash": "sha256-P9giW/1Crn7ekQt4YIbONJ/hKFaHkTwyhz82FCjh+OM=",
|
||||
"owner": "catppuccin",
|
||||
"repo": "nix",
|
||||
"rev": "08716214674ca27914daa52e6fa809cc022b581e",
|
||||
"lastModified": 1755819240,
|
||||
"narHash": "sha256-qcMhnL7aGAuFuutH4rq9fvAhCpJWVHLcHVZLtPctPlo=",
|
||||
"owner": "SenchoPens",
|
||||
"repo": "base16.nix",
|
||||
"rev": "75ed5e5e3fce37df22e49125181fa37899c3ccd6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "catppuccin",
|
||||
"repo": "nix",
|
||||
"owner": "SenchoPens",
|
||||
"repo": "base16.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"cachyos-kernel": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1774160598,
|
||||
"narHash": "sha256-ArPoVPHpXauFDGsz7nGBiXljj7keGcp/O4Pf4ZU4/30=",
|
||||
"owner": "CachyOS",
|
||||
"repo": "linux-cachyos",
|
||||
"rev": "1caa0b77871d4537f0d629a2ce30edb2f6178d19",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "CachyOS",
|
||||
"repo": "linux-cachyos",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"cachyos-kernel-patches": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1774023710,
|
||||
"narHash": "sha256-Oc+4K6edCv0fdvfe6UW+OpJiXYWkXRrOH9TDMNwi+J8=",
|
||||
"owner": "CachyOS",
|
||||
"repo": "kernel-patches",
|
||||
"rev": "a4e26fa95257ac09bd42930334399b0eabd5b5b1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "CachyOS",
|
||||
"repo": "kernel-patches",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"locked": {
|
||||
"lastModified": 1746162366,
|
||||
"narHash": "sha256-5SSSZ/oQkwfcAz/o/6TlejlVGqeK08wyREBQ5qFFPhM=",
|
||||
"lastModified": 1761640442,
|
||||
"narHash": "sha256-AtrEP6Jmdvrqiv4x2xa5mrtaIp3OEe8uBYCDZDS+hu8=",
|
||||
"owner": "nix-community",
|
||||
"repo": "flake-compat",
|
||||
"rev": "0f158086a2ecdbb138cd0429410e44994f1b7e4b",
|
||||
"rev": "4a56054d8ffc173222d09dad23adf4ba946c8884",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -56,6 +84,116 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat_2": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1767039857,
|
||||
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
|
||||
"owner": "NixOS",
|
||||
"repo": "flake-compat",
|
||||
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1772408722,
|
||||
"narHash": "sha256-rHuJtdcOjK7rAHpHphUb1iCvgkU3GpfvicLMwwnfMT0=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "f20dc5d9b8027381c474144ecabc9034d6a839a3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts_2": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"nixvim",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1769996383,
|
||||
"narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "57928607ea566b5db3ad13af0e57e921e6b12381",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts_3": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"nur",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1733312601,
|
||||
"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts_4": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": "nixpkgs-lib_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1769996383,
|
||||
"narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "57928607ea566b5db3ad13af0e57e921e6b12381",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"fromYaml": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1731966426,
|
||||
"narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=",
|
||||
"owner": "SenchoPens",
|
||||
"repo": "fromYaml",
|
||||
"rev": "106af9e2f715e2d828df706c386a685698f3223b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "SenchoPens",
|
||||
"repo": "fromYaml",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
|
|
@ -63,11 +201,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1762351818,
|
||||
"narHash": "sha256-0ptUDbYwxv1kk/uzEX4+NJjY2e16MaAhtzAOJ6K0TG0=",
|
||||
"lastModified": 1774539458,
|
||||
"narHash": "sha256-H9GIOqdMfQZ6lFetsQhO9TCq53hYzpTHDWOt3PRh9V0=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "b959c67241cae17fc9e4ee7eaf13dfa8512477ea",
|
||||
"rev": "e2e5f512b33ed19a7a3271d0b73ed5eefcc0be5f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -76,13 +214,100 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"niri": {
|
||||
"inputs": {
|
||||
"niri-stable": "niri-stable",
|
||||
"niri-unstable": [
|
||||
"niri-blur"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"nixpkgs-unstable"
|
||||
],
|
||||
"nixpkgs-stable": [
|
||||
"nixpkgs-stable"
|
||||
],
|
||||
"xwayland-satellite-stable": "xwayland-satellite-stable",
|
||||
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1771682768,
|
||||
"narHash": "sha256-RJ9RVJSAktCgWiqLDCjYmx9KgMuLaszUrI28k92Pa2I=",
|
||||
"owner": "sckova",
|
||||
"repo": "niri-flake",
|
||||
"rev": "383bd9d32706b163807b05983418069b2e692310",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "sckova",
|
||||
"ref": "feat/blur",
|
||||
"repo": "niri-flake",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"niri-blur": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1774190104,
|
||||
"narHash": "sha256-L/Ldq9G41Mj8WjWTuC+rePvWIx1A/tHdFpLbQmtrMSA=",
|
||||
"owner": "niri-wm",
|
||||
"repo": "niri",
|
||||
"rev": "d06dd4b9e60fa07120c217aa095f3ed8caac99f2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "niri-wm",
|
||||
"ref": "wip/branch",
|
||||
"repo": "niri",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"niri-stable": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1756556321,
|
||||
"narHash": "sha256-RLD89dfjN0RVO86C/Mot0T7aduCygPGaYbog566F0Qo=",
|
||||
"owner": "YaLTeR",
|
||||
"repo": "niri",
|
||||
"rev": "01be0e65f4eb91a9cd624ac0b76aaeab765c7294",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "YaLTeR",
|
||||
"ref": "v25.08",
|
||||
"repo": "niri",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-cachyos-kernel": {
|
||||
"inputs": {
|
||||
"cachyos-kernel": "cachyos-kernel",
|
||||
"cachyos-kernel-patches": "cachyos-kernel-patches",
|
||||
"flake-compat": "flake-compat_2",
|
||||
"flake-parts": "flake-parts",
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1774290535,
|
||||
"narHash": "sha256-dnFbucSiAjjWmPENgyIiK/ocCuYSp4sM6Sq4WCVjG+8=",
|
||||
"owner": "xddxdd",
|
||||
"repo": "nix-cachyos-kernel",
|
||||
"rev": "c0fcdf5cab21b7e3157e84046b57407a60934415",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "xddxdd",
|
||||
"ref": "release",
|
||||
"repo": "nix-cachyos-kernel",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1762111121,
|
||||
"narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=",
|
||||
"lastModified": 1774106199,
|
||||
"narHash": "sha256-US5Tda2sKmjrg2lNHQL3jRQ6p96cgfWh3J1QBliQ8Ws=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4",
|
||||
"rev": "6c9a78c09ff4d6c21d0319114873508a6ec01655",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -92,12 +317,365 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-lib": {
|
||||
"locked": {
|
||||
"lastModified": 1772328832,
|
||||
"narHash": "sha256-e+/T/pmEkLP6BHhYjx6GmwP5ivonQQn0bJdH9YrRB+Q=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"rev": "c185c7a5e5dd8f9add5b2f8ebeff00888b070742",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-lib_2": {
|
||||
"locked": {
|
||||
"lastModified": 1769909678,
|
||||
"narHash": "sha256-cBEymOf4/o3FD5AZnzC3J9hLbiZ+QDT/KDuyHXVJOpM=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"rev": "72716169fe93074c333e8d0173151350670b824c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1774388614,
|
||||
"narHash": "sha256-tFwzTI0DdDzovdE9+Ras6CUss0yn8P9XV4Ja6RjA+nU=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "1073dad219cb244572b74da2b20c7fe39cb3fa9e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-25.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1774386573,
|
||||
"narHash": "sha256-4hAV26quOxdC6iyG7kYaZcM3VOskcPUrdCQd/nx8obc=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "46db2e09e1d3f113a13c0d7b81e2f221c63b8ce9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1774235121,
|
||||
"narHash": "sha256-CzpSER+YKq4yD+RPom6Su9c/4FutF+sD4rEnls+4MyM=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "1116aed2cee959f7d054a462458513ad323b710a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable-small",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1770115704,
|
||||
"narHash": "sha256-KHFT9UWOF2yRPlAnSXQJh6uVcgNcWlFqqiAZ7OVlHNc=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "e6eae2ee2110f3d31110d5c222cd395303343b08",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixvim": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts_2",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1774309640,
|
||||
"narHash": "sha256-8oWL7YLwElBY9ebYri1LlSlhf/gd1Qoqj0nbBwG2yso=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixvim",
|
||||
"rev": "28c58bf023bf537354f78d6e496a349d7a0ed554",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nixvim",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"noctalia": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"noctalia-qs": "noctalia-qs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1774536980,
|
||||
"narHash": "sha256-j7I4XVEaUsiR0EOUJGnY7DZ0V/GYtcGJ97K3abzU9QY=",
|
||||
"owner": "noctalia-dev",
|
||||
"repo": "noctalia-shell",
|
||||
"rev": "396fba755b515913f4ac7596c30b827b0f67d53a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "noctalia-dev",
|
||||
"repo": "noctalia-shell",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"noctalia-qs": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"noctalia",
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": "systems_2",
|
||||
"treefmt-nix": "treefmt-nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1774351986,
|
||||
"narHash": "sha256-N131zILQ06ZNEvtgtjjFZ0N5qEI70rKKhCZsBcZoDH8=",
|
||||
"owner": "noctalia-dev",
|
||||
"repo": "noctalia-qs",
|
||||
"rev": "066835ebd5daeabc86df1e62fb5fe82a51407cc0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "noctalia-dev",
|
||||
"repo": "noctalia-qs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nur": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts_3",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1774540439,
|
||||
"narHash": "sha256-zVYoM58GjEh07Oa56zRygHaqp+Fm83PK8C77p84l5uA=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"rev": "95ed6efd2ba5aefb62f522c71ef3276b18a8b5a0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"openmw": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1770694146,
|
||||
"narHash": "sha256-zTN+f21TF0Y53J+BAPDo3pvcI1+f3cc/7xG4AAK/+gs=",
|
||||
"owner": "OpenMW",
|
||||
"repo": "openmw",
|
||||
"rev": "01bcd6a6369fe461caaf900354967b4751aede7a",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
"owner": "OpenMW",
|
||||
"ref": "01bcd6",
|
||||
"repo": "openmw",
|
||||
"type": "gitlab"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"apple-silicon": "apple-silicon",
|
||||
"catppuccin": "catppuccin",
|
||||
"base16": "base16",
|
||||
"home-manager": "home-manager",
|
||||
"nixpkgs": "nixpkgs"
|
||||
"niri": "niri",
|
||||
"niri-blur": "niri-blur",
|
||||
"nix-cachyos-kernel": "nix-cachyos-kernel",
|
||||
"nixpkgs": [
|
||||
"nixpkgs-unstable"
|
||||
],
|
||||
"nixpkgs-stable": "nixpkgs-stable",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||
"nixvim": "nixvim",
|
||||
"noctalia": "noctalia",
|
||||
"nur": "nur",
|
||||
"openmw": "openmw",
|
||||
"seamless-asahi-plymouth": "seamless-asahi-plymouth",
|
||||
"sops-nix": "sops-nix",
|
||||
"tt-schemes": "tt-schemes"
|
||||
}
|
||||
},
|
||||
"seamless-asahi-plymouth": {
|
||||
"inputs": {
|
||||
"flake-parts": "flake-parts_4",
|
||||
"nixpkgs": "nixpkgs_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1770365598,
|
||||
"narHash": "sha256-tjmDL8eaK2NIwWDho81GhygkBZoauiiiUqwV1VP1FwQ=",
|
||||
"owner": "luca-schlecker",
|
||||
"repo": "seamless-asahi-plymouth",
|
||||
"rev": "e3f5517643f9c2021bee2870b55d8bd363763cd1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "luca-schlecker",
|
||||
"repo": "seamless-asahi-plymouth",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"sops-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1774910634,
|
||||
"narHash": "sha256-B+rZDPyktGEjOMt8PcHKYmgmKoF+GaNAFJhguktXAo0=",
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "19bf3d8678fbbfbc173beaa0b5b37d37938db301",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-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": 1689347949,
|
||||
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default-linux",
|
||||
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default-linux",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"treefmt-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"noctalia",
|
||||
"noctalia-qs",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1772660329,
|
||||
"narHash": "sha256-IjU1FxYqm+VDe5qIOxoW+pISBlGvVApRjiw/Y/ttJzY=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "3710e0e1218041bbad640352a0440114b1e10428",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"tt-schemes": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1770951657,
|
||||
"narHash": "sha256-A9KDJ0/yL3iek7mN6p0BF+1+dVGi4l/YCquRmTGFO7I=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "schemes",
|
||||
"rev": "b9f335ad6a0b7d85b9c2eb932c3215f7429f7d11",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "schemes",
|
||||
"rev": "b9f335ad6a0b7d85b9c2eb932c3215f7429f7d11",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"xwayland-satellite-stable": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1755491097,
|
||||
"narHash": "sha256-m+9tUfsmBeF2Gn4HWa6vSITZ4Gz1eA1F5Kh62B0N4oE=",
|
||||
"owner": "Supreeeme",
|
||||
"repo": "xwayland-satellite",
|
||||
"rev": "388d291e82ffbc73be18169d39470f340707edaa",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Supreeeme",
|
||||
"ref": "v0.7",
|
||||
"repo": "xwayland-satellite",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"xwayland-satellite-unstable": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1771195969,
|
||||
"narHash": "sha256-BUE41HjLIGPjq3U8VXPjf8asH8GaMI7FYdgrIHKFMXA=",
|
||||
"owner": "Supreeeme",
|
||||
"repo": "xwayland-satellite",
|
||||
"rev": "536bd32efc935bf876d6de385ec18a1b715c9358",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Supreeeme",
|
||||
"repo": "xwayland-satellite",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
|||
274
flake.nix
274
flake.nix
|
|
@ -2,10 +2,24 @@
|
|||
description = "My NixOS Configuration";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-25.11";
|
||||
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
|
||||
catppuccin = {
|
||||
url = "github:catppuccin/nix";
|
||||
# edit this to switch between stable and unstable
|
||||
nixpkgs.follows = "nixpkgs-unstable";
|
||||
|
||||
nix-cachyos-kernel.url = "github:xddxdd/nix-cachyos-kernel/release";
|
||||
apple-silicon.url = "github:nix-community/nixos-apple-silicon";
|
||||
seamless-asahi-plymouth.url = "github:luca-schlecker/seamless-asahi-plymouth";
|
||||
base16.url = "github:SenchoPens/base16.nix";
|
||||
|
||||
tt-schemes = {
|
||||
url = "github:tinted-theming/schemes/b9f335ad6a0b7d85b9c2eb932c3215f7429f7d11";
|
||||
flake = false;
|
||||
};
|
||||
|
||||
sops-nix = {
|
||||
url = "github:Mic92/sops-nix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
|
|
@ -14,58 +28,270 @@
|
|||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
apple-silicon = {
|
||||
url = "github:nix-community/nixos-apple-silicon";
|
||||
niri = {
|
||||
url = "github:sckova/niri-flake/feat/blur";
|
||||
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
||||
inputs.nixpkgs-stable.follows = "nixpkgs-stable";
|
||||
inputs.niri-unstable.follows = "niri-blur";
|
||||
};
|
||||
|
||||
niri-blur = {
|
||||
url = "github:niri-wm/niri/wip/branch";
|
||||
flake = false;
|
||||
};
|
||||
|
||||
noctalia = {
|
||||
url = "github:noctalia-dev/noctalia-shell";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
nur = {
|
||||
url = "github:nix-community/NUR";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
nixvim = {
|
||||
url = "github:nix-community/nixvim";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
openmw = {
|
||||
url = "gitlab:OpenMW/openmw/01bcd6";
|
||||
flake = false;
|
||||
};
|
||||
};
|
||||
|
||||
outputs = { nixpkgs, catppuccin, home-manager, apple-silicon, ... }:
|
||||
outputs =
|
||||
{
|
||||
nixpkgs,
|
||||
nixpkgs-unstable,
|
||||
nix-cachyos-kernel,
|
||||
apple-silicon,
|
||||
seamless-asahi-plymouth,
|
||||
base16,
|
||||
tt-schemes,
|
||||
sops-nix,
|
||||
home-manager,
|
||||
niri,
|
||||
noctalia,
|
||||
nur,
|
||||
nixvim,
|
||||
openmw,
|
||||
...
|
||||
}:
|
||||
let
|
||||
mkNixosSystem = { name, system, hostModule, extraModules ? [] }:
|
||||
# Shared config for all package sets
|
||||
pkgConfig = {
|
||||
allowUnfree = true;
|
||||
};
|
||||
|
||||
mkNixosSystem =
|
||||
{
|
||||
hostname,
|
||||
system,
|
||||
extraModules ? [ ],
|
||||
extraSpecialArgs ? { },
|
||||
}:
|
||||
nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
specialArgs = { inherit catppuccin; };
|
||||
specialArgs = {
|
||||
inherit system;
|
||||
pkgs-unstable = import nixpkgs-unstable {
|
||||
inherit system;
|
||||
config = pkgConfig;
|
||||
};
|
||||
}
|
||||
// extraSpecialArgs;
|
||||
modules = [
|
||||
./configuration.nix
|
||||
hostModule
|
||||
catppuccin.nixosModules.catppuccin
|
||||
(
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
nixpkgs = {
|
||||
config = pkgConfig;
|
||||
overlays = [
|
||||
niri.overlays.niri
|
||||
noctalia.overlays.default
|
||||
nur.overlays.default
|
||||
(final: prev: {
|
||||
openmw-git = openmw;
|
||||
})
|
||||
(final: prev: {
|
||||
inherit (prev.lixPackageSets.stable)
|
||||
nixpkgs-review
|
||||
nix-eval-jobs
|
||||
nix-fast-build
|
||||
colmena
|
||||
;
|
||||
})
|
||||
(import ./packages/overlay.nix)
|
||||
];
|
||||
};
|
||||
nix = {
|
||||
package = pkgs.lixPackageSets.stable.lix;
|
||||
settings = {
|
||||
experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
];
|
||||
|
||||
substituters = [
|
||||
"https://attic.xuyh0120.win/lantian"
|
||||
"https://cache.garnix.io"
|
||||
"https://nixos-apple-silicon.cachix.org"
|
||||
];
|
||||
|
||||
trusted-public-keys = [
|
||||
"lantian:EeAUQ+W+6r7EtwnmYjeVwx5kOGEBpjlBfPlzGlTNvHc="
|
||||
"cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g="
|
||||
"nixos-apple-silicon.cachix.org-1:8psDu5SA5dAD7qA0zMy5UT292TxeEPzIz8VVEr2Js20="
|
||||
];
|
||||
|
||||
trusted-users = [
|
||||
"root"
|
||||
"sckova"
|
||||
];
|
||||
};
|
||||
|
||||
gc = {
|
||||
automatic = true;
|
||||
dates = "weekly";
|
||||
options = "--delete-older-than 30d";
|
||||
};
|
||||
};
|
||||
|
||||
networking.hostName = hostname;
|
||||
|
||||
users.users.sckova = {
|
||||
isNormalUser = true;
|
||||
description = "Sean Kovacs";
|
||||
extraGroups = [
|
||||
"wheel"
|
||||
"networkmanager"
|
||||
"podman"
|
||||
"pipewire"
|
||||
];
|
||||
openssh.authorizedKeys.keys = [
|
||||
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCn/eXMq04vcXNqGVzlZOw2C2dQYBqzWsoigdFW09XqC2WPaGljbAIayzaD7Q1tIlPGGy10+nipAXAk1CHAnrQ2KSg4v/SwFphF48V3joeQmideC4vo0EIQEQibbMtj3oFezqRcRZINl/1hr4t0myZ3zkoTjh3HCkqJEMGUdArDMEVPA5mwcKSLsyshW9LMG/3C9YKKPU1/lVsoeDkj8AVZA0srhkApuRKF0IVu8KoPd6ldvSWgpQ1iuQ+MEMSeOUJytieBkzeY9zEVePaQ86oIMDUzqq8OTN37RyShiJKPskKyj12rJI2eFtI/viGaj8P6/yvKqMp3F4kAsPAuvMLLAIYCNa+139rDpkkIKB6lVtgq0jnJGRywaYXGIRyExNcVAr8I9wrNnNN2M4whVeYBxfLMzKZ+VvfK39AaGvnzPuFDLqUC87sN4c/1KZQo+TCtlaxcYvqowWylw5JHUt8uwFcO/dUebQxxAv8EdyPZGJ/54y19PsTbu9KyxSc2gIU= sckova"
|
||||
];
|
||||
};
|
||||
}
|
||||
)
|
||||
./options.nix
|
||||
./sops.nix
|
||||
./system
|
||||
./system/searxng
|
||||
./system/games
|
||||
./system/widevine
|
||||
./system/shell/fish.nix
|
||||
./system/tailscale
|
||||
./system/hosts/${hostname}
|
||||
./hardware/${hostname}
|
||||
niri.nixosModules.niri
|
||||
sops-nix.nixosModules.sops
|
||||
home-manager.nixosModules.home-manager
|
||||
] ++ extraModules;
|
||||
{
|
||||
home-manager = {
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
users.sckova = {
|
||||
imports = [
|
||||
./home
|
||||
./options.nix
|
||||
./sops.nix
|
||||
./home/sckova
|
||||
./home/sckova/apps
|
||||
./home/sckova/games
|
||||
./home/sckova/hosts/${hostname}
|
||||
./home/sckova/services
|
||||
./home/sckova/terminal
|
||||
./home/sckova/tiling
|
||||
];
|
||||
};
|
||||
sharedModules = [
|
||||
sops-nix.homeManagerModules.sops
|
||||
base16.nixosModule
|
||||
(
|
||||
{ config, ... }:
|
||||
{
|
||||
scheme = "${tt-schemes}/base24/${config.colors.scheme}.yaml";
|
||||
}
|
||||
)
|
||||
noctalia.homeModules.default
|
||||
nixvim.homeModules.nixvim
|
||||
];
|
||||
extraSpecialArgs = {
|
||||
pkgs-unstable = import nixpkgs-unstable {
|
||||
inherit system;
|
||||
config = pkgConfig;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
noctalia.nixosModules.default
|
||||
]
|
||||
++ extraModules;
|
||||
};
|
||||
|
||||
mkHomeConfig = { user, system }:
|
||||
mkHomeConfig =
|
||||
{
|
||||
user,
|
||||
hostname,
|
||||
system,
|
||||
}:
|
||||
home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = import nixpkgs { inherit system; };
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
config = pkgConfig;
|
||||
};
|
||||
pkgs-unstable = import nixpkgs-unstable {
|
||||
inherit system;
|
||||
config = pkgConfig;
|
||||
};
|
||||
home.username = user;
|
||||
home.homeDirectory = "/home/${user}";
|
||||
modules = [
|
||||
./home.nix
|
||||
catppuccin.homeModules.catppuccin
|
||||
./home/${user}
|
||||
./home/${user}/hosts/${hostname}.nix
|
||||
home-manager.homeModules.home-manager
|
||||
niri.homeModules.default
|
||||
noctalia.homeModules.noctalia
|
||||
nixvim.homeModules.nixvim
|
||||
];
|
||||
};
|
||||
in
|
||||
{
|
||||
nixosConfigurations = {
|
||||
peach = mkNixosSystem {
|
||||
name = "peach";
|
||||
hostname = "peach";
|
||||
system = "aarch64-linux";
|
||||
hostModule = ./hosts/peach.nix;
|
||||
extraSpecialArgs = { inherit seamless-asahi-plymouth; };
|
||||
extraModules = [
|
||||
apple-silicon.nixosModules.default
|
||||
{ nixpkgs.overlays = [ apple-silicon.overlays.apple-silicon-overlay ]; }
|
||||
];
|
||||
};
|
||||
|
||||
alien = mkNixosSystem {
|
||||
name = "alien";
|
||||
hostname = "alien";
|
||||
system = "x86_64-linux";
|
||||
hostModule = ./hosts/alien.nix;
|
||||
extraModules = [
|
||||
{
|
||||
nixpkgs.overlays = [ nix-cachyos-kernel.overlays.pinned ];
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
homeConfigurations = {
|
||||
peach = mkHomeConfig { user = "sckova"; system = "aarch64-linux"; };
|
||||
alien = mkHomeConfig { user = "sckova"; system = "x86_64-linux"; };
|
||||
peach = mkHomeConfig {
|
||||
user = "sckova";
|
||||
hostname = "peach";
|
||||
system = "aarch64-linux";
|
||||
};
|
||||
alien = mkHomeConfig {
|
||||
user = "sckova";
|
||||
hostname = "alien";
|
||||
system = "x86_64-linux";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
101
hardware/alien/default.nix
Executable file
101
hardware/alien/default.nix
Executable file
|
|
@ -0,0 +1,101 @@
|
|||
# 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"
|
||||
"nvme"
|
||||
"usbhid"
|
||||
"sd_mod"
|
||||
];
|
||||
|
||||
fileSystems = {
|
||||
"/" = {
|
||||
label = "nixos";
|
||||
fsType = "btrfs";
|
||||
options = [
|
||||
"subvol=root"
|
||||
"compress=zstd"
|
||||
"relatime"
|
||||
];
|
||||
};
|
||||
|
||||
"/boot" = {
|
||||
label = "EFI";
|
||||
fsType = "vfat";
|
||||
options = [
|
||||
"fmask=0022"
|
||||
"dmask=0022"
|
||||
"umask=0077"
|
||||
];
|
||||
};
|
||||
|
||||
"/home" = {
|
||||
label = "nixos";
|
||||
fsType = "btrfs";
|
||||
options = [
|
||||
"subvol=home"
|
||||
"compress=zstd"
|
||||
"relatime"
|
||||
];
|
||||
};
|
||||
|
||||
"/nix" = {
|
||||
label = "nixos";
|
||||
fsType = "btrfs";
|
||||
options = [
|
||||
"subvol=nix"
|
||||
"compress=zstd"
|
||||
"noatime"
|
||||
];
|
||||
};
|
||||
|
||||
"/snapshots" = {
|
||||
label = "nixos";
|
||||
fsType = "btrfs";
|
||||
options = [
|
||||
"subvol=snapshots"
|
||||
"compress=zstd"
|
||||
"noatime"
|
||||
];
|
||||
};
|
||||
|
||||
"/mnt/storage" = {
|
||||
label = "storage";
|
||||
fsType = "btrfs";
|
||||
options = [
|
||||
"compress=zstd"
|
||||
"nofail"
|
||||
"relatime"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
swapDevices = [
|
||||
{ label = "swap"; }
|
||||
];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp4s0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.tailscale0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlo1.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
74
hardware/peach/default.nix
Normal file
74
hardware/peach/default.nix
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
# 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 = [
|
||||
"usb_storage"
|
||||
"sdhci_pci"
|
||||
];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems = {
|
||||
"/" = {
|
||||
label = "nixos";
|
||||
fsType = "btrfs";
|
||||
options = [
|
||||
"subvol=root"
|
||||
"compress=zstd"
|
||||
"relatime"
|
||||
];
|
||||
};
|
||||
|
||||
"/home" = {
|
||||
label = "nixos";
|
||||
fsType = "btrfs";
|
||||
options = [
|
||||
"subvol=home"
|
||||
"compress=zstd"
|
||||
"relatime"
|
||||
];
|
||||
};
|
||||
|
||||
"/nix" = {
|
||||
label = "nixos";
|
||||
fsType = "btrfs";
|
||||
options = [
|
||||
"subvol=nix"
|
||||
"compress=zstd"
|
||||
"noatime"
|
||||
];
|
||||
};
|
||||
|
||||
"/boot" = {
|
||||
label = "efi";
|
||||
fsType = "vfat";
|
||||
options = [
|
||||
"fmask=0022"
|
||||
"dmask=0022"
|
||||
"umask=0077"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
swapDevices = [
|
||||
{
|
||||
label = "swap";
|
||||
}
|
||||
];
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux";
|
||||
}
|
||||
45
hardware/vm-generic/default.nix
Normal file
45
hardware/vm-generic/default.nix
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
# 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.
|
||||
{
|
||||
lib,
|
||||
system,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [ ];
|
||||
|
||||
boot.initrd.availableKernelModules = [
|
||||
"ehci_pci"
|
||||
"xhci_pci"
|
||||
"usbhid"
|
||||
"sr_mod"
|
||||
];
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-label/nixos";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-label/boot";
|
||||
fsType = "vfat";
|
||||
options = [
|
||||
"fmask=0077"
|
||||
"dmask=0077"
|
||||
];
|
||||
};
|
||||
|
||||
swapDevices = [
|
||||
{ device = "/dev/disk/by-label/swap"; }
|
||||
];
|
||||
|
||||
# Set platform from the system argument passed by the flake
|
||||
nixpkgs.hostPlatform = lib.mkDefault system;
|
||||
|
||||
# Enable Parallels tools only on aarch64
|
||||
hardware.parallels.enable = lib.mkIf (system == "aarch64-linux") true;
|
||||
nixpkgs.config.allowUnfreePredicate = lib.mkIf (system == "aarch64-linux") (
|
||||
pkg: builtins.elem (lib.getName pkg) [ "prl-tools" ]
|
||||
);
|
||||
}
|
||||
51
home.nix
51
home.nix
|
|
@ -1,51 +0,0 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
# Home Manager needs a bit of information about you and the
|
||||
# paths it should manage.
|
||||
home.username = "sckova";
|
||||
home.homeDirectory = "/home/sckova";
|
||||
|
||||
home.packages = with pkgs; [
|
||||
vesktop
|
||||
fish
|
||||
gh
|
||||
adwsteamgtk
|
||||
prismlauncher
|
||||
tmux
|
||||
fastfetch
|
||||
btop
|
||||
neovim
|
||||
killall
|
||||
wget
|
||||
ripgrep
|
||||
kitty
|
||||
ncdu
|
||||
fzf
|
||||
wl-clipboard
|
||||
|
||||
kde-rounded-corners
|
||||
kdePackages.partitionmanager
|
||||
];
|
||||
|
||||
catppuccin = {
|
||||
enable = true;
|
||||
flavor = "mocha";
|
||||
firefox = {
|
||||
force = true;
|
||||
};
|
||||
};
|
||||
|
||||
# This value determines the Home Manager release that your
|
||||
# configuration is compatible with. This helps avoid breakage
|
||||
# when a new Home Manager release introduces backwards
|
||||
# incompatible changes.
|
||||
#
|
||||
# You can update Home Manager without changing this value. See
|
||||
# the Home Manager release notes for a list of state version
|
||||
# changes in each release.
|
||||
home.stateVersion = "25.05";
|
||||
|
||||
# Let Home Manager install and manage itself.
|
||||
programs.home-manager.enable = true;
|
||||
}
|
||||
14
home/default.nix
Executable file
14
home/default.nix
Executable file
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
# This value determines the Home Manager release that your
|
||||
# configuration is compatible with. This helps avoid breakage
|
||||
# when a new Home Manager release introduces backwards
|
||||
# incompatible changes.
|
||||
#
|
||||
# You can update Home Manager without changing this value. See
|
||||
# the Home Manager release notes for a list of state version
|
||||
# changes in each release.
|
||||
config.home.stateVersion = "25.05";
|
||||
|
||||
# Let Home Manager install and manage itself.
|
||||
config.programs.home-manager.enable = true;
|
||||
}
|
||||
35
home/sckova/apps/default.nix
Normal file
35
home/sckova/apps/default.nix
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
imports = [
|
||||
# ./discord.nix
|
||||
./firefox.nix
|
||||
./mpv.nix
|
||||
# ./vscode.nix
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
# gui applications
|
||||
input-leap
|
||||
libreoffice-qt-fresh
|
||||
# nur.repos.forkprince.helium-nightly
|
||||
nautilus
|
||||
fractal
|
||||
tuba
|
||||
|
||||
# gui applications ( multimedia )
|
||||
audacity
|
||||
strawberry
|
||||
musescore
|
||||
gimp
|
||||
# calibre
|
||||
# riff
|
||||
dissent
|
||||
loupe
|
||||
spotify-player
|
||||
|
||||
# overrides
|
||||
(chromium.override {
|
||||
enableWideVine = true;
|
||||
})
|
||||
];
|
||||
}
|
||||
81
home/sckova/apps/discord.nix
Normal file
81
home/sckova/apps/discord.nix
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
mergedThemes = pkgs.runCommand "discordThemeDir" { } ''
|
||||
mkdir -p $out
|
||||
'';
|
||||
|
||||
vesktopSettings = {
|
||||
discordBranch = "stable";
|
||||
minimizeToTray = true;
|
||||
arRPC = true;
|
||||
splashColor = config.scheme.withHashtag.base05;
|
||||
splashBackground = config.scheme.withHashtag.base00;
|
||||
spellCheckLanguages = [
|
||||
"en-US"
|
||||
"en"
|
||||
];
|
||||
disableMinSize = true;
|
||||
};
|
||||
|
||||
stateConfig = {
|
||||
firstLaunch = false;
|
||||
windowBounds = {
|
||||
x = 0;
|
||||
y = 0;
|
||||
width = 853;
|
||||
height = 1071;
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
home.packages = with pkgs; [ vesktop ];
|
||||
|
||||
home.file.".config/vesktop/settings.json" = {
|
||||
text = builtins.toJSON vesktopSettings;
|
||||
force = true;
|
||||
};
|
||||
|
||||
home.file.".config/vesktop/settings/settings.json" = {
|
||||
text = builtins.toJSON (import ./vencord.nix);
|
||||
force = true;
|
||||
};
|
||||
|
||||
home.file.".config/vesktop/settings/quickCss.css" = with config.scheme.withHashtag; {
|
||||
text = ''
|
||||
:root {
|
||||
--base00: ${base00};
|
||||
--base01: ${base01};
|
||||
--base02: ${base02};
|
||||
--base03: ${base03};
|
||||
--base04: ${base04};
|
||||
--base05: ${base05};
|
||||
--base06: ${base06};
|
||||
--base07: ${base07};
|
||||
--base08: ${base08};
|
||||
--base09: ${base09};
|
||||
--base0A: ${base0A};
|
||||
--base0B: ${base0B};
|
||||
--base0C: ${base0C};
|
||||
--base0D: ${base0D};
|
||||
--base0E: ${base0E};
|
||||
--base0F: ${base0F};
|
||||
}
|
||||
'';
|
||||
force = true;
|
||||
};
|
||||
|
||||
home.file.".config/vesktop/state.json" = {
|
||||
text = builtins.toJSON stateConfig;
|
||||
force = true;
|
||||
};
|
||||
|
||||
home.file.".config/vesktop/themes" = {
|
||||
source = mergedThemes;
|
||||
recursive = true;
|
||||
force = true;
|
||||
};
|
||||
}
|
||||
398
home/sckova/apps/firefox.nix
Normal file
398
home/sckova/apps/firefox.nix
Normal file
|
|
@ -0,0 +1,398 @@
|
|||
# https://discourse.nixos.org/t/combining-best-of-system-firefox-and-home-manager-firefox-settings/37721
|
||||
# https://discourse.nixos.org/t/declare-firefox-extensions-and-settings/36265
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.file.".mozilla/firefox/default/chrome/" = {
|
||||
source = ./firefox_css;
|
||||
force = true;
|
||||
recursive = true;
|
||||
};
|
||||
|
||||
home.file.".mozilla/firefox/default/chrome/colors.css" = with config.scheme.withHashtag; {
|
||||
text = ''
|
||||
* {
|
||||
--accent: ${config.scheme.withHashtag.${config.colors.accent}};
|
||||
--rosewater: ${base06};
|
||||
--flamingo: ${base0F};
|
||||
--pink: ${base17};
|
||||
--mauve: ${base0E};
|
||||
--red: ${base08};
|
||||
--maroon: ${base12};
|
||||
--peach: ${base09};
|
||||
--yellow: ${base0A};
|
||||
--green: ${base0B};
|
||||
--teal: ${base0C};
|
||||
--sky: ${base15};
|
||||
--sapphire: ${base16};
|
||||
--blue: ${base0D};
|
||||
--lavender: ${base07};
|
||||
--text: ${base05};
|
||||
--subtext1: ${base04};
|
||||
--subtext0: ${base04};
|
||||
--overlay2: ${base03};
|
||||
--overlay1: ${base03};
|
||||
--overlay0: ${base03};
|
||||
--surface2: ${base02};
|
||||
--surface1: ${base01};
|
||||
--surface0: ${base01};
|
||||
--base: ${base00};
|
||||
--mantle: ${base10};
|
||||
--crust: ${base11};
|
||||
}
|
||||
'';
|
||||
force = true;
|
||||
};
|
||||
|
||||
home.file.".local/share/firefoxpwa/profiles/01KEYXH9TC4B54J5CTPNE75JP0/prefs.js" = {
|
||||
text = ''
|
||||
user_pref("firefoxpwa.alwaysUseNativeWindowControls", true);
|
||||
user_pref("firefoxpwa.displayUrlBar", 1);
|
||||
user_pref("firefoxpwa.enableHidingIconBar", true);
|
||||
user_pref("firefoxpwa.dynamicWindowTitle", true);
|
||||
user_pref("ui.key.menuAccessKeyFocuses", false);
|
||||
user_pref("browser.aboutConfig.showWarning", false);
|
||||
user_pref("browser.ml.enable", false);
|
||||
'';
|
||||
force = true;
|
||||
};
|
||||
|
||||
programs = {
|
||||
firefoxpwa = {
|
||||
enable = true;
|
||||
settings.config = {
|
||||
always_patch = false;
|
||||
runtime_enable_wayland = true;
|
||||
runtime_use_xinput2 = true;
|
||||
runtime_use_portals = true;
|
||||
use_linked_runtime = false;
|
||||
};
|
||||
profiles = {
|
||||
"01KEYXH9TC4B54J5CTPNE75JP0".sites."01KEYXHK7XQQJ0M3J7SX4VD9PG" = {
|
||||
name = "WhatsApp";
|
||||
url = "https://web.whatsapp.com/";
|
||||
manifestUrl = "https://web.whatsapp.com/data/manifest.json";
|
||||
desktopEntry = {
|
||||
icon = "${pkgs.morewaita-icon-theme}/share/icons/MoreWaita/scalable/apps/whatsapp.svg";
|
||||
categories = [
|
||||
"Network"
|
||||
"Chat"
|
||||
"Telephony"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
firefox = {
|
||||
enable = true;
|
||||
package = pkgs.firefox.override {
|
||||
nativeMessagingHosts = with pkgs; [
|
||||
firefoxpwa
|
||||
];
|
||||
};
|
||||
policies = {
|
||||
BlockAboutConfig = false;
|
||||
DefaultDownloadDirectory = "\${home}/Downloads";
|
||||
# Check about:support for extension/add-on ID strings.
|
||||
# Valid strings for installation_mode are "allowed", "blocked",
|
||||
# "force_installed" and "normal_installed".
|
||||
ExtensionSettings = {
|
||||
"*".installation_mode = "blocked";
|
||||
"uBlock0@raymondhill.net".installation_mode = "allowed";
|
||||
"gdpr@cavi.au.dk".installation_mode = "allowed";
|
||||
"{5cce4ab5-3d47-41b9-af5e-8203eea05245}".installation_mode = "allowed";
|
||||
"jid1-MnnxcxisBPnSXQ@jetpack".installation_mode = "allowed";
|
||||
"firefoxpwa@filips.si".installation_mode = "allowed";
|
||||
"sponsorBlocker@ajay.app".installation_mode = "allowed";
|
||||
"{7a7a4a92-a2a0-41d1-9fd7-1e92480d612d}".installation_mode = "allowed";
|
||||
"{aecec67f-0d10-4fa7-b7c7-609a2db280cf}".installation_mode = "allowed";
|
||||
"{446900e4-71c2-419f-a6a7-df9c091e268b}".installation_mode = "allowed";
|
||||
"CanvasBlocker@kkapsner.de".installation_mode = "allowed";
|
||||
"shinigamieyes@shinigamieyes".installation_mode = "allowed";
|
||||
"deArrow@ajay.app".installation_mode = "allowed";
|
||||
};
|
||||
DisableTelemetry = true;
|
||||
DisableFirefoxStudies = true;
|
||||
EnableTrackingProtection = {
|
||||
Value = true;
|
||||
Locked = true;
|
||||
Cryptomining = true;
|
||||
Fingerprinting = true;
|
||||
};
|
||||
DisablePocket = true;
|
||||
DisableFirefoxAccounts = true;
|
||||
DisableAccounts = true;
|
||||
DisableFirefoxScreenshots = true;
|
||||
OverrideFirstRunPage = "";
|
||||
OverridePostUpdatePage = "";
|
||||
DontCheckDefaultBrowser = true;
|
||||
DisplayBookmarksToolbar = "newtab"; # alternatives: "always" or "newtab"
|
||||
DisplayMenuBar = "always"; # alternatives: "always", "never" or "default-on"
|
||||
SearchBar = "unified"; # alternative: "separate"
|
||||
};
|
||||
profiles = {
|
||||
default = {
|
||||
id = 0;
|
||||
name = "default";
|
||||
isDefault = true;
|
||||
extensions = {
|
||||
force = true;
|
||||
packages = with pkgs.nur.repos.rycee.firefox-addons; [
|
||||
ublock-origin
|
||||
stylus
|
||||
violentmonkey
|
||||
consent-o-matic
|
||||
privacy-badger
|
||||
sponsorblock
|
||||
pwas-for-firefox
|
||||
control-panel-for-twitter
|
||||
bitwarden
|
||||
canvasblocker
|
||||
shinigami-eyes
|
||||
dearrow
|
||||
];
|
||||
settings = {
|
||||
"{7a7a4a92-a2a0-41d1-9fd7-1e92480d612d}".settings = {
|
||||
force = true;
|
||||
settings = {
|
||||
dbInChromeStorage = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
settings = {
|
||||
"extensions.autoDisableScopes" = 0; # enables all extensions automatically
|
||||
"xpinstall.signatures.required" = false;
|
||||
"extensions.update.autoUpdateDefault" = false;
|
||||
"extensions.update.enabled" = false;
|
||||
"browser.search.defaultenginename" = "searxng";
|
||||
"browser.search.order.1" = "searxng";
|
||||
"browser.toolbars.bookmarks.visibility" = "newtab";
|
||||
|
||||
"signon.rememberSignons" = false;
|
||||
"widget.use-xdg-desktop-portal.file-picker" = 1;
|
||||
"browser.aboutConfig.showWarning" = false;
|
||||
"browser.compactmode.show" = true;
|
||||
"browser.cache.disk.enable" = true; # Set to false if you have a HDD
|
||||
"browser.warnOnQuitShortcut" = false;
|
||||
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
|
||||
"widget.disable-workspace-management" = true;
|
||||
"browser.contentblocking.category" = {
|
||||
Value = "strict";
|
||||
Status = "locked";
|
||||
};
|
||||
"widget.gtk.global-menu.enabled" = true;
|
||||
"widget.gtk.global-menu.wayland.enabled" = true;
|
||||
"browser.tabs.inTitlebar" = 0;
|
||||
"extensions.pocket.enabled" = false;
|
||||
"extensions.screenshots.disabled" = true;
|
||||
"browser.topsites.contile.enabled" = false;
|
||||
"browser.formfill.enable" = false;
|
||||
"browser.search.suggest.enabled" = false;
|
||||
"browser.search.suggest.enabled.private" = false;
|
||||
"browser.urlbar.suggest.searches" = false;
|
||||
"browser.urlbar.showSearchSuggestionsFirst" = false;
|
||||
"browser.newtabpage.activity-stream.feeds.section.topstories" = false;
|
||||
"browser.newtabpage.activity-stream.feeds.snippets" = false;
|
||||
"browser.newtabpage.activity-stream.feeds.topsites" = false;
|
||||
"browser.newtabpage.activity-stream.section.highlights.includePocket" = false;
|
||||
"browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = false;
|
||||
"browser.newtabpage.activity-stream.section.highlights.includeDownloads" = false;
|
||||
"browser.newtabpage.activity-stream.section.highlights.includeVisited" = false;
|
||||
"browser.newtabpage.activity-stream.showSponsored" = false;
|
||||
"browser.newtabpage.activity-stream.system.showSponsored" = false;
|
||||
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
|
||||
"browser.newtabpage.activity-stream.showWeather" = false;
|
||||
"browser.download.autoHideButton" = false;
|
||||
# "browser.startup.homepage" = "http://localhost:5364/";
|
||||
"browser.tabs.splitview.hasUsed" = true;
|
||||
|
||||
# Disable Firefox's machine learning (AI) features
|
||||
"browser.ml.enable" = false;
|
||||
"browser.ml.chat.enabled" = false;
|
||||
"browser.ml.chat.page" = false;
|
||||
"browser.ai.control.default" = "blocked";
|
||||
"browser.ai.control.linkPreviewKeyPoints" = "blocked";
|
||||
"browser.ai.control.pdfjsAltText" = "blocked";
|
||||
"browser.ai.control.sidebarChatbot" = "blocked";
|
||||
"browser.ai.control.smartTabGroups" = "blocked";
|
||||
"browser.ai.control.translations" = "blocked";
|
||||
"sidebar.notification.badge.aichat" = false;
|
||||
|
||||
# For browser toolbox/live editing user CSS
|
||||
"devtools.chrome.enabled" = true;
|
||||
"devtools.debugger.remote-enabled" = true;
|
||||
|
||||
# Vertical tabs
|
||||
"sidebar.verticalTabs" = true;
|
||||
"sidebar.verticalTabs.dragToPinPromo.dismissed" = true;
|
||||
"browser.uiCustomization.state" = {
|
||||
placements = {
|
||||
widget-overflow-fixed-list = [ ];
|
||||
unified-extensions-area = [
|
||||
"sponsorblocker_ajay_app-browser-action"
|
||||
"ublock0_raymondhill_net-browser-action"
|
||||
"jid1-mnnxcxisbpnsxq_jetpack-browser-action"
|
||||
"gdpr_cavi_au_dk-browser-action"
|
||||
"firefoxpwa_filips_si-browser-action"
|
||||
"canvasblocker_kkapsner_de-browser-action"
|
||||
"_5cce4ab5-3d47-41b9-af5e-8203eea05245_-browser-action"
|
||||
"_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action"
|
||||
"_aecec67f-0d10-4fa7-b7c7-609a2db280cf_-browser-action"
|
||||
"_7a7a4a92-a2a0-41d1-9fd7-1e92480d612d_-browser-action"
|
||||
"dearrow_ajay_app-browser-action"
|
||||
];
|
||||
nav-bar = [
|
||||
# "sidebar-button"
|
||||
"back-button"
|
||||
"forward-button"
|
||||
"stop-reload-button"
|
||||
"urlbar-container"
|
||||
"unified-extensions-button"
|
||||
"downloads-button"
|
||||
];
|
||||
toolbar-menubar = [ "menubar-items" ];
|
||||
TabsToolbar = [ ];
|
||||
vertical-tabs = [ "tabbrowser-tabs" ];
|
||||
PersonalToolbar = [ "personal-bookmarks" ];
|
||||
};
|
||||
seen = [
|
||||
"gdpr_cavi_au_dk-browser-action"
|
||||
"firefoxpwa_filips_si-browser-action"
|
||||
"jid1-mnnxcxisbpnsxq_jetpack-browser-action"
|
||||
"canvasblocker_kkapsner_de-browser-action"
|
||||
"_5cce4ab5-3d47-41b9-af5e-8203eea05245_-browser-action"
|
||||
"ublock0_raymondhill_net-browser-action"
|
||||
"_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action"
|
||||
"_aecec67f-0d10-4fa7-b7c7-609a2db280cf_-browser-action"
|
||||
"_7a7a4a92-a2a0-41d1-9fd7-1e92480d612d_-browser-action"
|
||||
"sponsorblocker_ajay_app-browser-action"
|
||||
"dearrow_ajay_app-browser-action"
|
||||
"developer-button"
|
||||
];
|
||||
dirtyAreaCache = [
|
||||
"unified-extensions-area"
|
||||
"nav-bar"
|
||||
"TabsToolbar"
|
||||
"vertical-tabs"
|
||||
"PersonalToolbar"
|
||||
"toolbar-menubar"
|
||||
];
|
||||
currentVersion = 23;
|
||||
newElementCount = 1;
|
||||
};
|
||||
|
||||
"privacy.resistFingerprinting" = false;
|
||||
"privacy.clearOnShutdown.history" = false;
|
||||
"privacy.clearOnShutdown.downloads" = false;
|
||||
"webgl.disabled" = false;
|
||||
"privacy.clearOnShutdown_v2.cookiesAndStorage" = false;
|
||||
};
|
||||
bookmarks = {
|
||||
force = true;
|
||||
settings = [
|
||||
{
|
||||
name = "Nix sites";
|
||||
toolbar = true;
|
||||
bookmarks = [
|
||||
{
|
||||
name = "NixOS";
|
||||
url = "https://nixos.org/";
|
||||
}
|
||||
{
|
||||
name = "Home Manager Appendix A";
|
||||
url = "https://nix-community.github.io/home-manager/options.xhtml";
|
||||
}
|
||||
{
|
||||
name = "NixOS config";
|
||||
url = "https://ovips.us.to/git/sckova/nix";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
search =
|
||||
let
|
||||
nixIcon = "/run/current-system/sw/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
searchIcon = "${pkgs.adwaita-icon-theme}/share/icons/Adwaita/scalable/places/folder-saved-search-symbolic.svg";
|
||||
in
|
||||
{
|
||||
force = true;
|
||||
default = "searxng";
|
||||
order = [
|
||||
"searxng"
|
||||
];
|
||||
engines = {
|
||||
nix-packages = {
|
||||
name = "Nix Packages";
|
||||
urls = [
|
||||
{
|
||||
template = "https://search.nixos.org/packages";
|
||||
params = [
|
||||
{
|
||||
name = "type";
|
||||
value = "packages";
|
||||
}
|
||||
{
|
||||
name = "query";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
|
||||
icon = nixIcon;
|
||||
definedAliases = [ "@np" ];
|
||||
};
|
||||
|
||||
nix-options = {
|
||||
name = "Nix Options";
|
||||
urls = [
|
||||
{
|
||||
template = "https://search.nixos.org/options";
|
||||
params = [
|
||||
{
|
||||
name = "type";
|
||||
value = "packages";
|
||||
}
|
||||
{
|
||||
name = "query";
|
||||
value = "{searchTerms}";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
|
||||
icon = nixIcon;
|
||||
definedAliases = [ "@no" ];
|
||||
};
|
||||
|
||||
nixos-wiki = {
|
||||
name = "NixOS Wiki";
|
||||
urls = [ { template = "https://wiki.nixos.org/w/index.php?search={searchTerms}"; } ];
|
||||
icon = nixIcon;
|
||||
definedAliases = [ "@nw" ];
|
||||
};
|
||||
|
||||
searxng = {
|
||||
name = "SearXNG";
|
||||
urls = [ { template = "http://localhost:5364/search?q={searchTerms}"; } ];
|
||||
icon = searchIcon;
|
||||
definedAliases = [ "@go" ];
|
||||
};
|
||||
|
||||
wikipedia = {
|
||||
name = "Wikipedia";
|
||||
urls = [ { template = "https://en.wikipedia.org/w/index.php?search={searchTerms}"; } ];
|
||||
definedAliases = [ "@wi" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
25
home/sckova/apps/firefox_css/theme/hide.css
Normal file
25
home/sckova/apps/firefox_css/theme/hide.css
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
#tracking-protection-icon-container {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.bookmark-item[container] {
|
||||
list-style-image: url("chrome://global/skin/dirListing/folder.png") !important;
|
||||
}
|
||||
|
||||
#toolbar-menubar {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
#menubar-items {
|
||||
visibility: hidden !important;
|
||||
}
|
||||
|
||||
/*.browserContainer {
|
||||
border-radius: 8px !important;
|
||||
margin: 6px !important;
|
||||
background-color: transparent !important;
|
||||
}
|
||||
|
||||
browser {
|
||||
border-radius: 8px !important;
|
||||
}*/
|
||||
459
home/sckova/apps/firefox_css/theme/theme-new.css
Normal file
459
home/sckova/apps/firefox_css/theme/theme-new.css
Normal file
|
|
@ -0,0 +1,459 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
/* DO NOT EDIT this file directly, instead modify design-tokens.json
|
||||
* and run `npm run build` to see your changes. */
|
||||
|
||||
@import "../colors.css";
|
||||
|
||||
@layer tokens-foundation, tokens-prefers-contrast, tokens-forced-colors;
|
||||
|
||||
@layer tokens-foundation {
|
||||
:root,
|
||||
:host(.anonymous-content-host) {
|
||||
/** Background Color **/
|
||||
--background-color-box: var(--base) !important;
|
||||
--background-color-critical: var(--maroon) !important;
|
||||
--background-color-information: var(--sapphire) !important;
|
||||
--background-color-success: var(--teal) !important;
|
||||
--background-color-warning: var(--peach) !important;
|
||||
--promo-background-color: var(--background-color-information) !important;
|
||||
--table-row-background-color: var(--mantle) !important;
|
||||
|
||||
/** Border **/
|
||||
--border-color-card: color-mix(
|
||||
in srgb,
|
||||
currentColor 10%,
|
||||
transparent
|
||||
) !important;
|
||||
--border-color-interactive-hover: var(
|
||||
--border-color-interactive
|
||||
) !important;
|
||||
--border-color-interactive-active: var(
|
||||
--border-color-interactive
|
||||
) !important;
|
||||
--border-color-interactive-disabled: var(
|
||||
--border-color-interactive
|
||||
) !important;
|
||||
--border-color-selected: var(--accent) !important;
|
||||
--border-color-transparent: transparent !important;
|
||||
--border-radius-circle: 9999px !important;
|
||||
--border-radius-xsmall: 2px !important;
|
||||
--border-radius-small: 4px !important;
|
||||
--border-radius-medium: 8px !important;
|
||||
--border-radius-large: 16px !important;
|
||||
--border-width: 0px !important;
|
||||
|
||||
/** Box Shadow **/
|
||||
--box-shadow-card: var(--box-shadow-level-2) !important;
|
||||
--box-shadow-card-hover: var(--box-shadow-level-4) !important;
|
||||
--box-shadow-color-darker-layer-1: rgba(0, 0, 0, 0.15) !important;
|
||||
--box-shadow-color-darker-layer-2: rgba(0, 0, 0, 0.2) !important;
|
||||
--box-shadow-color-lighter-layer-1: rgba(0, 0, 0, 0.05) !important;
|
||||
--box-shadow-color-lighter-layer-2: rgba(0, 0, 0, 0.1) !important;
|
||||
--box-shadow-level-1:
|
||||
0 0 1px var(--box-shadow-color-darker-layer-1),
|
||||
0 1px 2px var(--box-shadow-color-darker-layer-2) !important;
|
||||
--box-shadow-level-2:
|
||||
0 0.25px 0.75px var(--box-shadow-color-lighter-layer-1),
|
||||
0 2px 6px var(--box-shadow-color-lighter-layer-2) !important;
|
||||
--box-shadow-level-3:
|
||||
0 0.375px 1.5px var(--box-shadow-color-lighter-layer-1),
|
||||
0 3px 12px var(--box-shadow-color-lighter-layer-2) !important;
|
||||
--box-shadow-level-4:
|
||||
0 0.5px 2px var(--box-shadow-color-lighter-layer-1),
|
||||
0 4px 16px var(--box-shadow-color-lighter-layer-2) !important;
|
||||
--box-shadow-popup: var(--box-shadow-level-3) !important;
|
||||
--box-shadow-tab: var(--box-shadow-level-1) !important;
|
||||
|
||||
/** Button **/
|
||||
--button-background-color-disabled: var(
|
||||
--button-background-color
|
||||
) !important;
|
||||
--button-background-color-destructive: var(--red) !important;
|
||||
--button-background-color-destructive-hover: color-mix(
|
||||
in srgb,
|
||||
var(--red),
|
||||
var(--text) 10%
|
||||
) !important;
|
||||
--button-background-color-destructive-active: color-mix(
|
||||
in srgb,
|
||||
var(--red),
|
||||
var(--text) 20%
|
||||
) !important;
|
||||
--button-background-color-destructive-disabled: var(
|
||||
--button-background-color-destructive
|
||||
) !important;
|
||||
--button-background-color-destructive-selected: var(
|
||||
--button-background-color-destructive-active
|
||||
) !important;
|
||||
--button-background-color-ghost: transparent !important;
|
||||
--button-background-color-ghost-hover: var(
|
||||
--button-background-color-hover
|
||||
) !important;
|
||||
--button-background-color-ghost-active: var(
|
||||
--button-background-color-active
|
||||
) !important;
|
||||
--button-background-color-ghost-disabled: var(
|
||||
--button-background-color-ghost
|
||||
) !important;
|
||||
--button-background-color-ghost-selected: var(
|
||||
--button-background-color-ghost-active
|
||||
) !important;
|
||||
--button-background-color-primary: var(--accent) !important;
|
||||
--button-background-color-primary-hover: color-mix(
|
||||
in srgb,
|
||||
var(--accent),
|
||||
var(--text) 10%
|
||||
) !important;
|
||||
--button-background-color-primary-active: color-mix(
|
||||
in srgb,
|
||||
var(--accent),
|
||||
var(--text) 20%
|
||||
) !important;
|
||||
--button-background-color-primary-disabled: var(
|
||||
--button-background-color-primary
|
||||
) !important;
|
||||
--button-background-color-primary-selected: var(
|
||||
--button-background-color-primary-active
|
||||
) !important;
|
||||
--button-background-color-selected: var(
|
||||
--button-background-color-active
|
||||
) !important;
|
||||
--button-border: var(--border-width) solid var(--button-border-color) !important;
|
||||
--button-border-color: transparent !important;
|
||||
--button-border-color-hover: var(--button-border-color) !important;
|
||||
--button-border-color-active: var(--button-border-color) !important;
|
||||
--button-border-color-disabled: var(--button-border-color) !important;
|
||||
--button-border-color-destructive: transparent !important;
|
||||
--button-border-color-destructive-hover: var(
|
||||
--button-border-color-destructive
|
||||
) !important;
|
||||
--button-border-color-destructive-active: var(
|
||||
--button-border-color-destructive
|
||||
) !important;
|
||||
--button-border-color-destructive-disabled: var(
|
||||
--button-border-color-destructive
|
||||
) !important;
|
||||
--button-border-color-destructive-selected: var(
|
||||
--button-border-color-destructive-active
|
||||
) !important;
|
||||
--button-border-color-ghost: var(--button-border-color) !important;
|
||||
--button-border-color-ghost-hover: var(
|
||||
--button-border-color-hover
|
||||
) !important;
|
||||
--button-border-color-ghost-active: var(
|
||||
--button-border-color-active
|
||||
) !important;
|
||||
--button-border-color-ghost-disabled: var(
|
||||
--button-border-color-disabled
|
||||
) !important;
|
||||
--button-border-color-ghost-selected: var(
|
||||
--button-border-color-ghost-active
|
||||
) !important;
|
||||
--button-border-color-primary: transparent !important;
|
||||
--button-border-color-primary-hover: var(
|
||||
--button-border-color-primary
|
||||
) !important;
|
||||
--button-border-color-primary-active: var(
|
||||
--button-border-color-primary
|
||||
) !important;
|
||||
--button-border-color-primary-disabled: var(
|
||||
--button-border-color-primary
|
||||
) !important;
|
||||
--button-border-color-primary-selected: var(
|
||||
--button-border-color-primary-active
|
||||
) !important;
|
||||
--button-border-color-selected: var(
|
||||
--button-border-color-active
|
||||
) !important;
|
||||
--button-border-radius: var(--border-radius-medium) !important;
|
||||
--button-font-size: var(--font-size-root) !important;
|
||||
--button-font-size-small: var(--font-size-small) !important;
|
||||
--button-font-weight: var(--font-weight-semibold) !important;
|
||||
--button-icon-fill: currentColor !important;
|
||||
--button-icon-stroke: var(--button-icon-fill) !important;
|
||||
--button-min-height: var(--size-item-large) !important;
|
||||
--button-min-height-small: var(--size-item-medium) !important;
|
||||
--button-opacity-disabled: 0.5 !important;
|
||||
--button-padding: var(--space-xsmall) var(--space-large) !important;
|
||||
--button-padding-icon: 0 !important;
|
||||
--button-size-icon: var(--button-min-height) !important;
|
||||
--button-size-icon-small: var(--button-min-height-small) !important;
|
||||
--button-text-color-hover: var(--button-text-color) !important;
|
||||
--button-text-color-active: var(--button-text-color) !important;
|
||||
--button-text-color-disabled: var(--button-text-color) !important;
|
||||
--button-text-color-destructive: var(--crust) !important;
|
||||
--button-text-color-destructive-hover: var(
|
||||
--button-text-color-destructive
|
||||
) !important;
|
||||
--button-text-color-destructive-active: var(
|
||||
--button-text-color-destructive
|
||||
) !important;
|
||||
--button-text-color-destructive-disabled: var(
|
||||
--button-text-color-destructive
|
||||
) !important;
|
||||
--button-text-color-destructive-selected: var(
|
||||
--button-text-color-destructive-active
|
||||
) !important;
|
||||
--button-text-color-ghost: inherit !important;
|
||||
--button-text-color-ghost-hover: inherit !important;
|
||||
--button-text-color-ghost-active: inherit !important;
|
||||
--button-text-color-ghost-disabled: inherit !important;
|
||||
--button-text-color-ghost-selected: var(
|
||||
--button-text-color-ghost-active
|
||||
) !important;
|
||||
--button-text-color-primary-hover: var(
|
||||
--button-text-color-primary
|
||||
) !important;
|
||||
--button-text-color-primary-active: var(
|
||||
--button-text-color-primary-hover
|
||||
) !important;
|
||||
--button-text-color-primary-disabled: var(
|
||||
--button-text-color-primary
|
||||
) !important;
|
||||
--button-text-color-primary-selected: var(
|
||||
--button-text-color-primary-active
|
||||
) !important;
|
||||
--button-text-color-selected: var(--button-text-color-active) !important;
|
||||
|
||||
/** Checkbox **/
|
||||
--checkbox-margin-inline: var(--space-small) !important;
|
||||
--checkbox-size: var(--size-item-small) !important;
|
||||
|
||||
/** Focus Outline **/
|
||||
--focus-outline: var(--focus-outline-width) solid var(--focus-outline-color) !important;
|
||||
--focus-outline-color: var(--accent) !important;
|
||||
--focus-outline-inset: calc(-1 * var(--focus-outline-width)) !important;
|
||||
--focus-outline-offset: 2px !important;
|
||||
--focus-outline-width: 2px !important;
|
||||
|
||||
/** Font Weight **/
|
||||
--font-weight: normal !important;
|
||||
--font-weight-bold: 700 !important;
|
||||
--font-weight-semibold: 600 !important;
|
||||
|
||||
/** Heading **/
|
||||
--heading-font-size-medium: var(--font-size-large) !important;
|
||||
--heading-font-size-large: var(--font-size-xlarge) !important;
|
||||
--heading-font-size-xlarge: var(--font-size-xxlarge) !important;
|
||||
--heading-font-weight: var(--font-weight-semibold) !important;
|
||||
|
||||
/** Icon **/
|
||||
--icon-color: var(--subtext1) !important;
|
||||
--icon-color-critical: var(--red) !important;
|
||||
--icon-color-information: var(--sky) !important;
|
||||
--icon-color-success: var(--green) !important;
|
||||
--icon-color-warning: var(--yellow) !important;
|
||||
--icon-size: var(--icon-size-small) !important;
|
||||
--icon-size-xsmall: var(--size-item-xsmall) !important;
|
||||
--icon-size-small: var(--size-item-small) !important;
|
||||
--icon-size-medium: 20px !important;
|
||||
--icon-size-large: var(--size-item-medium) !important;
|
||||
--icon-size-xlarge: var(--size-item-large) !important;
|
||||
|
||||
/** Input - Text **/
|
||||
--input-text-min-height: var(--button-min-height) !important;
|
||||
|
||||
/** Link **/
|
||||
--link-focus-outline-offset: 1px !important;
|
||||
|
||||
/** Outline Color **/
|
||||
--outline-color-error: var(--red) !important;
|
||||
|
||||
/** Size **/
|
||||
--size-item-xsmall: 12px !important;
|
||||
--size-item-small: 16px !important;
|
||||
--size-item-medium: 24px !important;
|
||||
--size-item-large: 32px !important;
|
||||
--size-item-xlarge: 48px !important;
|
||||
|
||||
/** Space **/
|
||||
--space-xxsmall: calc(0.5 * var(--space-xsmall)) !important;
|
||||
--space-xsmall: 0.267rem !important;
|
||||
--space-small: calc(2 * var(--space-xsmall)) !important;
|
||||
--space-medium: calc(3 * var(--space-xsmall)) !important;
|
||||
--space-large: calc(4 * var(--space-xsmall)) !important;
|
||||
--space-xlarge: calc(6 * var(--space-xsmall)) !important;
|
||||
--space-xxlarge: calc(8 * var(--space-xsmall)) !important;
|
||||
|
||||
/** Text **/
|
||||
--text-color-disabled: color-mix(
|
||||
in srgb,
|
||||
currentColor 40%,
|
||||
transparent
|
||||
) !important;
|
||||
--text-color-deemphasized: color-mix(
|
||||
in srgb,
|
||||
currentColor 69%,
|
||||
transparent
|
||||
) !important;
|
||||
--text-color-error: var(--red) !important;
|
||||
}
|
||||
}
|
||||
|
||||
@layer tokens-prefers-contrast {
|
||||
@media (prefers-contrast) {
|
||||
:root,
|
||||
:host(.anonymous-content-host) {
|
||||
/** Attention Dot **/
|
||||
--attention-dot-color: var(--accent) !important;
|
||||
|
||||
/** Background Color **/
|
||||
--background-color-box: var(--base) !important;
|
||||
--background-color-box-info: var(--base) !important;
|
||||
--background-color-canvas: var(--base) !important;
|
||||
--background-color-critical: var(--base) !important;
|
||||
--background-color-information: var(--base) !important;
|
||||
--background-color-success: var(--base) !important;
|
||||
--background-color-warning: var(--base) !important;
|
||||
|
||||
/** Border **/
|
||||
--border-color: var(--text) !important;
|
||||
--border-color-card: color-mix(
|
||||
in srgb,
|
||||
currentColor 41%,
|
||||
transparent
|
||||
) !important;
|
||||
--border-color-deemphasized: currentColor !important;
|
||||
--border-color-interactive: var(--text) !important;
|
||||
--border-color-transparent: var(--text) !important;
|
||||
|
||||
/** Button **/
|
||||
--button-border-color: var(--button-text-color) !important;
|
||||
--button-text-color-ghost-hover: var(
|
||||
--button-text-color-hover
|
||||
) !important;
|
||||
--button-text-color-ghost-active: var(
|
||||
--button-text-color-active
|
||||
) !important;
|
||||
|
||||
/** Icon **/
|
||||
--icon-color: var(--text) !important;
|
||||
--icon-color-critical: var(--icon-color) !important;
|
||||
--icon-color-information: var(--icon-color) !important;
|
||||
--icon-color-success: var(--icon-color) !important;
|
||||
--icon-color-warning: var(--icon-color) !important;
|
||||
|
||||
/** Outline Color **/
|
||||
--outline-color-error: var(--border-color) !important;
|
||||
|
||||
/** Text **/
|
||||
--text-color: var(--text) !important;
|
||||
--text-color-deemphasized: inherit !important;
|
||||
--text-color-error: inherit !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@layer tokens-forced-colors {
|
||||
@media (forced-colors) {
|
||||
:root,
|
||||
:host(.anonymous-content-host) {
|
||||
/** Background Color **/
|
||||
--table-row-background-color-alternate: var(--base) !important;
|
||||
|
||||
/** Border **/
|
||||
--border-color-card: var(--text) !important;
|
||||
--border-color-deemphasized: var(--text) !important;
|
||||
--border-color-interactive: var(--text) !important;
|
||||
--border-color-interactive-hover: var(--accent) !important;
|
||||
--border-color-interactive-active: var(--text) !important;
|
||||
--border-color-interactive-disabled: var(--subtext0) !important;
|
||||
--border-color-selected: var(--accent) !important;
|
||||
|
||||
/** Button **/
|
||||
--button-background-color: var(--surface0) !important;
|
||||
--button-background-color-hover: var(--crust) !important;
|
||||
--button-background-color-active: var(--crust) !important;
|
||||
--button-background-color-disabled: var(--surface0) !important;
|
||||
--button-background-color-destructive: var(
|
||||
--button-background-color-primary
|
||||
) !important;
|
||||
--button-background-color-destructive-hover: var(
|
||||
--button-background-color-primary-hover
|
||||
) !important;
|
||||
--button-background-color-destructive-active: var(
|
||||
--button-background-color-primary-active
|
||||
) !important;
|
||||
--button-background-color-destructive-disabled: var(
|
||||
--button-background-color-primary-disabled
|
||||
) !important;
|
||||
--button-background-color-primary-disabled: var(
|
||||
--button-text-color-disabled
|
||||
) !important;
|
||||
--button-border-color: var(--border-color-interactive) !important;
|
||||
--button-border-color-hover: var(
|
||||
--border-color-interactive-hover
|
||||
) !important;
|
||||
--button-border-color-active: var(
|
||||
--border-color-interactive-active
|
||||
) !important;
|
||||
--button-border-color-disabled: var(
|
||||
--border-color-interactive-disabled
|
||||
) !important;
|
||||
--button-border-color-destructive: var(
|
||||
--button-border-color-primary
|
||||
) !important;
|
||||
--button-border-color-destructive-hover: var(
|
||||
--button-border-color-primary-hover
|
||||
) !important;
|
||||
--button-border-color-destructive-active: var(
|
||||
--button-border-color-primary-active
|
||||
) !important;
|
||||
--button-border-color-destructive-disabled: var(
|
||||
--button-border-color-primary-disabled
|
||||
) !important;
|
||||
--button-border-color-primary: var(--surface0) !important;
|
||||
--button-border-color-primary-hover: var(--crust) !important;
|
||||
--button-border-color-primary-active: var(--text) !important;
|
||||
--button-opacity-disabled: 1 !important;
|
||||
--button-text-color: var(--text) !important;
|
||||
--button-text-color-hover: var(--accent) !important;
|
||||
--button-text-color-active: var(--accent) !important;
|
||||
--button-text-color-disabled: var(--subtext0) !important;
|
||||
--button-text-color-destructive: var(
|
||||
--button-text-color-primary
|
||||
) !important;
|
||||
--button-text-color-destructive-hover: var(
|
||||
--button-text-color-primary-hover
|
||||
) !important;
|
||||
--button-text-color-destructive-active: var(
|
||||
--button-text-color-primary-active
|
||||
) !important;
|
||||
--button-text-color-destructive-disabled: var(
|
||||
--button-text-color-primary-disabled
|
||||
) !important;
|
||||
--button-text-color-ghost-hover: var(
|
||||
--button-text-color-hover
|
||||
) !important;
|
||||
--button-text-color-ghost-active: var(
|
||||
--button-text-color-active
|
||||
) !important;
|
||||
--button-text-color-primary: var(--surface0) !important;
|
||||
--button-text-color-primary-hover: var(--crust) !important;
|
||||
|
||||
/** Color **/
|
||||
--color-accent-primary: var(--text) !important;
|
||||
--color-accent-primary-hover: var(--accent) !important;
|
||||
--color-accent-primary-active: var(
|
||||
--color-accent-primary-hover
|
||||
) !important;
|
||||
--color-accent-primary-selected: var(--accent) !important;
|
||||
|
||||
/** Focus Outline **/
|
||||
--focus-outline-color: var(--text) !important;
|
||||
|
||||
/** Link **/
|
||||
--link-color: var(--blue) !important;
|
||||
--link-color-hover: var(--blue) !important;
|
||||
--link-color-active: var(--red) !important;
|
||||
--link-color-visited: var(--link-color) !important;
|
||||
|
||||
/** Text **/
|
||||
--text-color-disabled: var(--subtext0) !important;
|
||||
--text-color-accent-primary-selected: var(--crust) !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
396
home/sckova/apps/firefox_css/theme/theme.css
Normal file
396
home/sckova/apps/firefox_css/theme/theme.css
Normal file
|
|
@ -0,0 +1,396 @@
|
|||
@import "../colors.css";
|
||||
|
||||
/* ========================================================================
|
||||
global variables
|
||||
======================================================================== */
|
||||
:root {
|
||||
--border-color-card: 1px solid var(--surface0) !important;
|
||||
--urlbar-container-border-width: 1px !important;
|
||||
--urlbar-container-border-color: var(--surface0) !important;
|
||||
|
||||
/* arrow panels */
|
||||
--arrowpanel-background: var(--surface0) !important;
|
||||
--arrowpanel-border-color: var(--surface1) !important;
|
||||
--arrowpanel-color: var(--text) !important;
|
||||
--arrowpanel-dimmed-even-further: var(--overlay0) !important;
|
||||
--arrowpanel-dimmed-further: var(--subtext1) !important;
|
||||
--arrowpanel-dimmed: var(--subtext0) !important;
|
||||
--default-arrowpanel-background: var(--surface0) !important;
|
||||
--default-arrowpanel-border-color: var(--surface1) !important;
|
||||
--default-arrowpanel-color: var(--text) !important;
|
||||
|
||||
/* autocomplete & popups */
|
||||
--autocomplete-popup-background: var(--mantle) !important;
|
||||
--autocomplete-popup-color: var(--text) !important;
|
||||
--autocomplete-popup-highlight-background: var(--surface1) !important;
|
||||
--autocomplete-popup-highlight-color: var(--text) !important;
|
||||
--urlbar-popup-action-color: var(--accent) !important;
|
||||
--urlbar-popup-url-color: var(--blue) !important;
|
||||
--urlbar-separator-color: var(--surface0) !important;
|
||||
|
||||
/* buttons (global) */
|
||||
--backbutton-active-background: var(--surface1) !important;
|
||||
--backbutton-background: transparent !important;
|
||||
--backbutton-border-color: transparent !important;
|
||||
--backbutton-hover-background: var(--surface0) !important;
|
||||
--cfr-active-color: var(--accent) !important;
|
||||
--cfr-button-addons-icon: var(--text) !important;
|
||||
--cfr-button-features-icon: var(--text) !important;
|
||||
|
||||
/* color palette (blue) */
|
||||
--blue-40-a10: color-mix(in srgb, var(--blue), transparent 90%) !important;
|
||||
--blue-40: var(--blue) !important;
|
||||
--blue-50-a30: color-mix(in srgb, var(--blue), transparent 70%) !important;
|
||||
--blue-50: var(--blue) !important;
|
||||
--blue-60: var(--sapphire) !important;
|
||||
--blue-70: var(--sky) !important;
|
||||
--blue-80: var(--teal) !important;
|
||||
|
||||
/* color palette (green) */
|
||||
--green-50: var(--green) !important;
|
||||
--green-60: var(--green) !important;
|
||||
--green-70: var(--teal) !important;
|
||||
--green-80: var(--teal) !important;
|
||||
--green-90: var(--teal) !important;
|
||||
|
||||
/* color palette (grey/overlay) */
|
||||
--grey-20: var(--subtext1) !important;
|
||||
--grey-30: var(--subtext0) !important;
|
||||
--grey-40: var(--overlay2) !important;
|
||||
--grey-60: var(--overlay0) !important;
|
||||
--grey-70: var(--overlay2) !important;
|
||||
--grey-80: var(--overlay2) !important;
|
||||
--grey-90-a10: color-mix(
|
||||
in srgb,
|
||||
var(--surface1),
|
||||
transparent 90%
|
||||
) !important;
|
||||
--grey-90-a20: color-mix(
|
||||
in srgb,
|
||||
var(--surface1),
|
||||
transparent 80%
|
||||
) !important;
|
||||
--grey-90-a30: color-mix(
|
||||
in srgb,
|
||||
var(--surface1),
|
||||
transparent 70%
|
||||
) !important;
|
||||
--grey-90-a50: color-mix(
|
||||
in srgb,
|
||||
var(--surface1),
|
||||
transparent 50%
|
||||
) !important;
|
||||
--grey-90-a60: color-mix(
|
||||
in srgb,
|
||||
var(--surface1),
|
||||
transparent 40%
|
||||
) !important;
|
||||
--grey-90: var(--surface1) !important;
|
||||
|
||||
/* color palette (misc) */
|
||||
--orange-50: var(--peach) !important;
|
||||
--purple-70: var(--mauve) !important;
|
||||
|
||||
/* color palette (red) */
|
||||
--red-50-a30: color-mix(in srgb, var(--red), transparent 70%) !important;
|
||||
--red-50: var(--red) !important;
|
||||
--red-60: var(--maroon) !important;
|
||||
--red-70: var(--maroon) !important;
|
||||
--red-80: var(--maroon) !important;
|
||||
--red-90: var(--maroon) !important;
|
||||
|
||||
/* color palette (yellow) */
|
||||
--yellow-10: var(--yellow) !important;
|
||||
--yellow-50: var(--yellow) !important;
|
||||
--yellow-60-a30: color-mix(
|
||||
in srgb,
|
||||
var(--yellow),
|
||||
transparent 70%
|
||||
) !important;
|
||||
--yellow-60: var(--yellow) !important;
|
||||
--yellow-70: var(--peach) !important;
|
||||
--yellow-80: var(--peach) !important;
|
||||
--yellow-90: var(--peach) !important;
|
||||
|
||||
/* context menus */
|
||||
--menu-background-color: var(--base) !important;
|
||||
--menu-border-color: var(--surface1) !important;
|
||||
--menu-color: var(--text) !important;
|
||||
--menu-disabled-color: var(--overlay0) !important;
|
||||
--menu-icon-opacity: 1 !important;
|
||||
--menuitem-disabled-hover-background-color: transparent !important;
|
||||
--menuitem-hover-background-color: var(--surface1) !important;
|
||||
--panel-disabled-color: var(--overlay0) !important;
|
||||
--panel-separator-color: var(--surface0) !important;
|
||||
|
||||
/* in-content ui (cards & boxes) */
|
||||
--card-outline-color: var(--surface1) !important;
|
||||
--card-shadow-focus: 0 0 0 2px var(--accent) !important;
|
||||
--card-shadow-hover: 0 4px 8px
|
||||
color-mix(in srgb, var(--crust), transparent 80%) !important;
|
||||
--card-shadow: 0 1px 4px color-mix(in srgb, var(--crust), transparent 90%) !important;
|
||||
--in-content-box-background-active: var(--surface1) !important;
|
||||
--in-content-box-background-hover: var(--surface1) !important;
|
||||
--in-content-box-background-odd: var(--mantle) !important;
|
||||
--in-content-box-background: var(--surface0) !important;
|
||||
--in-content-box-border-color: var(--surface1) !important;
|
||||
--in-content-box-info-background: var(--surface0) !important;
|
||||
|
||||
/* in-content ui (colors & text) */
|
||||
--in-content-deemphasized-text: var(--subtext0) !important;
|
||||
--in-content-link-color-active: var(--sky) !important;
|
||||
--in-content-link-color-hover: var(--sapphire) !important;
|
||||
--in-content-link-color-visited: var(--lavender) !important;
|
||||
--in-content-link-color: var(--blue) !important;
|
||||
--in-content-page-background: var(--base) !important;
|
||||
--in-content-page-color: var(--text) !important;
|
||||
--in-content-selected-text: var(--surface2) !important;
|
||||
--in-content-text-color: var(--text) !important;
|
||||
|
||||
/* in-content ui (forms & buttons) */
|
||||
--in-content-border-active-shadow: 0 0 0 2px var(--accent) !important;
|
||||
--in-content-border-active: var(--accent) !important;
|
||||
--in-content-border-color: var(--surface1) !important;
|
||||
--in-content-border-focus: var(--accent) !important;
|
||||
--in-content-border-highlight: var(--blue) !important;
|
||||
--in-content-border-hover: var(--surface2) !important;
|
||||
--in-content-border-invalid-shadow: 0 0 0 2px var(--red) !important;
|
||||
--in-content-border-invalid: var(--red) !important;
|
||||
--in-content-button-background-active: var(--surface1) !important;
|
||||
--in-content-button-background-hover: var(--surface2) !important;
|
||||
--in-content-button-background: var(--surface0) !important;
|
||||
--in-content-category-background-active: var(--surface1) !important;
|
||||
--in-content-category-background-hover: var(--surface0) !important;
|
||||
--in-content-category-background-selected-active: var(--surface2) !important;
|
||||
--in-content-category-background-selected-hover: var(--surface1) !important;
|
||||
--in-content-category-outline-focus: var(--accent) !important;
|
||||
--in-content-category-text-selected-active: var(--accent) !important;
|
||||
--in-content-category-text-selected: var(--accent) !important;
|
||||
--in-content-item-hover: var(--surface0) !important;
|
||||
--in-content-item-selected: var(--surface1) !important;
|
||||
--in-content-primary-button-background-active: var(--maroon) !important;
|
||||
--in-content-primary-button-background-hover: var(--peach) !important;
|
||||
--in-content-primary-button-background: var(--accent) !important;
|
||||
|
||||
/* in-content ui (misc) */
|
||||
--chrome-content-separator-color: var(--surface0) !important;
|
||||
--in-content-dialog-header-background: var(--mantle) !important;
|
||||
--in-content-tab-color: var(--subtext0) !important;
|
||||
--in-content-table-background: var(--mantle) !important;
|
||||
--in-content-table-border-dark-color: var(--surface1) !important;
|
||||
--in-content-table-header-background: var(--surface0) !important;
|
||||
--in-content-warning-container: var(--red) !important;
|
||||
--shadow-10: 0 1px 2px color-mix(in srgb, var(--crust), transparent 90%) !important;
|
||||
--shadow-30: 0 4px 8px color-mix(in srgb, var(--crust), transparent 80%) !important;
|
||||
|
||||
/* lightweight theme (lwt) */
|
||||
--lwt-accent-color: var(--accent) !important;
|
||||
--lwt-sidebar-background-color: var(--mantle) !important;
|
||||
--lwt-sidebar-text-color: var(--text) !important;
|
||||
--lwt-text-color: var(--text) !important;
|
||||
--lwt-toolbar-field-background-color: var(--crust) !important;
|
||||
--lwt-toolbar-field-border-color: var(--surface0) !important;
|
||||
--lwt-toolbar-field-color: var(--text) !important;
|
||||
--lwt-toolbar-field-focus-color: var(--text) !important;
|
||||
--lwt-toolbar-field-focus: var(--accent) !important;
|
||||
--lwt-toolbarbutton-icon-fill: var(--text) !important;
|
||||
|
||||
/* navigator tabs */
|
||||
--tab-line-color: var(--accent) !important;
|
||||
--tab-loading-fill: var(--accent) !important;
|
||||
--tabs-border-color: var(--surface0) !important;
|
||||
|
||||
/* new tab page */
|
||||
--newtab-background-color: var(--base) !important;
|
||||
--newtab-border-primary-color: var(--surface1) !important;
|
||||
--newtab-border-secondary-color: var(--surface0) !important;
|
||||
--newtab-button-primary-color: var(--accent) !important;
|
||||
--newtab-button-secondary-color: var(--surface0) !important;
|
||||
--newtab-card-active-outline-color: var(--accent) !important;
|
||||
--newtab-card-background-color: var(--surface0) !important;
|
||||
--newtab-card-hairline-color: var(--surface1) !important;
|
||||
--newtab-card-placeholder-color: var(--surface1) !important;
|
||||
--newtab-card-shadow: 0 1px 4px
|
||||
color-mix(in srgb, var(--crust), transparent 80%) !important;
|
||||
--newtab-contextmenu-background-color: var(--surface0) !important;
|
||||
--newtab-contextmenu-button-color: var(--text) !important;
|
||||
--newtab-element-active-color: var(--surface1) !important;
|
||||
--newtab-element-hover-color: var(--surface0) !important;
|
||||
--newtab-feed-button-background-faded: var(--surface1) !important;
|
||||
--newtab-feed-button-background: var(--surface0) !important;
|
||||
--newtab-feed-button-spinner: var(--text) !important;
|
||||
--newtab-feed-button-text-faded: var(--subtext0) !important;
|
||||
--newtab-feed-button-text: var(--text) !important;
|
||||
--newtab-icon-primary-color: var(--text) !important;
|
||||
--newtab-icon-secondary-color: var(--subtext0) !important;
|
||||
--newtab-icon-tertiary-color: var(--overlay0) !important;
|
||||
--newtab-inner-box-shadow-color: color-mix(
|
||||
in srgb,
|
||||
var(--crust),
|
||||
transparent 80%
|
||||
) !important;
|
||||
--newtab-link-primary-color: var(--blue) !important;
|
||||
--newtab-link-secondary-color: var(--sapphire) !important;
|
||||
--newtab-modal-color: var(--base) !important;
|
||||
--newtab-overlay-color: color-mix(
|
||||
in srgb,
|
||||
var(--crust),
|
||||
transparent 40%
|
||||
) !important;
|
||||
--newtab-search-border-color: var(--surface0) !important;
|
||||
--newtab-search-dropdown-color: var(--mantle) !important;
|
||||
--newtab-search-dropdown-header-color: var(--subtext1) !important;
|
||||
--newtab-search-header-background-color: var(--base) !important;
|
||||
--newtab-search-icon-color: var(--text) !important;
|
||||
--newtab-search-icon: var(--text) !important;
|
||||
--newtab-search-wordmark-color: var(--text) !important;
|
||||
--newtab-section-active-contextmenu-color: var(--text) !important;
|
||||
--newtab-section-header-text-color: var(--text) !important;
|
||||
--newtab-section-navigation-text-color: var(--subtext0) !important;
|
||||
--newtab-snippets-background-color: var(--surface0) !important;
|
||||
--newtab-snippets-hairline-color: var(--surface1) !important;
|
||||
--newtab-text-conditional-color: var(--red) !important;
|
||||
--newtab-text-primary-color: var(--text) !important;
|
||||
--newtab-text-secondary-color: var(--subtext0) !important;
|
||||
--newtab-textbox-background-color: var(--crust) !important;
|
||||
--newtab-textbox-border: var(--surface0) !important;
|
||||
--newtab-textbox-focus-boxshadow: 0 0 0 2px var(--accent) !important;
|
||||
--newtab-textbox-focus-color: var(--accent) !important;
|
||||
--newtab-topsites-background-color: var(--base) !important;
|
||||
--newtab-topsites-icon-shadow: none !important;
|
||||
--newtab-topsites-label-color: var(--text) !important;
|
||||
--trailhead-card-button-background-active-color: var(--accent) !important;
|
||||
--trailhead-card-button-background-color: var(--surface1) !important;
|
||||
--trailhead-card-button-background-hover-color: var(--surface2) !important;
|
||||
--trailhead-cards-background-color: var(--surface0) !important;
|
||||
--trailhead-header-text-color: var(--text) !important;
|
||||
|
||||
/* notifications */
|
||||
--short-notification-background: var(--surface0) !important;
|
||||
--short-notification-gradient: linear-gradient(
|
||||
var(--surface0),
|
||||
var(--surface0)
|
||||
) !important;
|
||||
|
||||
/* sidebar */
|
||||
--sidebar-background-color: var(--mantle) !important;
|
||||
--sidebar-border-color: var(--surface0) !important;
|
||||
--sidebar-text-color: var(--text) !important;
|
||||
|
||||
/* toolbar & urlbar */
|
||||
--toolbar-bgcolor: var(--mantle) !important;
|
||||
--toolbar-color: var(--text) !important;
|
||||
--toolbar-field-focus-border-color: var(--accent) !important;
|
||||
--toolbar-non-lwt-bgcolor: var(--mantle) !important;
|
||||
--toolbar-non-lwt-textcolor: var(--text) !important;
|
||||
--toolbarbutton-active-background: var(--surface1) !important;
|
||||
--toolbarbutton-focus-outline: var(--accent) !important;
|
||||
--toolbarbutton-hover-background: var(--surface0) !important;
|
||||
--toolbarbutton-icon-fill-attention: var(--blue) !important;
|
||||
}
|
||||
|
||||
/* ========================================================================
|
||||
global component styles
|
||||
======================================================================== */
|
||||
|
||||
#sidebar-main > *[expanded] {
|
||||
background-color: var(--mantle) !important;
|
||||
}
|
||||
|
||||
*,
|
||||
:root {
|
||||
accent-color: var(--accent) !important;
|
||||
}
|
||||
|
||||
#TabsToolbar {
|
||||
background-color: var(--mantle) !important;
|
||||
}
|
||||
|
||||
#sidebar-launcher-splitter:hover {
|
||||
background-color: var(--accent) !important;
|
||||
}
|
||||
|
||||
[_moz-menuactive="true"] {
|
||||
background-color: var(--accent) !important;
|
||||
color: var(--mantle) !important;
|
||||
}
|
||||
|
||||
menupopup {
|
||||
--panel-background: var(--base) !important;
|
||||
--panel-border-color: var(--surface1) !important;
|
||||
--panel-text: var(--text) !important;
|
||||
}
|
||||
|
||||
menuseparator {
|
||||
border-color: var(--surface1) !important;
|
||||
}
|
||||
|
||||
/* ========================================================================
|
||||
overrides & media queries
|
||||
======================================================================== */
|
||||
@media {
|
||||
#PersonalToolbar,
|
||||
#nav-bar {
|
||||
background-color: var(--mantle) !important;
|
||||
}
|
||||
|
||||
:root {
|
||||
/* browser tabs */
|
||||
.tab-background[multiselected] {
|
||||
--focus-outline-color: var(--surface0);
|
||||
}
|
||||
|
||||
.tab-background[selected]:not([multiselected]) {
|
||||
outline: 1px solid var(--surface0);
|
||||
outline-offset: -1px;
|
||||
}
|
||||
|
||||
.tabbrowser-tab[selected="true"] .tab-background {
|
||||
border: 1px solid var(--surface0) !important;
|
||||
}
|
||||
|
||||
#tabbrowser-tabs {
|
||||
--tab-loading-fill: var(--text) !important;
|
||||
}
|
||||
|
||||
/* general variable overrides */
|
||||
--arrowpanel-background: var(--surface0) !important;
|
||||
--arrowpanel-border-color: var(--surface0) !important;
|
||||
--arrowpanel-color: var(--text) !important;
|
||||
--chrome-content-separator-color: var(--surface0) !important;
|
||||
--input-bgcolor: var(--crust) !important;
|
||||
--input-border-color: var(--mantle) !important;
|
||||
--input-color: var(--text) !important;
|
||||
--tab-selected-bgcolor: var(--base) !important;
|
||||
--tab-selected-textcolor: var(--text) !important;
|
||||
--toolbar-bgcolor: var(--mantle) !important;
|
||||
--toolbar-field-background-color: var(--input-bgcolor) !important;
|
||||
--toolbar-field-border-color: var(--input-border-color) !important;
|
||||
--toolbar-field-color: var(--input-color) !important;
|
||||
--toolbar-field-focus-background-color: var(--base) !important;
|
||||
--toolbar-field-focus-border-color: var(--surface0) !important;
|
||||
--toolbarseparator-color: var(--text) !important;
|
||||
--toolbox-non-lwt-bgcolor: var(--crust) !important;
|
||||
--toolbox-non-lwt-textcolor: var(--text) !important;
|
||||
|
||||
/* inputs & selection */
|
||||
#urlbar-input:focus::selection,
|
||||
.searchbar-textbox:focus::selection {
|
||||
background-color: var(--text);
|
||||
color: var(--surface0);
|
||||
}
|
||||
|
||||
/* toolbar buttons */
|
||||
--toolbarbutton-active-background: var(--overlay0) !important;
|
||||
--toolbarbutton-icon-fill: var(--text) !important;
|
||||
--toolbarbutton-icon-fill-attention: var(--text) !important;
|
||||
|
||||
/* urlbar */
|
||||
--urlbarView-highlight-background: var(--overlay0) !important;
|
||||
--urlbarView-highlight-color: var(--text) !important;
|
||||
|
||||
&:where([tabsintitlebar]) {
|
||||
--toolbox-non-lwt-bgcolor-inactive: var(--crust) !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
3
home/sckova/apps/firefox_css/userChrome.css
Normal file
3
home/sckova/apps/firefox_css/userChrome.css
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
@import "./colors.css";
|
||||
@import "./theme/theme.css";
|
||||
@import "./theme/hide.css";
|
||||
48
home/sckova/apps/mpv.nix
Normal file
48
home/sckova/apps/mpv.nix
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.mpv = {
|
||||
enable = true;
|
||||
package = pkgs.mpv;
|
||||
bindings = { };
|
||||
config = with config.scheme.withHashtag; {
|
||||
background-color = "#000000";
|
||||
osd-back-color = base11;
|
||||
osd-border-color = base11;
|
||||
osd-color = base05;
|
||||
osd-shadow-color = base00;
|
||||
sub-font = config.userOptions.fontSans.name;
|
||||
osd-font = config.userOptions.fontSans.name;
|
||||
};
|
||||
scripts = with pkgs.mpvScripts; [
|
||||
uosc
|
||||
mpv-subtitle-lines # requires uosc
|
||||
mpris
|
||||
autosub
|
||||
youtube-upnext
|
||||
youtube-chat
|
||||
mpv-notify-send
|
||||
];
|
||||
scriptOpts = {
|
||||
uosc = {
|
||||
color =
|
||||
with config.scheme;
|
||||
lib.concatStringsSep "," (
|
||||
lib.mapAttrsToList (key: value: "${key}=${value}") {
|
||||
foreground = config.scheme.${config.colors.accent};
|
||||
foreground_text = base01;
|
||||
background = base00;
|
||||
background_text = base05;
|
||||
curtain = base10;
|
||||
success = base0B;
|
||||
error = base08;
|
||||
}
|
||||
);
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
350
home/sckova/apps/vencord.nix
Normal file
350
home/sckova/apps/vencord.nix
Normal file
|
|
@ -0,0 +1,350 @@
|
|||
{
|
||||
autoUpdate = true;
|
||||
autoUpdateNotification = true;
|
||||
useQuickCss = true;
|
||||
themeLinks = [ ];
|
||||
eagerPatches = false;
|
||||
enabledThemes = [ "base16.css" ];
|
||||
enableReactDevtools = false;
|
||||
frameless = false;
|
||||
transparent = true;
|
||||
winCtrlQ = false;
|
||||
disableMinSize = true;
|
||||
winNativeTitleBar = false;
|
||||
plugins = {
|
||||
BadgeAPI.enabled = true;
|
||||
CommandsAPI.enabled = true;
|
||||
ContextMenuAPI.enabled = true;
|
||||
MemberListDecoratorsAPI.enabled = false;
|
||||
MessageAccessoriesAPI.enabled = true;
|
||||
MessageDecorationsAPI.enabled = false;
|
||||
MessageEventsAPI.enabled = true;
|
||||
MessagePopoverAPI.enabled = true;
|
||||
NoticesAPI.enabled = true;
|
||||
ServerListAPI.enabled = false;
|
||||
SettingsStoreAPI.enabled = false;
|
||||
NoTrack = {
|
||||
enabled = true;
|
||||
disableAnalytics = true;
|
||||
};
|
||||
Settings = {
|
||||
enabled = true;
|
||||
settingsLocation = "aboveActivity";
|
||||
};
|
||||
SupportHelper.enabled = true;
|
||||
AlwaysAnimate.enabled = false;
|
||||
AlwaysTrust = {
|
||||
enabled = true;
|
||||
domain = true;
|
||||
file = true;
|
||||
};
|
||||
AnonymiseFileNames = {
|
||||
enabled = false;
|
||||
method = 0;
|
||||
randomisedLength = 7;
|
||||
anonymiseByDefault = true;
|
||||
};
|
||||
"WebRichPresence (arRPC)".enabled = false;
|
||||
BANger = {
|
||||
enabled = false;
|
||||
source = "https://i.imgur.com/wp5q52C.mp4";
|
||||
};
|
||||
BetterFolders = {
|
||||
enabled = false;
|
||||
sidebar = true;
|
||||
showFolderIcon = 1;
|
||||
closeAllHomeButton = false;
|
||||
keepIcons = false;
|
||||
sidebarAnim = true;
|
||||
closeAllFolders = false;
|
||||
forceOpen = false;
|
||||
closeOthers = false;
|
||||
};
|
||||
BetterGifAltText.enabled = false;
|
||||
BetterNotesBox = {
|
||||
enabled = false;
|
||||
hide = false;
|
||||
noSpellCheck = false;
|
||||
};
|
||||
BetterRoleDot = {
|
||||
enabled = false;
|
||||
bothStyles = false;
|
||||
copyRoleColorInProfilePopout = false;
|
||||
};
|
||||
BetterUploadButton.enabled = false;
|
||||
BiggerStreamPreview.enabled = true;
|
||||
BlurNSFW = {
|
||||
enabled = false;
|
||||
blurAmount = 10;
|
||||
};
|
||||
CallTimer = {
|
||||
enabled = true;
|
||||
format = "stopwatch";
|
||||
};
|
||||
ClearURLs.enabled = true;
|
||||
ClientTheme = {
|
||||
enabled = false;
|
||||
color = "31363b";
|
||||
};
|
||||
ColorSighted.enabled = false;
|
||||
ConsoleShortcuts.enabled = false;
|
||||
CopyUserURLs.enabled = false;
|
||||
CrashHandler.enabled = true;
|
||||
CustomRPC.enabled = false;
|
||||
Dearrow = {
|
||||
enabled = false;
|
||||
hideButton = false;
|
||||
replaceElements = 0;
|
||||
dearrowByDefault = true;
|
||||
};
|
||||
Experiments = {
|
||||
enabled = true;
|
||||
toolbarDevMenu = false;
|
||||
};
|
||||
F8Break.enabled = false;
|
||||
FakeNitro = {
|
||||
enabled = true;
|
||||
enableEmojiBypass = true;
|
||||
enableStickerBypass = true;
|
||||
enableStreamQualityBypass = true;
|
||||
transformStickers = true;
|
||||
transformEmojis = true;
|
||||
transformCompoundSentence = false;
|
||||
emojiSize = 48;
|
||||
stickerSize = 160;
|
||||
useHyperLinks = true;
|
||||
hyperLinkText = "{{NAME}}";
|
||||
disableEmbedPermissionCheck = false;
|
||||
};
|
||||
FakeProfileThemes.enabled = false;
|
||||
FavoriteEmojiFirst.enabled = false;
|
||||
FavoriteGifSearch.enabled = false;
|
||||
FixImagesQuality.enabled = false;
|
||||
ForceOwnerCrown.enabled = false;
|
||||
FriendInvites.enabled = false;
|
||||
GameActivityToggle.enabled = false;
|
||||
GifPaste.enabled = false;
|
||||
GreetStickerPicker = {
|
||||
enabled = true;
|
||||
greetMode = "Greet";
|
||||
};
|
||||
iLoveSpam.enabled = false;
|
||||
IgnoreActivities.enabled = false;
|
||||
ImageZoom.enabled = false;
|
||||
KeepCurrentChannel.enabled = false;
|
||||
LastFMRichPresence.enabled = false;
|
||||
LoadingQuotes.enabled = false;
|
||||
MemberCount.enabled = false;
|
||||
MessageClickActions.enabled = false;
|
||||
MessageLinkEmbeds.enabled = false;
|
||||
MessageLogger = {
|
||||
enabled = true;
|
||||
deleteStyle = "text";
|
||||
ignoreBots = false;
|
||||
ignoreSelf = false;
|
||||
ignoreUsers = "";
|
||||
ignoreChannels = "";
|
||||
ignoreGuilds = "";
|
||||
logEdits = true;
|
||||
logDeletes = true;
|
||||
collapseDeleted = false;
|
||||
inlineEdits = true;
|
||||
};
|
||||
MessageTags.enabled = false;
|
||||
MoreCommands.enabled = false;
|
||||
MoreKaomoji.enabled = false;
|
||||
MoreUserTags.enabled = false;
|
||||
Moyai.enabled = false;
|
||||
MutualGroupDMs.enabled = false;
|
||||
NoBlockedMessages.enabled = false;
|
||||
NoDevtoolsWarning.enabled = false;
|
||||
NoF1.enabled = false;
|
||||
NoMosaic.enabled = false;
|
||||
NoPendingCount = {
|
||||
enabled = true;
|
||||
hideFriendRequestsCount = true;
|
||||
hideMessageRequestsCount = true;
|
||||
hidePremiumOffersCount = true;
|
||||
};
|
||||
NoProfileThemes.enabled = true;
|
||||
NoReplyMention.enabled = false;
|
||||
NoScreensharePreview.enabled = false;
|
||||
NoTypingAnimation.enabled = false;
|
||||
NoUnblockToJump.enabled = false;
|
||||
NormalizeMessageLinks.enabled = false;
|
||||
NSFWGateBypass.enabled = false;
|
||||
OnePingPerDM.enabled = false;
|
||||
oneko.enabled = false;
|
||||
OpenInApp.enabled = false;
|
||||
PermissionFreeWill.enabled = false;
|
||||
PermissionsViewer.enabled = false;
|
||||
petpet.enabled = false;
|
||||
PictureInPicture.enabled = true;
|
||||
PinDMs.enabled = false;
|
||||
PlainFolderIcon.enabled = false;
|
||||
PlatformIndicators.enabled = false;
|
||||
PreviewMessage.enabled = false;
|
||||
QuickMention.enabled = false;
|
||||
QuickReply.enabled = false;
|
||||
ReactErrorDecoder.enabled = false;
|
||||
ReadAllNotificationsButton.enabled = false;
|
||||
RelationshipNotifier.enabled = false;
|
||||
RevealAllSpoilers.enabled = false;
|
||||
ReverseImageSearch.enabled = false;
|
||||
RoleColorEverywhere.enabled = false;
|
||||
SecretRingToneEnabler.enabled = false;
|
||||
SendTimestamps.enabled = false;
|
||||
ServerListIndicators.enabled = false;
|
||||
ShowAllMessageButtons.enabled = false;
|
||||
ShowConnections.enabled = false;
|
||||
ShowHiddenChannels = {
|
||||
enabled = true;
|
||||
showMode = 1;
|
||||
hideUnreads = true;
|
||||
defaultAllowedUsersAndRolesDropdownState = true;
|
||||
};
|
||||
ShowMeYourName.enabled = false;
|
||||
SilentMessageToggle.enabled = false;
|
||||
SilentTyping.enabled = false;
|
||||
SortFriendRequests.enabled = false;
|
||||
SpotifyControls.enabled = false;
|
||||
SpotifyCrack.enabled = false;
|
||||
SpotifyShareCommands.enabled = false;
|
||||
StartupTimings.enabled = true;
|
||||
SuperReactionTweaks.enabled = false;
|
||||
TextReplace.enabled = false;
|
||||
ThemeAttributes.enabled = false;
|
||||
TimeBarAllActivities.enabled = false;
|
||||
Translate.enabled = false;
|
||||
TypingIndicator.enabled = false;
|
||||
TypingTweaks.enabled = false;
|
||||
Unindent.enabled = false;
|
||||
UnsuppressEmbeds.enabled = false;
|
||||
UrbanDictionary.enabled = false;
|
||||
UserVoiceShow.enabled = false;
|
||||
USRBG = {
|
||||
enabled = false;
|
||||
voiceBackground = true;
|
||||
nitroFirst = true;
|
||||
};
|
||||
ValidUser.enabled = false;
|
||||
VoiceChatDoubleClick.enabled = true;
|
||||
VcNarrator.enabled = false;
|
||||
ViewIcons.enabled = false;
|
||||
ViewRaw = {
|
||||
enabled = true;
|
||||
clickMethod = "Left";
|
||||
};
|
||||
VoiceMessages = {
|
||||
enabled = false;
|
||||
noiseSuppression = true;
|
||||
echoCancellation = true;
|
||||
};
|
||||
WebContextMenus = {
|
||||
enabled = false;
|
||||
addBack = true;
|
||||
};
|
||||
WebKeybinds.enabled = true;
|
||||
WhoReacted.enabled = true;
|
||||
Wikisearch.enabled = true;
|
||||
Decor.enabled = false;
|
||||
NotificationVolume.enabled = false;
|
||||
FixSpotifyEmbeds.enabled = false;
|
||||
InvisibleChat.enabled = false;
|
||||
ShikiCodeblocks.enabled = false;
|
||||
XSOverlay.enabled = false;
|
||||
BetterGifPicker.enabled = false;
|
||||
FixCodeblockGap.enabled = false;
|
||||
ReviewDB = {
|
||||
enabled = true;
|
||||
notifyReviews = true;
|
||||
showWarning = true;
|
||||
hideTimestamps = false;
|
||||
hideBlockedUsers = true;
|
||||
};
|
||||
FixYoutubeEmbeds.enabled = false;
|
||||
ChatInputButtonAPI.enabled = false;
|
||||
DisableCallIdle.enabled = false;
|
||||
NewGuildSettings.enabled = false;
|
||||
BetterRoleContext.enabled = false;
|
||||
FriendsSince.enabled = false;
|
||||
ResurrectHome.enabled = false;
|
||||
BetterSettings.enabled = false;
|
||||
OverrideForumDefaults.enabled = false;
|
||||
UnlockedAvatarZoom.enabled = false;
|
||||
ShowHiddenThings.enabled = false;
|
||||
BetterSessions.enabled = false;
|
||||
ImplicitRelationships.enabled = false;
|
||||
StreamerModeOnStream.enabled = false;
|
||||
ImageLink.enabled = false;
|
||||
MessageLatency.enabled = false;
|
||||
PauseInvitesForever.enabled = false;
|
||||
ReplyTimestamp.enabled = false;
|
||||
VoiceDownload.enabled = true;
|
||||
WebScreenShareFixes.enabled = true;
|
||||
PartyMode.enabled = false;
|
||||
AutomodContext.enabled = false;
|
||||
CtrlEnterSend.enabled = false;
|
||||
CustomIdle.enabled = false;
|
||||
NoDefaultHangStatus.enabled = false;
|
||||
NoServerEmojis.enabled = false;
|
||||
ReplaceGoogleSearch.enabled = false;
|
||||
ShowTimeoutDuration.enabled = false;
|
||||
ValidReply.enabled = false;
|
||||
DontRoundMyTimestamps.enabled = false;
|
||||
MaskedLinkPaste.enabled = false;
|
||||
Summaries.enabled = false;
|
||||
ServerInfo.enabled = false;
|
||||
YoutubeAdblock.enabled = false;
|
||||
MessageUpdaterAPI.enabled = true;
|
||||
UserSettingsAPI.enabled = true;
|
||||
AppleMusicRichPresence.enabled = false;
|
||||
ConsoleJanitor.enabled = false;
|
||||
CopyEmojiMarkdown.enabled = false;
|
||||
MentionAvatars.enabled = false;
|
||||
NoOnboardingDelay.enabled = false;
|
||||
SuncordToolbox.enabled = true;
|
||||
AlwaysExpandRoles.enabled = false;
|
||||
NoMaskedUrlPaste.enabled = false;
|
||||
VencordToolbox.enabled = false;
|
||||
AccountPanelServerProfile.enabled = false;
|
||||
CopyFileContents.enabled = false;
|
||||
StickerPaste.enabled = false;
|
||||
VolumeBooster.enabled = false;
|
||||
FullSearchContext.enabled = false;
|
||||
UserMessagesPronouns = {
|
||||
enabled = false;
|
||||
showInMessages = true;
|
||||
showSelf = true;
|
||||
pronounSource = 0;
|
||||
showInProfile = true;
|
||||
pronounsFormat = "LOWERCASE";
|
||||
};
|
||||
DynamicImageModalAPI.enabled = false;
|
||||
FullUserInChatbox.enabled = false;
|
||||
HideMedia.enabled = false;
|
||||
IrcColors.enabled = false;
|
||||
DisableDeepLinks.enabled = true;
|
||||
ExpressionCloner.enabled = true;
|
||||
CopyStickerLinks.enabled = false;
|
||||
ImageFilename.enabled = false;
|
||||
};
|
||||
uiElements = {
|
||||
chatBarButtons = { };
|
||||
messagePopoverButtons = { };
|
||||
};
|
||||
notifications = {
|
||||
timeout = 5000;
|
||||
position = "bottom-right";
|
||||
useNative = "not-focused";
|
||||
logLimit = 50;
|
||||
};
|
||||
cloud = {
|
||||
authenticated = false;
|
||||
url = "https://api.vencord.dev/";
|
||||
settingsSync = false;
|
||||
settingsSyncVersion = 1765984819568;
|
||||
};
|
||||
notifyAboutUpdates = false;
|
||||
macosTranslucency = false;
|
||||
}
|
||||
54
home/sckova/apps/vscode.nix
Normal file
54
home/sckova/apps/vscode.nix
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
capitalize =
|
||||
str:
|
||||
(lib.toUpper (builtins.substring 0 1 str)) + (builtins.substring 1 (builtins.stringLength str) str);
|
||||
in
|
||||
{
|
||||
# home.sessionVariables = {
|
||||
# EDITOR = "code";
|
||||
# };
|
||||
|
||||
catppuccin.vscode.profiles.default = {
|
||||
enable = true;
|
||||
settings = {
|
||||
workbenchMode = "minimal";
|
||||
};
|
||||
};
|
||||
|
||||
programs.vscode = {
|
||||
enable = true;
|
||||
profiles.default = {
|
||||
enableExtensionUpdateCheck = true;
|
||||
enableMcpIntegration = true;
|
||||
enableUpdateCheck = true;
|
||||
# https://search.nixos.org/packages?query=vscode-extensions
|
||||
extensions = with pkgs.vscode-extensions; [
|
||||
yzhang.markdown-all-in-one
|
||||
jnoortheen.nix-ide
|
||||
esbenp.prettier-vscode
|
||||
];
|
||||
userSettings = {
|
||||
"window.menuBarVisibility" = "compact";
|
||||
"workbench.navigationControl.enabled" = false;
|
||||
"window.commandCenter" = false;
|
||||
"workbench.layoutControl.enabled" = false;
|
||||
"window.titleBarStyle" = "native";
|
||||
"editor.minimap.enabled" = false;
|
||||
"editor.semanticHighlighting.enabled" = true;
|
||||
|
||||
# Disable AI "features"
|
||||
## Chat features
|
||||
"chat.agent.enabled" = false;
|
||||
"chat.commandCenter.enabled" = false;
|
||||
"inlineChat.accessibleDiffView" = "off";
|
||||
"terminal.integrated.initialHint" = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
10
home/sckova/default.nix
Normal file
10
home/sckova/default.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
# the user to activate
|
||||
userOptions = {
|
||||
name = "Sean Kovacs";
|
||||
username = "sckova";
|
||||
email = "kovacsmillio@gmail.com";
|
||||
};
|
||||
|
||||
sops.age.keyFile = "/home/sckova/.config/sops/age/keys.txt";
|
||||
}
|
||||
11
home/sckova/games/default.nix
Normal file
11
home/sckova/games/default.nix
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
imports = [
|
||||
./minecraft.nix
|
||||
./morrowind.nix
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
dolphin-emu
|
||||
];
|
||||
}
|
||||
17
home/sckova/games/minecraft.nix
Normal file
17
home/sckova/games/minecraft.nix
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
(prismlauncher.override {
|
||||
jdks = [
|
||||
jdk25
|
||||
jdk21
|
||||
jdk17
|
||||
jdk8
|
||||
];
|
||||
})
|
||||
];
|
||||
}
|
||||
18
home/sckova/games/morrowind.nix
Normal file
18
home/sckova/games/morrowind.nix
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = with pkgs; [ openmw ];
|
||||
home.sessionVariables.SDL_VIDEO_DRIVER = "wayland";
|
||||
|
||||
programs.firefox.profiles.default.search.engines.uesp = {
|
||||
name = "Unofficial Elder Scrolls Pages";
|
||||
urls = [
|
||||
{
|
||||
template = "https://en.uesp.net/w/index.php?title=Special%3ASearch&search={searchTerms}&button=";
|
||||
}
|
||||
];
|
||||
definedAliases = [ "uesp" ];
|
||||
};
|
||||
}
|
||||
46
home/sckova/hosts/alien/default.nix
Normal file
46
home/sckova/hosts/alien/default.nix
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
colors = {
|
||||
scheme = "catppuccin-mocha";
|
||||
accent = "base0D";
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
ckan
|
||||
spotify
|
||||
adwsteamgtk
|
||||
daggerfall-unity
|
||||
vintagestory
|
||||
gamemode
|
||||
];
|
||||
|
||||
# PROTON_ENABLE_NVAPI=1 PROTON_DLSS_UPGRADE=1 PROTON_ENABLE_NGX_UPDATER=1 DXVK_NVAPI_DRS_SETTINGS=NGX_DLSS_SR_MODE=balanced MANGOHUD_CONFIG="fps_limit=144,gamemode,ram,vram" mangohud gamemoderun %command%
|
||||
xdg.desktopEntries.steam-big-picture = {
|
||||
name = "Steam (Big Picture)";
|
||||
icon = "steam";
|
||||
exec = "gamescope -e --force-grab-cursor -s 2 -- steam -tenfoot";
|
||||
terminal = false;
|
||||
categories = [
|
||||
"Network"
|
||||
"FileTransfer"
|
||||
"Game"
|
||||
];
|
||||
};
|
||||
|
||||
home.sessionVariables = {
|
||||
PROTON_ENABLE_NVAPI = 1;
|
||||
PROTON_DLSS_UPGRADE = 1;
|
||||
PROTON_ENABLE_NGX_UPDATER = 1;
|
||||
DXVK_NVAPI_DRS_SETTINGS = "NGX_DLSS_SR_MODE=balanced";
|
||||
MANGOHUD_CONFIG = "fps_limit=144,gamemode,ram,vram";
|
||||
};
|
||||
|
||||
programs.noctalia-shell.settings.brightness.enableDdcSupport = true;
|
||||
programs.noctalia-shell.settings.bar = {
|
||||
position = "top";
|
||||
density = "default";
|
||||
};
|
||||
}
|
||||
40
home/sckova/hosts/peach/default.nix
Normal file
40
home/sckova/hosts/peach/default.nix
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
colors = {
|
||||
scheme = "catppuccin-frappe";
|
||||
accent = "base09";
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
asahi-nvram
|
||||
asahi-bless
|
||||
asahi-btsync
|
||||
asahi-wifisync
|
||||
|
||||
moonlight-qt
|
||||
];
|
||||
|
||||
programs = {
|
||||
noctalia-shell.settings.bar = {
|
||||
position = "top";
|
||||
density = "spacious";
|
||||
};
|
||||
|
||||
niri.settings.outputs."eDP-1" = {
|
||||
scale = 1.5;
|
||||
mode = {
|
||||
width = 3024;
|
||||
height = 1964;
|
||||
refresh = 120.000;
|
||||
};
|
||||
position = {
|
||||
x = 272;
|
||||
y = 1440;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
252
home/sckova/services/default.nix
Normal file
252
home/sckova/services/default.nix
Normal file
|
|
@ -0,0 +1,252 @@
|
|||
{
|
||||
osConfig,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
./gtk.nix
|
||||
./qt.nix
|
||||
./systemd.nix
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
adwaita-icon-theme
|
||||
morewaita-icon-theme
|
||||
];
|
||||
|
||||
home.file = {
|
||||
".icons/default/index.theme" = {
|
||||
text = ''
|
||||
[Icon Theme]
|
||||
Name=Default
|
||||
Comment=Default Cursor Theme
|
||||
Inherits=${config.userOptions.cursor.name}
|
||||
'';
|
||||
force = true;
|
||||
};
|
||||
};
|
||||
|
||||
services.spotifyd.enable = true;
|
||||
# comments taken from https://docs.spotifyd.rs/configuration/index.html
|
||||
services.spotifyd.settings.global = {
|
||||
#---------#
|
||||
# GENERAL #
|
||||
#---------#
|
||||
|
||||
# The name that gets displayed under the connect tab on
|
||||
# official clients.
|
||||
device_name = "daemon@${osConfig.system.name}";
|
||||
|
||||
# The displayed device type in Spotify clients.
|
||||
# Can be unknown, computer, tablet, smartphone, speaker, t_v,
|
||||
# a_v_r (Audio/Video Receiver), s_t_b (Set-Top Box), and audio_dongle.
|
||||
device_type = "computer";
|
||||
|
||||
# The bus to bind to with the MPRIS interface.
|
||||
# Possible values: "session", "system"
|
||||
# The system bus can be used if no graphical session is available
|
||||
# (e.g. on headless systems) but you still want to be able to use MPRIS.
|
||||
# NOTE: You might need to add appropriate policies to allow spotifyd to
|
||||
# own the name.
|
||||
dbus_type = "session";
|
||||
|
||||
# If set to true, `spotifyd` tries to bind to dbus (default is the session bus)
|
||||
# and expose MPRIS controls. When running headless, without the session bus,
|
||||
# you should set this to false, to avoid errors. If you still want to use MPRIS,
|
||||
# have a look at the `dbus_type` option.
|
||||
use_mpris = true;
|
||||
|
||||
# The directory used to store credentials and audio cache.
|
||||
# Default: infers a sensible cache directory (e.g. on Linux: $XDG_CACHE_HOME)
|
||||
# Note: The file path does not get expanded. Environment variables and
|
||||
# shell placeholders like $HOME or ~ don't work!
|
||||
# cache_path = "";
|
||||
|
||||
# If set to true, audio data does NOT get cached.
|
||||
# In this case, the cache is only used for credentials.
|
||||
no_audio_cache = false;
|
||||
|
||||
# The maximal size of the cache directory in bytes
|
||||
# The value below corresponds to ~ 10GB
|
||||
max_cache_size = 10000000000;
|
||||
|
||||
#-----------#
|
||||
# DISCOVERY #
|
||||
#-----------#
|
||||
|
||||
# If set to true, this disables zeroconf discovery.
|
||||
# This can be useful, if one prefers to run a single-user instance.
|
||||
disable_discovery = true;
|
||||
|
||||
#-------#
|
||||
# AUDIO #
|
||||
#-------#
|
||||
|
||||
# The audio backend used to play music. To get
|
||||
# a list of possible backends, run `spotifyd --help`.
|
||||
backend = "alsa"; # use portaudio for macOS [homebrew]
|
||||
|
||||
# The alsa audio device to stream audio. To get a
|
||||
# list of valid devices, run `aplay -L`,
|
||||
device = "default"; # omit for macOS
|
||||
|
||||
# If set to true, enables volume normalisation between songs.
|
||||
volume_normalisation = true;
|
||||
|
||||
# The normalisation pregain that is applied for each song.
|
||||
normalisation_pregain = 0;
|
||||
|
||||
# The audio bitrate. 96, 160 or 320 kbit/s
|
||||
bitrate = 320;
|
||||
|
||||
# Volume on startup between 0 and 100
|
||||
initial_volume = 100;
|
||||
|
||||
#-------ä
|
||||
# OTHER #
|
||||
#-------#
|
||||
|
||||
# After the music playback has ended, start playing similar songs based on the previous tracks.
|
||||
# By default, `spotifyd` infers this setting from the user settings.
|
||||
autoplay = false;
|
||||
};
|
||||
|
||||
dconf.settings = {
|
||||
"org/gnome/desktop/interface" = {
|
||||
color-scheme = "prefer-dark";
|
||||
clock-format = "12h";
|
||||
clock-show-weekday = true;
|
||||
};
|
||||
"org/gnome/desktop/wm/preferences" = {
|
||||
button-layout = ":";
|
||||
action-double-click-titlebar = "'none'";
|
||||
};
|
||||
"org/gnome/desktop/media-handling" = {
|
||||
automount = false;
|
||||
automount-open = false;
|
||||
autorun-never = true;
|
||||
};
|
||||
"org/gnome/settings-daemon/plugins/power" = {
|
||||
sleep-inactive-ac-type = "nothing";
|
||||
};
|
||||
"org/gnome/mutter" = {
|
||||
edge-tiling = true;
|
||||
dynamic-workspaces = true;
|
||||
experimental-features = [ "variable-refresh-rate" ];
|
||||
};
|
||||
};
|
||||
|
||||
home.pointerCursor = {
|
||||
gtk.enable = true;
|
||||
name = config.userOptions.cursor.name;
|
||||
package = config.userOptions.cursor.package;
|
||||
size = config.userOptions.cursor.size;
|
||||
};
|
||||
|
||||
home.sessionVariables = {
|
||||
QT_QPA_PLATFORMTHEME = "qt6ct";
|
||||
# this makes electron apps work per the wiki
|
||||
NIXOS_OZONE_WL = "1";
|
||||
# allow non-free packages in shells
|
||||
NIXPKGS_ALLOW_UNFREE = 1;
|
||||
};
|
||||
|
||||
gtk = {
|
||||
enable = true;
|
||||
gtk4.theme = null;
|
||||
|
||||
colorScheme = "dark";
|
||||
iconTheme = {
|
||||
name = "MoreWaita";
|
||||
package = pkgs.morewaita-icon-theme;
|
||||
};
|
||||
|
||||
cursorTheme = {
|
||||
name = config.home.pointerCursor.name;
|
||||
package = config.home.pointerCursor.package;
|
||||
size = config.home.pointerCursor.size;
|
||||
};
|
||||
|
||||
gtk3.extraConfig = {
|
||||
gtk-application-prefer-dark-theme = true;
|
||||
gtk-decoration-layout = ":";
|
||||
};
|
||||
|
||||
gtk4.extraConfig = {
|
||||
gtk-application-prefer-dark-theme = true;
|
||||
gtk-decoration-layout = ":";
|
||||
};
|
||||
};
|
||||
|
||||
xdg.mimeApps = {
|
||||
enable = true;
|
||||
associations.added = {
|
||||
"x-scheme-handler/http" = [ "firefox.desktop" ];
|
||||
"x-scheme-handler/https" = [ "firefox.desktop" ];
|
||||
"x-scheme-handler/discord" = [ "vesktop.desktop" ];
|
||||
"x-scheme-handler/spotify" = [ "riff.desktop" ];
|
||||
"inode/directory" = [ "org.gnome.Nautilus.desktop" ];
|
||||
"image/png" = [ "loupe.desktop" ];
|
||||
"image/jpeg" = [ "loupe.desktop" ];
|
||||
};
|
||||
defaultApplications = {
|
||||
# Web
|
||||
"x-scheme-handler/http" = [ "firefox.desktop" ];
|
||||
"x-scheme-handler/https" = [ "firefox.desktop" ];
|
||||
"text/html" = [ "firefox.desktop" ];
|
||||
|
||||
# Communication & Social
|
||||
"x-scheme-handler/discord" = [ "vesktop.desktop" ];
|
||||
"x-scheme-handler/spotify" = [ "riff.desktop" ];
|
||||
|
||||
# File Management
|
||||
"inode/directory" = [ "org.gnome.Nautilus.desktop" ];
|
||||
|
||||
# Torrents
|
||||
"application/x-bittorrent" = [ "org.qbittorrent.qBittorrent.desktop" ];
|
||||
"x-scheme-handler/magnet" = [ "org.qbittorrent.qBittorrent.desktop" ];
|
||||
|
||||
# Documents
|
||||
"application/pdf" = [ "firefox.desktop" ]; # Or libreoffice-draw.desktop
|
||||
"application/vnd.openxmlformats-officedocument.wordprocessingml.document" = [
|
||||
"libreoffice-writer.desktop"
|
||||
]; # docx
|
||||
"application/msword" = [ "libreoffice-writer.desktop" ]; # doc
|
||||
"application/vnd.oasis.opendocument.text" = [ "libreoffice-writer.desktop" ]; # odt
|
||||
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" = [
|
||||
"libreoffice-calc.desktop"
|
||||
]; # xlsx
|
||||
"application/vnd.ms-excel" = [ "libreoffice-calc.desktop" ]; # xls
|
||||
"application/vnd.oasis.opendocument.spreadsheet" = [ "libreoffice-calc.desktop" ]; # ods
|
||||
|
||||
# Text & Code
|
||||
"text/plain" = [ "nvim.desktop" ];
|
||||
"text/markdown" = [ "nvim.desktop" ];
|
||||
"application/x-shellscript" = [ "nvim.desktop" ];
|
||||
"application/json" = [ "nvim.desktop" ];
|
||||
"text/x-c" = [ "nvim.desktop" ];
|
||||
"text/x-c++" = [ "nvim.desktop" ];
|
||||
"text/x-python" = [ "nvim.desktop" ];
|
||||
"text/x-makefile" = [ "nvim.desktop" ];
|
||||
|
||||
# Terminal
|
||||
"x-scheme-handler/terminal" = [ "kitty.desktop" ];
|
||||
|
||||
# Media
|
||||
"video/mp4" = [ "mpv.desktop" ];
|
||||
"video/mkv" = [ "mpv.desktop" ];
|
||||
"video/webm" = [ "mpv.desktop" ];
|
||||
"audio/mpeg" = [ "mpv.desktop" ];
|
||||
"audio/flac" = [ "mpv.desktop" ];
|
||||
"audio/wav" = [ "mpv.desktop" ];
|
||||
|
||||
# Images
|
||||
"image/png" = [ "loupe.desktop" ];
|
||||
"image/jpeg" = [ "loupe.desktop" ];
|
||||
"image/webp" = [ "loupe.desktop" ];
|
||||
"image/gif" = [ "loupe.desktop" ];
|
||||
};
|
||||
};
|
||||
}
|
||||
128
home/sckova/services/gtk.nix
Normal file
128
home/sckova/services/gtk.nix
Normal file
|
|
@ -0,0 +1,128 @@
|
|||
{
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
mkColorSection = name: value: "@define-color ${name} ${value};";
|
||||
|
||||
generateCSS = with config.scheme.withHashtag; ''
|
||||
/* Kova's Nixified GTK */
|
||||
|
||||
/* Base colors */
|
||||
${mkColorSection "window_bg_color" base00}
|
||||
${mkColorSection "window_fg_color" base05}
|
||||
|
||||
/* View styling */
|
||||
${mkColorSection "view_bg_color" base00}
|
||||
${mkColorSection "view_fg_color" base05}
|
||||
|
||||
/* Header bar */
|
||||
${mkColorSection "headerbar_bg_color" base10}
|
||||
${mkColorSection "headerbar_backdrop_color" base10}
|
||||
${mkColorSection "headerbar_fg_color" base05}
|
||||
|
||||
/* Popovers and dialogs */
|
||||
${mkColorSection "popover_bg_color" base00}
|
||||
${mkColorSection "popover_fg_color" base05}
|
||||
@define-color dialog_bg_color @popover_bg_color;
|
||||
@define-color dialog_fg_color @popover_fg_color;
|
||||
|
||||
/* Cards and sidebars */
|
||||
${mkColorSection "card_bg_color" base10}
|
||||
${mkColorSection "card_fg_color" base05}
|
||||
${mkColorSection "sidebar_bg_color" base10}
|
||||
${mkColorSection "sidebar_fg_color" base05}
|
||||
@define-color sidebar_backdrop_color @sidebar_bg_color;
|
||||
${mkColorSection "sidebar_border_color" base01}
|
||||
@define-color secondary_sidebar_bg_color @sidebar_bg_color;
|
||||
@define-color secondary_sidebar_fg_color @sidebar_fg_color;
|
||||
@define-color secondary_sidebar_backdrop_color @sidebar_backdrop_color;
|
||||
@define-color secondary_sidebar_border_color @sidebar_border_color;
|
||||
|
||||
/* Catppuccin accent colors */
|
||||
${mkColorSection "blue_1" base0D}
|
||||
${mkColorSection "blue_2" base16}
|
||||
${mkColorSection "blue_3" base15}
|
||||
${mkColorSection "blue_4" base0C}
|
||||
${mkColorSection "blue_5" base07}
|
||||
|
||||
${mkColorSection "green_1" base0B}
|
||||
${mkColorSection "green_2" base0C}
|
||||
${mkColorSection "green_3" base15}
|
||||
${mkColorSection "green_4" base16}
|
||||
${mkColorSection "green_5" base0D}
|
||||
|
||||
${mkColorSection "yellow_1" base0A}
|
||||
${mkColorSection "yellow_2" base09}
|
||||
${mkColorSection "yellow_3" base0A}
|
||||
${mkColorSection "yellow_4" base08}
|
||||
${mkColorSection "yellow_5" base12}
|
||||
|
||||
${mkColorSection "orange_1" base09}
|
||||
${mkColorSection "orange_2" base08}
|
||||
${mkColorSection "orange_3" base12}
|
||||
${mkColorSection "orange_4" base0A}
|
||||
${mkColorSection "orange_5" base0B}
|
||||
|
||||
${mkColorSection "red_1" base08}
|
||||
${mkColorSection "red_2" base12}
|
||||
${mkColorSection "red_3" base17}
|
||||
${mkColorSection "red_4" base0F}
|
||||
${mkColorSection "red_5" base13}
|
||||
|
||||
${mkColorSection "purple_1" base0E}
|
||||
${mkColorSection "purple_2" base07}
|
||||
${mkColorSection "purple_3" base17}
|
||||
${mkColorSection "purple_4" base0F}
|
||||
${mkColorSection "purple_5" base13}
|
||||
|
||||
${mkColorSection "brown_1" base02}
|
||||
${mkColorSection "brown_2" base03}
|
||||
${mkColorSection "brown_3" base03}
|
||||
${mkColorSection "brown_4" base03}
|
||||
${mkColorSection "brown_5" base04}
|
||||
|
||||
${mkColorSection "light_1" base05}
|
||||
${mkColorSection "light_2" base04}
|
||||
${mkColorSection "light_3" base04}
|
||||
${mkColorSection "light_4" base0D}
|
||||
${mkColorSection "light_5" base03}
|
||||
|
||||
${mkColorSection "dark_1" base01}
|
||||
${mkColorSection "dark_2" base02}
|
||||
${mkColorSection "dark_3" base02}
|
||||
${mkColorSection "dark_4" base10}
|
||||
${mkColorSection "dark_5" base11}
|
||||
|
||||
/* Custom rules */
|
||||
toast {
|
||||
background-color: @window_bg_color;
|
||||
color: @window_fg_color;
|
||||
}
|
||||
|
||||
toggle:checked {
|
||||
background-color: @card_bg_color;
|
||||
color: @window_fg_color;
|
||||
}
|
||||
|
||||
.inline {
|
||||
background-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
/* Accent */
|
||||
${mkColorSection "accent_bg_color" config.scheme.withHashtag.${config.colors.accent}}
|
||||
@define-color accent_fg_color @window_bg_color;
|
||||
'';
|
||||
in
|
||||
{
|
||||
home.file = {
|
||||
".config/gtk-4.0/gtk.css" = {
|
||||
text = generateCSS;
|
||||
force = true;
|
||||
};
|
||||
".config/gtk-3.0/gtk.css" = {
|
||||
text = generateCSS;
|
||||
force = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
118
home/sckova/services/qt.nix
Normal file
118
home/sckova/services/qt.nix
Normal file
|
|
@ -0,0 +1,118 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
qt = {
|
||||
enable = true;
|
||||
|
||||
qt5ctSettings = {
|
||||
Appearance = {
|
||||
style = "Breeze";
|
||||
icon_theme = config.gtk.iconTheme.name;
|
||||
color_scheme_path = "/home/${config.userOptions.username}/.config/qt5ct/qt5ct.conf";
|
||||
custom_palette = true;
|
||||
standard_dialogs = "xdgdesktopportal";
|
||||
};
|
||||
Fonts = config.qt.qt6ctSettings.Fonts;
|
||||
ColorScheme = config.qt.qt6ctSettings.ColorScheme;
|
||||
};
|
||||
|
||||
qt6ctSettings = {
|
||||
Appearance = {
|
||||
style = "Breeze";
|
||||
icon_theme = config.gtk.iconTheme.name;
|
||||
color_scheme_path = "/home/${config.userOptions.username}/.config/qt6ct/qt6ct.conf";
|
||||
custom_palette = true;
|
||||
standard_dialogs = "xdgdesktopportal";
|
||||
};
|
||||
|
||||
Fonts = {
|
||||
fixed = "\"${config.userOptions.fontMono.name},${toString config.userOptions.fontMono.size}\"";
|
||||
general = "\"${config.userOptions.fontSans.name},${toString config.userOptions.fontSans.size}\"";
|
||||
};
|
||||
|
||||
ColorScheme =
|
||||
with config.scheme;
|
||||
let
|
||||
accent = config.scheme.withHashtag.${config.colors.accent};
|
||||
mkColors = roles: builtins.concatStringsSep ", " (map (r: "#ff${r}") roles);
|
||||
in
|
||||
{
|
||||
active_colors = mkColors [
|
||||
base05
|
||||
base01
|
||||
base02
|
||||
base01
|
||||
base00
|
||||
base10
|
||||
base05
|
||||
base05
|
||||
base05
|
||||
base00
|
||||
base10
|
||||
base11
|
||||
accent
|
||||
base00
|
||||
accent
|
||||
base0E
|
||||
base10
|
||||
"000000"
|
||||
base00
|
||||
base05
|
||||
base03
|
||||
accent
|
||||
];
|
||||
disabled_colors = mkColors [
|
||||
base03
|
||||
base01
|
||||
base02
|
||||
base01
|
||||
base03
|
||||
base10
|
||||
base03
|
||||
base05
|
||||
base03
|
||||
base01
|
||||
base01
|
||||
base10
|
||||
base03
|
||||
base05
|
||||
"0000ff"
|
||||
"ff00ff"
|
||||
base01
|
||||
"000000"
|
||||
base01
|
||||
base00
|
||||
"80000000"
|
||||
base03
|
||||
];
|
||||
inactive_colors = mkColors [
|
||||
base05
|
||||
base01
|
||||
base02
|
||||
base01
|
||||
base00
|
||||
base10
|
||||
base05
|
||||
base05
|
||||
base05
|
||||
base00
|
||||
base10
|
||||
base11
|
||||
accent
|
||||
base00
|
||||
accent
|
||||
base0E
|
||||
base10
|
||||
"000000"
|
||||
base00
|
||||
base05
|
||||
base03
|
||||
accent
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
60
home/sckova/services/systemd.nix
Normal file
60
home/sckova/services/systemd.nix
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
systemd.user.sessionVariables = {
|
||||
XCURSOR_THEME = config.userOptions.cursor.name;
|
||||
XCURSOR_SIZE = toString config.userOptions.cursor.size;
|
||||
XCURSOR_PATH = config.userOptions.cursor.path;
|
||||
};
|
||||
|
||||
sops.templates."synology.conf".content = ''
|
||||
[synology]
|
||||
type = smb
|
||||
host = nas.taila30609.ts.net
|
||||
pass = ${config.sops.placeholder.rclone_synology}
|
||||
'';
|
||||
|
||||
systemd.user.services.synology-mount = {
|
||||
Unit = {
|
||||
Description = "Mount Synology NAS with Rclone and Home Manager.";
|
||||
After = [ "tailscaled.service" ];
|
||||
Wants = [ "tailscaled.service" ];
|
||||
StartLimitBurst = 5;
|
||||
StartLimitIntervalSec = "1m";
|
||||
};
|
||||
|
||||
Service = {
|
||||
Type = "simple";
|
||||
Restart = "on-failure";
|
||||
RestartSec = "1m";
|
||||
ExecStart = "${pkgs.writeShellScript "synology-mount" ''
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# Ensure mount point exists
|
||||
mkdir -p $HOME/Synology || true
|
||||
|
||||
# Unmount stale mount if present
|
||||
/run/wrappers/bin/umount "$HOME/Synology" || true
|
||||
|
||||
# Mount rclone in foreground
|
||||
${pkgs.rclone}/bin/rclone \
|
||||
--config=${config.sops.templates."synology.conf".path} \
|
||||
--ignore-checksum \
|
||||
--log-level INFO \
|
||||
--rc --rc-serve \
|
||||
mount "synology:home" "$HOME/Synology"
|
||||
''}";
|
||||
ExecStop = "/run/wrappers/bin/fusermount -uz %h/Synology/%i";
|
||||
StandardOutput = "journal";
|
||||
StandardError = "journal";
|
||||
};
|
||||
|
||||
Install = {
|
||||
WantedBy = [ "default.target" ];
|
||||
};
|
||||
};
|
||||
}
|
||||
257
home/sckova/terminal/btop.conf
Normal file
257
home/sckova/terminal/btop.conf
Normal file
|
|
@ -0,0 +1,257 @@
|
|||
#? Config file for btop v. 1.4.5
|
||||
|
||||
#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes.
|
||||
#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes"
|
||||
color_theme = "nixos.theme"
|
||||
|
||||
#* If the theme set background should be shown, set to False if you want terminal background transparency.
|
||||
theme_background = True
|
||||
|
||||
#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false.
|
||||
truecolor = True
|
||||
|
||||
#* Set to true to force tty mode regardless if a real tty has been detected or not.
|
||||
#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols.
|
||||
force_tty = False
|
||||
|
||||
#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets.
|
||||
#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box.
|
||||
#* Use whitespace " " as separator between different presets.
|
||||
#* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty"
|
||||
presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty"
|
||||
|
||||
#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists.
|
||||
#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift.
|
||||
vim_keys = False
|
||||
|
||||
#* Rounded corners on boxes, is ignored if TTY mode is ON.
|
||||
rounded_corners = True
|
||||
|
||||
#* Default symbols to use for graph creation, "braille", "block" or "tty".
|
||||
#* "braille" offers the highest resolution but might not be included in all fonts.
|
||||
#* "block" has half the resolution of braille but uses more common characters.
|
||||
#* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY.
|
||||
#* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view.
|
||||
graph_symbol = "braille"
|
||||
|
||||
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||
graph_symbol_cpu = "default"
|
||||
|
||||
# Graph symbol to use for graphs in gpu box, "default", "braille", "block" or "tty".
|
||||
graph_symbol_gpu = "default"
|
||||
|
||||
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||
graph_symbol_mem = "default"
|
||||
|
||||
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||
graph_symbol_net = "default"
|
||||
|
||||
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
|
||||
graph_symbol_proc = "default"
|
||||
|
||||
#* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace.
|
||||
shown_boxes = "cpu mem net proc"
|
||||
|
||||
#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs.
|
||||
update_ms = 2000
|
||||
|
||||
#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct",
|
||||
#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly.
|
||||
proc_sorting = "cpu lazy"
|
||||
|
||||
#* Reverse sorting order, True or False.
|
||||
proc_reversed = False
|
||||
|
||||
#* Show processes as a tree.
|
||||
proc_tree = False
|
||||
|
||||
#* Use the cpu graph colors in the process list.
|
||||
proc_colors = True
|
||||
|
||||
#* Use a darkening gradient in the process list.
|
||||
proc_gradient = True
|
||||
|
||||
#* If process cpu usage should be of the core it's running on or usage of the total available cpu power.
|
||||
proc_per_core = False
|
||||
|
||||
#* Show process memory as bytes instead of percent.
|
||||
proc_mem_bytes = True
|
||||
|
||||
#* Show cpu graph for each process.
|
||||
proc_cpu_graphs = True
|
||||
|
||||
#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate)
|
||||
proc_info_smaps = False
|
||||
|
||||
#* Show proc box on left side of screen instead of right.
|
||||
proc_left = False
|
||||
|
||||
#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop).
|
||||
proc_filter_kernel = False
|
||||
|
||||
#* In tree-view, always accumulate child process resources in the parent process.
|
||||
proc_aggregate = False
|
||||
|
||||
#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available.
|
||||
#* Select from a list of detected attributes from the options menu.
|
||||
cpu_graph_upper = "Auto"
|
||||
|
||||
#* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available.
|
||||
#* Select from a list of detected attributes from the options menu.
|
||||
cpu_graph_lower = "Auto"
|
||||
|
||||
#* If gpu info should be shown in the cpu box. Available values = "Auto", "On" and "Off".
|
||||
show_gpu_info = "Auto"
|
||||
|
||||
#* Toggles if the lower CPU graph should be inverted.
|
||||
cpu_invert_lower = True
|
||||
|
||||
#* Set to True to completely disable the lower CPU graph.
|
||||
cpu_single_graph = False
|
||||
|
||||
#* Show cpu box at bottom of screen instead of top.
|
||||
cpu_bottom = False
|
||||
|
||||
#* Shows the system uptime in the CPU box.
|
||||
show_uptime = True
|
||||
|
||||
#* Shows the CPU package current power consumption in watts. Requires running `make setcap` or `make setuid` or running with sudo.
|
||||
show_cpu_watts = True
|
||||
|
||||
#* Show cpu temperature.
|
||||
check_temp = True
|
||||
|
||||
#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors.
|
||||
cpu_sensor = "Auto"
|
||||
|
||||
#* Show temperatures for cpu cores also if check_temp is True and sensors has been found.
|
||||
show_coretemp = True
|
||||
|
||||
#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core.
|
||||
#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine.
|
||||
#* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries.
|
||||
#* Example: "4:0 5:1 6:3"
|
||||
cpu_core_map = ""
|
||||
|
||||
#* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine".
|
||||
temp_scale = "celsius"
|
||||
|
||||
#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024.
|
||||
base_10_sizes = True
|
||||
|
||||
#* Show CPU frequency.
|
||||
show_cpu_freq = True
|
||||
|
||||
#* Draw a clock at top of screen, formatting according to strftime, empty string to disable.
|
||||
#* Special formatting: /host = hostname | /user = username | /uptime = system uptime
|
||||
clock_format = "%X"
|
||||
|
||||
#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort.
|
||||
background_update = True
|
||||
|
||||
#* Custom cpu model name, empty string to disable.
|
||||
custom_cpu_name = ""
|
||||
|
||||
#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ".
|
||||
#* Only disks matching the filter will be shown. Prepend exclude= to only show disks not matching the filter. Examples: disk_filter="/boot /home/user", disks_filter="exclude=/boot /home/user"
|
||||
disks_filter = ""
|
||||
|
||||
#* Show graphs instead of meters for memory values.
|
||||
mem_graphs = True
|
||||
|
||||
#* Show mem box below net box instead of above.
|
||||
mem_below_net = False
|
||||
|
||||
#* Count ZFS ARC in cached and available memory.
|
||||
zfs_arc_cached = True
|
||||
|
||||
#* If swap memory should be shown in memory box.
|
||||
show_swap = True
|
||||
|
||||
#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk.
|
||||
swap_disk = True
|
||||
|
||||
#* If mem box should be split to also show disks info.
|
||||
show_disks = True
|
||||
|
||||
#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar.
|
||||
only_physical = True
|
||||
|
||||
#* Read disks list from /etc/fstab. This also disables only_physical.
|
||||
use_fstab = True
|
||||
|
||||
#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool)
|
||||
zfs_hide_datasets = False
|
||||
|
||||
#* Set to true to show available disk space for privileged users.
|
||||
disk_free_priv = False
|
||||
|
||||
#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view.
|
||||
show_io_stat = True
|
||||
|
||||
#* Toggles io mode for disks, showing big graphs for disk read/write speeds.
|
||||
io_mode = False
|
||||
|
||||
#* Set to True to show combined read/write io graphs in io mode.
|
||||
io_graph_combined = False
|
||||
|
||||
#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ".
|
||||
#* Example: "/mnt/media:100 /:20 /boot:1".
|
||||
io_graph_speeds = ""
|
||||
|
||||
#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False.
|
||||
net_download = 100
|
||||
|
||||
net_upload = 100
|
||||
|
||||
#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest.
|
||||
net_auto = True
|
||||
|
||||
#* Sync the auto scaling for download and upload to whichever currently has the highest scale.
|
||||
net_sync = True
|
||||
|
||||
#* Starts with the Network Interface specified here.
|
||||
net_iface = ""
|
||||
|
||||
#* "True" shows bitrates in base 10 (Kbps, Mbps). "False" shows bitrates in binary sizes (Kibps, Mibps, etc.). "Auto" uses base_10_sizes.
|
||||
base_10_bitrate = "Auto"
|
||||
|
||||
#* Show battery stats in top right if battery is present.
|
||||
show_battery = True
|
||||
|
||||
#* Which battery to use if multiple are present. "Auto" for auto detection.
|
||||
selected_battery = "Auto"
|
||||
|
||||
#* Show power stats of battery next to charge indicator.
|
||||
show_battery_watts = True
|
||||
|
||||
#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG".
|
||||
#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info.
|
||||
log_level = "WARNING"
|
||||
|
||||
#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards.
|
||||
nvml_measure_pcie_speeds = True
|
||||
|
||||
#* Measure PCIe throughput on AMD cards, may impact performance on certain cards.
|
||||
rsmi_measure_pcie_speeds = True
|
||||
|
||||
#* Horizontally mirror the GPU graph.
|
||||
gpu_mirror_graph = True
|
||||
|
||||
#* Custom gpu0 model name, empty string to disable.
|
||||
custom_gpu_name0 = ""
|
||||
|
||||
#* Custom gpu1 model name, empty string to disable.
|
||||
custom_gpu_name1 = ""
|
||||
|
||||
#* Custom gpu2 model name, empty string to disable.
|
||||
custom_gpu_name2 = ""
|
||||
|
||||
#* Custom gpu3 model name, empty string to disable.
|
||||
custom_gpu_name3 = ""
|
||||
|
||||
#* Custom gpu4 model name, empty string to disable.
|
||||
custom_gpu_name4 = ""
|
||||
|
||||
#* Custom gpu5 model name, empty string to disable.
|
||||
custom_gpu_name5 = ""
|
||||
108
home/sckova/terminal/btop.nix
Normal file
108
home/sckova/terminal/btop.nix
Normal file
|
|
@ -0,0 +1,108 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
btop-colors-file = pkgs.writeTextFile {
|
||||
name = "btop-colors";
|
||||
text = with config.scheme.withHashtag; ''
|
||||
# Credit to https://github.com/catppuccin/btop
|
||||
# Main background, empty for terminal default, need to be empty if you want transparent background
|
||||
theme[main_bg]="${base00}"
|
||||
|
||||
# Main text color
|
||||
theme[main_fg]="${base05}"
|
||||
|
||||
# Title color for boxes
|
||||
theme[title]="${base05}"
|
||||
|
||||
# Highlight color for keyboard shortcuts
|
||||
theme[hi_fg]="${base0D}"
|
||||
|
||||
# Background color of selected item in processes box
|
||||
theme[selected_bg]="${base02}"
|
||||
|
||||
# Foreground color of selected item in processes box
|
||||
theme[selected_fg]="${base0D}"
|
||||
|
||||
# Color of inactive/disabled text
|
||||
theme[inactive_fg]="${base03}"
|
||||
|
||||
# Color of text appearing on top of graphs, i.e uptime and current network graph scaling
|
||||
theme[graph_text]="${base06}"
|
||||
|
||||
# Background color of the percentage meters
|
||||
theme[meter_bg]="${base02}"
|
||||
|
||||
# Misc colors for processes box including mini cpu graphs, details memory graph and details status text
|
||||
theme[proc_misc]="${base06}"
|
||||
|
||||
# CPU, Memory, Network, Proc box outline colors
|
||||
theme[cpu_box]="${base0E}" #Mauve
|
||||
theme[mem_box]="${base0B}" #Green
|
||||
theme[net_box]="${base12}" #Maroon
|
||||
theme[proc_box]="${base0D}" #Blue
|
||||
|
||||
# Box divider line and small boxes line color
|
||||
theme[div_line]="${base03}"
|
||||
|
||||
# Temperature graph color (Green -> Yellow -> Red)
|
||||
theme[temp_start]="${base0B}"
|
||||
theme[temp_mid]="${base0A}"
|
||||
theme[temp_end]="${base08}"
|
||||
|
||||
# CPU graph colors (Teal -> Lavender)
|
||||
theme[cpu_start]="${base0C}"
|
||||
theme[cpu_mid]="${base16}"
|
||||
theme[cpu_end]="${base07}"
|
||||
|
||||
# Mem/Disk free meter (Mauve -> Lavender -> Blue)
|
||||
theme[free_start]="${base0E}"
|
||||
theme[free_mid]="${base07}"
|
||||
theme[free_end]="${base0D}"
|
||||
|
||||
# Mem/Disk cached meter (Sapphire -> Lavender)
|
||||
theme[cached_start]="${base16}"
|
||||
theme[cached_mid]="${base0D}"
|
||||
theme[cached_end]="${base07}"
|
||||
|
||||
# Mem/Disk available meter (Peach -> Red)
|
||||
theme[available_start]="${base09}"
|
||||
theme[available_mid]="${base12}"
|
||||
theme[available_end]="${base08}"
|
||||
|
||||
# Mem/Disk used meter (Green -> Sky)
|
||||
theme[used_start]="${base0B}"
|
||||
theme[used_mid]="${base0C}"
|
||||
theme[used_end]="${base15}"
|
||||
|
||||
# Download graph colors (Peach -> Red)
|
||||
theme[download_start]="${base09}"
|
||||
theme[download_mid]="${base12}"
|
||||
theme[download_end]="${base08}"
|
||||
|
||||
# Upload graph colors (Green -> Sky)
|
||||
theme[upload_start]="${base0B}"
|
||||
theme[upload_mid]="${base0C}"
|
||||
theme[upload_end]="${base15}"
|
||||
|
||||
# Process box color gradient for threads, mem and cpu usage (Sapphire -> Mauve)
|
||||
theme[process_start]="${base16}"
|
||||
theme[process_mid]="${base07}"
|
||||
theme[process_end]="${base0E}"
|
||||
'';
|
||||
destination = "/nixos.theme";
|
||||
};
|
||||
|
||||
batConfigDir = pkgs.runCommand "mergedConfig" { } ''
|
||||
mkdir -p $out/themes
|
||||
cp -r ${btop-colors-file}/nixos.theme $out/themes/nixos.theme
|
||||
'';
|
||||
in
|
||||
{
|
||||
home.file.".config/btop" = {
|
||||
source = batConfigDir;
|
||||
recursive = true;
|
||||
};
|
||||
}
|
||||
109
home/sckova/terminal/default.nix
Normal file
109
home/sckova/terminal/default.nix
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
./btop.nix
|
||||
./fish.nix
|
||||
./kitty.nix
|
||||
./neovim.nix
|
||||
./ytfp.nix
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
# cli utilities
|
||||
tmux
|
||||
fastfetch
|
||||
btop
|
||||
wget
|
||||
ripgrep
|
||||
ncdu
|
||||
wl-clipboard
|
||||
rclone
|
||||
waypipe
|
||||
spotdl
|
||||
browsh
|
||||
mosh
|
||||
gh
|
||||
kdePackages.qttools
|
||||
eza
|
||||
pigz
|
||||
|
||||
# development & tooling
|
||||
jdk21_headless
|
||||
quickemu
|
||||
nerd-fonts.noto
|
||||
noto-fonts
|
||||
noto-fonts-color-emoji
|
||||
nix-prefetch
|
||||
prowlarr
|
||||
radarr
|
||||
sonarr
|
||||
flaresolverr
|
||||
nerd-fonts.fira-mono
|
||||
ffmpeg-full
|
||||
|
||||
# formatters
|
||||
kdePackages.qtdeclarative
|
||||
prettier
|
||||
prettierd
|
||||
nixfmt
|
||||
stylua
|
||||
black
|
||||
clang-tools
|
||||
];
|
||||
|
||||
programs = {
|
||||
git = {
|
||||
enable = true;
|
||||
settings = {
|
||||
user = {
|
||||
name = config.userOptions.name;
|
||||
email = config.userOptions.email;
|
||||
};
|
||||
core.pager = "${pkgs.bat}/bin/bat";
|
||||
commit.gpgsign = true;
|
||||
init.defaultBranch = "main";
|
||||
};
|
||||
};
|
||||
bat = {
|
||||
enable = true;
|
||||
config = {
|
||||
style = "numbers,changes";
|
||||
theme = "base16";
|
||||
};
|
||||
};
|
||||
lazygit = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
};
|
||||
lazysql.enable = true;
|
||||
fzf = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
defaultOptions = [
|
||||
"--height 40%"
|
||||
"--border"
|
||||
];
|
||||
colors = with config.scheme.withHashtag; {
|
||||
bg = base00;
|
||||
"bg+" = base01;
|
||||
border = base03;
|
||||
fg = base05;
|
||||
"fg+" = base05;
|
||||
header = base08;
|
||||
hl = base08;
|
||||
"hl+" = base08;
|
||||
info = config.scheme.withHashtag.${config.colors.accent};
|
||||
label = base05;
|
||||
marker = base07;
|
||||
pointer = base06;
|
||||
prompt = config.scheme.withHashtag.${config.colors.accent};
|
||||
"selected-bg" = base02;
|
||||
spinner = base06;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
51
home/sckova/terminal/fish.nix
Normal file
51
home/sckova/terminal/fish.nix
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
shellAliases = {
|
||||
ssh = "kitty-ssh";
|
||||
cat = "bat";
|
||||
gzip = "pigz";
|
||||
ls = "eza";
|
||||
gl = "git log";
|
||||
gd = "git diff";
|
||||
ga = "git add -v .";
|
||||
gac = "git add -v . && git commit";
|
||||
gaca = "git add -v . && git commit --amend --no-edit";
|
||||
gp = "git push";
|
||||
gpf = "git push --force";
|
||||
};
|
||||
functions = {
|
||||
fish_prompt = {
|
||||
description = "Write out the prompt";
|
||||
body = builtins.readFile ./fish_functions/fish-prompt.fish;
|
||||
};
|
||||
kitty-ssh = {
|
||||
description = "Integrate Kitten SSH with Fish";
|
||||
body = builtins.readFile ./fish_functions/kitty-ssh.fish;
|
||||
};
|
||||
nix-shell = {
|
||||
description = "Wrapper for nix-shell that runs fish by default";
|
||||
body = builtins.readFile ./fish_functions/nix-shell.fish;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
home.file.".config/fish/colors.fish" = {
|
||||
text = lib.concatStringsSep "\n" (
|
||||
lib.mapAttrsToList (name: value: "set -g color_${name} ${value}") (
|
||||
lib.filterAttrs (
|
||||
n: v: builtins.isString v && builtins.match "^base[0-9A-Fa-f]{2}$" n != null
|
||||
) config.scheme
|
||||
)
|
||||
++ [ "set -g color_accent ${config.scheme.${config.colors.accent}}" ]
|
||||
);
|
||||
force = true;
|
||||
};
|
||||
|
||||
programs.man.generateCaches = false;
|
||||
}
|
||||
28
home/sckova/terminal/fish_functions/fish-prompt.fish
Normal file
28
home/sckova/terminal/fish_functions/fish-prompt.fish
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
source ~/.config/fish/colors.fish
|
||||
set -l last_status $status
|
||||
set -l nix_shell_info (
|
||||
if test -n "$IN_NIX_SHELL"
|
||||
echo -n "<nix-shell> "
|
||||
end
|
||||
)
|
||||
set -g color_user cyan
|
||||
set -g color_host red
|
||||
set -g color_cwd green
|
||||
|
||||
# Set host color based on hostname
|
||||
if test (hostname) = peach
|
||||
set -g color_host $color_accent
|
||||
else if test (hostname) = alien
|
||||
set -g color_host $color_accent
|
||||
else if test (hostname) = vm
|
||||
set -g color_host $color_accent
|
||||
set -g color_cwd normal
|
||||
else if test (uname) = Darwin
|
||||
set -g color_host $color_base0A
|
||||
end
|
||||
|
||||
set -l user_host (set_color $color_user)"$USER"(set_color normal)"@"(set_color $color_host)(prompt_hostname)(set_color normal)
|
||||
set -l cwd (set_color $color_cwd)(prompt_pwd)(set_color normal)
|
||||
set -l git_info (fish_git_prompt)
|
||||
echo -s "$user_host" " " "$cwd" "$git_info $nix_shell_info"
|
||||
echo -n -s "> "
|
||||
5
home/sckova/terminal/fish_functions/kitty-ssh.fish
Normal file
5
home/sckova/terminal/fish_functions/kitty-ssh.fish
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
if set -q KITTY_WINDOW_ID
|
||||
kitty +kitten ssh $argv
|
||||
else
|
||||
command ssh $argv
|
||||
end
|
||||
5
home/sckova/terminal/fish_functions/nix-shell.fish
Normal file
5
home/sckova/terminal/fish_functions/nix-shell.fish
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
if test (count $argv) -eq 0
|
||||
command nix-shell --run fish
|
||||
else
|
||||
command nix-shell --run fish $argv
|
||||
end
|
||||
127
home/sckova/terminal/kitty.nix
Normal file
127
home/sckova/terminal/kitty.nix
Normal file
|
|
@ -0,0 +1,127 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.file.".config/kitty/themes" = {
|
||||
source = pkgs.writeTextFile {
|
||||
name = "kitty-colors";
|
||||
text = with config.scheme.withHashtag; ''
|
||||
# vim:ft=kitty
|
||||
## name: NixOS Kitty Theme
|
||||
## author: Catppuccin Org & sckova
|
||||
## license: MIT
|
||||
## upstream: https://github.com/catppuccin/kitty
|
||||
## blurb: The theme generated from the NixOS configuration!
|
||||
|
||||
# The basic colors
|
||||
foreground ${base05}
|
||||
background ${base00}
|
||||
selection_foreground ${base00}
|
||||
selection_background ${base05}
|
||||
|
||||
# Cursor colors
|
||||
cursor ${base05}
|
||||
cursor_text_color ${base00}
|
||||
|
||||
# URL underline color when hovering with mouse
|
||||
url_color ${base05}
|
||||
|
||||
# Kitty window border colors
|
||||
active_border_color ${config.scheme.withHashtag.${config.colors.accent}}
|
||||
inactive_border_color ${base01}
|
||||
bell_border_color ${base12}
|
||||
|
||||
# Tab bar colors
|
||||
active_tab_foreground ${base11}
|
||||
active_tab_background ${config.scheme.withHashtag.${config.colors.accent}}
|
||||
inactive_tab_foreground ${base05}
|
||||
inactive_tab_background ${base10}
|
||||
tab_bar_background ${base11}
|
||||
|
||||
# Colors for marks (marked text in the terminal)
|
||||
mark1_foreground ${base00}
|
||||
mark1_background ${base09}
|
||||
mark2_foreground ${base00}
|
||||
mark2_background ${base0D}
|
||||
mark3_foreground ${base00}
|
||||
mark3_background ${base15}
|
||||
|
||||
# The 16 terminal colors
|
||||
# black
|
||||
color0 ${base02}
|
||||
color8 ${base02}
|
||||
|
||||
# red
|
||||
color1 ${base08}
|
||||
color9 ${base08}
|
||||
|
||||
# green
|
||||
color2 ${base0B}
|
||||
color10 ${base0B}
|
||||
|
||||
# yellow
|
||||
color3 ${base0A}
|
||||
color11 ${base0A}
|
||||
|
||||
# blue
|
||||
color4 ${base0D}
|
||||
color12 ${base0D}
|
||||
|
||||
# magenta
|
||||
color5 ${base17}
|
||||
color13 ${base17}
|
||||
|
||||
# cyan
|
||||
color6 ${base0C}
|
||||
color14 ${base0C}
|
||||
|
||||
# white
|
||||
color7 ${base04}
|
||||
color15 ${base04}
|
||||
'';
|
||||
destination = "/kitty-colors.conf";
|
||||
};
|
||||
|
||||
recursive = true;
|
||||
};
|
||||
|
||||
home.file.".config/kitty/ssh.conf" = {
|
||||
text = ''
|
||||
shell_integration inherited
|
||||
'';
|
||||
};
|
||||
|
||||
programs = {
|
||||
kitty = {
|
||||
enable = true;
|
||||
enableGitIntegration = true;
|
||||
font = {
|
||||
name = config.userOptions.fontMono.name;
|
||||
size = config.userOptions.fontMono.size;
|
||||
};
|
||||
shellIntegration.enableFishIntegration = true;
|
||||
keybindings = {
|
||||
"ctrl+k" = "combine : clear_terminal scroll active : clear_terminal scrollback active";
|
||||
};
|
||||
settings = {
|
||||
include = "/home/${config.userOptions.username}/.config/kitty/themes/kitty-colors.conf";
|
||||
scrollback_lines = 10000;
|
||||
wheel_scroll_multiplier = 5.0;
|
||||
touch_scroll_multiplier = 5.0;
|
||||
enable_audio_bell = false;
|
||||
update_check_interval = 0;
|
||||
confirm_os_window_close = 0;
|
||||
window_padding_width = 4;
|
||||
tab_bar_min_tabs = 2;
|
||||
tab_bar_edge = "top";
|
||||
tab_bar_style = "powerline";
|
||||
tab_powerline_style = "slanted";
|
||||
mouse_hide_wait = "-1.0";
|
||||
wayland_titlebar_color = "system";
|
||||
macos_titlebar_color = "system";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
318
home/sckova/terminal/neovim.nix
Normal file
318
home/sckova/terminal/neovim.nix
Normal file
|
|
@ -0,0 +1,318 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.sessionVariables.EDITOR = lib.mkForce "nvim";
|
||||
|
||||
programs.nixvim = {
|
||||
enable = true;
|
||||
enablePrintInit = true;
|
||||
defaultEditor = true;
|
||||
waylandSupport = true;
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
clipboard = {
|
||||
register = "unnamedplus";
|
||||
providers.wl-copy.enable = true;
|
||||
};
|
||||
opts = {
|
||||
tabstop = 2;
|
||||
softtabstop = 2;
|
||||
shiftwidth = 2;
|
||||
expandtab = true;
|
||||
number = true;
|
||||
};
|
||||
|
||||
colorschemes.base16 = {
|
||||
enable = true;
|
||||
setUpBar = false;
|
||||
colorscheme =
|
||||
let
|
||||
cleanScheme = {
|
||||
inherit (config.scheme.withHashtag)
|
||||
base00
|
||||
base01
|
||||
base02
|
||||
base03
|
||||
base04
|
||||
base05
|
||||
base06
|
||||
base07
|
||||
base08
|
||||
base09
|
||||
base0A
|
||||
base0B
|
||||
base0C
|
||||
base0D
|
||||
base0E
|
||||
base0F
|
||||
;
|
||||
};
|
||||
in
|
||||
cleanScheme
|
||||
// {
|
||||
base08 = cleanScheme.${config.colors.accent};
|
||||
${config.colors.accent} = cleanScheme.base08;
|
||||
};
|
||||
};
|
||||
|
||||
keymaps = [
|
||||
# --- Normal mode mappings ---
|
||||
{
|
||||
mode = "n";
|
||||
key = "<C-c>";
|
||||
action = "\"+y";
|
||||
options = {
|
||||
noremap = true;
|
||||
silent = true;
|
||||
};
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
key = "<C-p>";
|
||||
action = "\"+p";
|
||||
options = {
|
||||
noremap = true;
|
||||
silent = true;
|
||||
};
|
||||
}
|
||||
|
||||
# --- Visual mode mappings ---
|
||||
{
|
||||
mode = "v";
|
||||
key = "<C-c>";
|
||||
action = "\"+y";
|
||||
options = {
|
||||
noremap = true;
|
||||
silent = true;
|
||||
};
|
||||
}
|
||||
{
|
||||
mode = "v";
|
||||
key = "<C-p>";
|
||||
action = "\"+p";
|
||||
options = {
|
||||
noremap = true;
|
||||
silent = true;
|
||||
};
|
||||
}
|
||||
];
|
||||
plugins = {
|
||||
nvim-autopairs = {
|
||||
enable = true;
|
||||
};
|
||||
cmp = {
|
||||
enable = true;
|
||||
settings = {
|
||||
autoEnableSources = true;
|
||||
performance = {
|
||||
debounce = 60;
|
||||
fetchingTimeout = 200;
|
||||
maxViewEntries = 30;
|
||||
};
|
||||
mapping = {
|
||||
__raw = ''
|
||||
cmp.mapping.preset.insert({
|
||||
['<C-b>'] = cmp.mapping.scroll_docs(-4),
|
||||
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
||||
['<C-Space>'] = cmp.mapping.complete(),
|
||||
['<C-e>'] = cmp.mapping.abort(),
|
||||
['<C-Enter>'] = cmp.mapping.confirm({ select = true }),
|
||||
})
|
||||
'';
|
||||
};
|
||||
snippet = {
|
||||
expand = "luasnip";
|
||||
};
|
||||
formatting = {
|
||||
fields = [
|
||||
"kind"
|
||||
"abbr"
|
||||
"menu"
|
||||
];
|
||||
};
|
||||
sources = [
|
||||
{ name = "git"; }
|
||||
{ name = "nvim_lsp"; }
|
||||
{ name = "path"; }
|
||||
{ name = "buffer"; }
|
||||
{ name = "fish"; }
|
||||
{ name = "emoji"; }
|
||||
{
|
||||
name = "buffer"; # text within current buffer
|
||||
option.get_bufnrs.__raw = "vim.api.nvim_list_bufs";
|
||||
keywordLength = 3;
|
||||
}
|
||||
{
|
||||
name = "path"; # file system paths
|
||||
keywordLength = 3;
|
||||
}
|
||||
{
|
||||
name = "luasnip"; # snippets
|
||||
keywordLength = 3;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
conform-nvim = {
|
||||
enable = true;
|
||||
settings = {
|
||||
formatters_by_ft = {
|
||||
lua = [ "stylua" ];
|
||||
python = [ "black" ];
|
||||
nix = [ "nixfmt" ];
|
||||
html = [ "prettier" ];
|
||||
javascript = [ "prettier" ];
|
||||
css = [ "prettier" ];
|
||||
json = [ "prettier" ];
|
||||
jsonc = [ "prettier" ];
|
||||
fish = [ "fish_indent" ];
|
||||
c = [ "clang-format" ];
|
||||
cpp = [ "clang-format" ];
|
||||
};
|
||||
|
||||
# Default formatting options
|
||||
default_format_opts = {
|
||||
lsp_format = "fallback";
|
||||
};
|
||||
|
||||
# Format-on-save behavior
|
||||
format_on_save = {
|
||||
timeout_ms = 500;
|
||||
};
|
||||
|
||||
# Custom formatter settings
|
||||
formatters = {
|
||||
shfmt = {
|
||||
append_args = [
|
||||
"-i"
|
||||
"2"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
fzf-lua = {
|
||||
enable = true;
|
||||
};
|
||||
kitty-scrollback = {
|
||||
enable = true;
|
||||
};
|
||||
lsp = {
|
||||
enable = true;
|
||||
servers = {
|
||||
qmlls = {
|
||||
enable = true;
|
||||
cmd = [
|
||||
"qmlls"
|
||||
"-E"
|
||||
];
|
||||
};
|
||||
nixd.enable = true;
|
||||
};
|
||||
};
|
||||
lualine = with config.scheme.withHashtag; {
|
||||
enable = true;
|
||||
settings = {
|
||||
options = {
|
||||
theme = {
|
||||
normal = {
|
||||
a = {
|
||||
fg = base00;
|
||||
bg = base0E;
|
||||
};
|
||||
b = {
|
||||
fg = base05;
|
||||
bg = base01;
|
||||
};
|
||||
c = {
|
||||
fg = base05;
|
||||
};
|
||||
};
|
||||
insert = {
|
||||
a = {
|
||||
fg = base00;
|
||||
bg = base0D;
|
||||
};
|
||||
};
|
||||
visual = {
|
||||
a = {
|
||||
fg = base00;
|
||||
bg = base0C;
|
||||
};
|
||||
};
|
||||
replace = {
|
||||
a = {
|
||||
fg = base00;
|
||||
bg = base08;
|
||||
};
|
||||
};
|
||||
inactive = {
|
||||
a = {
|
||||
fg = base05;
|
||||
bg = base00;
|
||||
};
|
||||
b = {
|
||||
fg = base05;
|
||||
bg = base00;
|
||||
};
|
||||
c = {
|
||||
fg = base05;
|
||||
};
|
||||
};
|
||||
};
|
||||
component_separators = "";
|
||||
section_separators = {
|
||||
left = "";
|
||||
right = "";
|
||||
};
|
||||
};
|
||||
|
||||
sections = {
|
||||
lualine_a = [
|
||||
{
|
||||
__unkeyed-1 = "mode";
|
||||
separator = {
|
||||
left = " ";
|
||||
};
|
||||
right_padding = 2;
|
||||
}
|
||||
];
|
||||
lualine_b = [
|
||||
"filename"
|
||||
"branch"
|
||||
];
|
||||
lualine_c = [ "%=" ];
|
||||
lualine_x = [ ];
|
||||
lualine_y = [
|
||||
"filetype"
|
||||
"progress"
|
||||
];
|
||||
lualine_z = [
|
||||
{
|
||||
__unkeyed-1 = "location";
|
||||
separator = {
|
||||
right = " ";
|
||||
};
|
||||
left_padding = 2;
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
inactive_sections = {
|
||||
lualine_a = [ "filename" ];
|
||||
lualine_b = [ ];
|
||||
lualine_c = [ ];
|
||||
lualine_x = [ ];
|
||||
lualine_y = [ ];
|
||||
lualine_z = [ "location" ];
|
||||
};
|
||||
tabline = { };
|
||||
extensions = [ ];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
47
home/sckova/terminal/ytfp.nix
Normal file
47
home/sckova/terminal/ytfp.nix
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
# full credit to u/SupermarketAntique32 on reddit:
|
||||
# https://www.reddit.com/r/commandline/comments/1sd26he/youtube_search_and_play_in_20_lines_of_bash/
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
(writeShellApplication {
|
||||
name = "ytfp";
|
||||
runtimeInputs = [
|
||||
bash
|
||||
curl
|
||||
fzf
|
||||
yt-dlp
|
||||
chafa
|
||||
config.programs.mpv.finalPackage
|
||||
];
|
||||
text = ''
|
||||
# `ytfp`: Search YouTube video using `fzf` and play it in `mpv`
|
||||
|
||||
SEARCH_VID() {
|
||||
yt-dlp "https://www.youtube.com/results?search_query=$1" \
|
||||
--flat-playlist --playlist-items 1:20 --print \
|
||||
$'%(thumbnails.0.url)s\t%(title)s\t%(channel)s\t%(view_count)s\t%(url)s' \
|
||||
| grep --extended-regexp --invert-match 'playlist|channel'
|
||||
}
|
||||
RENDER_VID_INFO() {
|
||||
curl --silent "$1" | chafa --size=x14 --clear
|
||||
echo "Title : $2"
|
||||
echo "Channel : $3"
|
||||
echo "Views : $4"
|
||||
}
|
||||
export -f SEARCH_VID RENDER_VID_INFO
|
||||
|
||||
fzf --preview-window down --layout reverse --disabled --with-shell 'bash -c' \
|
||||
--bind 'start:reload:SEARCH_VID fzf' \
|
||||
--bind 'change:reload:sleep 0.3; SEARCH_VID {q} || true' \
|
||||
--bind 'load:first' \
|
||||
--delimiter '\t' --with-nth 2 \
|
||||
--preview 'RENDER_VID_INFO {1} {2} {3} {4}' \
|
||||
--bind 'enter:execute-silent(mpv {5})'
|
||||
'';
|
||||
})
|
||||
];
|
||||
}
|
||||
114
home/sckova/tiling/default.nix
Normal file
114
home/sckova/tiling/default.nix
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
{ pkgs, config, ... }:
|
||||
{
|
||||
imports = [
|
||||
./niri.nix
|
||||
./noctalia.nix
|
||||
./wallpaper.nix
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
xdg-desktop-portal
|
||||
brightnessctl
|
||||
qt6Packages.qt6ct
|
||||
libsForQt5.qt5ct
|
||||
catppuccin-qt5ct
|
||||
xwayland-satellite
|
||||
playerctl
|
||||
];
|
||||
|
||||
programs.fuzzel = {
|
||||
enable = true;
|
||||
package = pkgs.fuzzel;
|
||||
settings = {
|
||||
main = {
|
||||
terminal = "${pkgs.kitty}/bin/kitty";
|
||||
layer = "overlay";
|
||||
font = with config.userOptions.fontMono; name + ":size=" + toString (size + 2);
|
||||
launch-prefix = "${pkgs.niri}/bin/niri msg action spawn --";
|
||||
icon-theme = config.gtk.iconTheme.name;
|
||||
};
|
||||
border = {
|
||||
width = 2;
|
||||
radius = 8;
|
||||
};
|
||||
colors = with config.scheme; {
|
||||
background = base00 + "E6";
|
||||
text = base05 + "E6";
|
||||
prompt = base04 + "E6";
|
||||
placeholder = base04 + "E6";
|
||||
input = base05 + "E6";
|
||||
match = config.scheme.withHashtag.${config.colors.accent} + "FF";
|
||||
selection = base04 + "E6";
|
||||
selection-text = base00 + "E6";
|
||||
counter = base04 + "E6";
|
||||
border = config.scheme.withHashtag.${config.colors.accent} + "FF";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
programs.swaylock = with config.scheme; {
|
||||
enable = true;
|
||||
# package = pkgs.swaylock-effects;
|
||||
settings = {
|
||||
# this would sometimes load the previous day's wallpaper
|
||||
# when it is run before the bing retrieval script finishes
|
||||
# image = "~/.local/share/wallpaper/daily-colored.jpg";
|
||||
# effect-blur = "7x5";
|
||||
color = "000000"; # black
|
||||
font-size = 24;
|
||||
indicator-idle-visible = true;
|
||||
indicator-radius = 100;
|
||||
show-failed-attempts = true;
|
||||
|
||||
bs-hl-color = base09 + "E6"; # peach
|
||||
caps-lock-bs-hl-color = base09 + "E6"; # peach
|
||||
caps-lock-key-hl-color = base0E + "E6"; # mauve
|
||||
inside-color = base00 + "E6"; # base
|
||||
inside-clear-color = base00 + "E6"; # base
|
||||
inside-caps-lock-color = base00 + "E6"; # base
|
||||
inside-ver-color = base00 + "E6"; # base
|
||||
inside-wrong-color = base00 + "E6"; # base
|
||||
key-hl-color = base0D + "E6"; # blue
|
||||
layout-bg-color = base00 + "E6"; # base
|
||||
layout-border-color = base00 + "E6"; # base
|
||||
layout-text-color = base05 + "E6"; # text
|
||||
line-color = base00 + "E6"; # base
|
||||
line-clear-color = base00 + "E6"; # base
|
||||
line-caps-lock-color = base00 + "E6"; # base
|
||||
line-ver-color = base00 + "E6"; # base
|
||||
line-wrong-color = base00 + "E6"; # base
|
||||
ring-color = base00 + "E6"; # base
|
||||
ring-clear-color = base09 + "E6"; # peach
|
||||
ring-caps-lock-color = base00 + "E6"; # base
|
||||
ring-ver-color = base0B + "E6"; # green
|
||||
ring-wrong-color = base00 + "E6"; # base
|
||||
separator-color = "00000000"; # transparent
|
||||
text-color = base05 + "E6"; # text
|
||||
text-clear-color = base09 + "E6"; # peach
|
||||
text-caps-lock-color = base0E + "E6"; # mauve
|
||||
text-ver-color = base05 + "E6"; # text
|
||||
text-wrong-color = base08 + "E6"; # red
|
||||
};
|
||||
};
|
||||
|
||||
systemd.user.services.swaylock = {
|
||||
Unit = {
|
||||
After = [ "niri.service" ];
|
||||
PartOf = [ "niri.service" ];
|
||||
Description = "Screen locker";
|
||||
Documentation = "https://github.com/swaywm/swaylock";
|
||||
};
|
||||
|
||||
Service = {
|
||||
ExecStart = "${config.programs.swaylock.package}/bin/swaylock";
|
||||
Restart = "on-failure";
|
||||
};
|
||||
|
||||
Install.WantedBy = [ "niri.service" ];
|
||||
};
|
||||
|
||||
xsession = {
|
||||
enable = true;
|
||||
windowManager.command = "niri";
|
||||
};
|
||||
}
|
||||
562
home/sckova/tiling/niri.nix
Normal file
562
home/sckova/tiling/niri.nix
Normal file
|
|
@ -0,0 +1,562 @@
|
|||
{
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
# https://github.com/sodiboo/niri-flake/blob/main/docs.md
|
||||
programs.niri = with config.scheme.withHashtag; {
|
||||
# handle package systemwide
|
||||
package = null;
|
||||
|
||||
settings = {
|
||||
environment = {
|
||||
QT_QPA_PLATFORM = "wayland";
|
||||
QT_QPA_PLATFORMTHEME = "qt6ct";
|
||||
DISPLAY = ":0";
|
||||
XCURSOR_THEME = config.userOptions.cursor.name;
|
||||
XCURSOR_SIZE = toString config.userOptions.cursor.size;
|
||||
};
|
||||
screenshot-path = "~/Pictures/Screenshots/%a %b %e %Y @%l:%M %p.png";
|
||||
hotkey-overlay.skip-at-startup = true;
|
||||
prefer-no-csd = true;
|
||||
gestures.hot-corners.enable = false;
|
||||
spawn-at-startup = [ ]; # systemd is based sorry
|
||||
overview = {
|
||||
backdrop-color = base11;
|
||||
workspace-shadow.enable = false;
|
||||
};
|
||||
input = {
|
||||
focus-follows-mouse.enable = true;
|
||||
focus-follows-mouse.max-scroll-amount = "0%";
|
||||
mod-key = "Super";
|
||||
keyboard = {
|
||||
numlock = false;
|
||||
repeat-delay = 600;
|
||||
repeat-rate = 25;
|
||||
};
|
||||
mouse = {
|
||||
enable = true;
|
||||
accel-profile = "adaptive";
|
||||
natural-scroll = false;
|
||||
};
|
||||
touchpad = {
|
||||
enable = true;
|
||||
accel-profile = "adaptive";
|
||||
natural-scroll = true;
|
||||
tap = false;
|
||||
drag = false;
|
||||
};
|
||||
};
|
||||
outputs = {
|
||||
"HDMI-A-1" = {
|
||||
mode = {
|
||||
width = 3840;
|
||||
height = 2160;
|
||||
refresh = 144.000;
|
||||
};
|
||||
scale = 1.5;
|
||||
position = {
|
||||
x = 0;
|
||||
y = 0;
|
||||
};
|
||||
};
|
||||
"DP-1" = {
|
||||
mode = {
|
||||
width = 3840;
|
||||
height = 2160;
|
||||
refresh = 143.999;
|
||||
};
|
||||
scale = 1.5;
|
||||
position = {
|
||||
x = 0;
|
||||
y = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
cursor = {
|
||||
hide-when-typing = false;
|
||||
size = config.userOptions.cursor.size;
|
||||
theme = config.userOptions.cursor.name;
|
||||
};
|
||||
layout = {
|
||||
gaps = 4;
|
||||
background-color = "transparent";
|
||||
default-column-width.proportion = 0.5;
|
||||
preset-column-widths = [
|
||||
{ proportion = 4.0 / 12.0; }
|
||||
{ proportion = 6.0 / 12.0; }
|
||||
{ proportion = 8.0 / 12.0; }
|
||||
];
|
||||
border = {
|
||||
enable = true;
|
||||
width = 2;
|
||||
active.color = config.scheme.withHashtag.${config.colors.accent} + "E6";
|
||||
inactive.color = base01 + "E6";
|
||||
urgent.color = base12 + "E6";
|
||||
};
|
||||
focus-ring = {
|
||||
enable = false;
|
||||
width = 2;
|
||||
active.color = config.scheme.withHashtag.${config.colors.accent} + "E6";
|
||||
inactive.color = base01 + "E6";
|
||||
urgent.color = base12 + "E6";
|
||||
};
|
||||
shadow = {
|
||||
enable = true;
|
||||
spread = 10;
|
||||
offset.x = 0;
|
||||
offset.y = 0;
|
||||
softness = 30;
|
||||
color = base11 + "BF";
|
||||
};
|
||||
};
|
||||
window-rules = [
|
||||
{
|
||||
geometry-corner-radius = {
|
||||
top-left = 8.0;
|
||||
top-right = 8.0;
|
||||
bottom-left = 8.0;
|
||||
bottom-right = 8.0;
|
||||
};
|
||||
clip-to-geometry = true;
|
||||
opacity = 0.90;
|
||||
background-effect = {
|
||||
xray = false;
|
||||
blur = true;
|
||||
noise = 0.05;
|
||||
saturation = 1;
|
||||
};
|
||||
draw-border-with-background = false;
|
||||
}
|
||||
{
|
||||
matches = [
|
||||
{
|
||||
app-id = "vesktop$";
|
||||
}
|
||||
{
|
||||
app-id = "org.gnome.Nautilus$";
|
||||
}
|
||||
];
|
||||
block-out-from = "screen-capture";
|
||||
}
|
||||
{
|
||||
matches = [
|
||||
{
|
||||
is-active = false;
|
||||
}
|
||||
];
|
||||
opacity = 0.90;
|
||||
}
|
||||
{
|
||||
matches = [
|
||||
{
|
||||
app-id = "openmw";
|
||||
title = "OpenMW";
|
||||
}
|
||||
{
|
||||
app-id = "Minecraft";
|
||||
title = "Minecraft";
|
||||
}
|
||||
];
|
||||
open-maximized-to-edges = true;
|
||||
open-focused = true;
|
||||
opacity = 1.00;
|
||||
}
|
||||
{
|
||||
matches = [
|
||||
{
|
||||
app-id = "mpv";
|
||||
}
|
||||
{
|
||||
app-id = "firefox";
|
||||
title = "Picture-in-Picture";
|
||||
}
|
||||
];
|
||||
opacity = 1.0;
|
||||
}
|
||||
{
|
||||
# Kitty Fastfetch window
|
||||
matches = [
|
||||
{
|
||||
app-id = "kitty";
|
||||
title = "^fastfetch$";
|
||||
}
|
||||
];
|
||||
open-floating = true;
|
||||
baba-is-float = true;
|
||||
min-width = 960;
|
||||
min-height = 480;
|
||||
max-width = 960;
|
||||
max-height = 480;
|
||||
}
|
||||
];
|
||||
layer-rules = [
|
||||
{
|
||||
matches = [ { namespace = "^launcher$"; } ];
|
||||
background-effect = {
|
||||
xray = false;
|
||||
blur = true;
|
||||
noise = 0.05;
|
||||
saturation = 1;
|
||||
};
|
||||
}
|
||||
{
|
||||
matches = [ { namespace = "^wallpaper$"; } ];
|
||||
place-within-backdrop = true;
|
||||
}
|
||||
];
|
||||
binds = {
|
||||
"Mod+Shift+Slash".action.show-hotkey-overlay = { };
|
||||
"Mod+D" = {
|
||||
action.toggle-window-rule-opacity = { };
|
||||
repeat = false;
|
||||
};
|
||||
"Mod+M" = {
|
||||
action.spawn = [
|
||||
"wpctl"
|
||||
"set-mute"
|
||||
"@DEFAULT_AUDIO_SOURCE@"
|
||||
"toggle"
|
||||
];
|
||||
hotkey-overlay.title = "Toggle Microphone Mute";
|
||||
repeat = false;
|
||||
};
|
||||
|
||||
"Mod+T" = {
|
||||
action.spawn = [ "kitty" ];
|
||||
hotkey-overlay.title = "Open a Terminal: kitty";
|
||||
};
|
||||
"Mod+Shift+T" = {
|
||||
action.spawn-sh = [ "kitty --title fastfetch sh -c 'fastfetch; sleep 10'" ];
|
||||
hotkey-overlay.title = "Open a Terminal with Fastfetch";
|
||||
};
|
||||
"Mod+Space" = {
|
||||
action.spawn = [ "fuzzel" ];
|
||||
hotkey-overlay.title = "Run an Application: Fuzzel";
|
||||
};
|
||||
|
||||
"XF86AudioRaiseVolume" = {
|
||||
action.spawn = [
|
||||
"wpctl"
|
||||
"set-volume"
|
||||
"@DEFAULT_AUDIO_SINK@"
|
||||
"0.05+"
|
||||
];
|
||||
allow-when-locked = true;
|
||||
};
|
||||
"XF86AudioLowerVolume" = {
|
||||
action.spawn = [
|
||||
"wpctl"
|
||||
"set-volume"
|
||||
"@DEFAULT_AUDIO_SINK@"
|
||||
"0.05-"
|
||||
];
|
||||
allow-when-locked = true;
|
||||
};
|
||||
|
||||
"Shift+XF86AudioRaiseVolume" = {
|
||||
action.spawn = [
|
||||
"wpctl"
|
||||
"set-volume"
|
||||
"@DEFAULT_AUDIO_SINK@"
|
||||
"0.01+"
|
||||
];
|
||||
allow-when-locked = true;
|
||||
};
|
||||
"Shift+XF86AudioLowerVolume" = {
|
||||
action.spawn = [
|
||||
"wpctl"
|
||||
"set-volume"
|
||||
"@DEFAULT_AUDIO_SINK@"
|
||||
"0.01-"
|
||||
];
|
||||
allow-when-locked = true;
|
||||
};
|
||||
|
||||
"MouseForward" = {
|
||||
action.spawn = [
|
||||
"wpctl"
|
||||
"set-volume"
|
||||
"@DEFAULT_AUDIO_SINK@"
|
||||
"0.05+"
|
||||
];
|
||||
allow-when-locked = true;
|
||||
};
|
||||
"MouseBack" = {
|
||||
action.spawn = [
|
||||
"wpctl"
|
||||
"set-volume"
|
||||
"@DEFAULT_AUDIO_SINK@"
|
||||
"0.05-"
|
||||
];
|
||||
allow-when-locked = true;
|
||||
};
|
||||
|
||||
"Shift+MouseForward" = {
|
||||
action.spawn = [
|
||||
"wpctl"
|
||||
"set-volume"
|
||||
"@DEFAULT_AUDIO_SINK@"
|
||||
"0.01+"
|
||||
];
|
||||
allow-when-locked = true;
|
||||
};
|
||||
"Shift+MouseBack" = {
|
||||
action.spawn = [
|
||||
"wpctl"
|
||||
"set-volume"
|
||||
"@DEFAULT_AUDIO_SINK@"
|
||||
"0.01-"
|
||||
];
|
||||
allow-when-locked = true;
|
||||
};
|
||||
|
||||
"XF86AudioMute" = {
|
||||
action.spawn = [
|
||||
"wpctl"
|
||||
"set-mute"
|
||||
"@DEFAULT_AUDIO_SINK@"
|
||||
"toggle"
|
||||
];
|
||||
allow-when-locked = true;
|
||||
};
|
||||
"XF86AudioMicMute" = {
|
||||
action.spawn = [
|
||||
"wpctl"
|
||||
"set-mute"
|
||||
"@DEFAULT_AUDIO_SOURCE@"
|
||||
"toggle"
|
||||
];
|
||||
allow-when-locked = true;
|
||||
};
|
||||
|
||||
"XF86MonBrightnessUp" = {
|
||||
action.spawn = [
|
||||
"noctalia-shell"
|
||||
"ipc"
|
||||
"call"
|
||||
"brightness"
|
||||
"increase"
|
||||
];
|
||||
allow-when-locked = true;
|
||||
};
|
||||
|
||||
"XF86MonBrightnessDown" = {
|
||||
action.spawn = [
|
||||
"noctalia-shell"
|
||||
"ipc"
|
||||
"call"
|
||||
"brightness"
|
||||
"decrease"
|
||||
];
|
||||
allow-when-locked = true;
|
||||
};
|
||||
|
||||
"Shift+XF86MonBrightnessUp" = {
|
||||
action.spawn = [
|
||||
"brightnessctl"
|
||||
"--class=backlight"
|
||||
"set"
|
||||
"+1%"
|
||||
];
|
||||
allow-when-locked = true;
|
||||
};
|
||||
|
||||
"Shift+XF86MonBrightnessDown" = {
|
||||
action.spawn = [
|
||||
"brightnessctl"
|
||||
"--class=backlight"
|
||||
"set"
|
||||
"1%-"
|
||||
];
|
||||
allow-when-locked = true;
|
||||
};
|
||||
|
||||
"XF86AudioPrev" = {
|
||||
action.spawn = [
|
||||
"playerctl"
|
||||
"previous"
|
||||
];
|
||||
allow-when-locked = true;
|
||||
};
|
||||
|
||||
"XF86AudioPlay" = {
|
||||
action.spawn = [
|
||||
"playerctl"
|
||||
"play-pause"
|
||||
];
|
||||
allow-when-locked = true;
|
||||
};
|
||||
|
||||
"XF86AudioNext" = {
|
||||
action.spawn = [
|
||||
"playerctl"
|
||||
"next"
|
||||
];
|
||||
allow-when-locked = true;
|
||||
};
|
||||
|
||||
"XF86Sleep".action.power-off-monitors = { };
|
||||
|
||||
"XF86Search".action.spawn = [ "fuzzel" ];
|
||||
"Mod+Shift+L".action.spawn = [ "swaylock" ];
|
||||
|
||||
"XF86LaunchA" = {
|
||||
action.toggle-overview = { };
|
||||
repeat = false;
|
||||
};
|
||||
|
||||
"Mod+O" = {
|
||||
action.toggle-overview = { };
|
||||
repeat = false;
|
||||
};
|
||||
|
||||
"Mod+Q" = {
|
||||
action.close-window = { };
|
||||
repeat = false;
|
||||
};
|
||||
|
||||
"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+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 = { };
|
||||
|
||||
"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+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 = { };
|
||||
"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 = { };
|
||||
|
||||
"Mod+Shift+Page_Down".action.move-workspace-down = { };
|
||||
"Mod+Shift+Page_Up".action.move-workspace-up = { };
|
||||
"Mod+Shift+U".action.move-workspace-down = { };
|
||||
"Mod+Shift+I".action.move-workspace-up = { };
|
||||
|
||||
"Mod+WheelScrollDown" = {
|
||||
action.focus-workspace-down = { };
|
||||
cooldown-ms = 150;
|
||||
};
|
||||
"Mod+WheelScrollUp" = {
|
||||
action.focus-workspace-up = { };
|
||||
cooldown-ms = 150;
|
||||
};
|
||||
"Mod+Ctrl+WheelScrollDown" = {
|
||||
action.move-column-to-workspace-down = { };
|
||||
cooldown-ms = 150;
|
||||
};
|
||||
"Mod+Ctrl+WheelScrollUp" = {
|
||||
action.move-column-to-workspace-up = { };
|
||||
cooldown-ms = 150;
|
||||
};
|
||||
|
||||
"Mod+WheelScrollRight".action.focus-column-right = { };
|
||||
"Mod+WheelScrollLeft".action.focus-column-left = { };
|
||||
"Mod+Ctrl+WheelScrollRight".action.move-column-right = { };
|
||||
"Mod+Ctrl+WheelScrollLeft".action.move-column-left = { };
|
||||
|
||||
"Mod+Shift+WheelScrollDown".action.focus-column-right = { };
|
||||
"Mod+Shift+WheelScrollUp".action.focus-column-left = { };
|
||||
"Mod+Ctrl+Shift+WheelScrollDown".action.move-column-right = { };
|
||||
"Mod+Ctrl+Shift+WheelScrollUp".action.move-column-left = { };
|
||||
|
||||
"Mod+1".action.focus-workspace = 1;
|
||||
"Mod+2".action.focus-workspace = 2;
|
||||
"Mod+3".action.focus-workspace = 3;
|
||||
"Mod+4".action.focus-workspace = 4;
|
||||
"Mod+5".action.focus-workspace = 5;
|
||||
"Mod+6".action.focus-workspace = 6;
|
||||
"Mod+7".action.focus-workspace = 7;
|
||||
"Mod+8".action.focus-workspace = 8;
|
||||
"Mod+9".action.focus-workspace = 9;
|
||||
"Mod+Ctrl+1".action.move-column-to-workspace = 1;
|
||||
"Mod+Ctrl+2".action.move-column-to-workspace = 2;
|
||||
"Mod+Ctrl+3".action.move-column-to-workspace = 3;
|
||||
"Mod+Ctrl+4".action.move-column-to-workspace = 4;
|
||||
"Mod+Ctrl+5".action.move-column-to-workspace = 5;
|
||||
"Mod+Ctrl+6".action.move-column-to-workspace = 6;
|
||||
"Mod+Ctrl+7".action.move-column-to-workspace = 7;
|
||||
"Mod+Ctrl+8".action.move-column-to-workspace = 8;
|
||||
"Mod+Ctrl+9".action.move-column-to-workspace = 9;
|
||||
|
||||
"Mod+BracketLeft".action.consume-or-expel-window-left = { };
|
||||
"Mod+BracketRight".action.consume-or-expel-window-right = { };
|
||||
|
||||
"Mod+Comma".action.consume-window-into-column = { };
|
||||
"Mod+Period".action.expel-window-from-column = { };
|
||||
|
||||
"Mod+R".action.switch-preset-column-width = { };
|
||||
"Mod+Shift+R".action.switch-preset-window-height = { };
|
||||
"Mod+Ctrl+R".action.reset-window-height = { };
|
||||
"Mod+F".action.maximize-column = { };
|
||||
"Mod+Shift+F".action.maximize-window-to-edges = { };
|
||||
"Mod+Ctrl+Shift+F".action.fullscreen-window = { };
|
||||
|
||||
"Mod+C".action.center-column = { };
|
||||
"Mod+Ctrl+C".action.center-visible-columns = { };
|
||||
|
||||
"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+Ctrl+Minus".action.set-column-width = "-0.25%";
|
||||
"Mod+Ctrl+Equal".action.set-column-width = "+0.25%";
|
||||
"Mod+Ctrl+Shift+Minus".action.set-window-height = "-0.25%";
|
||||
"Mod+Ctrl+Shift+Equal".action.set-window-height = "+0.25%";
|
||||
|
||||
"Mod+V".action.toggle-window-floating = { };
|
||||
"Mod+Shift+V".action.switch-focus-between-floating-and-tiling = { };
|
||||
|
||||
"Mod+W".action.toggle-column-tabbed-display = { };
|
||||
|
||||
"Mod+Shift+S".action.screenshot.show-pointer = false;
|
||||
"Ctrl+Shift+S".action.screenshot-screen.show-pointer = false;
|
||||
"Alt+Shift+S".action.screenshot-window.show-pointer = false;
|
||||
|
||||
"Mod+Escape" = {
|
||||
action.toggle-keyboard-shortcuts-inhibit = { };
|
||||
allow-inhibiting = false;
|
||||
};
|
||||
|
||||
"Mod+Shift+E".action.quit = { };
|
||||
"Ctrl+Alt+Delete".action.quit = { };
|
||||
|
||||
"Mod+Shift+P" = {
|
||||
action.power-off-monitors = { };
|
||||
hotkey-overlay.title = "Turn off the display";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
617
home/sckova/tiling/noctalia.nix
Normal file
617
home/sckova/tiling/noctalia.nix
Normal file
|
|
@ -0,0 +1,617 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.noctalia-shell = {
|
||||
enable = true;
|
||||
colors = with config.scheme.withHashtag; {
|
||||
mPrimary = config.scheme.withHashtag.${config.colors.accent};
|
||||
mOnPrimary = base00;
|
||||
mSecondary = base13;
|
||||
mOnSecondary = base00;
|
||||
mTertiary = base04;
|
||||
mOnTertiary = base00;
|
||||
mError = base12;
|
||||
mOnError = base00;
|
||||
mSurface = base00;
|
||||
mOnSurface = base05;
|
||||
mSurfaceVariant = base01;
|
||||
mOnSurfaceVariant = base05;
|
||||
mOutline = base02;
|
||||
mShadow = base00;
|
||||
mHover = base04;
|
||||
mOnHover = base00;
|
||||
};
|
||||
settings = {
|
||||
appLauncher = {
|
||||
autoPasteClipboard = false;
|
||||
clipboardWatchImageCommand = "wl-paste --type image --watch cliphist store";
|
||||
clipboardWatchTextCommand = "wl-paste --type text --watch cliphist store";
|
||||
clipboardWrapText = true;
|
||||
customLaunchPrefix = "";
|
||||
customLaunchPrefixEnabled = false;
|
||||
enableClipPreview = true;
|
||||
enableClipboardHistory = true;
|
||||
enableSettingsSearch = true;
|
||||
enableWindowsSearch = true;
|
||||
iconMode = "tabler";
|
||||
ignoreMouseInput = false;
|
||||
overviewLayer = false;
|
||||
pinnedApps = [ ];
|
||||
position = "top_left";
|
||||
screenshotAnnotationTool = "";
|
||||
showCategories = true;
|
||||
showIconBackground = false;
|
||||
sortByMostUsed = true;
|
||||
terminalCommand = "kitty -e";
|
||||
useApp2Unit = false;
|
||||
viewMode = "list";
|
||||
};
|
||||
|
||||
audio = {
|
||||
cavaFrameRate = 30;
|
||||
mprisBlacklist = [ ];
|
||||
preferredPlayer = "";
|
||||
visualizerType = "linear";
|
||||
volumeFeedback = false;
|
||||
volumeOverdrive = false;
|
||||
volumeStep = 5;
|
||||
};
|
||||
|
||||
bar = {
|
||||
autoHideDelay = 500;
|
||||
autoShowDelay = 150;
|
||||
backgroundOpacity = 0.90;
|
||||
monitors = [ ];
|
||||
showCapsule = true;
|
||||
barType = "simple";
|
||||
capsuleColorKey = "none";
|
||||
capsuleOpacity = 0.90;
|
||||
displayMode = "always_visible";
|
||||
floating = false;
|
||||
marginHorizontal = 5;
|
||||
marginVertical = 5;
|
||||
frameRadius = 12;
|
||||
frameThickness = 8;
|
||||
hideOnOverview = false;
|
||||
outerCorners = false;
|
||||
screenOverrides = [ ];
|
||||
showOutline = false;
|
||||
useSeparateOpacity = true;
|
||||
widgets = {
|
||||
center = [ ];
|
||||
left = [
|
||||
{
|
||||
colorizeSystemIcon = "none";
|
||||
enableColorization = true;
|
||||
hideMode = "alwaysExpanded";
|
||||
icon = "rocket";
|
||||
id = "CustomButton";
|
||||
ipcIdentifier = "";
|
||||
leftClickExec = "niri msg action spawn -- fuzzel";
|
||||
leftClickUpdateText = false;
|
||||
maxTextLength = {
|
||||
horizontal = 10;
|
||||
vertical = 10;
|
||||
};
|
||||
middleClickExec = "";
|
||||
middleClickUpdateText = false;
|
||||
parseJson = false;
|
||||
rightClickExec = "";
|
||||
rightClickUpdateText = false;
|
||||
showIcon = true;
|
||||
textCollapse = "";
|
||||
textCommand = "";
|
||||
textIntervalMs = 3000;
|
||||
textStream = false;
|
||||
wheelDownExec = "";
|
||||
wheelDownUpdateText = false;
|
||||
wheelExec = "";
|
||||
wheelMode = "unified";
|
||||
wheelUpExec = "";
|
||||
wheelUpUpdateText = false;
|
||||
wheelUpdateText = false;
|
||||
}
|
||||
{
|
||||
characterCount = 2;
|
||||
colorizeIcons = false;
|
||||
emptyColor = "secondary";
|
||||
enableScrollWheel = true;
|
||||
focusedColor = "primary";
|
||||
followFocusedScreen = false;
|
||||
groupedBorderOpacity = 1;
|
||||
hideUnoccupied = true;
|
||||
iconScale = 0.6;
|
||||
id = "Workspace";
|
||||
labelMode = "index";
|
||||
occupiedColor = "secondary";
|
||||
pillSize = 0.6;
|
||||
reverseScroll = false;
|
||||
showApplications = true;
|
||||
showBadge = true;
|
||||
showLabelsOnlyWhenOccupied = true;
|
||||
unfocusedIconsOpacity = 1;
|
||||
}
|
||||
{
|
||||
compactMode = true;
|
||||
diskPath = "/";
|
||||
iconColor = "none";
|
||||
id = "SystemMonitor";
|
||||
showCpuFreq = false;
|
||||
showCpuTemp = false;
|
||||
showCpuUsage = true;
|
||||
showDiskAvailable = false;
|
||||
showDiskUsage = true;
|
||||
showDiskUsageAsPercent = false;
|
||||
showGpuTemp = false;
|
||||
showLoadAverage = false;
|
||||
showMemoryAsPercent = true;
|
||||
showMemoryUsage = true;
|
||||
showNetworkStats = false;
|
||||
showSwapUsage = false;
|
||||
textColor = "none";
|
||||
useMonospaceFont = true;
|
||||
}
|
||||
{
|
||||
colorizeIcons = false;
|
||||
hideMode = "hidden";
|
||||
id = "ActiveWindow";
|
||||
maxWidth = 600;
|
||||
scrollingMode = "always";
|
||||
showIcon = true;
|
||||
textColor = "none";
|
||||
useFixedWidth = false;
|
||||
}
|
||||
];
|
||||
right = [
|
||||
{
|
||||
compactMode = false;
|
||||
compactShowAlbumArt = true;
|
||||
compactShowVisualizer = false;
|
||||
hideMode = "hidden";
|
||||
hideWhenIdle = false;
|
||||
id = "MediaMini";
|
||||
maxWidth = 380;
|
||||
panelShowAlbumArt = true;
|
||||
panelShowVisualizer = true;
|
||||
scrollingMode = "hover";
|
||||
showAlbumArt = false;
|
||||
showArtistFirst = false;
|
||||
showProgressRing = true;
|
||||
showVisualizer = false;
|
||||
textColor = "none";
|
||||
useFixedWidth = false;
|
||||
visualizerType = "linear";
|
||||
}
|
||||
{
|
||||
blacklist = [ ];
|
||||
chevronColor = "none";
|
||||
colorizeIcons = true;
|
||||
drawerEnabled = false;
|
||||
hidePassive = false;
|
||||
id = "Tray";
|
||||
pinned = [ ];
|
||||
}
|
||||
{
|
||||
hideWhenZero = false;
|
||||
hideWhenZeroUnread = true;
|
||||
iconColor = "none";
|
||||
id = "NotificationHistory";
|
||||
showUnreadBadge = true;
|
||||
unreadBadgeColor = "primary";
|
||||
}
|
||||
{
|
||||
deviceNativePath = "";
|
||||
displayMode = "icon-hover";
|
||||
hideIfIdle = false;
|
||||
hideIfNotDetected = true;
|
||||
id = "Battery";
|
||||
showNoctaliaPerformance = false;
|
||||
showPowerProfiles = true;
|
||||
}
|
||||
{
|
||||
displayMode = "onhover";
|
||||
iconColor = "none";
|
||||
id = "Volume";
|
||||
middleClickCommand = "pwvucontrol || pavucontrol";
|
||||
textColor = "none";
|
||||
}
|
||||
{
|
||||
displayMode = "onhover";
|
||||
iconColor = "none";
|
||||
id = "Brightness";
|
||||
textColor = "none";
|
||||
}
|
||||
{
|
||||
colorizeDistroLogo = false;
|
||||
colorizeSystemIcon = "none";
|
||||
customIconPath = "";
|
||||
enableColorization = false;
|
||||
icon = "noctalia";
|
||||
id = "ControlCenter";
|
||||
useDistroLogo = false;
|
||||
}
|
||||
{
|
||||
clockColor = "none";
|
||||
customFont = "";
|
||||
formatHorizontal = "ddd MMM dd yyyy @ h:mm AP";
|
||||
formatVertical = "HH mm - dd MM";
|
||||
id = "Clock";
|
||||
tooltipFormat = "HH:mm ddd, MMM dd";
|
||||
useCustomFont = false;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
brightness = {
|
||||
brightnessStep = 5;
|
||||
enforceMinimum = false;
|
||||
};
|
||||
|
||||
calendar = {
|
||||
cards = [
|
||||
{
|
||||
enabled = true;
|
||||
id = "calendar-header-card";
|
||||
}
|
||||
{
|
||||
enabled = true;
|
||||
id = "calendar-month-card";
|
||||
}
|
||||
{
|
||||
enabled = true;
|
||||
id = "weather-card";
|
||||
}
|
||||
{
|
||||
enabled = true;
|
||||
id = "timer-card";
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
colorSchemes = {
|
||||
darkMode = true;
|
||||
generationMethod = "tonal-spot";
|
||||
manualSunrise = "06:30";
|
||||
manualSunset = "18:30";
|
||||
monitorForColors = "";
|
||||
predefinedScheme = "Noctalia (default)";
|
||||
schedulingMode = "off";
|
||||
useWallpaperColors = false;
|
||||
};
|
||||
|
||||
controlCenter = {
|
||||
cards = [
|
||||
{
|
||||
enabled = true;
|
||||
id = "profile-card";
|
||||
}
|
||||
{
|
||||
enabled = true;
|
||||
id = "shortcuts-card";
|
||||
}
|
||||
{
|
||||
enabled = true;
|
||||
id = "audio-card";
|
||||
}
|
||||
{
|
||||
enabled = true;
|
||||
id = "media-sysmon-card";
|
||||
}
|
||||
];
|
||||
diskPath = "/";
|
||||
position = "close_to_bar_button";
|
||||
shortcuts = {
|
||||
left = [
|
||||
{ id = "Network"; }
|
||||
{ id = "Bluetooth"; }
|
||||
{ id = "WallpaperSelector"; }
|
||||
];
|
||||
right = [
|
||||
{ id = "Notifications"; }
|
||||
{ id = "PowerProfile"; }
|
||||
{ id = "KeepAwake"; }
|
||||
{ id = "NightLight"; }
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
desktopWidgets = {
|
||||
enabled = false;
|
||||
gridSnap = false;
|
||||
monitorWidgets = [ ];
|
||||
};
|
||||
|
||||
dock = {
|
||||
animationSpeed = 1;
|
||||
backgroundOpacity = 1;
|
||||
colorizeIcons = false;
|
||||
deadOpacity = 0.6;
|
||||
displayMode = "auto_hide";
|
||||
enabled = false;
|
||||
floatingRatio = 1;
|
||||
inactiveIndicators = false;
|
||||
monitors = [ ];
|
||||
onlySameOutput = true;
|
||||
pinnedApps = [ ];
|
||||
pinnedStatic = false;
|
||||
position = "bottom";
|
||||
size = 1;
|
||||
};
|
||||
|
||||
general = {
|
||||
allowPanelsOnScreenWithoutBar = true;
|
||||
allowPasswordWithFprintd = false;
|
||||
animationDisabled = false;
|
||||
animationSpeed = 1;
|
||||
autoStartAuth = false;
|
||||
avatarImage = "/home/${config.userOptions.username}/.face";
|
||||
boxRadiusRatio = 1;
|
||||
clockFormat = "hh\\nmm";
|
||||
clockStyle = "custom";
|
||||
compactLockScreen = false;
|
||||
dimmerOpacity = 0.5;
|
||||
enableBlurBehind = true;
|
||||
enableLockScreenCountdown = true;
|
||||
enableShadows = false;
|
||||
forceBlackScreenCorners = false;
|
||||
iRadiusRatio = 1;
|
||||
language = "";
|
||||
lockOnSuspend = true;
|
||||
lockScreenAnimations = false;
|
||||
lockScreenCountdownDuration = 10000;
|
||||
lockScreenMonitors = [ ];
|
||||
radiusRatio = 1;
|
||||
scaleRatio = 1;
|
||||
screenRadiusRatio = 1;
|
||||
shadowDirection = "bottom_right";
|
||||
shadowOffsetX = 2;
|
||||
shadowOffsetY = 3;
|
||||
showChangelogOnStartup = true;
|
||||
showHibernateOnLockScreen = false;
|
||||
showScreenCorners = false;
|
||||
showSessionButtonsOnLockScreen = true;
|
||||
telemetryEnabled = false;
|
||||
};
|
||||
|
||||
hooks = {
|
||||
darkModeChange = "";
|
||||
enabled = false;
|
||||
performanceModeDisabled = "";
|
||||
performanceModeEnabled = "";
|
||||
screenLock = "";
|
||||
screenUnlock = "";
|
||||
session = "";
|
||||
startup = "";
|
||||
wallpaperChange = "";
|
||||
};
|
||||
|
||||
location = {
|
||||
analogClockInCalendar = false;
|
||||
firstDayOfWeek = -1;
|
||||
hideWeatherCityName = false;
|
||||
hideWeatherTimezone = false;
|
||||
name = "Atlanta, US";
|
||||
showCalendarEvents = true;
|
||||
showCalendarWeather = true;
|
||||
showWeekNumberInCalendar = true;
|
||||
use12hourFormat = true;
|
||||
useFahrenheit = true;
|
||||
weatherEnabled = true;
|
||||
weatherShowEffects = true;
|
||||
};
|
||||
|
||||
network = {
|
||||
bluetoothDetailsViewMode = "grid";
|
||||
bluetoothHideUnnamedDevices = false;
|
||||
bluetoothRssiPollIntervalMs = 10000;
|
||||
bluetoothRssiPollingEnabled = false;
|
||||
wifiDetailsViewMode = "grid";
|
||||
wifiEnabled = true;
|
||||
};
|
||||
|
||||
nightLight = {
|
||||
autoSchedule = true;
|
||||
dayTemp = "6500";
|
||||
enabled = true;
|
||||
forced = false;
|
||||
manualSunrise = "06:30";
|
||||
manualSunset = "18:30";
|
||||
nightTemp = "4000";
|
||||
};
|
||||
|
||||
notifications = {
|
||||
backgroundOpacity = 0.90;
|
||||
criticalUrgencyDuration = 15;
|
||||
enableBatteryToast = true;
|
||||
enableKeyboardLayoutToast = true;
|
||||
enableMediaToast = false;
|
||||
enabled = true;
|
||||
location = "top_right";
|
||||
lowUrgencyDuration = 3;
|
||||
monitors = [ ];
|
||||
normalUrgencyDuration = 8;
|
||||
overlayLayer = true;
|
||||
respectExpireTimeout = false;
|
||||
saveToHistory = {
|
||||
critical = true;
|
||||
low = true;
|
||||
normal = true;
|
||||
};
|
||||
sounds = {
|
||||
criticalSoundFile = "";
|
||||
enabled = true;
|
||||
excludedApps = "discord,firefox,chrome,chromium,edge";
|
||||
lowSoundFile = "";
|
||||
normalSoundFile = "";
|
||||
separateSounds = false;
|
||||
volume = 0.5;
|
||||
};
|
||||
};
|
||||
|
||||
osd = {
|
||||
autoHideMs = 2000;
|
||||
backgroundOpacity = 1;
|
||||
enabled = true;
|
||||
enabledTypes = [
|
||||
0
|
||||
1
|
||||
2
|
||||
];
|
||||
location = "top_right";
|
||||
monitors = [ ];
|
||||
overlayLayer = true;
|
||||
};
|
||||
|
||||
plugins.autoUpdate = false;
|
||||
|
||||
sessionMenu = {
|
||||
countdownDuration = 5000;
|
||||
enableCountdown = true;
|
||||
largeButtonsLayout = "single-row";
|
||||
largeButtonsStyle = true;
|
||||
position = "center";
|
||||
powerOptions = [
|
||||
{
|
||||
action = "lock";
|
||||
enabled = true;
|
||||
}
|
||||
{
|
||||
action = "suspend";
|
||||
enabled = true;
|
||||
}
|
||||
{
|
||||
action = "hibernate";
|
||||
enabled = true;
|
||||
}
|
||||
{
|
||||
action = "reboot";
|
||||
enabled = true;
|
||||
}
|
||||
{
|
||||
action = "logout";
|
||||
enabled = true;
|
||||
}
|
||||
{
|
||||
action = "shutdown";
|
||||
enabled = true;
|
||||
}
|
||||
];
|
||||
showHeader = true;
|
||||
showNumberLabels = true;
|
||||
};
|
||||
|
||||
settingsVersion = 49;
|
||||
|
||||
systemMonitor = {
|
||||
batteryCriticalThreshold = 5;
|
||||
batteryWarningThreshold = 20;
|
||||
cpuCriticalThreshold = 90;
|
||||
cpuPollingInterval = 1000;
|
||||
cpuWarningThreshold = 80;
|
||||
criticalColor = "";
|
||||
diskAvailCriticalThreshold = 10;
|
||||
diskAvailWarningThreshold = 20;
|
||||
diskCriticalThreshold = 90;
|
||||
diskPollingInterval = 3000;
|
||||
diskWarningThreshold = 80;
|
||||
enableDgpuMonitoring = false;
|
||||
externalMonitor = "resources || missioncenter || jdsystemmonitor || corestats || system-monitoring-center || gnome-system-monitor || plasma-systemmonitor || mate-system-monitor || ukui-system-monitor || deepin-system-monitor || pantheon-system-monitor";
|
||||
gpuCriticalThreshold = 90;
|
||||
gpuPollingInterval = 3000;
|
||||
gpuWarningThreshold = 80;
|
||||
loadAvgPollingInterval = 3000;
|
||||
memCriticalThreshold = 90;
|
||||
memPollingInterval = 1000;
|
||||
memWarningThreshold = 80;
|
||||
networkPollingInterval = 1000;
|
||||
swapCriticalThreshold = 90;
|
||||
swapWarningThreshold = 80;
|
||||
tempCriticalThreshold = 90;
|
||||
tempWarningThreshold = 80;
|
||||
useCustomColors = false;
|
||||
warningColor = "";
|
||||
};
|
||||
|
||||
templates = {
|
||||
activeTemplates = [ ];
|
||||
enableUserTheming = false;
|
||||
};
|
||||
|
||||
ui = {
|
||||
bluetoothDetailsViewMode = "grid";
|
||||
bluetoothHideUnnamedDevices = false;
|
||||
boxBorderEnabled = false;
|
||||
fontDefault = "Noto Sans";
|
||||
fontDefaultScale = 1;
|
||||
fontFixed = "FiraMono Nerd Font Mono";
|
||||
fontFixedScale = 1;
|
||||
networkPanelView = "wifi";
|
||||
panelBackgroundOpacity = 0.90;
|
||||
panelsAttachedToBar = true;
|
||||
settingsPanelMode = "attached";
|
||||
tooltipsEnabled = true;
|
||||
wifiDetailsViewMode = "grid";
|
||||
};
|
||||
|
||||
wallpaper = {
|
||||
automationEnabled = false;
|
||||
directory = "/home/${config.userOptions.username}/.local/share/wallpaper";
|
||||
enableMultiMonitorDirectories = false;
|
||||
enabled = false;
|
||||
fillColor = "#1e1e2e";
|
||||
fillMode = "crop";
|
||||
hideWallpaperFilenames = true;
|
||||
monitorDirectories = [ ];
|
||||
overviewEnabled = false;
|
||||
panelPosition = "follow_bar";
|
||||
randomIntervalSec = 300;
|
||||
setWallpaperOnAllMonitors = true;
|
||||
showHiddenFiles = false;
|
||||
solidColor = "#1a1a2e";
|
||||
sortOrder = "name";
|
||||
transitionDuration = 1500;
|
||||
transitionEdgeSmoothness = 0.05;
|
||||
transitionType = "random";
|
||||
useSolidColor = false;
|
||||
useWallhaven = false;
|
||||
viewMode = "single";
|
||||
wallhavenApiKey = "";
|
||||
wallhavenCategories = "111";
|
||||
wallhavenOrder = "desc";
|
||||
wallhavenPurity = "100";
|
||||
wallhavenQuery = "";
|
||||
wallhavenRatios = "";
|
||||
wallhavenResolutionHeight = "";
|
||||
wallhavenResolutionMode = "atleast";
|
||||
wallhavenResolutionWidth = "";
|
||||
wallhavenSorting = "relevance";
|
||||
wallpaperChangeMode = "random";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
systemd.user.services.noctalia-shell = {
|
||||
Unit = {
|
||||
After = [ "niri.service" ];
|
||||
PartOf = [ "niri.service" ];
|
||||
Description = "Noctalia Shell - Wayland desktop shell";
|
||||
Documentation = "https://docs.noctalia.dev";
|
||||
X-Restart-Triggers = [
|
||||
"${config.xdg.configFile."noctalia/settings.json".source}"
|
||||
"${config.xdg.configFile."noctalia/colors.json".source}"
|
||||
];
|
||||
};
|
||||
|
||||
Service = {
|
||||
ExecStart = "${pkgs.noctalia-shell}/bin/noctalia-shell";
|
||||
Restart = "on-failure";
|
||||
Environment = [ "QT_QPA_PLATFORMTHEME=qt6ct" ];
|
||||
};
|
||||
|
||||
Install.WantedBy = [ "niri.service" ];
|
||||
};
|
||||
}
|
||||
107
home/sckova/tiling/wallpaper.nix
Normal file
107
home/sckova/tiling/wallpaper.nix
Normal file
|
|
@ -0,0 +1,107 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
systemd.user.services.wbg-daemon = {
|
||||
Unit.Description = "Wallpaper service using wbg (daemon)";
|
||||
Service.ExecStart = ''
|
||||
${pkgs.wbg}/bin/wbg -s \
|
||||
%h/.local/share/wallpaper/daily-colored.jpg
|
||||
'';
|
||||
Install.WantedBy = [ "niri.service" ];
|
||||
};
|
||||
|
||||
systemd.user.services.bing-wallpaper = {
|
||||
Unit.Description = "Download and set Bing wallpaper of the day";
|
||||
Unit.StartLimitBurst = 6;
|
||||
Unit.StartLimitIntervalSec = "10m";
|
||||
Service.Restart = "on-failure";
|
||||
Service.RestartSec = "10s";
|
||||
Service.Type = "oneshot";
|
||||
Service.ExecStart = pkgs.lib.getExe (
|
||||
pkgs.writeShellApplication {
|
||||
name = "bing-wallpaper";
|
||||
runtimeInputs = with pkgs; [
|
||||
wget
|
||||
jq
|
||||
coreutils
|
||||
libnotify
|
||||
];
|
||||
text = ''
|
||||
OUT="$HOME/.local/share/wallpaper/daily.jpg"
|
||||
API=$(wget -qO- "https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&mkt=en-US&n=1")
|
||||
BASE=$(echo "$API" | jq -r '.images[0].urlbase')
|
||||
TITLE=$(echo "$API" | jq -r '.images[0].title')
|
||||
|
||||
mkdir -p "$HOME/.local/share/wallpaper"
|
||||
wget -qO "$OUT" "https://www.bing.com''${BASE}_UHD.jpg"
|
||||
|
||||
notify-send \
|
||||
-a "Wallpaper of the day" \
|
||||
-u low \
|
||||
-i preferences-desktop-wallpaper \
|
||||
"$TITLE"
|
||||
'';
|
||||
}
|
||||
);
|
||||
Service.ExecStartPost = "${pkgs.systemd}/bin/systemctl --user start gowall-convert.service";
|
||||
Install.WantedBy = [ "niri.service" ];
|
||||
};
|
||||
|
||||
systemd.user.timers.bing-wallpaper = {
|
||||
Unit.Description = "Run bing wallpaper retrieval daily";
|
||||
Timer.OnCalendar = "*-*-* 10:00:00 GMT";
|
||||
Timer.Persistent = true;
|
||||
Install.WantedBy = [ "timers.target" ];
|
||||
};
|
||||
|
||||
systemd.user.services.gowall-convert = {
|
||||
Unit.Description = "Convert a wallpaper to the system color scheme";
|
||||
Unit.StartLimitBurst = 6;
|
||||
Unit.StartLimitIntervalSec = "10m";
|
||||
Service.Restart = "on-failure";
|
||||
Service.RestartSec = "10s";
|
||||
Service.Type = "oneshot";
|
||||
Service.ExecStart = ''
|
||||
${pkgs.gowall}/bin/gowall convert \
|
||||
%h/.local/share/wallpaper/daily.jpg \
|
||||
--output %h/.local/share/wallpaper/daily-colored.jpg \
|
||||
-t nix
|
||||
'';
|
||||
Service.ExecStartPost = "${pkgs.systemd}/bin/systemctl --user restart wbg-daemon.service";
|
||||
};
|
||||
|
||||
home.file.".config/gowall/config.yml".text = with config.scheme.withHashtag; ''
|
||||
themes:
|
||||
- name: "nix"
|
||||
colors:
|
||||
- "${base06}"
|
||||
- "${base0F}"
|
||||
- "${base17}"
|
||||
- "${base0E}"
|
||||
- "${base08}"
|
||||
- "${base12}"
|
||||
- "${base09}"
|
||||
- "${base0A}"
|
||||
- "${base0B}"
|
||||
- "${base0C}"
|
||||
- "${base15}"
|
||||
- "${base16}"
|
||||
- "${base0D}"
|
||||
- "${base07}"
|
||||
- "${base05}"
|
||||
- "${base07}"
|
||||
- "${base0D}"
|
||||
- "${base0D}"
|
||||
- "${base04}"
|
||||
- "${base04}"
|
||||
- "${base04}"
|
||||
- "${base03}"
|
||||
- "${base02}"
|
||||
- "${base00}"
|
||||
- "${base01}"
|
||||
- "${base11}"
|
||||
'';
|
||||
}
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
{ config, pkgs, lib, catppuccin, ... }: {
|
||||
networking.hostName = "alien";
|
||||
|
||||
catppuccin = {
|
||||
accent = "lavender";
|
||||
};
|
||||
|
||||
home-manager.users.sckova = {
|
||||
imports = [ catppuccin.homeModules.catppuccin ];
|
||||
};
|
||||
|
||||
boot.kernelPackages = pkgs.linuxPackages;
|
||||
|
||||
programs = {
|
||||
gamescope = {
|
||||
enable = true;
|
||||
capSysNice = true;
|
||||
};
|
||||
steam = {
|
||||
enable = true;
|
||||
gamescopeSession.enable = true;
|
||||
localNetworkGameTransfers.openFirewall = true;
|
||||
};
|
||||
};
|
||||
|
||||
services.xserver.videoDrivers = [
|
||||
"modesetting"
|
||||
"nvidia"
|
||||
];
|
||||
|
||||
hardware.nvidia = {
|
||||
modesetting.enable = true;
|
||||
powerManagement.enable = false;
|
||||
nvidiaSettings = true;
|
||||
package = pkgs.linuxPackages.nvidiaPackages.stable;
|
||||
};
|
||||
}
|
||||
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
{ config, pkgs, lib, catppuccin, ... }: {
|
||||
networking.hostName = "peach";
|
||||
|
||||
catppuccin = {
|
||||
accent = "peach";
|
||||
};
|
||||
|
||||
home-manager.users.sckova = {
|
||||
imports = [ catppuccin.homeModules.catppuccin ];
|
||||
};
|
||||
|
||||
hardware.asahi = {
|
||||
extractPeripheralFirmware = true;
|
||||
peripheralFirmwareDirectory = ../firmware;
|
||||
};
|
||||
}
|
||||
|
||||
145
options.nix
Normal file
145
options.nix
Normal file
|
|
@ -0,0 +1,145 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
options = {
|
||||
colors = {
|
||||
scheme = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "catppuccin-mocha";
|
||||
};
|
||||
accent = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "base09";
|
||||
};
|
||||
};
|
||||
userOptions = {
|
||||
name = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
readOnly = false;
|
||||
default = "Sean Kovacs";
|
||||
};
|
||||
username = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
readOnly = false;
|
||||
default = "sckova";
|
||||
};
|
||||
email = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
readOnly = false;
|
||||
default = "kovacsmillio@gmail.com";
|
||||
};
|
||||
hostname = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
readOnly = true;
|
||||
default = config.system.name;
|
||||
};
|
||||
fontSans = {
|
||||
name = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
readOnly = true;
|
||||
default = "Noto Sans";
|
||||
};
|
||||
size = lib.mkOption {
|
||||
type = lib.types.int;
|
||||
readOnly = true;
|
||||
default = 11;
|
||||
};
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
readOnly = true;
|
||||
default = pkgs.noto-fonts;
|
||||
};
|
||||
};
|
||||
fontSerif = {
|
||||
name = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
readOnly = true;
|
||||
default = "Noto Serif";
|
||||
};
|
||||
size = lib.mkOption {
|
||||
type = lib.types.int;
|
||||
readOnly = true;
|
||||
default = 11;
|
||||
};
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
readOnly = true;
|
||||
default = pkgs.noto-fonts;
|
||||
};
|
||||
};
|
||||
fontMono = {
|
||||
name = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
readOnly = true;
|
||||
default = "FiraMono Nerd Font Mono";
|
||||
};
|
||||
size = lib.mkOption {
|
||||
type = lib.types.int;
|
||||
readOnly = true;
|
||||
default = 10;
|
||||
};
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
readOnly = true;
|
||||
default = pkgs.nerd-fonts.fira-mono;
|
||||
};
|
||||
};
|
||||
fontEmoji = {
|
||||
name = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
readOnly = true;
|
||||
default = "Noto Emoji";
|
||||
};
|
||||
size = lib.mkOption {
|
||||
type = lib.types.int;
|
||||
readOnly = true;
|
||||
default = 10;
|
||||
};
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
readOnly = true;
|
||||
default = pkgs.noto-fonts-color-emoji;
|
||||
};
|
||||
};
|
||||
cursor = {
|
||||
name = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
readOnly = true;
|
||||
default = config.colors.scheme;
|
||||
};
|
||||
package = lib.mkOption {
|
||||
type = lib.types.package;
|
||||
readOnly = true;
|
||||
default =
|
||||
with config.scheme;
|
||||
(pkgs.bibata-cursor.override {
|
||||
themeName = config.colors.scheme;
|
||||
baseColor = withHashtag.${config.colors.accent};
|
||||
outlineColor = withHashtag.base00;
|
||||
watchBackgroundColor = withHashtag.base11;
|
||||
cursorSizes = "16 20 22 24 28 32 40 48 56 64 72 80 88 96";
|
||||
});
|
||||
};
|
||||
size = lib.mkOption {
|
||||
type = lib.types.int;
|
||||
readOnly = true;
|
||||
default = 24;
|
||||
};
|
||||
path = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
readOnly = true;
|
||||
default = "${config.userOptions.cursor.package}/share/icons/${config.colors.scheme}";
|
||||
};
|
||||
};
|
||||
# isDark = lib.mkOption {
|
||||
# type = lib.types.bool;
|
||||
# readOnly = true;
|
||||
# default = config.catppuccin.flavor != "latte";
|
||||
# };
|
||||
};
|
||||
};
|
||||
}
|
||||
103
packages/bibata-cursor/default.nix
Normal file
103
packages/bibata-cursor/default.nix
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
{
|
||||
pkgs ? import <nixpkgs> { },
|
||||
themeName ? "bibata",
|
||||
baseColor ? "#000000",
|
||||
outlineColor ? "#FFFFFF",
|
||||
watchBackgroundColor ? "",
|
||||
cursorSizes ? "24",
|
||||
}:
|
||||
|
||||
let
|
||||
version = "2.0.7";
|
||||
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "ful1e5";
|
||||
repo = "Bibata_Cursor";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-kIKidw1vditpuxO1gVuZeUPdWBzkiksO/q2R/+DUdEc=";
|
||||
};
|
||||
|
||||
yarnOfflineCache = pkgs.fetchYarnDeps {
|
||||
yarnLock = "${src}/yarn.lock";
|
||||
hash = "sha256-EpWIGoFFokmzRML2r/dCM+TImOCtii8mifLgnLKdUMY=";
|
||||
};
|
||||
|
||||
in
|
||||
pkgs.stdenv.mkDerivation {
|
||||
pname = "bibata-${themeName}-cursor";
|
||||
inherit version src;
|
||||
|
||||
nativeBuildInputs = with pkgs; [
|
||||
yarn
|
||||
nodejs
|
||||
fixup-yarn-lock
|
||||
python3Packages.clickgen
|
||||
autoPatchelfHook
|
||||
];
|
||||
|
||||
buildInputs = with pkgs; [
|
||||
# Required to satisfy dynamic linking for prebuilt JS native modules (like resvg-js)
|
||||
stdenv.cc.cc.lib
|
||||
];
|
||||
|
||||
configurePhase = ''
|
||||
runHook preConfigure
|
||||
|
||||
export HOME=$(mktemp -d)
|
||||
|
||||
echo "1. Setup offline yarn cache"
|
||||
yarn config --offline set yarn-offline-mirror ${yarnOfflineCache}
|
||||
fixup-yarn-lock yarn.lock
|
||||
|
||||
echo "2. Install node_modules offline"
|
||||
yarn install --offline --frozen-lockfile --ignore-scripts --no-progress --non-interactive
|
||||
patchShebangs node_modules/
|
||||
|
||||
rm -rf node_modules/@resvg/resvg-js-linux-*-musl
|
||||
|
||||
echo "3. Patch prebuilt node binaries (like resvg) so they can run in the Nix sandbox"
|
||||
autoPatchelf node_modules/
|
||||
|
||||
# https://github.com/ful1e5/cbmp/issues/4
|
||||
echo "4. Patch 'ora' library to prevent Nix sandbox hangs"
|
||||
sed -i 's/this.#isEnabled = .*/this.#isEnabled = false;/g' node_modules/ora/index.js
|
||||
|
||||
runHook postConfigure
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
echo "Splitting SVGs to render across $NIX_BUILD_CORES cores..."
|
||||
|
||||
echo "1. Distribute SVGs evenly into chunk directories"
|
||||
if [ -n "${watchBackgroundColor}" ]; then
|
||||
./node_modules/.bin/cbmp -d "svg" -o "bitmaps/${themeName}" -bc "${baseColor}" -oc "${outlineColor}" -wc "${watchBackgroundColor}"
|
||||
else
|
||||
./node_modules/.bin/cbmp -d "svg" -o "bitmaps/${themeName}" -bc "${baseColor}" -oc "${outlineColor}"
|
||||
fi
|
||||
|
||||
echo "Rendering complete. Building XCursor theme..."
|
||||
|
||||
echo "4. Build the final cursors"
|
||||
ctgen configs/normal/x.build.toml -s ${cursorSizes} -p x11 -d "bitmaps/${themeName}" -n "${themeName}" -c "${themeName} cursors"
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
install -dm 0755 $out/share/icons
|
||||
cp -r themes/${themeName} $out/share/icons/
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with pkgs.lib; {
|
||||
description = "Custom colored Bibata Cursor theme built from source";
|
||||
homepage = "https://github.com/ful1e5/Bibata_Cursor";
|
||||
license = licenses.gpl3;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
36
packages/overlay.nix
Normal file
36
packages/overlay.nix
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
final: prev: {
|
||||
spotify-webapp = final.callPackage ./spotify-webapp { };
|
||||
bibata-cursor = final.callPackage ./bibata-cursor { };
|
||||
|
||||
openmw-unstable = prev.openmw.overrideAttrs (oldAttrs: {
|
||||
pname = "openmw";
|
||||
src = final.openmw-git;
|
||||
version = "${final.openmw-git.rev}";
|
||||
});
|
||||
|
||||
vintagestory = prev.vintagestory.overrideAttrs (oldAttrs: {
|
||||
version = "1.21.4";
|
||||
src = prev.fetchurl {
|
||||
url = "https://cdn.vintagestory.at/gamefiles/stable/vs_client_linux-x64_1.21.4.tar.gz";
|
||||
hash = "sha256-npffJgxgUMefX9OiveNk1r4kVqsMaVCC1jcWaibz9l8=";
|
||||
};
|
||||
});
|
||||
|
||||
riff = final.callPackage ./riff { };
|
||||
|
||||
# linuxPackages_asahi = prev.linuxPackages_asahi.override {
|
||||
# _kernelPatches = [
|
||||
# {
|
||||
# name = "Mailbox and RTKIT support";
|
||||
# patch = null;
|
||||
# structuredExtraConfig = with prev.lib.kernel; {
|
||||
# APPLE_MAILBOX = yes;
|
||||
# APPLE_RTKIT = yes;
|
||||
# APPLE_RTKIT_HELPER = yes;
|
||||
# RUST_APPLE_RTKIT = yes;
|
||||
# RUST_FW_LOADER_ABSTRACTIONS = yes;
|
||||
# };
|
||||
# }
|
||||
# ];
|
||||
# };
|
||||
}
|
||||
96
packages/riff/default.nix
Normal file
96
packages/riff/default.nix
Normal file
|
|
@ -0,0 +1,96 @@
|
|||
{
|
||||
lib,
|
||||
stdenv,
|
||||
alsa-lib,
|
||||
appstream-glib,
|
||||
blueprint-compiler,
|
||||
cargo,
|
||||
desktop-file-utils,
|
||||
fetchFromGitHub,
|
||||
gettext,
|
||||
glib,
|
||||
gst_all_1,
|
||||
gtk4,
|
||||
libadwaita,
|
||||
libhandy,
|
||||
libpulseaudio,
|
||||
meson,
|
||||
ninja,
|
||||
nix-update-script,
|
||||
openssl,
|
||||
pkg-config,
|
||||
rustPlatform,
|
||||
rustc,
|
||||
wrapGAppsHook4,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "riff";
|
||||
version = "v25.11";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Diegovsky";
|
||||
repo = "riff";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-j5PZXXGInA03V3Lfu+QUgeHw8583XvJZyW67VcDe980=";
|
||||
};
|
||||
|
||||
cargoDeps = rustPlatform.fetchCargoVendor {
|
||||
inherit pname version src;
|
||||
hash = "sha256-8gJILK9A97PAb/Q1z+IvW54WuwoZZSKxlJJUt7dwQWE=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace src/meson.build --replace-fail \
|
||||
"cargo_output = 'src' / rust_target / meson.project_name()" \
|
||||
"cargo_output = 'src' / '${stdenv.hostPlatform.rust.cargoShortTarget}' / rust_target / meson.project_name()"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
appstream-glib
|
||||
blueprint-compiler
|
||||
cargo
|
||||
desktop-file-utils
|
||||
gettext
|
||||
glib # for glib-compile-schemas
|
||||
gtk4 # for gtk-update-icon-cache
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
rustPlatform.cargoSetupHook
|
||||
rustc
|
||||
wrapGAppsHook4
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
alsa-lib
|
||||
glib
|
||||
gst_all_1.gst-plugins-base
|
||||
gst_all_1.gstreamer
|
||||
gtk4
|
||||
libadwaita
|
||||
libhandy
|
||||
libpulseaudio
|
||||
openssl
|
||||
];
|
||||
|
||||
# https://github.com/xou816/spot/issues/313
|
||||
mesonBuildType = "release";
|
||||
|
||||
# For https://github.com/xou816/spot/blob/21ee601f655caa4ca9cae1033a27459fe6289318/src/meson.build#L122
|
||||
env.CARGO_BUILD_TARGET = stdenv.hostPlatform.rust.rustcTargetSpec;
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script { };
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Native Spotify client for the GNOME desktop";
|
||||
homepage = "https://github.com/Diegovsky/riff";
|
||||
changelog = "https://github.com/Diegovsky/riff/releases/tag/${src.rev}";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ getchoo ];
|
||||
mainProgram = "riff";
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
72
packages/spotify-webapp/default.nix
Normal file
72
packages/spotify-webapp/default.nix
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
{
|
||||
lib,
|
||||
stdenv,
|
||||
makeDesktopItem,
|
||||
copyDesktopItems,
|
||||
chromium,
|
||||
writeShellScriptBin,
|
||||
}:
|
||||
let
|
||||
pname = "spotify-webapp";
|
||||
version = "1.0.0";
|
||||
|
||||
chromiumWithWidevine = chromium.override {
|
||||
enableWideVine = true;
|
||||
};
|
||||
|
||||
launchScript = writeShellScriptBin "spotify-webapp" ''
|
||||
exec ${chromiumWithWidevine}/bin/chromium \
|
||||
--app=https://open.spotify.com \
|
||||
--class=spotify-webapp \
|
||||
--name=spotify-webapp \
|
||||
--user-data-dir="$HOME/.config/spotify-webapp" \
|
||||
--enable-features=UseOzonePlatform \
|
||||
--ozone-platform=wayland \
|
||||
"$@"
|
||||
'';
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
inherit pname version;
|
||||
|
||||
dontUnpack = true;
|
||||
dontBuild = true;
|
||||
|
||||
nativeBuildInputs = [ copyDesktopItems ];
|
||||
|
||||
desktopItems = [
|
||||
(makeDesktopItem {
|
||||
name = "spotify-webapp";
|
||||
exec = "spotify-webapp %U";
|
||||
icon = "spotify";
|
||||
desktopName = "Spotify";
|
||||
genericName = "Music Streaming";
|
||||
comment = "Listen to music on Spotify";
|
||||
categories = [
|
||||
"Audio"
|
||||
"Music"
|
||||
"AudioVideo"
|
||||
];
|
||||
mimeTypes = [ "x-scheme-handler/spotify" ];
|
||||
startupWMClass = "spotify-webapp";
|
||||
startupNotify = true;
|
||||
})
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/bin
|
||||
ln -s ${launchScript}/bin/spotify-webapp $out/bin/spotify-webapp
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Spotify web app running in Chromium";
|
||||
homepage = "https://open.spotify.com";
|
||||
license = licenses.free;
|
||||
maintainers = [ ];
|
||||
platforms = platforms.linux;
|
||||
mainProgram = "spotify-webapp";
|
||||
};
|
||||
}
|
||||
51
secrets/secrets.yaml
Normal file
51
secrets/secrets.yaml
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
#ENC[AES256_GCM,data:TggQPAlRHvMKs5nMF7arHHoXjj6+1c0n1DuIS5UFXuRob9E2AHn3JCObcPW/IH0JOcg=,iv:PFDAr1ZQMu158TglCPFqK548LfOtYHT+7zon83JN8IY=,tag:72fhZeqDG7yK+pv1k330zA==,type:comment]
|
||||
searxng_secret: ENC[AES256_GCM,data:j/PY84sAXdcP/WaekjhT+wYDa1Q9OBWchrAUKpW7ygSEMqbiIx5i/bmjyqjifnZqKvy/hgF/SA2ZbFKsQ5jjpQ==,iv:8Sv9WTjO+Vkrgmd+V6l7vdMPPtjBVkWfeG/DRsbhQYE=,tag:jc3HWlyAUUmkzZMnv8Kbmw==,type:str]
|
||||
#ENC[AES256_GCM,data:HBJEtuvZUeUD51q8/d+d6lQ4Yke1RfHDqo4P9l21mbvF2rrHp0KRNH0=,iv:cNpmj145TKmF/bNQN3wFeAXoqWkLxu0bqvEhydRQZcs=,tag:x02R5lfpYUMZw3eSRA5MIA==,type:comment]
|
||||
rclone_synology: ENC[AES256_GCM,data:2k9aYyXMDDYt740VUUvvTSUQ+ybK3PIkBetqw5wmCXYEumk=,iv:J3ZFY3iX7OHoriJNHbmCYHglwNeh+T1UP9q608wAXGU=,tag:QmyVZQiQzBhoB9jkOiruhw==,type:str]
|
||||
#ENC[AES256_GCM,data:CvsKAAXJQWM8t5bc0eInokZr,iv:YpEJYqyDNGydfrUBoLeUyJsnai/jMAo0PojRmpVPmN8=,tag:9DoQE+Wic5OnWcGIZNFsIg==,type:comment]
|
||||
sckova_password: ENC[AES256_GCM,data:JgXq8TyCGI072g==,iv:kPme4bkmAfj+np32LoAcDWoQA2qFnTdqnyTSwB2TvBk=,tag:hAPQ+dWW+7QstyEdvSvpGw==,type:str]
|
||||
sops:
|
||||
age:
|
||||
- recipient: age1k9zp37p9sejvpvwu688t7jkl8utkugrsch7a9ahufpq7uhj609gqsd3wka
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaTDA0NVNWZEcwb0ltL2sy
|
||||
aExnSzNJV1NZS3M1N2Q4YlJ4VzN6T0g5dWd3CmY5STFBTW9DdjV3bStpTlkwdDNj
|
||||
V3lUT0Rpc0tJb0RiNXd1OEV2RVZVZ00KLS0tIGVna0c5Mi9lamxURmdRYVlNTndU
|
||||
T2ZhWHl2RVhYMjdBSG1ERmIzWlQ3UmMKYNtmkBicEaYDKteBEixZ9JHDiIoQsMOr
|
||||
V+31mcG0qeGn0HBFyJoWSxJsyXKdM42qzz9P70XQPHqiXmMz3zuniQ==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age1dx9rwrkhqj8sfr8vdfsgrqjwqefzmgtugsp6ykklpudfw4hcnuyqx9x20e
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3VFdBVytyY29zckFQVE1v
|
||||
dllxbDUxR2h0Qy9nMlUxN1VPZHlHVkhuVzNRClpYWkREUnZzUTBvZjlzQnI4TnFr
|
||||
Y2xNRngwNmpXMVFoa1FzYnpiTE5FcXcKLS0tIHRWY3RsK3NXOS9UakNPV2lKWERo
|
||||
ZEpqaVBCc0J1Ui9pZE1wOUkxN2NPNUkKmrT2o9AgJAQsPZkZEoeNy2VbqgiNE+PW
|
||||
P9YutsxmnbCwiLt4GItq0ZSDxRr2mPcLOZcJZ3M7MFoka36peXilUg==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age1ygykyl3xyfhkt0x46frqnef4f39w0cnu6d98nf0efl43f706uqtsnsx5nd
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWdGRYQ3Z1YXdZaFk1eG1n
|
||||
bFRBMXZOc0hnQjRWaGRaSTBqS1NoUUFjOG1nClhFd2ZEUTQ2WFIrTzVrbU5NOUpE
|
||||
VDBYSmdVTk1RT1g5dXB3eXl4YklUMEUKLS0tIEZGMEw3VWpQVXYwajFJeFQ4cjdj
|
||||
anJmOWpjR0w1c3RBWC9kUVFpRlNRWWcKqSxAQIOdnDKLiDorI7NZpwweLiNftQd/
|
||||
G+kIZPqLmGt7LxuYfvazAZ0qha9UJ9/IWiiY4goc7THF8fPTNhbwwQ==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2026-04-03T13:51:22Z"
|
||||
mac: ENC[AES256_GCM,data:jQtzEZWE6csGTQE939UAl3xA6ecqLD4aGRqw7KF7GqW0w3FTfC59uel1xM2Nl91Bg42TzYsO9WB3rox5daFAcUgoQE0TNMAbH+w/vkVc3NoJHrWQlV69j8zUAAiNgbAx30l1MIjLS/zJ6Xlt+jkj4FtPfK0d84V/O2KwCBAJ+uM=,iv:+u3muRmMuZJUcUNHJDOqzytxgK60YxxmawwQeUTm9aU=,tag:mR8lTA7dgfOqYqUvCAuYFQ==,type:str]
|
||||
pgp:
|
||||
- created_at: "2026-04-03T20:00:57Z"
|
||||
enc: |-
|
||||
-----BEGIN PGP MESSAGE-----
|
||||
|
||||
hF4DrD+TWkWMG9QSAQdA0UdBBAWr7EsXODCWUq6xwueaGar9NX2czQM2r5ALyl8w
|
||||
2sG5IY/tj3baCwZwljtK7BzhkMfkY9dfW9a9pkZ/ptWYQLAVmGJTFLDo/tXFl0ol
|
||||
0lwBFmeeDYqoGb/p4Vzu4bWNziy0pVt6tgcaQmtrPW576SWJ2hg2O5GwKX2yWPu4
|
||||
iotgvTARkLWiXkKxyTYhWDQVmL4ue1AsNVxGI6NHaosVwgcR+O88ZGnyoc7g9Q==
|
||||
=+F0l
|
||||
-----END PGP MESSAGE-----
|
||||
fp: 7622FD7E6AB9F1E9D2CEFE2700F325187C68651A
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.12.2
|
||||
7
sops-example.yaml
Normal file
7
sops-example.yaml
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
# nix-shell -p openssl --run 'openssl rand -hex 32'
|
||||
searxng_secret:
|
||||
# echo 'secretpassword' | rclone obscure -
|
||||
rclone_synology:
|
||||
# sckova's password
|
||||
sckova_password:
|
||||
|
||||
16
sops.nix
Normal file
16
sops.nix
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
sops = {
|
||||
defaultSopsFile = ./secrets/secrets.yaml;
|
||||
defaultSopsFormat = "yaml";
|
||||
secrets = {
|
||||
searxng_secret = { };
|
||||
rclone_synology = { };
|
||||
};
|
||||
};
|
||||
}
|
||||
212
system/default.nix
Executable file
212
system/default.nix
Executable file
|
|
@ -0,0 +1,212 @@
|
|||
# Edit this configuration file to define what should be installed on
|
||||
# your system. Help is available in the configuration.nix(5) man page
|
||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
# the user to activate
|
||||
userOptions = {
|
||||
name = "Sean Kovacs";
|
||||
username = "sckova";
|
||||
email = "kovacsmillio@gmail.com";
|
||||
};
|
||||
|
||||
sops.secrets.sckova_password.neededForUsers = true;
|
||||
users.users.sckova.hashedPasswordFile = config.sops.secrets.sckova_password.path;
|
||||
|
||||
boot = {
|
||||
plymouth.enable = true;
|
||||
plymouth.logo = "${pkgs.nixos-icons}/share/icons/hicolor/64x64/apps/nix-snowflake-white.png";
|
||||
loader = {
|
||||
timeout = 0;
|
||||
systemd-boot.enable = true;
|
||||
# limine = {
|
||||
# enable = true;
|
||||
# maxGenerations = 10;
|
||||
# style = {
|
||||
# wallpapers = [ ];
|
||||
# wallpaperStyle = "stretched";
|
||||
# backdrop = "#1e1e2e";
|
||||
# interface = {
|
||||
# branding = "kova's nixos!";
|
||||
# brandingColor = 5;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
};
|
||||
kernelParams = [
|
||||
"quiet"
|
||||
"splash"
|
||||
"vga=current"
|
||||
"rd.systemd.show_status=false"
|
||||
"rd.udev.log_level=3"
|
||||
"udev.log_priority=3"
|
||||
"boot.shell_on_fail"
|
||||
];
|
||||
consoleLogLevel = 0;
|
||||
initrd.verbose = false;
|
||||
extraModulePackages = with config.boot.kernelPackages; [
|
||||
v4l2loopback
|
||||
];
|
||||
extraModprobeConfig = ''
|
||||
options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1
|
||||
'';
|
||||
};
|
||||
|
||||
programs = {
|
||||
gnupg.agent = {
|
||||
enable = true;
|
||||
enableSSHSupport = true;
|
||||
pinentryPackage = pkgs.pinentry-curses;
|
||||
};
|
||||
niri.enable = true;
|
||||
niri.package = pkgs.niri-unstable;
|
||||
dconf.enable = true;
|
||||
dconf.profiles.user = {
|
||||
databases = [
|
||||
{
|
||||
# breaks user-level indirect config of dconf
|
||||
# lockAll = true;
|
||||
settings = {
|
||||
"org/gnome/desktop/interface" = {
|
||||
color-scheme = "prefer-dark";
|
||||
clock-format = "12h";
|
||||
clock-show-weekday = true;
|
||||
};
|
||||
"org/gnome/desktop/wm/preferences" = {
|
||||
button-layout = ":";
|
||||
action-double-click-titlebar = "'none'";
|
||||
};
|
||||
"org/gnome/desktop/media-handling" = {
|
||||
automount = false;
|
||||
automount-open = false;
|
||||
autorun-never = true;
|
||||
};
|
||||
"org/gnome/settings-daemon/plugins/power" = {
|
||||
sleep-inactive-ac-type = "nothing";
|
||||
};
|
||||
"org/gnome/mutter" = {
|
||||
edge-tiling = true;
|
||||
dynamic-workspaces = true;
|
||||
experimental-features = [ "variable-refresh-rate" ];
|
||||
};
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
services = {
|
||||
displayManager = {
|
||||
autoLogin.enable = true;
|
||||
autoLogin.user = config.userOptions.username;
|
||||
defaultSession = "niri";
|
||||
sddm.enable = true;
|
||||
sddm.wayland.enable = true;
|
||||
};
|
||||
gnome.gnome-keyring.enable = true;
|
||||
libinput.enable = true;
|
||||
printing.enable = true;
|
||||
pipewire = {
|
||||
enable = true;
|
||||
systemWide = true;
|
||||
wireplumber.enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
};
|
||||
udisks2.enable = true;
|
||||
gvfs.enable = true;
|
||||
upower.enable = true;
|
||||
power-profiles-daemon.enable = true;
|
||||
openssh.enable = true;
|
||||
glances.enable = true;
|
||||
glances.package = pkgs.glances.overrideAttrs (oldAttrs: {
|
||||
disabledTests = (oldAttrs.disabledTests or [ ]) ++ [
|
||||
"test_phys_core_returns_int"
|
||||
];
|
||||
});
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
git
|
||||
firefoxpwa
|
||||
(wrapOBS {
|
||||
plugins = with pkgs.obs-studio-plugins; [
|
||||
wlrobs
|
||||
obs-backgroundremoval
|
||||
obs-pipewire-audio-capture
|
||||
];
|
||||
})
|
||||
];
|
||||
|
||||
security = {
|
||||
pam.services = {
|
||||
niri.enableGnomeKeyring = config.services.gnome.gnome-keyring.enable;
|
||||
swaylock = {
|
||||
name = "swaylock";
|
||||
enableGnomeKeyring = config.services.gnome.gnome-keyring.enable;
|
||||
gnupg.enable = true;
|
||||
gnupg.noAutostart = true;
|
||||
};
|
||||
};
|
||||
sudo.wheelNeedsPassword = false;
|
||||
polkit.enable = true;
|
||||
};
|
||||
|
||||
networking = {
|
||||
firewall.enable = false;
|
||||
networkmanager.enable = true;
|
||||
hosts = {
|
||||
"192.168.1.64" = [
|
||||
"kube1"
|
||||
"kube1.local"
|
||||
"kube1.attlocal.net"
|
||||
];
|
||||
"192.168.1.65" = [
|
||||
"kube2"
|
||||
"kube2.local"
|
||||
"kube2.attlocal.net"
|
||||
];
|
||||
"192.168.1.66" = [
|
||||
"kube3"
|
||||
"kube3.local"
|
||||
"kube3.attlocal.net"
|
||||
"kube3.taila30609.ts.net"
|
||||
];
|
||||
"192.168.1.67" = [
|
||||
"kube4"
|
||||
"kube4.local"
|
||||
"kube4.attlocal.net"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
documentation.man.enable = true;
|
||||
hardware.graphics.enable = true;
|
||||
hardware.bluetooth.enable = true;
|
||||
time.timeZone = "America/New_York";
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
i18n.extraLocaleSettings = {
|
||||
LC_ADDRESS = "en_US.UTF-8";
|
||||
LC_IDENTIFICATION = "en_US.UTF-8";
|
||||
LC_MEASUREMENT = "en_US.UTF-8";
|
||||
LC_MONETARY = "en_US.UTF-8";
|
||||
LC_NAME = "en_US.UTF-8";
|
||||
LC_NUMERIC = "en_US.UTF-8";
|
||||
LC_PAPER = "en_US.UTF-8";
|
||||
LC_TELEPHONE = "en_US.UTF-8";
|
||||
LC_TIME = "en_US.UTF-8";
|
||||
};
|
||||
|
||||
# This value determines the NixOS release from which the default
|
||||
# settings for stateful data, like file locations and database versions
|
||||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||
# this value at the release version of the first install of this system.
|
||||
# Before changing this value read the documentation for this option
|
||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||
system.stateVersion = "25.05"; # Did you read the comment?
|
||||
}
|
||||
37
system/games/default.nix
Normal file
37
system/games/default.nix
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs = {
|
||||
gamescope = {
|
||||
enable = true;
|
||||
capSysNice = false;
|
||||
args = [
|
||||
"--output-width 3840"
|
||||
"--nested-width 3840"
|
||||
"--output-height 2160"
|
||||
"--nested-height 2160"
|
||||
"--expose-wayland"
|
||||
"--fullscreen"
|
||||
];
|
||||
};
|
||||
gamemode.enable = true;
|
||||
};
|
||||
|
||||
services = {
|
||||
ananicy = {
|
||||
enable = true;
|
||||
package = pkgs.ananicy-cpp;
|
||||
rulesProvider = pkgs.ananicy-cpp;
|
||||
extraRules = [
|
||||
{
|
||||
"name" = "gamescope";
|
||||
"nice" = -20;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
95
system/hosts/alien/default.nix
Normal file
95
system/hosts/alien/default.nix
Normal file
|
|
@ -0,0 +1,95 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
ddcutil
|
||||
mangohud
|
||||
openrgb
|
||||
p7zip
|
||||
protontricks
|
||||
zenity
|
||||
wineWow64Packages.stable
|
||||
wineWow64Packages.waylandFull
|
||||
];
|
||||
|
||||
# enable ddcutil
|
||||
users.users.${config.userOptions.username}.extraGroups = [ "i2c" ];
|
||||
boot.extraModulePackages = [ config.boot.kernelPackages.ddcci-driver ];
|
||||
boot.kernelModules = [
|
||||
"i2c-dev"
|
||||
"ddcci_backlight"
|
||||
];
|
||||
services.udev.extraRules = ''
|
||||
KERNEL=="i2c-[0-9]*", GROUP="i2c", MODE="0660"
|
||||
'';
|
||||
hardware.i2c.enable = true;
|
||||
|
||||
# enable rgb support
|
||||
services.hardware.openrgb.enable = true;
|
||||
|
||||
# boot.kernelPackages = pkgs.linuxPackages;
|
||||
|
||||
# let's use the CachyOS kernel instead!
|
||||
boot.kernelPackages = pkgs.cachyosKernels.linuxPackages-cachyos-lts;
|
||||
hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||
|
||||
boot.loader.limine.maxGenerations = lib.mkForce 100;
|
||||
|
||||
programs = {
|
||||
steam = {
|
||||
enable = true;
|
||||
gamescopeSession.enable = true;
|
||||
localNetworkGameTransfers.openFirewall = true;
|
||||
extraCompatPackages = with pkgs; [ proton-ge-bin ];
|
||||
};
|
||||
};
|
||||
|
||||
services.xserver.videoDrivers = [
|
||||
"modesetting"
|
||||
"nvidia"
|
||||
];
|
||||
|
||||
hardware.nvidia = {
|
||||
modesetting.enable = true;
|
||||
powerManagement.enable = false;
|
||||
nvidiaSettings = false;
|
||||
open = false;
|
||||
};
|
||||
|
||||
# virtualization settings
|
||||
|
||||
virtualisation = {
|
||||
containers.enable = true;
|
||||
podman = {
|
||||
enable = true;
|
||||
dockerCompat = true;
|
||||
defaultNetwork.settings.dns_enabled = true; # Required for containers under podman-compose to be able to talk to each other.
|
||||
};
|
||||
};
|
||||
|
||||
# enable hyper-v for guests
|
||||
virtualisation.hypervGuest.enable = true;
|
||||
boot.blacklistedKernelModules = [ "hyperv_fb" ];
|
||||
|
||||
# i don't even remember what this does or why i added it
|
||||
systemd.tmpfiles.rules = [
|
||||
"L+ /var/lib/qemu/firmware - - - - ${pkgs.qemu}/share/qemu/firmware"
|
||||
"d /mnt/storage 0775 ${config.userOptions.username} users - -"
|
||||
];
|
||||
|
||||
services.factorio = {
|
||||
enable = true;
|
||||
openFirewall = true;
|
||||
requireUserVerification = false;
|
||||
lan = true;
|
||||
port = 25565;
|
||||
# bind = "[::]"; # support IPv6
|
||||
game-name = "kova's minecraft";
|
||||
game-password = "ThisIsASuperSecurePasswordThatNobodyWillGuess";
|
||||
admins = [ config.userOptions.username ];
|
||||
};
|
||||
}
|
||||
BIN
system/hosts/peach/apple-rainbow.png
Normal file
BIN
system/hosts/peach/apple-rainbow.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5 KiB |
102
system/hosts/peach/default.nix
Normal file
102
system/hosts/peach/default.nix
Normal file
|
|
@ -0,0 +1,102 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
seamless-asahi-plymouth,
|
||||
...
|
||||
}:
|
||||
let
|
||||
asahi-artwork = pkgs.fetchFromGitHub {
|
||||
owner = "AsahiLinux";
|
||||
repo = "artwork";
|
||||
rev = "80d14f8b6f485b310e305a84b4b806361518ddd1";
|
||||
hash = "sha256-1r7gPFsn3GmKO4YsixsK7eyQWfVjsWnuOEtSCQequn8=";
|
||||
};
|
||||
in
|
||||
{
|
||||
|
||||
nixpkgs.overlays = [
|
||||
(final: prev: {
|
||||
uboot-asahi = prev.uboot-asahi.overrideAttrs (old: {
|
||||
postConfigure = (old.postConfigure or "") + ''
|
||||
cat >> .config <<'EOF'
|
||||
# CONFIG_VIDEO_LOGO is not set
|
||||
CONFIG_DISPLAY_BOARDINFO_LATE=n
|
||||
CONFIG_BOOTDELAY=0
|
||||
CONFIG_SILENT_CONSOLE=y
|
||||
CONFIG_PREBOOT="setenv silent 1"
|
||||
EOF
|
||||
|
||||
# Regenerate the configuration with new flags
|
||||
make olddefconfig
|
||||
'';
|
||||
});
|
||||
})
|
||||
];
|
||||
|
||||
boot = {
|
||||
kernelParams = [ "appledrm.show_notch=1" ];
|
||||
# thank you to u/douv:
|
||||
# https://www.reddit.com/r/AsahiLinux/comments/1sb8cby/retro_boot_logo/
|
||||
m1n1CustomLogo = ./apple-rainbow.png;
|
||||
plymouth = {
|
||||
enable = true;
|
||||
theme = "seamless-asahi";
|
||||
themePackages = [
|
||||
(seamless-asahi-plymouth.packages.${pkgs.system}.default.override {
|
||||
logo = ./apple-rainbow.png;
|
||||
})
|
||||
];
|
||||
extraConfig = ''
|
||||
DeviceScale=1
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
programs.dconf.profiles.gdm.databases = [
|
||||
{
|
||||
settings."org/gnome/login-screen".logo =
|
||||
"${asahi-artwork}/logos/svg/AsahiLinux_logo_horizontal_darkbg.svg";
|
||||
}
|
||||
];
|
||||
|
||||
# environment.systemPackages = with pkgs; [
|
||||
# # note for wine support (should be done by 26.05 release):
|
||||
# # https://github.com/NixOS/nixpkgs/issues/412458
|
||||
# muvm
|
||||
# fex
|
||||
# ];
|
||||
|
||||
services.logind.settings.Login = {
|
||||
HandleSuspendKey = "ignore";
|
||||
HandlePowerKey = "lock";
|
||||
HandleLidSwitch = "lock";
|
||||
};
|
||||
|
||||
virtualisation.docker = {
|
||||
enable = true;
|
||||
# Use the rootless mode - run Docker daemon as non-root user
|
||||
rootless = {
|
||||
enable = true;
|
||||
setSocketVariable = true;
|
||||
};
|
||||
};
|
||||
users.users.${config.userOptions.username}.extraGroups = [ "docker" ];
|
||||
|
||||
hardware.asahi = {
|
||||
enable = true;
|
||||
setupAsahiSound = true;
|
||||
# https://github.com/nix-community/nixos-apple-silicon/issues/299#issuecomment-2901508921
|
||||
peripheralFirmwareDirectory = pkgs.requireFile {
|
||||
name = "firmware";
|
||||
hashMode = "recursive";
|
||||
hash = "sha256-ooBrgsZ+B6Fmoy6Ze5ppP9oKQzMIk1orvx+ldxY6bQs=";
|
||||
message = ''
|
||||
you need to add the firmware to the store:
|
||||
mkdir system/hosts/peach/firmware
|
||||
sudo cp -r /mnt/boot/asahi/{all_firmware.tar.gz,kernelcache*} system/hosts/peach/firmware
|
||||
nix-store --add-fixed sha256 --recursive ./system/hosts/peach/firmware
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
135
system/searxng/default.nix
Normal file
135
system/searxng/default.nix
Normal file
|
|
@ -0,0 +1,135 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
sops.templates."searxng.env".content = ''
|
||||
SEARXNG_SECRET=${config.sops.placeholder.searxng_secret}
|
||||
'';
|
||||
|
||||
services.searx = {
|
||||
enable = true;
|
||||
redisCreateLocally = true;
|
||||
environmentFile = config.sops.templates."searxng.env".path;
|
||||
settings = {
|
||||
server = {
|
||||
port = 5364;
|
||||
bind_address = "127.0.0.1";
|
||||
};
|
||||
|
||||
general = {
|
||||
debug = false;
|
||||
instance_name = "searxng: ${config.system.name}";
|
||||
donation_url = false;
|
||||
contact_url = false;
|
||||
privacypolicy_url = false;
|
||||
enable_metrics = false;
|
||||
};
|
||||
|
||||
ui = {
|
||||
static_use_hash = true;
|
||||
default_locale = "en";
|
||||
query_in_title = true;
|
||||
infinite_scroll = false;
|
||||
center_alignment = true;
|
||||
default_theme = "simple";
|
||||
theme_args.simple_style = "auto";
|
||||
search_on_category_select = false;
|
||||
hotkeys = "vim";
|
||||
};
|
||||
|
||||
search = {
|
||||
safe_search = 2;
|
||||
autocomplete_min = 2;
|
||||
autocomplete = "duckduckgo";
|
||||
ban_time_on_fail = 5;
|
||||
max_ban_time_on_fail = 120;
|
||||
formats = [
|
||||
"html"
|
||||
"json"
|
||||
"rss"
|
||||
];
|
||||
};
|
||||
|
||||
engines = lib.mapAttrsToList (name: value: { inherit name; } // value) {
|
||||
"duckduckgo".disabled = true;
|
||||
"brave".disabled = true;
|
||||
"bing".disabled = false;
|
||||
"bing".weight = 0.4;
|
||||
"startpage".disabled = false;
|
||||
"startpage".weight = 1.4;
|
||||
"google".disabled = false;
|
||||
"mojeek".disabled = true;
|
||||
"mwmbl".disabled = false;
|
||||
"mwmbl".weight = 0.4;
|
||||
"qwant".disabled = true;
|
||||
"crowdview".disabled = false;
|
||||
"crowdview".weight = 0.5;
|
||||
"curlie".disabled = true;
|
||||
"ddg definitions".disabled = false;
|
||||
"ddg definitions".weight = 2;
|
||||
"wikibooks".disabled = false;
|
||||
"wikidata".disabled = true;
|
||||
"wikiquote".disabled = true;
|
||||
"wikisource".disabled = true;
|
||||
"wikispecies".disabled = false;
|
||||
"wikispecies".weight = 0.5;
|
||||
"wikiversity".disabled = false;
|
||||
"wikiversity".weight = 0.5;
|
||||
"wikivoyage".disabled = false;
|
||||
"wikivoyage".weight = 0.5;
|
||||
"currency".disabled = true;
|
||||
"dictzone".disabled = true;
|
||||
"lingva".disabled = true;
|
||||
"bing images".disabled = false;
|
||||
"brave.images".disabled = true;
|
||||
"duckduckgo images".disabled = true;
|
||||
"google images".disabled = false;
|
||||
"qwant images".disabled = true;
|
||||
"1x".disabled = true;
|
||||
"artic".disabled = false;
|
||||
"deviantart".disabled = false;
|
||||
"flickr".disabled = true;
|
||||
"imgur".disabled = false;
|
||||
"library of congress".disabled = false;
|
||||
"material icons".disabled = true;
|
||||
"material icons".weight = 0.2;
|
||||
"openverse".disabled = false;
|
||||
"pinterest".disabled = true;
|
||||
"svgrepo".disabled = false;
|
||||
"unsplash".disabled = false;
|
||||
"wallhaven".disabled = false;
|
||||
"wikicommons.images".disabled = false;
|
||||
"yacy images".disabled = true;
|
||||
"bing videos".disabled = false;
|
||||
"brave.videos".disabled = true;
|
||||
"duckduckgo videos".disabled = true;
|
||||
"google videos".disabled = false;
|
||||
"qwant videos".disabled = false;
|
||||
"dailymotion".disabled = true;
|
||||
"google play movies".disabled = true;
|
||||
"invidious".disabled = true;
|
||||
"odysee".disabled = true;
|
||||
"peertube".disabled = false;
|
||||
"piped".disabled = true;
|
||||
"rumble".disabled = false;
|
||||
"sepiasearch".disabled = false;
|
||||
"vimeo".disabled = true;
|
||||
"youtube".disabled = false;
|
||||
"brave.news".disabled = true;
|
||||
"google news".disabled = true;
|
||||
};
|
||||
|
||||
enabled_plugins = [
|
||||
"Basic Calculator"
|
||||
"Hash plugin"
|
||||
"Tor check plugin"
|
||||
"Open Access DOI rewrite"
|
||||
"Hostnames plugin"
|
||||
"Unit converter plugin"
|
||||
"Tracker URL remover"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
22
system/shell/fish.nix
Normal file
22
system/shell/fish.nix
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
# This following block taken from the wiki:
|
||||
# https://nixos.wiki/wiki/Fish#Setting_fish_as_your_shell
|
||||
programs.bash = {
|
||||
interactiveShellInit = ''
|
||||
if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]
|
||||
then
|
||||
shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION=""
|
||||
exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
|
||||
fi
|
||||
'';
|
||||
};
|
||||
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
interactiveShellInit = ''
|
||||
set fish_greeting # Disable greeting
|
||||
alias edit "nvim"
|
||||
'';
|
||||
};
|
||||
}
|
||||
31
system/tailscale/default.nix
Normal file
31
system/tailscale/default.nix
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
# The goal of this configuration is to make it so you can write systemd units that
|
||||
# can wait until tailscale is up and connected, by putting After=tailscaled.service
|
||||
# in their unit file.
|
||||
# https://github.com/tailscale/tailscale/issues/11504#issuecomment-2113331262
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
systemd.services.tailscaled = {
|
||||
serviceConfig.ExecStartPost = pkgs.writeShellScript "tailscale-wait-for-ip" ''
|
||||
echo "Waiting for tailscale0 to get an IP address..."
|
||||
for i in {1..15}; do
|
||||
if ${lib.getExe' pkgs.iproute2 "ip"} addr show dev tailscale0 2>/dev/null | ${lib.getExe' pkgs.gnugrep "grep"} -q 'inet '; then
|
||||
echo "tailscale0 has IP address"
|
||||
exit 0
|
||||
fi
|
||||
echo "Attempt $i"
|
||||
sleep 1
|
||||
done
|
||||
echo "Warning: tailscale0 did not get IP address within 15 seconds"
|
||||
exit 0
|
||||
'';
|
||||
};
|
||||
|
||||
services.tailscale = {
|
||||
enable = true;
|
||||
useRoutingFeatures = "client";
|
||||
};
|
||||
}
|
||||
48
system/widevine/default.nix
Normal file
48
system/widevine/default.nix
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
# https://github.com/nix-community/nixos-apple-silicon/issues/145
|
||||
# This should work with both x86_64 and aarch64. (hopefully)
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
nixpkgs.overlays = lib.mkIf (config.nixpkgs.hostPlatform.isLinux) [
|
||||
(
|
||||
final: prev:
|
||||
let
|
||||
# Determine the correct directory name based on the system architecture
|
||||
archDir =
|
||||
if final.stdenv.hostPlatform.isAarch64 then
|
||||
"linux_arm64"
|
||||
else if final.stdenv.hostPlatform.isx86_64 then
|
||||
"linux_x64"
|
||||
else
|
||||
throw "Unsupported architecture for Widevine CDM";
|
||||
in
|
||||
{
|
||||
wrapFirefox =
|
||||
browser: opts:
|
||||
let
|
||||
extraPrefs = (opts.extraPrefs or "") + ''
|
||||
lockPref("media.gmp-widevinecdm.version", "system-installed");
|
||||
lockPref("media.gmp-widevinecdm.visible", true);
|
||||
lockPref("media.gmp-widevinecdm.enabled", true);
|
||||
lockPref("media.gmp-widevinecdm.autoupdate", false);
|
||||
lockPref("media.eme.enabled", true);
|
||||
lockPref("media.eme.encrypted-media-encryption-scheme.enabled", true);
|
||||
'';
|
||||
widevineCdmDir = "${final.widevine-cdm}/share/google/chrome/WidevineCdm";
|
||||
widevineOutDir = "$out/gmp-widevinecdm/system-installed";
|
||||
in
|
||||
(prev.wrapFirefox browser (opts // { inherit extraPrefs; })).overrideAttrs (previousAttrs: {
|
||||
buildCommand = previousAttrs.buildCommand + ''
|
||||
mkdir -p "${widevineOutDir}"
|
||||
ln -s "${widevineCdmDir}/_platform_specific/${archDir}/libwidevinecdm.so" "${widevineOutDir}/libwidevinecdm.so"
|
||||
ln -s "${widevineCdmDir}/manifest.json" "${widevineOutDir}/manifest.json"
|
||||
wrapProgram "$oldExe" --set MOZ_GMP_PATH "${widevineOutDir}"
|
||||
'';
|
||||
});
|
||||
}
|
||||
)
|
||||
];
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue