Compare commits
2 Commits
main
...
df756281ae
| Author | SHA1 | Date | |
|---|---|---|---|
|
df756281ae
|
|||
|
036b87d978
|
1
.gitignore
vendored
@@ -4,4 +4,3 @@ nix_file.tar.gz
|
|||||||
nvim
|
nvim
|
||||||
tmux/plugins
|
tmux/plugins
|
||||||
modules/quickshell/quickshell/.qmlls.ini
|
modules/quickshell/quickshell/.qmlls.ini
|
||||||
result
|
|
||||||
|
|||||||
10
.sops.yaml
@@ -1,10 +0,0 @@
|
|||||||
---
|
|
||||||
creation_rules:
|
|
||||||
# Rule to encrypt YAML secret files in a specific directory
|
|
||||||
- encrypted_regex: '^(data|stringData)$' # Encrypt data and stringData by default (useful for Kubernetes secrets)
|
|
||||||
path_regex: secrets/.*\.yaml$ # Applies to all files in the secrets/ directory
|
|
||||||
age:
|
|
||||||
- "age1ykcy2r4kk729e7adqxu8s24ujc60z5eux7ma0ca4ruzydwgm5p6qmdp838" # pc-user-doloro
|
|
||||||
- "age1e6vws55p0g23qzthm4qa93hpt6lqmck6670gkygph0sc0j7my4uq5wqjfh" # pc-system
|
|
||||||
- "age1x3lahhkefkap67cdmdjcqaxan9hp62er78akr79v9m73nvgugpeqk0y32a" # laptop-user-doloro
|
|
||||||
- "age1exzngtk4d9vcsmcq6ap5xx3ca9qacqjkrv86ymged7msx9z6vfyqsf5sjq" # laptop-system
|
|
||||||
990
flake.lock
generated
101
flake.nix
@@ -3,39 +3,23 @@
|
|||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
# Specify the source of Home Manager and Nixpkgs.
|
# Specify the source of Home Manager and Nixpkgs.
|
||||||
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
rpi-nixpkgs.url = "github:nvmd/nixpkgs/modules-with-keys-25.11";
|
|
||||||
home-manager = {
|
home-manager = {
|
||||||
url = "github:nix-community/home-manager";
|
url = "github:nix-community/home-manager";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
nixos-wsl.url = "github:nix-community/NixOS-WSL/main";
|
nixos-wsl.url = "github:nix-community/NixOS-WSL/main";
|
||||||
nix-meow.url = "git+https://git.scug.io/nikkuss/nix-meow.git?ref=paws"; # config manager, meow'd
|
nix-meow.url = "git+https://git.scug.io/nikkuss/nix-meow.git"; # config manager, meow'd
|
||||||
hyprland.url = "github:hyprwm/Hyprland";
|
hyprland.url = "github:hyprwm/Hyprland";
|
||||||
rsRPC.url = "github:Doloro1978/rsRPC";
|
rsRPC.url = "github:Doloro1978/rsRPC";
|
||||||
protonhax.url = "github:linusfri/protonhax-nix";
|
|
||||||
hytale-launcher.url = "github:JPyke3/hytale-launcher-nix";
|
|
||||||
quickshell = {
|
quickshell = {
|
||||||
url = "git+https://git.outfoxxed.me/outfoxxed/quickshell";
|
url = "git+https://git.outfoxxed.me/outfoxxed/quickshell";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
heliumFlake = {
|
|
||||||
url = "github:vikingnope/helium-browser-nix-flake";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
nikkuss-pkgs = {
|
nikkuss-pkgs = {
|
||||||
url = "git+https://git.scug.io/nikkuss/pkgs";
|
url = "git+https://git.scug.io/nikkuss/pkgs";
|
||||||
# inputs.nixpkgs.follows = "nixpkgs";
|
# inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
zen-browser = {
|
|
||||||
url = "github:0xc000022070/zen-browser-flake";
|
|
||||||
inputs = {
|
|
||||||
# IMPORTANT: we're using "libgbm" and is only available in unstable so ensure
|
|
||||||
# to have it up-to-date or simply don't specify the nixpkgs input
|
|
||||||
nixpkgs.follows = "nixpkgs";
|
|
||||||
home-manager.follows = "home-manager";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
sops-nix = {
|
sops-nix = {
|
||||||
url = "github:Mic92/sops-nix";
|
url = "github:Mic92/sops-nix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
@@ -64,9 +48,6 @@
|
|||||||
url = "github:Nixos/nixpkgs?rev=8fcb6f1c4948305af52d19f887b89011ee2c080d";
|
url = "github:Nixos/nixpkgs?rev=8fcb6f1c4948305af52d19f887b89011ee2c080d";
|
||||||
};
|
};
|
||||||
font-patcher.url = "github:Doloro1978/nix-nerd-fonts-patcher";
|
font-patcher.url = "github:Doloro1978/nix-nerd-fonts-patcher";
|
||||||
nixos-raspberrypi.url = "github:nvmd/nixos-raspberrypi/develop";
|
|
||||||
raspberry-pi-nix.url = "github:nix-community/raspberry-pi-nix";
|
|
||||||
niri-flake.url = "github:sodiboo/niri-flake";
|
|
||||||
};
|
};
|
||||||
outputs =
|
outputs =
|
||||||
inputs@{
|
inputs@{
|
||||||
@@ -98,50 +79,22 @@
|
|||||||
};
|
};
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
# (
|
(
|
||||||
# final: prev:
|
final: prev:
|
||||||
# let
|
let
|
||||||
# system = prev.stdenv.hostPlatform.system;
|
system = prev.stdenv.hostPlatform.system;
|
||||||
# pkgs_gamescope = import inputs.nixpkgs-gamescope {
|
pkgs_gamescope = import inputs.nixpkgs-gamescope {
|
||||||
# inherit system;
|
inherit system;
|
||||||
# config = {
|
config = {
|
||||||
# allow_unfree = true;
|
allow_unfree = true;
|
||||||
# };
|
};
|
||||||
# };
|
};
|
||||||
# packageNix = "${inputs.nixpkgs-gamescope}/pkgs/by-name/ga/gamescope/package.nix";
|
packageNix = "${inputs.nixpkgs-gamescope}/pkgs/by-name/ga/gamescope/package.nix";
|
||||||
# in
|
in
|
||||||
# {
|
{
|
||||||
# gamescope = pkgs_gamescope.callPackage packageNix { };
|
gamescope = pkgs_gamescope.callPackage packageNix { };
|
||||||
# }
|
}
|
||||||
# )
|
)
|
||||||
# (self: super: {
|
|
||||||
# intel-npu-driver = super.intel-npu-driver.overrideAttrs (oldAttrs: rec {
|
|
||||||
# installPhase = ''
|
|
||||||
# mkdir -p $out/lib/firmware
|
|
||||||
# ${oldAttrs.installPhase}
|
|
||||||
# '';
|
|
||||||
# });
|
|
||||||
# })
|
|
||||||
(final: prev: {
|
|
||||||
vesktop = prev.vesktop.overrideAttrs (old: {
|
|
||||||
preBuild = ''
|
|
||||||
cp -r ${prev.electron.dist} electron-dist
|
|
||||||
chmod -R u+w electron-dist
|
|
||||||
'';
|
|
||||||
buildPhase = ''
|
|
||||||
runHook preBuild
|
|
||||||
|
|
||||||
pnpm build
|
|
||||||
pnpm exec electron-builder \
|
|
||||||
--dir \
|
|
||||||
-c.asarUnpack="**/*.node" \
|
|
||||||
-c.electronDist="electron-dist" \
|
|
||||||
-c.electronVersion=${prev.electron.version}
|
|
||||||
|
|
||||||
runHook postBuild
|
|
||||||
'';
|
|
||||||
});
|
|
||||||
})
|
|
||||||
];
|
];
|
||||||
utils = nix-meow.lib.setup {
|
utils = nix-meow.lib.setup {
|
||||||
inherit (inputs) home-manager nixpkgs;
|
inherit (inputs) home-manager nixpkgs;
|
||||||
@@ -158,7 +111,6 @@
|
|||||||
};
|
};
|
||||||
inherit (utils) mkHost;
|
inherit (utils) mkHost;
|
||||||
configurations = [
|
configurations = [
|
||||||
# Desktops
|
|
||||||
(mkHost {
|
(mkHost {
|
||||||
hardware = "doloro";
|
hardware = "doloro";
|
||||||
host = "doloro";
|
host = "doloro";
|
||||||
@@ -170,21 +122,10 @@
|
|||||||
};
|
};
|
||||||
})
|
})
|
||||||
(mkHost {
|
(mkHost {
|
||||||
hardware = "doloro-laptop";
|
hardware = "doloro-wsl";
|
||||||
host = "doloro-laptop";
|
host = "doloro-wsl";
|
||||||
system = "x86_64-linux";
|
|
||||||
stateVersion = "25.11";
|
|
||||||
nixpkgsConfig = {
|
|
||||||
rocmSupport = false;
|
|
||||||
};
|
|
||||||
})
|
|
||||||
# Servers
|
|
||||||
(mkHost {
|
|
||||||
hardware = "rpi-5";
|
|
||||||
host = "rpi-5";
|
|
||||||
system = "aarch64-linux";
|
system = "aarch64-linux";
|
||||||
# nixpkgs = inputs.rpi-nixpkgs;
|
stateVersion = "25.05";
|
||||||
stateVersion = "25.11";
|
|
||||||
nixpkgsConfig = {
|
nixpkgsConfig = {
|
||||||
rocmSupport = false;
|
rocmSupport = false;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,62 +0,0 @@
|
|||||||
{inputs, ...}:{imports = [inputs.disko.nixosModules.disko]; disko.devices = {
|
|
||||||
disk = {
|
|
||||||
main = {
|
|
||||||
device = "/dev/nvme0n1";
|
|
||||||
type = "disk";
|
|
||||||
content = {
|
|
||||||
type = "gpt";
|
|
||||||
partitions = {
|
|
||||||
boot = {
|
|
||||||
name = "boot";
|
|
||||||
size = "1M";
|
|
||||||
type = "EF02";
|
|
||||||
};
|
|
||||||
ESP = {
|
|
||||||
name = "ESP";
|
|
||||||
priority = 1;
|
|
||||||
size = "4G";
|
|
||||||
type = "EF00";
|
|
||||||
content = {
|
|
||||||
type = "filesystem";
|
|
||||||
format = "vfat";
|
|
||||||
mountpoint = "/boot";
|
|
||||||
mountOptions = [ "umask=0077" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
plainSwap = {
|
|
||||||
size = "48G";
|
|
||||||
content = {
|
|
||||||
type = "swap";
|
|
||||||
discardPolicy = "both"; # Both "once" and page discard policies
|
|
||||||
resumeDevice = true; # Use for hibernation resume device
|
|
||||||
};
|
|
||||||
};
|
|
||||||
root = {
|
|
||||||
size = "100%";
|
|
||||||
content = {
|
|
||||||
type = "btrfs";
|
|
||||||
extraArgs = [ "-f" ]; # Override existing partition
|
|
||||||
# Subvolumes must set a mountpoint in order to be mounted,
|
|
||||||
# unless their parent is mounted
|
|
||||||
subvolumes = {
|
|
||||||
# Subvolume name is different from mountpoint
|
|
||||||
"@" = {
|
|
||||||
mountpoint = "/";
|
|
||||||
};
|
|
||||||
# Subvolume name is the same as the mountpoint
|
|
||||||
"@home" = {
|
|
||||||
mountpoint = "/home";
|
|
||||||
};
|
|
||||||
# Parent is not mounted so the mountpoint must be set
|
|
||||||
"@nix" = {
|
|
||||||
mountpoint = "/nix";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
# 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"
|
|
||||||
"thunderbolt"
|
|
||||||
"vmd"
|
|
||||||
"nvme"
|
|
||||||
];
|
|
||||||
boot.initrd.kernelModules = [ ];
|
|
||||||
boot.kernelModules = [ "kvm-intel" ];
|
|
||||||
boot.extraModulePackages = [ ];
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
|
||||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
|
||||||
}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
{...}: {}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
{lib,...}:{imports=[./disks.nix ./hardware-configuration.nix]; }
|
|
||||||
2
hardwares/doloro-wsl/home.nix
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
{...}: {
|
||||||
|
}
|
||||||
@@ -1,7 +1,3 @@
|
|||||||
{ ... }:
|
{ ... }:
|
||||||
let
|
|
||||||
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
{ inputs, lib, ... }:
|
|
||||||
{
|
|
||||||
imports = [ inputs.disko.nixosModules.disko ];
|
|
||||||
disko.devices = {
|
|
||||||
disk = {
|
|
||||||
main = {
|
|
||||||
device = "/dev/disk/by-label/NIXOS_SD";
|
|
||||||
type = "disk";
|
|
||||||
content = {
|
|
||||||
type = "gpt";
|
|
||||||
partitions = {
|
|
||||||
boot = {
|
|
||||||
name = "boot";
|
|
||||||
size = "1M";
|
|
||||||
type = "EF02";
|
|
||||||
};
|
|
||||||
ESP = {
|
|
||||||
name = "ESP";
|
|
||||||
priority = 1;
|
|
||||||
size = "4G";
|
|
||||||
type = "EF00";
|
|
||||||
content = {
|
|
||||||
type = "filesystem";
|
|
||||||
format = "vfat";
|
|
||||||
mountpoint = "/boot";
|
|
||||||
mountOptions = [ "umask=0077" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
plainSwap = {
|
|
||||||
size = "8G";
|
|
||||||
content = {
|
|
||||||
type = "swap";
|
|
||||||
discardPolicy = "both"; # Both "once" and page discard policies
|
|
||||||
};
|
|
||||||
};
|
|
||||||
root = {
|
|
||||||
size = "100%";
|
|
||||||
content = {
|
|
||||||
type = "filesystem";
|
|
||||||
format = "ext4";
|
|
||||||
mountpoint = "/";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
{...}: {}
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
{
|
|
||||||
lib,
|
|
||||||
inputs,
|
|
||||||
modulesPath,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
# ./disks.nix
|
|
||||||
# (modulesPath + "/installer/sd-card/sd-image-aarch64.nix")
|
|
||||||
];
|
|
||||||
# fileSystems = {
|
|
||||||
# "/" = {
|
|
||||||
# device = "/dev/disk/by-label/NIXOS_SD";
|
|
||||||
# fsType = "ext4";
|
|
||||||
# options = [ "noatime" ];
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
boot.supportedFilesystems = lib.mkForce [
|
|
||||||
"btrfs"
|
|
||||||
"reiserfs"
|
|
||||||
"vfat"
|
|
||||||
"ext4"
|
|
||||||
"f2fs"
|
|
||||||
"xfs"
|
|
||||||
"ntfs"
|
|
||||||
"cifs"
|
|
||||||
];
|
|
||||||
nixpkgs.overlays = [
|
|
||||||
# https://github.com/NixOS/nixpkgs/issues/126755#issuecomment-869149243
|
|
||||||
(final: super: {
|
|
||||||
makeModulesClosure = x: super.makeModulesClosure (x // { allowMissing = true; });
|
|
||||||
})
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,149 +0,0 @@
|
|||||||
{ pkgs, lib, ... }:
|
|
||||||
let
|
|
||||||
batt-gpu = pkgs.writeShellScript "batt-igpu" ''
|
|
||||||
${pkgs.intel-gpu-tools}/bin/intel_gpu_frequency -e
|
|
||||||
echo "800" > /sys/class/drm/card1/gt_boost_freq_mhz
|
|
||||||
'';
|
|
||||||
ac-gpu = pkgs.writeShellScript "ac-igpu" ''
|
|
||||||
${pkgs.intel-gpu-tools}/bin/intel_gpu_frequency -d
|
|
||||||
echo "2350" > /sys/class/drm/card1/gt_boost_freq_mhz
|
|
||||||
'';
|
|
||||||
in
|
|
||||||
{
|
|
||||||
services.tlp = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
# Wireless power saving
|
|
||||||
WIFI_PWR_ON_BAT = "1";
|
|
||||||
|
|
||||||
# USB autosuspend
|
|
||||||
USB_AUTOSUSPEND = "1";
|
|
||||||
|
|
||||||
# SATA drive power management
|
|
||||||
SATA_LINKPWR_ON_BAT = "min_power";
|
|
||||||
|
|
||||||
# PCI Express Active-State Power Management (ASPM)
|
|
||||||
PCIE_ASPM_ON_BAT = "powersupersave";
|
|
||||||
|
|
||||||
RUNTIME_PM_ON_AC = "on";
|
|
||||||
RUNTIME_PM_ON_BAT = "auto";
|
|
||||||
|
|
||||||
# Disable Bluetooth on battery
|
|
||||||
# DEVICES_TO_DISABLE_ON_BAT = "bluetooth";
|
|
||||||
|
|
||||||
# Restore brightness on battery
|
|
||||||
RESTORE_BRIGHTNESS_ON_BAT = "1";
|
|
||||||
PCIE_ASPM_ON_AC = "balanced";
|
|
||||||
DEVICES_TO_DISABLE_ON_BAT_NOT_IN_USE = "bluetooth";
|
|
||||||
INTEL_GPU_MAX_FREQ_ON_AC = 0;
|
|
||||||
INTEL_GPU_MAX_FREQ_ON_BAT = 800;
|
|
||||||
INTEL_GPU_BOOST_FREQ_ON_AC = 0;
|
|
||||||
INTEL_GPU_BOOST_FREQ_ON_BAT = 800;
|
|
||||||
|
|
||||||
CPU_MAX_PERF_ON_BAT = 50;
|
|
||||||
|
|
||||||
PLATFORM_PROFILE_ON_AC = "balanced";
|
|
||||||
PLATFORM_PROFILE_ON_BAT = "quiet";
|
|
||||||
START_CHARGE_THRESH_BAT0 = 40; # 40 and below it starts to charge
|
|
||||||
STOP_CHARGE_THRESH_BAT0 = 80; # 80 and above it stops charging
|
|
||||||
};
|
|
||||||
};
|
|
||||||
services.thermald.enable = true;
|
|
||||||
services.upower = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
services.auto-cpufreq.enable = true;
|
|
||||||
|
|
||||||
systemd.targets = {
|
|
||||||
"ac" = {
|
|
||||||
description = "On AC power";
|
|
||||||
unitConfig = {
|
|
||||||
StopWhenUnneeded = "yes";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
"battery" = {
|
|
||||||
description = "On battery power";
|
|
||||||
unitConfig = {
|
|
||||||
StopWhenUnneeded = "yes";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.udev.extraRules = ''
|
|
||||||
SUBSYSTEM=="power_supply",ENV{POWER_SUPPLY_ONLINE}=="0", RUN+="/run/current-system/systemd/bin/systemctl start battery.target"
|
|
||||||
SUBSYSTEM=="power_supply", ENV{POWER_SUPPLY_ONLINE}=="1", RUN+="/run/current-system/systemd/bin/systemctl start ac.target"
|
|
||||||
'';
|
|
||||||
|
|
||||||
services.auto-cpufreq.settings = {
|
|
||||||
battery = {
|
|
||||||
governor = "powersave";
|
|
||||||
turbo = "never";
|
|
||||||
};
|
|
||||||
charger = {
|
|
||||||
governor = "performance";
|
|
||||||
turbo = "auto";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
boot.kernelParams = [
|
|
||||||
# "mem_sleep_default=deep"
|
|
||||||
# "i915.fastboot=1"
|
|
||||||
"pcie_aspm=force"
|
|
||||||
"ahci.mobile_lpm_policy=1"
|
|
||||||
];
|
|
||||||
services.logind.settings.Login = {
|
|
||||||
HandleLidSwitch = "suspend";
|
|
||||||
HandleLidSwitchExternalPower = "suspend";
|
|
||||||
HandleLidSwitchDocked = "ignore";
|
|
||||||
};
|
|
||||||
systemd.sleep.extraConfig = ''
|
|
||||||
HibernateDelaySec=30min
|
|
||||||
SuspendEstimationSec=120
|
|
||||||
'';
|
|
||||||
|
|
||||||
systemd.services.gpu-limit-on-batt = {
|
|
||||||
enable = true;
|
|
||||||
description = "Using rfkill; disable all rf devices before sleeping.";
|
|
||||||
before = [ "battery.target" ];
|
|
||||||
|
|
||||||
serviceConfig = {
|
|
||||||
Type = "oneshot";
|
|
||||||
ExecStart = "${batt-gpu}";
|
|
||||||
RemainAfterExit = true;
|
|
||||||
};
|
|
||||||
wantedBy = [ "battery.target" ];
|
|
||||||
partOf = [ "battery.target" ];
|
|
||||||
};
|
|
||||||
systemd.services.gpu-limit-on-ac = {
|
|
||||||
enable = true;
|
|
||||||
description = "Using rfkill; disable all rf devices before sleeping.";
|
|
||||||
before = [ "ac.target" ];
|
|
||||||
|
|
||||||
serviceConfig = {
|
|
||||||
Type = "oneshot";
|
|
||||||
ExecStart = "${ac-gpu}";
|
|
||||||
RemainAfterExit = true;
|
|
||||||
};
|
|
||||||
wantedBy = [ "ac.target" ];
|
|
||||||
partOf = [ "ac.target" ];
|
|
||||||
};
|
|
||||||
systemd.services.rfkill-sleep-wake = {
|
|
||||||
enable = true;
|
|
||||||
description = "Using rfkill; disable all rf devices before sleeping.";
|
|
||||||
before = [ "sleep.target" ];
|
|
||||||
|
|
||||||
serviceConfig = {
|
|
||||||
Type = "oneshot";
|
|
||||||
ExecStop = "${pkgs.utillinux}/bin/rfkill unblock all";
|
|
||||||
ExecStart = "${pkgs.utillinux}/bin/rfkill block all";
|
|
||||||
RemainAfterExit = true;
|
|
||||||
};
|
|
||||||
wantedBy = [ "sleep.target" ];
|
|
||||||
partOf = [ "sleep.target" ];
|
|
||||||
|
|
||||||
};
|
|
||||||
# one of "ignore", "poweroff", "reboot", "halt", "kexec", "suspend", "hibernate", "hybrid-sleep", "suspend-then-hibernate", "lock"
|
|
||||||
powerManagement = {
|
|
||||||
enable = true;
|
|
||||||
# powertop.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,197 +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, on
|
|
||||||
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
|
|
||||||
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
nix-meow,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
sops = inputs.sops-nix;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
inputs.sops-nix.nixosModules.sops
|
|
||||||
./laptop.nix
|
|
||||||
];
|
|
||||||
modules = {
|
|
||||||
fish.enable = true;
|
|
||||||
greetd.enable = true;
|
|
||||||
stylix.enable = true;
|
|
||||||
steam.enable = true;
|
|
||||||
Hyprland.enable = true;
|
|
||||||
# remoteBuild.use-remote-builders = true;
|
|
||||||
wivrn.enable = false;
|
|
||||||
fonts.enable = true;
|
|
||||||
};
|
|
||||||
# Use the systemd-boot EFI boot loader.
|
|
||||||
boot.loader.systemd-boot.enable = true;
|
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
|
||||||
# boot.kernelPackages = pkgs.linuxPackages_6_12; # Hibernate works on 6.12 but not on latest
|
|
||||||
boot.kernelPackages = pkgs.linuxPackages_latest; # Unpinned the linux version for now.. as i am not using hibernate that often
|
|
||||||
networking.hostName = "doloro-nixos-laptop"; # Define your hostname.
|
|
||||||
security.rtkit.enable = true;
|
|
||||||
|
|
||||||
# Configure network connections interactively with nmcli or nmtui.
|
|
||||||
networking.networkmanager.enable = true;
|
|
||||||
|
|
||||||
# Set your time zone.
|
|
||||||
# time.timeZone = "Europe/London";
|
|
||||||
services.automatic-timezoned.enable = true;
|
|
||||||
|
|
||||||
nix.settings = {
|
|
||||||
substituters = [
|
|
||||||
"https://nix-community.cachix.org"
|
|
||||||
"https://cache.nixos.org/"
|
|
||||||
"https://attic.scug.io/pkgs"
|
|
||||||
];
|
|
||||||
trusted-public-keys = [
|
|
||||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
|
||||||
"pkgs:+sRbfiZMMX5R3PuAPtIRz/emowDoGZNpozibrnrAvuc="
|
|
||||||
];
|
|
||||||
experimental-features = [
|
|
||||||
"flakes"
|
|
||||||
"nix-command"
|
|
||||||
];
|
|
||||||
trusted-users = [
|
|
||||||
"doloro"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
services.gnome.gnome-keyring.enable = true;
|
|
||||||
|
|
||||||
hardware = {
|
|
||||||
firmware = [ pkgs.intel-npu-driver ];
|
|
||||||
cpu.intel = {
|
|
||||||
# npu.enable = true;
|
|
||||||
};
|
|
||||||
graphics = {
|
|
||||||
enable = true;
|
|
||||||
# https://github.com/intel/libvpl?tab=readme-ov-file#dispatcher-behavior-when-targeting-intel-gpus
|
|
||||||
extraPackages = with pkgs; [
|
|
||||||
vpl-gpu-rt
|
|
||||||
intel-media-driver # VA-API (iHD) userspace
|
|
||||||
intel-vaapi-driver
|
|
||||||
# vpl-gpu-rt # oneVPL (QSV) runtime
|
|
||||||
intel-compute-runtime # OpenCL (NEO) + Level Zero for Arc/Xe
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
services.openssh = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
PasswordAuthentication = true;
|
|
||||||
PermitRootLogin = "prohibit-password";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
users.users.root.openssh.authorizedKeys.keys = [
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBaa6Z5qtBSLEz+A4fQGYPfkOISsRQlmKkVbcx2zxML7"
|
|
||||||
];
|
|
||||||
|
|
||||||
# Select internationalisation properties.
|
|
||||||
# i18n.defaultLocale = "en_US.UTF-8";
|
|
||||||
# console = {
|
|
||||||
# font = "Lat2-Terminus16";
|
|
||||||
# keyMap = "us";
|
|
||||||
# useXkbConfig = true; # use xkb.options in tty.
|
|
||||||
# };
|
|
||||||
|
|
||||||
# Enable the X11 windowing system.
|
|
||||||
services.xserver.enable = true;
|
|
||||||
|
|
||||||
# sops.age.keyFile = "/etc/ssh/ssh_host_ed25519_key";
|
|
||||||
sops = {
|
|
||||||
defaultSopsFile = builtins.toPath "${nix-meow.flakeRoot}/secrets/users.yaml";
|
|
||||||
secrets = {
|
|
||||||
root-hashed_password = {
|
|
||||||
neededForUsers = true;
|
|
||||||
};
|
|
||||||
doloro-hashed_password = {
|
|
||||||
neededForUsers = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.pipewire = {
|
|
||||||
enable = true;
|
|
||||||
pulse.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
services.libinput.enable = true;
|
|
||||||
|
|
||||||
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
|
|
||||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
|
||||||
users.users.doloro = {
|
|
||||||
isNormalUser = true;
|
|
||||||
shell = pkgs.fish;
|
|
||||||
extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
|
|
||||||
packages = with pkgs; [
|
|
||||||
tree
|
|
||||||
];
|
|
||||||
hashedPasswordFile = config.sops.secrets."doloro-hashed_password".path;
|
|
||||||
openssh.authorizedKeys.keys = [
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBaa6Z5qtBSLEz+A4fQGYPfkOISsRQlmKkVbcx2zxML7" # pc public key
|
|
||||||
];
|
|
||||||
# initialPassword = "sex";
|
|
||||||
};
|
|
||||||
users.mutableUsers = false;
|
|
||||||
services.system76-scheduler.enable = true;
|
|
||||||
|
|
||||||
# programs.firefox.enable = true;
|
|
||||||
|
|
||||||
# List packages installed in system profile.
|
|
||||||
# You can use https://search.nixos.org/ to find more packages (and options).
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
|
||||||
git
|
|
||||||
wget
|
|
||||||
# tlp-pd
|
|
||||||
brightnessctl
|
|
||||||
nvtopPackages.intel
|
|
||||||
seahorse
|
|
||||||
];
|
|
||||||
|
|
||||||
# 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:
|
|
||||||
|
|
||||||
# Open ports in the firewall.
|
|
||||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
|
||||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
|
||||||
# Or disable the firewall altogether.
|
|
||||||
# networking.firewall.enable = false;
|
|
||||||
|
|
||||||
# Copy the NixOS configuration file and link it from the resulting system
|
|
||||||
# (/run/current-system/configuration.nix). This is useful in case you
|
|
||||||
# accidentally delete configuration.nix.
|
|
||||||
|
|
||||||
# This option defines the first version of NixOS you have installed on this particular machine,
|
|
||||||
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
|
|
||||||
#
|
|
||||||
# Most users should NEVER change this value after the initial install, for any reason,
|
|
||||||
# even if you've upgraded your system to a new NixOS release.
|
|
||||||
#
|
|
||||||
# This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
|
|
||||||
# so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how
|
|
||||||
# to actually do that.
|
|
||||||
#
|
|
||||||
# This value being lower than the current NixOS release does NOT mean your system is
|
|
||||||
# out of date, out of support, or vulnerable.
|
|
||||||
#
|
|
||||||
# Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
|
|
||||||
# and migrated your data accordingly.
|
|
||||||
#
|
|
||||||
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
|
|
||||||
system.stateVersion = "25.11"; # Did you read the comment?
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,76 +1,41 @@
|
|||||||
{
|
{
|
||||||
inputs,
|
inputs,
|
||||||
config,
|
config,
|
||||||
system,
|
|
||||||
pkgs,
|
pkgs,
|
||||||
fetchFromGitHub,
|
fetchFromGitHub,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
inputs.sops-nix.homeManagerModules.sops
|
# ./modules/hyprland/home.nix
|
||||||
|
# ./modules/quickshell/home.nix
|
||||||
|
# ./modules/chromium/home.nix
|
||||||
|
#./modules/neovim/home.nix
|
||||||
|
# ./modules/stylix/home.nix
|
||||||
|
#../../modules/nixvim/home.nix
|
||||||
|
#../../modules/tmux/home.nix
|
||||||
|
#../../modules/theme/home.nix
|
||||||
|
# ./modules/spicetify/home.nix
|
||||||
|
# ./modules/obs/home.nix
|
||||||
|
# ./modules/blender/home.nix
|
||||||
|
#../../modules/fish/home.nix
|
||||||
|
# ./modules/ytm/home.nix
|
||||||
|
#../../overlays.nix
|
||||||
];
|
];
|
||||||
sops = {
|
|
||||||
age.keyFile = "/home/doloro/.config/sops/age/key.txt"; # must have no password!
|
|
||||||
};
|
|
||||||
modules = {
|
modules = {
|
||||||
Hyprland.enable = true;
|
|
||||||
quickshell.enable = true;
|
|
||||||
# chromium.enable = true;
|
|
||||||
wivrn.enable = false;
|
|
||||||
helium.enable = true;
|
|
||||||
sops.enable = true;
|
|
||||||
wakatime.enable = false;
|
|
||||||
# remoteBuild.use-remote-builders = true;
|
|
||||||
nixvim.enable = true;
|
nixvim.enable = true;
|
||||||
zen-browser.enable = false;
|
|
||||||
kitty.enable = true;
|
|
||||||
helix.enable = false;
|
|
||||||
stylix.enable = true;
|
|
||||||
tmux.enable = true;
|
tmux.enable = true;
|
||||||
theme.enable = true;
|
|
||||||
obs = {
|
|
||||||
enable = true;
|
|
||||||
autostart = false;
|
|
||||||
};
|
|
||||||
blender.enable = false;
|
|
||||||
bottles.enable = false;
|
|
||||||
fish.enable = true;
|
fish.enable = true;
|
||||||
youtube-music.enable = true;
|
stylix.enable = true;
|
||||||
unityhub.enable = false;
|
|
||||||
direnv.enable = true;
|
direnv.enable = true;
|
||||||
git.enable = true;
|
git.enable = true;
|
||||||
rsRPC.enable = true;
|
|
||||||
};
|
};
|
||||||
# Home Manager needs a bit of information about you and the paths it should
|
# Home Manager needs a bit of information about you and the paths it should
|
||||||
# manage.
|
# manage.
|
||||||
home.username = "doloro";
|
home.username = "doloro";
|
||||||
home.homeDirectory = "/home/doloro";
|
home.homeDirectory = "/home/doloro";
|
||||||
|
|
||||||
services = {
|
|
||||||
gpg-agent = {
|
|
||||||
enable = true;
|
|
||||||
pinentry = {
|
|
||||||
package = pkgs.pinentry-qt;
|
|
||||||
program = "pinentry-qt";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
arrpc = {
|
|
||||||
enable = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
xdg.mimeApps.enable = true;
|
|
||||||
wayland.windowManager.hyprland.settings = {
|
|
||||||
monitor = [
|
|
||||||
"eDP-1, 2880x1800@120, 0x0, 2"
|
|
||||||
];
|
|
||||||
input = {
|
|
||||||
kb_layout = "gb";
|
|
||||||
follow_mouse = 2;
|
|
||||||
sensitivity = 0;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# This value determines the Home Manager release that your configuration is
|
# This value determines the Home Manager release that your configuration is
|
||||||
# compatible with. This helps avoid breakage when a new Home Manager release
|
# compatible with. This helps avoid breakage when a new Home Manager release
|
||||||
# introduces backwards incompatible changes.
|
# introduces backwards incompatible changes.
|
||||||
@@ -80,23 +45,26 @@
|
|||||||
# release notes.
|
# release notes.
|
||||||
home.stateVersion = "25.05"; # Please read the comment before changing.
|
home.stateVersion = "25.05"; # Please read the comment before changing.
|
||||||
|
|
||||||
|
services.gpg-agent = {
|
||||||
|
enable = true;
|
||||||
|
pinentry = {
|
||||||
|
package = pkgs.pinentry-qt;
|
||||||
|
program = "pinentry-qt";
|
||||||
|
};
|
||||||
|
};
|
||||||
# The home.packages option allows you to install Nix packages into your
|
# The home.packages option allows you to install Nix packages into your
|
||||||
# environment.
|
# environment.
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
hello
|
hello
|
||||||
vim
|
# vim
|
||||||
telegram-desktop
|
# telegram-desktop
|
||||||
# vesktop
|
# vesktop
|
||||||
legcord
|
# spotify
|
||||||
pavucontrol
|
# pavucontrol
|
||||||
lazygit
|
lazygit
|
||||||
btop
|
|
||||||
sops
|
sops
|
||||||
alcom
|
|
||||||
gcr
|
|
||||||
qbittorrent
|
|
||||||
intel-gpu-tools
|
|
||||||
];
|
];
|
||||||
|
# sops.age.keyFile = "/home/doloro/.config/sops/age/key.txt";
|
||||||
|
|
||||||
# Home Manager is pretty good at managing dotfiles. The primary way to manage
|
# Home Manager is pretty good at managing dotfiles. The primary way to manage
|
||||||
# plain files is through 'home.file'.
|
# plain files is through 'home.file'.
|
||||||
@@ -132,15 +100,11 @@
|
|||||||
home.sessionVariables = {
|
home.sessionVariables = {
|
||||||
EDITOR = "nvim";
|
EDITOR = "nvim";
|
||||||
};
|
};
|
||||||
services = {
|
# {{{{{ TODO Put in different file
|
||||||
dunst = {
|
# }}}}}
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
xdg.configFile."mimeapps.list".force = true;
|
|
||||||
# Let Home Manager install and manage itself.
|
# Let Home Manager install and manage itself.
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
|
home-manager.enable = true;
|
||||||
ssh = {
|
ssh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableDefaultConfig = false;
|
enableDefaultConfig = false;
|
||||||
@@ -148,12 +112,12 @@
|
|||||||
"*" = {
|
"*" = {
|
||||||
addKeysToAgent = "yes";
|
addKeysToAgent = "yes";
|
||||||
identityFile = [
|
identityFile = [
|
||||||
|
"~/.ssh/id_github"
|
||||||
|
"~/.ssh/id_gitea_scug_io"
|
||||||
"~/.ssh/id_ed25519"
|
"~/.ssh/id_ed25519"
|
||||||
"~/.ssh/id_gitea_scug"
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
home-manager.enable = true;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
59
hosts/doloro-wsl/nixos.nix
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
{
|
||||||
|
inputs,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
user,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
modules = {
|
||||||
|
fish.enable = true;
|
||||||
|
stylix.enable = true;
|
||||||
|
};
|
||||||
|
imports = [
|
||||||
|
inputs.nixos-wsl.nixosModules.default
|
||||||
|
];
|
||||||
|
# rocmSupport = false;
|
||||||
|
programs = {
|
||||||
|
dconf.enable = true;
|
||||||
|
ssh = {
|
||||||
|
startAgent = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
fonts = {
|
||||||
|
enableDefaultPackages = true;
|
||||||
|
packages = with pkgs; [
|
||||||
|
nerd-fonts.jetbrains-mono
|
||||||
|
material-design-icons
|
||||||
|
material-symbols
|
||||||
|
googlesans-code
|
||||||
|
# (inputs.font-patcher.lib.patchFont {
|
||||||
|
# font = pkgs.googlesans-code;
|
||||||
|
# name = "Google Sans Code Nerd Font";
|
||||||
|
# })
|
||||||
|
nerd-fonts.caskaydia-cove
|
||||||
|
nerd-fonts.noto
|
||||||
|
noto-fonts-cjk-sans
|
||||||
|
noto-fonts-cjk-serif
|
||||||
|
];
|
||||||
|
fontDir.enable = true;
|
||||||
|
};
|
||||||
|
networking.dhcpcd.enable = lib.mkOverride 0 false;
|
||||||
|
boot.loader.grub.enable = lib.mkOverride 0 false;
|
||||||
|
wsl = {
|
||||||
|
enable = true;
|
||||||
|
defaultUser = user;
|
||||||
|
docker-desktop.enable = false;
|
||||||
|
useWindowsDriver = true;
|
||||||
|
startMenuLaunchers = true;
|
||||||
|
usbip.enable = true;
|
||||||
|
};
|
||||||
|
nix.settings = {
|
||||||
|
experimental-features = "nix-command flakes";
|
||||||
|
};
|
||||||
|
nixpkgs.config.allowUnsupportedSystem = true;
|
||||||
|
systemd.services."user-runtime-dir@" = {
|
||||||
|
overrideStrategy = "asDropin";
|
||||||
|
unitConfig.ConditionPathExists = "!/run/user/%i";
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -6,30 +6,35 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
|
# imports = [
|
||||||
|
# ../../modules/hyprland/home.nix
|
||||||
|
# ../../modules/quickshell/home.nix
|
||||||
|
# ../../modules/chromium/home.nix
|
||||||
|
# #./modules/neovim/home.nix
|
||||||
|
# ../../modules/stylix/home.nix
|
||||||
|
# ../../modules/nixvim/home.nix
|
||||||
|
# ../../modules/tmux/home.nix
|
||||||
|
# ../../modules/theme/home.nix
|
||||||
|
# # ./modules/spicetify/home.nix
|
||||||
|
# ../../modules/obs/home.nix
|
||||||
|
# ../../modules/blender/home.nix
|
||||||
|
# ../../modules/fish/home.nix
|
||||||
|
# ../../modules/ytm/home.nix
|
||||||
|
# ../../overlays.nix
|
||||||
|
# ];
|
||||||
modules = {
|
modules = {
|
||||||
hyfetch.enable = true;
|
Hyprland.enable = true;
|
||||||
Hyprland = {
|
|
||||||
enable = true;
|
|
||||||
suspend-on-hibernate = true;
|
|
||||||
};
|
|
||||||
niri.enable = false;
|
|
||||||
quickshell.enable = true;
|
quickshell.enable = true;
|
||||||
# chromium.enable = true;
|
# chromium.enable = true;
|
||||||
wivrn.enable = true;
|
wivrn.enable = true;
|
||||||
sops.enable = true;
|
|
||||||
helium.enable = true;
|
helium.enable = true;
|
||||||
nixvim.enable = true;
|
nixvim.enable = true;
|
||||||
helix.enable = false;
|
helix.enable = false;
|
||||||
stylix.enable = true;
|
stylix.enable = true;
|
||||||
kitty.enable = true;
|
|
||||||
tmux.enable = true;
|
tmux.enable = true;
|
||||||
theme.enable = true;
|
theme.enable = true;
|
||||||
obs = {
|
obs.enable = true;
|
||||||
enable = true;
|
|
||||||
autostart = true;
|
|
||||||
};
|
|
||||||
blender.enable = true;
|
blender.enable = true;
|
||||||
zen-browser.enable = false;
|
|
||||||
bottles.enable = true;
|
bottles.enable = true;
|
||||||
fish.enable = true;
|
fish.enable = true;
|
||||||
youtube-music.enable = true;
|
youtube-music.enable = true;
|
||||||
@@ -43,24 +48,6 @@
|
|||||||
home.username = "doloro";
|
home.username = "doloro";
|
||||||
home.homeDirectory = "/home/doloro";
|
home.homeDirectory = "/home/doloro";
|
||||||
|
|
||||||
wayland.windowManager.hyprland.settings = {
|
|
||||||
monitor = [
|
|
||||||
"HDMI-A-1, 1920x1080@60, 0x0, 1"
|
|
||||||
"DP-3, 1920x1080@144, 1920x0, 1"
|
|
||||||
];
|
|
||||||
exec-once = [
|
|
||||||
"hyprctl dispatch workspace 2" # shit solution to get quickshell on the right monitor
|
|
||||||
];
|
|
||||||
workspace = [
|
|
||||||
"name:2, monitor:DP-3"
|
|
||||||
];
|
|
||||||
input = {
|
|
||||||
kb_layout = "gb";
|
|
||||||
follow_mouse = 2;
|
|
||||||
sensitivity = -0.5;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
gpg-agent = {
|
gpg-agent = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -91,17 +78,50 @@
|
|||||||
vim
|
vim
|
||||||
telegram-desktop
|
telegram-desktop
|
||||||
vesktop
|
vesktop
|
||||||
(inputs.protonhax.packages.x86_64-linux.default)
|
# (pkgs.discord.override { withVencord = true; })
|
||||||
|
# webcord-vencord
|
||||||
|
# spotify
|
||||||
pavucontrol
|
pavucontrol
|
||||||
lazygit
|
lazygit
|
||||||
btop
|
btop
|
||||||
sops
|
sops
|
||||||
protontricks
|
|
||||||
alcom
|
alcom
|
||||||
gcr
|
gcr
|
||||||
qbittorrent
|
qbittorrent
|
||||||
(inputs.hytale-launcher.packages.x86_64-linux.default)
|
|
||||||
];
|
];
|
||||||
|
# sops.age.keyFile = "/home/doloro/.config/sops/age/key.txt";
|
||||||
|
|
||||||
|
# Home Manager is pretty good at managing dotfiles. The primary way to manage
|
||||||
|
# plain files is through 'home.file'.
|
||||||
|
home.file = {
|
||||||
|
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
|
||||||
|
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
|
||||||
|
# # symlink to the Nix store copy.
|
||||||
|
# ".screenrc".source = dotfiles/screenrc;
|
||||||
|
|
||||||
|
# # You can also set the file content immediately.
|
||||||
|
# ".gradle/gradle.properties".text = ''
|
||||||
|
# org.gradle.console=verbose
|
||||||
|
# org.gradle.daemon.idletimeout=3600000
|
||||||
|
# '';
|
||||||
|
};
|
||||||
|
|
||||||
|
# Home Manager can also manage your environment variables through
|
||||||
|
# 'home.sessionVariables'. These will be explicitly sourced when using a
|
||||||
|
# shell provided by Home Manager. If you don't want to manage your shell
|
||||||
|
# through Home Manager then you have to manually source 'hm-session-vars.sh'
|
||||||
|
# located at either
|
||||||
|
#
|
||||||
|
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
|
||||||
|
#
|
||||||
|
# or
|
||||||
|
#
|
||||||
|
# ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh
|
||||||
|
#
|
||||||
|
# or
|
||||||
|
#
|
||||||
|
# /etc/profiles/per-user/doloro/etc/profile.d/hm-session-vars.sh
|
||||||
|
#
|
||||||
home.sessionVariables = {
|
home.sessionVariables = {
|
||||||
EDITOR = "nvim";
|
EDITOR = "nvim";
|
||||||
};
|
};
|
||||||
@@ -110,8 +130,8 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
xdg.configFile."mimeapps.list".force = true;
|
xdg.configFile."mimeapps.list".force = true;
|
||||||
|
# Let Home Manager install and manage itself.
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
ssh = {
|
ssh = {
|
||||||
|
|||||||
@@ -23,16 +23,9 @@ in
|
|||||||
stylix.enable = true;
|
stylix.enable = true;
|
||||||
steam.enable = true;
|
steam.enable = true;
|
||||||
Hyprland.enable = true;
|
Hyprland.enable = true;
|
||||||
niri.enable = false;
|
|
||||||
wivrn.enable = true;
|
wivrn.enable = true;
|
||||||
remoteBuild.become-remote-builder = true;
|
|
||||||
fonts.enable = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
services.resolved.enable = true;
|
|
||||||
|
|
||||||
services.gnome.gnome-keyring.enable = true;
|
|
||||||
|
|
||||||
# Use the systemd-boot EFI boot loader.
|
# Use the systemd-boot EFI boot loader.
|
||||||
boot.loader.grub.enable = true;
|
boot.loader.grub.enable = true;
|
||||||
boot.loader.grub.device = "nodev";
|
boot.loader.grub.device = "nodev";
|
||||||
@@ -49,14 +42,10 @@ in
|
|||||||
"https://nix-community.cachix.org"
|
"https://nix-community.cachix.org"
|
||||||
"https://cache.nixos.org/"
|
"https://cache.nixos.org/"
|
||||||
"https://attic.scug.io/pkgs"
|
"https://attic.scug.io/pkgs"
|
||||||
"https://cache.nixos-cuda.org"
|
|
||||||
"https://niri.cachix.org"
|
|
||||||
];
|
];
|
||||||
trusted-public-keys = [
|
trusted-public-keys = [
|
||||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||||
"pkgs:+sRbfiZMMX5R3PuAPtIRz/emowDoGZNpozibrnrAvuc="
|
"pkgs:+sRbfiZMMX5R3PuAPtIRz/emowDoGZNpozibrnrAvuc="
|
||||||
"cache.nixos-cuda.org:74DUi4Ye579gUqzH4ziL9IyiJBlDpMRn9MBN8oNan9M="
|
|
||||||
"niri.cachix.org-1:Wv0OmO7PsuocRKzfDoJ3mulSl7Z6oezYhGhR+3W2964="
|
|
||||||
];
|
];
|
||||||
experimental-features = [
|
experimental-features = [
|
||||||
"flakes"
|
"flakes"
|
||||||
@@ -93,7 +82,6 @@ in
|
|||||||
security.rtkit.enable = true;
|
security.rtkit.enable = true;
|
||||||
|
|
||||||
sops = {
|
sops = {
|
||||||
# age.keyFile = "/etc/ssh/ssh_host_ed25519_key";
|
|
||||||
defaultSopsFile = builtins.toPath "${nix-meow.flakeRoot}/secrets/users.yaml";
|
defaultSopsFile = builtins.toPath "${nix-meow.flakeRoot}/secrets/users.yaml";
|
||||||
secrets = {
|
secrets = {
|
||||||
root-hashed_password = {
|
root-hashed_password = {
|
||||||
@@ -186,29 +174,29 @@ in
|
|||||||
package = config.boot.kernelPackages.nvidiaPackages.latest;
|
package = config.boot.kernelPackages.nvidiaPackages.latest;
|
||||||
};
|
};
|
||||||
|
|
||||||
# fonts = {
|
fonts = {
|
||||||
# enableDefaultPackages = true;
|
enableDefaultPackages = true;
|
||||||
# packages =
|
packages =
|
||||||
# with pkgs;
|
with pkgs;
|
||||||
# [
|
[
|
||||||
# nerd-fonts.jetbrains-mono
|
nerd-fonts.jetbrains-mono
|
||||||
# material-design-icons
|
material-design-icons
|
||||||
# material-symbols
|
material-symbols
|
||||||
# googlesans-code
|
googlesans-code
|
||||||
# nerd-fonts.caskaydia-cove
|
nerd-fonts.caskaydia-cove
|
||||||
# nerd-fonts.noto
|
nerd-fonts.noto
|
||||||
# noto-fonts-cjk-sans
|
noto-fonts-cjk-sans
|
||||||
# noto-fonts-cjk-serif
|
noto-fonts-cjk-serif
|
||||||
# ]
|
]
|
||||||
# ++ [
|
++ [
|
||||||
# (inputs.font-patcher.lib.patchFont {
|
(inputs.font-patcher.lib.patchFont {
|
||||||
# font = "${pkgs.googlesans-code}/share/fonts/googlesans-code/GoogleSansCode[wght].ttf";
|
font = "${pkgs.googlesans-code}/share/fonts/googlesans-code/GoogleSansCode[wght].ttf";
|
||||||
# name = "Google Sans Code Nerd Font";
|
name = "Google Sans Code Nerd Font";
|
||||||
# inherit system;
|
inherit system;
|
||||||
# })
|
})
|
||||||
# ];
|
];
|
||||||
# fontDir.enable = true;
|
fontDir.enable = true;
|
||||||
# };
|
};
|
||||||
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
|
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
|
||||||
programs.nix-ld.enable = true;
|
programs.nix-ld.enable = true;
|
||||||
programs.nix-ld.libraries = with pkgs; [
|
programs.nix-ld.libraries = with pkgs; [
|
||||||
@@ -236,8 +224,8 @@ in
|
|||||||
programs = {
|
programs = {
|
||||||
ssh = {
|
ssh = {
|
||||||
# enable = true;
|
# enable = true;
|
||||||
# startAgent = true;
|
extraConfig = "AddKeysToAgent yes";
|
||||||
|
startAgent = true;
|
||||||
};
|
};
|
||||||
fish.enable = true;
|
fish.enable = true;
|
||||||
};
|
};
|
||||||
@@ -255,7 +243,6 @@ in
|
|||||||
extraGroups = [
|
extraGroups = [
|
||||||
"wheel"
|
"wheel"
|
||||||
"dialout"
|
"dialout"
|
||||||
"networkmanager"
|
|
||||||
]; # Enable ‘sudo’ for the user.
|
]; # Enable ‘sudo’ for the user.
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
tree
|
tree
|
||||||
@@ -274,7 +261,6 @@ in
|
|||||||
wget
|
wget
|
||||||
killall
|
killall
|
||||||
sops
|
sops
|
||||||
seahorse
|
|
||||||
];
|
];
|
||||||
|
|
||||||
# Some programs need SUID wrappers, can be configured further or are
|
# Some programs need SUID wrappers, can be configured further or are
|
||||||
|
|||||||
@@ -1,54 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
fetchFromGitHub,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
modules = {
|
|
||||||
hyfetch.enable = true;
|
|
||||||
sops.enable = true;
|
|
||||||
nixvim.enable = true;
|
|
||||||
tmux.enable = true;
|
|
||||||
# theme.enable = true;
|
|
||||||
fish.enable = true;
|
|
||||||
direnv.enable = true;
|
|
||||||
git.enable = true;
|
|
||||||
};
|
|
||||||
# Home Manager needs a bit of information about you and the paths it should
|
|
||||||
# manage.
|
|
||||||
home.username = "doloro";
|
|
||||||
home.homeDirectory = "/home/doloro";
|
|
||||||
|
|
||||||
# services = {
|
|
||||||
# };
|
|
||||||
|
|
||||||
# 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 should not change this value, even if you update Home Manager. If you do
|
|
||||||
# want to update the value, then make sure to first check the Home Manager
|
|
||||||
# release notes.
|
|
||||||
home.stateVersion = "25.11"; # Please read the comment before changing.
|
|
||||||
|
|
||||||
# The home.packages option allows you to install Nix packages into your
|
|
||||||
# environment.
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
hello
|
|
||||||
vim
|
|
||||||
lazygit
|
|
||||||
btop
|
|
||||||
sops
|
|
||||||
];
|
|
||||||
home.sessionVariables = {
|
|
||||||
EDITOR = "nvim";
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.configFile."mimeapps.list".force = true;
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
home-manager.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,99 +0,0 @@
|
|||||||
{
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
inputs,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
rpi-pi = inputs.raspberry-pi-nix;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
# To build an sd-card image
|
|
||||||
# $ nix build .#nixosConfigurations.rpi-5-rpi-5-aarch64-linux.config.system.build.sdImage --json &| nom
|
|
||||||
# $ sudo dd if=./result/sd-image/nixos-sd-image-26.05.20260120.80e4adb-aarch64-linux.img of=/dev/sdc conv=fsync status=progress
|
|
||||||
|
|
||||||
imports = [
|
|
||||||
rpi-pi.nixosModules.raspberry-pi
|
|
||||||
rpi-pi.nixosModules.sd-image
|
|
||||||
./containers.nix
|
|
||||||
];
|
|
||||||
nix.settings = {
|
|
||||||
substituters = [ "https://nix-community.cachix.org" ];
|
|
||||||
trusted-public-keys = [ "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
services.traefik = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
staticConfigOptions = {
|
|
||||||
entryPoints = {
|
|
||||||
web = {
|
|
||||||
address = ":80";
|
|
||||||
http.redirections.entrypoint = {
|
|
||||||
to = "websecure";
|
|
||||||
scheme = "https";
|
|
||||||
};
|
|
||||||
asDefault = true;
|
|
||||||
};
|
|
||||||
websecure = {
|
|
||||||
address = ":443";
|
|
||||||
asDefault = true;
|
|
||||||
http.tls.certResolver = "letsencrypt";
|
|
||||||
};
|
|
||||||
traefik = {
|
|
||||||
address = ":8081";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
certificatesResolvers.letsencrypt.acme = {
|
|
||||||
email = "doloroo@proton.me";
|
|
||||||
storage = "${config.services.traefik.dataDir}/acme.json";
|
|
||||||
httpChallenge.entryPoint = "web";
|
|
||||||
};
|
|
||||||
api.dashboard = true;
|
|
||||||
api.insecure = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# TEMP
|
|
||||||
networking.firewall.enable = false;
|
|
||||||
|
|
||||||
users = {
|
|
||||||
mutableUsers = false;
|
|
||||||
users.doloro = {
|
|
||||||
isNormalUser = true;
|
|
||||||
extraGroups = [ "wheel" ];
|
|
||||||
openssh.authorizedKeys.keys = [
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE/4h+WCBBW82puv8SMdUbkWymF4amEMuZitgFztB6oZ" # laptop pub key
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBaa6Z5qtBSLEz+A4fQGYPfkOISsRQlmKkVbcx2zxML7" # pc pub key
|
|
||||||
];
|
|
||||||
initialPassword = "meowmeowmeow";
|
|
||||||
};
|
|
||||||
users.root = {
|
|
||||||
initialPassword = "rootmeow";
|
|
||||||
openssh.authorizedKeys.keys = [
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE/4h+WCBBW82puv8SMdUbkWymF4amEMuZitgFztB6oZ" # laptop pub key
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBaa6Z5qtBSLEz+A4fQGYPfkOISsRQlmKkVbcx2zxML7" # pc pub key
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
networking.hostName = "nixos-001-rp5";
|
|
||||||
|
|
||||||
services.openssh.enable = true;
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
libraspberrypi
|
|
||||||
];
|
|
||||||
|
|
||||||
sdImage.compressImage = false;
|
|
||||||
|
|
||||||
raspberry-pi-nix.board = "bcm2712"; # Rpi 5 - 64bit
|
|
||||||
# We need to rebuild kernel for 6.12
|
|
||||||
# raspberry-pi-nix.kernel-version = "v6_12_17";
|
|
||||||
raspberry-pi-nix.uboot.enable = false;
|
|
||||||
|
|
||||||
hardware.enableRedistributableFirmware = true;
|
|
||||||
system.stateVersion = "25.11";
|
|
||||||
nixpkgs.hostPlatform = "aarch64-linux";
|
|
||||||
}
|
|
||||||
1
meow.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
age1e6vws55p0g23qzthm4qa93hpt6lqmck6670gkygph0sc0j7my4uq5wqjfh
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
_: {
|
|
||||||
home = ./home.nix;
|
|
||||||
# nixos: ./nixos.nix;
|
|
||||||
}
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.alecaframe;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
# You gotta install it into prefix yourself. this just makes a desktop file
|
|
||||||
options.modules.alecaframe = {
|
|
||||||
enable = lib.mkEnableOption "";
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
xdg.desktopEntries = {
|
|
||||||
alecaframe = {
|
|
||||||
name = "Alecaframe";
|
|
||||||
comment = "launches alecaframe";
|
|
||||||
exec = ''
|
|
||||||
protonhax run 230410 "
|
|
||||||
/home/branden/.local/share/Steam/steamapps/compatdata/230410/pfx/drive_c/users/steamuser/AppData/Roaming/Microsoft/Windows/Start
|
|
||||||
Menu/Programs/Overwolf/AlecaFrame.lnk
|
|
||||||
"
|
|
||||||
'';
|
|
||||||
# icon = "system-reboot";
|
|
||||||
terminal = false;
|
|
||||||
type = "Application";
|
|
||||||
categories = [ "System" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
_: {
|
|
||||||
home = ./home.nix;
|
|
||||||
# nixos: ./nixos.nix;
|
|
||||||
}
|
|
||||||
@@ -1,62 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
home,
|
|
||||||
system,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
# system: "base16"
|
|
||||||
# name: "Gruvbox dark, hard"
|
|
||||||
# author: "Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox)"
|
|
||||||
# variant: "dark"
|
|
||||||
let
|
|
||||||
hexToInt = hex: fromTOML "value = 0x${hex}";
|
|
||||||
hexToRgb =
|
|
||||||
hex:
|
|
||||||
let
|
|
||||||
red = hexToInt (builtins.substring 1 2 hex);
|
|
||||||
green = hexToInt (builtins.substring 3 2 hex);
|
|
||||||
blue = hexToInt (builtins.substring 5 2 hex);
|
|
||||||
in
|
|
||||||
{
|
|
||||||
r = red.value;
|
|
||||||
g = green.value;
|
|
||||||
b = blue.value;
|
|
||||||
};
|
|
||||||
theme =
|
|
||||||
let
|
|
||||||
importYaml =
|
|
||||||
file:
|
|
||||||
builtins.fromJSON (
|
|
||||||
builtins.readFile (
|
|
||||||
pkgs.runCommandNoCC "converted-yaml.json" { } ''
|
|
||||||
${pkgs.yj}/bin/yj < ${file} > $out
|
|
||||||
''
|
|
||||||
)
|
|
||||||
);
|
|
||||||
# EDIT THEME HERE
|
|
||||||
themeFile = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-hard.yaml";
|
|
||||||
in
|
|
||||||
importYaml themeFile;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.base16 = {
|
|
||||||
hex = lib.mkOption {
|
|
||||||
type = lib.types.attrs;
|
|
||||||
description = ''
|
|
||||||
Hexadecimal color configuration for Gruvbox dark, hard Base16 theme.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
rgb = lib.mkOption {
|
|
||||||
type = lib.types.attrs;
|
|
||||||
description = ''
|
|
||||||
Hexadecimal color configuration for Gruvbox dark, hard Base16 theme.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config.modules.base16.hex = theme.palette;
|
|
||||||
config.modules.base16.rgb = builtins.mapAttrs (_name: hex: hexToRgb hex) theme.palette;
|
|
||||||
}
|
|
||||||
@@ -30,7 +30,7 @@ in
|
|||||||
# whole blender config including addons is too fat to include here
|
# whole blender config including addons is too fat to include here
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
home.packages = [
|
home.packages = [
|
||||||
blenderPkgs.blender_4_5
|
blender_4_5
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
# nix'ing a blender config is most likely not possible
|
# nix'ing a blender config is most likely not possible
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
_: {
|
|
||||||
home = ./home.nix;
|
|
||||||
nixos = ./nixos.nix;
|
|
||||||
}
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
fetchFromGitHub,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.remoteBuild;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.remoteBuild = {
|
|
||||||
use-remote-builders = lib.mkEnableOption "remoteBuild";
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.use-remote-builders {
|
|
||||||
nix.package = pkgs.nix;
|
|
||||||
nix.distributedBuilds = true;
|
|
||||||
nix.settings.builders-use-substitutes = true;
|
|
||||||
|
|
||||||
# Define every build machine here..
|
|
||||||
nix.buildMachines = [
|
|
||||||
{
|
|
||||||
# Main desktop pc
|
|
||||||
# ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKqsFEgtcTDw89GaZJg8P/FE1xngIXmiUZl8j0b+V7n+ root@doloroo-main
|
|
||||||
hostName = "doloroo-main";
|
|
||||||
sshUser = "remotebuild";
|
|
||||||
sshKey = "/root/.ssh/remotebuild";
|
|
||||||
# protocol = "ssh-ng";
|
|
||||||
maxJobs = 8;
|
|
||||||
speedFactor = 2;
|
|
||||||
supportedFeatures = [
|
|
||||||
"nixos-test"
|
|
||||||
"big-parallel"
|
|
||||||
"kvm"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,62 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.remoteBuild;
|
|
||||||
remoteBuilder = lib.mkIf cfg.become-remote-builder {
|
|
||||||
users.users.remotebuild = {
|
|
||||||
isSystemUser = true;
|
|
||||||
shell = pkgs.bashInteractive;
|
|
||||||
group = "remotebuild";
|
|
||||||
# useDefaultShell = true;
|
|
||||||
|
|
||||||
# ssh-keygen -f /root/.ssh/remotebuild
|
|
||||||
openssh.authorizedKeys.keyFiles = [ ./remotebuild.pub ];
|
|
||||||
openssh.authorizedKeys.keys = [
|
|
||||||
# Laptop-system
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE/4h+WCBBW82puv8SMdUbkWymF4amEMuZitgFztB6oZ doloroo@proton.me"
|
|
||||||
# Laptop-user-doloro
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOuNlm8vq6MvWsVU/RW4oq7npQngjIxNFpjEWbAS/8H2 root@doloro-nixos-laptop"
|
|
||||||
];
|
|
||||||
initialPassword = "remotebuilder";
|
|
||||||
};
|
|
||||||
|
|
||||||
users.groups.remotebuild = { };
|
|
||||||
|
|
||||||
nix.settings.trusted-users = [ "remotebuild" ];
|
|
||||||
};
|
|
||||||
useBulders = lib.mkIf cfg.use-remote-builders {
|
|
||||||
nix.distributedBuilds = true;
|
|
||||||
nix.settings.builders-use-substitutes = true;
|
|
||||||
|
|
||||||
# Define every build machine here..
|
|
||||||
# also define in home manager (TODO make a single file with all builders)
|
|
||||||
nix.buildMachines = [
|
|
||||||
{
|
|
||||||
# Main desktop pc
|
|
||||||
# ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKqsFEgtcTDw89GaZJg8P/FE1xngIXmiUZl8j0b+V7n+ root@doloroo-main
|
|
||||||
hostName = "doloroo-main";
|
|
||||||
sshUser = "remotebuild";
|
|
||||||
sshKey = "/root/.ssh/remotebuild";
|
|
||||||
system = "x86_64-linux";
|
|
||||||
maxJobs = 8;
|
|
||||||
speedFactor = 2;
|
|
||||||
supportedFeatures = [
|
|
||||||
"nixos-test"
|
|
||||||
"big-parallel"
|
|
||||||
"kvm"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.remoteBuild = {
|
|
||||||
use-remote-builders = lib.mkEnableOption "remoteBuild";
|
|
||||||
become-remote-builder = lib.mkEnableOption "remoteBuild";
|
|
||||||
};
|
|
||||||
config = lib.attrsets.recursiveUpdate useBulders remoteBuilder;
|
|
||||||
}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKqsFEgtcTDw89GaZJg8P/FE1xngIXmiUZl8j0b+V7n+ root@doloroo-main
|
|
||||||
@@ -2,10 +2,7 @@
|
|||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
hostname,
|
|
||||||
nix-meow,
|
|
||||||
fetchFromGitHub,
|
fetchFromGitHub,
|
||||||
system,
|
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
@@ -17,7 +14,6 @@ in
|
|||||||
};
|
};
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
home.shell.enableFishIntegration = true;
|
home.shell.enableFishIntegration = true;
|
||||||
home.packages = [ pkgs.nix-output-monitor ];
|
|
||||||
programs = {
|
programs = {
|
||||||
fish = {
|
fish = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -27,8 +23,6 @@ in
|
|||||||
set -g theme_display_user yes
|
set -g theme_display_user yes
|
||||||
set -g fish_color_autosuggestion 6F6578
|
set -g fish_color_autosuggestion 6F6578
|
||||||
alias nik 'nix'
|
alias nik 'nix'
|
||||||
alias nos 'sudo echo; sudo nixos-rebuild switch --flake .#${hostname}-${system} --log-format internal-json -v &| nom --json'
|
|
||||||
alias hms 'home-manager switch --flake .#${hostname}-${system} --log-format internal-json -v &| nom --json'
|
|
||||||
'';
|
'';
|
||||||
plugins = [
|
plugins = [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
_: {
|
|
||||||
# home = ./home.nix;
|
|
||||||
nixos = ./nixos.nix;
|
|
||||||
}
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.fonts;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.fonts = {
|
|
||||||
enable = lib.mkEnableOption "fonts";
|
|
||||||
};
|
|
||||||
config.fonts = lib.mkIf cfg.enable {
|
|
||||||
enableDefaultPackages = true;
|
|
||||||
packages =
|
|
||||||
with pkgs;
|
|
||||||
[
|
|
||||||
nerd-fonts.jetbrains-mono
|
|
||||||
material-design-icons
|
|
||||||
material-symbols
|
|
||||||
googlesans-code
|
|
||||||
nerd-fonts.caskaydia-cove
|
|
||||||
nerd-fonts.noto
|
|
||||||
noto-fonts-cjk-sans
|
|
||||||
noto-fonts-cjk-serif
|
|
||||||
]
|
|
||||||
++ [
|
|
||||||
(inputs.font-patcher.lib.patchFont {
|
|
||||||
font = "${pkgs.googlesans-code}/share/fonts/googlesans-code/GoogleSansCode[wght].ttf";
|
|
||||||
name = "Google Sans Code Nerd Font";
|
|
||||||
inherit system;
|
|
||||||
})
|
|
||||||
];
|
|
||||||
fontDir.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -9,6 +9,7 @@
|
|||||||
let
|
let
|
||||||
cfg = config.modules.helium;
|
cfg = config.modules.helium;
|
||||||
# packageNix = "${inputs.nixpkgs-gamescope}/pkgs/by-name/he/helium-browser/package.nix";
|
# packageNix = "${inputs.nixpkgs-gamescope}/pkgs/by-name/he/helium-browser/package.nix";
|
||||||
|
# helium = inputs.nikkuss-pkgs.callPackage packageNix { };
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.modules.helium = {
|
options.modules.helium = {
|
||||||
@@ -16,11 +17,14 @@ in
|
|||||||
};
|
};
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
home.packages = [
|
home.packages = [
|
||||||
inputs.heliumFlake.packages.x86_64-linux.helium
|
inputs.nikkuss-pkgs.packages.x86_64-linux.helium-browser
|
||||||
];
|
];
|
||||||
# Gives me widevine support. yay
|
# xdg.mimeApps.defaultApplications = {
|
||||||
xdg.configFile."net.imput.helium/WidevineCdm/latest-component-updated-widevine-cdm" = {
|
# "text/html" = "chromium.desktop";
|
||||||
text = ''{"Path":"${pkgs.widevine-cdm}/share/google/chrome/WidevineCdm"}'';
|
# "x-scheme-handler/http" = "chromium.desktop";
|
||||||
};
|
# "x-scheme-handler/https" = "chromium.desktop";
|
||||||
|
# "x-scheme-handler/about" = "chromium.desktop";
|
||||||
|
# "x-scheme-handler/unknown" = "chromium.desktop";
|
||||||
|
# };
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
_: {
|
|
||||||
home = ./home.nix;
|
|
||||||
# nixos = ./nixos.nix;
|
|
||||||
}
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
fetchFromGitHub,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.hyfetch;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.hyfetch = {
|
|
||||||
enable = lib.mkEnableOption "hyfetch";
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
home.packages = [ pkgs.fastfetch ];
|
|
||||||
programs.hyfetch = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
"preset" = "bisexual";
|
|
||||||
"mode" = "rgb";
|
|
||||||
"auto_detect_light_dark" = true;
|
|
||||||
"light_dark" = "dark";
|
|
||||||
"lightness" = 0.5;
|
|
||||||
"color_align" = {
|
|
||||||
"mode" = "custom";
|
|
||||||
"custom_colors" = {
|
|
||||||
"1" = 1;
|
|
||||||
"2" = 0;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
"backend" = "fastfetch";
|
|
||||||
"args" = null;
|
|
||||||
"distro" = null;
|
|
||||||
"pride_month_disable" = false;
|
|
||||||
"custom_ascii_path" = null;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.fish;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.fish = {
|
|
||||||
enable = lib.mkEnableOption "Fish";
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
users.defaultUserShell = pkgs.fish;
|
|
||||||
programs.fish = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -28,7 +28,6 @@ in
|
|||||||
];
|
];
|
||||||
options.modules.Hyprland = {
|
options.modules.Hyprland = {
|
||||||
enable = lib.mkEnableOption "Hyprland";
|
enable = lib.mkEnableOption "Hyprland";
|
||||||
suspend-on-hibernate = lib.mkEnableOption "soh";
|
|
||||||
};
|
};
|
||||||
# TODO, split this into its own module;
|
# TODO, split this into its own module;
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
@@ -42,53 +41,25 @@ in
|
|||||||
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
|
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
|
||||||
};
|
};
|
||||||
programs = {
|
programs = {
|
||||||
hyprlock = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
wlogout = {
|
wlogout = {
|
||||||
enable = true;
|
enable = true;
|
||||||
layout = [
|
};
|
||||||
{
|
foot = {
|
||||||
"label" = "lock";
|
enable = true;
|
||||||
"action" = "hyprlock";
|
settings = {
|
||||||
"text" = "Lock";
|
main = {
|
||||||
"keybind" = "l";
|
term = "xterm-256color";
|
||||||
}
|
|
||||||
{
|
font = "Google Sans Code Nerd Font:size=11";
|
||||||
"label" = "hibernate";
|
};
|
||||||
"action" = "systemctl hibernate";
|
|
||||||
"text" = "Hibernate";
|
mouse = {
|
||||||
"keybind" = "h";
|
hide-when-typing = "yes";
|
||||||
}
|
|
||||||
{
|
|
||||||
"label" = "logout";
|
|
||||||
"action" = "uwsm stop";
|
|
||||||
"text" = "Logout";
|
|
||||||
"keybind" = "e";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
# TODO add hypr shutdown
|
|
||||||
"label" = "shutdown";
|
|
||||||
"action" = "systemctl poweroff";
|
|
||||||
"text" = "Shutdown";
|
|
||||||
"keybind" = "s";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
"label" = "suspend";
|
|
||||||
"action" = "systemctl suspend";
|
|
||||||
"text" = "Suspend";
|
|
||||||
"keybind" = "u";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
"label" = "reboot";
|
|
||||||
"action" = "systemctl reboot";
|
|
||||||
"text" = "Reboot";
|
|
||||||
"keybind" = "r";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
systemd.user.services."hyprland_suspend" = lib.mkIf cfg.suspend-on-hibernate {
|
};
|
||||||
|
};
|
||||||
|
systemd.user.services."hyprland_suspend" = {
|
||||||
Unit = {
|
Unit = {
|
||||||
Description = "Suspend hyprland";
|
Description = "Suspend hyprland";
|
||||||
Before = [
|
Before = [
|
||||||
|
|||||||
@@ -7,7 +7,6 @@
|
|||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
cfg = config.modules.Hyprland;
|
cfg = config.modules.Hyprland;
|
||||||
pkgs-unstable = inputs.hyprland.inputs.nixpkgs.legacyPackages.${pkgs.stdenv.hostPlatform.system};
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.modules.Hyprland = {
|
options.modules.Hyprland = {
|
||||||
@@ -15,9 +14,21 @@ in
|
|||||||
};
|
};
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
programs.xwayland.enable = true;
|
programs.xwayland.enable = true;
|
||||||
|
boot.kernelParams = [
|
||||||
|
"resume=UUID=d9b81619-5772-4ac4-bcd5-552e1e784f9e"
|
||||||
|
"resume_offset=141042944"
|
||||||
|
];
|
||||||
|
boot.resumeDevice = "/dev/disk/by-uuid/d9b81619-5772-4ac4-bcd5-552e1e784f9e";
|
||||||
|
powerManagement.enable = true;
|
||||||
|
swapDevices = [
|
||||||
|
# [[ Hibernate ]]
|
||||||
|
{
|
||||||
|
device = "/var/lib/swapfile";
|
||||||
|
size = 48 * 1024; # 48GB in MB
|
||||||
|
}
|
||||||
|
];
|
||||||
programs.hyprland = {
|
programs.hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
withUWSM = true;
|
|
||||||
# set the flake package
|
# set the flake package
|
||||||
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
||||||
# make sure to also set the portal package, so that they are in sync
|
# make sure to also set the portal package, so that they are in sync
|
||||||
@@ -33,12 +44,5 @@ in
|
|||||||
substituters = [ "https://hyprland.cachix.org" ];
|
substituters = [ "https://hyprland.cachix.org" ];
|
||||||
trusted-public-keys = [ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" ];
|
trusted-public-keys = [ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" ];
|
||||||
};
|
};
|
||||||
hardware.graphics = {
|
|
||||||
package = pkgs-unstable.mesa;
|
|
||||||
|
|
||||||
# if you also want 32-bit support (e.g for Steam)
|
|
||||||
# enable32Bit = true;
|
|
||||||
# package32 = pkgs-unstable.pkgsi686Linux.mesa;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,41 +1,16 @@
|
|||||||
{ inputs, pkgs, ... }:
|
{ inputs, pkgs, ... }:
|
||||||
let
|
|
||||||
config = pkgs.writeTextFile {
|
|
||||||
name = "config";
|
|
||||||
text = ''
|
|
||||||
width = 100%
|
|
||||||
height = 100%
|
|
||||||
border-width = 0
|
|
||||||
outline-width = 0
|
|
||||||
padding-left = 35%
|
|
||||||
padding-top = 35%
|
|
||||||
result-spacing = 25
|
|
||||||
num-results = 5
|
|
||||||
font = monospace
|
|
||||||
background-color = #000A
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
script = pkgs.writeShellScript "mreow" ''
|
|
||||||
exec $(tofi-drun -c ${config})
|
|
||||||
'';
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
home.packages = [
|
home.packages = [
|
||||||
pkgs.tofi
|
pkgs.walker
|
||||||
];
|
|
||||||
wayland.windowManager.hyprland.settings = {
|
|
||||||
bind = [
|
|
||||||
"$mainMod, R, exec, ${script}"
|
|
||||||
];
|
];
|
||||||
|
systemd.user.services.walker-deamon = {
|
||||||
|
Install = {
|
||||||
|
WantedBy = [ "hyprland-session.target" ];
|
||||||
|
};
|
||||||
|
Service = {
|
||||||
|
ExecStart = "${pkgs.writeShellScript "watch-store" ''
|
||||||
|
walker --gapplication-service
|
||||||
|
''}";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
# systemd.user.services.hyprlauncher-deamon = {
|
|
||||||
# Install = {
|
|
||||||
# WantedBy = [ "hyprland-session.target" ];
|
|
||||||
# };
|
|
||||||
# Service = {
|
|
||||||
# ExecStart = "${pkgs.writeShellScript "watch-store" ''
|
|
||||||
# hyprlauncher -d
|
|
||||||
# ''}";
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,5 @@ in
|
|||||||
wayfreeze
|
wayfreeze
|
||||||
grim
|
grim
|
||||||
slurp
|
slurp
|
||||||
killall
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,4 @@
|
|||||||
{
|
{ inputs, pkgs, ... }:
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
base16 = config.modules.base16;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
home.packages = [
|
home.packages = [
|
||||||
pkgs.hyprcursor
|
pkgs.hyprcursor
|
||||||
@@ -19,6 +11,13 @@ in
|
|||||||
hyprcursor.enable = true;
|
hyprcursor.enable = true;
|
||||||
};
|
};
|
||||||
wayland.windowManager.hyprland.settings = {
|
wayland.windowManager.hyprland.settings = {
|
||||||
|
monitor = [
|
||||||
|
"HDMI-A-1, 1920x1080@60, 0x0, 1"
|
||||||
|
"DP-3, 1920x1080@144, 1920x0, 1"
|
||||||
|
];
|
||||||
|
exec-once = [
|
||||||
|
"hyprctl dispatch workspace 2" # shit solution to get quickshell on the right monitor
|
||||||
|
];
|
||||||
env = [
|
env = [
|
||||||
"XCURSOR_THEME,BreezeX-RosePine-Linux"
|
"XCURSOR_THEME,BreezeX-RosePine-Linux"
|
||||||
"XCURSOR_SIZE,24"
|
"XCURSOR_SIZE,24"
|
||||||
@@ -31,16 +30,14 @@ in
|
|||||||
gaps_in = 1;
|
gaps_in = 1;
|
||||||
gaps_out = 1;
|
gaps_out = 1;
|
||||||
border_size = 1;
|
border_size = 1;
|
||||||
"col.active_border" =
|
# col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
|
||||||
"rgb(${toString base16.rgb."base06".r},${toString base16.rgb."base06".g},${toString base16.rgb."base06".b})";
|
# col.inactive_border = rgba(595959aa)
|
||||||
"col.inactive_border" =
|
|
||||||
"rgb(${toString base16.rgb."base03".r},${toString base16.rgb."base03".g},${toString base16.rgb."base03".b})";
|
|
||||||
resize_on_border = false;
|
resize_on_border = false;
|
||||||
allow_tearing = true;
|
allow_tearing = true;
|
||||||
layout = "dwindle";
|
layout = "dwindle";
|
||||||
};
|
};
|
||||||
decoration = {
|
decoration = {
|
||||||
rounding = 4;
|
rounding = 0;
|
||||||
rounding_power = 1;
|
rounding_power = 1;
|
||||||
active_opacity = 1.0;
|
active_opacity = 1.0;
|
||||||
inactive_opacity = 1.0;
|
inactive_opacity = 1.0;
|
||||||
@@ -50,10 +47,7 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
blur = {
|
blur = {
|
||||||
enabled = true;
|
enabled = false;
|
||||||
passes = 1;
|
|
||||||
new_optimizations = true;
|
|
||||||
ignore_opacity = false;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
animations = {
|
animations = {
|
||||||
@@ -69,20 +63,19 @@ in
|
|||||||
"global, 1, 10, default"
|
"global, 1, 10, default"
|
||||||
"border, 1, 5.39, easeOutQuint"
|
"border, 1, 5.39, easeOutQuint"
|
||||||
"windows, 1, 2.79, easeOutQuint"
|
"windows, 1, 2.79, easeOutQuint"
|
||||||
"windowsIn, 1, 1, easeOutQuint, popin 87%"
|
"windowsIn, 1, 1.1, easeOutQuint, popin 87%"
|
||||||
"windowsOut, 1, 1, linear, popin 87%"
|
"windowsOut, 1, 1.49, linear, popin 87%"
|
||||||
"windowsMove, 1, 1, easeInOutCubic"
|
"fadeIn, 1, 1.73, almostLinear"
|
||||||
"fadeIn, 1, 0.5, almostLinear"
|
"fadeOut, 1, 1.46, almostLinear"
|
||||||
"fadeOut, 1, 0.5, almostLinear"
|
"fade, 1, 2.03, quick"
|
||||||
"fade, 1, 1, quick"
|
|
||||||
"layers, 1, 3.81, easeOutQuint"
|
"layers, 1, 3.81, easeOutQuint"
|
||||||
"layersIn, 1, 4, easeOutQuint, fade"
|
"layersIn, 1, 4, easeOutQuint, fade"
|
||||||
"layersOut, 1, 1.5, linear, fade"
|
"layersOut, 1, 1.5, linear, fade"
|
||||||
"fadeLayersIn, 1, 1.79, almostLinear"
|
"fadeLayersIn, 1, 1.79, almostLinear"
|
||||||
"fadeLayersOut, 1, 1.39, almostLinear"
|
"fadeLayersOut, 1, 1.39, almostLinear"
|
||||||
"workspaces, 1, 1, almostLinear, slide"
|
"workspaces, 1, 1.94, almostLinear, fade"
|
||||||
"workspacesIn, 1, 1, easeInOutCubic, slide"
|
"workspacesIn, 1, 1.21, almostLinear, fade"
|
||||||
"workspacesOut, 1, 1, easeInOutCubic, slide"
|
"workspacesOut, 1, 1.94, almostLinear, fade"
|
||||||
"zoomFactor, 1, 7, quick"
|
"zoomFactor, 1, 7, quick"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
@@ -99,12 +92,19 @@ in
|
|||||||
enable_anr_dialog = false;
|
enable_anr_dialog = false;
|
||||||
vfr = true;
|
vfr = true;
|
||||||
};
|
};
|
||||||
|
input = {
|
||||||
|
kb_layout = "gb";
|
||||||
|
follow_mouse = 2;
|
||||||
|
sensitivity = -0.5;
|
||||||
|
};
|
||||||
"$mainMod" = "SUPER";
|
"$mainMod" = "SUPER";
|
||||||
bind = [
|
bind = [
|
||||||
|
"$mainMod, Q, exec, foot"
|
||||||
"$mainMod, C, killactive"
|
"$mainMod, C, killactive"
|
||||||
"$mainMod, M, exec, uwsm stop"
|
"$mainMod, M, exit"
|
||||||
"$mainMod, E, exec, $fileManager"
|
"$mainMod, E, exec, $fileManager"
|
||||||
"$mainMod, V, togglefloating,"
|
"$mainMod, V, togglefloating,"
|
||||||
|
"$mainMod, R, exec, walker"
|
||||||
"$mainMod, P, pseudo, # dwindle"
|
"$mainMod, P, pseudo, # dwindle"
|
||||||
"$mainMod, J, togglesplit, # dwindle"
|
"$mainMod, J, togglesplit, # dwindle"
|
||||||
"$mainMod, left, movefocus, l"
|
"$mainMod, left, movefocus, l"
|
||||||
@@ -141,11 +141,14 @@ in
|
|||||||
"$mainMod, mouse:272, movewindow"
|
"$mainMod, mouse:272, movewindow"
|
||||||
"$mainMod, mouse:273, resizewindow"
|
"$mainMod, mouse:273, resizewindow"
|
||||||
];
|
];
|
||||||
|
workspace = [
|
||||||
|
"name:2, monitor:DP-3"
|
||||||
|
];
|
||||||
windowrule = [
|
windowrule = [
|
||||||
"match:class .*, suppress_event maximize"
|
"match:class .*, suppress_event maximize"
|
||||||
"match:class gamescope, workspace 5"
|
"match:class ^(gamescope)$, workspace 5"
|
||||||
"match:class gamescope, fullscreen true"
|
"match:class ^(gamescope)$, fullscreen true"
|
||||||
"match:class gamescope, immediate true"
|
"match:class ^(gamescope)$, immediate true"
|
||||||
"match:class ^(steam)$, workspace 6 silent"
|
"match:class ^(steam)$, workspace 6 silent"
|
||||||
"match:class ^(vesktop)$, workspace 8 silent"
|
"match:class ^(vesktop)$, workspace 8 silent"
|
||||||
"match:class ^(org.telegram.desktop)$, workspace 8 silent"
|
"match:class ^(org.telegram.desktop)$, workspace 8 silent"
|
||||||
@@ -155,7 +158,6 @@ in
|
|||||||
];
|
];
|
||||||
layerrule = [
|
layerrule = [
|
||||||
"match:namespace ^(notifications)$, no_screen_share true"
|
"match:namespace ^(notifications)$, no_screen_share true"
|
||||||
# "match:namespace ^(quickshell)$, blur true"
|
|
||||||
];
|
];
|
||||||
# exec-once = [
|
# exec-once = [
|
||||||
# ];
|
# ];
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
_: {
|
|
||||||
nixos = ./nixos.nix;
|
|
||||||
home = ./home.nix;
|
|
||||||
}
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
home,
|
|
||||||
system,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.kitty;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.kitty = {
|
|
||||||
enable = lib.mkEnableOption "kitty configuration module";
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
programs.kitty = {
|
|
||||||
enable = true;
|
|
||||||
font = {
|
|
||||||
name = "Google Sans Code Nerd Font";
|
|
||||||
size = 11;
|
|
||||||
};
|
|
||||||
settings = {
|
|
||||||
sync_to_monitor = "yes";
|
|
||||||
background_opacity = 0.6;
|
|
||||||
cursor_trail = 1;
|
|
||||||
### Blur is handled in hyprland config ###
|
|
||||||
# enable_background_blur = "true";
|
|
||||||
# background_blur = 1;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
## i could use picom but i just used hyprland blur lol
|
|
||||||
# services.picom = {
|
|
||||||
# # for cool gpu accelerated kitty effiect like blurred bg
|
|
||||||
# enable = true;
|
|
||||||
# backend = "glx";
|
|
||||||
# activeOpacity = 0.5;
|
|
||||||
# };
|
|
||||||
wayland.windowManager.hyprland.settings = {
|
|
||||||
bind = [
|
|
||||||
"$mainMod, q, exec, kitty"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
home,
|
|
||||||
system,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.kitty;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.kitty = {
|
|
||||||
enable = lib.mkEnableOption "kitty configuration module";
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
_: {
|
|
||||||
nixos = ./nixos.nix;
|
|
||||||
home = ./home.nix;
|
|
||||||
}
|
|
||||||
@@ -1,158 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
home,
|
|
||||||
system,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.niri;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
imports = [ inputs.niri-flake.homeModules.niri ];
|
|
||||||
options.modules.niri = {
|
|
||||||
enable = lib.mkEnableOption "niri configuration module";
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
# nixpkgs.overlays = [ inputs.niri-flake.overlays.niri ];
|
|
||||||
gtk.enable = lib.mkForce false;
|
|
||||||
home.packages = with pkgs; [ kickoff ];
|
|
||||||
programs = {
|
|
||||||
niri = {
|
|
||||||
enable = true;
|
|
||||||
# package = pkgs.niri-unstable;
|
|
||||||
settings = {
|
|
||||||
input = {
|
|
||||||
keyboard = {
|
|
||||||
xkb = {
|
|
||||||
layout = "gb";
|
|
||||||
};
|
|
||||||
numlock = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
outputs = {
|
|
||||||
DP-3 = {
|
|
||||||
# Philips Consumer Electronics Company PHL 272E1GZ UK02101011104
|
|
||||||
mode = {
|
|
||||||
width = 1920;
|
|
||||||
height = 1080;
|
|
||||||
refresh = 165.0;
|
|
||||||
};
|
|
||||||
focus-at-startup = true;
|
|
||||||
variable-refresh-rate = true;
|
|
||||||
};
|
|
||||||
HDMI-A-1 = {
|
|
||||||
position = {
|
|
||||||
x = -1920;
|
|
||||||
y = 0;
|
|
||||||
};
|
|
||||||
scale = 1;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
binds = {
|
|
||||||
# Navigation
|
|
||||||
"Mod+Shift+WheelScrollDown" = {
|
|
||||||
hotkey-overlay.title = "Workspace Down";
|
|
||||||
cooldown-ms = 150;
|
|
||||||
action.focus-workspace-down = [ ];
|
|
||||||
};
|
|
||||||
"Mod+Shift+WheelScrollUp" = {
|
|
||||||
hotkey-overlay.title = "Workspace Up";
|
|
||||||
cooldown-ms = 150;
|
|
||||||
action.focus-workspace-up = [ ];
|
|
||||||
};
|
|
||||||
"Mod+WheelScrollUp" = {
|
|
||||||
hotkey-overlay.title = "Workspace Left";
|
|
||||||
action.focus-column-right = [ ];
|
|
||||||
};
|
|
||||||
"Mod+WheelScrollDown" = {
|
|
||||||
hotkey-overlay.title = "Workspace Right";
|
|
||||||
action.focus-column-left = [ ];
|
|
||||||
};
|
|
||||||
"Super+Tab" = {
|
|
||||||
hotkey-overlay.title = "Overview";
|
|
||||||
action.toggle-overview = [ ];
|
|
||||||
};
|
|
||||||
# --
|
|
||||||
# Utility
|
|
||||||
"Super+S" = {
|
|
||||||
action.screenshot = [ ];
|
|
||||||
};
|
|
||||||
"Super+C" = {
|
|
||||||
action.close-window = [ ];
|
|
||||||
};
|
|
||||||
"Super+L" = {
|
|
||||||
action.spawn = "wlogout";
|
|
||||||
};
|
|
||||||
# Program Spawning
|
|
||||||
"Mod+T".action.spawn = "helium";
|
|
||||||
"Mod+R".action.spawn = "kickoff";
|
|
||||||
"Mod+Q".action.spawn = "kitty";
|
|
||||||
# --
|
|
||||||
};
|
|
||||||
window-rules = [
|
|
||||||
{
|
|
||||||
matches = [ ];
|
|
||||||
geometry-corner-radius = {
|
|
||||||
bottom-left = 3.0;
|
|
||||||
bottom-right = 3.0;
|
|
||||||
top-left = 3.0;
|
|
||||||
top-right = 3.0;
|
|
||||||
};
|
|
||||||
clip-to-geometry = true;
|
|
||||||
draw-border-with-background = false;
|
|
||||||
focus-ring.width = 2;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
xwayland-satellite = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
wlogout = {
|
|
||||||
enable = true;
|
|
||||||
layout = [
|
|
||||||
{
|
|
||||||
"label" = "lock";
|
|
||||||
"action" = "hyprlock";
|
|
||||||
"text" = "Lock";
|
|
||||||
"keybind" = "l";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
"label" = "hibernate";
|
|
||||||
"action" = "systemctl hibernate";
|
|
||||||
"text" = "Hibernate";
|
|
||||||
"keybind" = "h";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
"label" = "logout";
|
|
||||||
"action" = "loginctl terminate-user $USER";
|
|
||||||
"text" = "Logout";
|
|
||||||
"keybind" = "e";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
# TODO add hypr shutdown
|
|
||||||
"label" = "shutdown";
|
|
||||||
"action" = "systemctl poweroff";
|
|
||||||
"text" = "Shutdown";
|
|
||||||
"keybind" = "s";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
"label" = "suspend";
|
|
||||||
"action" = "systemctl suspend";
|
|
||||||
"text" = "Suspend";
|
|
||||||
"keybind" = "u";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
"label" = "reboot";
|
|
||||||
"action" = "systemctl reboot";
|
|
||||||
"text" = "Reboot";
|
|
||||||
"keybind" = "r";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
home,
|
|
||||||
system,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.niri;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
imports = [ inputs.niri-flake.nixosModules.niri ];
|
|
||||||
options.modules.niri = {
|
|
||||||
enable = lib.mkEnableOption "niri configuration module";
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -28,7 +28,7 @@ in
|
|||||||
config.programs.nixvim = lib.mkIf cfg.enable {
|
config.programs.nixvim = lib.mkIf cfg.enable {
|
||||||
enable = true;
|
enable = true;
|
||||||
defaultEditor = true;
|
defaultEditor = true;
|
||||||
colorschemes.gruvbox-material.enable = true;
|
colorschemes.tokyonight.enable = true;
|
||||||
performance.byteCompileLua = {
|
performance.byteCompileLua = {
|
||||||
enable = true;
|
enable = true;
|
||||||
plugins = true;
|
plugins = true;
|
||||||
@@ -37,9 +37,7 @@ in
|
|||||||
configs = true;
|
configs = true;
|
||||||
};
|
};
|
||||||
plugins = {
|
plugins = {
|
||||||
todo-comments.enable = true;
|
|
||||||
lsp-status.enable = true;
|
lsp-status.enable = true;
|
||||||
transparent.enable = true;
|
|
||||||
lsp = {
|
lsp = {
|
||||||
enable = true;
|
enable = true;
|
||||||
servers = {
|
servers = {
|
||||||
@@ -60,22 +58,13 @@ in
|
|||||||
astro = {
|
astro = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
ts_ls = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
svelte.enable = true;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
lsp-format = {
|
lsp-format = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# lspServersToEnable = [ "qmlls" ];
|
# lspServersToEnable = [ "qmlls" ];
|
||||||
};
|
};
|
||||||
notify = {
|
notify.enable = true;
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
background_color = "#00000000";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
mini-cursorword.enable = true;
|
mini-cursorword.enable = true;
|
||||||
# mini-statusline.enable = true;
|
# mini-statusline.enable = true;
|
||||||
lualine = {
|
lualine = {
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ in
|
|||||||
{
|
{
|
||||||
options.modules.obs = {
|
options.modules.obs = {
|
||||||
enable = lib.mkEnableOption "obs";
|
enable = lib.mkEnableOption "obs";
|
||||||
autostart = lib.mkEnableOption "autostart with reply";
|
|
||||||
};
|
};
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
programs = {
|
programs = {
|
||||||
@@ -50,7 +49,7 @@ in
|
|||||||
''}";
|
''}";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
systemd.user.services.obs-autostart = lib.mkIf cfg.autostart {
|
systemd.user.services.obs-autostart = lib.mkIf cfg.enable {
|
||||||
Unit = {
|
Unit = {
|
||||||
Description = "OBS daemon";
|
Description = "OBS daemon";
|
||||||
After = [ "hyprland-session.target" ];
|
After = [ "hyprland-session.target" ];
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ in
|
|||||||
WantedBy = [ "default.target" ];
|
WantedBy = [ "default.target" ];
|
||||||
};
|
};
|
||||||
Service = {
|
Service = {
|
||||||
ExecStart = "${pkgs.quickshell}/bin/quickshell";
|
ExecStart = "${pkg}/bin/quickshell";
|
||||||
Restart = "on-failure";
|
Restart = "on-failure";
|
||||||
RestartSec = "5s";
|
RestartSec = "5s";
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
/run/user/1000/quickshell/vfs/f9af1311120af20dfed5f1bc1698a66a/.qmlls.ini
|
|
||||||
@@ -1 +1 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#FFFFFF"><path d="M479.93-379q-56.47 0-95.94-40.01-39.47-40.02-39.47-96.47v-232.04q0-56.45 39.53-95.97Q423.59-883 480.07-883q56.47 0 95.94 39.51 39.47 39.52 39.47 95.97v232.04q0 56.45-39.53 96.47Q536.41-379 479.93-379ZM434.02-93.52v-124.76q-111.11-14.13-183.26-99.16-72.15-85.03-72.15-198.04h92.52q0 87.09 61.13 147.98 61.13 60.89 147.85 60.89 86.73 0 147.75-61.09 61.01-61.1 61.01-147.78h92.52q0 113.24-72.15 198.16-72.15 84.91-183.26 99.04v124.76h-91.96Z"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e3e3e3"><path d="M480-420q-41.92 0-70.96-29.04Q380-478.08 380-520v-240q0-41.92 29.04-70.96Q438.08-860 480-860q41.92 0 70.96 29.04Q580-801.92 580-760v240q0 41.92-29.04 70.96Q521.92-420 480-420Zm-30 290v-131.85q-99-11.31-164.5-84.92Q220-420.39 220-520h60q0 83 58.5 141.5T480-320q83 0 141.5-58.5T680-520h60q0 99.61-65.5 173.23Q609-273.16 510-261.85V-130h-60Z"/></svg>
|
||||||
|
Before Width: | Height: | Size: 563 B After Width: | Height: | Size: 463 B |
@@ -1 +1 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#FFFFFF"><path d="m735.55-357.02-68.57-68.7q11.17-19.04 16.48-41.43 5.3-22.39 5.3-48.33h91.96q0 42.93-11.12 83.44-11.12 40.52-34.05 75.02ZM610.07-482.37 348.93-744v-31.22q7.35-44.11 43.99-75.94Q429.57-883 479.33-883q56.54 0 96.29 39.47 39.75 39.46 39.75 96.01v232.04q0 8.87-1.43 17.87-1.44 9-3.87 15.24ZM433.35-93.52v-124.7q-111.11-14.13-183.26-99.02-72.16-84.9-72.16-198.24h92.53q0 87.09 61.01 147.98 61.01 60.89 147.86 60.89 39.08 0 74.11-13.59 35.02-13.59 62.28-37.58l67 67q-31.89 29.15-71.76 47.9-39.87 18.74-85.66 24.83v124.53h-91.95Zm351.82 20.5-723.5-723.5 57.66-57.65 723 723-57.16 58.15Z"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#EA3323"><path d="m710-362-58-58q14-23 21-48t7-52h80q0 44-13 83.5T710-362ZM592-482 360-714v-46q0-50 35-85t85-35q50 0 85 35t35 85v240q0 11-2.5 20t-5.5 18ZM440-120v-124q-104-14-172-92.5T200-520h80q0 83 58.5 141.5T480-320q34 0 64.5-10.5T600-360l57 57q-29 23-63.5 38.5T520-244v124h-80Zm352 64L56-792l56-56 736 736-56 56Z"/></svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 703 B After Width: | Height: | Size: 424 B |
@@ -1 +1 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#FFFFFF"><path d="M790.15-48.91 666.02-174.17q-20.24 12.24-43.19 21.57-22.96 9.34-48.2 14.71v-86.61q7.98-2.8 15.49-5.61 7.51-2.8 15.12-6.54L499.63-343.39v215.17L281.06-346.78h-166.3v-266.44h120.13l-187.61-191 58.65-58.65 743.44 754.74-59.22 59.22Zm-.3-238.87-60.72-61.85q17-29.44 25.75-62.4 8.75-32.97 8.75-68.47 0-88.43-52.56-158.65-52.57-70.22-136.44-97.35v-86.61q119.89 28.57 196.47 123.89 76.58 95.33 76.58 218.72 0 53.76-15.1 102.14t-42.73 90.58ZM669.41-409.91l-94.78-95.92v-137.95q48.76 22.13 79.9 65.79 31.15 43.66 31.15 97.99 0 19.2-4.07 36.61t-12.2 33.48ZM499.63-582.52 376.41-708.57l123.22-123.21v249.26Z"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#EA3323"><path d="M792-56 671-177q-25 16-53 27.5T560-131v-82q14-5 27.5-10t25.5-12L480-368v208L280-360H120v-240h128L56-792l56-56 736 736-56 56Zm-8-232-58-58q17-31 25.5-65t8.5-70q0-94-55-168T560-749v-82q124 28 202 125.5T840-481q0 53-14.5 102T784-288ZM650-422l-90-90v-130q47 22 73.5 66t26.5 96q0 15-2.5 29.5T650-422ZM480-592 376-696l104-104v208Z"/></svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 721 B After Width: | Height: | Size: 450 B |
@@ -1 +1 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#FFFFFF"><path d="M565.7-158.89v-79.61q80.43-24.13 130.71-90.85 50.29-66.72 50.29-150.15t-50.79-149.15q-50.78-65.72-130.21-92.85v-79.61q111.89 25.57 184.18 115.64 72.3 90.08 72.3 204.97t-71.8 205.47q-71.79 90.57-184.68 116.14ZM137.82-371.78v-218.44h150.31L498.7-800.78v639.56L288.13-371.78H137.82Zm427.88 44.56v-306.56q46.76 20.69 76.62 61.07 29.86 40.38 29.86 91.71 0 51.83-29.86 92.24t-76.62 61.54Z"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e3e3e3"><path d="M561.54-155.62v-62q86.54-27.53 139.42-100 52.89-72.46 52.89-163.38t-52.89-163.38q-52.88-72.47-139.42-100v-62q111.69 29.92 182 119.92 70.3 90 70.3 205.46 0 115.46-70.3 205.46-70.31 90-182 119.92ZM146.16-380v-200h148.46l171.53-171.53v543.06L294.62-380H146.16Zm415.38 46.15v-294.3q40.46 22 62.54 61.96 22.07 39.96 22.07 86.19 0 45.61-22.27 84.88-22.27 39.27-62.34 61.27Z"/></svg>
|
||||||
|
Before Width: | Height: | Size: 507 B After Width: | Height: | Size: 492 B |
2
modules/quickshell/quickshell/assets/bar/V2/mic.svg
Executable file → Normal file
@@ -1 +1 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#FFFFFF"><path d="M479.93-379q-56.47 0-95.94-40.01-39.47-40.02-39.47-96.47v-232.04q0-56.45 39.53-95.97Q423.59-883 480.07-883q56.47 0 95.94 39.51 39.47 39.52 39.47 95.97v232.04q0 56.45-39.53 96.47Q536.41-379 479.93-379ZM434.02-93.52v-124.76q-111.11-14.13-183.26-99.16-72.15-85.03-72.15-198.04h92.52q0 87.09 61.13 147.98 61.13 60.89 147.85 60.89 86.73 0 147.75-61.09 61.01-61.1 61.01-147.78h92.52q0 113.24-72.15 198.16-72.15 84.91-183.26 99.04v124.76h-91.96Z"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#000000"><path d="M479.97-389q-53.8 0-91.43-37.65-37.63-37.65-37.63-91.44v-238.32q0-53.79 37.66-91.44t91.46-37.65q53.8 0 91.43 37.65 37.63 37.65 37.63 91.44v238.32q0 53.79-37.66 91.44T479.97-389Zm-43.56 283.59v-123.96q-108.06-14.48-178.45-96.85-70.4-82.38-70.4-191.87h87.42q0 85.16 59.98 145.09 59.98 59.93 145.09 59.93 85.1 0 145.04-59.96 59.93-59.97 59.93-145.06h87.42q0 109.55-70.4 191.89-70.39 82.35-178.45 96.83v123.96h-87.18Z"/></svg>
|
||||||
|
Before Width: | Height: | Size: 563 B After Width: | Height: | Size: 538 B |
2
modules/quickshell/quickshell/assets/bar/V2/micOff.svg
Executable file → Normal file
@@ -1 +1 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#FFFFFF"><path d="m735.55-357.02-68.57-68.7q11.17-19.04 16.48-41.43 5.3-22.39 5.3-48.33h91.96q0 42.93-11.12 83.44-11.12 40.52-34.05 75.02ZM610.07-482.37 348.93-744v-31.22q7.35-44.11 43.99-75.94Q429.57-883 479.33-883q56.54 0 96.29 39.47 39.75 39.46 39.75 96.01v232.04q0 8.87-1.43 17.87-1.44 9-3.87 15.24ZM433.35-93.52v-124.7q-111.11-14.13-183.26-99.02-72.16-84.9-72.16-198.24h92.53q0 87.09 61.01 147.98 61.01 60.89 147.86 60.89 39.08 0 74.11-13.59 35.02-13.59 62.28-37.58l67 67q-31.89 29.15-71.76 47.9-39.87 18.74-85.66 24.83v124.53h-91.95Zm351.82 20.5-723.5-723.5 57.66-57.65 723 723-57.16 58.15Z"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#000000"><path d="m715.83-357.41-58.74-58.74q9.8-19.81 15.58-40.99 5.79-21.19 5.79-44.95h79.17q0 38-10.52 75.34t-31.28 69.34ZM605.24-467.52 354.26-718.5v-33.63q3.11-48.57 39.54-82.97 36.44-34.4 87.4-34.4 53.82 0 91.57 37.63 37.75 37.63 37.75 91.46v238.32q0 8.52-1.26 17.52t-4.02 17.05ZM441.61-129.41v-99.72q-103.07-12.48-169.96-90.45-66.89-77.96-66.89-182.51h79.41q0 82.16 57.44 139.59 57.43 57.43 139.59 57.43 36.15 0 68.56-14.19 32.41-14.2 59.37-38.11l57.5 57.5q-30.43 27.39-67.71 46.33-37.27 18.93-78.14 24.41v99.72h-79.17Zm325.19 37.5-678-679 53.4-53.39 678 679-53.4 53.39Z"/></svg>
|
||||||
|
Before Width: | Height: | Size: 703 B After Width: | Height: | Size: 684 B |
2
modules/quickshell/quickshell/assets/bar/V2/speaker.svg
Executable file → Normal file
@@ -1 +1 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#FFFFFF"><path d="M565.7-158.89v-79.61q80.43-24.13 130.71-90.85 50.29-66.72 50.29-150.15t-50.79-149.15q-50.78-65.72-130.21-92.85v-79.61q111.89 25.57 184.18 115.64 72.3 90.08 72.3 204.97t-71.8 205.47q-71.79 90.57-184.68 116.14ZM137.82-371.78v-218.44h150.31L498.7-800.78v639.56L288.13-371.78H137.82Zm427.88 44.56v-306.56q46.76 20.69 76.62 61.07 29.86 40.38 29.86 91.71 0 51.83-29.86 92.24t-76.62 61.54Z"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#000000"><path d="M566.22-126.93V-213q89.76-26.48 144.88-100.36 55.12-73.88 55.12-167.64 0-93.76-55.12-167.64Q655.98-722.52 566.22-749v-86.07q125.43 28.24 204.51 126.94Q849.8-609.43 849.8-481t-79.07 227.13q-79.08 98.7-204.51 126.94ZM110.2-351.87v-256.26h164.78l211.24-211.24v678.74L274.98-351.87H110.2Zm456.02 34.74v-327.74q47.95 22.72 75.77 67.2Q669.8-533.2 669.8-480q0 52.2-27.81 96.29-27.82 44.1-75.77 66.58Z"/></svg>
|
||||||
|
Before Width: | Height: | Size: 507 B After Width: | Height: | Size: 518 B |
2
modules/quickshell/quickshell/assets/bar/V2/speakerOff.svg
Executable file → Normal file
@@ -1 +1 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#FFFFFF"><path d="M790.15-48.91 666.02-174.17q-20.24 12.24-43.19 21.57-22.96 9.34-48.2 14.71v-86.61q7.98-2.8 15.49-5.61 7.51-2.8 15.12-6.54L499.63-343.39v215.17L281.06-346.78h-166.3v-266.44h120.13l-187.61-191 58.65-58.65 743.44 754.74-59.22 59.22Zm-.3-238.87-60.72-61.85q17-29.44 25.75-62.4 8.75-32.97 8.75-68.47 0-88.43-52.56-158.65-52.57-70.22-136.44-97.35v-86.61q119.89 28.57 196.47 123.89 76.58 95.33 76.58 218.72 0 53.76-15.1 102.14t-42.73 90.58ZM669.41-409.91l-94.78-95.92v-137.95q48.76 22.13 79.9 65.79 31.15 43.66 31.15 97.99 0 19.2-4.07 36.61t-12.2 33.48ZM499.63-582.52 376.41-708.57l123.22-123.21v249.26Z"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#000000"><path d="M794.39-48.35 672.91-170.3q-24.04 15.04-50.96 25.94-26.93 10.9-55.97 17.43V-213q12.09-4.28 23.79-8.57 11.71-4.28 22.27-10.32L485.98-358.43v217.8L274.74-351.87H109.96v-256.26h128.47l-190.56-192 58.39-58.39 746.76 751.54-58.63 58.63Zm-1.78-237.02-60.63-61.11q17-30.76 25.5-64.64 8.5-33.88 8.5-69.88 0-93.76-55.24-167.64Q655.5-722.52 565.98-749v-86.07q125.43 28.24 204.63 126.94Q849.8-609.43 849.8-481q0 53.96-14.85 103.43-14.86 49.48-42.34 92.2ZM658.85-419.85l-92.87-93.35v-131.67q47.95 22.48 75.89 67.08Q669.8-533.2 669.8-480q0 15.72-2.73 30.82-2.74 15.09-8.22 29.33ZM485.98-593.91 373.85-707.24l112.13-112.13v225.46Z"/></svg>
|
||||||
|
Before Width: | Height: | Size: 721 B After Width: | Height: | Size: 741 B |
@@ -16,7 +16,7 @@ PanelWindow {
|
|||||||
property var modelData
|
property var modelData
|
||||||
screen: modelData.values[0]
|
screen: modelData.values[0]
|
||||||
|
|
||||||
color: Qt.rgba(0, 0, 0, 0) // Fully transparent via zero alpha
|
color: '#20ffffff'
|
||||||
anchors {
|
anchors {
|
||||||
top: true
|
top: true
|
||||||
left: true
|
left: true
|
||||||
@@ -25,7 +25,6 @@ PanelWindow {
|
|||||||
|
|
||||||
implicitHeight: 31
|
implicitHeight: 31
|
||||||
RowLayout {
|
RowLayout {
|
||||||
visible: true
|
|
||||||
height: 30
|
height: 30
|
||||||
anchors {
|
anchors {
|
||||||
top: parent.top
|
top: parent.top
|
||||||
|
|||||||
@@ -6,8 +6,6 @@ import Quickshell.Widgets
|
|||||||
import Quickshell.Services.Pipewire
|
import Quickshell.Services.Pipewire
|
||||||
import QtQuick.VectorImage
|
import QtQuick.VectorImage
|
||||||
import QtQuick.Effects
|
import QtQuick.Effects
|
||||||
import QtQuick.Shapes 1.10
|
|
||||||
import QtQuick.Effects
|
|
||||||
import "common" as Common
|
import "common" as Common
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
@@ -17,41 +15,47 @@ Rectangle {
|
|||||||
PwObjectTracker {
|
PwObjectTracker {
|
||||||
objects: [root.microphoneNode, root.speakerNode]
|
objects: [root.microphoneNode, root.speakerNode]
|
||||||
}
|
}
|
||||||
implicitWidth: itemContent.width + 8
|
implicitWidth: itemContent.width + 4
|
||||||
implicitHeight: 24
|
implicitHeight: 24
|
||||||
radius: 5.5
|
radius: 5.5
|
||||||
Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter
|
Layout.alignment: Qt.AlignVCenter
|
||||||
color: Common.Colors.colors.secondary // Define item color
|
color: "#2a2a2a" // Define item color
|
||||||
// color: "#2a2a2a"
|
|
||||||
RowLayout {
|
RowLayout {
|
||||||
id: itemContent
|
id: itemContent
|
||||||
anchors.centerIn: parent
|
|
||||||
// spacing: 100
|
|
||||||
Repeater {
|
Repeater {
|
||||||
model: [
|
model: [
|
||||||
{
|
{
|
||||||
on: Common.Icons.audioIcons["speaker"],
|
on: "../../assets/bar/V2/speaker.svg",
|
||||||
off: Common.Icons.audioIcons["speakerMuted"],
|
off: "../../assets/bar/V2/speakerOff.svg",
|
||||||
node: root.speakerNode
|
node: root.speakerNode
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
on: Common.Icons.audioIcons["microphone"],
|
on: "../../assets/bar/V2/mic.svg",
|
||||||
off: Common.Icons.audioIcons["microphoneMuted"],
|
off: "../../assets/bar/V2/micOff.svg",
|
||||||
node: root.microphoneNode
|
node: root.microphoneNode
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
Item {
|
Item {
|
||||||
id: meow
|
|
||||||
implicitWidth: 24
|
implicitWidth: 24
|
||||||
Layout.alignment: Qt.AlignHCenter
|
|
||||||
implicitHeight: 24
|
implicitHeight: 24
|
||||||
Text {
|
// anchors.centerIn: parent
|
||||||
id: textElement
|
VectorImage {
|
||||||
anchors.centerIn: parent // Ensure the text fills the parent item
|
id: svgImage
|
||||||
text: modelData.node.audio.muted ? modelData.off : modelData.on
|
width: parent.width
|
||||||
font.pointSize: 18.25
|
height: parent.height
|
||||||
font.weight: Font.DemiBold
|
source: modelData.node.audio.muted ? modelData.off : modelData.on
|
||||||
color: modelData.node.audio.muted ? Common.Colors.colors.critial2 : Common.Colors.colors.primary
|
visible: false
|
||||||
|
fillMode: Image.PreserveAspectFit // Adjusts the SVG while keeping the aspect ratio
|
||||||
|
}
|
||||||
|
MultiEffect {
|
||||||
|
source: svgImage
|
||||||
|
width: parent.width
|
||||||
|
height: parent.height
|
||||||
|
// anchors.centerIn: parent
|
||||||
|
Layout.alignment: Qt.AlignVCenter | Qt.AlignHCenter
|
||||||
|
colorization: 1
|
||||||
|
brightness: 1
|
||||||
|
colorizationColor: modelData.node.audio.muted ? "#e53b3c" : "#b1b2b5"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,77 +10,62 @@ import Quickshell.Services.UPower
|
|||||||
import "common" as Common
|
import "common" as Common
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
// TODO eventually fix the alignment (it isnt centered horizentally)
|
|
||||||
id: root
|
id: root
|
||||||
property int battPercent: 58
|
property int battPercent: 58
|
||||||
implicitWidth: itemContent.width + 8
|
implicitWidth: itemContent.width + 4
|
||||||
implicitHeight: 24
|
implicitHeight: 24
|
||||||
visible: {
|
|
||||||
if (UPower.displayDevice.ready) {
|
|
||||||
true;
|
|
||||||
} else {
|
|
||||||
false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
radius: 5.5
|
radius: 5.5
|
||||||
Layout.alignment: Qt.AlignVCenter
|
Layout.alignment: Qt.AlignVCenter
|
||||||
color: "#2a2a2a" // Define item color
|
color: "#2a2a2a" // Define item color
|
||||||
RowLayout {
|
Item {
|
||||||
id: itemContent
|
id: itemContent
|
||||||
implicitWidth: 24
|
implicitWidth: 24
|
||||||
implicitHeight: 24
|
implicitHeight: 24
|
||||||
anchors.centerIn: parent
|
|
||||||
Text {
|
|
||||||
// anchors.centerIn: parent
|
// anchors.centerIn: parent
|
||||||
text: Math.round(UPower.displayDevice.percentage * 100) + "%"
|
VectorImage {
|
||||||
color: Common.Colors.colors.primary
|
id: svgImage
|
||||||
font.weight: Font.DemiBold
|
width: parent.width
|
||||||
font.pointSize: 12
|
height: parent.height
|
||||||
|
source: "../../assets/bar/batt/" + root.getBatteryState(UPower.displayDevice.percentage) + ".svg"
|
||||||
|
visible: false
|
||||||
|
fillMode: Image.PreserveAspectFit // Adjusts the SVG while keeping the aspect ratio
|
||||||
}
|
}
|
||||||
Item {
|
MultiEffect {
|
||||||
Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter
|
source: svgImage
|
||||||
implicitWidth: icon.width
|
width: parent.width
|
||||||
implicitHeight: icon.height
|
height: parent.height
|
||||||
Text {
|
// anchors.centerIn: parent
|
||||||
id: icon
|
Layout.alignment: Qt.AlignVCenter | Qt.AlignHCenter
|
||||||
anchors.centerIn: parent
|
// colorization: 1
|
||||||
text: root.getBatteryState(UPower.displayDevice.percentage * 100, ((UPower.displayDevice.timeToFull > 0)))
|
brightness: 1
|
||||||
color: root.getBatteryColor(UPower.displayDevice.percentage * 100)
|
// colorizationColor: modelData.node.audio.muted ? "#e53b3c" : "#b1b2b5"
|
||||||
font.weight: Font.DemiBold
|
|
||||||
font.pointSize: 24 / 1.4
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
function getBatteryState(level) {
|
||||||
function getBatteryState(level, isCharging) {
|
if (level === null) {
|
||||||
if (level === null || level === 0) {
|
return 0;
|
||||||
// Return the battery empty icon
|
|
||||||
return isCharging ? Common.Icons.battery.charging["1"] : Common.Icons.battery["0"];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (level === 100) {
|
level = Math.max(0, Math.min(100, level));
|
||||||
// Return the battery full icon
|
|
||||||
return isCharging ? Common.Icons.battery.charging["10"] : Common.Icons.battery["10"];
|
|
||||||
}
|
|
||||||
|
|
||||||
// Calculate step as a value between 1 and 10 (divide level into 10 ranges)
|
if (level === 0)
|
||||||
let step = Math.ceil(level / 10); // Range mapping
|
return 0; // 0% exactly
|
||||||
if (step > 10)
|
if (level === 100)
|
||||||
step = 10; // Clamp to 10 if it exceeds bounds
|
return 7; // 100% exactly
|
||||||
|
|
||||||
// Return the correct icon based on state
|
if (level > 0 && level <= 16)
|
||||||
return isCharging ? Common.Icons.battery.charging[String(step)] : Common.Icons.battery[String(step)];
|
return 1;
|
||||||
}
|
if (level > 16 && level <= 32)
|
||||||
function getBatteryColor(level) {
|
return 2;
|
||||||
if (level === null || level === 0) {
|
if (level > 32 && level <= 48)
|
||||||
// Use critical color for empty battery
|
return 3;
|
||||||
return Common.Colors.colors.critial2;
|
if (level > 48 && level <= 64)
|
||||||
}
|
return 4;
|
||||||
|
if (level > 64 && level <= 80)
|
||||||
|
return 5;
|
||||||
|
if (level > 80 && level < 100)
|
||||||
|
return 6;
|
||||||
|
|
||||||
if (level > 0 && level <= 20) {
|
return 0;
|
||||||
// Use critical color for low battery
|
|
||||||
return Common.Colors.colors.critial2;
|
|
||||||
}
|
|
||||||
// Default color if no specific condition is met
|
|
||||||
return Common.Colors.colors.primary;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ Rectangle {
|
|||||||
id: backgroundRect
|
id: backgroundRect
|
||||||
implicitWidth: rowLayout.implicitWidth + 6 // Account for padding (2px left + 2px right)
|
implicitWidth: rowLayout.implicitWidth + 6 // Account for padding (2px left + 2px right)
|
||||||
implicitHeight: rowLayout.implicitHeight + 4 // Account for padding (2px top + 2px bottom)
|
implicitHeight: rowLayout.implicitHeight + 4 // Account for padding (2px top + 2px bottom)
|
||||||
color: Common.Colors.colors.background
|
color: "black"
|
||||||
radius: 6.5 // Background rectangle with rounded corners
|
radius: 6.5 // Background rectangle with rounded corners
|
||||||
// border.color: "gray"
|
// border.color: "gray"
|
||||||
// border.width: 1
|
// border.width: 1
|
||||||
@@ -33,7 +33,6 @@ Rectangle {
|
|||||||
|
|
||||||
Audio {}
|
Audio {}
|
||||||
Battery {}
|
Battery {}
|
||||||
Common.VerticalSeprator {}
|
|
||||||
Clock.Date {}
|
Clock.Date {}
|
||||||
Clock.Clock {}
|
Clock.Clock {}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,22 +6,7 @@ import Quickshell.Io
|
|||||||
Singleton {
|
Singleton {
|
||||||
id: root
|
id: root
|
||||||
|
|
||||||
// XX (alpha) XXXXXX (color)
|
|
||||||
|
|
||||||
// For oled screen that risk burn in, set up these colors as semi-transparent and have a rotating wallpaper (!!)
|
|
||||||
readonly property var colors: ({
|
readonly property var colors: ({
|
||||||
primary: "#59b1b2b5" // Icons & Text colors
|
"primary": "",
|
||||||
,
|
|
||||||
secondary: "#BF2a2a2a" // Pill container colors
|
|
||||||
,
|
|
||||||
background: "#BF000000" // Background of containers
|
|
||||||
,
|
|
||||||
mainBackground: "#20ffffff" // Color of the main bar
|
|
||||||
,
|
|
||||||
warning: "#E9D502" // (i.e battery nearing low)
|
|
||||||
,
|
|
||||||
critial: "#e53b3c" // (i.e battery is low)
|
|
||||||
,
|
|
||||||
critial2: "#e53b3c" // (Speaker and Mic being off)
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,42 +6,16 @@ import Quickshell.Io
|
|||||||
Singleton {
|
Singleton {
|
||||||
id: root
|
id: root
|
||||||
|
|
||||||
// readonly property var svgs: ({
|
readonly property var svgs: ({
|
||||||
// micOff: "../../../assets/bar/V2/micOff.svg",
|
micOff: "../../../assets/bar/V2/micOff.svg",
|
||||||
// mic: "../../../assets/bar/V2/mic.svg",
|
mic: "../../../assets/bar/V2/mic.svg",
|
||||||
// speaker: "../../../assets/bar/V2/speaker.svg",
|
speaker: "../../../assets/bar/V2/speaker.svg",
|
||||||
// speakerOff: "../../../assets/bar/V2/speakerOff.svg"
|
speakerOff: "../../../assets/bar/V2/speakerOff.svg"
|
||||||
// })
|
|
||||||
// TODO replace all these icons with svg's
|
|
||||||
readonly property var battery: ({
|
|
||||||
"0": "",
|
|
||||||
"1": "",
|
|
||||||
"2": "",
|
|
||||||
"3": "",
|
|
||||||
"4": "",
|
|
||||||
"5": "",
|
|
||||||
"6": "",
|
|
||||||
"7": "",
|
|
||||||
"8": "",
|
|
||||||
"9": "",
|
|
||||||
"10": "",
|
|
||||||
charging: ({
|
|
||||||
"1": "",
|
|
||||||
"2": "",
|
|
||||||
"3": "",
|
|
||||||
"4": "",
|
|
||||||
"5": "",
|
|
||||||
"6": "",
|
|
||||||
"7": "",
|
|
||||||
"8": "",
|
|
||||||
"9": "",
|
|
||||||
"10": ""
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
|
||||||
readonly property var audioIcons: ({
|
readonly property var audioIcons: ({
|
||||||
microphone: "",
|
microphone: "",
|
||||||
microphoneMuted: "",
|
microphoneMuted: "",
|
||||||
speaker: "",
|
speaker: "",
|
||||||
speakerMuted: ""
|
speakerMuted: ""
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,30 +0,0 @@
|
|||||||
// ColorOverlayShader.qml
|
|
||||||
import QtQuick 2.15
|
|
||||||
Rectangle {
|
|
||||||
id: mainContent
|
|
||||||
anchors.fill: parent
|
|
||||||
color: "blue"
|
|
||||||
|
|
||||||
// Clip the rectangle to a shape
|
|
||||||
clip: true
|
|
||||||
|
|
||||||
Shape {
|
|
||||||
anchors.fill: parent
|
|
||||||
|
|
||||||
// Custom Path defined as a vector
|
|
||||||
Path {
|
|
||||||
PathSvg {
|
|
||||||
path: "M10,80 C40,10 65,10 95,80 S150,150 180,80" // Vector path
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ShapePath {
|
|
||||||
strokeColor: "transparent" // No stroke, act only as the mask
|
|
||||||
fillColor: "blue"
|
|
||||||
fillGradient: Gradient {
|
|
||||||
GradientStop { position: 0.0; color: "yellow" }
|
|
||||||
GradientStop { position: 1.0; color: "orange" }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -2,16 +2,12 @@ import Quickshell
|
|||||||
import QtQml
|
import QtQml
|
||||||
import QtQuick
|
import QtQuick
|
||||||
|
|
||||||
Item {
|
Rectangle {
|
||||||
id: root
|
id: a
|
||||||
anchors {
|
anchors {
|
||||||
top: parent.top
|
top: parent.top
|
||||||
bottom: parent.bottom
|
bottom: parent.bottom
|
||||||
}
|
}
|
||||||
Rectangle {
|
width: 2
|
||||||
anchors.centerIn: root
|
|
||||||
implicitHeight: root.height - 4
|
|
||||||
width: 1
|
|
||||||
color: "#8d8d8d"
|
color: "#8d8d8d"
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
_: {
|
|
||||||
nixos = ./nixos.nix;
|
|
||||||
home = ./home.nix;
|
|
||||||
}
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
home,
|
|
||||||
system,
|
|
||||||
nix-meow,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.sops;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
|
|
||||||
imports = [
|
|
||||||
inputs.sops-nix.homeManagerModules.sops
|
|
||||||
];
|
|
||||||
options.modules.sops = {
|
|
||||||
enable = lib.mkEnableOption "sops configuration module";
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
sops = {
|
|
||||||
age.keyFile = "/home/doloro/.config/sops/age/key.txt"; # must have no password!
|
|
||||||
defaultSopsFile = "${nix-meow.flakeRoot}/secrets/users.yaml";
|
|
||||||
secrets."wakatime-scug-io-api-key" = {
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
inputs,
|
|
||||||
pkgs,
|
|
||||||
home,
|
|
||||||
system,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.sops;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.sops = {
|
|
||||||
enable = lib.mkEnableOption "sops configuration module";
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
_: {
|
|
||||||
home = ./home.nix;
|
|
||||||
# nixos: ./nixos.nix;
|
|
||||||
}
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
{
|
|
||||||
inputs,
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
fetchFromGitHub,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.wakatime;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.wakatime = {
|
|
||||||
enable = lib.mkEnableOption "wakatime";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -17,7 +17,7 @@ in
|
|||||||
# whole blender config including addons is too fat to include here
|
# whole blender config including addons is too fat to include here
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
wayvr
|
wlx-overlay-s
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
# nix'ing a blender config is most likely not possible
|
# nix'ing a blender config is most likely not possible
|
||||||
|
|||||||
@@ -54,7 +54,6 @@ in
|
|||||||
publish.userServices = true;
|
publish.userServices = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
environment.systemPackages = [ pkgs.android-tools ];
|
programs.adb.enable = true;
|
||||||
# programs.adb.enable = true;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,6 @@ in
|
|||||||
enable = lib.mkEnableOption "youtube music";
|
enable = lib.mkEnableOption "youtube music";
|
||||||
};
|
};
|
||||||
config.home.packages = with pkgs; [
|
config.home.packages = with pkgs; [
|
||||||
pear-desktop
|
youtube-music
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
_: {
|
|
||||||
home = ./home.nix;
|
|
||||||
# nixos = ./nixos.nix;
|
|
||||||
}
|
|
||||||
@@ -1,81 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
inputs,
|
|
||||||
lib,
|
|
||||||
system,
|
|
||||||
pkgs,
|
|
||||||
fetchFromGitHub,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.zen-browser;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
# inputs.zen-browser.homeModules.beta
|
|
||||||
# inputs.zen-browser.homeModules.twilight
|
|
||||||
inputs.zen-browser.homeModules.twilight-official
|
|
||||||
];
|
|
||||||
options.modules.zen-browser = {
|
|
||||||
enable = lib.mkEnableOption "zen";
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
programs.zen-browser = {
|
|
||||||
enable = true;
|
|
||||||
policies = {
|
|
||||||
AutofillAddressEnabled = true;
|
|
||||||
AutofillCreditCardEnabled = false;
|
|
||||||
DisableAppUpdate = true;
|
|
||||||
DisableFeedbackCommands = true;
|
|
||||||
DisableFirefoxStudies = true;
|
|
||||||
DisablePocket = true;
|
|
||||||
DisableTelemetry = true;
|
|
||||||
DontCheckDefaultBrowser = true;
|
|
||||||
NoDefaultBookmarks = true;
|
|
||||||
OfferToSaveLogins = false;
|
|
||||||
EnableTrackingProtection = {
|
|
||||||
Value = true;
|
|
||||||
Locked = true;
|
|
||||||
Cryptomining = true;
|
|
||||||
Fingerprinting = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
xdg.mimeApps =
|
|
||||||
let
|
|
||||||
value =
|
|
||||||
let
|
|
||||||
zen-browser = inputs.zen-browser.packages.${system}.twilight-official; # or twilight
|
|
||||||
in
|
|
||||||
zen-browser.meta.desktopFileName;
|
|
||||||
|
|
||||||
associations = builtins.listToAttrs (
|
|
||||||
map
|
|
||||||
(name: {
|
|
||||||
inherit name value;
|
|
||||||
})
|
|
||||||
[
|
|
||||||
"application/x-extension-shtml"
|
|
||||||
"application/x-extension-xhtml"
|
|
||||||
"application/x-extension-html"
|
|
||||||
"application/x-extension-xht"
|
|
||||||
"application/x-extension-htm"
|
|
||||||
"x-scheme-handler/unknown"
|
|
||||||
"x-scheme-handler/mailto"
|
|
||||||
"x-scheme-handler/chrome"
|
|
||||||
"x-scheme-handler/about"
|
|
||||||
"x-scheme-handler/https"
|
|
||||||
"x-scheme-handler/http"
|
|
||||||
"application/xhtml+xml"
|
|
||||||
"application/json"
|
|
||||||
"text/plain"
|
|
||||||
"text/html"
|
|
||||||
]
|
|
||||||
);
|
|
||||||
in
|
|
||||||
{
|
|
||||||
associations.added = associations;
|
|
||||||
defaultApplications = associations;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
# Disabled in default
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.modules.zen-browser;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.modules.zen-browser = {
|
|
||||||
enable = lib.mkEnableOption "zen";
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
};
|
|
||||||
}
|
|
||||||
BIN
nixos.qcow2
Normal file
30
overlays.nix
@@ -6,6 +6,36 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
|
youtube-music = (
|
||||||
|
final: prev: {
|
||||||
|
youtube-music = prev.youtube-music.overrideAttrs (old: rec {
|
||||||
|
pname = "youtube-music";
|
||||||
|
version = "3a7d3ff73";
|
||||||
|
src = prev.fetchFromGitHub {
|
||||||
|
owner = "pear-devs";
|
||||||
|
repo = "pear-desktop";
|
||||||
|
rev = "3a7d3ff73de49fcf7e7051dd1bdf450db4b222bf";
|
||||||
|
sha256 = "sha256-Q/E37HzQR2Ghxs8vV7WNCXn+DqIhpjhY3SoW3OMITTs=";
|
||||||
|
};
|
||||||
|
postPatch =
|
||||||
|
let
|
||||||
|
patch = prev.fetchurl {
|
||||||
|
url = "https://github.com/pear-devs/pear-desktop/commit/25fccc9a62044ca7006f271a6a2520724e5720e1.patch";
|
||||||
|
hash = "sha256-WAiaqsWlOXyv7FRlvM0LUY17dwCI8BQsQdO1M4zYg7k=";
|
||||||
|
};
|
||||||
|
in
|
||||||
|
''
|
||||||
|
${prev.git}/bin/git apply -R -p1 < ${patch}
|
||||||
|
'';
|
||||||
|
pnpmDeps = prev.pnpm.fetchDeps {
|
||||||
|
inherit pname version src;
|
||||||
|
fetcherVersion = 2;
|
||||||
|
hash = "sha256-9arC2c92U2tILFCBIRcGo9iNaPbNefDDfR9lGaSS88E=";
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
);
|
||||||
pkgs_gamescope = import inputs.nixpkgs-gamescope {
|
pkgs_gamescope = import inputs.nixpkgs-gamescope {
|
||||||
inherit system;
|
inherit system;
|
||||||
config = {
|
config = {
|
||||||
|
|||||||
1
result
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
/nix/store/n30rbc1gjsjxqlpg70k9dncd4pbfb471-helium-browser-0.5.7-141.0.7390.107
|
||||||
@@ -1,46 +1,26 @@
|
|||||||
doloro-hashed_password: ENC[AES256_GCM,data:RYB/bSNTz1TeGucdFHrxxhOqvqQYvQS3lm44I1Lf3LIEVMXL5s41zxIw0S+JVdlq8I3oHDY4C3o5V4lu+8qAWMyIZYp/6Xp4cw==,iv:yOuKk95skNZ5z805vtoJwvyOdsh08BuyBSgXN+M4Ybo=,tag:QAFhUYuqHT6Spw/l4feY4g==,type:str]
|
doloro-hashed_password: ENC[AES256_GCM,data:RYB/bSNTz1TeGucdFHrxxhOqvqQYvQS3lm44I1Lf3LIEVMXL5s41zxIw0S+JVdlq8I3oHDY4C3o5V4lu+8qAWMyIZYp/6Xp4cw==,iv:yOuKk95skNZ5z805vtoJwvyOdsh08BuyBSgXN+M4Ybo=,tag:QAFhUYuqHT6Spw/l4feY4g==,type:str]
|
||||||
root-hashed_password: ENC[AES256_GCM,data:vzVtz1Ht4XD+omdKjU/Zvoaftq8jKE4kxOjAGZTvoYI07hjItR2TSsYrLw0lwsxyJosfoyF3bVsZSFCuuN7njdchGMSSujZJhg==,iv:0av3n4fcGOHYQB4zidt/qn+blBSiDQ29LN15sVufLLs=,tag:nKKVDbCGxB7wDrMPAyJOaw==,type:str]
|
root-hashed_password: ENC[AES256_GCM,data:vzVtz1Ht4XD+omdKjU/Zvoaftq8jKE4kxOjAGZTvoYI07hjItR2TSsYrLw0lwsxyJosfoyF3bVsZSFCuuN7njdchGMSSujZJhg==,iv:0av3n4fcGOHYQB4zidt/qn+blBSiDQ29LN15sVufLLs=,tag:nKKVDbCGxB7wDrMPAyJOaw==,type:str]
|
||||||
wakatime-scug-io-api-key: ENC[AES256_GCM,data:XQUccNW4210U8ZpHSGVcsdbAirzyTvmcy4y6emk7n4N6MO/W,iv:9/f9ceLshA7l8hJB+IDIPvEwYwSkFlPOLmpvtYXLTpU=,tag:x7hESZCouzYVNef2C+iCSA==,type:str]
|
|
||||||
meow: ENC[AES256_GCM,data:JVzenw==,iv:oCOo9//r5s2K4pSeH5UNEj0LL+9h2yq0G0DPOfwjmyQ=,tag:0gu9FNOrjQ8fpB+B+RbGSg==,type:str]
|
|
||||||
sops:
|
sops:
|
||||||
age:
|
age:
|
||||||
- recipient: age1ykcy2r4kk729e7adqxu8s24ujc60z5eux7ma0ca4ruzydwgm5p6qmdp838
|
- recipient: age1ykcy2r4kk729e7adqxu8s24ujc60z5eux7ma0ca4ruzydwgm5p6qmdp838
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIYVcvRFNGOUwyTllMSWtX
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBJektlZ3JVYmFqYS9Zd09Q
|
||||||
WGdEeWVBa0U5MXROTXEwSzVJZms5MWZmM1RzCk9ra1FmT2tlbkp4ZW5tYW90SEhK
|
V1FVdTdVMjd2UUF5WHB5L2dOeXFlWml0cFNNCkduTVlwV0ZtTHg0cjV1N0hzeCto
|
||||||
Y25TNmFrMEg4TzJIT0wwaGRQMlYrZXMKLS0tIEpKaEMvdHB6aVBodmN1OERXZ2da
|
Ym4xSVVERTdGcjRoUG5IcW42MmJTTm8KLS0tIHdXbkpzVFBzdUFQTjlDMVRBaG40
|
||||||
SUh3TjIreHJBL0VEUXJkOGpseVphYlkKnhM3XxcBXG4Y+OedQzcngNACsFoASPTp
|
UFV6dUVUM0gzQmFoT21qK0crdENiK2cKeNBxr8ac9X7BOhNqnOrnoPsBPdf56WwH
|
||||||
Ik5COr5AVsinTS+uOpNDKIY+y0mwkZq50NSIBMy0drhDjd3i+h5dmA==
|
zltXIxMVEZcEL6ggU7on/swIhEZAW0uJyhfQiVzI4M1XvLBu+PiTqg==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age1e6vws55p0g23qzthm4qa93hpt6lqmck6670gkygph0sc0j7my4uq5wqjfh
|
- recipient: age1e6vws55p0g23qzthm4qa93hpt6lqmck6670gkygph0sc0j7my4uq5wqjfh
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwWmZGZWUwZUk5UEk2Ujgz
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBLckMvUGtVUU9Jb1lIOUE3
|
||||||
S0RHd0VSUWNEbWtoTlRkOWphS0IzeE8vT0FFCjlxaFVESGdpeVFCUlRCaGo0U0pZ
|
UHdKZmVpcDBnSXZTTTB0ZER0VGRWUldmQkFNCkJTcVZEcjg4RXJlS08wcHpCZEoz
|
||||||
Y1NFQXRNVm52SXgxMGtkc2NVTTRzMGcKLS0tIER5bHZLV0lsczh6dXdJQWpjakpX
|
ZW9wU1JmVE5yeU5TVi8rTzFpOUNnUzQKLS0tIDI3OTdQZndkYWlycVhFY2RxNHhv
|
||||||
Zms5MnphZ09UZWVNdFcrREx5U1Y0UGMKE9KkY+8lbZ7to2aGhsJ4iSmboyfekOJi
|
cDJzRjhUTzFmYVBUZ0NUSDV3MmZ1MWcKfSE7eQD0sh9Ag2S3TfYoUjH1772nGErX
|
||||||
giQ1GWdOs/MJAPN/xgcHzfNj7hzEUJxgj5z0kd0q2GzZCOvGfO16NA==
|
P6GugohgWxQNXAptiyAzhAEys/2SHQ0lfI9tP2vfX0dQYPf1foGDDA==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age1x3lahhkefkap67cdmdjcqaxan9hp62er78akr79v9m73nvgugpeqk0y32a
|
lastmodified: "2025-09-21T15:03:11Z"
|
||||||
enc: |
|
mac: ENC[AES256_GCM,data:8z442Ny6iTUXR/daGASDfwf7KfiQbVdMor1xwSakmcVk5gFCI3fxRyJKOMDfYxdPuxHLarDowm2VYy0ismlduxaMs/7nK05Ry0issEeHlt1SGWiHqnfcjTvaiVhgh7k43nUIDnY7Vxe6cumBGhyW1xSKH4B6jUweaZyjn9V/ZCk=,iv:YpRnYD/FDhreWQUBmx7bEWWPFgofWbHKo7CIO0obuiM=,tag:zxOBTfEP4GxMV2DrhvKTNA==,type:str]
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3cnhuNDh3SEFxZUpXTHdv
|
|
||||||
RWRHNVFTcm1xbjdiN3FRRjFVR2JPRkdCcXd3Cm51VHptYXVlYnQzY0pJSGt1anZn
|
|
||||||
QTZ3YTgwSFJUUUxsMEYrdk9RRUFyN0UKLS0tIFJKNDNKY0lnQVdlM1gycm1sRkJ2
|
|
||||||
cHJTV1FZbDZ0M3NpS2w1YW01ZGhIWDAKef6765U4ew5QPmbHhDuufAjq0bS/qhJh
|
|
||||||
9N7g+a4vqTvv5TaOYQ98JBgfVclOZYIx9WO6xPJnb495gPyhWxEjuQ==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
- recipient: age1exzngtk4d9vcsmcq6ap5xx3ca9qacqjkrv86ymged7msx9z6vfyqsf5sjq
|
|
||||||
enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBheUI4VzZUN3NSTGc3U1kv
|
|
||||||
YzJqRk1mNjBUVTdFNzRNTTZQSmcvUW5zcnowCjI4WlRoL2pPeDZWRy9TaEZUQ1po
|
|
||||||
YUl1emFGL29qYW9iZXExUVBZai9GN2sKLS0tIEZ1ZEM2N05zYzU4OFdUVUtDaHRu
|
|
||||||
a3Y2V1I5TjFnVUNiWEZlZkVMekFZelEKXZc7W3mZcj/rypQ+Wm2Iqvd/4Ry/n507
|
|
||||||
FcYa+F2LT32D43AoaPZxEHIyJCYUeGpD7Z9rcI822u4pOpCvuoKiRg==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
lastmodified: "2025-12-28T17:02:38Z"
|
|
||||||
mac: ENC[AES256_GCM,data:uWBbdr10CpCUsn6TcaqewwqnXlICizTGW+arCLZz5S0b+Nc8iznq98Ev/G4M9mg4f79JRSwXnL6KgtVyf0Hd5LJuEhmViv2wTNfOTBffN3AV/Bvz2qCuwhD14GzPGUH3oYijfx+EB1LaGLniE2rx85h+q1hasRUlUY8UE/ndzus=,iv:rIM5T3PkzTsJYRjvWWbJyEcKu3evRcYJhVNeGCtOlms=,tag:pCYvDaI0qLIvJJzwT08nwQ==,type:str]
|
|
||||||
unencrypted_suffix: _unencrypted
|
unencrypted_suffix: _unencrypted
|
||||||
version: 3.11.0
|
version: 3.10.2
|
||||||
|
|||||||