Compare commits
54 Commits
d64b22e394
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
5911da7f99
|
|||
|
d1949310c5
|
|||
|
f83a201895
|
|||
|
4ce282f378
|
|||
|
d2a8db4d57
|
|||
|
a4282dd9aa
|
|||
|
9e4fc8ee21
|
|||
|
a31ac455cb
|
|||
|
e5230def14
|
|||
|
c08192ac34
|
|||
|
05de5f2063
|
|||
|
9ad81bb8e4
|
|||
|
88995ff8f5
|
|||
|
d492955c8e
|
|||
|
540a0e32e4
|
|||
|
dfbc1ea5a2
|
|||
|
d294038801
|
|||
|
f5bc2ef54f
|
|||
|
a7c6dc133e
|
|||
|
a0ba7ce382
|
|||
|
a0d8a1b0e3
|
|||
|
92010eedb7
|
|||
|
e35ad8eece
|
|||
|
2c39488719
|
|||
|
cf706f5d3b
|
|||
|
4440228098
|
|||
|
99e4da91af
|
|||
|
6c8e15dc23
|
|||
|
ecec4b8739
|
|||
|
4aaa0684c3
|
|||
|
9fc9742912
|
|||
|
06f32a0d38
|
|||
|
175fd9e2d4
|
|||
|
9e64a358d9
|
|||
|
57dfdc2cab
|
|||
|
9151cb04eb
|
|||
|
353f449f80
|
|||
|
c7f7a8f078
|
|||
|
cf6cb08e8c
|
|||
|
da91fdfd6d
|
|||
|
648245a0d8
|
|||
|
e247eded74
|
|||
|
47072e20e9
|
|||
|
dc10d3b55d
|
|||
|
d98fe007f1
|
|||
|
3f30db6fac
|
|||
|
eb0e26d456
|
|||
|
2b0eefad9f
|
|||
|
e8d1306e02
|
|||
|
66c6332023
|
|||
|
07d63e38b0
|
|||
|
562513fcd6
|
|||
|
f942349dca
|
|||
|
821f6b16da
|
1
.gitignore
vendored
1
.gitignore
vendored
@@ -4,3 +4,4 @@ nix_file.tar.gz
|
||||
nvim
|
||||
tmux/plugins
|
||||
modules/quickshell/quickshell/.qmlls.ini
|
||||
result
|
||||
|
||||
950
flake.lock
generated
950
flake.lock
generated
File diff suppressed because it is too large
Load Diff
103
flake.nix
103
flake.nix
@@ -3,19 +3,26 @@
|
||||
|
||||
inputs = {
|
||||
# Specify the source of Home Manager and Nixpkgs.
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
||||
rpi-nixpkgs.url = "github:nvmd/nixpkgs/modules-with-keys-25.11";
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
nixos-wsl.url = "github:nix-community/NixOS-WSL/main";
|
||||
nix-meow.url = "git+https://git.scug.io/nikkuss/nix-meow.git"; # config manager, meow'd
|
||||
nix-meow.url = "git+https://git.scug.io/nikkuss/nix-meow.git?ref=paws"; # config manager, meow'd
|
||||
hyprland.url = "github:hyprwm/Hyprland";
|
||||
rsRPC.url = "github:Doloro1978/rsRPC";
|
||||
protonhax.url = "github:linusfri/protonhax-nix";
|
||||
hytale-launcher.url = "github:JPyke3/hytale-launcher-nix";
|
||||
quickshell = {
|
||||
url = "git+https://git.outfoxxed.me/outfoxxed/quickshell";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
heliumFlake = {
|
||||
url = "github:vikingnope/helium-browser-nix-flake";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
nikkuss-pkgs = {
|
||||
url = "git+https://git.scug.io/nikkuss/pkgs";
|
||||
# inputs.nixpkgs.follows = "nixpkgs";
|
||||
@@ -57,6 +64,9 @@
|
||||
url = "github:Nixos/nixpkgs?rev=8fcb6f1c4948305af52d19f887b89011ee2c080d";
|
||||
};
|
||||
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 =
|
||||
inputs@{
|
||||
@@ -88,39 +98,47 @@
|
||||
};
|
||||
});
|
||||
})
|
||||
(
|
||||
final: prev:
|
||||
let
|
||||
system = prev.stdenv.hostPlatform.system;
|
||||
pkgs_gamescope = import inputs.nixpkgs-gamescope {
|
||||
inherit system;
|
||||
config = {
|
||||
allow_unfree = true;
|
||||
};
|
||||
};
|
||||
packageNix = "${inputs.nixpkgs-gamescope}/pkgs/by-name/ga/gamescope/package.nix";
|
||||
in
|
||||
{
|
||||
gamescope = pkgs_gamescope.callPackage packageNix { };
|
||||
}
|
||||
)
|
||||
# (
|
||||
# final: prev:
|
||||
# let
|
||||
# system = prev.stdenv.hostPlatform.system;
|
||||
# pkgs_gamescope = import inputs.nixpkgs-gamescope {
|
||||
# inherit system;
|
||||
# config = {
|
||||
# allow_unfree = true;
|
||||
# };
|
||||
# };
|
||||
# packageNix = "${inputs.nixpkgs-gamescope}/pkgs/by-name/ga/gamescope/package.nix";
|
||||
# in
|
||||
# {
|
||||
# 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: {
|
||||
# TODO remove once updated on nixpkgs
|
||||
tlp = prev.tlp.overrideAttrs (old: rec {
|
||||
version = "1.9.0";
|
||||
src = prev.fetchFromGitHub {
|
||||
owner = "linrunner";
|
||||
repo = "TLP";
|
||||
rev = version;
|
||||
hash = "sha256-aM/4+cgtUe6qv3MNT4moXvNzqG5gKvwMbg14L8ifWlc=";
|
||||
};
|
||||
});
|
||||
})
|
||||
(self: super: {
|
||||
intel-npu-driver = super.intel-npu-driver.overrideAttrs (oldAttrs: rec {
|
||||
installPhase = ''
|
||||
mkdir -p $out/lib/firmware
|
||||
${oldAttrs.installPhase}
|
||||
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
|
||||
'';
|
||||
});
|
||||
})
|
||||
@@ -140,6 +158,7 @@
|
||||
};
|
||||
inherit (utils) mkHost;
|
||||
configurations = [
|
||||
# Desktops
|
||||
(mkHost {
|
||||
hardware = "doloro";
|
||||
host = "doloro";
|
||||
@@ -151,18 +170,20 @@
|
||||
};
|
||||
})
|
||||
(mkHost {
|
||||
hardware = "doloro-wsl";
|
||||
host = "doloro-wsl";
|
||||
system = "aarch64-linux";
|
||||
stateVersion = "25.05";
|
||||
hardware = "doloro-laptop";
|
||||
host = "doloro-laptop";
|
||||
system = "x86_64-linux";
|
||||
stateVersion = "25.11";
|
||||
nixpkgsConfig = {
|
||||
rocmSupport = false;
|
||||
};
|
||||
})
|
||||
# Servers
|
||||
(mkHost {
|
||||
hardware = "doloro-laptop";
|
||||
host = "doloro-laptop";
|
||||
system = "x86_64-linux";
|
||||
hardware = "rpi-5";
|
||||
host = "rpi-5";
|
||||
system = "aarch64-linux";
|
||||
# nixpkgs = inputs.rpi-nixpkgs;
|
||||
stateVersion = "25.11";
|
||||
nixpkgsConfig = {
|
||||
rocmSupport = false;
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
{...}: {
|
||||
}
|
||||
49
hardwares/rpi-5/disks.nix
Normal file
49
hardwares/rpi-5/disks.nix
Normal file
@@ -0,0 +1,49 @@
|
||||
{ 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
hardwares/rpi-5/home.nix
Normal file
1
hardwares/rpi-5/home.nix
Normal file
@@ -0,0 +1 @@
|
||||
{...}: {}
|
||||
35
hardwares/rpi-5/nixos.nix
Normal file
35
hardwares/rpi-5/nixos.nix
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
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; });
|
||||
})
|
||||
];
|
||||
}
|
||||
@@ -18,12 +18,12 @@
|
||||
quickshell.enable = true;
|
||||
# chromium.enable = true;
|
||||
wivrn.enable = false;
|
||||
helium.enable = false;
|
||||
helium.enable = true;
|
||||
sops.enable = true;
|
||||
wakatime.enable = false;
|
||||
# remoteBuild.use-remote-builders = true;
|
||||
nixvim.enable = true;
|
||||
zen-browser.enable = true;
|
||||
zen-browser.enable = false;
|
||||
kitty.enable = true;
|
||||
helix.enable = false;
|
||||
stylix.enable = true;
|
||||
@@ -86,7 +86,8 @@
|
||||
hello
|
||||
vim
|
||||
telegram-desktop
|
||||
vesktop
|
||||
# vesktop
|
||||
legcord
|
||||
pavucontrol
|
||||
lazygit
|
||||
btop
|
||||
@@ -94,6 +95,7 @@
|
||||
alcom
|
||||
gcr
|
||||
qbittorrent
|
||||
intel-gpu-tools
|
||||
];
|
||||
|
||||
# Home Manager is pretty good at managing dotfiles. The primary way to manage
|
||||
|
||||
@@ -1,42 +1,92 @@
|
||||
{ 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 = {
|
||||
CPU_ENERGY_PERF_POLICY_ON_AC = "balance_performance";
|
||||
CPU_ENERGY_PERF_POLICY_ON_BAT = "power";
|
||||
CPU_ENERGY_PERF_POLICY_ON_SAV = "power";
|
||||
CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
|
||||
PCIE_ASPM_ON_BAT = "powersave";
|
||||
CPU_SCALING_GOVERNOR_ON_AC = "balanced";
|
||||
PCIE_ASPM_ON_AC = "balanced";
|
||||
CPU_BOOST_ON_AC = 1;
|
||||
CPU_BOOST_ON_BAT = 0;
|
||||
CPU_BOOST_ON_SAV = 0;
|
||||
DEVICES_TO_DISABLE_ON_BAT_NOT_IN_USE = "bluetooth wifi wwan";
|
||||
# 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;
|
||||
|
||||
TLP_DEFAULT_BATTERY_MODE = "SAV";
|
||||
CPU_HWP_DYN_BOOST_ON_AC = 1;
|
||||
CPU_HWP_DYN_BOOST_ON_BAT = 0;
|
||||
CPU_HWP_DYN_BOOST_ON_SAV = 0;
|
||||
PLATFORM_PROFILE_ON_AC = "balanced";
|
||||
PLATFORM_PROFILE_ON_BAT = "low-power";
|
||||
PLATFORM_PROFILE_ON_SAV = "quiet";
|
||||
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.tuned.enable = true;
|
||||
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"
|
||||
# "i915.fastboot=1"
|
||||
"pcie_aspm=force"
|
||||
"ahci.mobile_lpm_policy=1"
|
||||
];
|
||||
@@ -50,16 +100,41 @@ in
|
||||
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'';
|
||||
ExecStop = "${pkgs.utillinux}/bin/rfkill unblock all";
|
||||
ExecStart = "${pkgs.utillinux}/bin/rfkill block all";
|
||||
RemainAfterExit = true;
|
||||
};
|
||||
wantedBy = [ "sleep.target" ];
|
||||
|
||||
@@ -31,9 +31,8 @@ in
|
||||
# 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_zen; # Hibernate works on 6.12 but not on latest
|
||||
|
||||
# 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;
|
||||
|
||||
@@ -62,6 +61,9 @@ in
|
||||
"doloro"
|
||||
];
|
||||
};
|
||||
|
||||
services.gnome.gnome-keyring.enable = true;
|
||||
|
||||
hardware = {
|
||||
firmware = [ pkgs.intel-npu-driver ];
|
||||
cpu.intel = {
|
||||
@@ -73,6 +75,7 @@ in
|
||||
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
|
||||
];
|
||||
@@ -120,6 +123,7 @@ in
|
||||
|
||||
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;
|
||||
@@ -135,6 +139,7 @@ in
|
||||
# initialPassword = "sex";
|
||||
};
|
||||
users.mutableUsers = false;
|
||||
services.system76-scheduler.enable = true;
|
||||
|
||||
# programs.firefox.enable = true;
|
||||
|
||||
@@ -144,6 +149,10 @@ in
|
||||
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
|
||||
|
||||
@@ -1,123 +0,0 @@
|
||||
{
|
||||
inputs,
|
||||
config,
|
||||
pkgs,
|
||||
fetchFromGitHub,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
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 = {
|
||||
nixvim.enable = true;
|
||||
tmux.enable = true;
|
||||
fish.enable = true;
|
||||
stylix.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";
|
||||
|
||||
# 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.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
|
||||
# environment.
|
||||
home.packages = with pkgs; [
|
||||
hello
|
||||
# vim
|
||||
# telegram-desktop
|
||||
# vesktop
|
||||
# spotify
|
||||
# pavucontrol
|
||||
lazygit
|
||||
sops
|
||||
];
|
||||
# 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 = {
|
||||
EDITOR = "nvim";
|
||||
};
|
||||
# {{{{{ TODO Put in different file
|
||||
# }}}}}
|
||||
# Let Home Manager install and manage itself.
|
||||
programs = {
|
||||
home-manager.enable = true;
|
||||
ssh = {
|
||||
enable = true;
|
||||
enableDefaultConfig = false;
|
||||
matchBlocks = {
|
||||
"*" = {
|
||||
addKeysToAgent = "yes";
|
||||
identityFile = [
|
||||
"~/.ssh/id_github"
|
||||
"~/.ssh/id_gitea_scug_io"
|
||||
"~/.ssh/id_ed25519"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,59 +0,0 @@
|
||||
{
|
||||
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";
|
||||
};
|
||||
}
|
||||
@@ -12,11 +12,12 @@
|
||||
enable = true;
|
||||
suspend-on-hibernate = true;
|
||||
};
|
||||
niri.enable = false;
|
||||
quickshell.enable = true;
|
||||
# chromium.enable = true;
|
||||
wivrn.enable = true;
|
||||
sops.enable = true;
|
||||
helium.enable = false;
|
||||
helium.enable = true;
|
||||
nixvim.enable = true;
|
||||
helix.enable = false;
|
||||
stylix.enable = true;
|
||||
@@ -28,7 +29,7 @@
|
||||
autostart = true;
|
||||
};
|
||||
blender.enable = true;
|
||||
zen-browser.enable = true;
|
||||
zen-browser.enable = false;
|
||||
bottles.enable = true;
|
||||
fish.enable = true;
|
||||
youtube-music.enable = true;
|
||||
@@ -90,16 +91,16 @@
|
||||
vim
|
||||
telegram-desktop
|
||||
vesktop
|
||||
# (pkgs.discord.override { withVencord = true; })
|
||||
# webcord-vencord
|
||||
# spotify
|
||||
(inputs.protonhax.packages.x86_64-linux.default)
|
||||
pavucontrol
|
||||
lazygit
|
||||
btop
|
||||
sops
|
||||
protontricks
|
||||
alcom
|
||||
gcr
|
||||
qbittorrent
|
||||
(inputs.hytale-launcher.packages.x86_64-linux.default)
|
||||
];
|
||||
home.sessionVariables = {
|
||||
EDITOR = "nvim";
|
||||
|
||||
@@ -23,11 +23,16 @@ in
|
||||
stylix.enable = true;
|
||||
steam.enable = true;
|
||||
Hyprland.enable = true;
|
||||
niri.enable = false;
|
||||
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.
|
||||
boot.loader.grub.enable = true;
|
||||
boot.loader.grub.device = "nodev";
|
||||
@@ -45,11 +50,13 @@ in
|
||||
"https://cache.nixos.org/"
|
||||
"https://attic.scug.io/pkgs"
|
||||
"https://cache.nixos-cuda.org"
|
||||
"https://niri.cachix.org"
|
||||
];
|
||||
trusted-public-keys = [
|
||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||
"pkgs:+sRbfiZMMX5R3PuAPtIRz/emowDoGZNpozibrnrAvuc="
|
||||
"cache.nixos-cuda.org:74DUi4Ye579gUqzH4ziL9IyiJBlDpMRn9MBN8oNan9M="
|
||||
"niri.cachix.org-1:Wv0OmO7PsuocRKzfDoJ3mulSl7Z6oezYhGhR+3W2964="
|
||||
];
|
||||
experimental-features = [
|
||||
"flakes"
|
||||
@@ -229,7 +236,7 @@ in
|
||||
programs = {
|
||||
ssh = {
|
||||
# enable = true;
|
||||
startAgent = true;
|
||||
# startAgent = true;
|
||||
|
||||
};
|
||||
fish.enable = true;
|
||||
@@ -248,6 +255,7 @@ in
|
||||
extraGroups = [
|
||||
"wheel"
|
||||
"dialout"
|
||||
"networkmanager"
|
||||
]; # Enable ‘sudo’ for the user.
|
||||
packages = with pkgs; [
|
||||
tree
|
||||
@@ -266,6 +274,7 @@ in
|
||||
wget
|
||||
killall
|
||||
sops
|
||||
seahorse
|
||||
];
|
||||
|
||||
# Some programs need SUID wrappers, can be configured further or are
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
{ ... }:
|
||||
let
|
||||
|
||||
in
|
||||
{
|
||||
|
||||
}
|
||||
54
hosts/rpi-5/home.nix
Normal file
54
hosts/rpi-5/home.nix
Normal file
@@ -0,0 +1,54 @@
|
||||
{
|
||||
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;
|
||||
};
|
||||
}
|
||||
99
hosts/rpi-5/nixos.nix
Normal file
99
hosts/rpi-5/nixos.nix
Normal file
@@ -0,0 +1,99 @@
|
||||
{
|
||||
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";
|
||||
}
|
||||
4
modules/alecaframe/default.nix
Normal file
4
modules/alecaframe/default.nix
Normal file
@@ -0,0 +1,4 @@
|
||||
_: {
|
||||
home = ./home.nix;
|
||||
# nixos: ./nixos.nix;
|
||||
}
|
||||
34
modules/alecaframe/home.nix
Normal file
34
modules/alecaframe/home.nix
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
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" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
4
modules/base16-theme/default.nix
Normal file
4
modules/base16-theme/default.nix
Normal file
@@ -0,0 +1,4 @@
|
||||
_: {
|
||||
home = ./home.nix;
|
||||
# nixos: ./nixos.nix;
|
||||
}
|
||||
62
modules/base16-theme/home.nix
Normal file
62
modules/base16-theme/home.nix
Normal file
@@ -0,0 +1,62 @@
|
||||
{
|
||||
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
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = [
|
||||
blender_4_5
|
||||
blenderPkgs.blender_4_5
|
||||
];
|
||||
};
|
||||
# nix'ing a blender config is most likely not possible
|
||||
|
||||
@@ -2,7 +2,10 @@
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
hostname,
|
||||
nix-meow,
|
||||
fetchFromGitHub,
|
||||
system,
|
||||
...
|
||||
}:
|
||||
let
|
||||
@@ -14,6 +17,7 @@ in
|
||||
};
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.shell.enableFishIntegration = true;
|
||||
home.packages = [ pkgs.nix-output-monitor ];
|
||||
programs = {
|
||||
fish = {
|
||||
enable = true;
|
||||
@@ -23,6 +27,8 @@ in
|
||||
set -g theme_display_user yes
|
||||
set -g fish_color_autosuggestion 6F6578
|
||||
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 = [
|
||||
{
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
let
|
||||
cfg = config.modules.helium;
|
||||
# packageNix = "${inputs.nixpkgs-gamescope}/pkgs/by-name/he/helium-browser/package.nix";
|
||||
# helium = inputs.nikkuss-pkgs.callPackage packageNix { };
|
||||
in
|
||||
{
|
||||
options.modules.helium = {
|
||||
@@ -17,14 +16,11 @@ in
|
||||
};
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = [
|
||||
inputs.nikkuss-pkgs.packages.x86_64-linux.helium-browser
|
||||
inputs.heliumFlake.packages.x86_64-linux.helium
|
||||
];
|
||||
# xdg.mimeApps.defaultApplications = {
|
||||
# "text/html" = "chromium.desktop";
|
||||
# "x-scheme-handler/http" = "chromium.desktop";
|
||||
# "x-scheme-handler/https" = "chromium.desktop";
|
||||
# "x-scheme-handler/about" = "chromium.desktop";
|
||||
# "x-scheme-handler/unknown" = "chromium.desktop";
|
||||
# };
|
||||
# Gives me widevine support. yay
|
||||
xdg.configFile."net.imput.helium/WidevineCdm/latest-component-updated-widevine-cdm" = {
|
||||
text = ''{"Path":"${pkgs.widevine-cdm}/share/google/chrome/WidevineCdm"}'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -10,11 +10,11 @@ let
|
||||
in
|
||||
{
|
||||
options.modules.hyfetch = {
|
||||
enable = lib.mkEnableOption "hyfetchm";
|
||||
enable = lib.mkEnableOption "hyfetch";
|
||||
};
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = [ ] // [ pkgs.fastfetch ];
|
||||
hyfetch = {
|
||||
home.packages = [ pkgs.fastfetch ];
|
||||
programs.hyfetch = {
|
||||
enable = true;
|
||||
settings = {
|
||||
"preset" = "bisexual";
|
||||
|
||||
@@ -42,12 +42,15 @@ in
|
||||
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
|
||||
};
|
||||
programs = {
|
||||
hyprlock = {
|
||||
enable = true;
|
||||
};
|
||||
wlogout = {
|
||||
enable = true;
|
||||
layout = [
|
||||
{
|
||||
"label" = "lock";
|
||||
"action" = "loginctl lock-session";
|
||||
"action" = "hyprlock";
|
||||
"text" = "Lock";
|
||||
"keybind" = "l";
|
||||
}
|
||||
@@ -59,7 +62,7 @@ in
|
||||
}
|
||||
{
|
||||
"label" = "logout";
|
||||
"action" = "loginctl terminate-user $USER";
|
||||
"action" = "uwsm stop";
|
||||
"text" = "Logout";
|
||||
"keybind" = "e";
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
}:
|
||||
let
|
||||
cfg = config.modules.Hyprland;
|
||||
pkgs-unstable = inputs.hyprland.inputs.nixpkgs.legacyPackages.${pkgs.stdenv.hostPlatform.system};
|
||||
in
|
||||
{
|
||||
options.modules.Hyprland = {
|
||||
@@ -16,6 +17,7 @@ in
|
||||
programs.xwayland.enable = true;
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
withUWSM = true;
|
||||
# set the flake package
|
||||
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
||||
# make sure to also set the portal package, so that they are in sync
|
||||
@@ -31,5 +33,12 @@ in
|
||||
substituters = [ "https://hyprland.cachix.org" ];
|
||||
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,21 +1,41 @@
|
||||
{ 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 = [
|
||||
pkgs.hyprlauncher
|
||||
pkgs.tofi
|
||||
];
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
bind = [
|
||||
"$mainMod, R, exec, hyprlauncher"
|
||||
"$mainMod, R, exec, ${script}"
|
||||
];
|
||||
};
|
||||
systemd.user.services.hyprlauncher-deamon = {
|
||||
Install = {
|
||||
WantedBy = [ "hyprland-session.target" ];
|
||||
};
|
||||
Service = {
|
||||
ExecStart = "${pkgs.writeShellScript "watch-store" ''
|
||||
hyprlauncher -d
|
||||
''}";
|
||||
};
|
||||
};
|
||||
# systemd.user.services.hyprlauncher-deamon = {
|
||||
# Install = {
|
||||
# WantedBy = [ "hyprland-session.target" ];
|
||||
# };
|
||||
# Service = {
|
||||
# ExecStart = "${pkgs.writeShellScript "watch-store" ''
|
||||
# hyprlauncher -d
|
||||
# ''}";
|
||||
# };
|
||||
# };
|
||||
}
|
||||
|
||||
@@ -1,4 +1,12 @@
|
||||
{ inputs, pkgs, ... }:
|
||||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
base16 = config.modules.base16;
|
||||
in
|
||||
{
|
||||
home.packages = [
|
||||
pkgs.hyprcursor
|
||||
@@ -23,14 +31,16 @@
|
||||
gaps_in = 1;
|
||||
gaps_out = 1;
|
||||
border_size = 1;
|
||||
# col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
|
||||
# col.inactive_border = rgba(595959aa)
|
||||
"col.active_border" =
|
||||
"rgb(${toString base16.rgb."base06".r},${toString base16.rgb."base06".g},${toString base16.rgb."base06".b})";
|
||||
"col.inactive_border" =
|
||||
"rgb(${toString base16.rgb."base03".r},${toString base16.rgb."base03".g},${toString base16.rgb."base03".b})";
|
||||
resize_on_border = false;
|
||||
allow_tearing = true;
|
||||
layout = "dwindle";
|
||||
};
|
||||
decoration = {
|
||||
rounding = 0;
|
||||
rounding = 4;
|
||||
rounding_power = 1;
|
||||
active_opacity = 1.0;
|
||||
inactive_opacity = 1.0;
|
||||
@@ -59,19 +69,20 @@
|
||||
"global, 1, 10, default"
|
||||
"border, 1, 5.39, easeOutQuint"
|
||||
"windows, 1, 2.79, easeOutQuint"
|
||||
"windowsIn, 1, 1.1, easeOutQuint, popin 87%"
|
||||
"windowsOut, 1, 1.49, linear, popin 87%"
|
||||
"fadeIn, 1, 1.73, almostLinear"
|
||||
"fadeOut, 1, 1.46, almostLinear"
|
||||
"fade, 1, 2.03, quick"
|
||||
"windowsIn, 1, 1, easeOutQuint, popin 87%"
|
||||
"windowsOut, 1, 1, linear, popin 87%"
|
||||
"windowsMove, 1, 1, easeInOutCubic"
|
||||
"fadeIn, 1, 0.5, almostLinear"
|
||||
"fadeOut, 1, 0.5, almostLinear"
|
||||
"fade, 1, 1, quick"
|
||||
"layers, 1, 3.81, easeOutQuint"
|
||||
"layersIn, 1, 4, easeOutQuint, fade"
|
||||
"layersOut, 1, 1.5, linear, fade"
|
||||
"fadeLayersIn, 1, 1.79, almostLinear"
|
||||
"fadeLayersOut, 1, 1.39, almostLinear"
|
||||
"workspaces, 1, 1.94, almostLinear, fade"
|
||||
"workspacesIn, 1, 1.21, almostLinear, fade"
|
||||
"workspacesOut, 1, 1.94, almostLinear, fade"
|
||||
"workspaces, 1, 1, almostLinear, slide"
|
||||
"workspacesIn, 1, 1, easeInOutCubic, slide"
|
||||
"workspacesOut, 1, 1, easeInOutCubic, slide"
|
||||
"zoomFactor, 1, 7, quick"
|
||||
];
|
||||
};
|
||||
@@ -90,9 +101,8 @@
|
||||
};
|
||||
"$mainMod" = "SUPER";
|
||||
bind = [
|
||||
"$mainMod, Q, exec, foot"
|
||||
"$mainMod, C, killactive"
|
||||
"$mainMod, M, exit"
|
||||
"$mainMod, M, exec, uwsm stop"
|
||||
"$mainMod, E, exec, $fileManager"
|
||||
"$mainMod, V, togglefloating,"
|
||||
"$mainMod, P, pseudo, # dwindle"
|
||||
@@ -133,9 +143,9 @@
|
||||
];
|
||||
windowrule = [
|
||||
"match:class .*, suppress_event maximize"
|
||||
"match:class ^(gamescope)$, workspace 5"
|
||||
"match:class ^(gamescope)$, fullscreen true"
|
||||
"match:class ^(gamescope)$, immediate true"
|
||||
"match:class gamescope, workspace 5"
|
||||
"match:class gamescope, fullscreen true"
|
||||
"match:class gamescope, immediate true"
|
||||
"match:class ^(steam)$, workspace 6 silent"
|
||||
"match:class ^(vesktop)$, workspace 8 silent"
|
||||
"match:class ^(org.telegram.desktop)$, workspace 8 silent"
|
||||
|
||||
4
modules/niri/default.nix
Normal file
4
modules/niri/default.nix
Normal file
@@ -0,0 +1,4 @@
|
||||
_: {
|
||||
nixos = ./nixos.nix;
|
||||
home = ./home.nix;
|
||||
}
|
||||
158
modules/niri/home.nix
Normal file
158
modules/niri/home.nix
Normal file
@@ -0,0 +1,158 @@
|
||||
{
|
||||
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";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
20
modules/niri/nixos.nix
Normal file
20
modules/niri/nixos.nix
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
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 {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
colorschemes.tokyonight.enable = true;
|
||||
colorschemes.gruvbox-material.enable = true;
|
||||
performance.byteCompileLua = {
|
||||
enable = true;
|
||||
plugins = true;
|
||||
@@ -63,13 +63,19 @@ in
|
||||
ts_ls = {
|
||||
enable = true;
|
||||
};
|
||||
svelte.enable = true;
|
||||
};
|
||||
};
|
||||
lsp-format = {
|
||||
enable = true;
|
||||
# lspServersToEnable = [ "qmlls" ];
|
||||
};
|
||||
notify.enable = true;
|
||||
notify = {
|
||||
enable = true;
|
||||
settings = {
|
||||
background_color = "#00000000";
|
||||
};
|
||||
};
|
||||
mini-cursorword.enable = true;
|
||||
# mini-statusline.enable = true;
|
||||
lualine = {
|
||||
|
||||
@@ -28,7 +28,7 @@ in
|
||||
WantedBy = [ "default.target" ];
|
||||
};
|
||||
Service = {
|
||||
ExecStart = "${pkg}/bin/quickshell";
|
||||
ExecStart = "${pkgs.quickshell}/bin/quickshell";
|
||||
Restart = "on-failure";
|
||||
RestartSec = "5s";
|
||||
};
|
||||
|
||||
@@ -1 +1 @@
|
||||
/run/user/1000/quickshell/vfs/cd26284dcbf5c20ad2cc36cbb6547fb4/.qmlls.ini
|
||||
/run/user/1000/quickshell/vfs/f9af1311120af20dfed5f1bc1698a66a/.qmlls.ini
|
||||
@@ -17,7 +17,7 @@ in
|
||||
# whole blender config including addons is too fat to include here
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = with pkgs; [
|
||||
wlx-overlay-s
|
||||
wayvr
|
||||
];
|
||||
};
|
||||
# nix'ing a blender config is most likely not possible
|
||||
|
||||
@@ -54,6 +54,7 @@ in
|
||||
publish.userServices = true;
|
||||
};
|
||||
};
|
||||
programs.adb.enable = true;
|
||||
environment.systemPackages = [ pkgs.android-tools ];
|
||||
# programs.adb.enable = true;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -12,6 +12,6 @@ in
|
||||
enable = lib.mkEnableOption "youtube music";
|
||||
};
|
||||
config.home.packages = with pkgs; [
|
||||
youtube-music
|
||||
pear-desktop
|
||||
];
|
||||
}
|
||||
|
||||
BIN
nixos.qcow2
BIN
nixos.qcow2
Binary file not shown.
30
overlays.nix
30
overlays.nix
@@ -6,36 +6,6 @@
|
||||
...
|
||||
}:
|
||||
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 {
|
||||
inherit system;
|
||||
config = {
|
||||
|
||||
Reference in New Issue
Block a user